summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ADPF_OWNERS5
-rw-r--r--AconfigFlags.bp27
-rw-r--r--Android.bp4
-rw-r--r--GAME_MANAGER_OWNERS3
-rw-r--r--OWNERS4
-rw-r--r--apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java12
-rw-r--r--api/StubLibraries.bp105
-rw-r--r--boot/README.md10
-rw-r--r--boot/boot-image-profile-extra.txt (renamed from config/boot-image-profile-extra.txt)0
-rw-r--r--boot/boot-profile.txt (renamed from config/boot-profile.txt)0
-rw-r--r--cmds/uinput/README.md5
-rw-r--r--config/README.md5
-rw-r--r--config/boot-image-profile.txt50393
-rw-r--r--core/api/current.txt7
-rw-r--r--core/api/module-lib-current.txt1
-rw-r--r--core/api/system-current.txt1
-rw-r--r--core/api/test-current.txt3
-rw-r--r--core/java/Android.bp2
-rw-r--r--core/java/android/app/INotificationManager.aidl5
-rw-r--r--core/java/android/app/NotificationManager.java17
-rw-r--r--core/java/android/app/TaskInfo.java12
-rw-r--r--core/java/android/app/admin/flags/flags.aconfig4
-rw-r--r--core/java/android/app/appfunctions/AppFunctionManager.java23
-rw-r--r--core/java/android/app/appfunctions/ExecuteAppFunctionResponse.java7
-rw-r--r--core/java/android/app/appfunctions/SafeOneTimeExecuteAppFunctionCallback.java8
-rw-r--r--core/java/android/content/Intent.java8
-rw-r--r--core/java/android/content/pm/TEST_MAPPING22
-rw-r--r--core/java/android/hardware/camera2/CameraManager.java75
-rw-r--r--core/java/android/hardware/display/DisplayManagerInternal.java11
-rw-r--r--core/java/android/hardware/input/input_framework.aconfig3
-rw-r--r--core/java/android/os/BatteryConsumer.java22
-rw-r--r--core/java/android/os/BatteryStats.java18
-rw-r--r--core/java/android/os/PowerComponents.java13
-rw-r--r--core/java/android/os/UidBatteryConsumer.java85
-rw-r--r--core/java/android/os/image/flags/trade_in_mode_flags.aconfig11
-rw-r--r--core/java/android/security/attestationverification/AttestationVerificationManager.java102
-rw-r--r--core/java/android/security/attestationverification/AttestationVerificationService.java4
-rw-r--r--core/java/android/security/attestationverification/VerificationToken.java205
-rw-r--r--core/java/android/service/chooser/ChooserResult.java2
-rw-r--r--core/java/android/service/notification/NotificationAssistantService.java17
-rw-r--r--core/java/android/service/notification/ZenModeDiff.java335
-rw-r--r--core/java/android/service/notification/ZenPolicy.java6
-rw-r--r--core/java/android/view/InputEventCompatProcessor.java97
-rw-r--r--core/java/android/view/LetterboxScrollProcessor.java194
-rw-r--r--core/java/android/view/View.java11
-rw-r--r--core/java/android/view/ViewRootImpl.java2
-rw-r--r--core/java/android/view/accessibility/flags/accessibility_flags.aconfig7
-rw-r--r--core/java/android/view/flags/refresh_rate_flags.aconfig8
-rw-r--r--core/java/android/window/flags/DesktopModeFlags.java3
-rw-r--r--core/java/com/android/internal/os/BatteryStatsHistory.java18
-rw-r--r--core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java11
-rw-r--r--core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java6
-rw-r--r--core/java/com/android/internal/protolog/ProtoLogGroup.java151
-rw-r--r--core/java/com/android/internal/protolog/WmProtoLogGroups.java174
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/CompanionOperation.java4
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java245
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/DocumentedCompanion.java (renamed from ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRedirect.java)19
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/Operations.java182
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/PaintContext.java23
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java487
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/RemoteComposeState.java169
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java239
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/SerializableToString.java22
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/VariableSupport.java2
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/documentation/DocumentedCompanionOperation.java4
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/documentation/Operation.java24
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/documentation/OperationField.java20
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/BitmapData.java99
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/ClickArea.java105
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/ClipPath.java98
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/ClipRect.java76
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/ColorConstant.java70
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/ColorExpression.java107
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/ComponentValue.java136
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DataListFloat.java127
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DataListIds.java130
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DataMapIds.java147
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawArc.java87
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase2.java94
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase3.java101
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase4.java128
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase6.java128
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmap.java96
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmapInt.java124
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawCircle.java71
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawLine.java101
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawOval.java77
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawPath.java63
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawRect.java74
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawRoundRect.java89
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawText.java176
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextAnchored.java132
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextOnPath.java109
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/DrawTweenPath.java143
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/FloatConstant.java83
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/FloatExpression.java157
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/Header.java106
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/IntegerExpression.java97
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRestore.java48
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRotate.java74
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSave.java48
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/MatrixScale.java75
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSkew.java85
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/MatrixTranslate.java63
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/NamedVariable.java76
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/PaintData.java64
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/PathData.java75
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/RootContentBehavior.java109
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/RootContentDescription.java61
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/ShaderData.java265
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/TextData.java84
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/TextFromFloat.java100
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/TextMerge.java89
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/Theme.java67
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/Utils.java7
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/ActionOperation.java30
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/CanvasContent.java70
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/ClickModifierEnd.java70
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/ClickModifierOperation.java182
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/Component.java125
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentEnd.java50
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentStart.java141
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/DecoratorComponent.java4
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponent.java123
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponentContent.java60
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/RootLayoutComponent.java84
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimateMeasure.java5
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimationSpec.java134
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/BoxLayout.java86
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/CanvasLayout.java98
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/ColumnLayout.java120
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/LayoutManager.java10
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/RowLayout.java119
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/TextLayout.java245
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BackgroundModifierOperation.java103
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BorderModifierOperation.java113
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ClipRectModifierOperation.java52
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ComponentModifiers.java35
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ComponentVisibilityOperation.java131
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DecoratorModifierOperation.java6
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DimensionModifierOperation.java99
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HeightModifierOperation.java50
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HostActionOperation.java99
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HostNamedActionOperation.java95
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/PaddingModifierOperation.java74
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/RoundedClipRectModifierOperation.java88
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ValueIntegerChangeActionOperation.java103
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ValueStringChangeActionOperation.java107
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/WidthModifierOperation.java51
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintBundle.java2
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/utilities/AnimatedFloatExpression.java159
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ArrayAccess.java (renamed from ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepStaticInitializer.java)23
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/utilities/CollectionsAccess.java26
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ColorUtils.java13
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntegerExpressionEvaluator.java77
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/utilities/NanMap.java62
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/FloatAnimation.java12
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/types/BooleanConstant.java81
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/types/IntegerConstant.java79
-rw-r--r--core/java/com/android/internal/widget/remotecompose/core/types/LongConstant.java92
-rw-r--r--core/java/com/android/internal/widget/remotecompose/player/RemoteComposeDocument.java15
-rw-r--r--core/java/com/android/internal/widget/remotecompose/player/RemoteComposePlayer.java85
-rw-r--r--core/java/com/android/internal/widget/remotecompose/player/platform/AndroidPaintContext.java24
-rw-r--r--core/java/com/android/internal/widget/remotecompose/player/platform/AndroidRemoteContext.java89
-rw-r--r--core/java/com/android/internal/widget/remotecompose/player/platform/FloatsToPath.java13
-rw-r--r--core/java/com/android/internal/widget/remotecompose/player/platform/RemoteComposeCanvas.java92
-rw-r--r--core/jni/android_database_SQLiteConnection.cpp32
-rw-r--r--core/tests/coretests/src/android/view/InputEventCompatProcessorTest.java121
-rw-r--r--core/tests/coretests/src/android/view/LetterboxScrollProcessorTest.java253
-rw-r--r--core/tests/coretests/src/android/view/ViewFrameRateTest.java27
-rw-r--r--core/tests/coretests/src/android/window/WindowOnBackInvokedDispatcherTest.java4
-rw-r--r--core/tests/resourceflaggingtests/src/com/android/resourceflaggingtests/ResourceFlaggingTest.java22
-rw-r--r--graphics/java/android/graphics/Paint.java46
-rw-r--r--libs/WindowManager/Shell/Android.bp1
-rw-r--r--libs/WindowManager/Shell/res/drawable/decor_desktop_mode_immersive_button_dark.xml25
-rw-r--r--libs/WindowManager/Shell/res/drawable/decor_desktop_mode_immersive_exit_button_dark.xml26
-rw-r--r--libs/WindowManager/Shell/res/values-en-rGB/strings.xml9
-rw-r--r--libs/WindowManager/Shell/res/values-pt-rBR/strings.xml19
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/apptoweb/AppToWebUtils.kt21
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java4
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java13
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipUtils.kt84
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java127
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandler.kt153
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandler.kt157
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepository.kt22
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt13
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationController.kt281
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilter.kt7
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/data/AppHandleEducationDatastoreRepository.kt31
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformComponents.java5
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java43
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionStarterInitializer.kt41
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java13
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/TaskSnapshotWindow.java5
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/transition/FocusTransitionObserver.java9
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java11
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java7
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java55
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java97
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt18
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeButtonView.kt6
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java21
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/extension/TaskInfo.kt8
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHandleViewHolder.kt18
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt78
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/WindowDecorationViewHolder.kt15
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandlerTest.kt160
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandlerTest.kt220
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepositoryTest.kt45
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt6
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationControllerTest.kt463
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationDatastoreRepositoryTest.kt20
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilterTest.kt39
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawerTests.java20
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/FocusTransitionObserverTest.java44
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/util/WindowingEducationTestUtils.kt (renamed from libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/util/WindowingEducationProtoUtils.kt)53
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/CaptionWindowDecorationTests.kt6
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt110
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java316
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java97
-rw-r--r--libs/androidfw/CursorWindow.cpp21
-rw-r--r--libs/androidfw/include/androidfw/CursorWindow.h4
-rw-r--r--libs/hwui/hwui/Paint.h9
-rw-r--r--libs/hwui/hwui/PaintImpl.cpp3
-rw-r--r--libs/hwui/jni/Paint.cpp33
-rw-r--r--media/java/android/media/RingtoneManager.java19
-rw-r--r--media/java/android/media/tv/interactive/ITvInteractiveAppSessionWrapper.java4
-rw-r--r--media/jni/android_media_ImageWriter.cpp9
-rw-r--r--packages/CrashRecovery/aconfig/flags.aconfig7
-rw-r--r--packages/PackageInstaller/TEST_MAPPING22
-rw-r--r--packages/SettingsLib/Android.bp2
-rw-r--r--packages/SettingsLib/ButtonPreference/res/values/attrs.xml10
-rw-r--r--packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt48
-rw-r--r--packages/SettingsLib/SelectorWithWidgetPreference/src/com/android/settingslib/widget/SelectorWithWidgetPreference.java18
-rw-r--r--packages/SettingsLib/SettingsTheme/res/values-v35/styles_expressive.xml11
-rw-r--r--packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/CollapsableTextView.kt47
-rw-r--r--packages/SettingsLib/SliderPreference/Android.bp31
-rw-r--r--packages/SettingsLib/SliderPreference/AndroidManifest.xml23
-rw-r--r--packages/SettingsLib/SliderPreference/res/layout/settingslib_expressive_layout_slider.xml70
-rw-r--r--packages/SettingsLib/SliderPreference/res/layout/settingslib_expressive_preference_slider.xml99
-rw-r--r--packages/SettingsLib/SliderPreference/res/values/attrs_expressive.xml27
-rw-r--r--packages/SettingsLib/SliderPreference/res/values/colors_expressive.xml23
-rw-r--r--packages/SettingsLib/SliderPreference/res/values/dimens_expressive.xml28
-rw-r--r--packages/SettingsLib/SliderPreference/src/com/android/settingslib/widget/SliderPreference.java668
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/IntroPreference.kt2
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetPreference.kt9
-rw-r--r--packages/SettingsLib/StatusBannerPreference/Android.bp33
-rw-r--r--packages/SettingsLib/StatusBannerPreference/AndroidManifest.xml23
-rw-r--r--packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_high.xml21
-rw-r--r--packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_low.xml21
-rw-r--r--packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_medium.xml21
-rw-r--r--packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_generic.xml21
-rw-r--r--packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_high.xml21
-rw-r--r--packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_low.xml21
-rw-r--r--packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_medium.xml21
-rw-r--r--packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_high.xml28
-rw-r--r--packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_low.xml28
-rw-r--r--packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_medium.xml28
-rw-r--r--packages/SettingsLib/StatusBannerPreference/res/layout/settingslib_expressive_preference_statusbanner.xml94
-rw-r--r--packages/SettingsLib/StatusBannerPreference/res/values/attrs.xml33
-rw-r--r--packages/SettingsLib/StatusBannerPreference/res/values/colors.xml25
-rw-r--r--packages/SettingsLib/StatusBannerPreference/res/values/dimens.xml19
-rw-r--r--packages/SettingsLib/StatusBannerPreference/src/com/android/settingslib/widget/StatusBannerPreference.kt197
-rw-r--r--packages/SettingsLib/TopIntroPreference/src/com/android/settingslib/widget/TopIntroPreference.kt16
-rw-r--r--packages/SettingsLib/res/values-en-rGB/strings.xml7
-rw-r--r--packages/SettingsLib/res/values-pt-rBR/strings.xml7
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/RestrictedInterface.kt49
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/RestrictedSliderPreference.java151
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java52
-rw-r--r--packages/SystemUI/aconfig/systemui.aconfig14
-rw-r--r--packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt11
-rw-r--r--packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationScrimNestedScrollConnection.kt2
-rw-r--r--packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationStackNestedScrollConnection.kt2
-rw-r--r--packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt16
-rw-r--r--packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt13
-rw-r--r--packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/SingleShadeMeasurePolicy.kt35
-rw-r--r--packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/DraggableHandler.kt64
-rw-r--r--packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/MultiPointerDraggable.kt18
-rw-r--r--packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SwipeAnimation.kt22
-rw-r--r--packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/LargeTopAppBarNestedScrollConnection.kt2
-rw-r--r--packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/PriorityNestedScrollConnection.kt19
-rw-r--r--packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt359
-rw-r--r--packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/MultiPointerDraggableTest.kt5
-rw-r--r--packages/SystemUI/compose/scene/tests/src/com/android/compose/nestedscroll/PriorityNestedScrollConnectionTest.kt2
-rw-r--r--packages/SystemUI/frp/Android.bp49
-rw-r--r--packages/SystemUI/frp/OWNERS3
-rw-r--r--packages/SystemUI/frp/README.md64
-rw-r--r--packages/SystemUI/frp/docs/flow-to-frp-cheatsheet.md330
-rw-r--r--packages/SystemUI/frp/docs/semantics.md225
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/Combinators.kt250
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpBuildScope.kt864
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpEffectScope.kt48
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpNetwork.kt195
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpScope.kt73
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpStateScope.kt780
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpTransactionScope.kt65
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/TFlow.kt560
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/TState.kt492
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/Transactional.kt72
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/debug/Debug.kt180
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/BuildScopeImpl.kt363
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/DeferScope.kt48
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Demux.kt349
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/EvalScopeImpl.kt119
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/FilterNode.kt47
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Graph.kt530
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Init.kt60
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Inputs.kt120
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/InternalScopes.kt82
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Mux.kt326
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/MuxDeferred.kt473
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/MuxPrompt.kt472
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Network.kt252
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/NoScope.kt47
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/NodeTypes.kt94
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Output.kt59
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/PullNodes.kt74
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Scheduler.kt106
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/StateScopeImpl.kt257
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TFlowImpl.kt62
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TStateImpl.kt377
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TransactionalImpl.kt46
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/Bag.kt79
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/ConcurrentNullableHashMap.kt46
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/HeteroMap.kt53
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/MapUtils.kt66
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/Util.kt78
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/Either.kt114
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/Maybe.kt271
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/These.kt148
-rw-r--r--packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/WithPrev.kt20
-rw-r--r--packages/SystemUI/frp/test/com/android/systemui/experimental/frp/FrpTests.kt1370
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/BiometricTestExtensions.kt93
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinderTest.kt257
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/viewmodel/SideFpsOverlayViewModelTest.kt81
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractorTest.kt69
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoaderTest.kt34
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationListViewModelTest.kt29
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/HeadsUpManagerPhoneTest.kt27
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/EasterEggGestureTest.kt156
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandlerTest.kt5
-rw-r--r--packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml13
-rw-r--r--packages/SystemUI/res/layout/biometric_prompt_two_pane_layout.xml13
-rw-r--r--packages/SystemUI/res/values-en-rGB/strings.xml5
-rw-r--r--packages/SystemUI/res/values-night/styles.xml5
-rw-r--r--packages/SystemUI/res/values-pt-rBR/strings.xml2
-rw-r--r--packages/SystemUI/res/values/styles.xml2
-rw-r--r--packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java7
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java66
-rw-r--r--packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt162
-rw-r--r--packages/SystemUI/src/com/android/keyguard/logging/SimLogger.kt131
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt54
-rw-r--r--packages/SystemUI/src/com/android/systemui/bouncer/util/BouncerTestUtils.kt38
-rw-r--r--packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardListener.java20
-rw-r--r--packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionController.kt (renamed from ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRedirectionClass.java)29
-rw-r--r--packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionControllerImpl.kt50
-rw-r--r--packages/SystemUI/src/com/android/systemui/clipboardoverlay/dagger/ClipboardOverlaySuppressionModule.kt32
-rw-r--r--packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/display/data/repository/FocusedDisplayRepository.kt69
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt22
-rw-r--r--packages/SystemUI/src/com/android/systemui/log/dagger/FocusedDisplayRepoLog.kt (renamed from ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepPartialClass.java)25
-rw-r--r--packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java18
-rw-r--r--packages/SystemUI/src/com/android/systemui/log/dagger/SimLog.kt22
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/LegacyMediaDataManagerImpl.kt10
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoader.kt24
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessor.kt10
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverLogger.kt34
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverRippleController.kt8
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/ReceiverChipRippleView.kt27
-rw-r--r--packages/SystemUI/src/com/android/systemui/model/SceneContainerPlugin.kt5
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt133
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotData.kt12
-rw-r--r--packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotExecutor.kt104
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowViewController.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/HeadsUpManagerPhone.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/AvalancheController.kt50
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseHeadsUpManager.java15
-rw-r--r--packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/GestureTutorialScreen.kt41
-rw-r--r--packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/EasterEggGestureMonitor.kt151
-rw-r--r--packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandler.kt7
-rw-r--r--packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureMonitor.kt4
-rw-r--r--packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java35
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardListenerTest.java66
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionControllerImplTest.kt114
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/screenshot/TakeScreenshotExecutorTest.kt78
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/shared/system/QuickStepContractTest.kt6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java9
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/util/KeyguardTransitionRepositorySpySubject.kt19
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/util/NoUiThreadTestRule.kt41
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/util/NoUiThreadTestRuleTest.kt75
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/util/UiThread.java58
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/util/UiThreadRunTest.java44
-rw-r--r--ravenwood/Android.bp17
-rw-r--r--ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodClassLoadHook.java48
-rw-r--r--ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeep.java37
-rw-r--r--ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepWholeClass.java39
-rw-r--r--ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRemove.java52
-rw-r--r--ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodReplace.java50
-rw-r--r--ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodThrow.java51
-rw-r--r--services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerServiceImpl.java42
-rw-r--r--services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCaller.java36
-rw-r--r--services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCallerImpl.java55
-rw-r--r--services/appfunctions/java/com/android/server/appfunctions/ServiceConfig.java7
-rw-r--r--services/appfunctions/java/com/android/server/appfunctions/ServiceConfigImpl.java13
-rw-r--r--services/companion/java/com/android/server/companion/securechannel/SecureChannel.java10
-rw-r--r--services/core/Android.bp6
-rw-r--r--services/core/java/com/android/server/PackageWatchdog.java10
-rw-r--r--services/core/java/com/android/server/RescueParty.java52
-rw-r--r--services/core/java/com/android/server/StorageManagerService.java3
-rw-r--r--services/core/java/com/android/server/accounts/AccountManagerService.java9
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java2
-rw-r--r--services/core/java/com/android/server/am/BatteryStatsService.java24
-rw-r--r--services/core/java/com/android/server/biometrics/OWNERS2
-rw-r--r--services/core/java/com/android/server/display/DisplayGroup.java10
-rw-r--r--services/core/java/com/android/server/display/DisplayManagerService.java32
-rw-r--r--services/core/java/com/android/server/display/DisplayTopology.java201
-rw-r--r--services/core/java/com/android/server/display/DisplayTopologyCoordinator.java126
-rw-r--r--services/core/java/com/android/server/display/ExternalDisplayStatsService.java22
-rw-r--r--services/core/java/com/android/server/display/LogicalDisplayMapper.java17
-rw-r--r--services/core/java/com/android/server/location/contexthub/ContextHubClientBroker.java9
-rw-r--r--services/core/java/com/android/server/notification/GroupHelper.java4
-rw-r--r--services/core/java/com/android/server/notification/NotificationManagerService.java140
-rw-r--r--services/core/java/com/android/server/pm/TEST_MAPPING32
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java3
-rw-r--r--services/core/java/com/android/server/policy/WindowManagerPolicy.java5
-rw-r--r--services/core/java/com/android/server/power/Notifier.java53
-rw-r--r--services/core/java/com/android/server/power/PowerManagerService.java4
-rw-r--r--services/core/java/com/android/server/power/stats/BatteryChargeCalculator.java8
-rw-r--r--services/core/java/com/android/server/power/stats/BatteryStatsImpl.java67
-rw-r--r--services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java136
-rw-r--r--services/core/java/com/android/server/power/stats/BluetoothPowerStatsCollector.java2
-rw-r--r--services/core/java/com/android/server/power/stats/CpuPowerStatsCollector.java3
-rw-r--r--services/core/java/com/android/server/power/stats/EnergyConsumerPowerStatsCollector.java3
-rw-r--r--services/core/java/com/android/server/power/stats/ScreenPowerStatsCollector.java7
-rw-r--r--services/core/java/com/android/server/power/stats/WakelockPowerStatsCollector.java128
-rw-r--r--services/core/java/com/android/server/power/stats/WifiPowerStatsCollector.java6
-rw-r--r--services/core/java/com/android/server/power/stats/format/BasePowerStatsLayout.java105
-rw-r--r--services/core/java/com/android/server/power/stats/format/PowerStatsLayout.java14
-rw-r--r--services/core/java/com/android/server/power/stats/format/WakelockPowerStatsLayout.java31
-rw-r--r--services/core/java/com/android/server/power/stats/processor/AggregatedPowerStats.java7
-rw-r--r--services/core/java/com/android/server/power/stats/processor/AggregatedPowerStatsConfig.java26
-rw-r--r--services/core/java/com/android/server/power/stats/processor/BasePowerStatsProcessor.java173
-rw-r--r--services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java71
-rw-r--r--services/core/java/com/android/server/power/stats/processor/MultiStatePowerAttributor.java24
-rw-r--r--services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java9
-rw-r--r--services/core/java/com/android/server/power/stats/processor/PowerStatsAggregator.java22
-rw-r--r--services/core/java/com/android/server/power/stats/processor/PowerStatsExporter.java73
-rw-r--r--services/core/java/com/android/server/power/stats/processor/PowerStatsProcessor.java8
-rw-r--r--services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java5
-rw-r--r--services/core/java/com/android/server/power/stats/processor/WakelockPowerStatsProcessor.java63
-rw-r--r--services/core/java/com/android/server/security/AttestationVerificationManagerService.java18
-rw-r--r--services/core/java/com/android/server/security/AttestationVerificationPeerDeviceVerifier.java156
-rw-r--r--services/core/java/com/android/server/security/AttestationVerificationSelfTrustedVerifierForTesting.java80
-rw-r--r--services/core/java/com/android/server/wm/ActivityClientController.java4
-rw-r--r--services/core/java/com/android/server/wm/ActivityRecord.java26
-rw-r--r--services/core/java/com/android/server/wm/ActivityRefresher.java2
-rw-r--r--services/core/java/com/android/server/wm/ActivityStarter.java4
-rw-r--r--services/core/java/com/android/server/wm/ActivityTaskManagerService.java12
-rw-r--r--services/core/java/com/android/server/wm/ActivityTaskSupervisor.java4
-rw-r--r--services/core/java/com/android/server/wm/AppTransition.java6
-rw-r--r--services/core/java/com/android/server/wm/AppTransitionController.java4
-rw-r--r--services/core/java/com/android/server/wm/BLASTSyncEngine.java2
-rw-r--r--services/core/java/com/android/server/wm/BackNavigationController.java2
-rw-r--r--services/core/java/com/android/server/wm/BlackFrame.java2
-rw-r--r--services/core/java/com/android/server/wm/CameraCompatFreeformPolicy.java4
-rw-r--r--services/core/java/com/android/server/wm/CameraStateMonitor.java2
-rw-r--r--services/core/java/com/android/server/wm/CompatModePackages.java2
-rw-r--r--services/core/java/com/android/server/wm/ContentRecorder.java2
-rw-r--r--services/core/java/com/android/server/wm/ContentRecordingController.java2
-rw-r--r--services/core/java/com/android/server/wm/DeferredDisplayUpdater.java2
-rw-r--r--services/core/java/com/android/server/wm/Dimmer.java2
-rw-r--r--services/core/java/com/android/server/wm/DimmerAnimationHelper.java2
-rw-r--r--services/core/java/com/android/server/wm/DisplayArea.java2
-rw-r--r--services/core/java/com/android/server/wm/DisplayAreaOrganizerController.java2
-rw-r--r--services/core/java/com/android/server/wm/DisplayAreaPolicyBuilder.java2
-rw-r--r--services/core/java/com/android/server/wm/DisplayContent.java22
-rw-r--r--services/core/java/com/android/server/wm/DisplayPolicy.java7
-rw-r--r--services/core/java/com/android/server/wm/DisplayRotation.java4
-rw-r--r--services/core/java/com/android/server/wm/DisplayRotationCompatPolicy.java2
-rw-r--r--services/core/java/com/android/server/wm/DisplayRotationReversionController.java2
-rw-r--r--services/core/java/com/android/server/wm/DragState.java4
-rw-r--r--services/core/java/com/android/server/wm/EmbeddedWindowController.java2
-rw-r--r--services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java2
-rw-r--r--services/core/java/com/android/server/wm/InputMonitor.java2
-rw-r--r--services/core/java/com/android/server/wm/InsetsSourceProvider.java2
-rw-r--r--services/core/java/com/android/server/wm/InsetsStateController.java2
-rw-r--r--services/core/java/com/android/server/wm/LockTaskController.java2
-rw-r--r--services/core/java/com/android/server/wm/NonAppWindowAnimationAdapter.java2
-rw-r--r--services/core/java/com/android/server/wm/RecentTasks.java2
-rw-r--r--services/core/java/com/android/server/wm/RecentsAnimation.java2
-rw-r--r--services/core/java/com/android/server/wm/RemoteAnimationController.java2
-rw-r--r--services/core/java/com/android/server/wm/RemoteDisplayChangeController.java2
-rw-r--r--services/core/java/com/android/server/wm/ResetTargetTaskHelper.java4
-rw-r--r--services/core/java/com/android/server/wm/RootWindowContainer.java22
-rw-r--r--services/core/java/com/android/server/wm/ScreenRecordingCallbackController.java2
-rw-r--r--services/core/java/com/android/server/wm/ScreenRotationAnimation.java4
-rw-r--r--services/core/java/com/android/server/wm/Session.java2
-rw-r--r--services/core/java/com/android/server/wm/SurfaceAnimator.java2
-rw-r--r--services/core/java/com/android/server/wm/SurfaceFreezer.java2
-rw-r--r--services/core/java/com/android/server/wm/Task.java14
-rw-r--r--services/core/java/com/android/server/wm/TaskDisplayArea.java2
-rw-r--r--services/core/java/com/android/server/wm/TaskFragment.java2
-rw-r--r--services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java10
-rw-r--r--services/core/java/com/android/server/wm/TaskOrganizerController.java2
-rw-r--r--services/core/java/com/android/server/wm/Transition.java246
-rw-r--r--services/core/java/com/android/server/wm/TransitionController.java57
-rw-r--r--services/core/java/com/android/server/wm/TrustedPresentationListenerController.java2
-rw-r--r--services/core/java/com/android/server/wm/WallpaperAnimationAdapter.java2
-rw-r--r--services/core/java/com/android/server/wm/WallpaperController.java2
-rw-r--r--services/core/java/com/android/server/wm/WallpaperWindowToken.java4
-rw-r--r--services/core/java/com/android/server/wm/WindowAnimator.java2
-rw-r--r--services/core/java/com/android/server/wm/WindowContainer.java10
-rw-r--r--services/core/java/com/android/server/wm/WindowContainerThumbnail.java2
-rw-r--r--services/core/java/com/android/server/wm/WindowContextListenerController.java4
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java46
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerShellCommand.java46
-rw-r--r--services/core/java/com/android/server/wm/WindowOrganizerController.java6
-rw-r--r--services/core/java/com/android/server/wm/WindowProcessController.java2
-rw-r--r--services/core/java/com/android/server/wm/WindowState.java26
-rw-r--r--services/core/java/com/android/server/wm/WindowStateAnimator.java12
-rw-r--r--services/core/java/com/android/server/wm/WindowToken.java8
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java13
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/PolicyState.java20
-rw-r--r--services/java/com/android/server/SystemServer.java4
-rw-r--r--services/net/Android.bp1
-rw-r--r--services/profcollect/src/com/android/server/profcollect/Utils.java25
-rw-r--r--services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java42
-rw-r--r--services/tests/displayservicetests/src/com/android/server/display/DisplayTopologyCoordinatorTest.kt83
-rw-r--r--services/tests/displayservicetests/src/com/android/server/display/DisplayTopologyTest.kt121
-rw-r--r--services/tests/powerservicetests/src/com/android/server/power/NotifierTest.java92
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsAtomTest.java8
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsProviderTest.java87
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsRule.java17
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsTest.java8
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/WakelockPowerStatsCollectorTest.java126
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/BasePowerStatsProcessorTest.java260
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java1
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/CpuPowerStatsProcessorTest.java54
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java2
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/PowerStatsExporterTest.java5
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java177
-rw-r--r--services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java1
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java24
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java169
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java126
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/ZenModeDiffTest.java295
-rw-r--r--services/tests/wmtests/Android.bp2
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/ProtoLogIntegrationTest.java6
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/TransitionTests.java10
-rw-r--r--services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java3
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java19
-rw-r--r--telephony/java/com/android/internal/telephony/ITelephony.aidl11
-rw-r--r--tests/AttestationVerificationTest/src/android/security/attestationverification/PeerDeviceSystemAttestationVerificationTest.kt17
-rw-r--r--tests/AttestationVerificationTest/src/android/security/attestationverification/SystemAttestationVerificationTest.kt39
-rw-r--r--tests/AttestationVerificationTest/src/com/android/server/security/AttestationVerificationPeerDeviceVerifierTest.kt48
-rw-r--r--tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt2
-rw-r--r--tests/vcn/java/com/android/server/vcn/TelephonySubscriptionTrackerTest.java10
-rw-r--r--tools/aapt2/ResourceParser.cpp25
-rw-r--r--tools/aapt2/Resources.proto5
-rw-r--r--tools/aapt2/format/proto/ProtoDeserialize.cpp19
-rw-r--r--tools/aapt2/format/proto/ProtoSerialize.cpp7
-rw-r--r--tools/aapt2/integration-tests/FlaggedResourcesTest/Android.bp2
-rw-r--r--tools/aapt2/integration-tests/FlaggedResourcesTest/res/values/styles.xml21
-rw-r--r--tools/processors/property_cache/OWNERS3
567 files changed, 31097 insertions, 56346 deletions
diff --git a/ADPF_OWNERS b/ADPF_OWNERS
index e6ca8f4bd48a..bcdc33825a13 100644
--- a/ADPF_OWNERS
+++ b/ADPF_OWNERS
@@ -1,3 +1,4 @@
-lpy@google.com
-mattbuckley@google.com
+sumir@google.com
+chingtangyu@google.com
xwxw@google.com
+mattbuckley@google.com
diff --git a/AconfigFlags.bp b/AconfigFlags.bp
index a0f38d9a7bd9..fbe4905d9754 100644
--- a/AconfigFlags.bp
+++ b/AconfigFlags.bp
@@ -15,6 +15,7 @@
aconfig_declarations_group {
name: "framework-minus-apex-aconfig-declarations",
aconfig_declarations_groups: [
+ "aconfig_trade_in_mode_flags",
"audio-framework-aconfig",
],
java_aconfig_libraries: [
@@ -1643,3 +1644,29 @@ java_aconfig_library {
aconfig_declarations: "android.app.jank.flags-aconfig",
defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
+
+// Trade in mode
+aconfig_declarations {
+ name: "aconfig_trade_in_mode_flags",
+ package: "com.android.tradeinmode.flags",
+ container: "system",
+ srcs: [
+ "core/java/android/os/image/flags/trade_in_mode_flags.aconfig",
+ ],
+}
+
+java_aconfig_library {
+ name: "aconfig_trade_in_mode_flags_java_lib",
+ aconfig_declarations: "aconfig_trade_in_mode_flags",
+ defaults: ["framework-minus-apex-aconfig-java-defaults"],
+}
+
+cc_aconfig_library {
+ name: "android_trade_in_mode_flags_cc_lib",
+ aconfig_declarations: "aconfig_trade_in_mode_flags",
+ apex_available: [
+ "//apex_available:platform",
+ "com.android.adbd",
+ ],
+ min_sdk_version: "apex_inherit",
+}
diff --git a/Android.bp b/Android.bp
index 8c0158549d2d..516fc9c55222 100644
--- a/Android.bp
+++ b/Android.bp
@@ -64,7 +64,6 @@ filegroup {
srcs: [
// Java/AIDL sources under frameworks/base
":framework-annotations",
- ":ravenwood-annotations",
":framework-blobstore-sources",
":framework-core-sources",
":framework-drm-sources",
@@ -296,7 +295,6 @@ java_defaults {
enforce_permissions_exceptions: [
// Do not add entries to this list.
":framework-annotations",
- ":ravenwood-annotations",
":framework-blobstore-sources",
":framework-core-sources",
":framework-drm-sources",
@@ -600,8 +598,6 @@ filegroup {
filegroup {
name: "framework-networkstack-shared-srcs",
srcs: [
- // TODO: remove these annotations as soon as we can use andoid.support.annotations.*
- ":framework-annotations",
":modules-utils-preconditions-srcs",
"core/java/android/util/IndentingPrintWriter.java",
"core/java/android/util/LocalLog.java",
diff --git a/GAME_MANAGER_OWNERS b/GAME_MANAGER_OWNERS
index b65c43a8d7f0..bcdc33825a13 100644
--- a/GAME_MANAGER_OWNERS
+++ b/GAME_MANAGER_OWNERS
@@ -1,3 +1,4 @@
-lpy@google.com
+sumir@google.com
chingtangyu@google.com
xwxw@google.com
+mattbuckley@google.com
diff --git a/OWNERS b/OWNERS
index 096da29c2b21..afa60bea5aa0 100644
--- a/OWNERS
+++ b/OWNERS
@@ -45,3 +45,7 @@ per-file PERFORMANCE_OWNERS = file:/PERFORMANCE_OWNERS
per-file PACKAGE_MANAGER_OWNERS = file:/PACKAGE_MANAGER_OWNERS
per-file WEAR_OWNERS = file:/WEAR_OWNERS
+
+per-file ADPF_OWNERS = file:/ADPF_OWNERS
+
+per-file GAME_MANAGER_OWNERS = file:/GAME_MANAGER_OWNERS
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 3af36ebb08ca..e200434d9ff2 100644
--- a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
+++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
@@ -1404,7 +1404,11 @@ public class BlobStoreManagerService extends SystemService {
if (LOGV) {
Slog.v(TAG, "Received " + intent);
}
- switch (intent.getAction()) {
+ final String action = intent.getAction();
+ if (action == null) {
+ return;
+ }
+ switch (action) {
case Intent.ACTION_PACKAGE_FULLY_REMOVED:
case Intent.ACTION_PACKAGE_DATA_CLEARED:
final String packageName = intent.getData().getSchemeSpecificPart();
@@ -1431,7 +1435,11 @@ public class BlobStoreManagerService extends SystemService {
if (LOGV) {
Slog.v(TAG, "Received: " + intent);
}
- switch (intent.getAction()) {
+ final String action = intent.getAction();
+ if (action == null) {
+ return;
+ }
+ switch (action) {
case Intent.ACTION_USER_REMOVED:
final int userId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE,
USER_NULL);
diff --git a/api/StubLibraries.bp b/api/StubLibraries.bp
index d1aa23c8ea5f..a949ff5a331b 100644
--- a/api/StubLibraries.bp
+++ b/api/StubLibraries.bp
@@ -364,19 +364,14 @@ java_defaults {
java_library {
name: "android-non-updatable.stubs",
defaults: ["android-non-updatable_defaults"],
- static_libs: [
- "android-non-updatable.stubs.from-source",
- ],
- product_variables: {
- build_from_text_stub: {
- static_libs: [
- "android-non-updatable.stubs.from-text",
- ],
- exclude_static_libs: [
- "android-non-updatable.stubs.from-source",
- ],
- },
- },
+ static_libs: select(product_variable("build_from_text_stub"), {
+ true: [
+ "android-non-updatable.stubs.from-text",
+ ],
+ default: [
+ "android-non-updatable.stubs.from-source",
+ ],
+ }),
}
java_library {
@@ -390,19 +385,14 @@ java_library {
java_library {
name: "android-non-updatable.stubs.system",
defaults: ["android-non-updatable_defaults"],
- static_libs: [
- "android-non-updatable.stubs.system.from-source",
- ],
- product_variables: {
- build_from_text_stub: {
- static_libs: [
- "android-non-updatable.stubs.system.from-text",
- ],
- exclude_static_libs: [
- "android-non-updatable.stubs.system.from-source",
- ],
- },
- },
+ static_libs: select(product_variable("build_from_text_stub"), {
+ true: [
+ "android-non-updatable.stubs.system.from-text",
+ ],
+ default: [
+ "android-non-updatable.stubs.system.from-source",
+ ],
+ }),
}
java_library {
@@ -416,19 +406,14 @@ java_library {
java_library {
name: "android-non-updatable.stubs.module_lib",
defaults: ["android-non-updatable_defaults"],
- static_libs: [
- "android-non-updatable.stubs.module_lib.from-source",
- ],
- product_variables: {
- build_from_text_stub: {
- static_libs: [
- "android-non-updatable.stubs.module_lib.from-text",
- ],
- exclude_static_libs: [
- "android-non-updatable.stubs.module_lib.from-source",
- ],
- },
- },
+ static_libs: select(product_variable("build_from_text_stub"), {
+ true: [
+ "android-non-updatable.stubs.module_lib.from-text",
+ ],
+ default: [
+ "android-non-updatable.stubs.module_lib.from-source",
+ ],
+ }),
}
java_library {
@@ -442,19 +427,14 @@ java_library {
java_library {
name: "android-non-updatable.stubs.test",
defaults: ["android-non-updatable_defaults"],
- static_libs: [
- "android-non-updatable.stubs.test.from-source",
- ],
- product_variables: {
- build_from_text_stub: {
- static_libs: [
- "android-non-updatable.stubs.test.from-text",
- ],
- exclude_static_libs: [
- "android-non-updatable.stubs.test.from-source",
- ],
- },
- },
+ static_libs: select(product_variable("build_from_text_stub"), {
+ true: [
+ "android-non-updatable.stubs.test.from-text",
+ ],
+ default: [
+ "android-non-updatable.stubs.test.from-source",
+ ],
+ }),
}
java_library {
@@ -468,19 +448,14 @@ java_library {
java_library {
name: "android-non-updatable.stubs.system_server",
defaults: ["android-non-updatable_defaults"],
- static_libs: [
- "android-non-updatable.stubs.system_server.from-source",
- ],
- product_variables: {
- build_from_text_stub: {
- static_libs: [
- "android-non-updatable.stubs.system_server.from-text",
- ],
- exclude_static_libs: [
- "android-non-updatable.stubs.system_server.from-source",
- ],
- },
- },
+ static_libs: select(product_variable("build_from_text_stub"), {
+ true: [
+ "android-non-updatable.stubs.system_server.from-text",
+ ],
+ default: [
+ "android-non-updatable.stubs.system_server.from-source",
+ ],
+ }),
}
java_library {
diff --git a/boot/README.md b/boot/README.md
new file mode 100644
index 000000000000..d9219c801b7b
--- /dev/null
+++ b/boot/README.md
@@ -0,0 +1,10 @@
+# Configuration files for ART compiling the framework
+
+* boot-image-profile.txt: A list of methods from the framework boot classpath
+ to be compiled by dex2oat. The order in the file is not relevant.
+* boot-profile.txt: An ordered list of methods from the boot classpath to be
+ compiled by the JIT in the order provided in the file. Used by JIT zygote,
+ when on-device signing failed.
+* boot-image-profile-extra.txt: An extra list of methods from the framework
+ boot classpath to be compiled by dex2oat on top of what we have at
+ boot-image-profile.txt.
diff --git a/config/boot-image-profile-extra.txt b/boot/boot-image-profile-extra.txt
index e3b187e0a66d..e3b187e0a66d 100644
--- a/config/boot-image-profile-extra.txt
+++ b/boot/boot-image-profile-extra.txt
diff --git a/config/boot-profile.txt b/boot/boot-profile.txt
index e0e9164b3f90..e0e9164b3f90 100644
--- a/config/boot-profile.txt
+++ b/boot/boot-profile.txt
diff --git a/cmds/uinput/README.md b/cmds/uinput/README.md
index 5d3f12e0d59f..6138388b30c7 100644
--- a/cmds/uinput/README.md
+++ b/cmds/uinput/README.md
@@ -83,6 +83,11 @@ control values to be sent to the uinput device, which depends on the control cod
Due to the sequential nature in which this is parsed, the `type` field must be specified before
the `data` field in this JSON Object.
+Every `register` command will need a `"UI_SET_EVBIT"` configuration entry that lists what types of
+axes it declares. This entry should be the first in the list. For example, if the uinput device has
+`"UI_SET_KEYBIT"` and `"UI_SET_RELBIT"` configuration entries, it will also need a `"UI_SET_EVBIT"`
+entry with data of `["EV_KEY", "EV_REL"]` or the other configuration entries will be ignored.
+
`ff_effects_max` must be provided if `UI_SET_FFBIT` is used in `configuration`.
`abs_info` fields are provided to set the device axes information. It is an array of below objects:
diff --git a/config/README.md b/config/README.md
index 450a5c695c82..f2c8930575a5 100644
--- a/config/README.md
+++ b/config/README.md
@@ -1,10 +1,5 @@
# Configuration files for ART compiling the framework
-* boot-image-profile.txt: A list of methods from the boot classpath to be compiled by dex2oat.
- The order in the file is not relevant.
-* boot-profile.txt: An ordered list of methods from the boot classpath to be compiled by
- the JIT in the order provided in the file. Used by JIT zygote, when on-device
- signing failed.
* dirty-image-objects: List of objects in the boot image which are known to
become dirty. This helps binning objects in the image file.
* preloaded-classes: classes that will be allocated in the boot image, and
diff --git a/config/boot-image-profile.txt b/config/boot-image-profile.txt
deleted file mode 100644
index ee417e8e8639..000000000000
--- a/config/boot-image-profile.txt
+++ /dev/null
@@ -1,50393 +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.
-#
-HSPLandroid/accessibilityservice/AccessibilityServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/accessibilityservice/AccessibilityServiceInfo;
-HSPLandroid/accessibilityservice/AccessibilityServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/accessibilityservice/AccessibilityServiceInfo;->getId()Ljava/lang/String;
-HSPLandroid/accessibilityservice/AccessibilityServiceInfo;->initFromParcel(Landroid/os/Parcel;)V
-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;
-HSPLandroid/accounts/Account$1;->newArray(I)[Ljava/lang/Object;
-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
-HSPLandroid/accounts/Account;->hashCode()I
-HSPLandroid/accounts/Account;->onAccountAccessed(Ljava/lang/String;)V
-HSPLandroid/accounts/Account;->toString()Ljava/lang/String;
-HSPLandroid/accounts/Account;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/accounts/AccountManager$10;-><init>(Landroid/accounts/AccountManager;Landroid/app/Activity;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;Landroid/accounts/Account;Ljava/lang/String;ZLandroid/os/Bundle;)V
-HSPLandroid/accounts/AccountManager$10;->doWork()V
-HSPLandroid/accounts/AccountManager$18;->run()V
-HSPLandroid/accounts/AccountManager$1;-><init>(Landroid/accounts/AccountManager;ILjava/lang/String;)V
-HSPLandroid/accounts/AccountManager$1;->bypass(Landroid/content/pm/UserPackage;)Z
-HSPLandroid/accounts/AccountManager$1;->bypass(Ljava/lang/Object;)Z
-HSPLandroid/accounts/AccountManager$1;->recompute(Landroid/content/pm/UserPackage;)[Landroid/accounts/Account;
-HSPLandroid/accounts/AccountManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/accounts/AccountManager$20;-><init>(Landroid/accounts/AccountManager;)V
-HSPLandroid/accounts/AccountManager$2;-><init>(Landroid/accounts/AccountManager;ILjava/lang/String;)V
-HSPLandroid/accounts/AccountManager$2;->recompute(Landroid/accounts/AccountManager$AccountKeyData;)Ljava/lang/String;
-HSPLandroid/accounts/AccountManager$2;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/accounts/AccountManager$4;->bundleToResult(Landroid/os/Bundle;)Ljava/lang/Boolean;
-HSPLandroid/accounts/AccountManager$4;->bundleToResult(Landroid/os/Bundle;)Ljava/lang/Object;
-HSPLandroid/accounts/AccountManager$4;->doWork()V
-HSPLandroid/accounts/AccountManager$5;-><init>(Landroid/accounts/AccountManager;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;Ljava/lang/String;[Ljava/lang/String;)V
-HSPLandroid/accounts/AccountManager$5;->bundleToResult(Landroid/os/Bundle;)Ljava/lang/Object;
-HSPLandroid/accounts/AccountManager$5;->bundleToResult(Landroid/os/Bundle;)[Landroid/accounts/Account;
-HSPLandroid/accounts/AccountManager$5;->doWork()V
-HSPLandroid/accounts/AccountManager$AccountKeyData;-><init>(Landroid/accounts/Account;Ljava/lang/String;)V
-HSPLandroid/accounts/AccountManager$AccountKeyData;->equals(Ljava/lang/Object;)Z
-HSPLandroid/accounts/AccountManager$AccountKeyData;->hashCode()I
-HSPLandroid/accounts/AccountManager$AmsTask$1;-><init>(Landroid/accounts/AccountManager;)V
-HSPLandroid/accounts/AccountManager$AmsTask$Response;-><init>(Landroid/accounts/AccountManager$AmsTask;)V
-HSPLandroid/accounts/AccountManager$AmsTask$Response;-><init>(Landroid/accounts/AccountManager$AmsTask;Landroid/accounts/AccountManager$AmsTask$Response-IA;)V
-HSPLandroid/accounts/AccountManager$AmsTask$Response;->onResult(Landroid/os/Bundle;)V
-HSPLandroid/accounts/AccountManager$AmsTask;-><init>(Landroid/accounts/AccountManager;Landroid/app/Activity;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;)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$1;-><init>(Landroid/accounts/AccountManager;)V
-HSPLandroid/accounts/AccountManager$BaseFutureTask$Response;-><init>(Landroid/accounts/AccountManager$BaseFutureTask;)V
-HSPLandroid/accounts/AccountManager$BaseFutureTask$Response;->onResult(Landroid/os/Bundle;)V
-HSPLandroid/accounts/AccountManager$BaseFutureTask;-><init>(Landroid/accounts/AccountManager;Landroid/os/Handler;)V
-HSPLandroid/accounts/AccountManager$BaseFutureTask;->startTask()V
-HSPLandroid/accounts/AccountManager$Future2Task;-><init>(Landroid/accounts/AccountManager;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;)V
-HSPLandroid/accounts/AccountManager$Future2Task;->done()V
-HSPLandroid/accounts/AccountManager$Future2Task;->getResult()Ljava/lang/Object;
-HSPLandroid/accounts/AccountManager$Future2Task;->internalGetResult(Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Ljava/lang/Object;
-HSPLandroid/accounts/AccountManager$Future2Task;->start()Landroid/accounts/AccountManager$Future2Task;
-HSPLandroid/accounts/AccountManager;->-$$Nest$fgetmService(Landroid/accounts/AccountManager;)Landroid/accounts/IAccountManager;
-HSPLandroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
-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;
-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;
-HSPLandroid/accounts/AccountManager;->getAuthenticatorTypesAsUser(I)[Landroid/accounts/AuthenticatorDescription;
-HSPLandroid/accounts/AccountManager;->getUserData(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
-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
-HSPLandroid/accounts/AccountManager;->removeOnAccountsUpdatedListener(Landroid/accounts/OnAccountsUpdateListener;)V
-HSPLandroid/accounts/AccountManager;->setUserData(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)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/IAccountManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/accounts/IAccountManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-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;
-HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getUserData(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/accounts/IAccountManager$Stub$Proxy;->invalidateAuthToken(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/accounts/IAccountManager$Stub$Proxy;->onAccountAccessed(Ljava/lang/String;)V
-HSPLandroid/accounts/IAccountManager$Stub$Proxy;->registerAccountListener([Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/accounts/IAccountManager$Stub$Proxy;->setUserData(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/accounts/IAccountManager$Stub$Proxy;->unregisterAccountListener([Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/accounts/IAccountManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accounts/IAccountManager;
-HSPLandroid/accounts/IAccountManagerResponse$Stub;-><init>()V
-HSPLandroid/accounts/IAccountManagerResponse$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/accounts/IAccountManagerResponse$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
-HSPLandroid/accounts/IAccountManagerResponse$Stub;->getMaxTransactionId()I
-HSPLandroid/accounts/IAccountManagerResponse$Stub;->getTransactionName(I)Ljava/lang/String;
-HSPLandroid/accounts/IAccountManagerResponse$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/animation/AnimationHandler$$ExternalSyntheticLambda0;-><init>(Landroid/animation/AnimationHandler;)V
-HSPLandroid/animation/AnimationHandler$$ExternalSyntheticLambda0;->doFrame(J)V
-HSPLandroid/animation/AnimationHandler$1;-><init>(Landroid/animation/AnimationHandler;)V
-HSPLandroid/animation/AnimationHandler$1;->doFrame(J)V+]Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;Landroid/animation/AnimationHandler$MyFrameCallbackProvider;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;-><init>(Landroid/animation/AnimationHandler;)V
-HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;->getFrameTime()J+]Landroid/view/Choreographer;Landroid/view/Choreographer;
-HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V+]Landroid/view/Choreographer;Landroid/view/Choreographer;
-HSPLandroid/animation/AnimationHandler;-><init>()V
-HSPLandroid/animation/AnimationHandler;->addAnimationFrameCallback(Landroid/animation/AnimationHandler$AnimationFrameCallback;J)V
-HSPLandroid/animation/AnimationHandler;->autoCancelBasedOn(Landroid/animation/ObjectAnimator;)V+]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/animation/AnimationHandler;->cleanUpList()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/animation/AnimationHandler;->doAnimationFrame(J)V+]Landroid/animation/AnimationHandler$AnimationFrameCallback;Landroid/animation/ObjectAnimator;,Landroid/animation/AnimatorSet;,Landroid/animation/ValueAnimator;,Lcom/android/internal/dynamicanimation/animation/SpringAnimation;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/animation/AnimationHandler;->getAnimationCount()I
-HSPLandroid/animation/AnimationHandler;->getInstance()Landroid/animation/AnimationHandler;
-HSPLandroid/animation/AnimationHandler;->getProvider()Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;
-HSPLandroid/animation/AnimationHandler;->isCallbackDue(Landroid/animation/AnimationHandler$AnimationFrameCallback;J)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;
-HSPLandroid/animation/AnimationHandler;->isPauseBgAnimationsEnabledInSystemProperties()Z
-HSPLandroid/animation/AnimationHandler;->removeCallback(Landroid/animation/AnimationHandler$AnimationFrameCallback;)V
-HSPLandroid/animation/AnimationHandler;->requestAnimatorsEnabled(ZLjava/lang/Object;)V
-HSPLandroid/animation/AnimationHandler;->requestAnimatorsEnabledImpl(ZLjava/lang/Object;)V
-HSPLandroid/animation/AnimationHandler;->resumeAnimators()V
-HSPLandroid/animation/AnimationHandler;->setAnimatorPausingEnabled(Z)V
-HSPLandroid/animation/AnimationHandler;->setProvider(Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;)V
-HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda0;-><init>()V
-HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda0;->call(Ljava/lang/Object;Ljava/lang/Object;Z)V
-HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda1;-><init>()V
-HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda1;->call(Ljava/lang/Object;Ljava/lang/Object;Z)V
-HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda2;-><init>()V
-HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda2;->call(Ljava/lang/Object;Ljava/lang/Object;Z)V
-HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda3;-><init>()V
-HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda4;-><init>()V
-HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda5;-><init>()V
-HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda6;-><init>()V
-HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda6;->call(Ljava/lang/Object;Ljava/lang/Object;Z)V
-HSPLandroid/animation/Animator$AnimatorCaller;-><clinit>()V
-HSPLandroid/animation/Animator$AnimatorCaller;->lambda$static$0(Landroid/animation/Animator$AnimatorListener;Landroid/animation/Animator;Z)V
-HSPLandroid/animation/Animator$AnimatorCaller;->lambda$static$4(Landroid/animation/ValueAnimator$AnimatorUpdateListener;Landroid/animation/ValueAnimator;Z)V+]Landroid/animation/ValueAnimator$AnimatorUpdateListener;missing_types
-HSPLandroid/animation/Animator$AnimatorConstantState;-><init>(Landroid/animation/Animator;)V
-HSPLandroid/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+]Landroid/animation/Animator$AnimatorListener;missing_types
-HSPLandroid/animation/Animator$AnimatorListener;->onAnimationStart(Landroid/animation/Animator;Z)V+]Landroid/animation/Animator$AnimatorListener;missing_types
-HSPLandroid/animation/Animator;-><init>()V
-HSPLandroid/animation/Animator;->addListener(Landroid/animation/Animator$AnimatorListener;)V
-HSPLandroid/animation/Animator;->addPauseListener(Landroid/animation/Animator$AnimatorPauseListener;)V
-HSPLandroid/animation/Animator;->appendChangingConfigurations(I)V
-HSPLandroid/animation/Animator;->callOnList(Ljava/util/ArrayList;Landroid/animation/Animator$AnimatorCaller;Ljava/lang/Object;Z)V+]Landroid/animation/Animator$AnimatorCaller;Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda1;,Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda0;,Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda6;,Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda2;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference;
-HSPLandroid/animation/Animator;->clone()Landroid/animation/Animator;
-HSPLandroid/animation/Animator;->createConstantState()Landroid/content/res/ConstantState;
-HSPLandroid/animation/Animator;->getBackgroundPauseDelay()J
-HSPLandroid/animation/Animator;->getChangingConfigurations()I
-HSPLandroid/animation/Animator;->getListeners()Ljava/util/ArrayList;
-HSPLandroid/animation/Animator;->getStartAndEndTimes(Landroid/util/LongArray;J)V
-HSPLandroid/animation/Animator;->notifyEndListeners(Z)V
-HSPLandroid/animation/Animator;->notifyListeners(Landroid/animation/Animator$AnimatorCaller;Z)V
-HSPLandroid/animation/Animator;->notifyStartListeners(Z)V
-HSPLandroid/animation/Animator;->pause()V
-HSPLandroid/animation/Animator;->removeAllListeners()V
-HSPLandroid/animation/Animator;->removeListener(Landroid/animation/Animator$AnimatorListener;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/animation/Animator;->setAllowRunningAsynchronously(Z)V
-HSPLandroid/animation/AnimatorInflater$PathDataEvaluator;->evaluate(FLandroid/util/PathParser$PathData;Landroid/util/PathParser$PathData;)Landroid/util/PathParser$PathData;
-HSPLandroid/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;F)Landroid/animation/Animator;
-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;->loadObjectAnimator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;F)Landroid/animation/ObjectAnimator;
-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;-><init>(Landroid/animation/AnimatorSet;)V
-HSPLandroid/animation/AnimatorSet$1;->onAnimationEnd(Landroid/animation/Animator;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;
-HSPLandroid/animation/AnimatorSet$2;-><init>(Landroid/animation/AnimatorSet;Landroid/animation/AnimatorSet;)V
-HSPLandroid/animation/AnimatorSet$2;->onAnimationEnd(Landroid/animation/Animator;)V
-HSPLandroid/animation/AnimatorSet$3;-><init>(Landroid/animation/AnimatorSet;)V
-HSPLandroid/animation/AnimatorSet$3;->compare(Landroid/animation/AnimatorSet$AnimationEvent;Landroid/animation/AnimatorSet$AnimationEvent;)I+]Landroid/animation/AnimatorSet$AnimationEvent;Landroid/animation/AnimatorSet$AnimationEvent;
-HSPLandroid/animation/AnimatorSet$3;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-HSPLandroid/animation/AnimatorSet$AnimationEvent;-><init>(Landroid/animation/AnimatorSet$Node;I)V
-HSPLandroid/animation/AnimatorSet$AnimationEvent;->getTime()J+]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;
-HSPLandroid/animation/AnimatorSet$Builder;-><init>(Landroid/animation/AnimatorSet;Landroid/animation/Animator;)V
-HSPLandroid/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;-><init>(Landroid/animation/Animator;)V
-HSPLandroid/animation/AnimatorSet$Node;->addChild(Landroid/animation/AnimatorSet$Node;)V
-HSPLandroid/animation/AnimatorSet$Node;->addParent(Landroid/animation/AnimatorSet$Node;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/AnimatorSet$Node;Landroid/animation/AnimatorSet$Node;
-HSPLandroid/animation/AnimatorSet$Node;->addParents(Ljava/util/ArrayList;)V
-HSPLandroid/animation/AnimatorSet$Node;->addSibling(Landroid/animation/AnimatorSet$Node;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/AnimatorSet$Node;Landroid/animation/AnimatorSet$Node;
-HSPLandroid/animation/AnimatorSet$Node;->clone()Landroid/animation/AnimatorSet$Node;+]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator;
-HSPLandroid/animation/AnimatorSet$SeekState;-><init>(Landroid/animation/AnimatorSet;)V
-HSPLandroid/animation/AnimatorSet$SeekState;->getPlayTimeNormalized()J
-HSPLandroid/animation/AnimatorSet$SeekState;->isActive()Z
-HSPLandroid/animation/AnimatorSet$SeekState;->reset()V
-HSPLandroid/animation/AnimatorSet;-><init>()V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;
-HSPLandroid/animation/AnimatorSet;->addAnimationCallback(J)V
-HSPLandroid/animation/AnimatorSet;->addAnimationEndListener()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator;
-HSPLandroid/animation/AnimatorSet;->cancel()V
-HSPLandroid/animation/AnimatorSet;->clone()Landroid/animation/Animator;
-HSPLandroid/animation/AnimatorSet;->clone()Landroid/animation/AnimatorSet;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/AnimatorSet$Node;Landroid/animation/AnimatorSet$Node;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/AnimatorSet;,Landroid/animation/ValueAnimator;
-HSPLandroid/animation/AnimatorSet;->createDependencyGraph()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/AnimatorSet$AnimationEvent;Landroid/animation/AnimatorSet$AnimationEvent;]Landroid/animation/AnimatorSet$Node;Landroid/animation/AnimatorSet$Node;]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/AnimatorSet;,Landroid/animation/ValueAnimator;
-HSPLandroid/animation/AnimatorSet;->doAnimationFrame(J)Z+]Landroid/animation/AnimatorSet$SeekState;Landroid/animation/AnimatorSet$SeekState;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/animation/AnimatorSet;->end()V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/animation/AnimatorSet;Landroid/animation/AnimatorSet;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;
-HSPLandroid/animation/AnimatorSet;->endAnimation()V+]Landroid/animation/AnimatorSet;Landroid/animation/AnimatorSet;]Landroid/animation/AnimatorSet$SeekState;Landroid/animation/AnimatorSet$SeekState;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/animation/AnimatorSet;->ensureChildStartAndEndTimes()[J
-HSPLandroid/animation/AnimatorSet;->findLatestEventIdForTime(J)I
-HSPLandroid/animation/AnimatorSet;->findNextIndex(J[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;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/animation/AnimatorSet;->getNodeForAnimation(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Node;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/animation/AnimatorSet;->getStartAndEndTimes(Landroid/util/LongArray;J)V
-HSPLandroid/animation/AnimatorSet;->getStartDelay()J
-HSPLandroid/animation/AnimatorSet;->getTotalDuration()J
-HSPLandroid/animation/AnimatorSet;->handleAnimationEvents(IIJ)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator;
-HSPLandroid/animation/AnimatorSet;->initAnimation()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator;
-HSPLandroid/animation/AnimatorSet;->initChildren()V
-HSPLandroid/animation/AnimatorSet;->isEmptySet(Landroid/animation/AnimatorSet;)Z+]Landroid/animation/AnimatorSet;Landroid/animation/AnimatorSet;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/animation/AnimatorSet;->isInitialized()Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator;
-HSPLandroid/animation/AnimatorSet;->isRunning()Z
-HSPLandroid/animation/AnimatorSet;->isStarted()Z
-HSPLandroid/animation/AnimatorSet;->play(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;
-HSPLandroid/animation/AnimatorSet;->playSequentially([Landroid/animation/Animator;)V
-HSPLandroid/animation/AnimatorSet;->playTogether(Ljava/util/Collection;)V
-HSPLandroid/animation/AnimatorSet;->playTogether([Landroid/animation/Animator;)V
-HSPLandroid/animation/AnimatorSet;->pulseAnimationFrame(J)Z
-HSPLandroid/animation/AnimatorSet;->pulseFrame(Landroid/animation/AnimatorSet$Node;J)V
-HSPLandroid/animation/AnimatorSet;->removeAnimationCallback()V
-HSPLandroid/animation/AnimatorSet;->removeAnimationEndListener()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator;
-HSPLandroid/animation/AnimatorSet;->setDuration(J)Landroid/animation/Animator;
-HSPLandroid/animation/AnimatorSet;->setDuration(J)Landroid/animation/AnimatorSet;
-HSPLandroid/animation/AnimatorSet;->setInterpolator(Landroid/animation/TimeInterpolator;)V
-HSPLandroid/animation/AnimatorSet;->setStartDelay(J)V
-HSPLandroid/animation/AnimatorSet;->setTarget(Ljava/lang/Object;)V+]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/animation/AnimatorSet;->shouldPlayTogether()Z
-HSPLandroid/animation/AnimatorSet;->skipToEndValue(Z)V
-HSPLandroid/animation/AnimatorSet;->sortAnimationEvents()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/AnimatorSet;,Landroid/animation/ValueAnimator;
-HSPLandroid/animation/AnimatorSet;->start()V
-HSPLandroid/animation/AnimatorSet;->start(ZZ)V+]Landroid/animation/AnimatorSet;Landroid/animation/AnimatorSet;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator;
-HSPLandroid/animation/AnimatorSet;->startAnimation()V+]Landroid/animation/AnimatorSet;Landroid/animation/AnimatorSet;]Landroid/animation/AnimatorSet$SeekState;Landroid/animation/AnimatorSet$SeekState;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator;
-HSPLandroid/animation/AnimatorSet;->startWithoutPulsing(Z)V
-HSPLandroid/animation/AnimatorSet;->updateAnimatorsDuration()V+]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;
-HSPLandroid/animation/AnimatorSet;->updatePlayTime(Landroid/animation/AnimatorSet$Node;Ljava/util/ArrayList;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/AnimatorSet;,Landroid/animation/ValueAnimator;
-HSPLandroid/animation/ArgbEvaluator;-><init>()V
-HSPLandroid/animation/ArgbEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/animation/ArgbEvaluator;->getInstance()Landroid/animation/ArgbEvaluator;
-HSPLandroid/animation/FloatKeyframeSet;-><init>([Landroid/animation/Keyframe$FloatKeyframe;)V
-HSPLandroid/animation/FloatKeyframeSet;->clone()Landroid/animation/FloatKeyframeSet;
-HSPLandroid/animation/FloatKeyframeSet;->clone()Landroid/animation/Keyframes;
-HSPLandroid/animation/FloatKeyframeSet;->getFloatValue(F)F+]Ljava/util/List;Ljava/util/Arrays$ArrayList;]Landroid/animation/Keyframe$FloatKeyframe;Landroid/animation/Keyframe$FloatKeyframe;
-HSPLandroid/animation/FloatKeyframeSet;->getValue(F)Ljava/lang/Object;
-HSPLandroid/animation/IntKeyframeSet;-><init>([Landroid/animation/Keyframe$IntKeyframe;)V
-HSPLandroid/animation/IntKeyframeSet;->clone()Landroid/animation/IntKeyframeSet;+]Ljava/util/List;Ljava/util/Arrays$ArrayList;]Landroid/animation/Keyframe;Landroid/animation/Keyframe$IntKeyframe;
-HSPLandroid/animation/IntKeyframeSet;->clone()Landroid/animation/Keyframes;
-HSPLandroid/animation/IntKeyframeSet;->getIntValue(F)I
-HSPLandroid/animation/Keyframe$FloatKeyframe;-><init>(F)V
-HSPLandroid/animation/Keyframe$FloatKeyframe;-><init>(FF)V
-HSPLandroid/animation/Keyframe$FloatKeyframe;->clone()Landroid/animation/Keyframe$FloatKeyframe;+]Landroid/animation/Keyframe$FloatKeyframe;Landroid/animation/Keyframe$FloatKeyframe;
-HSPLandroid/animation/Keyframe$FloatKeyframe;->clone()Landroid/animation/Keyframe;
-HSPLandroid/animation/Keyframe$FloatKeyframe;->getFloatValue()F
-HSPLandroid/animation/Keyframe$FloatKeyframe;->getValue()Ljava/lang/Object;
-HSPLandroid/animation/Keyframe$FloatKeyframe;->setValue(Ljava/lang/Object;)V+]Ljava/lang/Object;Ljava/lang/Float;]Ljava/lang/Float;Ljava/lang/Float;
-HSPLandroid/animation/Keyframe$IntKeyframe;-><init>(FI)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
-HSPLandroid/animation/Keyframe$ObjectKeyframe;-><init>(FLjava/lang/Object;)V
-HSPLandroid/animation/Keyframe$ObjectKeyframe;->clone()Landroid/animation/Keyframe$ObjectKeyframe;
-HSPLandroid/animation/Keyframe$ObjectKeyframe;->clone()Landroid/animation/Keyframe;
-HSPLandroid/animation/Keyframe$ObjectKeyframe;->getValue()Ljava/lang/Object;
-HSPLandroid/animation/Keyframe;-><init>()V
-HSPLandroid/animation/Keyframe;->getFraction()F
-HSPLandroid/animation/Keyframe;->getInterpolator()Landroid/animation/TimeInterpolator;
-HSPLandroid/animation/Keyframe;->hasValue()Z
-HSPLandroid/animation/Keyframe;->ofFloat(F)Landroid/animation/Keyframe;
-HSPLandroid/animation/Keyframe;->ofFloat(FF)Landroid/animation/Keyframe;
-HSPLandroid/animation/Keyframe;->ofInt(FI)Landroid/animation/Keyframe;
-HSPLandroid/animation/Keyframe;->ofObject(FLjava/lang/Object;)Landroid/animation/Keyframe;
-HSPLandroid/animation/Keyframe;->setInterpolator(Landroid/animation/TimeInterpolator;)V
-HSPLandroid/animation/Keyframe;->setValueWasSetOnStart(Z)V
-HSPLandroid/animation/Keyframe;->valueWasSetOnStart()Z
-HSPLandroid/animation/KeyframeSet;-><init>([Landroid/animation/Keyframe;)V+]Landroid/animation/Keyframe;Landroid/animation/Keyframe$ObjectKeyframe;,Landroid/animation/Keyframe$IntKeyframe;,Landroid/animation/Keyframe$FloatKeyframe;
-HSPLandroid/animation/KeyframeSet;->clone()Landroid/animation/KeyframeSet;
-HSPLandroid/animation/KeyframeSet;->clone()Landroid/animation/Keyframes;
-HSPLandroid/animation/KeyframeSet;->getKeyframes()Ljava/util/List;
-HSPLandroid/animation/KeyframeSet;->getValue(F)Ljava/lang/Object;+]Landroid/animation/Keyframe;Landroid/animation/Keyframe$ObjectKeyframe;
-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;
-HSPLandroid/animation/KeyframeSet;->setEvaluator(Landroid/animation/TypeEvaluator;)V
-HSPLandroid/animation/LayoutTransition$1;->onAnimationEnd(Landroid/animation/Animator;)V
-HSPLandroid/animation/LayoutTransition$2;->onLayoutChange(Landroid/view/View;IIIIIIII)V
-HSPLandroid/animation/LayoutTransition$3;->onAnimationEnd(Landroid/animation/Animator;)V
-HSPLandroid/animation/LayoutTransition$3;->onAnimationStart(Landroid/animation/Animator;)V
-HSPLandroid/animation/LayoutTransition$4;->onAnimationEnd(Landroid/animation/Animator;)V
-HSPLandroid/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
-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;->hideChild(Landroid/view/ViewGroup;Landroid/view/View;I)V
-HSPLandroid/animation/LayoutTransition;->isChangingLayout()Z
-HSPLandroid/animation/LayoutTransition;->layoutChange(Landroid/view/ViewGroup;)V
-HSPLandroid/animation/LayoutTransition;->removeChild(Landroid/view/ViewGroup;Landroid/view/View;)V
-HSPLandroid/animation/LayoutTransition;->removeChild(Landroid/view/ViewGroup;Landroid/view/View;Z)V
-HSPLandroid/animation/LayoutTransition;->removeTransitionListener(Landroid/animation/LayoutTransition$TransitionListener;)V
-HSPLandroid/animation/LayoutTransition;->runAppearingTransition(Landroid/view/ViewGroup;Landroid/view/View;)V
-HSPLandroid/animation/LayoutTransition;->runChangeTransition(Landroid/view/ViewGroup;Landroid/view/View;I)V
-HSPLandroid/animation/LayoutTransition;->runDisappearingTransition(Landroid/view/ViewGroup;Landroid/view/View;)V
-HSPLandroid/animation/LayoutTransition;->setAnimateParentHierarchy(Z)V
-HSPLandroid/animation/LayoutTransition;->setAnimator(ILandroid/animation/Animator;)V
-HSPLandroid/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+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/view/View;missing_types]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;
-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;-><init>(Ljava/lang/Object;Ljava/lang/String;)V
-HSPLandroid/animation/ObjectAnimator;->animateValue(F)V+]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator;]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;,Landroid/animation/PropertyValuesHolder;
-HSPLandroid/animation/ObjectAnimator;->clone()Landroid/animation/Animator;
-HSPLandroid/animation/ObjectAnimator;->clone()Landroid/animation/ObjectAnimator;
-HSPLandroid/animation/ObjectAnimator;->getNameForTrace()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator;
-HSPLandroid/animation/ObjectAnimator;->getPropertyName()Ljava/lang/String;+]Landroid/util/Property;missing_types
-HSPLandroid/animation/ObjectAnimator;->getTarget()Ljava/lang/Object;
-HSPLandroid/animation/ObjectAnimator;->hasSameTargetAndProperties(Landroid/animation/Animator;)Z
-HSPLandroid/animation/ObjectAnimator;->initAnimation()V+]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator;]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;,Landroid/animation/PropertyValuesHolder;
-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;Landroid/util/Property;[I)Landroid/animation/ObjectAnimator;
-HSPLandroid/animation/ObjectAnimator;->ofInt(Ljava/lang/Object;Ljava/lang/String;[I)Landroid/animation/ObjectAnimator;
-HSPLandroid/animation/ObjectAnimator;->ofObject(Ljava/lang/Object;Landroid/util/Property;Landroid/animation/TypeConverter;Landroid/graphics/Path;)Landroid/animation/ObjectAnimator;
-HSPLandroid/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;
-HSPLandroid/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+]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator;
-HSPLandroid/animation/ObjectAnimator;->setIntValues([I)V
-HSPLandroid/animation/ObjectAnimator;->setObjectValues([Ljava/lang/Object;)V
-HSPLandroid/animation/ObjectAnimator;->setProperty(Landroid/util/Property;)V
-HSPLandroid/animation/ObjectAnimator;->setPropertyName(Ljava/lang/String;)V
-HSPLandroid/animation/ObjectAnimator;->setTarget(Ljava/lang/Object;)V+]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator;
-HSPLandroid/animation/ObjectAnimator;->setupEndValues()V
-HSPLandroid/animation/ObjectAnimator;->setupStartValues()V
-HSPLandroid/animation/ObjectAnimator;->shouldAutoCancel(Landroid/animation/AnimationHandler$AnimationFrameCallback;)Z
-HSPLandroid/animation/ObjectAnimator;->start()V
-HSPLandroid/animation/PathKeyframes$1;->getFloatValue(F)F
-HSPLandroid/animation/PathKeyframes$2;->getFloatValue(F)F
-HSPLandroid/animation/PathKeyframes$FloatKeyframesBase;->getValue(F)Ljava/lang/Object;
-HSPLandroid/animation/PathKeyframes$SimpleKeyframes;->clone()Landroid/animation/Keyframes;
-HSPLandroid/animation/PathKeyframes;-><init>(Landroid/graphics/Path;F)V
-HSPLandroid/animation/PathKeyframes;->getKeyframes()Ljava/util/ArrayList;
-HSPLandroid/animation/PathKeyframes;->getKeyframes()Ljava/util/List;
-HSPLandroid/animation/PathKeyframes;->getValue(F)Ljava/lang/Object;
-HSPLandroid/animation/PathKeyframes;->interpolateInRange(FII)Landroid/graphics/PointF;
-HSPLandroid/animation/PropertyValuesHolder$1;->getValueAtFraction(F)Ljava/lang/Object;
-HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;-><init>(Landroid/util/Property;[F)V
-HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;-><init>(Ljava/lang/String;[F)V
-HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->calculateValue(F)V+]Landroid/animation/Keyframes$FloatKeyframes;Landroid/animation/FloatKeyframeSet;
-HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;
-HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder;
-HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->getAnimatedValue()Ljava/lang/Object;
-HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setAnimatedValue(Ljava/lang/Object;)V+]Landroid/util/FloatProperty;Landroid/view/View$2;,Landroid/view/View$12;,Landroid/view/View$13;,Landroid/view/View$5;
-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+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Long;Ljava/lang/Long;
-HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;-><init>(Ljava/lang/String;[I)V
-HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->calculateValue(F)V+]Landroid/animation/Keyframes$IntKeyframes;Landroid/animation/IntKeyframeSet;
-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+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Long;Ljava/lang/Long;
-HSPLandroid/animation/PropertyValuesHolder$PropertyValues;-><init>()V
-HSPLandroid/animation/PropertyValuesHolder;-><init>(Landroid/util/Property;)V+]Landroid/util/Property;missing_types
-HSPLandroid/animation/PropertyValuesHolder;-><init>(Ljava/lang/String;)V
-HSPLandroid/animation/PropertyValuesHolder;-><init>(Ljava/lang/String;Landroid/animation/PropertyValuesHolder-IA;)V
-HSPLandroid/animation/PropertyValuesHolder;->calculateValue(F)V+]Landroid/animation/Keyframes;Landroid/animation/KeyframeSet;
-HSPLandroid/animation/PropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder;+]Landroid/animation/Keyframes;Landroid/animation/KeyframeSet;,Landroid/animation/IntKeyframeSet;,Landroid/animation/FloatKeyframeSet;
-HSPLandroid/animation/PropertyValuesHolder;->convertBack(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/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;->ofInt(Ljava/lang/String;[I)Landroid/animation/PropertyValuesHolder;
-HSPLandroid/animation/PropertyValuesHolder;->ofKeyframes(Ljava/lang/String;Landroid/animation/Keyframes;)Landroid/animation/PropertyValuesHolder;
-HSPLandroid/animation/PropertyValuesHolder;->ofObject(Ljava/lang/String;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/PropertyValuesHolder;
-HSPLandroid/animation/PropertyValuesHolder;->setAnimatedValue(Ljava/lang/Object;)V+]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder;
-HSPLandroid/animation/PropertyValuesHolder;->setEvaluator(Landroid/animation/TypeEvaluator;)V
-HSPLandroid/animation/PropertyValuesHolder;->setFloatValues([F)V
-HSPLandroid/animation/PropertyValuesHolder;->setIntValues([I)V
-HSPLandroid/animation/PropertyValuesHolder;->setObjectValues([Ljava/lang/Object;)V
-HSPLandroid/animation/PropertyValuesHolder;->setProperty(Landroid/util/Property;)V
-HSPLandroid/animation/PropertyValuesHolder;->setPropertyName(Ljava/lang/String;)V
-HSPLandroid/animation/PropertyValuesHolder;->setupEndValue(Ljava/lang/Object;)V
-HSPLandroid/animation/PropertyValuesHolder;->setupGetter(Ljava/lang/Class;)V
-HSPLandroid/animation/PropertyValuesHolder;->setupSetterAndGetter(Ljava/lang/Object;)V+]Ljava/lang/Object;missing_types]Landroid/animation/Keyframes;Landroid/animation/IntKeyframeSet;,Landroid/animation/FloatKeyframeSet;,Landroid/animation/KeyframeSet;]Ljava/util/List;Ljava/util/Arrays$ArrayList;]Landroid/animation/Keyframe;Landroid/animation/Keyframe$IntKeyframe;,Landroid/animation/Keyframe$FloatKeyframe;,Landroid/animation/Keyframe$ObjectKeyframe;]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;,Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;]Landroid/util/Property;missing_types]Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;
-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+]Ljava/lang/Object;missing_types]Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;]Landroid/animation/Keyframe;Landroid/animation/Keyframe$IntKeyframe;
-HSPLandroid/animation/StateListAnimator$1;-><init>(Landroid/animation/StateListAnimator;)V
-HSPLandroid/animation/StateListAnimator$1;->onAnimationEnd(Landroid/animation/Animator;)V
-HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;-><init>(Landroid/animation/StateListAnimator;)V
-HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->newInstance()Landroid/animation/StateListAnimator;
-HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->newInstance()Ljava/lang/Object;
-HSPLandroid/animation/StateListAnimator$Tuple;-><init>([ILandroid/animation/Animator;)V
-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
-HSPLandroid/animation/StateListAnimator;->getTarget()Landroid/view/View;
-HSPLandroid/animation/StateListAnimator;->initAnimatorListener()V
-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/StateListAnimator;->start(Landroid/animation/StateListAnimator$Tuple;)V
-HSPLandroid/animation/TimeAnimator;-><init>()V
-HSPLandroid/animation/TimeAnimator;->setTimeListener(Landroid/animation/TimeAnimator$TimeListener;)V
-HSPLandroid/animation/ValueAnimator;-><init>()V
-HSPLandroid/animation/ValueAnimator;->addAnimationCallback(J)V
-HSPLandroid/animation/ValueAnimator;->addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
-HSPLandroid/animation/ValueAnimator;->animateBasedOnTime(J)Z+]Landroid/animation/ValueAnimator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator;
-HSPLandroid/animation/ValueAnimator;->animateValue(F)V+]Landroid/animation/TimeInterpolator;missing_types]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;,Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;,Landroid/animation/PropertyValuesHolder;]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;,Landroid/animation/ObjectAnimator;
-HSPLandroid/animation/ValueAnimator;->areAnimatorsEnabled()Z
-HSPLandroid/animation/ValueAnimator;->cancel()V
-HSPLandroid/animation/ValueAnimator;->clampFraction(F)F
-HSPLandroid/animation/ValueAnimator;->clone()Landroid/animation/Animator;
-HSPLandroid/animation/ValueAnimator;->clone()Landroid/animation/ValueAnimator;+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;,Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;,Landroid/animation/PropertyValuesHolder;
-HSPLandroid/animation/ValueAnimator;->doAnimationFrame(J)Z+]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;,Landroid/animation/ObjectAnimator;
-HSPLandroid/animation/ValueAnimator;->end()V
-HSPLandroid/animation/ValueAnimator;->endAnimation()V
-HSPLandroid/animation/ValueAnimator;->getAnimatedFraction()F
-HSPLandroid/animation/ValueAnimator;->getAnimatedValue()Ljava/lang/Object;+]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;
-HSPLandroid/animation/ValueAnimator;->getAnimationHandler()Landroid/animation/AnimationHandler;
-HSPLandroid/animation/ValueAnimator;->getCurrentAnimationsCount()I
-HSPLandroid/animation/ValueAnimator;->getCurrentIteration(F)I
-HSPLandroid/animation/ValueAnimator;->getCurrentIterationFraction(FZ)F
-HSPLandroid/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
-HSPLandroid/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
-HSPLandroid/animation/ValueAnimator;->isPulsingInternal()Z
-HSPLandroid/animation/ValueAnimator;->isRunning()Z
-HSPLandroid/animation/ValueAnimator;->isStarted()Z
-HSPLandroid/animation/ValueAnimator;->ofFloat([F)Landroid/animation/ValueAnimator;
-HSPLandroid/animation/ValueAnimator;->ofInt([I)Landroid/animation/ValueAnimator;
-HSPLandroid/animation/ValueAnimator;->ofObject(Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ValueAnimator;
-HSPLandroid/animation/ValueAnimator;->pause()V
-HSPLandroid/animation/ValueAnimator;->pulseAnimationFrame(J)Z
-HSPLandroid/animation/ValueAnimator;->removeAllUpdateListeners()V
-HSPLandroid/animation/ValueAnimator;->removeAnimationCallback()V
-HSPLandroid/animation/ValueAnimator;->resolveDurationScale()F
-HSPLandroid/animation/ValueAnimator;->setAllowRunningAsynchronously(Z)V
-HSPLandroid/animation/ValueAnimator;->setAnimationHandler(Landroid/animation/AnimationHandler;)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
-HSPLandroid/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
-HSPLandroid/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
-HSPLandroid/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/app/Activity$1;-><init>(Landroid/app/Activity;)V
-HSPLandroid/app/Activity$1;->isTaskRoot()Z
-HSPLandroid/app/Activity$1;->updateNavigationBarColor(I)V
-HSPLandroid/app/Activity$1;->updateStatusBarColor(I)V
-HSPLandroid/app/Activity$HostCallbacks;-><init>(Landroid/app/Activity;)V
-HSPLandroid/app/Activity$HostCallbacks;->onAttachFragment(Landroid/app/Fragment;)V
-HSPLandroid/app/Activity$HostCallbacks;->onGetLayoutInflater()Landroid/view/LayoutInflater;
-HSPLandroid/app/Activity$HostCallbacks;->onUseFragmentManagerInflaterFactory()Z
-HSPLandroid/app/Activity;-><init>()V
-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;Landroid/os/IBinder;)V
-HSPLandroid/app/Activity;->attachBaseContext(Landroid/content/Context;)V
-HSPLandroid/app/Activity;->cancelInputsAndStartExitTransition(Landroid/os/Bundle;)V
-HSPLandroid/app/Activity;->collectActivityLifecycleCallbacks()[Ljava/lang/Object;
-HSPLandroid/app/Activity;->dispatchActivityCreated(Landroid/os/Bundle;)V
-HSPLandroid/app/Activity;->dispatchActivityPostCreated(Landroid/os/Bundle;)V
-HSPLandroid/app/Activity;->dispatchActivityPostResumed()V
-HSPLandroid/app/Activity;->dispatchActivityPostStarted()V
-HSPLandroid/app/Activity;->dispatchActivityPreCreated(Landroid/os/Bundle;)V
-HSPLandroid/app/Activity;->dispatchActivityPreResumed()V
-HSPLandroid/app/Activity;->dispatchActivityPreStarted()V
-HSPLandroid/app/Activity;->dispatchActivityResult(Ljava/lang/String;IILandroid/content/Intent;Ljava/lang/String;)V
-HSPLandroid/app/Activity;->dispatchActivityResumed()V
-HSPLandroid/app/Activity;->dispatchActivityStarted()V
-HSPLandroid/app/Activity;->dispatchEnterAnimationComplete()V
-HSPLandroid/app/Activity;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z
-HSPLandroid/app/Activity;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
-HSPLandroid/app/Activity;->findViewById(I)Landroid/view/View;
-HSPLandroid/app/Activity;->finish()V
-HSPLandroid/app/Activity;->finish(I)V
-HSPLandroid/app/Activity;->finishAfterTransition()V
-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;->getAutofillClientController()Landroid/view/autofill/AutofillClientController;
-HSPLandroid/app/Activity;->getCallingActivity()Landroid/content/ComponentName;
-HSPLandroid/app/Activity;->getComponentName()Landroid/content/ComponentName;
-HSPLandroid/app/Activity;->getContentCaptureManager()Landroid/view/contentcapture/ContentCaptureManager;
-HSPLandroid/app/Activity;->getContentCaptureTypeAsString(I)Ljava/lang/String;
-HSPLandroid/app/Activity;->getCurrentFocus()Landroid/view/View;
-HSPLandroid/app/Activity;->getFragmentManager()Landroid/app/FragmentManager;
-HSPLandroid/app/Activity;->getIntent()Landroid/content/Intent;
-HSPLandroid/app/Activity;->getLastNonConfigurationInstance()Ljava/lang/Object;
-HSPLandroid/app/Activity;->getLayoutInflater()Landroid/view/LayoutInflater;
-HSPLandroid/app/Activity;->getNextAutofillId()I
-HSPLandroid/app/Activity;->getOnBackInvokedDispatcher()Landroid/window/OnBackInvokedDispatcher;
-HSPLandroid/app/Activity;->getReferrer()Landroid/net/Uri;
-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;->getTitleColor()I
-HSPLandroid/app/Activity;->getVolumeControlStream()I
-HSPLandroid/app/Activity;->getWindow()Landroid/view/Window;
-HSPLandroid/app/Activity;->getWindowManager()Landroid/view/WindowManager;
-HSPLandroid/app/Activity;->initWindowDecorActionBar()V
-HSPLandroid/app/Activity;->isChangingConfigurations()Z
-HSPLandroid/app/Activity;->isChild()Z
-HSPLandroid/app/Activity;->isDestroyed()Z
-HSPLandroid/app/Activity;->isFinishing()Z
-HSPLandroid/app/Activity;->isInMultiWindowMode()Z
-HSPLandroid/app/Activity;->isResumed()Z
-HSPLandroid/app/Activity;->isTaskRoot()Z
-HSPLandroid/app/Activity;->makeVisible()V
-HSPLandroid/app/Activity;->notifyContentCaptureManagerIfNeeded(I)V
-HSPLandroid/app/Activity;->notifyVoiceInteractionManagerServiceActivityEvent(I)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
-HSPLandroid/app/Activity;->onBackPressed()V
-HSPLandroid/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
-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
-HSPLandroid/app/Activity;->onKeyDown(ILandroid/view/KeyEvent;)Z
-HSPLandroid/app/Activity;->onKeyUp(ILandroid/view/KeyEvent;)Z
-HSPLandroid/app/Activity;->onLowMemory()V
-HSPLandroid/app/Activity;->onMenuItemSelected(ILandroid/view/MenuItem;)Z
-HSPLandroid/app/Activity;->onNewIntent(Landroid/content/Intent;)V
-HSPLandroid/app/Activity;->onPause()V
-HSPLandroid/app/Activity;->onPictureInPictureRequested()Z
-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
-HSPLandroid/app/Activity;->onProvideReferrer()Landroid/net/Uri;
-HSPLandroid/app/Activity;->onRestart()V
-HSPLandroid/app/Activity;->onRestoreInstanceState(Landroid/os/Bundle;)V
-HSPLandroid/app/Activity;->onResume()V
-HSPLandroid/app/Activity;->onRetainNonConfigurationChildInstances()Ljava/util/HashMap;
-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+]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/view/WindowManager;Landroid/view/WindowManagerImpl;
-HSPLandroid/app/Activity;->onWindowFocusChanged(Z)V
-HSPLandroid/app/Activity;->overridePendingTransition(II)V
-HSPLandroid/app/Activity;->overridePendingTransition(III)V
-HSPLandroid/app/Activity;->performCreate(Landroid/os/Bundle;)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;->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;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V
-HSPLandroid/app/Activity;->reportFullyDrawn()V
-HSPLandroid/app/Activity;->restoreHasCurrentPermissionRequest(Landroid/os/Bundle;)V
-HSPLandroid/app/Activity;->restoreManagedDialogs(Landroid/os/Bundle;)V
-HSPLandroid/app/Activity;->retainNonConfigurationInstances()Landroid/app/Activity$NonConfigurationInstances;
-HSPLandroid/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;->setIntent(Landroid/content/Intent;)V
-HSPLandroid/app/Activity;->setRequestedOrientation(I)V
-HSPLandroid/app/Activity;->setResult(ILandroid/content/Intent;)V
-HSPLandroid/app/Activity;->setTaskDescription(Landroid/app/ActivityManager$TaskDescription;)V
-HSPLandroid/app/Activity;->setTheme(I)V
-HSPLandroid/app/Activity;->setTitle(Ljava/lang/CharSequence;)V
-HSPLandroid/app/Activity;->setVolumeControlStream(I)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/Activity;->transferSpringboardActivityOptions(Landroid/os/Bundle;)Landroid/os/Bundle;
-HSPLandroid/app/Activity;->unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V
-HSPLandroid/app/ActivityClient$1;-><init>()V
-HSPLandroid/app/ActivityClient$1;->create()Landroid/app/ActivityClient;
-HSPLandroid/app/ActivityClient$1;->create()Ljava/lang/Object;
-HSPLandroid/app/ActivityClient$ActivityClientControllerSingleton;-><init>()V
-HSPLandroid/app/ActivityClient$ActivityClientControllerSingleton;->create()Landroid/app/IActivityClientController;
-HSPLandroid/app/ActivityClient$ActivityClientControllerSingleton;->create()Ljava/lang/Object;
-HSPLandroid/app/ActivityClient;-><clinit>()V
-HSPLandroid/app/ActivityClient;-><init>()V
-HSPLandroid/app/ActivityClient;->activityDestroyed(Landroid/os/IBinder;)V
-HSPLandroid/app/ActivityClient;->activityIdle(Landroid/os/IBinder;Landroid/content/res/Configuration;Z)V
-HSPLandroid/app/ActivityClient;->activityPaused(Landroid/os/IBinder;)V
-HSPLandroid/app/ActivityClient;->activityResumed(Landroid/os/IBinder;Z)V
-HSPLandroid/app/ActivityClient;->activityStopped(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V
-HSPLandroid/app/ActivityClient;->activityTopResumedStateLost()V
-HSPLandroid/app/ActivityClient;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z
-HSPLandroid/app/ActivityClient;->getActivityClientController()Landroid/app/IActivityClientController;
-HSPLandroid/app/ActivityClient;->getCallingActivity(Landroid/os/IBinder;)Landroid/content/ComponentName;
-HSPLandroid/app/ActivityClient;->getDisplayId(Landroid/os/IBinder;)I
-HSPLandroid/app/ActivityClient;->getInstance()Landroid/app/ActivityClient;
-HSPLandroid/app/ActivityClient;->getTaskForActivity(Landroid/os/IBinder;Z)I
-HSPLandroid/app/ActivityClient;->overridePendingTransition(Landroid/os/IBinder;Ljava/lang/String;III)V
-HSPLandroid/app/ActivityClient;->reportActivityFullyDrawn(Landroid/os/IBinder;Z)V
-HSPLandroid/app/ActivityClient;->reportSizeConfigurations(Landroid/os/IBinder;Landroid/window/SizeConfigurationBuckets;)V
-HSPLandroid/app/ActivityClient;->setActivityClientController(Landroid/app/IActivityClientController;)Landroid/app/IActivityClientController;
-HSPLandroid/app/ActivityClient;->setRequestedOrientation(Landroid/os/IBinder;I)V
-HSPLandroid/app/ActivityClient;->setTaskDescription(Landroid/os/IBinder;Landroid/app/ActivityManager$TaskDescription;)V
-HSPLandroid/app/ActivityManager$3;->create()Landroid/app/IActivityManager;
-HSPLandroid/app/ActivityManager$3;->create()Ljava/lang/Object;
-HSPLandroid/app/ActivityManager$AppTask;->getTaskInfo()Landroid/app/ActivityManager$RecentTaskInfo;
-HSPLandroid/app/ActivityManager$MemoryInfo;-><init>()V
-HSPLandroid/app/ActivityManager$MemoryInfo;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/app/ActivityManager$PendingIntentInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$PendingIntentInfo;
-HSPLandroid/app/ActivityManager$PendingIntentInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/ActivityManager$PendingIntentInfo;-><init>(Ljava/lang/String;IZI)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;
-HSPLandroid/app/ActivityManager$RecentTaskInfo$PersistedTaskSnapshotData;-><init>()V
-HSPLandroid/app/ActivityManager$RecentTaskInfo;->readFromParcel(Landroid/os/Parcel;)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
-HSPLandroid/app/ActivityManager$RunningAppProcessInfo;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/ActivityManager$RunningAppProcessInfo;-><init>(Landroid/os/Parcel;Landroid/app/ActivityManager$RunningAppProcessInfo-IA;)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
-HSPLandroid/app/ActivityManager$RunningServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RunningServiceInfo;
-HSPLandroid/app/ActivityManager$RunningServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/ActivityManager$RunningServiceInfo;->readFromParcel(Landroid/os/Parcel;)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;
-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
-HSPLandroid/app/ActivityManager$TaskDescription;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/ActivityManager$TaskDescription;-><init>(Ljava/lang/String;Landroid/graphics/Bitmap;I)V
-HSPLandroid/app/ActivityManager$TaskDescription;->copyFromPreserveHiddenFields(Landroid/app/ActivityManager$TaskDescription;)V
-HSPLandroid/app/ActivityManager$TaskDescription;->getBackgroundColor()I
-HSPLandroid/app/ActivityManager$TaskDescription;->getIcon()Landroid/graphics/Bitmap;
-HSPLandroid/app/ActivityManager$TaskDescription;->getIconFilename()Ljava/lang/String;
-HSPLandroid/app/ActivityManager$TaskDescription;->getInMemoryIcon()Landroid/graphics/Bitmap;
-HSPLandroid/app/ActivityManager$TaskDescription;->getPrimaryColor()I
-HSPLandroid/app/ActivityManager$TaskDescription;->loadTaskDescriptionIcon(Ljava/lang/String;I)Landroid/graphics/Bitmap;
-HSPLandroid/app/ActivityManager$TaskDescription;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/app/ActivityManager$TaskDescription;->setBackgroundColor(I)V
-HSPLandroid/app/ActivityManager$TaskDescription;->setBackgroundColorFloating(I)V
-HSPLandroid/app/ActivityManager$TaskDescription;->setEnsureNavigationBarContrastWhenTransparent(Z)V
-HSPLandroid/app/ActivityManager$TaskDescription;->setEnsureStatusBarContrastWhenTransparent(Z)V
-HSPLandroid/app/ActivityManager$TaskDescription;->setIcon(Landroid/graphics/drawable/Icon;)V
-HSPLandroid/app/ActivityManager$TaskDescription;->setNavigationBarColor(I)V
-HSPLandroid/app/ActivityManager$TaskDescription;->setPrimaryColor(I)V
-HSPLandroid/app/ActivityManager$TaskDescription;->setStatusBarColor(I)V
-HSPLandroid/app/ActivityManager$TaskDescription;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/ActivityManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-HSPLandroid/app/ActivityManager;->addOnUidImportanceListener(Landroid/app/ActivityManager$OnUidImportanceListener;I)V
-HSPLandroid/app/ActivityManager;->checkComponentPermission(Ljava/lang/String;IIZ)I
-HSPLandroid/app/ActivityManager;->getAppTasks()Ljava/util/List;
-HSPLandroid/app/ActivityManager;->getCurrentUser()I
-HSPLandroid/app/ActivityManager;->getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo;
-HSPLandroid/app/ActivityManager;->getHistoricalProcessExitReasons(Ljava/lang/String;II)Ljava/util/List;
-HSPLandroid/app/ActivityManager;->getLargeMemoryClass()I
-HSPLandroid/app/ActivityManager;->getLauncherLargeIconSizeInner(Landroid/content/Context;)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;->getService()Landroid/app/IActivityManager;
-HSPLandroid/app/ActivityManager;->getTaskService()Landroid/app/IActivityTaskManager;
-HSPLandroid/app/ActivityManager;->handleIncomingUser(IIIZZLjava/lang/String;Ljava/lang/String;)I
-HSPLandroid/app/ActivityManager;->isBackgroundRestricted()Z
-HSPLandroid/app/ActivityManager;->isHighEndGfx()Z
-HSPLandroid/app/ActivityManager;->isLowMemoryKillReportSupported()Z
-HSPLandroid/app/ActivityManager;->isLowRamDevice()Z
-HSPLandroid/app/ActivityManager;->isLowRamDeviceStatic()Z
-HSPLandroid/app/ActivityManager;->isRunningInTestHarness()Z
-HSPLandroid/app/ActivityManager;->isRunningInUserTestHarness()Z
-HSPLandroid/app/ActivityManager;->isStartResultFatalError(I)Z
-HSPLandroid/app/ActivityManager;->isUserAMonkey()Z
-HSPLandroid/app/ActivityManager;->isUserRunning(I)Z
-HSPLandroid/app/ActivityManager;->staticGetLargeMemoryClass()I
-HSPLandroid/app/ActivityManager;->staticGetMemoryClass()I
-HSPLandroid/app/ActivityOptions$SourceInfo;-><init>(IJ)V
-HSPLandroid/app/ActivityOptions;-><init>()V
-HSPLandroid/app/ActivityOptions;-><init>(Landroid/os/Bundle;)V
-HSPLandroid/app/ActivityOptions;->fromBundle(Landroid/os/Bundle;)Landroid/app/ActivityOptions;
-HSPLandroid/app/ActivityOptions;->getAnimationType()I
-HSPLandroid/app/ActivityOptions;->makeBasic()Landroid/app/ActivityOptions;
-HSPLandroid/app/ActivityOptions;->makeRemoteAnimation(Landroid/view/RemoteAnimationAdapter;)Landroid/app/ActivityOptions;
-HSPLandroid/app/ActivityOptions;->setLaunchWindowingMode(I)V
-HSPLandroid/app/ActivityOptions;->setSourceInfo(IJ)V
-HSPLandroid/app/ActivityOptions;->toBundle()Landroid/os/Bundle;
-HSPLandroid/app/ActivityTaskManager$1;->create()Landroid/app/ActivityTaskManager;
-HSPLandroid/app/ActivityTaskManager$1;->create()Ljava/lang/Object;
-HSPLandroid/app/ActivityTaskManager$2;->create()Landroid/app/IActivityTaskManager;
-HSPLandroid/app/ActivityTaskManager$2;->create()Ljava/lang/Object;
-HSPLandroid/app/ActivityTaskManager;-><init>()V
-HSPLandroid/app/ActivityTaskManager;->getDefaultAppRecentsLimitStatic()I
-HSPLandroid/app/ActivityTaskManager;->getInstance()Landroid/app/ActivityTaskManager;
-HSPLandroid/app/ActivityTaskManager;->getService()Landroid/app/IActivityTaskManager;
-HSPLandroid/app/ActivityTaskManager;->getTasks(IZ)Ljava/util/List;
-HSPLandroid/app/ActivityTaskManager;->getTasks(IZZ)Ljava/util/List;
-HSPLandroid/app/ActivityTaskManager;->supportsMultiWindow(Landroid/content/Context;)Z
-HSPLandroid/app/ActivityThread$$ExternalSyntheticLambda1;-><init>()V
-HSPLandroid/app/ActivityThread$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/app/ActivityThread$2;-><init>(Landroid/app/ActivityThread;Landroid/app/IActivityManager;)V
-HSPLandroid/app/ActivityThread$3;-><init>(Landroid/app/ActivityThread;)V
-HSPLandroid/app/ActivityThread$3;->setContentCaptureOptions(Landroid/content/ContentCaptureOptions;)V
-HSPLandroid/app/ActivityThread$4;-><init>(Landroid/app/ActivityThread;)V
-HSPLandroid/app/ActivityThread$4;->run()V
-HSPLandroid/app/ActivityThread$ActivityClientRecord$1;-><init>(Landroid/app/ActivityThread$ActivityClientRecord;)V
-HSPLandroid/app/ActivityThread$ActivityClientRecord;->-$$Nest$misPreHoneycomb(Landroid/app/ActivityThread$ActivityClientRecord;)Z
-HSPLandroid/app/ActivityThread$ActivityClientRecord;->getLifecycleState()I
-HSPLandroid/app/ActivityThread$ActivityClientRecord;->init()V
-HSPLandroid/app/ActivityThread$ActivityClientRecord;->isPersistable()Z
-HSPLandroid/app/ActivityThread$ActivityClientRecord;->isPreHoneycomb()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
-HSPLandroid/app/ActivityThread$ApplicationThread$$ExternalSyntheticLambda2;-><init>()V
-HSPLandroid/app/ActivityThread$ApplicationThread$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLandroid/app/ActivityThread$ApplicationThread;-><init>(Landroid/app/ActivityThread;)V
-HSPLandroid/app/ActivityThread$ApplicationThread;-><init>(Landroid/app/ActivityThread;Landroid/app/ActivityThread$ApplicationThread-IA;)V
-HSPLandroid/app/ActivityThread$ApplicationThread;->clearDnsCache()V
-HSPLandroid/app/ActivityThread$ApplicationThread;->dispatchPackageBroadcast(I[Ljava/lang/String;)V
-HSPLandroid/app/ActivityThread$ApplicationThread;->dumpCacheInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
-HSPLandroid/app/ActivityThread$ApplicationThread;->dumpDbInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
-HSPLandroid/app/ActivityThread$ApplicationThread;->dumpGfxInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
-HSPLandroid/app/ActivityThread$ApplicationThread;->dumpProvider(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V
-HSPLandroid/app/ActivityThread$ApplicationThread;->dumpResources(Landroid/os/ParcelFileDescriptor;Landroid/os/RemoteCallback;)V
-HSPLandroid/app/ActivityThread$ApplicationThread;->dumpService(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V
-HSPLandroid/app/ActivityThread$ApplicationThread;->notifyContentProviderPublishStatus(Landroid/app/ContentProviderHolder;Ljava/lang/String;IZ)V
-HSPLandroid/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;ZIJ)V
-HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleCreateBackupAgent(Landroid/content/pm/ApplicationInfo;III)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;I)V
-HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleEnterAnimationComplete(Landroid/os/IBinder;)V
-HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleInstallProvider(Landroid/content/pm/ProviderInfo;)V
-HSPLandroid/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;ZZIIILjava/lang/String;)V
-HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleReceiverList(Ljava/util/List;)V
-HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleRegisteredReceiver(Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZZIIILjava/lang/String;)V
-HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleServiceArgs(Landroid/os/IBinder;Landroid/content/pm/ParceledListSlice;)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$ApplicationThread;->unstableProviderDied(Landroid/os/IBinder;)V
-HSPLandroid/app/ActivityThread$ApplicationThread;->updateCompatOverrideScale(Landroid/content/res/CompatibilityInfo;)V
-HSPLandroid/app/ActivityThread$BindServiceData;-><init>()V
-HSPLandroid/app/ActivityThread$BindServiceData;->toString()Ljava/lang/String;
-HSPLandroid/app/ActivityThread$ContextCleanupInfo;-><init>()V
-HSPLandroid/app/ActivityThread$CreateBackupAgentData;-><init>()V
-HSPLandroid/app/ActivityThread$CreateServiceData;-><init>()V
-HSPLandroid/app/ActivityThread$CreateServiceData;->toString()Ljava/lang/String;
-HSPLandroid/app/ActivityThread$DumpResourcesData;-><init>()V
-HSPLandroid/app/ActivityThread$GcIdler;-><init>(Landroid/app/ActivityThread;)V
-HSPLandroid/app/ActivityThread$GcIdler;->queueIdle()Z
-HSPLandroid/app/ActivityThread$H;-><init>(Landroid/app/ActivityThread;)V
-HSPLandroid/app/ActivityThread$H;->handleMessage(Landroid/os/Message;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/app/ActivityThread;Landroid/app/ActivityThread;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;]Landroid/app/servertransaction/TransactionExecutor;Landroid/app/servertransaction/TransactionExecutor;
-HSPLandroid/app/ActivityThread$Idler;-><init>(Landroid/app/ActivityThread;)V
-HSPLandroid/app/ActivityThread$Idler;-><init>(Landroid/app/ActivityThread;Landroid/app/ActivityThread$Idler-IA;)V
-HSPLandroid/app/ActivityThread$Idler;->queueIdle()Z
-HSPLandroid/app/ActivityThread$Profiler;-><init>()V
-HSPLandroid/app/ActivityThread$ProviderKey;-><init>(Ljava/lang/String;I)V
-HSPLandroid/app/ActivityThread$ProviderKey;->equals(Ljava/lang/Object;)Z
-HSPLandroid/app/ActivityThread$ProviderKey;->hashCode()I
-HSPLandroid/app/ActivityThread$ProviderRefCount;-><init>(Landroid/app/ContentProviderHolder;Landroid/app/ActivityThread$ProviderClientRecord;II)V
-HSPLandroid/app/ActivityThread$PurgeIdler;-><init>(Landroid/app/ActivityThread;)V
-HSPLandroid/app/ActivityThread$PurgeIdler;->queueIdle()Z
-HSPLandroid/app/ActivityThread$ReceiverData;-><init>(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZZLandroid/os/IBinder;IILjava/lang/String;)V
-HSPLandroid/app/ActivityThread$RequestAssistContextExtras;-><init>()V
-HSPLandroid/app/ActivityThread$ServiceArgsData;-><init>()V
-HSPLandroid/app/ActivityThread$ServiceArgsData;->toString()Ljava/lang/String;
-HSPLandroid/app/ActivityThread;->-$$Nest$fgetmTransactionExecutor(Landroid/app/ActivityThread;)Landroid/app/servertransaction/TransactionExecutor;
-HSPLandroid/app/ActivityThread;->-$$Nest$mhandleBindApplication(Landroid/app/ActivityThread;Landroid/app/ActivityThread$AppBindData;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$mhandleBindService(Landroid/app/ActivityThread;Landroid/app/ActivityThread$BindServiceData;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$mhandleCreateBackupAgent(Landroid/app/ActivityThread;Landroid/app/ActivityThread$CreateBackupAgentData;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$mhandleCreateService(Landroid/app/ActivityThread;Landroid/app/ActivityThread$CreateServiceData;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$mhandleDestroyBackupAgent(Landroid/app/ActivityThread;Landroid/app/ActivityThread$CreateBackupAgentData;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$mhandleDumpGfxInfo(Landroid/app/ActivityThread;Landroid/app/ActivityThread$DumpComponentInfo;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$mhandleDumpProvider(Landroid/app/ActivityThread;Landroid/app/ActivityThread$DumpComponentInfo;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$mhandleDumpResources(Landroid/app/ActivityThread;Landroid/app/ActivityThread$DumpResourcesData;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$mhandleDumpService(Landroid/app/ActivityThread;Landroid/app/ActivityThread$DumpComponentInfo;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$mhandleEnterAnimationComplete(Landroid/app/ActivityThread;Landroid/os/IBinder;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$mhandleReceiver(Landroid/app/ActivityThread;Landroid/app/ActivityThread$ReceiverData;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$mhandleServiceArgs(Landroid/app/ActivityThread;Landroid/app/ActivityThread$ServiceArgsData;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$mhandleSetContentCaptureOptionsCallback(Landroid/app/ActivityThread;Ljava/lang/String;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$mhandleSetCoreSettings(Landroid/app/ActivityThread;Landroid/os/Bundle;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$mhandleStopService(Landroid/app/ActivityThread;Landroid/os/IBinder;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$mhandleUnbindService(Landroid/app/ActivityThread;Landroid/app/ActivityThread$BindServiceData;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$mpurgePendingResources(Landroid/app/ActivityThread;)V
-HSPLandroid/app/ActivityThread;->-$$Nest$msendMessage(Landroid/app/ActivityThread;ILjava/lang/Object;IIZ)V
-HSPLandroid/app/ActivityThread;-><init>()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;->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(Z)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;->currentActivityThread()Landroid/app/ActivityThread;
-HSPLandroid/app/ActivityThread;->currentApplication()Landroid/app/Application;
-HSPLandroid/app/ActivityThread;->currentAttributionSource()Landroid/content/AttributionSource;
-HSPLandroid/app/ActivityThread;->currentOpPackageName()Ljava/lang/String;
-HSPLandroid/app/ActivityThread;->currentPackageName()Ljava/lang/String;
-HSPLandroid/app/ActivityThread;->currentProcessName()Ljava/lang/String;
-HSPLandroid/app/ActivityThread;->deliverNewIntents(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/util/List;)V
-HSPLandroid/app/ActivityThread;->deliverResults(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/util/List;Ljava/lang/String;)V
-HSPLandroid/app/ActivityThread;->dumpMemoryInfo(Landroid/util/proto/ProtoOutputStream;JLjava/lang/String;IIIIIIZIII)V
-HSPLandroid/app/ActivityThread;->getActivitiesToBeDestroyed()Ljava/util/Map;
-HSPLandroid/app/ActivityThread;->getActivity(Landroid/os/IBinder;)Landroid/app/Activity;
-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;
-HSPLandroid/app/ActivityThread;->getBackupAgentName(Landroid/app/ActivityThread$CreateBackupAgentData;)Ljava/lang/String;
-HSPLandroid/app/ActivityThread;->getBackupAgentsForUser(I)Landroid/util/ArrayMap;
-HSPLandroid/app/ActivityThread;->getExecutor()Ljava/util/concurrent/Executor;
-HSPLandroid/app/ActivityThread;->getFloatCoreSetting(Ljava/lang/String;F)F
-HSPLandroid/app/ActivityThread;->getGetProviderKey(Ljava/lang/String;I)Landroid/app/ActivityThread$ProviderKey;
-HSPLandroid/app/ActivityThread;->getHandler()Landroid/os/Handler;
-HSPLandroid/app/ActivityThread;->getInstrumentation()Landroid/app/Instrumentation;
-HSPLandroid/app/ActivityThread;->getIntCoreSetting(Ljava/lang/String;I)I+]Landroid/os/Bundle;Landroid/os/Bundle;
-HSPLandroid/app/ActivityThread;->getIntentBeingBroadcast()Landroid/content/Intent;
-HSPLandroid/app/ActivityThread;->getLooper()Landroid/os/Looper;
-HSPLandroid/app/ActivityThread;->getOperationTypeFromBackupMode(I)I
-HSPLandroid/app/ActivityThread;->getPackageInfo(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;I)Landroid/app/LoadedApk;
-HSPLandroid/app/ActivityThread;->getPackageInfo(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;ZZZ)Landroid/app/LoadedApk;
-HSPLandroid/app/ActivityThread;->getPackageInfo(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;ZZZZ)Landroid/app/LoadedApk;
-HSPLandroid/app/ActivityThread;->getPackageInfo(Ljava/lang/String;Landroid/content/res/CompatibilityInfo;II)Landroid/app/LoadedApk;
-HSPLandroid/app/ActivityThread;->getPackageInfoNoCheck(Landroid/content/pm/ApplicationInfo;)Landroid/app/LoadedApk;
-HSPLandroid/app/ActivityThread;->getPackageInfoNoCheck(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;)Landroid/app/LoadedApk;
-HSPLandroid/app/ActivityThread;->getPackageManager()Landroid/content/pm/IPackageManager;
-HSPLandroid/app/ActivityThread;->getPermissionManager()Landroid/permission/IPermissionManager;
-HSPLandroid/app/ActivityThread;->getStringCoreSetting(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/app/ActivityThread;->getSystemContext()Landroid/app/ContextImpl;
-HSPLandroid/app/ActivityThread;->getSystemUiContext()Landroid/app/ContextImpl;
-HSPLandroid/app/ActivityThread;->getSystemUiContextNoCreate()Landroid/app/ContextImpl;
-HSPLandroid/app/ActivityThread;->getTopLevelResources(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Landroid/app/LoadedApk;Landroid/content/res/Configuration;)Landroid/content/res/Resources;
-HSPLandroid/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;I)V
-HSPLandroid/app/ActivityThread;->handleCreateBackupAgent(Landroid/app/ActivityThread$CreateBackupAgentData;)V
-HSPLandroid/app/ActivityThread;->handleCreateService(Landroid/app/ActivityThread$CreateServiceData;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/LoadedApk;Landroid/app/LoadedApk;]Landroid/app/ActivityThread;Landroid/app/ActivityThread;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;]Ljava/util/List;Ljava/util/Collections$EmptyList;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy;
-HSPLandroid/app/ActivityThread;->handleDestroyBackupAgent(Landroid/app/ActivityThread$CreateBackupAgentData;)V
-HSPLandroid/app/ActivityThread;->handleDispatchPackageBroadcast(I[Ljava/lang/String;)V
-HSPLandroid/app/ActivityThread;->handleDumpGfxInfo(Landroid/app/ActivityThread$DumpComponentInfo;)V
-HSPLandroid/app/ActivityThread;->handleDumpProvider(Landroid/app/ActivityThread$DumpComponentInfo;)V
-HSPLandroid/app/ActivityThread;->handleDumpResources(Landroid/app/ActivityThread$DumpResourcesData;)V
-HSPLandroid/app/ActivityThread;->handleDumpService(Landroid/app/ActivityThread$DumpComponentInfo;)V
-HSPLandroid/app/ActivityThread;->handleEnterAnimationComplete(Landroid/os/IBinder;)V
-HSPLandroid/app/ActivityThread;->handleInstallProvider(Landroid/content/pm/ProviderInfo;)V
-HSPLandroid/app/ActivityThread;->handleLaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;ILandroid/content/Intent;)Landroid/app/Activity;
-HSPLandroid/app/ActivityThread;->handleLowMemory()V
-HSPLandroid/app/ActivityThread;->handleNewIntent(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/util/List;)V
-HSPLandroid/app/ActivityThread;->handleReceiver(Landroid/app/ActivityThread$ReceiverData;)V
-HSPLandroid/app/ActivityThread;->handleRelaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
-HSPLandroid/app/ActivityThread;->handleRequestAssistContextExtras(Landroid/app/ActivityThread$RequestAssistContextExtras;)V
-HSPLandroid/app/ActivityThread;->handleResumeActivity(Landroid/app/ActivityThread$ActivityClientRecord;ZZZLjava/lang/String;)V
-HSPLandroid/app/ActivityThread;->handleSendResult(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/util/List;Ljava/lang/String;)V
-HSPLandroid/app/ActivityThread;->handleServiceArgs(Landroid/app/ActivityThread$ServiceArgsData;)V
-HSPLandroid/app/ActivityThread;->handleSetContentCaptureOptionsCallback(Ljava/lang/String;)V
-HSPLandroid/app/ActivityThread;->handleSetCoreSettings(Landroid/os/Bundle;)V
-HSPLandroid/app/ActivityThread;->handleStopService(Landroid/os/IBinder;)V
-HSPLandroid/app/ActivityThread;->handleTopResumedActivityChanged(Landroid/app/ActivityThread$ActivityClientRecord;ZLjava/lang/String;)V
-HSPLandroid/app/ActivityThread;->handleTrimMemory(I)V
-HSPLandroid/app/ActivityThread;->handleUnbindService(Landroid/app/ActivityThread$BindServiceData;)V
-HSPLandroid/app/ActivityThread;->handleUnstableProviderDied(Landroid/os/IBinder;Z)V
-HSPLandroid/app/ActivityThread;->handleUnstableProviderDiedLocked(Landroid/os/IBinder;Z)V
-HSPLandroid/app/ActivityThread;->incProviderRefLocked(Landroid/app/ActivityThread$ProviderRefCount;Z)V
-HSPLandroid/app/ActivityThread;->initZipPathValidatorCallback()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;->isHandleSplashScreenExit(Landroid/os/IBinder;)Z
-HSPLandroid/app/ActivityThread;->isInDensityCompatMode()Z
-HSPLandroid/app/ActivityThread;->isLoadedApkResourceDirsUpToDate(Landroid/app/LoadedApk;Landroid/content/pm/ApplicationInfo;)Z
-HSPLandroid/app/ActivityThread;->isProtectedBroadcast(Landroid/content/Intent;)Z
-HSPLandroid/app/ActivityThread;->isProtectedComponent(Landroid/content/pm/ActivityInfo;)Z
-HSPLandroid/app/ActivityThread;->isProtectedComponent(Landroid/content/pm/ComponentInfo;Ljava/lang/String;)Z
-HSPLandroid/app/ActivityThread;->isProtectedComponent(Landroid/content/pm/ServiceInfo;)Z
-HSPLandroid/app/ActivityThread;->isSystem()Z
-HSPLandroid/app/ActivityThread;->lambda$getGetProviderKey$3(Landroid/app/ActivityThread$ProviderKey;)Landroid/app/ActivityThread$ProviderKey;
-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;->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
-HSPLandroid/app/ActivityThread;->performRestartActivity(Landroid/app/ActivityThread$ActivityClientRecord;Z)V
-HSPLandroid/app/ActivityThread;->performResumeActivity(Landroid/app/ActivityThread$ActivityClientRecord;ZLjava/lang/String;)Z
-HSPLandroid/app/ActivityThread;->performStopActivityInner(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions$StopInfo;ZZLjava/lang/String;)V
-HSPLandroid/app/ActivityThread;->performUserLeavingActivity(Landroid/app/ActivityThread$ActivityClientRecord;)V
-HSPLandroid/app/ActivityThread;->printRow(Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/Object;)V
-HSPLandroid/app/ActivityThread;->purgePendingResources()V
-HSPLandroid/app/ActivityThread;->relaunchAllActivities(ZLjava/lang/String;)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;->reportTopResumedActivityChanged(Landroid/app/ActivityThread$ActivityClientRecord;ZLjava/lang/String;)V
-HSPLandroid/app/ActivityThread;->scheduleContextCleanup(Landroid/app/ContextImpl;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/app/ActivityThread;->schedulePurgeIdler()V
-HSPLandroid/app/ActivityThread;->sendMessage(ILjava/lang/Object;)V
-HSPLandroid/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;->unscheduleGcIdler()V
-HSPLandroid/app/ActivityThread;->updateDebugViewAttributeState()Z
-HSPLandroid/app/ActivityThread;->updateDeviceIdForNonUIContexts(I)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;-><init>()V
-HSPLandroid/app/ActivityTransitionState;->enterReady(Landroid/app/Activity;)V
-HSPLandroid/app/ActivityTransitionState;->getPendingExitNames()Ljava/util/ArrayList;
-HSPLandroid/app/ActivityTransitionState;->onResume(Landroid/app/Activity;)V
-HSPLandroid/app/ActivityTransitionState;->onStop(Landroid/app/Activity;)V
-HSPLandroid/app/ActivityTransitionState;->readState(Landroid/os/Bundle;)V
-HSPLandroid/app/ActivityTransitionState;->restoreExitedViews()V
-HSPLandroid/app/ActivityTransitionState;->restoreReenteringViews()V
-HSPLandroid/app/ActivityTransitionState;->saveState(Landroid/os/Bundle;)V
-HSPLandroid/app/ActivityTransitionState;->startExitBackTransition(Landroid/app/Activity;)Z
-HSPLandroid/app/ActivityTransitionState;->startExitOutTransition(Landroid/app/Activity;Landroid/os/Bundle;)V
-HSPLandroid/app/AlarmManager$AlarmClockInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AlarmManager$AlarmClockInfo;
-HSPLandroid/app/AlarmManager$AlarmClockInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/AlarmManager$AlarmClockInfo;->getTriggerTime()J
-HSPLandroid/app/AlarmManager$ListenerWrapper;-><init>(Landroid/app/AlarmManager;Landroid/app/AlarmManager$OnAlarmListener;)V
-HSPLandroid/app/AlarmManager$ListenerWrapper;->cancel()V
-HSPLandroid/app/AlarmManager$ListenerWrapper;->doAlarm(Landroid/app/IAlarmCompleteListener;)V
-HSPLandroid/app/AlarmManager$ListenerWrapper;->run()V
-HSPLandroid/app/AlarmManager;-><init>(Landroid/app/IAlarmManager;Landroid/content/Context;)V
-HSPLandroid/app/AlarmManager;->cancel(Landroid/app/AlarmManager$OnAlarmListener;)V
-HSPLandroid/app/AlarmManager;->cancel(Landroid/app/PendingIntent;)V
-HSPLandroid/app/AlarmManager;->getNextAlarmClock(I)Landroid/app/AlarmManager$AlarmClockInfo;
-HSPLandroid/app/AlarmManager;->legacyExactLength()J
-HSPLandroid/app/AlarmManager;->set(IJJJLandroid/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
-HSPLandroid/app/AlarmManager;->setExact(IJLandroid/app/PendingIntent;)V
-HSPLandroid/app/AlarmManager;->setExact(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V
-HSPLandroid/app/AlarmManager;->setExactAndAllowWhileIdle(IJLandroid/app/PendingIntent;)V
-HSPLandroid/app/AlarmManager;->setImpl(IJJJILandroid/app/PendingIntent;Landroid/app/AlarmManager$OnAlarmListener;Ljava/lang/String;Landroid/os/Handler;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V
-HSPLandroid/app/AlarmManager;->setImpl(IJJJILandroid/app/PendingIntent;Landroid/app/AlarmManager$OnAlarmListener;Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V
-HSPLandroid/app/AlarmManager;->setInexactRepeating(IJJLandroid/app/PendingIntent;)V
-HSPLandroid/app/AlertDialog;-><init>(Landroid/content/Context;IZ)V
-HSPLandroid/app/AlertDialog;->onCreate(Landroid/os/Bundle;)V
-HSPLandroid/app/AlertDialog;->resolveDialogTheme(Landroid/content/Context;I)I
-HSPLandroid/app/AppCompatCallbacks;->isChangeEnabled(J)Z
-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+]Landroid/app/ActivityThread;Landroid/app/ActivityThread;
-HSPLandroid/app/AppGlobals;->getPackageManager()Landroid/content/pm/IPackageManager;
-HSPLandroid/app/AppOpsManager$1;->onNoted(Landroid/app/SyncNotedAppOp;)V
-HSPLandroid/app/AppOpsManager$1;->onSelfNoted(Landroid/app/SyncNotedAppOp;)V
-HSPLandroid/app/AppOpsManager$1;->reportStackTraceIfNeeded(Landroid/app/SyncNotedAppOp;)V
-HSPLandroid/app/AppOpsManager$AttributedOpEntry;->getLastAccessEvent(III)Landroid/app/AppOpsManager$NoteOpEvent;
-HSPLandroid/app/AppOpsManager$AttributedOpEntry;->getLastRejectEvent(III)Landroid/app/AppOpsManager$NoteOpEvent;
-HSPLandroid/app/AppOpsManager$NoteOpEvent;->getDuration()J
-HSPLandroid/app/AppOpsManager$NoteOpEvent;->getNoteTime()J
-HSPLandroid/app/AppOpsManager$OnOpNotedCallback$1;-><init>(Landroid/app/AppOpsManager$OnOpNotedCallback;)V
-HSPLandroid/app/AppOpsManager$OnOpNotedCallback$1;->opNoted(Landroid/app/AsyncNotedAppOp;)V
-HSPLandroid/app/AppOpsManager$OnOpNotedCallback;-><init>()V
-HSPLandroid/app/AppOpsManager$OnOpNotedCallback;->getAsyncNotedExecutor()Ljava/util/concurrent/Executor;
-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>(Landroid/os/Parcel;)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
-HSPLandroid/app/AppOpsManager$PackageOps;->getOps()Ljava/util/List;
-HSPLandroid/app/AppOpsManager$PackageOps;->getPackageName()Ljava/lang/String;
-HSPLandroid/app/AppOpsManager$PausedNotedAppOpsCollection;-><init>(ILandroid/util/ArrayMap;)V
-HSPLandroid/app/AppOpsManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/IAppOpsService;)V
-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
-HSPLandroid/app/AppOpsManager;->collectNoteOpCallsForValidation(I)V
-HSPLandroid/app/AppOpsManager;->extractFlagsFromKey(J)I
-HSPLandroid/app/AppOpsManager;->extractUidStateFromKey(J)I
-HSPLandroid/app/AppOpsManager;->finishNotedAppOpsCollection()V
-HSPLandroid/app/AppOpsManager;->finishOp(IILjava/lang/String;Ljava/lang/String;)V
-HSPLandroid/app/AppOpsManager;->getClientId()Landroid/os/IBinder;
-HSPLandroid/app/AppOpsManager;->getFormattedStackTrace()Ljava/lang/String;
-HSPLandroid/app/AppOpsManager;->getLastEvent(Landroid/util/LongSparseArray;III)Landroid/app/AppOpsManager$NoteOpEvent;
-HSPLandroid/app/AppOpsManager;->getNotedOpCollectionMode(ILjava/lang/String;I)I
-HSPLandroid/app/AppOpsManager;->getPackagesForOps([I)Ljava/util/List;
-HSPLandroid/app/AppOpsManager;->getService()Lcom/android/internal/app/IAppOpsService;
-HSPLandroid/app/AppOpsManager;->getToken(Lcom/android/internal/app/IAppOpsService;)Landroid/os/IBinder;
-HSPLandroid/app/AppOpsManager;->isCollectingStackTraces()Z
-HSPLandroid/app/AppOpsManager;->isListeningForOpNoted()Z
-HSPLandroid/app/AppOpsManager;->lambda$new$0(Landroid/provider/DeviceConfig$Properties;)V
-HSPLandroid/app/AppOpsManager;->leftCircularDistance(III)I
-HSPLandroid/app/AppOpsManager;->makeKey(II)J
-HSPLandroid/app/AppOpsManager;->noteOp(IILjava/lang/String;)I
-HSPLandroid/app/AppOpsManager;->noteOp(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
-HSPLandroid/app/AppOpsManager;->noteOp(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
-HSPLandroid/app/AppOpsManager;->noteOpNoThrow(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
-HSPLandroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
-HSPLandroid/app/AppOpsManager;->noteProxyOp(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)I
-HSPLandroid/app/AppOpsManager;->noteProxyOpNoThrow(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)I
-HSPLandroid/app/AppOpsManager;->opToDefaultMode(I)I
-HSPLandroid/app/AppOpsManager;->opToPermission(I)Ljava/lang/String;
-HSPLandroid/app/AppOpsManager;->opToPublicName(I)Ljava/lang/String;
-HSPLandroid/app/AppOpsManager;->opToSwitch(I)I
-HSPLandroid/app/AppOpsManager;->pauseNotedAppOpsCollection()Landroid/app/AppOpsManager$PausedNotedAppOpsCollection;+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal;
-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;->readAndLogNotedAppops(Landroid/os/Parcel;)V
-HSPLandroid/app/AppOpsManager;->resolveLastRestrictedUidState(I)I
-HSPLandroid/app/AppOpsManager;->setOnOpNotedCallback(Ljava/util/concurrent/Executor;Landroid/app/AppOpsManager$OnOpNotedCallback;)V
-HSPLandroid/app/AppOpsManager;->setUidMode(Ljava/lang/String;II)V
-HSPLandroid/app/AppOpsManager;->startNotedAppOpsCollection(I)V
-HSPLandroid/app/AppOpsManager;->startOpNoThrow(IILjava/lang/String;ZLjava/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;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;->toReceiverId(Ljava/lang/Object;)Ljava/lang/String;
-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
-HSPLandroid/app/AppOpsManager;->unsafeCheckOpRawNoThrow(IILjava/lang/String;)I
-HSPLandroid/app/AppOpsManager;->unsafeCheckOpRawNoThrow(Ljava/lang/String;ILjava/lang/String;)I
-HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostCreated(Landroid/app/Activity;Landroid/os/Bundle;)V
-HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostDestroyed(Landroid/app/Activity;)V
-HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostPaused(Landroid/app/Activity;)V
-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;->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
-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
-HSPLandroid/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
-HSPLandroid/app/ApplicationErrorReport$CrashInfo;-><init>(Ljava/lang/Throwable;)V
-HSPLandroid/app/ApplicationErrorReport$CrashInfo;->sanitizeString(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/app/ApplicationErrorReport$CrashInfo;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/ApplicationExitInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ApplicationExitInfo;
-HSPLandroid/app/ApplicationExitInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/ApplicationExitInfo;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/ApplicationExitInfo;->getImportance()I
-HSPLandroid/app/ApplicationExitInfo;->getProcessName()Ljava/lang/String;
-HSPLandroid/app/ApplicationExitInfo;->getPss()J
-HSPLandroid/app/ApplicationExitInfo;->getReason()I
-HSPLandroid/app/ApplicationExitInfo;->getRss()J
-HSPLandroid/app/ApplicationExitInfo;->getStatus()I
-HSPLandroid/app/ApplicationExitInfo;->getTimestamp()J
-HSPLandroid/app/ApplicationLoaders$CachedClassLoader;-><init>()V
-HSPLandroid/app/ApplicationLoaders$CachedClassLoader;-><init>(Landroid/app/ApplicationLoaders$CachedClassLoader-IA;)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(Ljava/util/List;)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/util/List;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/util/List;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/util/List;)Ljava/lang/ClassLoader;
-HSPLandroid/app/ApplicationLoaders;->sharedLibrariesEquals(Ljava/util/List;Ljava/util/List;)Z
-HSPLandroid/app/ApplicationPackageManager$1;->recompute(Landroid/app/ApplicationPackageManager$HasSystemFeatureQuery;)Ljava/lang/Boolean;
-HSPLandroid/app/ApplicationPackageManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/app/ApplicationPackageManager$2;-><init>(Landroid/app/ApplicationPackageManager;Landroid/content/pm/PackageManager$OnChecksumsReadyListener;)V
-HSPLandroid/app/ApplicationPackageManager$2;->onChecksumsReady(Ljava/util/List;)V
-HSPLandroid/app/ApplicationPackageManager$3;->recompute(Ljava/lang/Integer;)Landroid/app/ApplicationPackageManager$GetPackagesForUidResult;
-HSPLandroid/app/ApplicationPackageManager$3;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/app/ApplicationPackageManager$GetPackagesForUidResult;-><init>([Ljava/lang/String;)V
-HSPLandroid/app/ApplicationPackageManager$GetPackagesForUidResult;->value()[Ljava/lang/String;
-HSPLandroid/app/ApplicationPackageManager$HasSystemFeatureQuery;-><init>(Ljava/lang/String;I)V
-HSPLandroid/app/ApplicationPackageManager$HasSystemFeatureQuery;->equals(Ljava/lang/Object;)Z
-HSPLandroid/app/ApplicationPackageManager$HasSystemFeatureQuery;->hashCode()I
-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;->addOnPermissionsChangeListener(Landroid/content/pm/PackageManager$OnPermissionsChangedListener;)V
-HSPLandroid/app/ApplicationPackageManager;->checkPermission(Ljava/lang/String;Ljava/lang/String;)I
-HSPLandroid/app/ApplicationPackageManager;->checkSignatures(II)I
-HSPLandroid/app/ApplicationPackageManager;->checkSignatures(Ljava/lang/String;Ljava/lang/String;)I
-HSPLandroid/app/ApplicationPackageManager;->configurationChanged()V
-HSPLandroid/app/ApplicationPackageManager;->encodeCertificates(Ljava/util/List;)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->getActivityInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;
-HSPLandroid/app/ApplicationPackageManager;->getActivityInfo(Landroid/content/ComponentName;Landroid/content/pm/PackageManager$ComponentInfoFlags;)Landroid/content/pm/ActivityInfo;
-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;->getApplicationInfo(Ljava/lang/String;Landroid/content/pm/PackageManager$ApplicationInfoFlags;)Landroid/content/pm/ApplicationInfo;
-HSPLandroid/app/ApplicationPackageManager;->getApplicationInfoAsUser(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo;
-HSPLandroid/app/ApplicationPackageManager;->getApplicationInfoAsUser(Ljava/lang/String;Landroid/content/pm/PackageManager$ApplicationInfoFlags;I)Landroid/content/pm/ApplicationInfo;
-HSPLandroid/app/ApplicationPackageManager;->getApplicationLabel(Landroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;
-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;->getComponentEnabledSetting(Landroid/content/ComponentName;)I
-HSPLandroid/app/ApplicationPackageManager;->getDefaultTextClassifierPackageName()Ljava/lang/String;
-HSPLandroid/app/ApplicationPackageManager;->getDrawable(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
-HSPLandroid/app/ApplicationPackageManager;->getInstallSourceInfo(Ljava/lang/String;)Landroid/content/pm/InstallSourceInfo;
-HSPLandroid/app/ApplicationPackageManager;->getInstalledApplications(I)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->getInstalledApplicationsAsUser(II)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->getInstalledApplicationsAsUser(Landroid/content/pm/PackageManager$ApplicationInfoFlags;I)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->getInstalledPackages(I)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->getInstalledPackages(Landroid/content/pm/PackageManager$PackageInfoFlags;)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->getInstalledPackagesAsUser(II)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->getInstalledPackagesAsUser(Landroid/content/pm/PackageManager$PackageInfoFlags;I)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/app/ApplicationPackageManager;->getLaunchIntentForPackage(Ljava/lang/String;)Landroid/content/Intent;+]Ljava/util/List;Ljava/util/ArrayList;]Landroid/app/ApplicationPackageManager;Landroid/app/ApplicationPackageManager;]Landroid/content/Intent;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;->getPackageInfo(Ljava/lang/String;Landroid/content/pm/PackageManager$PackageInfoFlags;)Landroid/content/pm/PackageInfo;
-HSPLandroid/app/ApplicationPackageManager;->getPackageInfoAsUser(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
-HSPLandroid/app/ApplicationPackageManager;->getPackageInfoAsUser(Ljava/lang/String;Landroid/content/pm/PackageManager$PackageInfoFlags;I)Landroid/content/pm/PackageInfo;
-HSPLandroid/app/ApplicationPackageManager;->getPackageInstaller()Landroid/content/pm/PackageInstaller;
-HSPLandroid/app/ApplicationPackageManager;->getPackageUid(Ljava/lang/String;I)I
-HSPLandroid/app/ApplicationPackageManager;->getPackageUid(Ljava/lang/String;Landroid/content/pm/PackageManager$PackageInfoFlags;)I
-HSPLandroid/app/ApplicationPackageManager;->getPackageUidAsUser(Ljava/lang/String;I)I
-HSPLandroid/app/ApplicationPackageManager;->getPackageUidAsUser(Ljava/lang/String;II)I
-HSPLandroid/app/ApplicationPackageManager;->getPackageUidAsUser(Ljava/lang/String;Landroid/content/pm/PackageManager$PackageInfoFlags;I)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;->getPermissionInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;
-HSPLandroid/app/ApplicationPackageManager;->getPermissionManager()Landroid/permission/PermissionManager;
-HSPLandroid/app/ApplicationPackageManager;->getProviderInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ProviderInfo;
-HSPLandroid/app/ApplicationPackageManager;->getProviderInfo(Landroid/content/ComponentName;Landroid/content/pm/PackageManager$ComponentInfoFlags;)Landroid/content/pm/ProviderInfo;
-HSPLandroid/app/ApplicationPackageManager;->getReceiverInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;
-HSPLandroid/app/ApplicationPackageManager;->getReceiverInfo(Landroid/content/ComponentName;Landroid/content/pm/PackageManager$ComponentInfoFlags;)Landroid/content/pm/ActivityInfo;
-HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplication(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/Resources;
-HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplication(Landroid/content/pm/ApplicationInfo;Landroid/content/res/Configuration;)Landroid/content/res/Resources;+]Landroid/app/ActivityThread;Landroid/app/ActivityThread;]Ljava/lang/Object;Ljava/lang/String;
-HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplication(Ljava/lang/String;)Landroid/content/res/Resources;
-HSPLandroid/app/ApplicationPackageManager;->getServiceInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo;
-HSPLandroid/app/ApplicationPackageManager;->getServiceInfo(Landroid/content/ComponentName;Landroid/content/pm/PackageManager$ComponentInfoFlags;)Landroid/content/pm/ServiceInfo;
-HSPLandroid/app/ApplicationPackageManager;->getServicesSystemSharedLibraryPackageName()Ljava/lang/String;
-HSPLandroid/app/ApplicationPackageManager;->getSystemAvailableFeatures()[Landroid/content/pm/FeatureInfo;
-HSPLandroid/app/ApplicationPackageManager;->getSystemSharedLibraryNames()[Ljava/lang/String;
-HSPLandroid/app/ApplicationPackageManager;->getText(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;
-HSPLandroid/app/ApplicationPackageManager;->getUserBadgeColor(Landroid/os/UserHandle;Z)I
-HSPLandroid/app/ApplicationPackageManager;->getUserBadgedIcon(Landroid/graphics/drawable/Drawable;Landroid/os/UserHandle;)Landroid/graphics/drawable/Drawable;
-HSPLandroid/app/ApplicationPackageManager;->getUserId()I+]Landroid/app/ContextImpl;Landroid/app/ContextImpl;
-HSPLandroid/app/ApplicationPackageManager;->getUserManager()Landroid/os/UserManager;
-HSPLandroid/app/ApplicationPackageManager;->getXml(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/content/res/XmlResourceParser;
-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
-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;->isSafeMode()Z
-HSPLandroid/app/ApplicationPackageManager;->loadItemIcon(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
-HSPLandroid/app/ApplicationPackageManager;->loadUnbadgedItemIcon(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
-HSPLandroid/app/ApplicationPackageManager;->maybeAdjustApplicationInfo(Landroid/content/pm/ApplicationInfo;)Landroid/content/pm/ApplicationInfo;
-HSPLandroid/app/ApplicationPackageManager;->onImplicitDirectBoot(I)V
-HSPLandroid/app/ApplicationPackageManager;->putCachedIcon(Landroid/app/ApplicationPackageManager$ResourceName;Landroid/graphics/drawable/Drawable;)V
-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;->queryBroadcastReceivers(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->queryBroadcastReceiversAsUser(Landroid/content/Intent;II)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->queryBroadcastReceiversAsUser(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;I)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->queryIntentActivities(Landroid/content/Intent;I)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->queryIntentActivities(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->queryIntentActivitiesAsUser(Landroid/content/Intent;II)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->queryIntentActivitiesAsUser(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;I)Ljava/util/List;+]Landroid/content/pm/IPackageManager;Landroid/content/pm/IPackageManager$Stub$Proxy;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManager$ResolveInfoFlags;Landroid/content/pm/PackageManager$ResolveInfoFlags;]Landroid/content/pm/ParceledListSlice;Landroid/content/pm/ParceledListSlice;]Landroid/content/Intent;Landroid/content/Intent;
-HSPLandroid/app/ApplicationPackageManager;->queryIntentContentProviders(Landroid/content/Intent;I)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->queryIntentContentProviders(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->queryIntentContentProvidersAsUser(Landroid/content/Intent;II)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->queryIntentContentProvidersAsUser(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;I)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->queryIntentServices(Landroid/content/Intent;I)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->queryIntentServices(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->queryIntentServicesAsUser(Landroid/content/Intent;II)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->queryIntentServicesAsUser(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;I)Ljava/util/List;
-HSPLandroid/app/ApplicationPackageManager;->removeOnPermissionsChangeListener(Landroid/content/pm/PackageManager$OnPermissionsChangedListener;)V
-HSPLandroid/app/ApplicationPackageManager;->requestChecksums(Ljava/lang/String;ZILjava/util/List;Landroid/content/pm/PackageManager$OnChecksumsReadyListener;)V
-HSPLandroid/app/ApplicationPackageManager;->resolveActivity(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;
-HSPLandroid/app/ApplicationPackageManager;->resolveActivity(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;)Landroid/content/pm/ResolveInfo;
-HSPLandroid/app/ApplicationPackageManager;->resolveActivityAsUser(Landroid/content/Intent;II)Landroid/content/pm/ResolveInfo;
-HSPLandroid/app/ApplicationPackageManager;->resolveActivityAsUser(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;I)Landroid/content/pm/ResolveInfo;
-HSPLandroid/app/ApplicationPackageManager;->resolveContentProvider(Ljava/lang/String;I)Landroid/content/pm/ProviderInfo;
-HSPLandroid/app/ApplicationPackageManager;->resolveContentProvider(Ljava/lang/String;Landroid/content/pm/PackageManager$ComponentInfoFlags;)Landroid/content/pm/ProviderInfo;
-HSPLandroid/app/ApplicationPackageManager;->resolveContentProviderAsUser(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
-HSPLandroid/app/ApplicationPackageManager;->resolveContentProviderAsUser(Ljava/lang/String;Landroid/content/pm/PackageManager$ComponentInfoFlags;I)Landroid/content/pm/ProviderInfo;
-HSPLandroid/app/ApplicationPackageManager;->resolveService(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;
-HSPLandroid/app/ApplicationPackageManager;->resolveService(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;)Landroid/content/pm/ResolveInfo;
-HSPLandroid/app/ApplicationPackageManager;->resolveServiceAsUser(Landroid/content/Intent;II)Landroid/content/pm/ResolveInfo;
-HSPLandroid/app/ApplicationPackageManager;->resolveServiceAsUser(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;I)Landroid/content/pm/ResolveInfo;
-HSPLandroid/app/ApplicationPackageManager;->setComponentEnabledSetting(Landroid/content/ComponentName;II)V
-HSPLandroid/app/ApplicationPackageManager;->setSystemAppState(Ljava/lang/String;I)V
-HSPLandroid/app/ApplicationPackageManager;->updateFlagsForApplication(JI)J
-HSPLandroid/app/ApplicationPackageManager;->updateFlagsForComponent(JILandroid/content/Intent;)J
-HSPLandroid/app/ApplicationPackageManager;->updateFlagsForPackage(JI)J
-HSPLandroid/app/ApplicationPackageManager;->updatePermissionFlags(Ljava/lang/String;Ljava/lang/String;IILandroid/os/UserHandle;)V
-HSPLandroid/app/AsyncNotedAppOp$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AsyncNotedAppOp;
-HSPLandroid/app/AsyncNotedAppOp$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/AsyncNotedAppOp;-><init>(IILjava/lang/String;Ljava/lang/String;J)V
-HSPLandroid/app/AsyncNotedAppOp;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/AsyncNotedAppOp;->getMessage()Ljava/lang/String;
-HSPLandroid/app/AsyncNotedAppOp;->getOp()Ljava/lang/String;
-HSPLandroid/app/AsyncNotedAppOp;->onConstructed()V
-HSPLandroid/app/BackStackRecord$Op;-><init>(ILandroid/app/Fragment;)V
-HSPLandroid/app/BackStackRecord;-><init>(Landroid/app/FragmentManagerImpl;)V
-HSPLandroid/app/BackStackRecord;->add(Landroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;
-HSPLandroid/app/BackStackRecord;->addOp(Landroid/app/BackStackRecord$Op;)V
-HSPLandroid/app/BackStackRecord;->bumpBackStackNesting(I)V
-HSPLandroid/app/BackStackRecord;->commit()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
-HSPLandroid/app/BackStackRecord;->isFragmentPostponed(Landroid/app/BackStackRecord$Op;)Z
-HSPLandroid/app/BackStackRecord;->isPostponed()Z
-HSPLandroid/app/BackStackRecord;->runOnCommitRunnables()V
-HSPLandroid/app/BroadcastOptions;-><init>()V
-HSPLandroid/app/BroadcastOptions;->isTemporaryAppAllowlistSet()Z
-HSPLandroid/app/BroadcastOptions;->makeBasic()Landroid/app/BroadcastOptions;
-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
-HSPLandroid/app/ConfigurationChangedListenerController;-><init>()V
-HSPLandroid/app/ConfigurationController;-><init>(Landroid/app/ActivityThreadInternal;)V
-HSPLandroid/app/ConfigurationController;->applyCompatConfiguration()Landroid/content/res/Configuration;
-HSPLandroid/app/ConfigurationController;->createNewConfigAndUpdateIfNotNull(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Landroid/content/res/Configuration;
-HSPLandroid/app/ConfigurationController;->getCompatConfiguration()Landroid/content/res/Configuration;
-HSPLandroid/app/ConfigurationController;->getConfiguration()Landroid/content/res/Configuration;
-HSPLandroid/app/ConfigurationController;->getCurDefaultDisplayDpi()I
-HSPLandroid/app/ConfigurationController;->getPendingConfiguration(Z)Landroid/content/res/Configuration;
-HSPLandroid/app/ConfigurationController;->handleConfigurationChanged(Landroid/content/res/Configuration;)V
-HSPLandroid/app/ConfigurationController;->handleConfigurationChanged(Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;)V
-HSPLandroid/app/ConfigurationController;->performConfigurationChanged(Landroid/content/ComponentCallbacks2;Landroid/content/res/Configuration;)V
-HSPLandroid/app/ConfigurationController;->setCompatConfiguration(Landroid/content/res/Configuration;)V
-HSPLandroid/app/ConfigurationController;->setConfiguration(Landroid/content/res/Configuration;)V
-HSPLandroid/app/ConfigurationController;->updateDefaultDensity(I)V
-HSPLandroid/app/ConfigurationController;->updateLocaleListFromAppContext(Landroid/content/Context;)V
-HSPLandroid/app/ConfigurationController;->updatePendingConfiguration(Landroid/content/res/Configuration;)Landroid/content/res/Configuration;
-HSPLandroid/app/ContentProviderHolder$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ContentProviderHolder;
-HSPLandroid/app/ContentProviderHolder$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/ContentProviderHolder;-><init>(Landroid/content/pm/ProviderInfo;)V
-HSPLandroid/app/ContentProviderHolder;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/ContentProviderHolder;-><init>(Landroid/os/Parcel;Landroid/app/ContentProviderHolder-IA;)V
-HSPLandroid/app/ContentProviderHolder;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/ContextImpl$1;-><init>(Ljava/lang/String;)V
-HSPLandroid/app/ContextImpl$ApplicationContentResolver;-><init>(Landroid/content/Context;Landroid/app/ActivityThread;)V
-HSPLandroid/app/ContextImpl$ApplicationContentResolver;->acquireExistingProvider(Landroid/content/Context;Ljava/lang/String;)Landroid/content/IContentProvider;
-HSPLandroid/app/ContextImpl$ApplicationContentResolver;->acquireProvider(Landroid/content/Context;Ljava/lang/String;)Landroid/content/IContentProvider;
-HSPLandroid/app/ContextImpl$ApplicationContentResolver;->acquireUnstableProvider(Landroid/content/Context;Ljava/lang/String;)Landroid/content/IContentProvider;
-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
-HSPLandroid/app/ContextImpl$ApplicationContentResolver;->unstableProviderDied(Landroid/content/IContentProvider;)V
-HSPLandroid/app/ContextImpl;-><init>(Landroid/app/ContextImpl;Landroid/app/ActivityThread;Landroid/app/LoadedApk;Landroid/content/ContextParams;Ljava/lang/String;Landroid/content/AttributionSource;Ljava/lang/String;Landroid/os/IBinder;Landroid/os/UserHandle;ILjava/lang/ClassLoader;Ljava/lang/String;IZ)V+]Landroid/app/LoadedApk;Landroid/app/LoadedApk;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;]Landroid/content/ContextParams;Landroid/content/ContextParams;
-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;JLjava/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
-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
-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;->createAttributionContext(Ljava/lang/String;)Landroid/content/Context;
-HSPLandroid/app/ContextImpl;->createAttributionSource(Ljava/lang/String;Landroid/content/AttributionSource;Ljava/util/Set;ZI)Landroid/content/AttributionSource;+]Ljava/util/Set;missing_types]Landroid/permission/PermissionManager;Landroid/permission/PermissionManager;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;
-HSPLandroid/app/ContextImpl;->createConfigurationContext(Landroid/content/res/Configuration;)Landroid/content/Context;
-HSPLandroid/app/ContextImpl;->createContext(Landroid/content/ContextParams;)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;->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;Ljava/lang/Integer;Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/util/List;)Landroid/content/res/Resources;
-HSPLandroid/app/ContextImpl;->createSystemContext(Landroid/app/ActivityThread;)Landroid/app/ContextImpl;
-HSPLandroid/app/ContextImpl;->createSystemUiContext(Landroid/app/ContextImpl;I)Landroid/app/ContextImpl;
-HSPLandroid/app/ContextImpl;->createWindowContext(ILandroid/os/Bundle;)Landroid/content/Context;
-HSPLandroid/app/ContextImpl;->createWindowContext(ILandroid/os/Bundle;)Landroid/window/WindowContext;
-HSPLandroid/app/ContextImpl;->createWindowContext(Landroid/view/Display;ILandroid/os/Bundle;)Landroid/content/Context;
-HSPLandroid/app/ContextImpl;->createWindowContext(Landroid/view/Display;ILandroid/os/Bundle;)Landroid/window/WindowContext;
-HSPLandroid/app/ContextImpl;->createWindowContextBase(Landroid/os/IBinder;I)Landroid/app/ContextImpl;
-HSPLandroid/app/ContextImpl;->createWindowContextInternal(Landroid/view/Display;ILandroid/os/Bundle;)Landroid/window/WindowContext;
-HSPLandroid/app/ContextImpl;->createWindowContextResources(Landroid/app/ContextImpl;)Landroid/content/res/Resources;
-HSPLandroid/app/ContextImpl;->databaseList()[Ljava/lang/String;
-HSPLandroid/app/ContextImpl;->deleteDatabase(Ljava/lang/String;)Z
-HSPLandroid/app/ContextImpl;->deleteFile(Ljava/lang/String;)Z
-HSPLandroid/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;Z)[Ljava/io/File;
-HSPLandroid/app/ContextImpl;->ensurePrivateCacheDirExists(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
-HSPLandroid/app/ContextImpl;->ensurePrivateDirExists(Ljava/io/File;)Ljava/io/File;
-HSPLandroid/app/ContextImpl;->ensurePrivateDirExists(Ljava/io/File;IILjava/lang/String;)Ljava/io/File;
-HSPLandroid/app/ContextImpl;->fileList()[Ljava/lang/String;
-HSPLandroid/app/ContextImpl;->finalize()V
-HSPLandroid/app/ContextImpl;->getActivityToken()Landroid/os/IBinder;
-HSPLandroid/app/ContextImpl;->getApplicationContext()Landroid/content/Context;
-HSPLandroid/app/ContextImpl;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;+]Landroid/app/LoadedApk;Landroid/app/LoadedApk;
-HSPLandroid/app/ContextImpl;->getAssets()Landroid/content/res/AssetManager;
-HSPLandroid/app/ContextImpl;->getAssociatedDisplayId()I
-HSPLandroid/app/ContextImpl;->getAttributionSource()Landroid/content/AttributionSource;
-HSPLandroid/app/ContextImpl;->getAttributionTag()Ljava/lang/String;
-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;
-HSPLandroid/app/ContextImpl;->getClassLoader()Ljava/lang/ClassLoader;
-HSPLandroid/app/ContextImpl;->getCodeCacheDir()Ljava/io/File;
-HSPLandroid/app/ContextImpl;->getCodeCacheDirBeforeBind(Ljava/io/File;)Ljava/io/File;
-HSPLandroid/app/ContextImpl;->getContentCaptureOptions()Landroid/content/ContentCaptureOptions;
-HSPLandroid/app/ContextImpl;->getContentResolver()Landroid/content/ContentResolver;
-HSPLandroid/app/ContextImpl;->getDataDir()Ljava/io/File;
-HSPLandroid/app/ContextImpl;->getDatabasePath(Ljava/lang/String;)Ljava/io/File;
-HSPLandroid/app/ContextImpl;->getDatabasesDir()Ljava/io/File;
-HSPLandroid/app/ContextImpl;->getDeviceId()I
-HSPLandroid/app/ContextImpl;->getDir(Ljava/lang/String;I)Ljava/io/File;
-HSPLandroid/app/ContextImpl;->getDisplay()Landroid/view/Display;
-HSPLandroid/app/ContextImpl;->getDisplayAdjustments(I)Landroid/view/DisplayAdjustments;
-HSPLandroid/app/ContextImpl;->getDisplayId()I
-HSPLandroid/app/ContextImpl;->getDisplayNoVerify()Landroid/view/Display;
-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;->getFileStreamPath(Ljava/lang/String;)Ljava/io/File;
-HSPLandroid/app/ContextImpl;->getFilesDir()Ljava/io/File;
-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;
-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;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;
-HSPLandroid/app/ContextImpl;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/LoadedApk;Landroid/app/LoadedApk;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;
-HSPLandroid/app/ContextImpl;->getSharedPreferencesCacheLocked()Landroid/util/ArrayMap;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;
-HSPLandroid/app/ContextImpl;->getSharedPreferencesPath(Ljava/lang/String;)Ljava/io/File;
-HSPLandroid/app/ContextImpl;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;+]Ljava/lang/Object;Ljava/lang/String;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;
-HSPLandroid/app/ContextImpl;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String;
-HSPLandroid/app/ContextImpl;->getTheme()Landroid/content/res/Resources$Theme;
-HSPLandroid/app/ContextImpl;->getThemeResId()I
-HSPLandroid/app/ContextImpl;->getUser()Landroid/os/UserHandle;
-HSPLandroid/app/ContextImpl;->getUserId()I
-HSPLandroid/app/ContextImpl;->getWindowContextToken()Landroid/os/IBinder;
-HSPLandroid/app/ContextImpl;->grantUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V
-HSPLandroid/app/ContextImpl;->initializeTheme()V
-HSPLandroid/app/ContextImpl;->isAssociatedWithDisplay()Z
-HSPLandroid/app/ContextImpl;->isCredentialProtectedStorage()Z
-HSPLandroid/app/ContextImpl;->isDeviceProtectedStorage()Z
-HSPLandroid/app/ContextImpl;->isRestricted()Z
-HSPLandroid/app/ContextImpl;->isSystemOrSystemUI(Landroid/content/Context;)Z
-HSPLandroid/app/ContextImpl;->isUiContext()Z
-HSPLandroid/app/ContextImpl;->makeFilename(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
-HSPLandroid/app/ContextImpl;->moveFiles(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)I
-HSPLandroid/app/ContextImpl;->moveSharedPreferencesFrom(Landroid/content/Context;Ljava/lang/String;)Z
-HSPLandroid/app/ContextImpl;->openFileInput(Ljava/lang/String;)Ljava/io/FileInputStream;
-HSPLandroid/app/ContextImpl;->openFileOutput(Ljava/lang/String;I)Ljava/io/FileOutputStream;
-HSPLandroid/app/ContextImpl;->openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;
-HSPLandroid/app/ContextImpl;->openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase;
-HSPLandroid/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;I)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;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;I)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;->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
-HSPLandroid/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
-HSPLandroid/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
-HSPLandroid/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
-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;->setDisplay(Landroid/view/Display;)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
-HSPLandroid/app/ContextImpl;->startActivity(Landroid/content/Intent;)V
-HSPLandroid/app/ContextImpl;->startActivity(Landroid/content/Intent;Landroid/os/Bundle;)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
-HSPLandroid/app/ContextImpl;->unbindService(Landroid/content/ServiceConnection;)V
-HSPLandroid/app/ContextImpl;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
-HSPLandroid/app/ContextImpl;->updateDeviceId(I)V
-HSPLandroid/app/ContextImpl;->updateDeviceIdIfChanged(I)V
-HSPLandroid/app/ContextImpl;->updateDisplay(I)V
-HSPLandroid/app/ContextImpl;->validateServiceIntent(Landroid/content/Intent;)V
-HSPLandroid/app/ContextImpl;->warnIfCallingFromSystemProcess()V
-HSPLandroid/app/DexLoadReporter;->getInstance()Landroid/app/DexLoadReporter;
-HSPLandroid/app/DexLoadReporter;->isSecondaryDexFile(Ljava/lang/String;[Ljava/lang/String;)Z
-HSPLandroid/app/DexLoadReporter;->notifyPackageManager(Ljava/util/Map;)V
-HSPLandroid/app/DexLoadReporter;->registerAppDataDir(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/app/DexLoadReporter;->registerSecondaryDexForProfiling(Ljava/lang/String;[Ljava/lang/String;)V
-HSPLandroid/app/DexLoadReporter;->registerSecondaryDexForProfiling(Ljava/util/Set;)V
-HSPLandroid/app/DexLoadReporter;->report(Ljava/util/Map;)V
-HSPLandroid/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
-HSPLandroid/app/Dialog;->cancel()V
-HSPLandroid/app/Dialog;->dismiss()V
-HSPLandroid/app/Dialog;->dismissDialog()V
-HSPLandroid/app/Dialog;->dispatchOnCreate(Landroid/os/Bundle;)V
-HSPLandroid/app/Dialog;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
-HSPLandroid/app/Dialog;->findViewById(I)Landroid/view/View;
-HSPLandroid/app/Dialog;->getContext()Landroid/content/Context;
-HSPLandroid/app/Dialog;->getWindow()Landroid/view/Window;
-HSPLandroid/app/Dialog;->hide()V
-HSPLandroid/app/Dialog;->onAttachedToWindow()V
-HSPLandroid/app/Dialog;->onContentChanged()V
-HSPLandroid/app/Dialog;->onCreate(Landroid/os/Bundle;)V
-HSPLandroid/app/Dialog;->onDetachedFromWindow()V
-HSPLandroid/app/Dialog;->onStart()V
-HSPLandroid/app/Dialog;->onStop()V
-HSPLandroid/app/Dialog;->onTouchEvent(Landroid/view/MotionEvent;)Z
-HSPLandroid/app/Dialog;->onWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V
-HSPLandroid/app/Dialog;->onWindowFocusChanged(Z)V
-HSPLandroid/app/Dialog;->setCancelable(Z)V
-HSPLandroid/app/Dialog;->setCanceledOnTouchOutside(Z)V
-HSPLandroid/app/Dialog;->setContentView(Landroid/view/View;)V
-HSPLandroid/app/Dialog;->setOnCancelListener(Landroid/content/DialogInterface$OnCancelListener;)V
-HSPLandroid/app/Dialog;->setOnDismissListener(Landroid/content/DialogInterface$OnDismissListener;)V
-HSPLandroid/app/Dialog;->setOnShowListener(Landroid/content/DialogInterface$OnShowListener;)V
-HSPLandroid/app/Dialog;->setOwnerActivity(Landroid/app/Activity;)V
-HSPLandroid/app/Dialog;->show()V
-HSPLandroid/app/DownloadManager$CursorTranslator;-><init>(Landroid/database/Cursor;Landroid/net/Uri;Z)V
-HSPLandroid/app/DownloadManager$Query;-><init>()V
-HSPLandroid/app/DownloadManager$Query;->joinStrings(Ljava/lang/String;Ljava/lang/Iterable;)Ljava/lang/String;
-HSPLandroid/app/DownloadManager$Query;->runQuery(Landroid/content/ContentResolver;[Ljava/lang/String;Landroid/net/Uri;)Landroid/database/Cursor;
-HSPLandroid/app/DownloadManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/app/DownloadManager;->query(Landroid/app/DownloadManager$Query;)Landroid/database/Cursor;
-HSPLandroid/app/DownloadManager;->query(Landroid/app/DownloadManager$Query;[Ljava/lang/String;)Landroid/database/Cursor;
-HSPLandroid/app/EventLogTags;->writeWmOnTopResumedGainedCalled(ILjava/lang/String;Ljava/lang/String;)V
-HSPLandroid/app/FeatureFlagsImpl;->notificationChannelVibrationEffectApi()Z
-HSPLandroid/app/Fragment$1;-><init>(Landroid/app/Fragment;)V
-HSPLandroid/app/Fragment;-><init>()V
-HSPLandroid/app/Fragment;->equals(Ljava/lang/Object;)Z
-HSPLandroid/app/Fragment;->getActivity()Landroid/app/Activity;
-HSPLandroid/app/Fragment;->getAnimatingAway()Landroid/animation/Animator;
-HSPLandroid/app/Fragment;->getChildFragmentManager()Landroid/app/FragmentManager;
-HSPLandroid/app/Fragment;->getContext()Landroid/content/Context;
-HSPLandroid/app/Fragment;->getNextAnim()I
-HSPLandroid/app/Fragment;->getNextTransition()I
-HSPLandroid/app/Fragment;->getNextTransitionStyle()I
-HSPLandroid/app/Fragment;->getView()Landroid/view/View;
-HSPLandroid/app/Fragment;->initState()V
-HSPLandroid/app/Fragment;->instantiate(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/app/Fragment;
-HSPLandroid/app/Fragment;->instantiateChildFragmentManager()V
-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
-HSPLandroid/app/Fragment;->onConfigurationChanged(Landroid/content/res/Configuration;)V
-HSPLandroid/app/Fragment;->onCreate(Landroid/os/Bundle;)V
-HSPLandroid/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;
-HSPLandroid/app/Fragment;->onLowMemory()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
-HSPLandroid/app/Fragment;->onTrimMemory(I)V
-HSPLandroid/app/Fragment;->onViewCreated(Landroid/view/View;Landroid/os/Bundle;)V
-HSPLandroid/app/Fragment;->onViewStateRestored(Landroid/os/Bundle;)V
-HSPLandroid/app/Fragment;->performActivityCreated(Landroid/os/Bundle;)V
-HSPLandroid/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;->performLowMemory()V
-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
-HSPLandroid/app/Fragment;->performTrimMemory(I)V
-HSPLandroid/app/Fragment;->restoreChildFragmentState(Landroid/os/Bundle;Z)V
-HSPLandroid/app/Fragment;->restoreViewState(Landroid/os/Bundle;)V
-HSPLandroid/app/Fragment;->setIndex(ILandroid/app/Fragment;)V
-HSPLandroid/app/Fragment;->setNextAnim(I)V
-HSPLandroid/app/Fragment;->setNextTransition(II)V
-HSPLandroid/app/FragmentContainer;-><init>()V
-HSPLandroid/app/FragmentContainer;->instantiate(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/app/Fragment;
-HSPLandroid/app/FragmentController;-><init>(Landroid/app/FragmentHostCallback;)V
-HSPLandroid/app/FragmentController;->attachHost(Landroid/app/Fragment;)V
-HSPLandroid/app/FragmentController;->createController(Landroid/app/FragmentHostCallback;)Landroid/app/FragmentController;
-HSPLandroid/app/FragmentController;->dispatchActivityCreated()V
-HSPLandroid/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;->dispatchLowMemory()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;
-HSPLandroid/app/FragmentController;->noteStateNotSaved()V
-HSPLandroid/app/FragmentController;->reportLoaderStart()V
-HSPLandroid/app/FragmentController;->restoreAllState(Landroid/os/Parcelable;Landroid/app/FragmentManagerNonConfig;)V
-HSPLandroid/app/FragmentController;->retainLoaderNonConfig()Landroid/util/ArrayMap;
-HSPLandroid/app/FragmentController;->retainNestedNonConfig()Landroid/app/FragmentManagerNonConfig;
-HSPLandroid/app/FragmentController;->saveAllState()Landroid/os/Parcelable;
-HSPLandroid/app/FragmentHostCallback;-><init>(Landroid/app/Activity;)V
-HSPLandroid/app/FragmentHostCallback;-><init>(Landroid/app/Activity;Landroid/content/Context;Landroid/os/Handler;I)V
-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;
-HSPLandroid/app/FragmentHostCallback;->getRetainLoaders()Z
-HSPLandroid/app/FragmentHostCallback;->inactivateFragment(Ljava/lang/String;)V
-HSPLandroid/app/FragmentHostCallback;->reportLoaderStart()V
-HSPLandroid/app/FragmentHostCallback;->retainLoaderNonConfig()Landroid/util/ArrayMap;
-HSPLandroid/app/FragmentManager;-><init>()V
-HSPLandroid/app/FragmentManagerImpl$1;-><init>(Landroid/app/FragmentManagerImpl;)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;->attachController(Landroid/app/FragmentHostCallback;Landroid/app/FragmentContainer;Landroid/app/Fragment;)V
-HSPLandroid/app/FragmentManagerImpl;->beginTransaction()Landroid/app/FragmentTransaction;
-HSPLandroid/app/FragmentManagerImpl;->burpActive()V
-HSPLandroid/app/FragmentManagerImpl;->checkStateLoss()V
-HSPLandroid/app/FragmentManagerImpl;->cleanupExec()V
-HSPLandroid/app/FragmentManagerImpl;->dispatchActivityCreated()V
-HSPLandroid/app/FragmentManagerImpl;->dispatchCreate()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
-HSPLandroid/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;->dispatchPause()V
-HSPLandroid/app/FragmentManagerImpl;->dispatchPrepareOptionsMenu(Landroid/view/Menu;)Z
-HSPLandroid/app/FragmentManagerImpl;->dispatchResume()V
-HSPLandroid/app/FragmentManagerImpl;->dispatchStart()V
-HSPLandroid/app/FragmentManagerImpl;->dispatchStop()V
-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
-HSPLandroid/app/FragmentManagerImpl;->findFragmentByTag(Ljava/lang/String;)Landroid/app/Fragment;
-HSPLandroid/app/FragmentManagerImpl;->findFragmentUnder(Landroid/app/Fragment;)Landroid/app/Fragment;
-HSPLandroid/app/FragmentManagerImpl;->forcePostponedTransactions()V
-HSPLandroid/app/FragmentManagerImpl;->generateOpsForPendingActions(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
-HSPLandroid/app/FragmentManagerImpl;->getLayoutInflaterFactory()Landroid/view/LayoutInflater$Factory2;
-HSPLandroid/app/FragmentManagerImpl;->getPrimaryNavigationFragment()Landroid/app/Fragment;
-HSPLandroid/app/FragmentManagerImpl;->getTargetSdk()I
-HSPLandroid/app/FragmentManagerImpl;->isStateSaved()Z
-HSPLandroid/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
-HSPLandroid/app/FragmentManagerImpl;->makeRemovedFragmentsInvisible(Landroid/util/ArraySet;)V
-HSPLandroid/app/FragmentManagerImpl;->moveFragmentToExpectedState(Landroid/app/Fragment;)V
-HSPLandroid/app/FragmentManagerImpl;->moveToState(IZ)V
-HSPLandroid/app/FragmentManagerImpl;->moveToState(Landroid/app/Fragment;IIIZ)V
-HSPLandroid/app/FragmentManagerImpl;->noteStateNotSaved()V
-HSPLandroid/app/FragmentManagerImpl;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
-HSPLandroid/app/FragmentManagerImpl;->performPendingDeferredStart(Landroid/app/Fragment;)V
-HSPLandroid/app/FragmentManagerImpl;->popBackStackImmediate()Z
-HSPLandroid/app/FragmentManagerImpl;->popBackStackImmediate(Ljava/lang/String;II)Z
-HSPLandroid/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;
-HSPLandroid/app/FragmentManagerImpl;->saveNonConfig()V
-HSPLandroid/app/FragmentManagerImpl;->scheduleCommit()V
-HSPLandroid/app/FragmentManagerImpl;->setRetaining(Landroid/app/FragmentManagerNonConfig;)V
-HSPLandroid/app/FragmentManagerImpl;->startPendingDeferredFragments()V
-HSPLandroid/app/FragmentManagerState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/FragmentManagerState;
-HSPLandroid/app/FragmentManagerState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/FragmentManagerState;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/FragmentManagerState;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/FragmentState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/FragmentState;
-HSPLandroid/app/FragmentState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/FragmentState$1;->newArray(I)[Landroid/app/FragmentState;
-HSPLandroid/app/FragmentState$1;->newArray(I)[Ljava/lang/Object;
-HSPLandroid/app/FragmentState;-><init>(Landroid/app/Fragment;)V
-HSPLandroid/app/FragmentState;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/FragmentState;->instantiate(Landroid/app/FragmentHostCallback;Landroid/app/FragmentContainer;Landroid/app/Fragment;Landroid/app/FragmentManagerNonConfig;)Landroid/app/Fragment;
-HSPLandroid/app/FragmentState;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/FragmentTransaction;-><init>()V
-HSPLandroid/app/FragmentTransition;->addToFirstInLastOut(Landroid/app/BackStackRecord;Landroid/app/BackStackRecord$Op;Landroid/util/SparseArray;ZZ)V
-HSPLandroid/app/FragmentTransition;->calculateFragments(Landroid/app/BackStackRecord;Landroid/util/SparseArray;Z)V
-HSPLandroid/app/FragmentTransition;->startTransitions(Landroid/app/FragmentManagerImpl;Ljava/util/ArrayList;Ljava/util/ArrayList;IIZ)V
-HSPLandroid/app/GameManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-HSPLandroid/app/GameManager;->isAngleEnabled(Ljava/lang/String;)Z
-HSPLandroid/app/IActivityClientController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityDestroyed(Landroid/os/IBinder;)V
-HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityIdle(Landroid/os/IBinder;Landroid/content/res/Configuration;Z)V
-HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityPaused(Landroid/os/IBinder;)V
-HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityResumed(Landroid/os/IBinder;Z)V
-HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityStopped(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V
-HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityTopResumedStateLost()V
-HSPLandroid/app/IActivityClientController$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/IActivityClientController$Stub$Proxy;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z
-HSPLandroid/app/IActivityClientController$Stub$Proxy;->getCallingActivity(Landroid/os/IBinder;)Landroid/content/ComponentName;
-HSPLandroid/app/IActivityClientController$Stub$Proxy;->getDisplayId(Landroid/os/IBinder;)I
-HSPLandroid/app/IActivityClientController$Stub$Proxy;->getTaskForActivity(Landroid/os/IBinder;Z)I
-HSPLandroid/app/IActivityClientController$Stub$Proxy;->overridePendingTransition(Landroid/os/IBinder;Ljava/lang/String;III)V
-HSPLandroid/app/IActivityClientController$Stub$Proxy;->reportActivityFullyDrawn(Landroid/os/IBinder;Z)V
-HSPLandroid/app/IActivityClientController$Stub$Proxy;->reportSizeConfigurations(Landroid/os/IBinder;Landroid/window/SizeConfigurationBuckets;)V
-HSPLandroid/app/IActivityClientController$Stub$Proxy;->setRequestedOrientation(Landroid/os/IBinder;I)V
-HSPLandroid/app/IActivityClientController$Stub$Proxy;->setTaskDescription(Landroid/os/IBinder;Landroid/app/ActivityManager$TaskDescription;)V
-HSPLandroid/app/IActivityClientController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityClientController;
-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;->asBinder()Landroid/os/IBinder;
-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;->bindServiceInstance(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IServiceConnection;JLjava/lang/String;Ljava/lang/String;I)I
-HSPLandroid/app/IActivityManager$Stub$Proxy;->broadcastIntentWithFeature(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I
-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;->checkPermissionForDevice(Ljava/lang/String;III)I+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/app/IActivityManager$Stub$Proxy;Landroid/app/IActivityManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/app/IActivityManager$Stub$Proxy;->checkUriPermission(Landroid/net/Uri;IIIILandroid/os/IBinder;)I
-HSPLandroid/app/IActivityManager$Stub$Proxy;->finishAttachApplication(J)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;
-HSPLandroid/app/IActivityManager$Stub$Proxy;->getCurrentUserId()I
-HSPLandroid/app/IActivityManager$Stub$Proxy;->getHistoricalProcessExitReasons(Ljava/lang/String;III)Landroid/content/pm/ParceledListSlice;
-HSPLandroid/app/IActivityManager$Stub$Proxy;->getInfoForIntentSender(Landroid/content/IIntentSender;)Landroid/app/ActivityManager$PendingIntentInfo;
-HSPLandroid/app/IActivityManager$Stub$Proxy;->getIntentSenderWithFeature(ILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;I)Landroid/content/IIntentSender;
-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;->getProcessMemoryInfo([I)[Landroid/os/Debug$MemoryInfo;
-HSPLandroid/app/IActivityManager$Stub$Proxy;->getRunningAppProcesses()Ljava/util/List;
-HSPLandroid/app/IActivityManager$Stub$Proxy;->getServices(II)Ljava/util/List;
-HSPLandroid/app/IActivityManager$Stub$Proxy;->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;I)Z
-HSPLandroid/app/IActivityManager$Stub$Proxy;->isBackgroundRestricted(Ljava/lang/String;)Z
-HSPLandroid/app/IActivityManager$Stub$Proxy;->isIntentSenderAnActivity(Landroid/content/IIntentSender;)Z
-HSPLandroid/app/IActivityManager$Stub$Proxy;->isUserAMonkey()Z
-HSPLandroid/app/IActivityManager$Stub$Proxy;->publishContentProviders(Landroid/app/IApplicationThread;Ljava/util/List;)V
-HSPLandroid/app/IActivityManager$Stub$Proxy;->publishService(Landroid/os/IBinder;Landroid/content/Intent;Landroid/os/IBinder;)V
-HSPLandroid/app/IActivityManager$Stub$Proxy;->refContentProvider(Landroid/os/IBinder;II)Z
-HSPLandroid/app/IActivityManager$Stub$Proxy;->registerReceiverWithFeature(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent;
-HSPLandroid/app/IActivityManager$Stub$Proxy;->registerStrictModeCallback(Landroid/os/IBinder;)V
-HSPLandroid/app/IActivityManager$Stub$Proxy;->registerUidObserver(Landroid/app/IUidObserver;IILjava/lang/String;)V
-HSPLandroid/app/IActivityManager$Stub$Proxy;->removeContentProvider(Landroid/os/IBinder;Z)V
-HSPLandroid/app/IActivityManager$Stub$Proxy;->revokeUriPermission(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/net/Uri;II)V
-HSPLandroid/app/IActivityManager$Stub$Proxy;->serviceDoneExecuting(Landroid/os/IBinder;IIILandroid/content/Intent;)V+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/app/IActivityManager$Stub$Proxy;Landroid/app/IActivityManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel;
-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;Ljava/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
-HSPLandroid/app/IActivityManager$Stub$Proxy;->unregisterReceiver(Landroid/content/IIntentReceiver;)V
-HSPLandroid/app/IActivityManager$Stub$Proxy;->unstableProviderDied(Landroid/os/IBinder;)V
-HSPLandroid/app/IActivityManager$Stub$Proxy;->waitForNetworkStateUpdate(J)V
-HSPLandroid/app/IActivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityManager;
-HSPLandroid/app/IActivityManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/app/IActivityTaskManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getActivityClientController()Landroid/app/IActivityClientController;
-HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getAppTasks(Ljava/lang/String;)Ljava/util/List;
-HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo;
-HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getLockTaskModeState()I
-HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getRecentTasks(III)Landroid/content/pm/ParceledListSlice;
-HSPLandroid/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;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;)I
-HSPLandroid/app/IActivityTaskManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityTaskManager;
-HSPLandroid/app/IAlarmCompleteListener$Stub$Proxy;->alarmComplete(Landroid/os/IBinder;)V
-HSPLandroid/app/IAlarmListener$Stub;-><init>()V
-HSPLandroid/app/IAlarmListener$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/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;->asBinder()Landroid/os/IBinder;
-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;->asInterface(Landroid/os/IBinder;)Landroid/app/IAlarmManager;
-HSPLandroid/app/IAppTask$Stub$Proxy;->getTaskInfo()Landroid/app/ActivityManager$RecentTaskInfo;
-HSPLandroid/app/IAppTraceRetriever$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/app/IAppTraceRetriever$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAppTraceRetriever;
-HSPLandroid/app/IApplicationThread$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/app/IApplicationThread$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-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;->getDefaultTransactionName(I)Ljava/lang/String;
-HSPLandroid/app/IApplicationThread$Stub;->getMaxTransactionId()I
-HSPLandroid/app/IApplicationThread$Stub;->getTransactionName(I)Ljava/lang/String;
-HSPLandroid/app/IApplicationThread$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/app/IBackupAgent$Stub;-><init>()V
-HSPLandroid/app/IBackupAgent$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/IBackupAgent$Stub;->getMaxTransactionId()I
-HSPLandroid/app/IBackupAgent$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/app/IGameManagerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/app/IGameManagerService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/IGameManagerService$Stub$Proxy;->isAngleEnabled(Ljava/lang/String;I)Z
-HSPLandroid/app/IGameManagerService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IGameManagerService;
-HSPLandroid/app/IInstrumentationWatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IInstrumentationWatcher;
-HSPLandroid/app/ILocalWallpaperColorConsumer$Stub;-><init>()V
-HSPLandroid/app/INotificationManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/app/INotificationManager$Stub$Proxy;->areNotificationsEnabled(Ljava/lang/String;)Z
-HSPLandroid/app/INotificationManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-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
-HSPLandroid/app/INotificationManager$Stub$Proxy;->finishToken(Ljava/lang/String;Landroid/os/IBinder;)V
-HSPLandroid/app/INotificationManager$Stub$Proxy;->getActiveNotificationsFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
-HSPLandroid/app/INotificationManager$Stub$Proxy;->getAppActiveNotifications(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
-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;
-HSPLandroid/app/INotificationManager$Stub$Proxy;->getZenMode()I
-HSPLandroid/app/INotificationManager$Stub$Proxy;->getZenRules()Ljava/util/List;
-HSPLandroid/app/INotificationManager$Stub$Proxy;->isNotificationPolicyAccessGranted(Ljava/lang/String;)Z
-HSPLandroid/app/INotificationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/INotificationManager;
-HSPLandroid/app/IServiceConnection$Stub;-><init>()V
-HSPLandroid/app/IServiceConnection$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/IServiceConnection$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
-HSPLandroid/app/IServiceConnection$Stub;->getMaxTransactionId()I
-HSPLandroid/app/IServiceConnection$Stub;->getTransactionName(I)Ljava/lang/String;
-HSPLandroid/app/IServiceConnection$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/app/ITaskStackListener$Stub;-><init>()V
-HSPLandroid/app/ITaskStackListener$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/ITaskStackListener$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;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/app/IUiModeManager$Stub$Proxy;->addCallback(Landroid/app/IUiModeManagerCallback;)V
-HSPLandroid/app/IUiModeManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/IUiModeManager$Stub$Proxy;->getContrast()F
-HSPLandroid/app/IUiModeManager$Stub$Proxy;->getCurrentModeType()I
-HSPLandroid/app/IUiModeManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUiModeManager;
-HSPLandroid/app/IUiModeManagerCallback$Stub;-><init>()V
-HSPLandroid/app/IUiModeManagerCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/IUidObserver$Stub;-><init>()V
-HSPLandroid/app/IUidObserver$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/IUidObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/app/IUnsafeIntentStrictModeCallback$Stub;-><init>()V
-HSPLandroid/app/IUriGrantsManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/IUriGrantsManager$Stub$Proxy;->getUriPermissions(Ljava/lang/String;ZZ)Landroid/content/pm/ParceledListSlice;
-HSPLandroid/app/IUserSwitchObserver$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperColors(III)Landroid/app/WallpaperColors;
-HSPLandroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperInfo(I)Landroid/app/WallpaperInfo;
-HSPLandroid/app/IWallpaperManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IWallpaperManager;
-HSPLandroid/app/IWallpaperManagerCallback$Stub;-><init>()V
-HSPLandroid/app/IWallpaperManagerCallback$Stub;->asBinder()Landroid/os/IBinder;
-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
-HSPLandroid/app/Instrumentation;->callActivityOnNewIntent(Landroid/app/Activity;Landroid/content/Intent;)V
-HSPLandroid/app/Instrumentation;->callActivityOnNewIntent(Landroid/app/Activity;Lcom/android/internal/content/ReferrerIntent;)V
-HSPLandroid/app/Instrumentation;->callActivityOnPause(Landroid/app/Activity;)V
-HSPLandroid/app/Instrumentation;->callActivityOnPictureInPictureRequested(Landroid/app/Activity;)V
-HSPLandroid/app/Instrumentation;->callActivityOnPostCreate(Landroid/app/Activity;Landroid/os/Bundle;)V
-HSPLandroid/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;->isInstrumenting()Z
-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;->notifyStartActivityResult(ILandroid/os/Bundle;)V
-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;-><init>(Landroid/app/IntentService;Landroid/os/Looper;)V
-HSPLandroid/app/IntentService$ServiceHandler;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/app/IntentService;-><init>(Ljava/lang/String;)V
-HSPLandroid/app/IntentService;->onCreate()V
-HSPLandroid/app/IntentService;->onDestroy()V
-HSPLandroid/app/IntentService;->onStart(Landroid/content/Intent;I)V
-HSPLandroid/app/IntentService;->onStartCommand(Landroid/content/Intent;II)I
-HSPLandroid/app/JobSchedulerImpl;-><init>(Landroid/content/Context;Landroid/app/job/IJobScheduler;)V
-HSPLandroid/app/JobSchedulerImpl;-><init>(Landroid/content/Context;Landroid/app/job/IJobScheduler;Ljava/lang/String;)V
-HSPLandroid/app/JobSchedulerImpl;->cancel(I)V
-HSPLandroid/app/JobSchedulerImpl;->enqueue(Landroid/app/job/JobInfo;Landroid/app/job/JobWorkItem;)I
-HSPLandroid/app/JobSchedulerImpl;->getAllPendingJobs()Ljava/util/List;
-HSPLandroid/app/JobSchedulerImpl;->getPendingJob(I)Landroid/app/job/JobInfo;
-HSPLandroid/app/JobSchedulerImpl;->schedule(Landroid/app/job/JobInfo;)I
-HSPLandroid/app/JobSchedulerImpl;->scheduleAsPackage(Landroid/app/job/JobInfo;Ljava/lang/String;ILjava/lang/String;)I
-HSPLandroid/app/KeyguardManager$1;-><init>(Landroid/app/KeyguardManager;)V
-HSPLandroid/app/KeyguardManager;-><init>(Landroid/content/Context;)V
-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
-HSPLandroid/app/LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0;-><init>(Landroid/app/LoadedApk$ReceiverDispatcher$Args;)V
-HSPLandroid/app/LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/app/LoadedApk$ReceiverDispatcher$Args;-><init>(Landroid/app/LoadedApk$ReceiverDispatcher;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZZIILjava/lang/String;)V
-HSPLandroid/app/LoadedApk$ReceiverDispatcher$Args;->getRunnable()Ljava/lang/Runnable;
-HSPLandroid/app/LoadedApk$ReceiverDispatcher$Args;->lambda$getRunnable$0()V
-HSPLandroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
-HSPLandroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZZIILjava/lang/String;)V
-HSPLandroid/app/LoadedApk$ReceiverDispatcher;-><init>(Landroid/app/IApplicationThread;Landroid/content/BroadcastReceiver;Landroid/content/Context;Landroid/os/Handler;Landroid/app/Instrumentation;Z)V
-HSPLandroid/app/LoadedApk$ReceiverDispatcher;->getIIntentReceiver()Landroid/content/IIntentReceiver;
-HSPLandroid/app/LoadedApk$ReceiverDispatcher;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZZIILjava/lang/String;)V
-HSPLandroid/app/LoadedApk$ReceiverDispatcher;->validate(Landroid/content/Context;Landroid/os/Handler;)V
-HSPLandroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo;-><init>()V
-HSPLandroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo;-><init>(Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo-IA;)V
-HSPLandroid/app/LoadedApk$ServiceDispatcher$DeathMonitor;-><init>(Landroid/app/LoadedApk$ServiceDispatcher;Landroid/content/ComponentName;Landroid/os/IBinder;)V
-HSPLandroid/app/LoadedApk$ServiceDispatcher$DeathMonitor;->binderDied()V
-HSPLandroid/app/LoadedApk$ServiceDispatcher$InnerConnection;-><init>(Landroid/app/LoadedApk$ServiceDispatcher;)V
-HSPLandroid/app/LoadedApk$ServiceDispatcher$InnerConnection;->connected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
-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;J)V
-HSPLandroid/app/LoadedApk$ServiceDispatcher;-><init>(Landroid/content/ServiceConnection;Landroid/content/Context;Ljava/util/concurrent/Executor;J)V
-HSPLandroid/app/LoadedApk$ServiceDispatcher;->connected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
-HSPLandroid/app/LoadedApk$ServiceDispatcher;->death(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-HSPLandroid/app/LoadedApk$ServiceDispatcher;->doConnected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
-HSPLandroid/app/LoadedApk$ServiceDispatcher;->doDeath(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-HSPLandroid/app/LoadedApk$ServiceDispatcher;->doForget()V
-HSPLandroid/app/LoadedApk$ServiceDispatcher;->getFlags()J
-HSPLandroid/app/LoadedApk$ServiceDispatcher;->getIServiceConnection()Landroid/app/IServiceConnection;
-HSPLandroid/app/LoadedApk$ServiceDispatcher;->validate(Landroid/content/Context;Landroid/os/Handler;Ljava/util/concurrent/Executor;)V
-HSPLandroid/app/LoadedApk$SplitDependencyLoaderImpl;-><init>(Landroid/app/LoadedApk;Landroid/util/SparseArray;)V
-HSPLandroid/app/LoadedApk$SplitDependencyLoaderImpl;->constructSplit(I[II)V
-HSPLandroid/app/LoadedApk$SplitDependencyLoaderImpl;->ensureSplitLoaded(Ljava/lang/String;)I
-HSPLandroid/app/LoadedApk$SplitDependencyLoaderImpl;->getClassLoaderForSplit(Ljava/lang/String;)Ljava/lang/ClassLoader;
-HSPLandroid/app/LoadedApk$SplitDependencyLoaderImpl;->getSplitPathsForSplit(Ljava/lang/String;)[Ljava/lang/String;
-HSPLandroid/app/LoadedApk$SplitDependencyLoaderImpl;->isSplitCached(I)Z
-HSPLandroid/app/LoadedApk$WarningContextClassLoader;-><init>()V
-HSPLandroid/app/LoadedApk$WarningContextClassLoader;-><init>(Landroid/app/LoadedApk$WarningContextClassLoader-IA;)V
-HSPLandroid/app/LoadedApk;->-$$Nest$fgetmClassLoader(Landroid/app/LoadedApk;)Ljava/lang/ClassLoader;
-HSPLandroid/app/LoadedApk;->-$$Nest$fgetmLock(Landroid/app/LoadedApk;)Ljava/lang/Object;
-HSPLandroid/app/LoadedApk;->-$$Nest$fgetmSplitNames(Landroid/app/LoadedApk;)[Ljava/lang/String;
-HSPLandroid/app/LoadedApk;->-$$Nest$fgetmSplitResDirs(Landroid/app/LoadedApk;)[Ljava/lang/String;
-HSPLandroid/app/LoadedApk;->-$$Nest$mcreateOrUpdateClassLoaderLocked(Landroid/app/LoadedApk;Ljava/util/List;)V
-HSPLandroid/app/LoadedApk;-><init>(Landroid/app/ActivityThread;)V
-HSPLandroid/app/LoadedApk;-><init>(Landroid/app/ActivityThread;Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;ZZZ)V
-HSPLandroid/app/LoadedApk;->adjustNativeLibraryPaths(Landroid/content/pm/ApplicationInfo;)Landroid/content/pm/ApplicationInfo;
-HSPLandroid/app/LoadedApk;->allowThreadDiskReads()Landroid/os/StrictMode$ThreadPolicy;
-HSPLandroid/app/LoadedApk;->allowVmViolations()Landroid/os/StrictMode$VmPolicy;
-HSPLandroid/app/LoadedApk;->appendApkLibPathIfNeeded(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
-HSPLandroid/app/LoadedApk;->appendSharedLibrariesLibPathsIfNeeded(Ljava/util/List;Landroid/content/pm/ApplicationInfo;Ljava/util/Set;Ljava/util/List;)V
-HSPLandroid/app/LoadedApk;->canAccessDataDir()Z
-HSPLandroid/app/LoadedApk;->createAppFactory(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)Landroid/app/AppComponentFactory;
-HSPLandroid/app/LoadedApk;->createOrUpdateClassLoaderLocked(Ljava/util/List;)V
-HSPLandroid/app/LoadedApk;->createSharedLibrariesLoaders(Ljava/util/List;ZLjava/lang/String;Ljava/lang/String;)Landroid/util/Pair;
-HSPLandroid/app/LoadedApk;->createSharedLibraryLoader(Landroid/content/pm/SharedLibraryInfo;ZLjava/lang/String;Ljava/lang/String;)Ljava/lang/ClassLoader;
-HSPLandroid/app/LoadedApk;->forgetReceiverDispatcher(Landroid/content/Context;Landroid/content/BroadcastReceiver;)Landroid/content/IIntentReceiver;
-HSPLandroid/app/LoadedApk;->forgetServiceDispatcher(Landroid/content/Context;Landroid/content/ServiceConnection;)Landroid/app/IServiceConnection;
-HSPLandroid/app/LoadedApk;->getAppDir()Ljava/lang/String;
-HSPLandroid/app/LoadedApk;->getAppFactory()Landroid/app/AppComponentFactory;
-HSPLandroid/app/LoadedApk;->getApplication()Landroid/app/Application;
-HSPLandroid/app/LoadedApk;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
-HSPLandroid/app/LoadedApk;->getAssets()Landroid/content/res/AssetManager;
-HSPLandroid/app/LoadedApk;->getClassLoader()Ljava/lang/ClassLoader;
-HSPLandroid/app/LoadedApk;->getCompatibilityInfo()Landroid/content/res/CompatibilityInfo;
-HSPLandroid/app/LoadedApk;->getCredentialProtectedDataDirFile()Ljava/io/File;
-HSPLandroid/app/LoadedApk;->getDataDirFile()Ljava/io/File;
-HSPLandroid/app/LoadedApk;->getDeviceProtectedDataDirFile()Ljava/io/File;
-HSPLandroid/app/LoadedApk;->getOverlayDirs()[Ljava/lang/String;
-HSPLandroid/app/LoadedApk;->getOverlayPaths()[Ljava/lang/String;
-HSPLandroid/app/LoadedApk;->getPackageName()Ljava/lang/String;
-HSPLandroid/app/LoadedApk;->getReceiverDispatcher(Landroid/content/BroadcastReceiver;Landroid/content/Context;Landroid/os/Handler;Landroid/app/Instrumentation;Z)Landroid/content/IIntentReceiver;
-HSPLandroid/app/LoadedApk;->getResDir()Ljava/lang/String;
-HSPLandroid/app/LoadedApk;->getResources()Landroid/content/res/Resources;
-HSPLandroid/app/LoadedApk;->getServiceDispatcher(Landroid/content/ServiceConnection;Landroid/content/Context;Landroid/os/Handler;J)Landroid/app/IServiceConnection;
-HSPLandroid/app/LoadedApk;->getServiceDispatcher(Landroid/content/ServiceConnection;Landroid/content/Context;Ljava/util/concurrent/Executor;J)Landroid/app/IServiceConnection;
-HSPLandroid/app/LoadedApk;->getServiceDispatcherCommon(Landroid/content/ServiceConnection;Landroid/content/Context;Landroid/os/Handler;Ljava/util/concurrent/Executor;J)Landroid/app/IServiceConnection;
-HSPLandroid/app/LoadedApk;->getSplitClassLoader(Ljava/lang/String;)Ljava/lang/ClassLoader;
-HSPLandroid/app/LoadedApk;->getSplitPaths(Ljava/lang/String;)[Ljava/lang/String;
-HSPLandroid/app/LoadedApk;->getSplitResDirs()[Ljava/lang/String;
-HSPLandroid/app/LoadedApk;->initializeJavaContextClassLoader()V
-HSPLandroid/app/LoadedApk;->isSecurityViolation()Z
-HSPLandroid/app/LoadedApk;->makeApplication(ZLandroid/app/Instrumentation;)Landroid/app/Application;
-HSPLandroid/app/LoadedApk;->makeApplicationInner(ZLandroid/app/Instrumentation;)Landroid/app/Application;
-HSPLandroid/app/LoadedApk;->makeApplicationInner(ZLandroid/app/Instrumentation;Z)Landroid/app/Application;
-HSPLandroid/app/LoadedApk;->makePaths(Landroid/app/ActivityThread;Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
-HSPLandroid/app/LoadedApk;->makePaths(Landroid/app/ActivityThread;ZLandroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;)V
-HSPLandroid/app/LoadedApk;->registerAppInfoToArt()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;)Z
-HSPLandroid/app/LoadedApk;->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V
-HSPLandroid/app/LoadedApk;->setVmPolicy(Landroid/os/StrictMode$VmPolicy;)V
-HSPLandroid/app/LoadedApk;->updateApplicationInfo(Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
-HSPLandroid/app/Notification$$ExternalSyntheticLambda0;-><init>(Landroid/app/Notification;Landroid/os/Parcel;)V
-HSPLandroid/app/Notification$$ExternalSyntheticLambda0;->onMarshaled(Landroid/app/PendingIntent;Landroid/os/Parcel;I)V
-HSPLandroid/app/Notification$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Notification;
-HSPLandroid/app/Notification$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/Notification$Action$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Notification$Action;
-HSPLandroid/app/Notification$Action$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/Notification$Action$1;->newArray(I)[Landroid/app/Notification$Action;
-HSPLandroid/app/Notification$Action$1;->newArray(I)[Ljava/lang/Object;
-HSPLandroid/app/Notification$Action$Builder;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;)V
-HSPLandroid/app/Notification$Action$Builder;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/os/Bundle;[Landroid/app/RemoteInput;ZIZ)V
-HSPLandroid/app/Notification$Action$Builder;->addExtras(Landroid/os/Bundle;)Landroid/app/Notification$Action$Builder;
-HSPLandroid/app/Notification$Action$Builder;->build()Landroid/app/Notification$Action;
-HSPLandroid/app/Notification$Action$Builder;->setAllowGeneratedReplies(Z)Landroid/app/Notification$Action$Builder;
-HSPLandroid/app/Notification$Action$Builder;->setAuthenticationRequired(Z)Landroid/app/Notification$Action$Builder;
-HSPLandroid/app/Notification$Action$Builder;->setContextual(Z)Landroid/app/Notification$Action$Builder;
-HSPLandroid/app/Notification$Action$Builder;->setSemanticAction(I)Landroid/app/Notification$Action$Builder;
-HSPLandroid/app/Notification$Action;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/os/Bundle;[Landroid/app/RemoteInput;ZIZZ)V
-HSPLandroid/app/Notification$Action;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/Notification$Action;->getAllowGeneratedReplies()Z
-HSPLandroid/app/Notification$Action;->getIcon()Landroid/graphics/drawable/Icon;
-HSPLandroid/app/Notification$Action;->getRemoteInputs()[Landroid/app/RemoteInput;
-HSPLandroid/app/Notification$Action;->isContextual()Z
-HSPLandroid/app/Notification$Action;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/Notification$BigPictureStyle;-><init>()V
-HSPLandroid/app/Notification$BigPictureStyle;->addExtras(Landroid/os/Bundle;)V
-HSPLandroid/app/Notification$BigPictureStyle;->purgeResources()V
-HSPLandroid/app/Notification$BigPictureStyle;->reduceImageSizes(Landroid/content/Context;)V
-HSPLandroid/app/Notification$BigPictureStyle;->restoreFromExtras(Landroid/os/Bundle;)V
-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
-HSPLandroid/app/Notification$BigTextStyle;->bigText(Ljava/lang/CharSequence;)Landroid/app/Notification$BigTextStyle;
-HSPLandroid/app/Notification$BigTextStyle;->restoreFromExtras(Landroid/os/Bundle;)V
-HSPLandroid/app/Notification$BigTextStyle;->setBigContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$BigTextStyle;
-HSPLandroid/app/Notification$BubbleMetadata$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Notification$BubbleMetadata;
-HSPLandroid/app/Notification$BubbleMetadata$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/Notification$BubbleMetadata;-><init>(Landroid/os/Parcel;)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
-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;
-HSPLandroid/app/Notification$Builder;->addPerson(Landroid/app/Person;)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->addPerson(Ljava/lang/String;)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->build()Landroid/app/Notification;
-HSPLandroid/app/Notification$Builder;->buildUnstyled()Landroid/app/Notification;
-HSPLandroid/app/Notification$Builder;->getStyle()Landroid/app/Notification$Style;
-HSPLandroid/app/Notification$Builder;->maybeCloneStrippedForDelivery(Landroid/app/Notification;)Landroid/app/Notification;
-HSPLandroid/app/Notification$Builder;->recoverBuilder(Landroid/content/Context;Landroid/app/Notification;)Landroid/app/Notification$Builder;
-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;
-HSPLandroid/app/Notification$Builder;->setColor(I)Landroid/app/Notification$Builder;
-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;
-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;
-HSPLandroid/app/Notification$Builder;->setDefaults(I)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->setDeleteIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->setExtras(Landroid/os/Bundle;)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->setFlag(IZ)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->setFullScreenIntent(Landroid/app/PendingIntent;Z)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->setGroup(Ljava/lang/String;)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->setGroupAlertBehavior(I)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->setGroupSummary(Z)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->setLargeIcon(Landroid/graphics/Bitmap;)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->setLargeIcon(Landroid/graphics/drawable/Icon;)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->setLights(III)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->setLocalOnly(Z)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->setNumber(I)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->setOngoing(Z)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->setOnlyAlertOnce(Z)Landroid/app/Notification$Builder;
-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;
-HSPLandroid/app/Notification$Builder;->setRemoteInputHistory([Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->setSettingsText(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;
-HSPLandroid/app/Notification$Builder;->setSmallIcon(I)Landroid/app/Notification$Builder;
-HSPLandroid/app/Notification$Builder;->setSmallIcon(II)Landroid/app/Notification$Builder;
-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;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;
-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;
-HSPLandroid/app/Notification$Builder;->setUsesChronometer(Z)Landroid/app/Notification$Builder;
-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;
-HSPLandroid/app/Notification$Builder;->usesStandardHeader()Z
-HSPLandroid/app/Notification$Colors;-><init>()V
-HSPLandroid/app/Notification$DecoratedCustomViewStyle;-><init>()V
-HSPLandroid/app/Notification$InboxStyle;-><init>()V
-HSPLandroid/app/Notification$InboxStyle;->addExtras(Landroid/os/Bundle;)V
-HSPLandroid/app/Notification$InboxStyle;->restoreFromExtras(Landroid/os/Bundle;)V
-HSPLandroid/app/Notification$MediaStyle;-><init>()V
-HSPLandroid/app/Notification$MediaStyle;->addExtras(Landroid/os/Bundle;)V
-HSPLandroid/app/Notification$MediaStyle;->buildStyled(Landroid/app/Notification;)Landroid/app/Notification;
-HSPLandroid/app/Notification$MediaStyle;->restoreFromExtras(Landroid/os/Bundle;)V
-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;->getDataUri()Landroid/net/Uri;
-HSPLandroid/app/Notification$MessagingStyle$Message;->getMessageFromBundle(Landroid/os/Bundle;)Landroid/app/Notification$MessagingStyle$Message;
-HSPLandroid/app/Notification$MessagingStyle$Message;->getMessagesFromBundleArray([Landroid/os/Parcelable;)Ljava/util/List;
-HSPLandroid/app/Notification$MessagingStyle$Message;->getSenderPerson()Landroid/app/Person;
-HSPLandroid/app/Notification$MessagingStyle$Message;->getText()Ljava/lang/CharSequence;
-HSPLandroid/app/Notification$MessagingStyle$Message;->getTimestamp()J
-HSPLandroid/app/Notification$MessagingStyle$Message;->toBundle()Landroid/os/Bundle;
-HSPLandroid/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;
-HSPLandroid/app/Notification$MessagingStyle;->findLatestIncomingMessage(Ljava/util/List;)Landroid/app/Notification$MessagingStyle$Message;
-HSPLandroid/app/Notification$MessagingStyle;->fixTitleAndTextExtras(Landroid/os/Bundle;)V
-HSPLandroid/app/Notification$MessagingStyle;->getMessages()Ljava/util/List;
-HSPLandroid/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$Style;-><init>()V
-HSPLandroid/app/Notification$Style;->addExtras(Landroid/os/Bundle;)V
-HSPLandroid/app/Notification$Style;->buildStyled(Landroid/app/Notification;)Landroid/app/Notification;
-HSPLandroid/app/Notification$Style;->internalSetBigContentTitle(Ljava/lang/CharSequence;)V
-HSPLandroid/app/Notification$Style;->purgeResources()V
-HSPLandroid/app/Notification$Style;->reduceImageSizes(Landroid/content/Context;)V
-HSPLandroid/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
-HSPLandroid/app/Notification;-><init>()V
-HSPLandroid/app/Notification;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/app/Notification;->addFieldsFromContext(Landroid/content/Context;Landroid/app/Notification;)V
-HSPLandroid/app/Notification;->addFieldsFromContext(Landroid/content/pm/ApplicationInfo;Landroid/app/Notification;)V
-HSPLandroid/app/Notification;->areStyledNotificationsVisiblyDifferent(Landroid/app/Notification$Builder;Landroid/app/Notification$Builder;)Z
-HSPLandroid/app/Notification;->cloneInto(Landroid/app/Notification;Z)V
-HSPLandroid/app/Notification;->findRemoteInputActionPair(Z)Landroid/util/Pair;
-HSPLandroid/app/Notification;->fixDuplicateExtra(Landroid/os/Parcelable;Ljava/lang/String;)V
-HSPLandroid/app/Notification;->fixDuplicateExtras()V
-HSPLandroid/app/Notification;->getBubbleMetadata()Landroid/app/Notification$BubbleMetadata;
-HSPLandroid/app/Notification;->getChannelId()Ljava/lang/String;
-HSPLandroid/app/Notification;->getContextualActions()Ljava/util/List;
-HSPLandroid/app/Notification;->getGroup()Ljava/lang/String;
-HSPLandroid/app/Notification;->getGroupAlertBehavior()I
-HSPLandroid/app/Notification;->getLargeIcon()Landroid/graphics/drawable/Icon;
-HSPLandroid/app/Notification;->getNotificationStyle()Ljava/lang/Class;
-HSPLandroid/app/Notification;->getNotificationStyleClass(Ljava/lang/String;)Ljava/lang/Class;
-HSPLandroid/app/Notification;->getParcelableArrayFromBundle(Landroid/os/Bundle;Ljava/lang/String;Ljava/lang/Class;)[Landroid/os/Parcelable;
-HSPLandroid/app/Notification;->getShortcutId()Ljava/lang/String;
-HSPLandroid/app/Notification;->getSmallIcon()Landroid/graphics/drawable/Icon;
-HSPLandroid/app/Notification;->getSortKey()Ljava/lang/String;
-HSPLandroid/app/Notification;->isColorized()Z
-HSPLandroid/app/Notification;->isForegroundService()Z
-HSPLandroid/app/Notification;->isGroupChild()Z
-HSPLandroid/app/Notification;->isGroupSummary()Z
-HSPLandroid/app/Notification;->isMediaNotification()Z
-HSPLandroid/app/Notification;->readFromParcelImpl(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/graphics/drawable/Icon$1;,Landroid/app/PendingIntent$1;,Landroid/media/AudioAttributes$1;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;]Landroid/os/Parcel;Landroid/os/Parcel;
-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
-HSPLandroid/app/Notification;->suppressAlertingDueToGrouping()Z
-HSPLandroid/app/Notification;->toString()Ljava/lang/String;
-HSPLandroid/app/Notification;->visibilityToString(I)Ljava/lang/String;
-HSPLandroid/app/Notification;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/Notification;->writeToParcelImpl(Landroid/os/Parcel;I)V+]Landroid/app/PendingIntent;Landroid/app/PendingIntent;]Landroid/media/AudioAttributes;Landroid/media/AudioAttributes;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/app/NotificationChannel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/NotificationChannel;
-HSPLandroid/app/NotificationChannel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/app/NotificationChannel$1;Landroid/app/NotificationChannel$1;
-HSPLandroid/app/NotificationChannel;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/net/Uri$1;,Landroid/media/AudioAttributes$1;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/net/Uri;Landroid/net/Uri$StringUri;
-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
-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;->getConversationId()Ljava/lang/String;
-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;+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/app/NotificationChannel;->getUserLockedFields()I
-HSPLandroid/app/NotificationChannel;->getVibrationPattern()[J
-HSPLandroid/app/NotificationChannel;->hasUserSetImportance()Z
-HSPLandroid/app/NotificationChannel;->isBlockable()Z
-HSPLandroid/app/NotificationChannel;->isDeleted()Z
-HSPLandroid/app/NotificationChannel;->isImportantConversation()Z
-HSPLandroid/app/NotificationChannel;->setBlockable(Z)V
-HSPLandroid/app/NotificationChannel;->setBypassDnd(Z)V
-HSPLandroid/app/NotificationChannel;->setDescription(Ljava/lang/String;)V
-HSPLandroid/app/NotificationChannel;->setGroup(Ljava/lang/String;)V
-HSPLandroid/app/NotificationChannel;->setLightColor(I)V
-HSPLandroid/app/NotificationChannel;->setLockscreenVisibility(I)V
-HSPLandroid/app/NotificationChannel;->setShowBadge(Z)V
-HSPLandroid/app/NotificationChannel;->setSound(Landroid/net/Uri;Landroid/media/AudioAttributes;)V
-HSPLandroid/app/NotificationChannel;->setVibrationPattern([J)V
-HSPLandroid/app/NotificationChannel;->shouldShowLights()Z
-HSPLandroid/app/NotificationChannel;->shouldVibrate()Z
-HSPLandroid/app/NotificationChannel;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/NotificationChannel;->writeXml(Lorg/xmlpull/v1/XmlSerializer;)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
-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;
-HSPLandroid/app/NotificationChannelGroup;->isBlocked()Z
-HSPLandroid/app/NotificationChannelGroup;->writeToParcel(Landroid/os/Parcel;I)V
-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>(IIIIII)V
-HSPLandroid/app/NotificationManager$Policy;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/NotificationManager$Policy;->equals(Ljava/lang/Object;)Z
-HSPLandroid/app/NotificationManager$Policy;->suppressedVisualEffectsEqual(II)Z
-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
-HSPLandroid/app/NotificationManager;->fixLegacySmallIcon(Landroid/app/Notification;Ljava/lang/String;)V
-HSPLandroid/app/NotificationManager;->fixNotification(Landroid/app/Notification;)Landroid/app/Notification;
-HSPLandroid/app/NotificationManager;->getActiveNotifications()[Landroid/service/notification/StatusBarNotification;
-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;->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
-HSPLandroid/app/NotificationManager;->zenModeToInterruptionFilter(I)I
-HSPLandroid/app/PendingIntent$$ExternalSyntheticLambda3;->get()Ljava/lang/Object;
-HSPLandroid/app/PendingIntent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/PendingIntent;
-HSPLandroid/app/PendingIntent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/PendingIntent$FinishedDispatcher;-><init>(Landroid/app/PendingIntent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;)V
-HSPLandroid/app/PendingIntent$FinishedDispatcher;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
-HSPLandroid/app/PendingIntent$FinishedDispatcher;->run()V
-HSPLandroid/app/PendingIntent;-><init>(Landroid/content/IIntentSender;)V
-HSPLandroid/app/PendingIntent;-><init>(Landroid/os/IBinder;Ljava/lang/Object;)V
-HSPLandroid/app/PendingIntent;->buildServicePendingIntent(Landroid/content/Context;ILandroid/content/Intent;II)Landroid/app/PendingIntent;
-HSPLandroid/app/PendingIntent;->cancel()V
-HSPLandroid/app/PendingIntent;->checkPendingIntent(ILandroid/content/Intent;Landroid/content/Context;Z)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;->getActivitiesAsUser(Landroid/content/Context;I[Landroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)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;
-HSPLandroid/app/PendingIntent;->getCachedInfo()Landroid/app/ActivityManager$PendingIntentInfo;
-HSPLandroid/app/PendingIntent;->getCreatorPackage()Ljava/lang/String;
-HSPLandroid/app/PendingIntent;->getCreatorUid()I
-HSPLandroid/app/PendingIntent;->getIntent()Landroid/content/Intent;
-HSPLandroid/app/PendingIntent;->getIntentSender()Landroid/content/IntentSender;
-HSPLandroid/app/PendingIntent;->getService(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
-HSPLandroid/app/PendingIntent;->hashCode()I
-HSPLandroid/app/PendingIntent;->isActivity()Z
-HSPLandroid/app/PendingIntent;->isNewMutableDisallowedImplicitPendingIntent(ILandroid/content/Intent;Z)Z
-HSPLandroid/app/PendingIntent;->send()V
-HSPLandroid/app/PendingIntent;->send(Landroid/content/Context;ILandroid/content/Intent;)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
-HSPLandroid/app/PendingIntent;->setOnMarshaledListener(Landroid/app/PendingIntent$OnMarshaledListener;)V
-HSPLandroid/app/PendingIntent;->toString()Ljava/lang/String;
-HSPLandroid/app/PendingIntent;->writePendingIntentOrNullToParcel(Landroid/app/PendingIntent;Landroid/os/Parcel;)V
-HSPLandroid/app/PendingIntent;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/Person$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Person;
-HSPLandroid/app/Person$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/Person$Builder;-><init>()V
-HSPLandroid/app/Person$Builder;-><init>(Landroid/app/Person;)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
-HSPLandroid/app/Person;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/Person;->getIcon()Landroid/graphics/drawable/Icon;
-HSPLandroid/app/Person;->getKey()Ljava/lang/String;
-HSPLandroid/app/Person;->getName()Ljava/lang/CharSequence;
-HSPLandroid/app/Person;->getUri()Ljava/lang/String;
-HSPLandroid/app/Person;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/PictureInPictureParams$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/PictureInPictureParams;
-HSPLandroid/app/PictureInPictureParams$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/PictureInPictureParams;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/PropertyInvalidatedCache$1;-><init>(Landroid/app/PropertyInvalidatedCache;IFZ)V
-HSPLandroid/app/PropertyInvalidatedCache$1;->removeEldestEntry(Ljava/util/Map$Entry;)Z
-HSPLandroid/app/PropertyInvalidatedCache$DefaultComputer;-><init>(Landroid/app/PropertyInvalidatedCache;)V
-HSPLandroid/app/PropertyInvalidatedCache$NoPreloadHolder;-><clinit>()V
-HSPLandroid/app/PropertyInvalidatedCache$NoPreloadHolder;->next()J
-HSPLandroid/app/PropertyInvalidatedCache$QueryHandler;-><init>()V
-HSPLandroid/app/PropertyInvalidatedCache$QueryHandler;->shouldBypassCache(Ljava/lang/Object;)Z
-HSPLandroid/app/PropertyInvalidatedCache;->-$$Nest$fgetmHighWaterMark(Landroid/app/PropertyInvalidatedCache;)J
-HSPLandroid/app/PropertyInvalidatedCache;->-$$Nest$fgetmMaxEntries(Landroid/app/PropertyInvalidatedCache;)I
-HSPLandroid/app/PropertyInvalidatedCache;->-$$Nest$fputmHighWaterMark(Landroid/app/PropertyInvalidatedCache;J)V
-HSPLandroid/app/PropertyInvalidatedCache;-><init>(ILjava/lang/String;)V
-HSPLandroid/app/PropertyInvalidatedCache;-><init>(ILjava/lang/String;Ljava/lang/String;)V
-HSPLandroid/app/PropertyInvalidatedCache;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PropertyInvalidatedCache$QueryHandler;)V
-HSPLandroid/app/PropertyInvalidatedCache;->bypass(Ljava/lang/Object;)Z+]Landroid/app/PropertyInvalidatedCache$QueryHandler;Landroid/app/PropertyInvalidatedCache$DefaultComputer;
-HSPLandroid/app/PropertyInvalidatedCache;->cacheName()Ljava/lang/String;
-HSPLandroid/app/PropertyInvalidatedCache;->clear()V
-HSPLandroid/app/PropertyInvalidatedCache;->createMap()Ljava/util/LinkedHashMap;
-HSPLandroid/app/PropertyInvalidatedCache;->createPropertyName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/app/PropertyInvalidatedCache;->disableLocal()V
-HSPLandroid/app/PropertyInvalidatedCache;->dumpCacheInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
-HSPLandroid/app/PropertyInvalidatedCache;->getActiveCaches()Ljava/util/ArrayList;
-HSPLandroid/app/PropertyInvalidatedCache;->getActiveCorks()Ljava/util/ArrayList;
-HSPLandroid/app/PropertyInvalidatedCache;->getCurrentNonce()J+]Landroid/os/SystemProperties$Handle;Landroid/os/SystemProperties$Handle;
-HSPLandroid/app/PropertyInvalidatedCache;->invalidateCache(Ljava/lang/String;)V
-HSPLandroid/app/PropertyInvalidatedCache;->invalidateCacheLocked(Ljava/lang/String;)V
-HSPLandroid/app/PropertyInvalidatedCache;->isDisabled()Z
-HSPLandroid/app/PropertyInvalidatedCache;->isReservedNonce(J)Z
-HSPLandroid/app/PropertyInvalidatedCache;->maybeCheckConsistency(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/app/PropertyInvalidatedCache;->query(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/LinkedHashMap;Landroid/app/PropertyInvalidatedCache$1;]Landroid/app/PropertyInvalidatedCache;megamorphic_types
-HSPLandroid/app/PropertyInvalidatedCache;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/app/PropertyInvalidatedCache;->refresh(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/app/PropertyInvalidatedCache;->registerCache()V
-HSPLandroid/app/QueuedWork$QueuedWorkHandler;-><init>(Landroid/os/Looper;)V
-HSPLandroid/app/QueuedWork$QueuedWorkHandler;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/app/QueuedWork;->-$$Nest$smprocessPendingWork()V
-HSPLandroid/app/QueuedWork;->addFinisher(Ljava/lang/Runnable;)V
-HSPLandroid/app/QueuedWork;->getHandler()Landroid/os/Handler;
-HSPLandroid/app/QueuedWork;->handlerRemoveMessages(I)V+]Landroid/os/Handler;Landroid/app/QueuedWork$QueuedWorkHandler;
-HSPLandroid/app/QueuedWork;->hasPendingWork()Z
-HSPLandroid/app/QueuedWork;->processPendingWork()V
-HSPLandroid/app/QueuedWork;->queue(Ljava/lang/Runnable;Z)V
-HSPLandroid/app/QueuedWork;->removeFinisher(Ljava/lang/Runnable;)V
-HSPLandroid/app/QueuedWork;->waitToFinish()V
-HSPLandroid/app/ReceiverInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ReceiverInfo;
-HSPLandroid/app/ReceiverInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/ReceiverInfo;-><init>()V
-HSPLandroid/app/ReceiverInfo;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/app/ReceiverRestrictedContext;-><init>(Landroid/content/Context;)V
-HSPLandroid/app/RemoteAction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/RemoteAction;
-HSPLandroid/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
-HSPLandroid/app/RemoteAction;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/RemoteAction;->getActionIntent()Landroid/app/PendingIntent;
-HSPLandroid/app/RemoteAction;->getIcon()Landroid/graphics/drawable/Icon;
-HSPLandroid/app/RemoteAction;->getTitle()Ljava/lang/CharSequence;
-HSPLandroid/app/RemoteAction;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/RemoteInput$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/RemoteInput;
-HSPLandroid/app/RemoteInput$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/RemoteInput$1;->newArray(I)[Landroid/app/RemoteInput;
-HSPLandroid/app/RemoteInput$1;->newArray(I)[Ljava/lang/Object;
-HSPLandroid/app/RemoteInput;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/RemoteInput;->getAllowFreeFormInput()Z
-HSPLandroid/app/RemoteInput;->getChoices()[Ljava/lang/CharSequence;
-HSPLandroid/app/RemoteInput;->getEditChoicesBeforeSending()I
-HSPLandroid/app/RemoteInput;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/ResourcesManager$ActivityResource;-><init>()V
-HSPLandroid/app/ResourcesManager$ActivityResource;-><init>(Landroid/app/ResourcesManager$ActivityResource-IA;)V
-HSPLandroid/app/ResourcesManager$ActivityResources;-><init>()V
-HSPLandroid/app/ResourcesManager$ActivityResources;-><init>(Landroid/app/ResourcesManager$ActivityResources-IA;)V
-HSPLandroid/app/ResourcesManager$ApkAssetsSupplier;-><init>(Landroid/app/ResourcesManager;)V
-HSPLandroid/app/ResourcesManager$ApkAssetsSupplier;->load(Landroid/app/ResourcesManager$ApkKey;)Landroid/content/res/ApkAssets;
-HSPLandroid/app/ResourcesManager$ApkKey;-><init>(Ljava/lang/String;ZZ)V
-HSPLandroid/app/ResourcesManager$ApkKey;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Ljava/lang/String;
-HSPLandroid/app/ResourcesManager$ApkKey;->hashCode()I+]Ljava/lang/Object;Ljava/lang/String;
-HSPLandroid/app/ResourcesManager$UpdateHandler;-><init>(Landroid/app/ResourcesManager;)V
-HSPLandroid/app/ResourcesManager$UpdateHandler;-><init>(Landroid/app/ResourcesManager;Landroid/app/ResourcesManager$UpdateHandler-IA;)V
-HSPLandroid/app/ResourcesManager;->-$$Nest$mloadApkAssets(Landroid/app/ResourcesManager;Landroid/app/ResourcesManager$ApkKey;)Landroid/content/res/ApkAssets;
-HSPLandroid/app/ResourcesManager;-><init>()V
-HSPLandroid/app/ResourcesManager;->addApplicationPathsLocked(Ljava/lang/String;[Ljava/lang/String;)V
-HSPLandroid/app/ResourcesManager;->appendLibAssetsForMainAssetPath(Ljava/lang/String;[Ljava/lang/String;)V
-HSPLandroid/app/ResourcesManager;->appendPendingAppInfoUpdate([Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)V
-HSPLandroid/app/ResourcesManager;->applyAllPendingAppInfoUpdates()V
-HSPLandroid/app/ResourcesManager;->applyCompatConfiguration(ILandroid/content/res/Configuration;)Z
-HSPLandroid/app/ResourcesManager;->applyConfigurationToResources(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/content/res/ResourcesKey;Landroid/content/res/ResourcesImpl;)V
-HSPLandroid/app/ResourcesManager;->applyDisplayMetricsToConfiguration(Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;)V
-HSPLandroid/app/ResourcesManager;->applyNewResourceDirsLocked([Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)V
-HSPLandroid/app/ResourcesManager;->cleanupReferences(Ljava/util/ArrayList;Ljava/lang/ref/ReferenceQueue;)V
-HSPLandroid/app/ResourcesManager;->cleanupReferences(Ljava/util/ArrayList;Ljava/lang/ref/ReferenceQueue;Ljava/util/function/Function;)V
-HSPLandroid/app/ResourcesManager;->combinedOverlayPaths([Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
-HSPLandroid/app/ResourcesManager;->createApkAssetsSupplierNotLocked(Landroid/content/res/ResourcesKey;)Landroid/app/ResourcesManager$ApkAssetsSupplier;
-HSPLandroid/app/ResourcesManager;->createAssetManager(Landroid/content/res/ResourcesKey;Landroid/app/ResourcesManager$ApkAssetsSupplier;)Landroid/content/res/AssetManager;
-HSPLandroid/app/ResourcesManager;->createBaseTokenResources(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;Ljava/util/List;)Landroid/content/res/Resources;
-HSPLandroid/app/ResourcesManager;->createResources(Landroid/content/res/ResourcesKey;Ljava/lang/ClassLoader;Landroid/app/ResourcesManager$ApkAssetsSupplier;)Landroid/content/res/Resources;
-HSPLandroid/app/ResourcesManager;->createResourcesForActivity(Landroid/os/IBinder;Landroid/content/res/ResourcesKey;Landroid/content/res/Configuration;Ljava/lang/Integer;Ljava/lang/ClassLoader;Landroid/app/ResourcesManager$ApkAssetsSupplier;)Landroid/content/res/Resources;
-HSPLandroid/app/ResourcesManager;->createResourcesForActivityLocked(Landroid/os/IBinder;Landroid/content/res/Configuration;Ljava/lang/Integer;Ljava/lang/ClassLoader;Landroid/content/res/ResourcesImpl;Landroid/content/res/CompatibilityInfo;)Landroid/content/res/Resources;
-HSPLandroid/app/ResourcesManager;->createResourcesImpl(Landroid/content/res/ResourcesKey;Landroid/app/ResourcesManager$ApkAssetsSupplier;)Landroid/content/res/ResourcesImpl;
-HSPLandroid/app/ResourcesManager;->createResourcesLocked(Ljava/lang/ClassLoader;Landroid/content/res/ResourcesImpl;Landroid/content/res/CompatibilityInfo;)Landroid/content/res/Resources;+]Landroid/content/res/CompatibilityInfo;Landroid/content/res/CompatibilityInfo$1;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/app/ResourcesManager;->extractApkKeys(Landroid/content/res/ResourcesKey;)Ljava/util/ArrayList;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/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;->findOrCreateResourcesImplForKeyLocked(Landroid/content/res/ResourcesKey;Landroid/app/ResourcesManager$ApkAssetsSupplier;)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/content/res/Configuration;
-HSPLandroid/app/ResourcesManager;->generateDisplayId(Landroid/content/res/ResourcesKey;)I
-HSPLandroid/app/ResourcesManager;->getAdjustedDisplay(ILandroid/content/res/Resources;)Landroid/view/Display;
-HSPLandroid/app/ResourcesManager;->getConfiguration()Landroid/content/res/Configuration;
-HSPLandroid/app/ResourcesManager;->getDisplayMetrics()Landroid/util/DisplayMetrics;
-HSPLandroid/app/ResourcesManager;->getDisplayMetrics(ILandroid/view/DisplayAdjustments;)Landroid/util/DisplayMetrics;
-HSPLandroid/app/ResourcesManager;->getDisplayMetrics(Landroid/content/res/Configuration;)Landroid/util/DisplayMetrics;
-HSPLandroid/app/ResourcesManager;->getInstance()Landroid/app/ResourcesManager;
-HSPLandroid/app/ResourcesManager;->getLocaleConfig()Landroid/app/LocaleConfig;
-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;[Ljava/lang/String;Ljava/lang/Integer;Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;Ljava/util/List;)Landroid/content/res/Resources;
-HSPLandroid/app/ResourcesManager;->initializeApplicationPaths(Ljava/lang/String;[Ljava/lang/String;)V
-HSPLandroid/app/ResourcesManager;->isSameResourcesOverrideConfig(Landroid/os/IBinder;Landroid/content/res/Configuration;)Z
-HSPLandroid/app/ResourcesManager;->lambda$cleanupReferences$1(Ljava/util/function/Function;Ljava/util/HashSet;Ljava/lang/Object;)Z
-HSPLandroid/app/ResourcesManager;->lambda$createResourcesForActivityLocked$0(Landroid/app/ResourcesManager$ActivityResource;)Ljava/lang/ref/WeakReference;
-HSPLandroid/app/ResourcesManager;->loadApkAssets(Landroid/app/ResourcesManager$ApkKey;)Landroid/content/res/ApkAssets;
-HSPLandroid/app/ResourcesManager;->overlayPathToIdmapPath(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/app/ResourcesManager;->rebaseActivityOverrideConfig(Landroid/app/ResourcesManager$ActivityResource;Landroid/content/res/Configuration;I)Landroid/content/res/ResourcesKey;
-HSPLandroid/app/ResourcesManager;->rebaseKeyForActivity(Landroid/os/IBinder;Landroid/content/res/ResourcesKey;Z)V
-HSPLandroid/app/ResourcesManager;->rebaseKeyForDisplay(Landroid/content/res/ResourcesKey;I)V
-HSPLandroid/app/ResourcesManager;->redirectResourcesToNewImplLocked(Landroid/util/ArrayMap;)V
-HSPLandroid/app/ResourcesManager;->updateResourcesForActivity(Landroid/os/IBinder;Landroid/content/res/Configuration;I)V
-HSPLandroid/app/ResultInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ResultInfo;
-HSPLandroid/app/ResultInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/ResultInfo;-><init>(Landroid/os/Parcel;)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;->attachBaseContext(Landroid/content/Context;)V
-HSPLandroid/app/Service;->clearStartForegroundServiceStackTrace()V
-HSPLandroid/app/Service;->createServiceBaseContext(Landroid/app/ActivityThread;Landroid/app/LoadedApk;)Landroid/content/Context;
-HSPLandroid/app/Service;->detachAndCleanUp()V
-HSPLandroid/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;->logForegroundServiceStopIfNecessary()V
-HSPLandroid/app/Service;->onConfigurationChanged(Landroid/content/res/Configuration;)V
-HSPLandroid/app/Service;->onCreate()V
-HSPLandroid/app/Service;->onDestroy()V
-HSPLandroid/app/Service;->onLowMemory()V
-HSPLandroid/app/Service;->onStart(Landroid/content/Intent;I)V
-HSPLandroid/app/Service;->onStartCommand(Landroid/content/Intent;II)I
-HSPLandroid/app/Service;->onTrimMemory(I)V
-HSPLandroid/app/Service;->onUnbind(Landroid/content/Intent;)Z
-HSPLandroid/app/Service;->setStartForegroundServiceStackTrace(Ljava/lang/String;Landroid/app/StackTrace;)V
-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/SharedPreferencesImpl$$ExternalSyntheticLambda0;-><init>(Landroid/app/SharedPreferencesImpl;)V
-HSPLandroid/app/SharedPreferencesImpl$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/app/SharedPreferencesImpl$1;->run()V
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl$$ExternalSyntheticLambda0;-><init>(Landroid/app/SharedPreferencesImpl$EditorImpl;Landroid/app/SharedPreferencesImpl$MemoryCommitResult;)V
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl$1;-><init>(Landroid/app/SharedPreferencesImpl$EditorImpl;Landroid/app/SharedPreferencesImpl$MemoryCommitResult;J)V
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl$1;->run()V
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl$2;-><init>(Landroid/app/SharedPreferencesImpl$EditorImpl;Ljava/lang/Runnable;)V
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl$2;->run()V
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl;-><init>(Landroid/app/SharedPreferencesImpl;)V
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->apply()V
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->clear()Landroid/content/SharedPreferences$Editor;
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->commit()Z
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->commitToMemory()Landroid/app/SharedPreferencesImpl$MemoryCommitResult;+]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;]Ljava/lang/Object;Ljava/lang/String;,Ljava/lang/Boolean;,Ljava/lang/Long;]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap;]Ljava/util/Map;Ljava/util/HashMap;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;]Ljava/util/Set;Ljava/util/HashMap$EntrySet;
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->notifyListeners(Landroid/app/SharedPreferencesImpl$MemoryCommitResult;)V
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor;
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->putFloat(Ljava/lang/String;F)Landroid/content/SharedPreferences$Editor;
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor;
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor;
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->putStringSet(Ljava/lang/String;Ljava/util/Set;)Landroid/content/SharedPreferences$Editor;
-HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;
-HSPLandroid/app/SharedPreferencesImpl$MemoryCommitResult;-><init>(JZLjava/util/List;Ljava/util/Set;Ljava/util/Map;)V
-HSPLandroid/app/SharedPreferencesImpl$MemoryCommitResult;-><init>(JZLjava/util/List;Ljava/util/Set;Ljava/util/Map;Landroid/app/SharedPreferencesImpl$MemoryCommitResult-IA;)V
-HSPLandroid/app/SharedPreferencesImpl$MemoryCommitResult;->setDiskWriteResult(ZZ)V
-HSPLandroid/app/SharedPreferencesImpl$SharedPreferencesThreadFactory;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
-HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fgetmCurrentMemoryStateGeneration(Landroid/app/SharedPreferencesImpl;)J
-HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fgetmDiskWritesInFlight(Landroid/app/SharedPreferencesImpl;)I
-HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fgetmListeners(Landroid/app/SharedPreferencesImpl;)Ljava/util/WeakHashMap;
-HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fgetmLock(Landroid/app/SharedPreferencesImpl;)Ljava/lang/Object;
-HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fgetmMap(Landroid/app/SharedPreferencesImpl;)Ljava/util/Map;
-HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fgetmWritingToDiskLock(Landroid/app/SharedPreferencesImpl;)Ljava/lang/Object;
-HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fputmCurrentMemoryStateGeneration(Landroid/app/SharedPreferencesImpl;J)V
-HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fputmDiskWritesInFlight(Landroid/app/SharedPreferencesImpl;I)V
-HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fputmMap(Landroid/app/SharedPreferencesImpl;Ljava/util/Map;)V
-HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$menqueueDiskWrite(Landroid/app/SharedPreferencesImpl;Landroid/app/SharedPreferencesImpl$MemoryCommitResult;Ljava/lang/Runnable;)V
-HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$mwriteToFile(Landroid/app/SharedPreferencesImpl;Landroid/app/SharedPreferencesImpl$MemoryCommitResult;Z)V
-HSPLandroid/app/SharedPreferencesImpl;-><init>(Ljava/io/File;I)V
-HSPLandroid/app/SharedPreferencesImpl;->awaitLoadedLocked()V
-HSPLandroid/app/SharedPreferencesImpl;->contains(Ljava/lang/String;)Z
-HSPLandroid/app/SharedPreferencesImpl;->createFileOutputStream(Ljava/io/File;)Ljava/io/FileOutputStream;
-HSPLandroid/app/SharedPreferencesImpl;->edit()Landroid/content/SharedPreferences$Editor;
-HSPLandroid/app/SharedPreferencesImpl;->enqueueDiskWrite(Landroid/app/SharedPreferencesImpl$MemoryCommitResult;Ljava/lang/Runnable;)V
-HSPLandroid/app/SharedPreferencesImpl;->getAll()Ljava/util/Map;
-HSPLandroid/app/SharedPreferencesImpl;->getBoolean(Ljava/lang/String;Z)Z
-HSPLandroid/app/SharedPreferencesImpl;->getFloat(Ljava/lang/String;F)F
-HSPLandroid/app/SharedPreferencesImpl;->getInt(Ljava/lang/String;I)I
-HSPLandroid/app/SharedPreferencesImpl;->getLong(Ljava/lang/String;J)J
-HSPLandroid/app/SharedPreferencesImpl;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/app/SharedPreferencesImpl;->getStringSet(Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
-HSPLandroid/app/SharedPreferencesImpl;->hasFileChangedUnexpectedly()Z
-HSPLandroid/app/SharedPreferencesImpl;->lambda$startLoadFromDisk$0()V
-HSPLandroid/app/SharedPreferencesImpl;->loadFromDisk()V
-HSPLandroid/app/SharedPreferencesImpl;->makeBackupFile(Ljava/io/File;)Ljava/io/File;
-HSPLandroid/app/SharedPreferencesImpl;->registerOnSharedPreferenceChangeListener(Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener;)V
-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+]Ljava/io/File;Ljava/io/File;]Lcom/android/internal/util/ExponentiallyBucketedHistogram;Lcom/android/internal/util/ExponentiallyBucketedHistogram;]Landroid/app/SharedPreferencesImpl$MemoryCommitResult;Landroid/app/SharedPreferencesImpl$MemoryCommitResult;]Ljava/io/FileOutputStream;Ljava/io/FileOutputStream;
-HSPLandroid/app/StackTrace;-><init>(Ljava/lang/String;)V
-HSPLandroid/app/StatusBarManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/app/SyncNotedAppOp$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/SyncNotedAppOp;
-HSPLandroid/app/SyncNotedAppOp$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/SyncNotedAppOp;-><init>(IILjava/lang/String;Ljava/lang/String;)V
-HSPLandroid/app/SyncNotedAppOp;-><init>(ILjava/lang/String;)V
-HSPLandroid/app/SyncNotedAppOp;-><init>(ILjava/lang/String;Ljava/lang/String;)V
-HSPLandroid/app/SyncNotedAppOp;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/SyncNotedAppOp;->getAttributionTag()Ljava/lang/String;
-HSPLandroid/app/SyncNotedAppOp;->getOp()Ljava/lang/String;
-HSPLandroid/app/SyncNotedAppOp;->getOpMode()I
-HSPLandroid/app/SyncNotedAppOp;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/SystemServiceRegistry$100;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$103;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$104;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$105;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$106;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$107;->createService(Landroid/app/ContextImpl;)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$10;->createService(Landroid/app/ContextImpl;)Landroid/media/MediaRouter;
-HSPLandroid/app/SystemServiceRegistry$10;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$110;->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$113;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$114;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$115;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$116;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$117;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$122;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$123;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$124;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$125;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$126;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$127;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$128;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$129;->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$130;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$131;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$138;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$139;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$13;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$14;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$15;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$18;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$1;->createService(Landroid/app/ContextImpl;)Landroid/view/accessibility/AccessibilityManager;
-HSPLandroid/app/SystemServiceRegistry$1;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$21;->createService(Landroid/app/ContextImpl;)Landroid/app/admin/DevicePolicyManager;
-HSPLandroid/app/SystemServiceRegistry$21;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$22;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$23;->createService(Landroid/app/ContextImpl;)Landroid/os/BatteryManager;
-HSPLandroid/app/SystemServiceRegistry$23;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$24;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$25;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$26;->createService(Landroid/app/ContextImpl;)Landroid/hardware/input/InputManager;
-HSPLandroid/app/SystemServiceRegistry$26;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$27;->createService(Landroid/app/ContextImpl;)Landroid/hardware/display/DisplayManager;
-HSPLandroid/app/SystemServiceRegistry$27;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$28;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$29;->getService(Landroid/app/ContextImpl;)Landroid/view/inputmethod/InputMethodManager;
-HSPLandroid/app/SystemServiceRegistry$29;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$2;->createService(Landroid/app/ContextImpl;)Landroid/view/accessibility/CaptioningManager;
-HSPLandroid/app/SystemServiceRegistry$2;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$31;->createService(Landroid/app/ContextImpl;)Landroid/app/KeyguardManager;
-HSPLandroid/app/SystemServiceRegistry$31;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$32;->createService(Landroid/app/ContextImpl;)Landroid/view/LayoutInflater;
-HSPLandroid/app/SystemServiceRegistry$32;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$33;->createService(Landroid/app/ContextImpl;)Landroid/location/LocationManager;
-HSPLandroid/app/SystemServiceRegistry$33;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$34;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$35;->createService(Landroid/app/ContextImpl;)Landroid/app/NotificationManager;
-HSPLandroid/app/SystemServiceRegistry$35;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$36;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$37;->createService(Landroid/app/ContextImpl;)Landroid/os/PowerManager;
-HSPLandroid/app/SystemServiceRegistry$37;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$38;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$39;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$3;->createService(Landroid/app/ContextImpl;)Landroid/accounts/AccountManager;
-HSPLandroid/app/SystemServiceRegistry$3;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$40;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$41;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$42;->createService(Landroid/app/ContextImpl;)Landroid/hardware/SensorManager;
-HSPLandroid/app/SystemServiceRegistry$42;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$43;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$44;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$45;->createService(Landroid/app/ContextImpl;)Landroid/os/storage/StorageManager;
-HSPLandroid/app/SystemServiceRegistry$45;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$46;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$47;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$48;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$49;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$4;->createService(Landroid/app/ContextImpl;)Landroid/app/ActivityManager;
-HSPLandroid/app/SystemServiceRegistry$4;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$50;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$51;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$52;->createService(Landroid/app/ContextImpl;)Landroid/app/UiModeManager;
-HSPLandroid/app/SystemServiceRegistry$52;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$53;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$54;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$55;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$56;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$57;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$58;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$59;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$60;->createService(Landroid/app/ContextImpl;)Landroid/view/WindowManager;
-HSPLandroid/app/SystemServiceRegistry$60;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$61;->createService(Landroid/app/ContextImpl;)Landroid/os/UserManager;
-HSPLandroid/app/SystemServiceRegistry$61;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$62;->createService(Landroid/app/ContextImpl;)Landroid/app/AppOpsManager;
-HSPLandroid/app/SystemServiceRegistry$62;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$63;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$64;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$65;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$66;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$67;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$68;->createService(Landroid/app/ContextImpl;)Landroid/companion/virtual/VirtualDeviceManager;+]Landroid/app/ContextImpl;Landroid/app/ContextImpl;]Landroid/content/res/Resources;Landroid/content/res/Resources;
-HSPLandroid/app/SystemServiceRegistry$68;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$71;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$74;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$75;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$77;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$78;->createService(Landroid/app/ContextImpl;)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$83;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$84;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$85;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$86;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$87;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$88;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$89;->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$90;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$91;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$92;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$93;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$94;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$95;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$96;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$97;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$98;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$99;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$9;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$CachedServiceFetcher;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object;+]Landroid/app/SystemServiceRegistry$CachedServiceFetcher;megamorphic_types]Ljava/lang/Object;[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;+]Landroid/app/SystemServiceRegistry$ServiceFetcher;megamorphic_types
-HSPLandroid/app/SystemServiceRegistry;->getSystemServiceFetcher(Ljava/lang/String;)Landroid/app/SystemServiceRegistry$ServiceFetcher;+]Ljava/util/Map;Landroid/util/ArrayMap;
-HSPLandroid/app/SystemServiceRegistry;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String;
-HSPLandroid/app/TaskInfo;-><init>()V
-HSPLandroid/app/TaskInfo;->getWindowingMode()I
-HSPLandroid/app/TaskInfo;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/app/TaskStackListener;-><init>()V
-HSPLandroid/app/TaskStackListener;->onActivityRequestedOrientationChanged(II)V
-HSPLandroid/app/TaskStackListener;->onActivityRestartAttempt(Landroid/app/ActivityManager$RunningTaskInfo;ZZZ)V
-HSPLandroid/app/TaskStackListener;->onRecentTaskListUpdated()V
-HSPLandroid/app/TaskStackListener;->onTaskCreated(ILandroid/content/ComponentName;)V
-HSPLandroid/app/TaskStackListener;->onTaskDescriptionChanged(ILandroid/app/ActivityManager$TaskDescription;)V
-HSPLandroid/app/TaskStackListener;->onTaskDescriptionChanged(Landroid/app/ActivityManager$RunningTaskInfo;)V
-HSPLandroid/app/TaskStackListener;->onTaskFocusChanged(IZ)V
-HSPLandroid/app/TaskStackListener;->onTaskMovedToFront(I)V
-HSPLandroid/app/TaskStackListener;->onTaskMovedToFront(Landroid/app/ActivityManager$RunningTaskInfo;)V
-HSPLandroid/app/TaskStackListener;->onTaskRemovalStarted(I)V
-HSPLandroid/app/TaskStackListener;->onTaskRemovalStarted(Landroid/app/ActivityManager$RunningTaskInfo;)V
-HSPLandroid/app/TaskStackListener;->onTaskRemoved(I)V
-HSPLandroid/app/TaskStackListener;->onTaskRequestedOrientationChanged(II)V
-HSPLandroid/app/UiModeManager$1;-><init>(Landroid/app/UiModeManager;)V
-HSPLandroid/app/UiModeManager$Globals;->-$$Nest$fgetmService(Landroid/app/UiModeManager$Globals;)Landroid/app/IUiModeManager;
-HSPLandroid/app/UiModeManager$Globals;-><init>(Landroid/app/IUiModeManager;)V
-HSPLandroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager;-><init>()V
-HSPLandroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager;-><init>(Landroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager-IA;)V
-HSPLandroid/app/UiModeManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/app/UiModeManager;->getActiveProjectionTypes()I
-HSPLandroid/app/UiModeManager;->getCurrentModeType()I
-HSPLandroid/app/UriGrantsManager$1;->create()Landroid/app/IUriGrantsManager;
-HSPLandroid/app/UriGrantsManager$1;->create()Ljava/lang/Object;
-HSPLandroid/app/UriGrantsManager;->getService()Landroid/app/IUriGrantsManager;
-HSPLandroid/app/WallpaperColors$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/WallpaperColors;
-HSPLandroid/app/WallpaperColors$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/WallpaperColors;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/WallpaperColors;->getColorHints()I
-HSPLandroid/app/WallpaperColors;->getMainColors()Ljava/util/List;
-HSPLandroid/app/WallpaperManager$Globals$1;-><init>(Landroid/app/WallpaperManager$Globals;)V
-HSPLandroid/app/WallpaperManager$Globals;-><init>(Landroid/app/IWallpaperManager;Landroid/os/Looper;)V
-HSPLandroid/app/WallpaperManager$Globals;->forgetLoadedWallpaper()V
-HSPLandroid/app/WallpaperManager$Globals;->getWallpaperColors(III)Landroid/app/WallpaperColors;
-HSPLandroid/app/WallpaperManager;-><init>(Landroid/app/IWallpaperManager;Landroid/content/Context;Landroid/os/Handler;)V
-HSPLandroid/app/WallpaperManager;->getWallpaperColors(I)Landroid/app/WallpaperColors;
-HSPLandroid/app/WallpaperManager;->getWallpaperColors(II)Landroid/app/WallpaperColors;
-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
-HSPLandroid/app/WallpaperManager;->setWallpaperZoomOut(Landroid/os/IBinder;F)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+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
-HSPLandroid/app/WindowConfiguration;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/WindowConfiguration;->activityTypeToString(I)Ljava/lang/String;
-HSPLandroid/app/WindowConfiguration;->areConfigurationsEqualForDisplay(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Z+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
-HSPLandroid/app/WindowConfiguration;->canReceiveKeys()Z
-HSPLandroid/app/WindowConfiguration;->compareTo(Landroid/app/WindowConfiguration;)I
-HSPLandroid/app/WindowConfiguration;->diff(Landroid/app/WindowConfiguration;Z)J+]Landroid/graphics/Rect;Landroid/graphics/Rect;
-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;
-HSPLandroid/app/WindowConfiguration;->getDisplayRotation()I
-HSPLandroid/app/WindowConfiguration;->getMaxBounds()Landroid/graphics/Rect;
-HSPLandroid/app/WindowConfiguration;->getRotation()I
-HSPLandroid/app/WindowConfiguration;->getWindowingMode()I
-HSPLandroid/app/WindowConfiguration;->hasWindowDecorCaption()Z
-HSPLandroid/app/WindowConfiguration;->hasWindowShadow()Z
-HSPLandroid/app/WindowConfiguration;->inMultiWindowMode(I)Z
-HSPLandroid/app/WindowConfiguration;->isFloating(I)Z
-HSPLandroid/app/WindowConfiguration;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/app/WindowConfiguration;->setActivityType(I)V
-HSPLandroid/app/WindowConfiguration;->setAlwaysOnTop(I)V
-HSPLandroid/app/WindowConfiguration;->setAppBounds(IIII)V
-HSPLandroid/app/WindowConfiguration;->setAppBounds(Landroid/graphics/Rect;)V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
-HSPLandroid/app/WindowConfiguration;->setBounds(Landroid/graphics/Rect;)V+]Landroid/graphics/Rect;Landroid/graphics/Rect;
-HSPLandroid/app/WindowConfiguration;->setDisplayRotation(I)V
-HSPLandroid/app/WindowConfiguration;->setDisplayWindowingMode(I)V
-HSPLandroid/app/WindowConfiguration;->setMaxBounds(Landroid/graphics/Rect;)V+]Landroid/graphics/Rect;Landroid/graphics/Rect;
-HSPLandroid/app/WindowConfiguration;->setRotation(I)V
-HSPLandroid/app/WindowConfiguration;->setTo(Landroid/app/WindowConfiguration;)V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
-HSPLandroid/app/WindowConfiguration;->setTo(Landroid/app/WindowConfiguration;I)V
-HSPLandroid/app/WindowConfiguration;->setToDefaults()V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
-HSPLandroid/app/WindowConfiguration;->setWindowingMode(I)V
-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+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
-HSPLandroid/app/WindowConfiguration;->windowingModeToString(I)Ljava/lang/String;
-HSPLandroid/app/WindowConfiguration;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda5;-><init>(Landroid/app/admin/DevicePolicyManager;)V
-HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda6;-><init>(Landroid/app/admin/DevicePolicyManager;)V
-HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda7;-><init>(Landroid/app/admin/DevicePolicyManager;)V
-HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda8;-><init>(Landroid/app/admin/DevicePolicyManager;)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
-HSPLandroid/app/admin/DevicePolicyManager;->getActiveAdmins()Ljava/util/List;
-HSPLandroid/app/admin/DevicePolicyManager;->getActiveAdminsAsUser(I)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;
-HSPLandroid/app/admin/DevicePolicyManager;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;I)I
-HSPLandroid/app/admin/DevicePolicyManager;->getMaximumTimeToLock(Landroid/content/ComponentName;I)J
-HSPLandroid/app/admin/DevicePolicyManager;->getPasswordQuality(Landroid/content/ComponentName;)I
-HSPLandroid/app/admin/DevicePolicyManager;->getPasswordQuality(Landroid/content/ComponentName;I)I
-HSPLandroid/app/admin/DevicePolicyManager;->getProfileOwner()Landroid/content/ComponentName;
-HSPLandroid/app/admin/DevicePolicyManager;->getProfileOwnerAsUser(I)Landroid/content/ComponentName;
-HSPLandroid/app/admin/DevicePolicyManager;->getResources()Landroid/app/admin/DevicePolicyResourcesManager;
-HSPLandroid/app/admin/DevicePolicyManager;->getService()Landroid/app/admin/IDevicePolicyManager;
-HSPLandroid/app/admin/DevicePolicyManager;->getStorageEncryptionStatus()I
-HSPLandroid/app/admin/DevicePolicyManager;->getStorageEncryptionStatus(I)I
-HSPLandroid/app/admin/DevicePolicyManager;->isAdminActive(Landroid/content/ComponentName;)Z
-HSPLandroid/app/admin/DevicePolicyManager;->isAdminActiveAsUser(Landroid/content/ComponentName;I)Z
-HSPLandroid/app/admin/DevicePolicyManager;->isCommonCriteriaModeEnabled(Landroid/content/ComponentName;)Z
-HSPLandroid/app/admin/DevicePolicyManager;->isDeviceManaged()Z
-HSPLandroid/app/admin/DevicePolicyManager;->isDeviceOwnerApp(Ljava/lang/String;)Z
-HSPLandroid/app/admin/DevicePolicyManager;->isDeviceOwnerAppOnCallingUser(Ljava/lang/String;)Z
-HSPLandroid/app/admin/DevicePolicyManager;->isOrganizationOwnedDeviceWithManagedProfile()Z
-HSPLandroid/app/admin/DevicePolicyManager;->isParentInstance()Z
-HSPLandroid/app/admin/DevicePolicyManager;->isProfileOwnerApp(Ljava/lang/String;)Z
-HSPLandroid/app/admin/DevicePolicyManager;->myUserId()I
-HSPLandroid/app/admin/DevicePolicyManager;->throwIfParentInstance(Ljava/lang/String;)V
-HSPLandroid/app/admin/DevicePolicyResourcesManager;-><clinit>()V
-HSPLandroid/app/admin/DevicePolicyResourcesManager;-><init>(Landroid/content/Context;Landroid/app/admin/IDevicePolicyManager;)V
-HSPLandroid/app/admin/DevicePolicyResourcesManager;->getDrawable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Supplier;)Landroid/graphics/drawable/Drawable;
-HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getActiveAdmins(I)Ljava/util/List;
-HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDeviceOwnerComponent(Z)Landroid/content/ComponentName;
-HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)I
-HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordQuality(Landroid/content/ComponentName;IZ)I
-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;->hasDeviceOwner()Z
-HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isAdminActive(Landroid/content/ComponentName;I)Z
-HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isOrganizationOwnedDeviceWithManagedProfile()Z
-HSPLandroid/app/admin/IDevicePolicyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/admin/IDevicePolicyManager;
-HSPLandroid/app/admin/ParcelableResource$1;-><init>()V
-HSPLandroid/app/admin/ParcelableResource;-><clinit>()V
-HSPLandroid/app/admin/ParcelableResource;->loadDefaultDrawable(Ljava/util/function/Supplier;)Landroid/graphics/drawable/Drawable;
-HSPLandroid/app/assist/AssistContent;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/assist/AssistContent;->writeToParcelInternal(Landroid/os/Parcel;I)V
-HSPLandroid/app/assist/AssistStructure$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/assist/AssistStructure;
-HSPLandroid/app/assist/AssistStructure$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/assist/AssistStructure$ParcelTransferReader;->fetchData()V
-HSPLandroid/app/assist/AssistStructure$ParcelTransferReader;->go()V
-HSPLandroid/app/assist/AssistStructure$ParcelTransferReader;->readParcel(II)Landroid/os/Parcel;
-HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;-><init>(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)V
-HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->pushViewStackEntry(Landroid/app/assist/AssistStructure$ViewNode;I)V
-HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeNextEntryToParcel(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;Landroid/os/PooledStringWriter;)Z
-HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeToParcel(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)V
-HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeToParcelInner(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)Z
-HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeView(Landroid/app/assist/AssistStructure$ViewNode;Landroid/os/Parcel;Landroid/os/PooledStringWriter;I)V
-HSPLandroid/app/assist/AssistStructure$SendChannel;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/app/assist/AssistStructure$ViewNode;-><init>()V
-HSPLandroid/app/assist/AssistStructure$ViewNode;-><init>(Landroid/app/assist/AssistStructure$ParcelTransferReader;I)V
-HSPLandroid/app/assist/AssistStructure$ViewNode;->getAutofillId()Landroid/view/autofill/AutofillId;
-HSPLandroid/app/assist/AssistStructure$ViewNode;->getChildCount()I
-HSPLandroid/app/assist/AssistStructure$ViewNode;->writeSelfToParcel(Landroid/os/Parcel;Landroid/os/PooledStringWriter;Z[FZ)I
-HSPLandroid/app/assist/AssistStructure$ViewNode;->writeString(Landroid/os/Parcel;Landroid/os/PooledStringWriter;Ljava/lang/String;)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->getChildCount()I
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->getNodeText()Landroid/app/assist/AssistStructure$ViewNodeText;
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->newChild(I)Landroid/view/ViewStructure;
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setAutofillHints([Ljava/lang/String;)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setAutofillId(Landroid/view/autofill/AutofillId;)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setAutofillType(I)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setAutofillValue(Landroid/view/autofill/AutofillValue;)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setChildCount(I)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setClassName(Ljava/lang/String;)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setClickable(Z)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setContentDescription(Ljava/lang/CharSequence;)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setDataIsSensitive(Z)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setDimens(IIIIII)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setEnabled(Z)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setFocusable(Z)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setFocused(Z)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setHint(Ljava/lang/CharSequence;)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setHintIdEntry(Ljava/lang/String;)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setId(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setImportantForAutofill(I)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setInputType(I)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setLongClickable(Z)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setMaxTextEms(I)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setMaxTextLength(I)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setMinTextEms(I)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setOpaque(Z)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setReceiveContentMimeTypes([Ljava/lang/String;)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setText(Ljava/lang/CharSequence;)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setTextIdEntry(Ljava/lang/String;)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setVisibility(I)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeParcelable$1;-><init>()V
-HSPLandroid/app/assist/AssistStructure$ViewNodeParcelable;-><clinit>()V
-HSPLandroid/app/assist/AssistStructure$ViewNodeText;-><init>(Landroid/os/Parcel;Z)V
-HSPLandroid/app/assist/AssistStructure$ViewNodeText;->isSimple()Z
-HSPLandroid/app/assist/AssistStructure$ViewNodeText;->writeToParcel(Landroid/os/Parcel;ZZ)V
-HSPLandroid/app/assist/AssistStructure$WindowNode;-><init>(Landroid/app/assist/AssistStructure$ParcelTransferReader;)V
-HSPLandroid/app/assist/AssistStructure$WindowNode;-><init>(Landroid/app/assist/AssistStructure;Landroid/view/ViewRootImpl;ZI)V
-HSPLandroid/app/assist/AssistStructure$WindowNode;->resolveViewAutofillFlags(Landroid/content/Context;I)I
-HSPLandroid/app/assist/AssistStructure$WindowNode;->writeSelfToParcel(Landroid/os/Parcel;Landroid/os/PooledStringWriter;[F)V
-HSPLandroid/app/assist/AssistStructure;-><init>()V
-HSPLandroid/app/assist/AssistStructure;-><init>(Landroid/app/Activity;ZI)V
-HSPLandroid/app/assist/AssistStructure;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/assist/AssistStructure;->clearSendChannel()V
-HSPLandroid/app/assist/AssistStructure;->ensureData()V
-HSPLandroid/app/assist/AssistStructure;->waitForReady()Z
-HSPLandroid/app/assist/AssistStructure;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/backup/BackupAgent$BackupServiceBinder;-><init>(Landroid/app/backup/BackupAgent;)V
-HSPLandroid/app/backup/BackupAgent$BackupServiceBinder;->doBackup(Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;JLandroid/app/backup/IBackupCallback;I)V
-HSPLandroid/app/backup/BackupAgent$SharedPrefsSynchronizer;-><init>(Landroid/app/backup/BackupAgent;)V
-HSPLandroid/app/backup/BackupAgent$SharedPrefsSynchronizer;->run()V
-HSPLandroid/app/backup/BackupAgent;-><init>()V
-HSPLandroid/app/backup/BackupAgent;->attach(Landroid/content/Context;)V
-HSPLandroid/app/backup/BackupAgent;->getHandler()Landroid/os/Handler;
-HSPLandroid/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;->onCreate(Landroid/os/UserHandle;I)V
-HSPLandroid/app/backup/BackupAgent;->onCreate(Landroid/os/UserHandle;II)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
-HSPLandroid/app/backup/BackupDataOutput;-><init>(Ljava/io/FileDescriptor;JI)V
-HSPLandroid/app/backup/BackupDataOutput;->finalize()V
-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
-HSPLandroid/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
-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/BackupRestoreEventLogger;-><init>(I)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;->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
-HSPLandroid/app/backup/IBackupCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/backup/IBackupCallback$Stub$Proxy;->operationComplete(J)V
-HSPLandroid/app/backup/IBackupCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IBackupCallback;
-HSPLandroid/app/backup/IBackupManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-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;->isBackupServiceActive(I)Z
-HSPLandroid/app/backup/IBackupManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IBackupManager;
-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/BlobStoreManager;-><init>(Landroid/content/Context;Landroid/app/blob/IBlobStoreManager;)V
-HSPLandroid/app/blob/BlobStoreManagerFrameworkInitializer$$ExternalSyntheticLambda0;->createService(Landroid/content/Context;Landroid/os/IBinder;)Ljava/lang/Object;
-HSPLandroid/app/blob/BlobStoreManagerFrameworkInitializer;->lambda$initialize$0(Landroid/content/Context;Landroid/os/IBinder;)Landroid/app/blob/BlobStoreManager;
-HSPLandroid/app/blob/IBlobStoreManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/app/blob/IBlobStoreManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/blob/IBlobStoreManager;
-HSPLandroid/app/compat/ChangeIdStateCache;->getPlatformCompatService()Lcom/android/internal/compat/IPlatformCompat;
-HSPLandroid/app/compat/ChangeIdStateCache;->recompute(Landroid/app/compat/ChangeIdStateQuery;)Ljava/lang/Boolean;
-HSPLandroid/app/compat/ChangeIdStateCache;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/app/compat/ChangeIdStateQuery;-><init>(IJLjava/lang/String;II)V
-HSPLandroid/app/compat/ChangeIdStateQuery;->byPackageName(JLjava/lang/String;I)Landroid/app/compat/ChangeIdStateQuery;
-HSPLandroid/app/compat/ChangeIdStateQuery;->byUid(JI)Landroid/app/compat/ChangeIdStateQuery;
-HSPLandroid/app/compat/ChangeIdStateQuery;->equals(Ljava/lang/Object;)Z
-HSPLandroid/app/compat/ChangeIdStateQuery;->hashCode()I
-HSPLandroid/app/compat/CompatChanges;->isChangeEnabled(J)Z
-HSPLandroid/app/compat/CompatChanges;->isChangeEnabled(JI)Z
-HSPLandroid/app/compat/CompatChanges;->isChangeEnabled(JLjava/lang/String;Landroid/os/UserHandle;)Z
-HSPLandroid/app/contentsuggestions/ContentSelection;-><init>(Ljava/lang/String;Landroid/os/Bundle;)V
-HSPLandroid/app/contentsuggestions/ISelectionsCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/app/contentsuggestions/ISelectionsCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/contentsuggestions/ISelectionsCallback;
-HSPLandroid/app/contentsuggestions/SelectionsRequest$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/contentsuggestions/SelectionsRequest;
-HSPLandroid/app/contentsuggestions/SelectionsRequest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/contentsuggestions/SelectionsRequest;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/job/IJobCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/app/job/IJobCallback$Stub$Proxy;->acknowledgeStartMessage(IZ)V
-HSPLandroid/app/job/IJobCallback$Stub$Proxy;->acknowledgeStopMessage(IZ)V
-HSPLandroid/app/job/IJobCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-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
-HSPLandroid/app/job/IJobCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobCallback;
-HSPLandroid/app/job/IJobScheduler$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->cancel(Ljava/lang/String;I)V
-HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->enqueue(Ljava/lang/String;Landroid/app/job/JobInfo;Landroid/app/job/JobWorkItem;)I
-HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->getAllPendingJobsInNamespace(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
-HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->getPendingJob(Ljava/lang/String;I)Landroid/app/job/JobInfo;
-HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->schedule(Ljava/lang/String;Landroid/app/job/JobInfo;)I
-HSPLandroid/app/job/IJobScheduler$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobScheduler;
-HSPLandroid/app/job/IJobService$Stub;-><init>()V
-HSPLandroid/app/job/IJobService$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/job/IJobService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
-HSPLandroid/app/job/IJobService$Stub;->getMaxTransactionId()I
-HSPLandroid/app/job/IJobService$Stub;->getTransactionName(I)Ljava/lang/String;
-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;
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmBackoffPolicy(Landroid/app/job/JobInfo$Builder;)I
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmBias(Landroid/app/job/JobInfo$Builder;)I
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmClipData(Landroid/app/job/JobInfo$Builder;)Landroid/content/ClipData;
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmClipGrantFlags(Landroid/app/job/JobInfo$Builder;)I
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmConstraintFlags(Landroid/app/job/JobInfo$Builder;)I
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmExtras(Landroid/app/job/JobInfo$Builder;)Landroid/os/PersistableBundle;
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmFlags(Landroid/app/job/JobInfo$Builder;)I
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmFlexMillis(Landroid/app/job/JobInfo$Builder;)J
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmHasEarlyConstraint(Landroid/app/job/JobInfo$Builder;)Z
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmHasLateConstraint(Landroid/app/job/JobInfo$Builder;)Z
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmInitialBackoffMillis(Landroid/app/job/JobInfo$Builder;)J
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmIntervalMillis(Landroid/app/job/JobInfo$Builder;)J
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmIsPeriodic(Landroid/app/job/JobInfo$Builder;)Z
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmIsPersisted(Landroid/app/job/JobInfo$Builder;)Z
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmJobId(Landroid/app/job/JobInfo$Builder;)I
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmJobService(Landroid/app/job/JobInfo$Builder;)Landroid/content/ComponentName;
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmMaxExecutionDelayMillis(Landroid/app/job/JobInfo$Builder;)J
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmMinLatencyMillis(Landroid/app/job/JobInfo$Builder;)J
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmMinimumNetworkChunkBytes(Landroid/app/job/JobInfo$Builder;)J
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmNetworkDownloadBytes(Landroid/app/job/JobInfo$Builder;)J
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmNetworkRequest(Landroid/app/job/JobInfo$Builder;)Landroid/net/NetworkRequest;
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmNetworkUploadBytes(Landroid/app/job/JobInfo$Builder;)J
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmPriority(Landroid/app/job/JobInfo$Builder;)I
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmTransientExtras(Landroid/app/job/JobInfo$Builder;)Landroid/os/Bundle;
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmTriggerContentMaxDelay(Landroid/app/job/JobInfo$Builder;)J
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmTriggerContentUpdateDelay(Landroid/app/job/JobInfo$Builder;)J
-HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmTriggerContentUris(Landroid/app/job/JobInfo$Builder;)Ljava/util/ArrayList;
-HSPLandroid/app/job/JobInfo$Builder;-><init>(ILandroid/content/ComponentName;)V
-HSPLandroid/app/job/JobInfo$Builder;->addTriggerContentUri(Landroid/app/job/JobInfo$TriggerContentUri;)Landroid/app/job/JobInfo$Builder;
-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;->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;
-HSPLandroid/app/job/JobInfo$Builder;->setPrefetch(Z)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
-HSPLandroid/app/job/JobInfo$TriggerContentUri;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/job/JobInfo;-><init>(Landroid/app/job/JobInfo$Builder;)V+]Landroid/os/PersistableBundle;Landroid/os/PersistableBundle;]Landroid/os/Bundle;Landroid/os/Bundle;
-HSPLandroid/app/job/JobInfo;-><init>(Landroid/app/job/JobInfo$Builder;Landroid/app/job/JobInfo-IA;)V
-HSPLandroid/app/job/JobInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/net/NetworkRequest$1;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/app/job/JobInfo;->enforceValidity(ZZZZ)V+]Landroid/net/NetworkRequest;Landroid/net/NetworkRequest;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/content/ComponentName;Landroid/content/ComponentName;
-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
-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
-HSPLandroid/app/job/JobInfo;->getRequiredNetwork()Landroid/net/NetworkRequest;
-HSPLandroid/app/job/JobInfo;->getService()Landroid/content/ComponentName;
-HSPLandroid/app/job/JobInfo;->isPeriodic()Z
-HSPLandroid/app/job/JobInfo;->isPersisted()Z
-HSPLandroid/app/job/JobInfo;->isRequireCharging()Z
-HSPLandroid/app/job/JobInfo;->isRequireDeviceIdle()Z
-HSPLandroid/app/job/JobInfo;->validateTraceTag(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/app/job/JobInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/net/NetworkRequest;Landroid/net/NetworkRequest;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/os/Parcel;Landroid/os/Parcel;
-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;
-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;->getExtras()Landroid/os/PersistableBundle;
-HSPLandroid/app/job/JobParameters;->getJobId()I
-HSPLandroid/app/job/JobParameters;->getNetwork()Landroid/net/Network;
-HSPLandroid/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;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/job/JobScheduler;-><init>()V
-HSPLandroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda0;->createService(Landroid/content/Context;Landroid/os/IBinder;)Ljava/lang/Object;
-HSPLandroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda1;->createService(Landroid/content/Context;Landroid/os/IBinder;)Ljava/lang/Object;
-HSPLandroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda2;->createService(Landroid/content/Context;)Ljava/lang/Object;
-HSPLandroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda3;->createService(Landroid/content/Context;)Ljava/lang/Object;
-HSPLandroid/app/job/JobSchedulerFrameworkInitializer;->lambda$registerServiceWrappers$0(Landroid/content/Context;Landroid/os/IBinder;)Landroid/app/job/JobScheduler;
-HSPLandroid/app/job/JobSchedulerFrameworkInitializer;->lambda$registerServiceWrappers$1(Landroid/content/Context;Landroid/os/IBinder;)Landroid/os/DeviceIdleManager;
-HSPLandroid/app/job/JobService$1;-><init>(Landroid/app/job/JobService;Landroid/app/Service;)V
-HSPLandroid/app/job/JobService$1;->onStartJob(Landroid/app/job/JobParameters;)Z
-HSPLandroid/app/job/JobService$1;->onStopJob(Landroid/app/job/JobParameters;)Z
-HSPLandroid/app/job/JobService;-><init>()V
-HSPLandroid/app/job/JobService;->jobFinished(Landroid/app/job/JobParameters;Z)V
-HSPLandroid/app/job/JobService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
-HSPLandroid/app/job/JobServiceEngine$JobHandler;-><init>(Landroid/app/job/JobServiceEngine;Landroid/os/Looper;)V
-HSPLandroid/app/job/JobServiceEngine$JobHandler;->ackStartMessage(Landroid/app/job/JobParameters;Z)V
-HSPLandroid/app/job/JobServiceEngine$JobHandler;->ackStopMessage(Landroid/app/job/JobParameters;Z)V
-HSPLandroid/app/job/JobServiceEngine$JobHandler;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/app/job/JobServiceEngine$JobInterface;-><init>(Landroid/app/job/JobServiceEngine;)V
-HSPLandroid/app/job/JobServiceEngine$JobInterface;->startJob(Landroid/app/job/JobParameters;)V
-HSPLandroid/app/job/JobServiceEngine$JobInterface;->stopJob(Landroid/app/job/JobParameters;)V
-HSPLandroid/app/job/JobServiceEngine;-><init>(Landroid/app/Service;)V
-HSPLandroid/app/job/JobServiceEngine;->getBinder()Landroid/os/IBinder;
-HSPLandroid/app/job/JobServiceEngine;->jobFinished(Landroid/app/job/JobParameters;Z)V
-HSPLandroid/app/job/JobWorkItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/job/JobWorkItem;
-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/content/Intent;JJJ)V
-HSPLandroid/app/job/JobWorkItem;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/job/JobWorkItem;->enforceValidity(Z)V
-HSPLandroid/app/job/JobWorkItem;->getIntent()Landroid/content/Intent;
-HSPLandroid/app/job/JobWorkItem;->getWorkId()I
-HSPLandroid/app/job/JobWorkItem;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/prediction/AppPredictionContext$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppPredictionContext;
-HSPLandroid/app/prediction/AppPredictionContext$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/prediction/AppPredictionContext;->getUiSurface()Ljava/lang/String;
-HSPLandroid/app/prediction/AppPredictionContext;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/prediction/AppPredictionSessionId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppPredictionSessionId;
-HSPLandroid/app/prediction/AppPredictionSessionId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/prediction/AppPredictionSessionId;->equals(Ljava/lang/Object;)Z
-HSPLandroid/app/prediction/AppPredictionSessionId;->hashCode()I
-HSPLandroid/app/prediction/AppPredictionSessionId;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/prediction/AppTarget$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppTarget;
-HSPLandroid/app/prediction/AppTarget$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/prediction/AppTarget$Builder;-><init>(Landroid/app/prediction/AppTargetId;Ljava/lang/String;Landroid/os/UserHandle;)V
-HSPLandroid/app/prediction/AppTarget$Builder;->build()Landroid/app/prediction/AppTarget;
-HSPLandroid/app/prediction/AppTarget$Builder;->setClassName(Ljava/lang/String;)Landroid/app/prediction/AppTarget$Builder;
-HSPLandroid/app/prediction/AppTarget;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/prediction/AppTarget;->getClassName()Ljava/lang/String;
-HSPLandroid/app/prediction/AppTarget;->getPackageName()Ljava/lang/String;
-HSPLandroid/app/prediction/AppTarget;->getShortcutInfo()Landroid/content/pm/ShortcutInfo;
-HSPLandroid/app/prediction/AppTarget;->getUser()Landroid/os/UserHandle;
-HSPLandroid/app/prediction/AppTarget;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/prediction/AppTargetEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppTargetEvent;
-HSPLandroid/app/prediction/AppTargetEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/prediction/AppTargetEvent;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/prediction/AppTargetId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppTargetId;
-HSPLandroid/app/prediction/AppTargetId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/prediction/AppTargetId;-><init>(Ljava/lang/String;)V
-HSPLandroid/app/prediction/AppTargetId;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/prediction/IPredictionCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/prediction/IPredictionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/prediction/IPredictionCallback;
-HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ActivityConfigurationChangeItem;
-HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
-HSPLandroid/app/servertransaction/ActivityLifecycleItem;-><init>()V
-HSPLandroid/app/servertransaction/ActivityRelaunchItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
-HSPLandroid/app/servertransaction/ActivityResultItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ActivityResultItem;
-HSPLandroid/app/servertransaction/ActivityResultItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/servertransaction/ActivityResultItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
-HSPLandroid/app/servertransaction/ActivityResultItem;->getPostExecutionState()I
-HSPLandroid/app/servertransaction/ActivityTransactionItem;-><init>()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>(Landroid/os/Parcel;)V
-HSPLandroid/app/servertransaction/ClientTransaction;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/ClientTransaction-IA;)V
-HSPLandroid/app/servertransaction/ClientTransaction;->getCallbacks()Ljava/util/List;
-HSPLandroid/app/servertransaction/ClientTransaction;->getLifecycleStateRequest()Landroid/app/servertransaction/ActivityLifecycleItem;
-HSPLandroid/app/servertransaction/ClientTransaction;->preExecute(Landroid/app/ClientTransactionHandler;)V
-HSPLandroid/app/servertransaction/ClientTransactionItem;-><init>()V
-HSPLandroid/app/servertransaction/ClientTransactionItem;->getPostExecutionState()I
-HSPLandroid/app/servertransaction/ClientTransactionItem;->isActivityLifecycleItem()Z
-HSPLandroid/app/servertransaction/ClientTransactionItem;->shouldHaveDefinedPreExecutionState()Z
-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>(Landroid/os/Parcel;)V
-HSPLandroid/app/servertransaction/ConfigurationChangeItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/ConfigurationChangeItem-IA;)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;
-HSPLandroid/app/servertransaction/DestroyActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
-HSPLandroid/app/servertransaction/DestroyActivityItem;->getTargetState()I
-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;
-HSPLandroid/app/servertransaction/LaunchActivityItem;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/servertransaction/NewIntentItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/NewIntentItem;
-HSPLandroid/app/servertransaction/NewIntentItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/servertransaction/NewIntentItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
-HSPLandroid/app/servertransaction/NewIntentItem;->getPostExecutionState()I
-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;
-HSPLandroid/app/servertransaction/PauseActivityItem;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/servertransaction/PauseActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
-HSPLandroid/app/servertransaction/PauseActivityItem;->getTargetState()I
-HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;-><init>()V
-HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;->run()V
-HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;->setActivity(Landroid/app/ActivityThread$ActivityClientRecord;)V
-HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;->setDescription(Ljava/lang/CharSequence;)V
-HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;->setPersistentState(Landroid/os/PersistableBundle;)V
-HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;->setState(Landroid/os/Bundle;)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
-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;
-HSPLandroid/app/servertransaction/ResumeActivityItem;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/servertransaction/ResumeActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
-HSPLandroid/app/servertransaction/ResumeActivityItem;->getTargetState()I
-HSPLandroid/app/servertransaction/StartActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/StartActivityItem;
-HSPLandroid/app/servertransaction/StartActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/servertransaction/StartActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
-HSPLandroid/app/servertransaction/StartActivityItem;->getTargetState()I
-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;
-HSPLandroid/app/servertransaction/StopActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
-HSPLandroid/app/servertransaction/StopActivityItem;->getTargetState()I
-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;
-HSPLandroid/app/servertransaction/TopResumedActivityChangeItem;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/app/servertransaction/TopResumedActivityChangeItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
-HSPLandroid/app/servertransaction/TransactionExecutor;-><init>(Landroid/app/ClientTransactionHandler;)V
-HSPLandroid/app/servertransaction/TransactionExecutor;->cycleToPath(Landroid/app/ActivityThread$ActivityClientRecord;ILandroid/app/servertransaction/ClientTransaction;)V
-HSPLandroid/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;->executeNonLifecycleItem(Landroid/app/servertransaction/ClientTransaction;Landroid/app/servertransaction/ClientTransactionItem;Z)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/servertransaction/TransactionExecutorHelper;Landroid/app/servertransaction/TransactionExecutorHelper;]Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/app/servertransaction/ClientTransactionItem;megamorphic_types]Landroid/content/Context;missing_types]Ljava/util/Map;Ljava/util/Collections$SynchronizedMap;]Landroid/app/servertransaction/TransactionExecutor;Landroid/app/servertransaction/TransactionExecutor;
-HSPLandroid/app/servertransaction/TransactionExecutor;->executeTransactionItems(Landroid/app/servertransaction/ClientTransaction;)V+]Landroid/app/servertransaction/ClientTransaction;Landroid/app/servertransaction/ClientTransaction;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/app/servertransaction/ClientTransactionItem;megamorphic_types
-HSPLandroid/app/servertransaction/TransactionExecutor;->performLifecycleSequence(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/util/IntArray;Landroid/app/servertransaction/ClientTransaction;)V
-HSPLandroid/app/servertransaction/TransactionExecutorHelper;-><init>()V
-HSPLandroid/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
-HSPLandroid/app/slice/ISliceManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/app/slice/ISliceManager$Stub$Proxy;->getPinnedSlices(Ljava/lang/String;)[Landroid/net/Uri;
-HSPLandroid/app/slice/ISliceManager$Stub$Proxy;->grantSlicePermission(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V
-HSPLandroid/app/slice/ISliceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/slice/ISliceManager;
-HSPLandroid/app/slice/Slice;->getHints()Ljava/util/List;
-HSPLandroid/app/slice/Slice;->getItems()Ljava/util/List;
-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;->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;->getPinnedSlices()Ljava/util/List;
-HSPLandroid/app/slice/SliceManager;->grantSlicePermission(Ljava/lang/String;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/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;->onBindSliceStrict(Landroid/net/Uri;Ljava/util/List;)Landroid/app/slice/Slice;
-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/SliceSpec$1;->newArray(I)[Landroid/app/slice/SliceSpec;
-HSPLandroid/app/slice/SliceSpec$1;->newArray(I)[Ljava/lang/Object;
-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
-HSPLandroid/app/smartspace/SmartspaceAction$1;-><init>()V
-HSPLandroid/app/smartspace/SmartspaceAction;-><clinit>()V
-HSPLandroid/app/smartspace/SmartspaceConfig$1;-><init>()V
-HSPLandroid/app/smartspace/SmartspaceConfig;-><clinit>()V
-HSPLandroid/app/smartspace/SmartspaceSessionId$1;-><init>()V
-HSPLandroid/app/smartspace/SmartspaceSessionId;-><clinit>()V
-HSPLandroid/app/smartspace/SmartspaceTarget$1;-><init>()V
-HSPLandroid/app/smartspace/SmartspaceTarget;-><clinit>()V
-HSPLandroid/app/smartspace/SmartspaceTargetEvent$1;-><init>()V
-HSPLandroid/app/smartspace/SmartspaceTargetEvent;-><clinit>()V
-HSPLandroid/app/time/TimeZoneCapabilities$Builder;-><init>(Landroid/os/UserHandle;)V
-HSPLandroid/app/time/TimeZoneCapabilities$Builder;->build()Landroid/app/time/TimeZoneCapabilities;
-HSPLandroid/app/time/TimeZoneCapabilities$Builder;->setConfigureAutoDetectionEnabledCapability(I)Landroid/app/time/TimeZoneCapabilities$Builder;
-HSPLandroid/app/time/TimeZoneCapabilities$Builder;->setConfigureGeoDetectionEnabledCapability(I)Landroid/app/time/TimeZoneCapabilities$Builder;
-HSPLandroid/app/time/TimeZoneCapabilities$Builder;->verifyCapabilitySet(ILjava/lang/String;)V
-HSPLandroid/app/time/TimeZoneCapabilities;-><init>(Landroid/app/time/TimeZoneCapabilities$Builder;)V
-HSPLandroid/app/time/TimeZoneConfiguration$Builder;-><init>()V
-HSPLandroid/app/time/TimeZoneConfiguration$Builder;->build()Landroid/app/time/TimeZoneConfiguration;
-HSPLandroid/app/time/TimeZoneConfiguration;-><init>(Landroid/app/time/TimeZoneConfiguration$Builder;)V
-HSPLandroid/app/timedetector/ITimeDetectorService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/timedetector/ITimeDetectorService;
-HSPLandroid/app/timedetector/TimeDetectorImpl;-><init>()V
-HSPLandroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;-><init>(I)V
-HSPLandroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;->build()Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;
-HSPLandroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;->setMatchType(I)Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;
-HSPLandroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;->setQuality(I)Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;
-HSPLandroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;->setZoneId(Ljava/lang/String;)Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;
-HSPLandroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;->validate()V
-HSPLandroid/app/timezonedetector/TelephonyTimeZoneSuggestion;-><init>(Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;)V
-HSPLandroid/app/timezonedetector/TelephonyTimeZoneSuggestion;->toString()Ljava/lang/String;
-HSPLandroid/app/trust/ITrustManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/app/trust/ITrustManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/trust/ITrustManager$Stub$Proxy;->isDeviceLocked(II)Z
-HSPLandroid/app/trust/ITrustManager$Stub$Proxy;->isDeviceSecure(II)Z
-HSPLandroid/app/trust/ITrustManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/trust/ITrustManager;
-HSPLandroid/app/trust/TrustManager;-><init>(Landroid/os/IBinder;)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;
-HSPLandroid/app/usage/AppStandbyInfo;-><init>(Ljava/lang/String;I)V
-HSPLandroid/app/usage/AppStandbyInfo;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/usage/IStorageStatsManager$Stub$Proxy;->queryStatsForPackage(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;+]Landroid/app/usage/IStorageStatsManager$Stub$Proxy;Landroid/app/usage/IStorageStatsManager$Stub$Proxy;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/app/usage/IStorageStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/IStorageStatsManager;
-HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->getAppStandbyBucket(Ljava/lang/String;Ljava/lang/String;I)I
-HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryEvents(JJLjava/lang/String;)Landroid/app/usage/UsageEvents;
-HSPLandroid/app/usage/IUsageStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/IUsageStatsManager;
-HSPLandroid/app/usage/StorageStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/StorageStats;
-HSPLandroid/app/usage/StorageStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/usage/StorageStats;->getAppBytes()J
-HSPLandroid/app/usage/StorageStats;->getCacheBytes()J
-HSPLandroid/app/usage/StorageStats;->getDataBytes()J
-HSPLandroid/app/usage/StorageStatsManager;-><init>(Landroid/content/Context;Landroid/app/usage/IStorageStatsManager;)V
-HSPLandroid/app/usage/StorageStatsManager;->queryStatsForPackage(Ljava/util/UUID;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/app/usage/StorageStats;
-HSPLandroid/app/usage/UsageEvents$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/UsageEvents;
-HSPLandroid/app/usage/UsageEvents$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/usage/UsageEvents$Event;-><init>()V
-HSPLandroid/app/usage/UsageEvents$Event;->getClassName()Ljava/lang/String;
-HSPLandroid/app/usage/UsageEvents$Event;->getEventType()I
-HSPLandroid/app/usage/UsageEvents$Event;->getPackageName()Ljava/lang/String;
-HSPLandroid/app/usage/UsageEvents$Event;->getTimeStamp()J
-HSPLandroid/app/usage/UsageEvents;-><init>(Landroid/os/Parcel;)V
-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;+]Landroid/os/Bundle;Landroid/os/Bundle;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;]Landroid/os/Parcel;Landroid/os/Parcel;]Ljava/util/Set;Landroid/util/MapCollections$KeySet;
-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;->getPackageName()Ljava/lang/String;
-HSPLandroid/app/usage/UsageStats;->update(Ljava/lang/String;JII)V
-HSPLandroid/app/usage/UsageStatsManager;-><init>(Landroid/content/Context;Landroid/app/usage/IUsageStatsManager;)V
-HSPLandroid/app/usage/UsageStatsManager;->queryEvents(JJ)Landroid/app/usage/UsageEvents;
-HSPLandroid/app/usage/UsageStatsManager;->queryUsageStats(IJJ)Ljava/util/List;
-HSPLandroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda3;-><init>()V
-HSPLandroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda5;-><init>()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;->getInstalledProvidersForPackage(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/util/List;
-HSPLandroid/appwidget/AppWidgetManager;->getInstalledProvidersForProfile(ILandroid/os/UserHandle;Ljava/lang/String;)Ljava/util/List;
-HSPLandroid/appwidget/AppWidgetManager;->getInstance(Landroid/content/Context;)Landroid/appwidget/AppWidgetManager;
-HSPLandroid/appwidget/AppWidgetManager;->isBoundWidgetPackage(Ljava/lang/String;I)Z
-HSPLandroid/appwidget/AppWidgetManager;->lambda$new$0(Landroid/appwidget/AppWidgetProviderInfo;)Landroid/content/ComponentName;
-HSPLandroid/appwidget/AppWidgetManager;->lambda$new$1(Landroid/content/ComponentName;)Z
-HSPLandroid/appwidget/AppWidgetManager;->lambda$new$2(I)[Landroid/content/ComponentName;
-HSPLandroid/appwidget/AppWidgetManager;->lambda$new$3()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;
-HSPLandroid/appwidget/AppWidgetProviderInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/appwidget/AppWidgetProviderInfo;->getProfile()Landroid/os/UserHandle;
-HSPLandroid/appwidget/AppWidgetProviderInfo;->updateDimensions(Landroid/util/DisplayMetrics;)V
-HSPLandroid/appwidget/AppWidgetProviderInfo;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/companion/ICompanionDeviceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/companion/ICompanionDeviceManager;
-HSPLandroid/companion/virtual/IVirtualDeviceManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/companion/virtual/IVirtualDeviceManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/companion/virtual/IVirtualDeviceManager$Stub$Proxy;->getDeviceIdForDisplayId(I)I
-HSPLandroid/companion/virtual/IVirtualDeviceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/companion/virtual/IVirtualDeviceManager;
-HSPLandroid/companion/virtual/VirtualDeviceManager;-><init>(Landroid/companion/virtual/IVirtualDeviceManager;Landroid/content/Context;)V
-HSPLandroid/companion/virtual/VirtualDeviceManager;->getDeviceIdForDisplayId(I)I
-HSPLandroid/companion/virtual/flags/FeatureFlagsImpl;-><init>()V
-HSPLandroid/companion/virtual/flags/FeatureFlagsImpl;->enableNativeVdm()Z
-HSPLandroid/companion/virtual/flags/Flags;-><clinit>()V
-HSPLandroid/companion/virtual/flags/Flags;->enableNativeVdm()Z+]Landroid/companion/virtual/flags/FeatureFlags;Landroid/companion/virtual/flags/FeatureFlagsImpl;
-HSPLandroid/compat/Compatibility$BehaviorChangeDelegate;->isChangeEnabled(J)Z
-HSPLandroid/compat/Compatibility;->isChangeEnabled(J)Z
-HSPLandroid/compat/Compatibility;->setBehaviorChangeDelegate(Landroid/compat/Compatibility$BehaviorChangeDelegate;)V
-HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->cancelSync(Landroid/content/ISyncContext;)V
-HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->isCallerSystem()Z
-HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->startSync(Landroid/content/ISyncContext;Ljava/lang/String;Landroid/accounts/Account;Landroid/os/Bundle;)V
-HSPLandroid/content/AbstractThreadedSyncAdapter$SyncThread;-><init>(Landroid/content/AbstractThreadedSyncAdapter;Ljava/lang/String;Landroid/content/SyncContext;Ljava/lang/String;Landroid/accounts/Account;Landroid/os/Bundle;)V
-HSPLandroid/content/AbstractThreadedSyncAdapter$SyncThread;->isCanceled()Z
-HSPLandroid/content/AbstractThreadedSyncAdapter$SyncThread;->run()V
-HSPLandroid/content/AbstractThreadedSyncAdapter;->-$$Nest$mtoSyncKey(Landroid/content/AbstractThreadedSyncAdapter;Landroid/accounts/Account;)Landroid/accounts/Account;
-HSPLandroid/content/AbstractThreadedSyncAdapter;-><init>(Landroid/content/Context;Z)V
-HSPLandroid/content/AbstractThreadedSyncAdapter;-><init>(Landroid/content/Context;ZZ)V
-HSPLandroid/content/AbstractThreadedSyncAdapter;->getContext()Landroid/content/Context;
-HSPLandroid/content/AbstractThreadedSyncAdapter;->getSyncAdapterBinder()Landroid/os/IBinder;
-HSPLandroid/content/AbstractThreadedSyncAdapter;->onSyncCanceled()V
-HSPLandroid/content/AbstractThreadedSyncAdapter;->toSyncKey(Landroid/accounts/Account;)Landroid/accounts/Account;
-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
-HSPLandroid/content/AttributionSource$1;-><init>()V
-HSPLandroid/content/AttributionSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/AttributionSource;
-HSPLandroid/content/AttributionSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/AttributionSource$ScopedParcelState;-><init>(Landroid/content/AttributionSource;)V
-HSPLandroid/content/AttributionSource$ScopedParcelState;->close()V
-HSPLandroid/content/AttributionSource$ScopedParcelState;->getParcel()Landroid/os/Parcel;
-HSPLandroid/content/AttributionSource;-><clinit>()V
-HSPLandroid/content/AttributionSource;-><init>(IILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;[Ljava/lang/String;ILandroid/content/AttributionSource;)V
-HSPLandroid/content/AttributionSource;-><init>(IILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;[Ljava/lang/String;Landroid/content/AttributionSource;)V
-HSPLandroid/content/AttributionSource;-><init>(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;ILandroid/content/AttributionSource;)V
-HSPLandroid/content/AttributionSource;-><init>(ILjava/lang/String;Ljava/lang/String;)V
-HSPLandroid/content/AttributionSource;-><init>(ILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;)V
-HSPLandroid/content/AttributionSource;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/util/Set;Landroid/content/AttributionSource;)V
-HSPLandroid/content/AttributionSource;-><init>(Landroid/content/AttributionSource;Landroid/content/AttributionSource;)V
-HSPLandroid/content/AttributionSource;-><init>(Landroid/content/AttributionSourceState;)V
-HSPLandroid/content/AttributionSource;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/AttributionSource;->asScopedParcelState()Landroid/content/AttributionSource$ScopedParcelState;
-HSPLandroid/content/AttributionSource;->asState()Landroid/content/AttributionSourceState;
-HSPLandroid/content/AttributionSource;->checkCallingPid()Z
-HSPLandroid/content/AttributionSource;->checkCallingUid()Z
-HSPLandroid/content/AttributionSource;->enforceCallingPid()V
-HSPLandroid/content/AttributionSource;->enforceCallingUid()V
-HSPLandroid/content/AttributionSource;->getAttributionTag()Ljava/lang/String;
-HSPLandroid/content/AttributionSource;->getNext()Landroid/content/AttributionSource;
-HSPLandroid/content/AttributionSource;->getPackageName()Ljava/lang/String;
-HSPLandroid/content/AttributionSource;->getRenouncedPermissions()Ljava/util/Set;
-HSPLandroid/content/AttributionSource;->getToken()Landroid/os/IBinder;
-HSPLandroid/content/AttributionSource;->getUid()I
-HSPLandroid/content/AttributionSource;->myAttributionSource()Landroid/content/AttributionSource;
-HSPLandroid/content/AttributionSource;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/AttributionSourceState$1;-><init>()V
-HSPLandroid/content/AttributionSourceState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/AttributionSourceState;
-HSPLandroid/content/AttributionSourceState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/AttributionSourceState$1;->newArray(I)[Landroid/content/AttributionSourceState;
-HSPLandroid/content/AttributionSourceState$1;->newArray(I)[Ljava/lang/Object;
-HSPLandroid/content/AttributionSourceState;-><clinit>()V
-HSPLandroid/content/AttributionSourceState;-><init>()V
-HSPLandroid/content/AttributionSourceState;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/content/AttributionSourceState;->writeToParcel(Landroid/os/Parcel;I)V
-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;->isAutofillDisabledLocked(Landroid/content/ComponentName;)Z
-HSPLandroid/content/BroadcastReceiver$PendingResult$1;-><init>(Landroid/content/BroadcastReceiver$PendingResult;Landroid/app/IActivityManager;)V
-HSPLandroid/content/BroadcastReceiver$PendingResult$1;->run()V
-HSPLandroid/content/BroadcastReceiver$PendingResult;-><init>(ILjava/lang/String;Landroid/os/Bundle;IZZLandroid/os/IBinder;II)V
-HSPLandroid/content/BroadcastReceiver$PendingResult;-><init>(ILjava/lang/String;Landroid/os/Bundle;IZZZLandroid/os/IBinder;IIILjava/lang/String;)V
-HSPLandroid/content/BroadcastReceiver$PendingResult;->checkSynchronousHint()V
-HSPLandroid/content/BroadcastReceiver$PendingResult;->finish()V
-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;->checkSynchronousHint()V
-HSPLandroid/content/BroadcastReceiver;->getDebugUnregister()Z
-HSPLandroid/content/BroadcastReceiver;->getPendingResult()Landroid/content/BroadcastReceiver$PendingResult;
-HSPLandroid/content/BroadcastReceiver;->getResultCode()I
-HSPLandroid/content/BroadcastReceiver;->getResultExtras(Z)Landroid/os/Bundle;
-HSPLandroid/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
-HSPLandroid/content/ClipData$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ClipData;
-HSPLandroid/content/ClipData$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/ClipData$Item;-><init>(Landroid/content/Intent;)V
-HSPLandroid/content/ClipData$Item;->getText()Ljava/lang/CharSequence;
-HSPLandroid/content/ClipData;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/ClipData;-><init>(Ljava/lang/CharSequence;[Ljava/lang/String;Landroid/content/ClipData$Item;)V
-HSPLandroid/content/ClipData;->getDescription()Landroid/content/ClipDescription;
-HSPLandroid/content/ClipData;->getItemAt(I)Landroid/content/ClipData$Item;
-HSPLandroid/content/ClipData;->getItemCount()I
-HSPLandroid/content/ClipData;->isStyledText()Z
-HSPLandroid/content/ClipData;->newIntent(Ljava/lang/CharSequence;Landroid/content/Intent;)Landroid/content/ClipData;
-HSPLandroid/content/ClipData;->prepareToLeaveProcess(ZI)V
-HSPLandroid/content/ClipData;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/ClipDescription;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/ClipDescription;-><init>(Ljava/lang/CharSequence;[Ljava/lang/String;)V
-HSPLandroid/content/ClipDescription;->compareMimeTypes(Ljava/lang/String;Ljava/lang/String;)Z
-HSPLandroid/content/ClipDescription;->confidencesToBundle()Landroid/os/Bundle;
-HSPLandroid/content/ClipDescription;->readBundleToConfidences(Landroid/os/Bundle;)V
-HSPLandroid/content/ClipDescription;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/ClipboardManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-HSPLandroid/content/ClipboardManager;->addPrimaryClipChangedListener(Landroid/content/ClipboardManager$OnPrimaryClipChangedListener;)V
-HSPLandroid/content/ClipboardManager;->getPrimaryClip()Landroid/content/ClipData;
-HSPLandroid/content/ClipboardManager;->getPrimaryClipDescription()Landroid/content/ClipDescription;
-HSPLandroid/content/ComponentCallbacksController$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-HSPLandroid/content/ComponentCallbacksController$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-HSPLandroid/content/ComponentCallbacksController$$ExternalSyntheticLambda2;-><init>(Landroid/content/res/Configuration;)V
-HSPLandroid/content/ComponentCallbacksController$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V
-HSPLandroid/content/ComponentCallbacksController;-><init>()V
-HSPLandroid/content/ComponentCallbacksController;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V
-HSPLandroid/content/ComponentCallbacksController;->dispatchLowMemory()V
-HSPLandroid/content/ComponentCallbacksController;->dispatchTrimMemory(I)V
-HSPLandroid/content/ComponentCallbacksController;->forAllComponentCallbacks(Ljava/util/function/Consumer;)V
-HSPLandroid/content/ComponentCallbacksController;->lambda$dispatchConfigurationChanged$0(Landroid/content/res/Configuration;Landroid/content/ComponentCallbacks;)V
-HSPLandroid/content/ComponentCallbacksController;->lambda$dispatchTrimMemory$1(ILandroid/content/ComponentCallbacks;)V
-HSPLandroid/content/ComponentCallbacksController;->registerCallbacks(Landroid/content/ComponentCallbacks;)V
-HSPLandroid/content/ComponentCallbacksController;->unregisterCallbacks(Landroid/content/ComponentCallbacks;)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
-HSPLandroid/content/ComponentName;->appendShortString(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/content/ComponentName;->compareTo(Landroid/content/ComponentName;)I
-HSPLandroid/content/ComponentName;->createRelative(Ljava/lang/String;Ljava/lang/String;)Landroid/content/ComponentName;
-HSPLandroid/content/ComponentName;->equals(Ljava/lang/Object;)Z
-HSPLandroid/content/ComponentName;->flattenToShortString()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
-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;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;
-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$ContentProtectionOptions$$ExternalSyntheticLambda1;-><init>()V
-HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object;
-HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda2;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;->-$$Nest$smcreateFromParcel(Landroid/os/Parcel;)Landroid/content/ContentCaptureOptions$ContentProtectionOptions;
-HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;-><init>(ZILjava/util/List;Ljava/util/List;I)V
-HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ContentCaptureOptions$ContentProtectionOptions;
-HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;->createGroupsFromParcel(Landroid/os/Parcel;)Ljava/util/List;+]Ljava/util/stream/Stream;Ljava/util/stream/IntPipeline$4;,Ljava/util/stream/ReferencePipeline$11;,Ljava/util/stream/ReferencePipeline$15;,Ljava/util/stream/IntPipeline$1;]Ljava/util/stream/IntStream;Ljava/util/stream/IntPipeline$Head;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;->lambda$createGroupsFromParcel$0(I)Ljava/util/ArrayList;
-HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;->writeToParcel(Landroid/os/Parcel;)V
-HSPLandroid/content/ContentCaptureOptions;-><init>(IIIIILandroid/util/ArraySet;)V
-HSPLandroid/content/ContentCaptureOptions;-><init>(ZIIIIIZZLandroid/content/ContentCaptureOptions$ContentProtectionOptions;Landroid/util/ArraySet;)V
-HSPLandroid/content/ContentCaptureOptions;->isWhitelisted(Landroid/content/Context;)Z
-HSPLandroid/content/ContentCaptureOptions;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/ContentProvider$Transport;-><init>(Landroid/content/ContentProvider;)V
-HSPLandroid/content/ContentProvider$Transport;->call(Landroid/content/AttributionSource;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
-HSPLandroid/content/ContentProvider$Transport;->createCancellationSignal()Landroid/os/ICancellationSignal;
-HSPLandroid/content/ContentProvider$Transport;->delete(Landroid/content/AttributionSource;Landroid/net/Uri;Landroid/os/Bundle;)I
-HSPLandroid/content/ContentProvider$Transport;->enforceFilePermission(Landroid/content/AttributionSource;Landroid/net/Uri;Ljava/lang/String;)V
-HSPLandroid/content/ContentProvider$Transport;->enforceReadPermission(Landroid/content/AttributionSource;Landroid/net/Uri;)I
-HSPLandroid/content/ContentProvider$Transport;->enforceWritePermission(Landroid/content/AttributionSource;Landroid/net/Uri;)I
-HSPLandroid/content/ContentProvider$Transport;->getContentProvider()Landroid/content/ContentProvider;
-HSPLandroid/content/ContentProvider$Transport;->getProviderName()Ljava/lang/String;
-HSPLandroid/content/ContentProvider$Transport;->insert(Landroid/content/AttributionSource;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri;
-HSPLandroid/content/ContentProvider$Transport;->openTypedAssetFile(Landroid/content/AttributionSource;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/content/res/AssetFileDescriptor;
-HSPLandroid/content/ContentProvider$Transport;->query(Landroid/content/AttributionSource;Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/database/Cursor;
-HSPLandroid/content/ContentProvider$Transport;->update(Landroid/content/AttributionSource;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)I
-HSPLandroid/content/ContentProvider;->-$$Nest$fgetmTransport(Landroid/content/ContentProvider;)Landroid/content/ContentProvider$Transport;
-HSPLandroid/content/ContentProvider;->-$$Nest$mmaybeGetUriWithoutUserId(Landroid/content/ContentProvider;Landroid/net/Uri;)Landroid/net/Uri;
-HSPLandroid/content/ContentProvider;->-$$Nest$msetCallingAttributionSource(Landroid/content/ContentProvider;Landroid/content/AttributionSource;)Landroid/content/AttributionSource;
-HSPLandroid/content/ContentProvider;->-$$Nest$mvalidateIncomingAuthority(Landroid/content/ContentProvider;Ljava/lang/String;)V
-HSPLandroid/content/ContentProvider;->-$$Nest$smtraceBegin(JLjava/lang/String;Ljava/lang/String;)V
-HSPLandroid/content/ContentProvider;-><init>()V
-HSPLandroid/content/ContentProvider;->applyBatch(Ljava/lang/String;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;->checkPermission(Ljava/lang/String;Landroid/content/AttributionSource;)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
-HSPLandroid/content/ContentProvider;->deniedAccessSystemUserOnlyProvider(IZ)Z
-HSPLandroid/content/ContentProvider;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-HSPLandroid/content/ContentProvider;->enforceReadPermissionInner(Landroid/net/Uri;Landroid/content/AttributionSource;)I
-HSPLandroid/content/ContentProvider;->enforceWritePermissionInner(Landroid/net/Uri;Landroid/content/AttributionSource;)I
-HSPLandroid/content/ContentProvider;->getAuthorityWithoutUserId(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/content/ContentProvider;->getCallingAttributionSource()Landroid/content/AttributionSource;
-HSPLandroid/content/ContentProvider;->getCallingPackage()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;
-HSPLandroid/content/ContentProvider;->getReadPermission()Ljava/lang/String;
-HSPLandroid/content/ContentProvider;->getUriWithoutUserId(Landroid/net/Uri;)Landroid/net/Uri;
-HSPLandroid/content/ContentProvider;->getUserIdFromAuthority(Ljava/lang/String;I)I
-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;->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
-HSPLandroid/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;->setAuthorities(Ljava/lang/String;)V
-HSPLandroid/content/ContentProvider;->setCallingAttributionSource(Landroid/content/AttributionSource;)Landroid/content/AttributionSource;
-HSPLandroid/content/ContentProvider;->setPathPermissions([Landroid/content/pm/PathPermission;)V
-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;->traceBegin(JLjava/lang/String;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;-><init>(Landroid/content/ContentProviderClient;Landroid/database/Cursor;)V
-HSPLandroid/content/ContentProviderClient$CursorWrapperInner;->close()V
-HSPLandroid/content/ContentProviderClient$CursorWrapperInner;->finalize()V
-HSPLandroid/content/ContentProviderClient;-><init>(Landroid/content/ContentResolver;Landroid/content/IContentProvider;Ljava/lang/String;Z)V
-HSPLandroid/content/ContentProviderClient;->afterRemote()V
-HSPLandroid/content/ContentProviderClient;->applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
-HSPLandroid/content/ContentProviderClient;->applyBatch(Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
-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
-HSPLandroid/content/ContentProviderClient;->finalize()V
-HSPLandroid/content/ContentProviderClient;->getLocalContentProvider()Landroid/content/ContentProvider;
-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/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$Builder;->assertSelectionAllowed()V
-HSPLandroid/content/ContentProviderOperation$Builder;->assertValuesAllowed()V
-HSPLandroid/content/ContentProviderOperation$Builder;->build()Landroid/content/ContentProviderOperation;
-HSPLandroid/content/ContentProviderOperation$Builder;->ensureSelectionArgs()V
-HSPLandroid/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;
-HSPLandroid/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;
-HSPLandroid/content/ContentProviderOperation$Builder;->withValues(Landroid/content/ContentValues;)Landroid/content/ContentProviderOperation$Builder;
-HSPLandroid/content/ContentProviderOperation;-><init>(Landroid/content/ContentProviderOperation$Builder;)V
-HSPLandroid/content/ContentProviderOperation;->apply(Landroid/content/ContentProvider;[Landroid/content/ContentProviderResult;I)Landroid/content/ContentProviderResult;
-HSPLandroid/content/ContentProviderOperation;->applyInternal(Landroid/content/ContentProvider;[Landroid/content/ContentProviderResult;I)Landroid/content/ContentProviderResult;+]Landroid/content/ContentProviderOperation;Landroid/content/ContentProviderOperation;
-HSPLandroid/content/ContentProviderOperation;->getUri()Landroid/net/Uri;
-HSPLandroid/content/ContentProviderOperation;->isInsert()Z
-HSPLandroid/content/ContentProviderOperation;->isReadOperation()Z
-HSPLandroid/content/ContentProviderOperation;->isWriteOperation()Z
-HSPLandroid/content/ContentProviderOperation;->isYieldAllowed()Z
-HSPLandroid/content/ContentProviderOperation;->newAssertQuery(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;
-HSPLandroid/content/ContentProviderOperation;->newDelete(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;
-HSPLandroid/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;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/content/ContentValues;Landroid/content/ContentValues;
-HSPLandroid/content/ContentProviderOperation;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/ContentProviderProxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/content/ContentProviderProxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/content/ContentProviderProxy;->call(Landroid/content/AttributionSource;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
-HSPLandroid/content/ContentProviderProxy;->createCancellationSignal()Landroid/os/ICancellationSignal;
-HSPLandroid/content/ContentProviderProxy;->delete(Landroid/content/AttributionSource;Landroid/net/Uri;Landroid/os/Bundle;)I
-HSPLandroid/content/ContentProviderProxy;->insert(Landroid/content/AttributionSource;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri;
-HSPLandroid/content/ContentProviderProxy;->openTypedAssetFile(Landroid/content/AttributionSource;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/content/res/AssetFileDescriptor;
-HSPLandroid/content/ContentProviderProxy;->query(Landroid/content/AttributionSource;Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/database/Cursor;+]Landroid/content/AttributionSource;Landroid/content/AttributionSource;]Landroid/os/Parcelable$Creator;Landroid/database/BulkCursorDescriptor$1;]Landroid/database/IBulkCursor;Landroid/database/BulkCursorProxy;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/ICancellationSignal;Landroid/os/ICancellationSignal$Stub$Proxy;]Landroid/database/BulkCursorToCursorAdaptor;Landroid/database/BulkCursorToCursorAdaptor;]Landroid/database/IContentObserver;Landroid/database/ContentObserver$Transport;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;,Landroid/net/Uri$StringUri;
-HSPLandroid/content/ContentProviderProxy;->update(Landroid/content/AttributionSource;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)I
-HSPLandroid/content/ContentProviderResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ContentProviderResult;
-HSPLandroid/content/ContentProviderResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/ContentProviderResult$1;->newArray(I)[Landroid/content/ContentProviderResult;
-HSPLandroid/content/ContentProviderResult$1;->newArray(I)[Ljava/lang/Object;
-HSPLandroid/content/ContentProviderResult;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/ContentResolver$2;-><init>(Landroid/content/SyncStatusObserver;)V
-HSPLandroid/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$ParcelFileDescriptorInner;-><init>(Landroid/content/ContentResolver;Landroid/os/ParcelFileDescriptor;Landroid/content/IContentProvider;)V
-HSPLandroid/content/ContentResolver$ParcelFileDescriptorInner;->releaseResources()V
-HSPLandroid/content/ContentResolver$ResultListener;-><init>()V
-HSPLandroid/content/ContentResolver$ResultListener;->onResult(Landroid/os/Bundle;)V
-HSPLandroid/content/ContentResolver$ResultListener;->waitForResult(J)V
-HSPLandroid/content/ContentResolver$StringResultListener;->getResultFromBundle(Landroid/os/Bundle;)Ljava/lang/Object;
-HSPLandroid/content/ContentResolver$StringResultListener;->getResultFromBundle(Landroid/os/Bundle;)Ljava/lang/String;
-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;
-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;->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
-HSPLandroid/content/ContentResolver;->delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I
-HSPLandroid/content/ContentResolver;->getAttributionSource()Landroid/content/AttributionSource;
-HSPLandroid/content/ContentResolver;->getAttributionTag()Ljava/lang/String;
-HSPLandroid/content/ContentResolver;->getContentService()Landroid/content/IContentService;
-HSPLandroid/content/ContentResolver;->getIsSyncable(Landroid/accounts/Account;Ljava/lang/String;)I
-HSPLandroid/content/ContentResolver;->getMasterSyncAutomatically()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;->getResourceId(Landroid/net/Uri;)Landroid/content/ContentResolver$OpenResourceIdResult;
-HSPLandroid/content/ContentResolver;->getSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;)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
-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/content/res/AssetFileDescriptor;
-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;
-HSPLandroid/content/ContentResolver;->openInputStream(Landroid/net/Uri;)Ljava/io/InputStream;
-HSPLandroid/content/ContentResolver;->openTypedAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor;
-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
-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
-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
-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
-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;-><init>()V
-HSPLandroid/content/ContentValues;-><init>(I)V
-HSPLandroid/content/ContentValues;-><init>(Landroid/content/ContentValues;)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
-HSPLandroid/content/ContentValues;->getAsInteger(Ljava/lang/String;)Ljava/lang/Integer;
-HSPLandroid/content/ContentValues;->getAsLong(Ljava/lang/String;)Ljava/lang/Long;
-HSPLandroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/content/ContentValues;->getValues()Landroid/util/ArrayMap;
-HSPLandroid/content/ContentValues;->isEmpty()Z
-HSPLandroid/content/ContentValues;->isSupportedValue(Ljava/lang/Object;)Z
-HSPLandroid/content/ContentValues;->keySet()Ljava/util/Set;
-HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Boolean;)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
-HSPLandroid/content/ContentValues;->put(Ljava/lang/String;[B)V
-HSPLandroid/content/ContentValues;->putAll(Landroid/content/ContentValues;)V
-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;->getColor(I)I
-HSPLandroid/content/Context;->getColorStateList(I)Landroid/content/res/ColorStateList;
-HSPLandroid/content/Context;->getDrawable(I)Landroid/graphics/drawable/Drawable;
-HSPLandroid/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;
-HSPLandroid/content/Context;->getToken(Landroid/content/Context;)Landroid/os/IBinder;
-HSPLandroid/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;+]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/Context;missing_types
-HSPLandroid/content/Context;->obtainStyledAttributes([I)Landroid/content/res/TypedArray;
-HSPLandroid/content/Context;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V
-HSPLandroid/content/Context;->unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V
-HSPLandroid/content/ContextParams$Builder;-><init>()V
-HSPLandroid/content/ContextParams$Builder;-><init>(Landroid/content/ContextParams;)V
-HSPLandroid/content/ContextParams$Builder;->build()Landroid/content/ContextParams;
-HSPLandroid/content/ContextParams$Builder;->setAttributionTag(Ljava/lang/String;)Landroid/content/ContextParams$Builder;
-HSPLandroid/content/ContextParams;->-$$Nest$fgetmAttributionTag(Landroid/content/ContextParams;)Ljava/lang/String;
-HSPLandroid/content/ContextParams;->-$$Nest$fgetmNext(Landroid/content/ContextParams;)Landroid/content/AttributionSource;
-HSPLandroid/content/ContextParams;->-$$Nest$fgetmRenouncedPermissions(Landroid/content/ContextParams;)Ljava/util/Set;
-HSPLandroid/content/ContextParams;-><clinit>()V
-HSPLandroid/content/ContextParams;->getAttributionTag()Ljava/lang/String;
-HSPLandroid/content/ContextParams;->getNextAttributionSource()Landroid/content/AttributionSource;
-HSPLandroid/content/ContextParams;->getRenouncedPermissions()Ljava/util/Set;
-HSPLandroid/content/ContextParams;->isRenouncedPermission(Ljava/lang/String;)Z
-HSPLandroid/content/ContextParams;->shouldRegisterAttributionSource()Z
-HSPLandroid/content/ContextWrapper;-><init>(Landroid/content/Context;)V
-HSPLandroid/content/ContextWrapper;->attachBaseContext(Landroid/content/Context;)V
-HSPLandroid/content/ContextWrapper;->bindIsolatedService(Landroid/content/Intent;ILjava/lang/String;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z
-HSPLandroid/content/ContextWrapper;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
-HSPLandroid/content/ContextWrapper;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/UserHandle;)Z
-HSPLandroid/content/ContextWrapper;->canLoadUnsafeResources()Z
-HSPLandroid/content/ContextWrapper;->checkCallingOrSelfPermission(Ljava/lang/String;)I
-HSPLandroid/content/ContextWrapper;->checkCallingPermission(Ljava/lang/String;)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;->createAttributionContext(Ljava/lang/String;)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;->createPackageContext(Ljava/lang/String;I)Landroid/content/Context;
-HSPLandroid/content/ContextWrapper;->createPackageContextAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/Context;
-HSPLandroid/content/ContextWrapper;->createWindowContext(Landroid/view/Display;ILandroid/os/Bundle;)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
-HSPLandroid/content/ContextWrapper;->enforceCallingOrSelfPermission(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/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;->getActivityToken()Landroid/os/IBinder;
-HSPLandroid/content/ContextWrapper;->getApplicationContext()Landroid/content/Context;
-HSPLandroid/content/ContextWrapper;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;+]Landroid/content/Context;missing_types
-HSPLandroid/content/ContextWrapper;->getAssets()Landroid/content/res/AssetManager;
-HSPLandroid/content/ContextWrapper;->getAttributionSource()Landroid/content/AttributionSource;
-HSPLandroid/content/ContextWrapper;->getAttributionTag()Ljava/lang/String;
-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;->getContentCaptureOptions()Landroid/content/ContentCaptureOptions;
-HSPLandroid/content/ContextWrapper;->getContentResolver()Landroid/content/ContentResolver;+]Landroid/content/Context;missing_types
-HSPLandroid/content/ContextWrapper;->getDataDir()Ljava/io/File;
-HSPLandroid/content/ContextWrapper;->getDatabasePath(Ljava/lang/String;)Ljava/io/File;
-HSPLandroid/content/ContextWrapper;->getDeviceId()I
-HSPLandroid/content/ContextWrapper;->getDir(Ljava/lang/String;I)Ljava/io/File;
-HSPLandroid/content/ContextWrapper;->getDisplay()Landroid/view/Display;
-HSPLandroid/content/ContextWrapper;->getDisplayId()I+]Landroid/content/Context;missing_types
-HSPLandroid/content/ContextWrapper;->getDisplayNoVerify()Landroid/view/Display;
-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;->getFileStreamPath(Ljava/lang/String;)Ljava/io/File;
-HSPLandroid/content/ContextWrapper;->getFilesDir()Ljava/io/File;
-HSPLandroid/content/ContextWrapper;->getMainExecutor()Ljava/util/concurrent/Executor;
-HSPLandroid/content/ContextWrapper;->getMainLooper()Landroid/os/Looper;
-HSPLandroid/content/ContextWrapper;->getMainThreadHandler()Landroid/os/Handler;
-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;+]Landroid/content/Context;missing_types
-HSPLandroid/content/ContextWrapper;->getPackageName()Ljava/lang/String;
-HSPLandroid/content/ContextWrapper;->getPackageResourcePath()Ljava/lang/String;
-HSPLandroid/content/ContextWrapper;->getResources()Landroid/content/res/Resources;
-HSPLandroid/content/ContextWrapper;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;+]Landroid/content/Context;missing_types
-HSPLandroid/content/ContextWrapper;->getSharedPreferencesPath(Ljava/lang/String;)Ljava/io/File;
-HSPLandroid/content/ContextWrapper;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;+]Landroid/content/Context;missing_types
-HSPLandroid/content/ContextWrapper;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String;+]Landroid/content/Context;missing_types
-HSPLandroid/content/ContextWrapper;->getTheme()Landroid/content/res/Resources$Theme;+]Landroid/content/Context;missing_types
-HSPLandroid/content/ContextWrapper;->getUser()Landroid/os/UserHandle;
-HSPLandroid/content/ContextWrapper;->getUserId()I
-HSPLandroid/content/ContextWrapper;->getWindowContextToken()Landroid/os/IBinder;
-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;->isUiContext()Z
-HSPLandroid/content/ContextWrapper;->openFileInput(Ljava/lang/String;)Ljava/io/FileInputStream;
-HSPLandroid/content/ContextWrapper;->openFileOutput(Ljava/lang/String;I)Ljava/io/FileOutputStream;
-HSPLandroid/content/ContextWrapper;->openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;
-HSPLandroid/content/ContextWrapper;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V
-HSPLandroid/content/ContextWrapper;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
-HSPLandroid/content/ContextWrapper;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;I)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;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;I)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;->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;->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
-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
-HSPLandroid/content/ContextWrapper;->setTheme(I)V
-HSPLandroid/content/ContextWrapper;->startActivity(Landroid/content/Intent;)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;->unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V
-HSPLandroid/content/ContextWrapper;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
-HSPLandroid/content/ContextWrapper;->updateDeviceId(I)V
-HSPLandroid/content/ContextWrapper;->updateDisplay(I)V
-HSPLandroid/content/IClipboard$Stub$Proxy;->addPrimaryClipChangedListener(Landroid/content/IOnPrimaryClipChangedListener;Ljava/lang/String;Ljava/lang/String;II)V
-HSPLandroid/content/IClipboard$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/content/IContentService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-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;->asBinder()Landroid/os/IBinder;
-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
-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
-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
-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;->asInterface(Landroid/os/IBinder;)Landroid/content/IContentService;
-HSPLandroid/content/IIntentReceiver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-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/IIntentReceiver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/content/IIntentSender$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/content/IIntentSender$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/content/IIntentSender$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IIntentSender;
-HSPLandroid/content/IOnPrimaryClipChangedListener$Stub;->asBinder()Landroid/os/IBinder;
-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;->asInterface(Landroid/os/IBinder;)Landroid/content/IRestrictionsManager;
-HSPLandroid/content/ISyncAdapter$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/content/ISyncAdapter$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/content/ISyncContext$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/content/ISyncContext$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/content/ISyncContext$Stub$Proxy;->onFinished(Landroid/content/SyncResult;)V
-HSPLandroid/content/ISyncContext$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/ISyncContext;
-HSPLandroid/content/ISyncStatusObserver$Stub;-><init>()V
-HSPLandroid/content/ISyncStatusObserver$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/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$FilterComparison;-><init>(Landroid/content/Intent;)V
-HSPLandroid/content/Intent$FilterComparison;->equals(Ljava/lang/Object;)Z
-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
-HSPLandroid/content/Intent;-><init>(Landroid/content/Intent;I)V
-HSPLandroid/content/Intent;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/Intent;-><init>(Ljava/lang/String;)V
-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;+]Ljava/lang/String;Ljava/lang/String;]Landroid/util/ArraySet;Landroid/util/ArraySet;
-HSPLandroid/content/Intent;->addFlags(I)Landroid/content/Intent;
-HSPLandroid/content/Intent;->cloneFilter()Landroid/content/Intent;
-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;
-HSPLandroid/content/Intent;->getData()Landroid/net/Uri;
-HSPLandroid/content/Intent;->getDataString()Ljava/lang/String;
-HSPLandroid/content/Intent;->getExtras()Landroid/os/Bundle;
-HSPLandroid/content/Intent;->getFlags()I
-HSPLandroid/content/Intent;->getIdentifier()Ljava/lang/String;
-HSPLandroid/content/Intent;->getIntArrayExtra(Ljava/lang/String;)[I
-HSPLandroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I
-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;->getParcelableExtra(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
-HSPLandroid/content/Intent;->getScheme()Ljava/lang/String;
-HSPLandroid/content/Intent;->getSelector()Landroid/content/Intent;
-HSPLandroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
-HSPLandroid/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;
-HSPLandroid/content/Intent;->hasCategory(Ljava/lang/String;)Z
-HSPLandroid/content/Intent;->hasExtra(Ljava/lang/String;)Z
-HSPLandroid/content/Intent;->hasFileDescriptors()Z
-HSPLandroid/content/Intent;->hasWebURI()Z
-HSPLandroid/content/Intent;->isImageCaptureIntent()Z
-HSPLandroid/content/Intent;->isWebIntent()Z
-HSPLandroid/content/Intent;->makeMainActivity(Landroid/content/ComponentName;)Landroid/content/Intent;
-HSPLandroid/content/Intent;->migrateExtraStreamToClipData(Landroid/content/Context;)Z
-HSPLandroid/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;->parseUriInternal(Ljava/lang/String;I)Landroid/content/Intent;
-HSPLandroid/content/Intent;->prepareToEnterProcess(ILandroid/content/AttributionSource;)V
-HSPLandroid/content/Intent;->prepareToEnterProcess(ZLandroid/content/AttributionSource;)V
-HSPLandroid/content/Intent;->prepareToLeaveProcess(Landroid/content/Context;)V
-HSPLandroid/content/Intent;->prepareToLeaveProcess(Z)V
-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;->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+]Ljava/lang/String;Ljava/lang/String;]Landroid/os/Parcelable$Creator;Landroid/net/Uri$1;,Landroid/graphics/Rect$1;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/content/Intent;Landroid/content/Intent;
-HSPLandroid/content/Intent;->removeCategory(Ljava/lang/String;)V+]Landroid/util/ArraySet;Landroid/util/ArraySet;
-HSPLandroid/content/Intent;->removeExtra(Ljava/lang/String;)V
-HSPLandroid/content/Intent;->replaceExtras(Landroid/os/Bundle;)Landroid/content/Intent;
-HSPLandroid/content/Intent;->resolveActivity(Landroid/content/pm/PackageManager;)Landroid/content/ComponentName;
-HSPLandroid/content/Intent;->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;
-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;
-HSPLandroid/content/Intent;->setClassName(Landroid/content/Context;Ljava/lang/String;)Landroid/content/Intent;
-HSPLandroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
-HSPLandroid/content/Intent;->setClipData(Landroid/content/ClipData;)V
-HSPLandroid/content/Intent;->setComponent(Landroid/content/ComponentName;)Landroid/content/Intent;
-HSPLandroid/content/Intent;->setData(Landroid/net/Uri;)Landroid/content/Intent;
-HSPLandroid/content/Intent;->setDataAndType(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/Intent;
-HSPLandroid/content/Intent;->setDefusable(Z)V
-HSPLandroid/content/Intent;->setExtrasClassLoader(Ljava/lang/ClassLoader;)V
-HSPLandroid/content/Intent;->setFlags(I)Landroid/content/Intent;
-HSPLandroid/content/Intent;->setIdentifier(Ljava/lang/String;)Landroid/content/Intent;
-HSPLandroid/content/Intent;->setPackage(Ljava/lang/String;)Landroid/content/Intent;
-HSPLandroid/content/Intent;->setSelector(Landroid/content/Intent;)V
-HSPLandroid/content/Intent;->setSourceBounds(Landroid/graphics/Rect;)V
-HSPLandroid/content/Intent;->setType(Ljava/lang/String;)Landroid/content/Intent;
-HSPLandroid/content/Intent;->toShortString(Ljava/lang/StringBuilder;ZZZZ)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/ComponentName;Landroid/content/ComponentName;
-HSPLandroid/content/Intent;->toString()Ljava/lang/String;
-HSPLandroid/content/Intent;->toString(Ljava/lang/StringBuilder;)V
-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
-HSPLandroid/content/Intent;->toUriInner(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
-HSPLandroid/content/Intent;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/content/IntentFilter$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)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
-HSPLandroid/content/IntentFilter$AuthorityEntry;->getHost()Ljava/lang/String;
-HSPLandroid/content/IntentFilter$AuthorityEntry;->match(Landroid/net/Uri;Z)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;->countDataSchemes()I
-HSPLandroid/content/IntentFilter;->countDataTypes()I
-HSPLandroid/content/IntentFilter;->countMimeGroups()I
-HSPLandroid/content/IntentFilter;->debugCheck()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;->getDataScheme(I)Ljava/lang/String;
-HSPLandroid/content/IntentFilter;->getHosts()[Ljava/lang/String;
-HSPLandroid/content/IntentFilter;->getHostsList()Ljava/util/ArrayList;
-HSPLandroid/content/IntentFilter;->getOrder()I
-HSPLandroid/content/IntentFilter;->getPriority()I
-HSPLandroid/content/IntentFilter;->hasAction(Ljava/lang/String;)Z
-HSPLandroid/content/IntentFilter;->hasCategory(Ljava/lang/String;)Z
-HSPLandroid/content/IntentFilter;->isImplicitlyVisibleToInstantApp()Z
-HSPLandroid/content/IntentFilter;->isVisibleToInstantApp()Z
-HSPLandroid/content/IntentFilter;->lambda$addDataType$0(Ljava/lang/String;Ljava/lang/Boolean;)V
-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;->match(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/util/Set;Ljava/lang/String;ZLjava/util/Collection;Landroid/os/Bundle;)I
-HSPLandroid/content/IntentFilter;->matchAction(Ljava/lang/String;)Z
-HSPLandroid/content/IntentFilter;->matchAction(Ljava/lang/String;ZLjava/util/Collection;)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
-HSPLandroid/content/IntentFilter;->matchData(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Z)I
-HSPLandroid/content/IntentFilter;->matchDataAuthority(Landroid/net/Uri;Z)I
-HSPLandroid/content/IntentFilter;->matchExtras(Landroid/os/Bundle;)Ljava/lang/String;
-HSPLandroid/content/IntentFilter;->processMimeType(Ljava/lang/String;Ljava/util/function/BiConsumer;)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
-HSPLandroid/content/IntentFilter;->setVisibilityToInstantApp(I)V
-HSPLandroid/content/IntentFilter;->typesIterator()Ljava/util/Iterator;
-HSPLandroid/content/IntentFilter;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/content/IntentFilter;Landroid/content/IntentFilter;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/content/IntentSender;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/LocusId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/LocusId;
-HSPLandroid/content/LocusId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/LocusId;-><init>(Ljava/lang/String;)V
-HSPLandroid/content/LocusId;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/PeriodicSync$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/PeriodicSync;
-HSPLandroid/content/PeriodicSync$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/PeriodicSync;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/PermissionChecker;->checkPermissionForDataDeliveryCommon(Landroid/content/Context;Ljava/lang/String;Landroid/content/AttributionSource;Ljava/lang/String;ZZ)I
-HSPLandroid/content/PermissionChecker;->checkPermissionForDataDeliveryFromDataSource(Landroid/content/Context;Ljava/lang/String;ILandroid/content/AttributionSource;Ljava/lang/String;)I
-HSPLandroid/content/RestrictionsManager;-><init>(Landroid/content/Context;Landroid/content/IRestrictionsManager;)V
-HSPLandroid/content/RestrictionsManager;->getApplicationRestrictions()Landroid/os/Bundle;
-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
-HSPLandroid/content/ServiceConnection;->onBindingDied(Landroid/content/ComponentName;)V
-HSPLandroid/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;ZZZZLjava/lang/String;Ljava/lang/String;)V
-HSPLandroid/content/SyncAdapterType;->equals(Ljava/lang/Object;)Z
-HSPLandroid/content/SyncAdapterType;->supportsUploading()Z
-HSPLandroid/content/SyncAdaptersCache;->getSyncAdapterPackagesForAuthority(Ljava/lang/String;I)[Ljava/lang/String;
-HSPLandroid/content/SyncContext;-><init>(Landroid/content/ISyncContext;)V
-HSPLandroid/content/SyncContext;->getSyncContextBinder()Landroid/os/IBinder;
-HSPLandroid/content/SyncContext;->onFinished(Landroid/content/SyncResult;)V
-HSPLandroid/content/SyncRequest$Builder;->build()Landroid/content/SyncRequest;
-HSPLandroid/content/SyncRequest$Builder;->setExtras(Landroid/os/Bundle;)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
-HSPLandroid/content/SyncRequest;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/SyncResult;-><init>()V
-HSPLandroid/content/SyncResult;->hasError()Z
-HSPLandroid/content/SyncResult;->hasHardError()Z
-HSPLandroid/content/SyncResult;->hasSoftError()Z
-HSPLandroid/content/SyncResult;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/SyncStats;->toString()Ljava/lang/String;
-HSPLandroid/content/SyncStats;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/UndoManager$UndoState;->addOperation(Landroid/content/UndoOperation;)V
-HSPLandroid/content/UndoManager$UndoState;->destroy()V
-HSPLandroid/content/UndoManager$UndoState;->getLastOperation(Ljava/lang/Class;Landroid/content/UndoOwner;)Landroid/content/UndoOperation;
-HSPLandroid/content/UndoManager$UndoState;->hasMultipleOwners()Z
-HSPLandroid/content/UndoManager$UndoState;->hasOperation(Landroid/content/UndoOwner;)Z
-HSPLandroid/content/UndoManager$UndoState;->writeToParcel(Landroid/os/Parcel;)V
-HSPLandroid/content/UndoManager;->addOperation(Landroid/content/UndoOperation;I)V
-HSPLandroid/content/UndoManager;->beginUpdate(Ljava/lang/CharSequence;)V
-HSPLandroid/content/UndoManager;->commitState(Landroid/content/UndoOwner;)I
-HSPLandroid/content/UndoManager;->endUpdate()V
-HSPLandroid/content/UndoManager;->findPrevState(Ljava/util/ArrayList;[Landroid/content/UndoOwner;I)I
-HSPLandroid/content/UndoManager;->forgetRedos([Landroid/content/UndoOwner;I)I
-HSPLandroid/content/UndoManager;->forgetUndos([Landroid/content/UndoOwner;I)I
-HSPLandroid/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;
-HSPLandroid/content/UndoManager;->getTopUndo([Landroid/content/UndoOwner;)Landroid/content/UndoManager$UndoState;
-HSPLandroid/content/UndoManager;->isInUndo()Z
-HSPLandroid/content/UndoManager;->matchOwners(Landroid/content/UndoManager$UndoState;[Landroid/content/UndoOwner;)Z
-HSPLandroid/content/UndoManager;->pushWorkingState()V
-HSPLandroid/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
-HSPLandroid/content/UndoManager;->saveOwner(Landroid/content/UndoOwner;Landroid/os/Parcel;)V
-HSPLandroid/content/UndoOperation;->allowMerge()Z
-HSPLandroid/content/UndoOperation;->getOwner()Landroid/content/UndoOwner;
-HSPLandroid/content/UndoOperation;->hasData()Z
-HSPLandroid/content/UndoOperation;->matchOwner(Landroid/content/UndoOwner;)Z
-HSPLandroid/content/UndoOwner;-><init>(Ljava/lang/String;Landroid/content/UndoManager;)V
-HSPLandroid/content/UriMatcher;-><init>(I)V
-HSPLandroid/content/UriMatcher;-><init>(ILjava/lang/String;)V
-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+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Object;Ljava/lang/String;]Ljava/util/List;Landroid/net/Uri$PathSegments;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;
-HSPLandroid/content/om/OverlayInfo;->ensureValidState()V
-HSPLandroid/content/om/OverlayInfo;->isEnabled()Z
-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>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/ActivityInfo;-><init>(Landroid/os/Parcel;)V+]Lcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;Lcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;]Landroid/os/Parcel;Landroid/os/Parcel;]Ljava/util/Set;Landroid/util/ArraySet;
-HSPLandroid/content/pm/ActivityInfo;->activityInfoConfigNativeToJava(I)I
-HSPLandroid/content/pm/ActivityInfo;->getRealConfigChanged()I
-HSPLandroid/content/pm/ActivityInfo;->getThemeResource()I
-HSPLandroid/content/pm/ActivityInfo;->hasOnBackInvokedCallbackEnabled()Z
-HSPLandroid/content/pm/ActivityInfo;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/pm/ApkChecksum$1;-><init>()V
-HSPLandroid/content/pm/ApkChecksum$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ApkChecksum;
-HSPLandroid/content/pm/ApkChecksum$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/pm/ApkChecksum;-><clinit>()V
-HSPLandroid/content/pm/ApkChecksum;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/ApkChecksum;->getType()I
-HSPLandroid/content/pm/ApkChecksum;->getValue()[B
-HSPLandroid/content/pm/ApplicationInfo$1$$ExternalSyntheticLambda0;-><init>()V
-HSPLandroid/content/pm/ApplicationInfo$1$$ExternalSyntheticLambda0;->readRawParceled(Landroid/os/Parcel;)Ljava/lang/Object;
-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+]Lcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;Lcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/internal/util/Parcelling$BuiltIn$ForBoolean;Lcom/android/internal/util/Parcelling$BuiltIn$ForBoolean;]Landroid/os/Parcel;Landroid/os/Parcel;]Ljava/util/Set;Ljava/util/Collections$EmptySet;
-HSPLandroid/content/pm/ApplicationInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/ApplicationInfo-IA;)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;->getCustomApplicationClassNameForProcess(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/content/pm/ApplicationInfo;->getResourcePath()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;->isDirectBootAware()Z
-HSPLandroid/content/pm/ApplicationInfo;->isEncryptionAware()Z
-HSPLandroid/content/pm/ApplicationInfo;->isExternal()Z
-HSPLandroid/content/pm/ApplicationInfo;->isInstantApp()Z
-HSPLandroid/content/pm/ApplicationInfo;->isOnBackInvokedCallbackEnabled()Z
-HSPLandroid/content/pm/ApplicationInfo;->isPrivilegedApp()Z
-HSPLandroid/content/pm/ApplicationInfo;->isProduct()Z
-HSPLandroid/content/pm/ApplicationInfo;->isProfileable()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;->isSystemExt()Z
-HSPLandroid/content/pm/ApplicationInfo;->isUpdatedSystemApp()Z
-HSPLandroid/content/pm/ApplicationInfo;->isVendor()Z
-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;->setGwpAsanMode(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
-HSPLandroid/content/pm/ApplicationInfo;->toString()Ljava/lang/String;
-HSPLandroid/content/pm/ApplicationInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Lcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;Lcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;]Lcom/android/internal/util/Parcelling$BuiltIn$ForBoolean;Lcom/android/internal/util/Parcelling$BuiltIn$ForBoolean;]Landroid/os/Parcel;Landroid/os/Parcel;]Ljava/util/UUID;Ljava/util/UUID;
-HSPLandroid/content/pm/Attribution$1;-><init>()V
-HSPLandroid/content/pm/Attribution;-><clinit>()V
-HSPLandroid/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+]Landroid/content/pm/BaseParceledListSlice;Landroid/content/pm/ParceledListSlice;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/content/pm/BaseParceledListSlice;-><init>(Ljava/util/List;)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;->readVerifyAndAddElement(Landroid/os/Parcelable$Creator;Landroid/os/Parcel;Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Class;+]Ljava/lang/Object;megamorphic_types]Ljava/util/List;Ljava/util/ArrayList;
-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/Checksum$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/Checksum;
-HSPLandroid/content/pm/Checksum$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/pm/Checksum;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/Checksum;->getType()I
-HSPLandroid/content/pm/Checksum;->getValue()[B
-HSPLandroid/content/pm/ComponentInfo;-><init>()V
-HSPLandroid/content/pm/ComponentInfo;-><init>(Landroid/content/pm/ComponentInfo;)V
-HSPLandroid/content/pm/ComponentInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/content/pm/ApplicationInfo$1;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/content/pm/ComponentInfo;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
-HSPLandroid/content/pm/ComponentInfo;->getComponentName()Landroid/content/ComponentName;
-HSPLandroid/content/pm/ComponentInfo;->getIconResource()I
-HSPLandroid/content/pm/ComponentInfo;->isEnabled()Z
-HSPLandroid/content/pm/ComponentInfo;->loadUnsafeLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;+]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager;
-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>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/CrossProfileApps;-><init>(Landroid/content/Context;Landroid/content/pm/ICrossProfileApps;)V
-HSPLandroid/content/pm/CrossProfileApps;->getTargetUserProfiles()Ljava/util/List;
-HSPLandroid/content/pm/FallbackCategoryProvider;->getFallbackCategory(Ljava/lang/String;)I
-HSPLandroid/content/pm/FallbackCategoryProvider;->loadFallbacks()V
-HSPLandroid/content/pm/FeatureFlagsImpl;-><init>()V
-HSPLandroid/content/pm/FeatureFlagsImpl;->relativeReferenceIntentFilters()Z
-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>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/Flags;-><clinit>()V
-HSPLandroid/content/pm/Flags;->relativeReferenceIntentFilters()Z+]Landroid/content/pm/FeatureFlags;Landroid/content/pm/FeatureFlagsImpl;
-HSPLandroid/content/pm/ICrossProfileApps$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/content/pm/ICrossProfileApps$Stub$Proxy;->getTargetUserProfiles(Ljava/lang/String;)Ljava/util/List;
-HSPLandroid/content/pm/ICrossProfileApps$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/ICrossProfileApps;
-HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;->addOnAppsChangedListener(Ljava/lang/String;Landroid/content/pm/IOnAppsChangedListener;)V
-HSPLandroid/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;Landroid/content/pm/ShortcutQueryWrapper;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
-HSPLandroid/content/pm/ILauncherApps$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/ILauncherApps;
-HSPLandroid/content/pm/IOnAppsChangedListener$Stub;-><init>()V
-HSPLandroid/content/pm/IOnAppsChangedListener$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/content/pm/IOnAppsChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/content/pm/IOnChecksumsReadyListener$Stub;-><init>()V
-HSPLandroid/content/pm/IOnChecksumsReadyListener$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/content/pm/IOnChecksumsReadyListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/content/pm/IPackageInstaller$Stub$Proxy;->getSessionInfo(I)Landroid/content/pm/PackageInstaller$SessionInfo;
-HSPLandroid/content/pm/IPackageInstallerCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy$$ExternalSyntheticLambda1;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getActivityInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ActivityInfo;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getApplicationEnabledSetting(Ljava/lang/String;I)I+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/content/pm/IPackageManager$Stub$Proxy;Landroid/content/pm/IPackageManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getApplicationInfo(Ljava/lang/String;JI)Landroid/content/pm/ApplicationInfo;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getComponentEnabledSetting(Landroid/content/ComponentName;I)I
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getHomeActivities(Ljava/util/List;)Landroid/content/ComponentName;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledApplications(JI)Landroid/content/pm/ParceledListSlice;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledPackages(JI)Landroid/content/pm/ParceledListSlice;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getNameForUid(I)Ljava/lang/String;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageInfo(Ljava/lang/String;JI)Landroid/content/pm/PackageInfo;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/content/pm/IPackageManager$Stub$Proxy;Landroid/content/pm/IPackageManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageInstaller()Landroid/content/pm/IPackageInstaller;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageUid(Ljava/lang/String;JI)I
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackagesForUid(I)[Ljava/lang/String;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPermissionControllerPackageName()Ljava/lang/String;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getProviderInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ProviderInfo;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getReceiverInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ActivityInfo;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getServiceInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ServiceInfo;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getSystemAvailableFeatures()Landroid/content/pm/ParceledListSlice;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getSystemSharedLibraryNames()[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;->isProtectedBroadcast(Ljava/lang/String;)Z
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->lambda$notifyDexLoad$1(Landroid/os/Parcel;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->notifyDexLoad(Ljava/lang/String;Ljava/util/Map;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;->queryIntentActivities(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/content/pm/IPackageManager$Stub$Proxy;Landroid/content/pm/IPackageManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentContentProviders(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentReceivers(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentServices(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->requestPackageChecksums(Ljava/lang/String;ZIILjava/util/List;Landroid/content/pm/IOnChecksumsReadyListener;I)V
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->resolveContentProvider(Ljava/lang/String;JI)Landroid/content/pm/ProviderInfo;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ResolveInfo;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->resolveService(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ResolveInfo;
-HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->setComponentEnabledSetting(Landroid/content/ComponentName;IIILjava/lang/String;)V
-HSPLandroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
-HSPLandroid/content/pm/IPackageManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/content/pm/IShortcutService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->getMaxShortcutCountPerActivity(Ljava/lang/String;I)I
-HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->getShortcuts(Ljava/lang/String;II)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;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IShortcutService;
-HSPLandroid/content/pm/IncrementalStatesInfo$1;-><init>()V
-HSPLandroid/content/pm/IncrementalStatesInfo;-><clinit>()V
-HSPLandroid/content/pm/InstallSourceInfo;->getInitiatingPackageName()Ljava/lang/String;
-HSPLandroid/content/pm/InstallSourceInfo;->getInstallingPackageName()Ljava/lang/String;
-HSPLandroid/content/pm/LauncherActivityInfoInternal$1;-><init>()V
-HSPLandroid/content/pm/LauncherActivityInfoInternal;-><clinit>()V
-HSPLandroid/content/pm/LauncherActivityInfoInternal;->getActivityInfo()Landroid/content/pm/ActivityInfo;
-HSPLandroid/content/pm/LauncherApps$1;-><init>(Landroid/content/pm/LauncherApps;)V
-HSPLandroid/content/pm/LauncherApps$1;->onPackageChanged(Landroid/os/UserHandle;Ljava/lang/String;)V
-HSPLandroid/content/pm/LauncherApps$1;->onShortcutChanged(Landroid/os/UserHandle;Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
-HSPLandroid/content/pm/LauncherApps$Callback;-><init>()V
-HSPLandroid/content/pm/LauncherApps$Callback;->onShortcutsChanged(Ljava/lang/String;Ljava/util/List;Landroid/os/UserHandle;)V
-HSPLandroid/content/pm/LauncherApps$CallbackMessageHandler;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/content/pm/LauncherApps$CallbackMessageHandler;->postOnPackageChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
-HSPLandroid/content/pm/LauncherApps$CallbackMessageHandler;->postOnShortcutChanged(Ljava/lang/String;Landroid/os/UserHandle;Ljava/util/List;)V
-HSPLandroid/content/pm/LauncherApps$ShortcutQuery;-><init>()V
-HSPLandroid/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;
-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;->findCallbackLocked(Landroid/content/pm/LauncherApps$Callback;)I
-HSPLandroid/content/pm/LauncherApps;->getShortcutIconFd(Landroid/content/pm/ShortcutInfo;)Landroid/os/ParcelFileDescriptor;
-HSPLandroid/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;->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/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>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/ModuleInfo;->getPackageName()Ljava/lang/String;
-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+]Landroid/os/Parcelable$Creator;Landroid/content/pm/ApplicationInfo$1;,Landroid/content/pm/SigningInfo$1;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/content/pm/PackageInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/PackageInfo-IA;)V
-HSPLandroid/content/pm/PackageInfo;->composeLongVersionCode(II)J
-HSPLandroid/content/pm/PackageInfo;->getLongVersionCode()J
-HSPLandroid/content/pm/PackageInfo;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/pm/PackageInstaller$SessionCallback;-><init>()V
-HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;-><init>(Landroid/content/pm/PackageInstaller$SessionCallback;Ljava/util/concurrent/Executor;)V
-HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionActiveChanged(IZ)V
-HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionBadgingChanged(I)V
-HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionCreated(I)V
-HSPLandroid/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;
-HSPLandroid/content/pm/PackageInstaller$SessionInfo;->getInstallerPackageName()Ljava/lang/String;
-HSPLandroid/content/pm/PackageInstaller$SessionInfo;->getSessionId()I
-HSPLandroid/content/pm/PackageInstaller$SessionParams;-><init>(I)V
-HSPLandroid/content/pm/PackageInstaller;-><init>(Landroid/content/pm/IPackageInstaller;Ljava/lang/String;Ljava/lang/String;I)V
-HSPLandroid/content/pm/PackageInstaller;->getSessionInfo(I)Landroid/content/pm/PackageInstaller$SessionInfo;
-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+]Landroid/os/Parcelable$Creator;Landroid/text/TextUtils$1;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/content/pm/PackageItemInfo;->forceSafeLabels()V
-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;
-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$2;->recompute(Landroid/content/pm/PackageManager$ApplicationInfoQuery;)Landroid/content/pm/ApplicationInfo;
-HSPLandroid/content/pm/PackageManager$2;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/content/pm/PackageManager$3;->recompute(Landroid/content/pm/PackageManager$PackageInfoQuery;)Landroid/content/pm/PackageInfo;
-HSPLandroid/content/pm/PackageManager$3;->recompute(Ljava/lang/Object;)Ljava/lang/Object;+]Landroid/content/pm/PackageManager$3;Landroid/content/pm/PackageManager$3;
-HSPLandroid/content/pm/PackageManager$ApplicationInfoFlags;-><init>(J)V
-HSPLandroid/content/pm/PackageManager$ApplicationInfoFlags;->of(J)Landroid/content/pm/PackageManager$ApplicationInfoFlags;
-HSPLandroid/content/pm/PackageManager$ApplicationInfoQuery;-><init>(Ljava/lang/String;JI)V
-HSPLandroid/content/pm/PackageManager$ApplicationInfoQuery;->equals(Ljava/lang/Object;)Z
-HSPLandroid/content/pm/PackageManager$ApplicationInfoQuery;->hashCode()I
-HSPLandroid/content/pm/PackageManager$ComponentInfoFlags;-><init>(J)V
-HSPLandroid/content/pm/PackageManager$ComponentInfoFlags;->of(J)Landroid/content/pm/PackageManager$ComponentInfoFlags;
-HSPLandroid/content/pm/PackageManager$Flags;-><init>(J)V
-HSPLandroid/content/pm/PackageManager$Flags;->getValue()J
-HSPLandroid/content/pm/PackageManager$NameNotFoundException;-><init>()V
-HSPLandroid/content/pm/PackageManager$NameNotFoundException;-><init>(Ljava/lang/String;)V
-HSPLandroid/content/pm/PackageManager$PackageInfoFlags;-><init>(J)V
-HSPLandroid/content/pm/PackageManager$PackageInfoFlags;->of(J)Landroid/content/pm/PackageManager$PackageInfoFlags;
-HSPLandroid/content/pm/PackageManager$PackageInfoQuery;-><init>(Ljava/lang/String;JI)V
-HSPLandroid/content/pm/PackageManager$PackageInfoQuery;->equals(Ljava/lang/Object;)Z
-HSPLandroid/content/pm/PackageManager$PackageInfoQuery;->hashCode()I
-HSPLandroid/content/pm/PackageManager$Property;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
-HSPLandroid/content/pm/PackageManager$Property;-><init>(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;)V
-HSPLandroid/content/pm/PackageManager$Property;->toBundle(Landroid/os/Bundle;)Landroid/os/Bundle;
-HSPLandroid/content/pm/PackageManager$ResolveInfoFlags;-><init>(J)V
-HSPLandroid/content/pm/PackageManager$ResolveInfoFlags;->of(J)Landroid/content/pm/PackageManager$ResolveInfoFlags;
-HSPLandroid/content/pm/PackageManager;->-$$Nest$smgetApplicationInfoAsUserUncached(Ljava/lang/String;JI)Landroid/content/pm/ApplicationInfo;
-HSPLandroid/content/pm/PackageManager;->-$$Nest$smgetPackageInfoAsUserUncached(Ljava/lang/String;JI)Landroid/content/pm/PackageInfo;
-HSPLandroid/content/pm/PackageManager;-><init>()V
-HSPLandroid/content/pm/PackageManager;->getApplicationInfoAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/pm/ApplicationInfo;
-HSPLandroid/content/pm/PackageManager;->getApplicationInfoAsUserCached(Ljava/lang/String;JI)Landroid/content/pm/ApplicationInfo;
-HSPLandroid/content/pm/PackageManager;->getApplicationInfoAsUserUncached(Ljava/lang/String;JI)Landroid/content/pm/ApplicationInfo;
-HSPLandroid/content/pm/PackageManager;->getPackageInfoAsUserCached(Ljava/lang/String;JI)Landroid/content/pm/PackageInfo;
-HSPLandroid/content/pm/PackageManager;->getPackageInfoAsUserUncached(Ljava/lang/String;JI)Landroid/content/pm/PackageInfo;
-HSPLandroid/content/pm/PackageManager;->queryBroadcastReceiversAsUser(Landroid/content/Intent;ILandroid/os/UserHandle;)Ljava/util/List;
-HSPLandroid/content/pm/PackageManager;->queryIntentActivitiesAsUser(Landroid/content/Intent;ILandroid/os/UserHandle;)Ljava/util/List;
-HSPLandroid/content/pm/PackageManager;->queryIntentServicesAsUser(Landroid/content/Intent;ILandroid/os/UserHandle;)Ljava/util/List;
-HSPLandroid/content/pm/PackageParser$Activity$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageParser$Activity;
-HSPLandroid/content/pm/PackageParser$Activity$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/pm/PackageParser$Activity;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/PackageParser$ActivityIntentInfo;-><init>(Landroid/os/Parcel;)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;ZZZZZZZZLjava/lang/String;ZIIII)V
-HSPLandroid/content/pm/PackageParser$Component;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/PackageParser$Component;->createIntentsList(Landroid/os/Parcel;)Ljava/util/ArrayList;
-HSPLandroid/content/pm/PackageParser$Component;->getComponentName()Landroid/content/ComponentName;
-HSPLandroid/content/pm/PackageParser$IntentInfo;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/PackageParser$Package;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/PackageParser$Package;->fixupOwner(Ljava/util/List;)V
-HSPLandroid/content/pm/PackageParser$Package;->getChildPackageNames()Ljava/util/List;
-HSPLandroid/content/pm/PackageParser$Package;->getLongVersionCode()J
-HSPLandroid/content/pm/PackageParser$Package;->internStringArrayList(Ljava/util/List;)V
-HSPLandroid/content/pm/PackageParser$Package;->isExternal()Z
-HSPLandroid/content/pm/PackageParser$Package;->isMatch(I)Z
-HSPLandroid/content/pm/PackageParser$Package;->isPrivileged()Z
-HSPLandroid/content/pm/PackageParser$Package;->isProduct()Z
-HSPLandroid/content/pm/PackageParser$Package;->isSystem()Z
-HSPLandroid/content/pm/PackageParser$Package;->isUpdatedSystemApp()Z
-HSPLandroid/content/pm/PackageParser$Package;->isVendor()Z
-HSPLandroid/content/pm/PackageParser$Package;->setApplicationInfoBaseCodePath(Ljava/lang/String;)V
-HSPLandroid/content/pm/PackageParser$Package;->setApplicationInfoBaseResourcePath(Ljava/lang/String;)V
-HSPLandroid/content/pm/PackageParser$Package;->setApplicationInfoCodePath(Ljava/lang/String;)V
-HSPLandroid/content/pm/PackageParser$Package;->setApplicationInfoResourcePath(Ljava/lang/String;)V
-HSPLandroid/content/pm/PackageParser$Package;->setApplicationInfoSplitCodePaths([Ljava/lang/String;)V
-HSPLandroid/content/pm/PackageParser$Package;->setApplicationInfoSplitResourcePaths([Ljava/lang/String;)V
-HSPLandroid/content/pm/PackageParser$Package;->setApplicationVolumeUuid(Ljava/lang/String;)V
-HSPLandroid/content/pm/PackageParser$Permission$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageParser$Permission;
-HSPLandroid/content/pm/PackageParser$Permission$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/pm/PackageParser$Permission;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/PackageParser$Provider$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageParser$Provider;
-HSPLandroid/content/pm/PackageParser$Provider$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/pm/PackageParser$Provider;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/PackageParser$Service$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageParser$Service;
-HSPLandroid/content/pm/PackageParser$Service$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/pm/PackageParser$Service;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/PackageParser$ServiceIntentInfo;-><init>(Landroid/os/Parcel;)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;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/PackageParser$SigningDetails;->checkCapability(Landroid/content/pm/PackageParser$SigningDetails;I)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;->hasCertificate(Landroid/content/pm/Signature;I)Z
-HSPLandroid/content/pm/PackageParser$SigningDetails;->hasCertificateInternal(Landroid/content/pm/Signature;I)Z
-HSPLandroid/content/pm/PackageParser$SigningDetails;->hasPastSigningCertificates()Z
-HSPLandroid/content/pm/PackageParser;-><init>()V
-HSPLandroid/content/pm/PackageParser;->checkRequiredSystemProperties(Ljava/lang/String;Ljava/lang/String;)Z
-HSPLandroid/content/pm/PackageParser;->generatePermissionInfo(Landroid/content/pm/PackageParser$Permission;I)Landroid/content/pm/PermissionInfo;
-HSPLandroid/content/pm/PackageParser;->isApkFile(Ljava/io/File;)Z
-HSPLandroid/content/pm/PackageParser;->isApkPath(Ljava/lang/String;)Z
-HSPLandroid/content/pm/PackageParser;->parsePackage(Ljava/io/File;IZ)Landroid/content/pm/PackageParser$Package;
-HSPLandroid/content/pm/PackageParser;->setCacheDir(Ljava/io/File;)V
-HSPLandroid/content/pm/PackageParser;->setCallback(Landroid/content/pm/PackageParser$Callback;)V
-HSPLandroid/content/pm/PackageParser;->setDisplayMetrics(Landroid/util/DisplayMetrics;)V
-HSPLandroid/content/pm/PackageParser;->setOnlyCoreApps(Z)V
-HSPLandroid/content/pm/PackageParser;->setSeparateProcesses([Ljava/lang/String;)V
-HSPLandroid/content/pm/PackageParser;->toSigningKeys([Landroid/content/pm/Signature;)Landroid/util/ArraySet;
-HSPLandroid/content/pm/PackageParser;->validateName(Ljava/lang/String;ZZ)Ljava/lang/String;
-HSPLandroid/content/pm/PackageParserCacheHelper$ReadHelper;->readString(Landroid/os/Parcel;)Ljava/lang/String;
-HSPLandroid/content/pm/PackageStats;-><init>(Ljava/lang/String;)V
-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;
-HSPLandroid/content/pm/ParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Landroid/content/pm/ParceledListSlice;
-HSPLandroid/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-IA;)V
-HSPLandroid/content/pm/ParceledListSlice;-><init>(Ljava/util/List;)V
-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
-HSPLandroid/content/pm/ParceledListSlice;->writeParcelableCreator(Ljava/lang/Object;Landroid/os/Parcel;)V
-HSPLandroid/content/pm/ParceledListSlice;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/pm/PathPermission$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PathPermission;
-HSPLandroid/content/pm/PathPermission$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-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;->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/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>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/PermissionInfo;->fixProtectionLevel(I)I
-HSPLandroid/content/pm/PermissionInfo;->getProtection()I
-HSPLandroid/content/pm/PermissionInfo;->getProtectionFlags()I
-HSPLandroid/content/pm/PermissionInfo;->isAppOp()Z
-HSPLandroid/content/pm/PermissionInfo;->isHardRestricted()Z
-HSPLandroid/content/pm/PermissionInfo;->isRestricted()Z
-HSPLandroid/content/pm/PermissionInfo;->isRuntime()Z
-HSPLandroid/content/pm/PermissionInfo;->isSoftRestricted()Z
-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
-HSPLandroid/content/pm/ProviderInfo;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/pm/ProviderInfoList$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ProviderInfoList;
-HSPLandroid/content/pm/ProviderInfoList$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/pm/ProviderInfoList;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/ProviderInfoList;-><init>(Landroid/os/Parcel;Landroid/content/pm/ProviderInfoList-IA;)V
-HSPLandroid/content/pm/ProviderInfoList;->getList()Ljava/util/List;
-HSPLandroid/content/pm/RegisteredServicesCache;->containsType(Ljava/util/ArrayList;Ljava/lang/Object;)Z
-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
-HSPLandroid/content/pm/ResolveInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/content/pm/ServiceInfo$1;,Landroid/content/pm/ActivityInfo$1;,Landroid/text/TextUtils$1;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/content/pm/ResolveInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/ResolveInfo-IA;)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;->writeToParcel(Landroid/os/Parcel;I)V
-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>(Landroid/os/Parcel;)V
-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;+]Landroid/content/pm/SharedLibraryInfo$1;Landroid/content/pm/SharedLibraryInfo$1;
-HSPLandroid/content/pm/SharedLibraryInfo;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/content/pm/SharedLibraryInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/SharedLibraryInfo-IA;)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;Z)V
-HSPLandroid/content/pm/SharedLibraryInfo;->addDependency(Landroid/content/pm/SharedLibraryInfo;)V
-HSPLandroid/content/pm/SharedLibraryInfo;->getAllCodePaths()Ljava/util/List;
-HSPLandroid/content/pm/SharedLibraryInfo;->getDependencies()Ljava/util/List;
-HSPLandroid/content/pm/SharedLibraryInfo;->getName()Ljava/lang/String;
-HSPLandroid/content/pm/SharedLibraryInfo;->getPath()Ljava/lang/String;
-HSPLandroid/content/pm/SharedLibraryInfo;->isNative()Z
-HSPLandroid/content/pm/SharedLibraryInfo;->isSdk()Z
-HSPLandroid/content/pm/SharedLibraryInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-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;->setCategories(Ljava/util/Set;)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;
-HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/content/pm/ShortcutInfo$Builder;)V+]Landroid/content/pm/ShortcutInfo;Landroid/content/pm/ShortcutInfo;
-HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/ShortcutInfo;->addFlags(I)V
-HSPLandroid/content/pm/ShortcutInfo;->cloneCapabilityBindings(Ljava/util/Map;)Ljava/util/Map;
-HSPLandroid/content/pm/ShortcutInfo;->cloneCategories(Ljava/util/Set;)Landroid/util/ArraySet;
-HSPLandroid/content/pm/ShortcutInfo;->cloneIntents([Landroid/content/Intent;)[Landroid/content/Intent;
-HSPLandroid/content/pm/ShortcutInfo;->clonePersons([Landroid/app/Person;)[Landroid/app/Person;
-HSPLandroid/content/pm/ShortcutInfo;->fixUpIntentExtras()V
-HSPLandroid/content/pm/ShortcutInfo;->getActivity()Landroid/content/ComponentName;
-HSPLandroid/content/pm/ShortcutInfo;->getCategories()Ljava/util/Set;
-HSPLandroid/content/pm/ShortcutInfo;->getDisabledMessage()Ljava/lang/CharSequence;
-HSPLandroid/content/pm/ShortcutInfo;->getDisabledReasonForRestoreIssue(Landroid/content/Context;I)Ljava/lang/String;
-HSPLandroid/content/pm/ShortcutInfo;->getExtras()Landroid/os/PersistableBundle;
-HSPLandroid/content/pm/ShortcutInfo;->getIconResourceId()I
-HSPLandroid/content/pm/ShortcutInfo;->getId()Ljava/lang/String;
-HSPLandroid/content/pm/ShortcutInfo;->getLastChangedTimestamp()J
-HSPLandroid/content/pm/ShortcutInfo;->getLongLabel()Ljava/lang/CharSequence;
-HSPLandroid/content/pm/ShortcutInfo;->getPackage()Ljava/lang/String;
-HSPLandroid/content/pm/ShortcutInfo;->getPersons()[Landroid/app/Person;
-HSPLandroid/content/pm/ShortcutInfo;->getRank()I
-HSPLandroid/content/pm/ShortcutInfo;->getShortLabel()Ljava/lang/CharSequence;
-HSPLandroid/content/pm/ShortcutInfo;->getUserHandle()Landroid/os/UserHandle;
-HSPLandroid/content/pm/ShortcutInfo;->hasFlags(I)Z
-HSPLandroid/content/pm/ShortcutInfo;->hasIconFile()Z
-HSPLandroid/content/pm/ShortcutInfo;->hasIconResource()Z
-HSPLandroid/content/pm/ShortcutInfo;->hasIconUri()Z
-HSPLandroid/content/pm/ShortcutInfo;->hasKeyFieldsOnly()Z
-HSPLandroid/content/pm/ShortcutInfo;->isCached()Z
-HSPLandroid/content/pm/ShortcutInfo;->isDeclaredInManifest()Z
-HSPLandroid/content/pm/ShortcutInfo;->isDynamic()Z
-HSPLandroid/content/pm/ShortcutInfo;->isEnabled()Z
-HSPLandroid/content/pm/ShortcutInfo;->isPinned()Z
-HSPLandroid/content/pm/ShortcutInfo;->setIntentExtras(Landroid/content/Intent;Landroid/os/PersistableBundle;)Landroid/content/Intent;
-HSPLandroid/content/pm/ShortcutInfo;->updateTimestamp()V
-HSPLandroid/content/pm/ShortcutInfo;->validateIcon(Landroid/graphics/drawable/Icon;)Landroid/graphics/drawable/Icon;
-HSPLandroid/content/pm/ShortcutInfo;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/pm/ShortcutManager;-><init>(Landroid/content/Context;Landroid/content/pm/IShortcutService;)V
-HSPLandroid/content/pm/ShortcutManager;->addDynamicShortcuts(Ljava/util/List;)Z
-HSPLandroid/content/pm/ShortcutManager;->getDynamicShortcuts()Ljava/util/List;
-HSPLandroid/content/pm/ShortcutManager;->getFutureOrThrow(Lcom/android/internal/infra/AndroidFuture;)Ljava/lang/Object;
-HSPLandroid/content/pm/ShortcutManager;->getManifestShortcuts()Ljava/util/List;
-HSPLandroid/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/ShortcutQueryWrapper;->writeToParcel(Landroid/os/Parcel;I)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-IA;)V
-HSPLandroid/content/pm/Signature;-><init>(Ljava/lang/String;)V
-HSPLandroid/content/pm/Signature;-><init>([B)V
-HSPLandroid/content/pm/Signature;->equals(Ljava/lang/Object;)Z
-HSPLandroid/content/pm/Signature;->hashCode()I
-HSPLandroid/content/pm/Signature;->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;
-HSPLandroid/content/pm/SigningDetails$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/SigningDetails;
-HSPLandroid/content/pm/SigningDetails$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/pm/SigningDetails;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/content/pm/SigningDetails;->getSignatures()[Landroid/content/pm/Signature;
-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/os/Parcel;)V
-HSPLandroid/content/pm/SigningInfo;->getApkContentsSigners()[Landroid/content/pm/Signature;
-HSPLandroid/content/pm/SigningInfo;->getSigningCertificateHistory()[Landroid/content/pm/Signature;
-HSPLandroid/content/pm/SigningInfo;->hasMultipleSigners()Z
-HSPLandroid/content/pm/SigningInfo;->hasPastSigningCertificates()Z
-HSPLandroid/content/pm/StringParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/StringParceledListSlice;
-HSPLandroid/content/pm/StringParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/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>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/UserInfo;->getUserHandle()Landroid/os/UserHandle;
-HSPLandroid/content/pm/UserInfo;->isAdmin()Z
-HSPLandroid/content/pm/UserInfo;->isEnabled()Z
-HSPLandroid/content/pm/UserInfo;->isGuest()Z
-HSPLandroid/content/pm/UserInfo;->isManagedProfile()Z
-HSPLandroid/content/pm/UserInfo;->isPrimary()Z
-HSPLandroid/content/pm/UserInfo;->isProfile()Z
-HSPLandroid/content/pm/UserInfo;->isQuietModeEnabled()Z
-HSPLandroid/content/pm/UserInfo;->isRestricted()Z
-HSPLandroid/content/pm/UserInfo;->supportsSwitchTo()Z
-HSPLandroid/content/pm/UserInfo;->supportsSwitchToByUser()Z
-HSPLandroid/content/pm/UserPackage;-><clinit>()V
-HSPLandroid/content/pm/UserPackage;-><init>(ILjava/lang/String;)V
-HSPLandroid/content/pm/UserPackage;->equals(Ljava/lang/Object;)Z
-HSPLandroid/content/pm/UserPackage;->hashCode()I
-HSPLandroid/content/pm/UserPackage;->of(ILjava/lang/String;)Landroid/content/pm/UserPackage;
-HSPLandroid/content/pm/UserProperties;->isPresent(J)Z
-HSPLandroid/content/pm/VersionedPackage$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/VersionedPackage;
-HSPLandroid/content/pm/VersionedPackage$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/content/pm/VersionedPackage$1;Landroid/content/pm/VersionedPackage$1;
-HSPLandroid/content/pm/VersionedPackage;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/content/pm/VersionedPackage;-><init>(Landroid/os/Parcel;Landroid/content/pm/VersionedPackage-IA;)V
-HSPLandroid/content/pm/VersionedPackage;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/pm/dex/ArtManager;->getCurrentProfilePath(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
-HSPLandroid/content/pm/dex/ArtManager;->getProfileName(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/content/pm/dex/ArtManager;->getReferenceProfilePath(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
-HSPLandroid/content/pm/parsing/ApkLiteParseUtils;->parseApkLite(Landroid/content/pm/parsing/result/ParseInput;Ljava/io/File;I)Landroid/content/pm/parsing/result/ParseResult;
-HSPLandroid/content/pm/parsing/ApkLiteParseUtils;->parseApkLiteInner(Landroid/content/pm/parsing/result/ParseInput;Ljava/io/File;Ljava/io/FileDescriptor;Ljava/lang/String;I)Landroid/content/pm/parsing/result/ParseResult;
-HSPLandroid/content/pm/parsing/ApkLiteParseUtils;->parseMonolithicPackageLite(Landroid/content/pm/parsing/result/ParseInput;Ljava/io/File;I)Landroid/content/pm/parsing/result/ParseResult;
-HSPLandroid/content/pm/parsing/result/ParseTypeImpl;-><init>(Landroid/content/pm/parsing/result/ParseInput$Callback;)V
-HSPLandroid/content/pm/parsing/result/ParseTypeImpl;->enableDeferredError(Ljava/lang/String;I)Landroid/content/pm/parsing/result/ParseResult;
-HSPLandroid/content/pm/parsing/result/ParseTypeImpl;->getResult()Ljava/lang/Object;
-HSPLandroid/content/pm/parsing/result/ParseTypeImpl;->isError()Z
-HSPLandroid/content/pm/parsing/result/ParseTypeImpl;->isSuccess()Z
-HSPLandroid/content/pm/parsing/result/ParseTypeImpl;->reset()Landroid/content/pm/parsing/result/ParseInput;
-HSPLandroid/content/pm/parsing/result/ParseTypeImpl;->success(Ljava/lang/Object;)Landroid/content/pm/parsing/result/ParseResult;
-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;
-HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;-><init>(Ljava/lang/String;Ljava/util/List;I)V
-HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->getNewPermissions()Ljava/util/List;
-HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->getSplitPermission()Ljava/lang/String;
-HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->getTargetSdk()I
-HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->onConstructed()V
-HSPLandroid/content/pm/split/SplitDependencyLoader;-><init>(Landroid/util/SparseArray;)V
-HSPLandroid/content/pm/split/SplitDependencyLoader;->collectConfigSplitIndices(I)[I
-HSPLandroid/content/pm/split/SplitDependencyLoader;->loadDependenciesForSplit(I)V
-HSPLandroid/content/res/ApkAssets;-><init>(ILjava/lang/String;ILandroid/content/res/loader/AssetsProvider;)V
-HSPLandroid/content/res/ApkAssets;->close()V
-HSPLandroid/content/res/ApkAssets;->definesOverlayable()Z
-HSPLandroid/content/res/ApkAssets;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
-HSPLandroid/content/res/ApkAssets;->finalize()V
-HSPLandroid/content/res/ApkAssets;->getAssetPath()Ljava/lang/String;
-HSPLandroid/content/res/ApkAssets;->getDebugName()Ljava/lang/String;
-HSPLandroid/content/res/ApkAssets;->getStringFromPool(I)Ljava/lang/CharSequence;+]Landroid/content/res/StringBlock;Landroid/content/res/StringBlock;
-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;I)Landroid/content/res/ApkAssets;
-HSPLandroid/content/res/ApkAssets;->loadOverlayFromPath(Ljava/lang/String;I)Landroid/content/res/ApkAssets;
-HSPLandroid/content/res/ApkAssets;->openXml(Ljava/lang/String;)Landroid/content/res/XmlResourceParser;
-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$AutoCloseInputStream;->read([BII)I
-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
-HSPLandroid/content/res/AssetFileDescriptor;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/res/AssetManager$AssetInputStream;-><init>(Landroid/content/res/AssetManager;J)V
-HSPLandroid/content/res/AssetManager$AssetInputStream;-><init>(Landroid/content/res/AssetManager;JLandroid/content/res/AssetManager$AssetInputStream-IA;)V
-HSPLandroid/content/res/AssetManager$AssetInputStream;->available()I
-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$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;+]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/content/res/AssetManager;->-$$Nest$fgetmObject(Landroid/content/res/AssetManager;)J
-HSPLandroid/content/res/AssetManager;->-$$Nest$fputmApkAssets(Landroid/content/res/AssetManager;[Landroid/content/res/ApkAssets;)V
-HSPLandroid/content/res/AssetManager;->-$$Nest$fputmLoaders(Landroid/content/res/AssetManager;[Landroid/content/res/loader/ResourcesLoader;)V
-HSPLandroid/content/res/AssetManager;->-$$Nest$mdecRefsLocked(Landroid/content/res/AssetManager;J)V
-HSPLandroid/content/res/AssetManager;->-$$Nest$smnativeAssetDestroy(J)V
-HSPLandroid/content/res/AssetManager;->-$$Nest$smnativeAssetGetLength(J)J
-HSPLandroid/content/res/AssetManager;->-$$Nest$smnativeAssetGetRemainingLength(J)J
-HSPLandroid/content/res/AssetManager;->-$$Nest$smnativeAssetRead(J[BII)I
-HSPLandroid/content/res/AssetManager;-><init>()V
-HSPLandroid/content/res/AssetManager;-><init>(Z)V
-HSPLandroid/content/res/AssetManager;-><init>(ZLandroid/content/res/AssetManager-IA;)V
-HSPLandroid/content/res/AssetManager;->addAssetPathInternal(Ljava/lang/String;ZZ)I
-HSPLandroid/content/res/AssetManager;->applyStyle(JIILandroid/content/res/XmlBlock$Parser;[IJJ)V
-HSPLandroid/content/res/AssetManager;->applyStyleToTheme(JIZ)V
-HSPLandroid/content/res/AssetManager;->close()V
-HSPLandroid/content/res/AssetManager;->containsAllocatedTable()Z
-HSPLandroid/content/res/AssetManager;->createSystemAssetsInZygoteLocked(ZLjava/lang/String;)V
-HSPLandroid/content/res/AssetManager;->createTheme()J
-HSPLandroid/content/res/AssetManager;->decRefsLocked(J)V
-HSPLandroid/content/res/AssetManager;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
-HSPLandroid/content/res/AssetManager;->ensureOpenLocked()V
-HSPLandroid/content/res/AssetManager;->ensureValidLocked()V
-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()Landroid/util/SparseArray;
-HSPLandroid/content/res/AssetManager;->getAssignedPackageIdentifiers(ZZ)Landroid/util/SparseArray;
-HSPLandroid/content/res/AssetManager;->getLoaders()Ljava/util/List;
-HSPLandroid/content/res/AssetManager;->getLocales()[Ljava/lang/String;
-HSPLandroid/content/res/AssetManager;->getNonSystemLocales()[Ljava/lang/String;
-HSPLandroid/content/res/AssetManager;->getParentThemeIdentifier(I)I
-HSPLandroid/content/res/AssetManager;->getPooledStringForCookie(II)Ljava/lang/CharSequence;+]Landroid/content/res/ApkAssets;Landroid/content/res/ApkAssets;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;
-HSPLandroid/content/res/AssetManager;->getResourceArray(I[I)I
-HSPLandroid/content/res/AssetManager;->getResourceArraySize(I)I
-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
-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+]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;
-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
-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;+]Ljava/lang/Object;Landroid/content/res/XmlBlock;
-HSPLandroid/content/res/AssetManager;->openXmlResourceParser(ILjava/lang/String;)Landroid/content/res/XmlResourceParser;
-HSPLandroid/content/res/AssetManager;->rebaseTheme(JLandroid/content/res/AssetManager;[I[ZI)Landroid/content/res/AssetManager;
-HSPLandroid/content/res/AssetManager;->releaseTheme(J)V
-HSPLandroid/content/res/AssetManager;->resolveAttrs(JII[I[I[I[I)Z
-HSPLandroid/content/res/AssetManager;->retrieveAttributes(Landroid/content/res/XmlBlock$Parser;[I[I[I)Z
-HSPLandroid/content/res/AssetManager;->setApkAssets([Landroid/content/res/ApkAssets;Z)V
-HSPLandroid/content/res/AssetManager;->setConfiguration(IILjava/lang/String;IIIIIIIIIIIIIIII)V
-HSPLandroid/content/res/AssetManager;->setConfigurationInternal(IILjava/lang/String;[Ljava/lang/String;IIIIIIIIIIIIIIIIZ)V
-HSPLandroid/content/res/AssetManager;->setThemeTo(JLandroid/content/res/AssetManager;J)V
-HSPLandroid/content/res/AssetManager;->xmlBlockGone(I)V
-HSPLandroid/content/res/ColorStateList$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/res/ColorStateList;
-HSPLandroid/content/res/ColorStateList$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/res/ColorStateList$ColorStateListFactory;-><init>(Landroid/content/res/ColorStateList;)V
-HSPLandroid/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;
-HSPLandroid/content/res/ColorStateList$ColorStateListFactory;->newInstance(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Ljava/lang/Object;
-HSPLandroid/content/res/ColorStateList;-><init>()V
-HSPLandroid/content/res/ColorStateList;-><init>(Landroid/content/res/ColorStateList;)V
-HSPLandroid/content/res/ColorStateList;-><init>([[I[I)V
-HSPLandroid/content/res/ColorStateList;->applyTheme(Landroid/content/res/Resources$Theme;)V
-HSPLandroid/content/res/ColorStateList;->canApplyTheme()Z
-HSPLandroid/content/res/ColorStateList;->createFromXmlInner(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
-HSPLandroid/content/res/ColorStateList;->getChangingConfigurations()I
-HSPLandroid/content/res/ColorStateList;->getColorForState([II)I
-HSPLandroid/content/res/ColorStateList;->getConstantState()Landroid/content/res/ConstantState;
-HSPLandroid/content/res/ColorStateList;->getDefaultColor()I
-HSPLandroid/content/res/ColorStateList;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
-HSPLandroid/content/res/ColorStateList;->isStateful()Z
-HSPLandroid/content/res/ColorStateList;->modulateColor(IFF)I
-HSPLandroid/content/res/ColorStateList;->obtainForTheme(Landroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
-HSPLandroid/content/res/ColorStateList;->obtainForTheme(Landroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor;
-HSPLandroid/content/res/ColorStateList;->onColorsChanged()V
-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/os/Parcel;)V
-HSPLandroid/content/res/CompatibilityInfo;-><init>(Landroid/os/Parcel;Landroid/content/res/CompatibilityInfo-IA;)V
-HSPLandroid/content/res/CompatibilityInfo;->applyDisplayMetricsIfNeeded(Landroid/util/DisplayMetrics;Z)V
-HSPLandroid/content/res/CompatibilityInfo;->applyOverrideScaleIfNeeded(Landroid/content/res/Configuration;)V
-HSPLandroid/content/res/CompatibilityInfo;->applyOverrideScaleIfNeeded(Landroid/util/MergedConfiguration;)V
-HSPLandroid/content/res/CompatibilityInfo;->applyToConfiguration(ILandroid/content/res/Configuration;)V
-HSPLandroid/content/res/CompatibilityInfo;->applyToDisplayMetrics(Landroid/util/DisplayMetrics;)V
-HSPLandroid/content/res/CompatibilityInfo;->equals(Ljava/lang/Object;)Z
-HSPLandroid/content/res/CompatibilityInfo;->getOverrideInvertedScale()F
-HSPLandroid/content/res/CompatibilityInfo;->getTranslator()Landroid/content/res/CompatibilityInfo$Translator;
-HSPLandroid/content/res/CompatibilityInfo;->hasOverrideScale()Z
-HSPLandroid/content/res/CompatibilityInfo;->hasOverrideScaling()Z
-HSPLandroid/content/res/CompatibilityInfo;->hashCode()I
-HSPLandroid/content/res/CompatibilityInfo;->isScalingRequired()Z
-HSPLandroid/content/res/CompatibilityInfo;->needsCompatResources()Z
-HSPLandroid/content/res/CompatibilityInfo;->setOverrideInvertedScale(F)V
-HSPLandroid/content/res/CompatibilityInfo;->supportsScreen()Z
-HSPLandroid/content/res/ComplexColor;-><init>()V
-HSPLandroid/content/res/ComplexColor;->getChangingConfigurations()I
-HSPLandroid/content/res/ComplexColor;->setBaseChangingConfigurations(I)V
-HSPLandroid/content/res/Configuration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/res/Configuration;
-HSPLandroid/content/res/Configuration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/res/Configuration;-><init>()V
-HSPLandroid/content/res/Configuration;-><init>(Landroid/content/res/Configuration;)V
-HSPLandroid/content/res/Configuration;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/res/Configuration;-><init>(Landroid/os/Parcel;Landroid/content/res/Configuration-IA;)V
-HSPLandroid/content/res/Configuration;->compareTo(Landroid/content/res/Configuration;)I
-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
-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;->getGrammaticalGender()I
-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+]Landroid/os/LocaleList;Landroid/os/LocaleList;
-HSPLandroid/content/res/Configuration;->isLayoutSizeAtLeast(I)Z
-HSPLandroid/content/res/Configuration;->isOtherSeqNewer(Landroid/content/res/Configuration;)Z
-HSPLandroid/content/res/Configuration;->isScreenRound()Z
-HSPLandroid/content/res/Configuration;->isScreenWideColorGamut()Z
-HSPLandroid/content/res/Configuration;->needNewResources(II)Z
-HSPLandroid/content/res/Configuration;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/content/res/Configuration;->readFromProto(Landroid/util/proto/ProtoInputStream;J)V
-HSPLandroid/content/res/Configuration;->reduceScreenLayout(III)I
-HSPLandroid/content/res/Configuration;->resetScreenLayout(I)I
-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+]Ljava/lang/Object;Ljava/util/Locale;]Ljava/util/Locale;Ljava/util/Locale;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
-HSPLandroid/content/res/Configuration;->setTo(Landroid/content/res/Configuration;II)V
-HSPLandroid/content/res/Configuration;->setToDefaults()V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
-HSPLandroid/content/res/Configuration;->toString()Ljava/lang/String;
-HSPLandroid/content/res/Configuration;->unset()V
-HSPLandroid/content/res/Configuration;->updateFrom(Landroid/content/res/Configuration;)I+]Ljava/lang/Object;Ljava/util/Locale;]Ljava/util/Locale;Ljava/util/Locale;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/os/LocaleList;Landroid/os/LocaleList;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
-HSPLandroid/content/res/Configuration;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/content/res/ConfigurationBoundResourceCache;-><init>()V
-HSPLandroid/content/res/ConfigurationBoundResourceCache;->get(JLandroid/content/res/Resources$Theme;)Ljava/lang/Object;
-HSPLandroid/content/res/ConfigurationBoundResourceCache;->getGeneration()I
-HSPLandroid/content/res/ConfigurationBoundResourceCache;->getInstance(JLandroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Ljava/lang/Object;
-HSPLandroid/content/res/ConfigurationBoundResourceCache;->onConfigurationChange(I)V
-HSPLandroid/content/res/ConfigurationBoundResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;I)V
-HSPLandroid/content/res/ConfigurationBoundResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;IZ)V
-HSPLandroid/content/res/ConfigurationBoundResourceCache;->shouldInvalidateEntry(Landroid/content/res/ConstantState;I)Z
-HSPLandroid/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;
-HSPLandroid/content/res/DrawableCache;->shouldInvalidateEntry(Landroid/graphics/drawable/Drawable$ConstantState;I)Z
-HSPLandroid/content/res/DrawableCache;->shouldInvalidateEntry(Ljava/lang/Object;I)Z
-HSPLandroid/content/res/FeatureFlagsImpl;->defaultLocale()Z
-HSPLandroid/content/res/Flags;->defaultLocale()Z+]Landroid/content/res/FeatureFlags;Landroid/content/res/FeatureFlagsImpl;
-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/FontScaleConverterFactory;->forScale(F)Landroid/content/res/FontScaleConverter;
-HSPLandroid/content/res/FontScaleConverterFactory;->isNonLinearFontScalingActive(F)Z
-HSPLandroid/content/res/GradientColor;-><init>()V
-HSPLandroid/content/res/GradientColor;->canApplyTheme()Z
-HSPLandroid/content/res/GradientColor;->createFromXmlInner(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroid/content/res/GradientColor;
-HSPLandroid/content/res/GradientColor;->getConstantState()Landroid/content/res/ConstantState;
-HSPLandroid/content/res/GradientColor;->getDefaultColor()I
-HSPLandroid/content/res/GradientColor;->getShader()Landroid/graphics/Shader;
-HSPLandroid/content/res/GradientColor;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
-HSPLandroid/content/res/GradientColor;->onColorsChange()V
-HSPLandroid/content/res/GradientColor;->updateRootElementState(Landroid/content/res/TypedArray;)V
-HSPLandroid/content/res/ResourceId;->isValid(I)Z
-HSPLandroid/content/res/Resources$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
-HSPLandroid/content/res/Resources$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-HSPLandroid/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$Theme-IA;)V
-HSPLandroid/content/res/Resources$Theme;->applyStyle(IZ)V
-HSPLandroid/content/res/Resources$Theme;->equals(Ljava/lang/Object;)Z
-HSPLandroid/content/res/Resources$Theme;->getAppliedStyleResId()I
-HSPLandroid/content/res/Resources$Theme;->getChangingConfigurations()I
-HSPLandroid/content/res/Resources$Theme;->getKey()Landroid/content/res/Resources$ThemeKey;
-HSPLandroid/content/res/Resources$Theme;->getParentThemeIdentifier(I)I
-HSPLandroid/content/res/Resources$Theme;->getResources()Landroid/content/res/Resources;
-HSPLandroid/content/res/Resources$Theme;->getTheme()[Ljava/lang/String;
-HSPLandroid/content/res/Resources$Theme;->hashCode()I
-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;+]Landroid/content/res/ResourcesImpl$ThemeImpl;Landroid/content/res/ResourcesImpl$ThemeImpl;
-HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes([I)Landroid/content/res/TypedArray;
-HSPLandroid/content/res/Resources$Theme;->rebase()V
-HSPLandroid/content/res/Resources$Theme;->rebase(Landroid/content/res/ResourcesImpl;)V
-HSPLandroid/content/res/Resources$Theme;->resolveAttribute(ILandroid/util/TypedValue;Z)Z
-HSPLandroid/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$Theme;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/res/Resources;Landroid/content/res/Resources;
-HSPLandroid/content/res/Resources$ThemeKey;-><init>()V
-HSPLandroid/content/res/Resources$ThemeKey;->append(IZ)V
-HSPLandroid/content/res/Resources$ThemeKey;->clone()Landroid/content/res/Resources$ThemeKey;
-HSPLandroid/content/res/Resources$ThemeKey;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/content/res/Resources$ThemeKey;]Landroid/content/res/Resources$ThemeKey;Landroid/content/res/Resources$ThemeKey;
-HSPLandroid/content/res/Resources$ThemeKey;->hashCode()I
-HSPLandroid/content/res/Resources$ThemeKey;->moveToLast(I)V
-HSPLandroid/content/res/Resources$ThemeKey;->setTo(Landroid/content/res/Resources$ThemeKey;)V+][I[I][Z[Z
-HSPLandroid/content/res/Resources;-><init>(Landroid/content/res/AssetManager;Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;)V
-HSPLandroid/content/res/Resources;-><init>(Ljava/lang/ClassLoader;)V+]Ljava/util/Set;Ljava/util/Collections$SynchronizedSet;
-HSPLandroid/content/res/Resources;->addLoaders([Landroid/content/res/loader/ResourcesLoader;)V
-HSPLandroid/content/res/Resources;->checkCallbacksRegistered()V
-HSPLandroid/content/res/Resources;->cleanupThemeReferences()V
-HSPLandroid/content/res/Resources;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
-HSPLandroid/content/res/Resources;->dumpHistory(Ljava/io/PrintWriter;Ljava/lang/String;)V
-HSPLandroid/content/res/Resources;->finishPreloading()V
-HSPLandroid/content/res/Resources;->getAnimation(I)Landroid/content/res/XmlResourceParser;
-HSPLandroid/content/res/Resources;->getAnimatorCache()Landroid/content/res/ConfigurationBoundResourceCache;
-HSPLandroid/content/res/Resources;->getAssets()Landroid/content/res/AssetManager;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;
-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
-HSPLandroid/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;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;
-HSPLandroid/content/res/Resources;->getDimension(I)F
-HSPLandroid/content/res/Resources;->getDimensionPixelOffset(I)I
-HSPLandroid/content/res/Resources;->getDimensionPixelSize(I)I
-HSPLandroid/content/res/Resources;->getDisplayAdjustments()Landroid/view/DisplayAdjustments;
-HSPLandroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;
-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(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
-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;
-HSPLandroid/content/res/Resources;->getLoaders()Ljava/util/List;
-HSPLandroid/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;
-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;->hasOverrideDisplayAdjustments()Z
-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;
-HSPLandroid/content/res/Resources;->loadDrawable(Landroid/util/TypedValue;IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
-HSPLandroid/content/res/Resources;->loadXmlResourceParser(ILjava/lang/String;)Landroid/content/res/XmlResourceParser;
-HSPLandroid/content/res/Resources;->loadXmlResourceParser(Ljava/lang/String;IILjava/lang/String;)Landroid/content/res/XmlResourceParser;
-HSPLandroid/content/res/Resources;->newTheme()Landroid/content/res/Resources$Theme;
-HSPLandroid/content/res/Resources;->obtainAttributes(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
-HSPLandroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;
-HSPLandroid/content/res/Resources;->obtainTempTypedValue()Landroid/util/TypedValue;
-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;->preloadColorStateLists(Landroid/content/res/Resources;Landroid/content/res/TypedArray;)I
-HSPLandroid/content/res/Resources;->preloadDrawables(Landroid/content/res/Resources;Landroid/content/res/TypedArray;)I
-HSPLandroid/content/res/Resources;->preloadFonts(I)V
-HSPLandroid/content/res/Resources;->preloadResources()V
-HSPLandroid/content/res/Resources;->releaseTempTypedValue(Landroid/util/TypedValue;)V
-HSPLandroid/content/res/Resources;->resourceHasPackage(I)Z
-HSPLandroid/content/res/Resources;->selectDefaultTheme(II)I
-HSPLandroid/content/res/Resources;->selectSystemTheme(IIIIII)I
-HSPLandroid/content/res/Resources;->setCallbacks(Landroid/content/res/Resources$UpdateCallbacks;)V
-HSPLandroid/content/res/Resources;->setImpl(Landroid/content/res/ResourcesImpl;)V
-HSPLandroid/content/res/Resources;->startPreloading()V
-HSPLandroid/content/res/Resources;->updateConfiguration(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;)V
-HSPLandroid/content/res/Resources;->updateConfiguration(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;)V
-HSPLandroid/content/res/Resources;->updateSystemConfiguration(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;)V
-HSPLandroid/content/res/ResourcesImpl$$ExternalSyntheticLambda0;-><init>()V
-HSPLandroid/content/res/ResourcesImpl$$ExternalSyntheticLambda0;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V
-HSPLandroid/content/res/ResourcesImpl$$ExternalSyntheticLambda1;-><init>()V
-HSPLandroid/content/res/ResourcesImpl$$ExternalSyntheticLambda1;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V
-HSPLandroid/content/res/ResourcesImpl$$ExternalSyntheticLambda2;-><init>()V
-HSPLandroid/content/res/ResourcesImpl$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;
-HSPLandroid/content/res/ResourcesImpl$LookupStack;-><init>()V
-HSPLandroid/content/res/ResourcesImpl$LookupStack;-><init>(Landroid/content/res/ResourcesImpl$LookupStack-IA;)V
-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+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;
-HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->applyStyle(IZ)V
-HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->finalize()V
-HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->getAppliedStyleResId()I
-HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->getChangingConfigurations()I
-HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->getKey()Landroid/content/res/Resources$ThemeKey;
-HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->getParentThemeIdentifier(I)I
-HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->getTheme()[Ljava/lang/String;
-HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->obtainStyledAttributes(Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;+]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;
-HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->rebase()V
-HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->rebase(Landroid/content/res/AssetManager;)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;->-$$Nest$sfgetsThemeRegistry()Llibcore/util/NativeAllocationRegistry;
-HSPLandroid/content/res/ResourcesImpl;-><init>(Landroid/content/res/AssetManager;Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;Landroid/view/DisplayAdjustments;)V+]Landroid/view/DisplayAdjustments;Landroid/view/DisplayAdjustments;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/util/DisplayMetrics;Landroid/util/DisplayMetrics;]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;
-HSPLandroid/content/res/ResourcesImpl;->adjustLanguageTag(Ljava/lang/String;)Ljava/lang/String;
-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;I)V+]Landroid/content/res/DrawableCache;Landroid/content/res/DrawableCache;]Landroid/graphics/drawable/Drawable;megamorphic_types
-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;
-HSPLandroid/content/res/ResourcesImpl;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
-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;
-HSPLandroid/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
-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
-HSPLandroid/content/res/ResourcesImpl;->isIntLike(Ljava/lang/String;)Z
-HSPLandroid/content/res/ResourcesImpl;->lambda$decodeImageDrawable$1(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V
-HSPLandroid/content/res/ResourcesImpl;->lambda$new$0()Landroid/content/res/ResourcesImpl$LookupStack;
-HSPLandroid/content/res/ResourcesImpl;->loadColorStateList(Landroid/content/res/Resources;Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
-HSPLandroid/content/res/ResourcesImpl;->loadComplexColor(Landroid/content/res/Resources;Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor;
-HSPLandroid/content/res/ResourcesImpl;->loadComplexColorForCookie(Landroid/content/res/Resources;Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor;
-HSPLandroid/content/res/ResourcesImpl;->loadComplexColorFromName(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/TypedValue;I)Landroid/content/res/ComplexColor;+]Landroid/content/res/ConfigurationBoundResourceCache;Landroid/content/res/ConfigurationBoundResourceCache;
-HSPLandroid/content/res/ResourcesImpl;->loadDrawable(Landroid/content/res/Resources;Landroid/util/TypedValue;IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;+]Landroid/graphics/drawable/Drawable$ConstantState;megamorphic_types]Landroid/content/res/DrawableCache;Landroid/content/res/DrawableCache;]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/graphics/drawable/Drawable;megamorphic_types
-HSPLandroid/content/res/ResourcesImpl;->loadDrawableForCookie(Landroid/content/res/Resources;Landroid/util/TypedValue;II)Landroid/graphics/drawable/Drawable;
-HSPLandroid/content/res/ResourcesImpl;->loadFont(Landroid/content/res/Resources;Landroid/util/TypedValue;I)Landroid/graphics/Typeface;
-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;+]Ljava/lang/Object;Ljava/lang/String;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;]Landroid/content/res/XmlBlock;Landroid/content/res/XmlBlock;
-HSPLandroid/content/res/ResourcesImpl;->newThemeImpl()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+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/app/ResourcesManager;Landroid/app/ResourcesManager;]Landroid/content/res/CompatibilityInfo;Landroid/content/res/CompatibilityInfo$1;]Ljava/util/Locale;Ljava/util/Locale;]Landroid/content/res/DrawableCache;Landroid/content/res/DrawableCache;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/view/DisplayAdjustments;Landroid/view/DisplayAdjustments;]Landroid/os/LocaleList;Landroid/os/LocaleList;]Landroid/util/DisplayMetrics;Landroid/util/DisplayMetrics;]Landroid/content/res/ConfigurationBoundResourceCache;Landroid/content/res/ConfigurationBoundResourceCache;
-HSPLandroid/content/res/ResourcesImpl;->updateConfigurationImpl(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Z)V+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/app/ResourcesManager;Landroid/app/ResourcesManager;]Landroid/content/res/CompatibilityInfo;Landroid/content/res/CompatibilityInfo$1;]Ljava/util/Locale;Ljava/util/Locale;]Landroid/content/res/DrawableCache;Landroid/content/res/DrawableCache;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/view/DisplayAdjustments;Landroid/view/DisplayAdjustments;]Landroid/os/LocaleList;Landroid/os/LocaleList;]Landroid/util/DisplayMetrics;Landroid/util/DisplayMetrics;]Landroid/content/res/ConfigurationBoundResourceCache;Landroid/content/res/ConfigurationBoundResourceCache;]Ljava/lang/Object;Ljava/util/Locale;
-HSPLandroid/content/res/ResourcesImpl;->verifyPreloadConfig(IIILjava/lang/String;)Z
-HSPLandroid/content/res/ResourcesKey;-><init>(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;[Landroid/content/res/loader/ResourcesLoader;)V
-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
-HSPLandroid/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;
-HSPLandroid/content/res/StringBlock;->getSequence(I)Ljava/lang/CharSequence;+]Landroid/util/SparseArray;Landroid/util/SparseArray;
-HSPLandroid/content/res/ThemedResourceCache;-><init>()V
-HSPLandroid/content/res/ThemedResourceCache;->get(JLandroid/content/res/Resources$Theme;)Ljava/lang/Object;
-HSPLandroid/content/res/ThemedResourceCache;->getGeneration()I
-HSPLandroid/content/res/ThemedResourceCache;->getThemedLocked(Landroid/content/res/Resources$Theme;Z)Landroid/util/LongSparseArray;
-HSPLandroid/content/res/ThemedResourceCache;->getUnthemedLocked(Z)Landroid/util/LongSparseArray;
-HSPLandroid/content/res/ThemedResourceCache;->onConfigurationChange(I)V
-HSPLandroid/content/res/ThemedResourceCache;->pruneEntriesLocked(Landroid/util/LongSparseArray;I)Z
-HSPLandroid/content/res/ThemedResourceCache;->pruneLocked(I)Z
-HSPLandroid/content/res/ThemedResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;I)V
-HSPLandroid/content/res/ThemedResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;IZ)V
-HSPLandroid/content/res/TypedArray;-><init>(Landroid/content/res/Resources;)V
-HSPLandroid/content/res/TypedArray;->extractThemeAttrs()[I
-HSPLandroid/content/res/TypedArray;->extractThemeAttrs([I)[I
-HSPLandroid/content/res/TypedArray;->getBoolean(IZ)Z
-HSPLandroid/content/res/TypedArray;->getChangingConfigurations()I+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;
-HSPLandroid/content/res/TypedArray;->getColor(II)I
-HSPLandroid/content/res/TypedArray;->getColorStateList(I)Landroid/content/res/ColorStateList;+]Landroid/content/res/Resources;Landroid/content/res/Resources;
-HSPLandroid/content/res/TypedArray;->getComplexColor(I)Landroid/content/res/ComplexColor;
-HSPLandroid/content/res/TypedArray;->getDimension(IF)F
-HSPLandroid/content/res/TypedArray;->getDimensionPixelOffset(II)I
-HSPLandroid/content/res/TypedArray;->getDimensionPixelSize(II)I
-HSPLandroid/content/res/TypedArray;->getDrawable(I)Landroid/graphics/drawable/Drawable;+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;
-HSPLandroid/content/res/TypedArray;->getDrawableForDensity(II)Landroid/graphics/drawable/Drawable;+]Landroid/content/res/Resources;Landroid/content/res/Resources;
-HSPLandroid/content/res/TypedArray;->getFloat(IF)F
-HSPLandroid/content/res/TypedArray;->getFont(I)Landroid/graphics/Typeface;
-HSPLandroid/content/res/TypedArray;->getFraction(IIIF)F
-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
-HSPLandroid/content/res/TypedArray;->getLayoutDimension(II)I
-HSPLandroid/content/res/TypedArray;->getLayoutDimension(ILjava/lang/String;)I
-HSPLandroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;+]Ljava/lang/CharSequence;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;+]Ljava/lang/CharSequence;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
-HSPLandroid/content/res/TypedArray;->hasValue(I)Z
-HSPLandroid/content/res/TypedArray;->hasValueOrEmpty(I)Z
-HSPLandroid/content/res/TypedArray;->length()I
-HSPLandroid/content/res/TypedArray;->loadStringValueAt(I)Ljava/lang/CharSequence;+]Landroid/content/res/XmlBlock$Parser;Landroid/content/res/XmlBlock$Parser;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;]Landroid/content/res/Validator;Landroid/content/res/Validator;
-HSPLandroid/content/res/TypedArray;->obtain(Landroid/content/res/Resources;I)Landroid/content/res/TypedArray;+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool;
-HSPLandroid/content/res/TypedArray;->peekValue(I)Landroid/util/TypedValue;
-HSPLandroid/content/res/TypedArray;->recycle()V+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool;
-HSPLandroid/content/res/TypedArray;->resize(I)V+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime;
-HSPLandroid/content/res/XmlBlock$Parser;-><init>(Landroid/content/res/XmlBlock;JLandroid/content/res/XmlBlock;)V
-HSPLandroid/content/res/XmlBlock$Parser;->close()V
-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
-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;
-HSPLandroid/content/res/XmlBlock$Parser;->getAttributeNameResource(I)I
-HSPLandroid/content/res/XmlBlock$Parser;->getAttributeResourceValue(II)I
-HSPLandroid/content/res/XmlBlock$Parser;->getAttributeResourceValue(Ljava/lang/String;Ljava/lang/String;I)I
-HSPLandroid/content/res/XmlBlock$Parser;->getAttributeValue(I)Ljava/lang/String;+]Landroid/content/res/StringBlock;Landroid/content/res/StringBlock;
-HSPLandroid/content/res/XmlBlock$Parser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/content/res/XmlBlock$Parser;->getClassAttribute()Ljava/lang/String;
-HSPLandroid/content/res/XmlBlock$Parser;->getDepth()I
-HSPLandroid/content/res/XmlBlock$Parser;->getEventType()I
-HSPLandroid/content/res/XmlBlock$Parser;->getLineNumber()I
-HSPLandroid/content/res/XmlBlock$Parser;->getName()Ljava/lang/String;+]Landroid/content/res/StringBlock;Landroid/content/res/StringBlock;
-HSPLandroid/content/res/XmlBlock$Parser;->getPooledString(I)Ljava/lang/CharSequence;+]Landroid/content/res/StringBlock;Landroid/content/res/StringBlock;
-HSPLandroid/content/res/XmlBlock$Parser;->getPositionDescription()Ljava/lang/String;
-HSPLandroid/content/res/XmlBlock$Parser;->getSequenceString(Ljava/lang/CharSequence;)Ljava/lang/String;
-HSPLandroid/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+]Landroid/content/res/XmlBlock$Parser;Landroid/content/res/XmlBlock$Parser;]Landroid/content/res/Validator;Landroid/content/res/Validator;
-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;->-$$Nest$fgetmOpenCount(Landroid/content/res/XmlBlock;)I
-HSPLandroid/content/res/XmlBlock;->-$$Nest$fputmOpenCount(Landroid/content/res/XmlBlock;I)V
-HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetAttributeCount(J)I
-HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetAttributeData(JI)I
-HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetAttributeDataType(JI)I
-HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetAttributeIndex(JLjava/lang/String;Ljava/lang/String;)I
-HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetAttributeName(JI)I
-HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetAttributeStringValue(JI)I
-HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetClassAttribute(J)I
-HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetLineNumber(J)I
-HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetText(J)I
-HSPLandroid/content/res/XmlBlock;-><init>(Landroid/content/res/AssetManager;J)V
-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/DefaultMimeMapFactory$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/content/type/DefaultMimeMapFactory;->create()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/database/AbstractCursor$SelfContentObserver;-><init>(Landroid/database/AbstractCursor;)V
-HSPLandroid/database/AbstractCursor$SelfContentObserver;->onChange(Z)V
-HSPLandroid/database/AbstractCursor;-><init>()V+]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard;
-HSPLandroid/database/AbstractCursor;->checkPosition()V+]Landroid/database/AbstractCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;
-HSPLandroid/database/AbstractCursor;->close()V+]Landroid/database/AbstractCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;,Landroid/database/MatrixCursor;]Landroid/database/ContentObservable;Landroid/database/ContentObservable;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard;
-HSPLandroid/database/AbstractCursor;->fillWindow(ILandroid/database/CursorWindow;)V
-HSPLandroid/database/AbstractCursor;->finalize()V+]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard;
-HSPLandroid/database/AbstractCursor;->getColumnCount()I+]Landroid/database/AbstractCursor;Landroid/database/sqlite/SQLiteCursor;
-HSPLandroid/database/AbstractCursor;->getColumnIndex(Ljava/lang/String;)I
-HSPLandroid/database/AbstractCursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
-HSPLandroid/database/AbstractCursor;->getColumnName(I)Ljava/lang/String;+]Landroid/database/AbstractCursor;Landroid/database/sqlite/SQLiteCursor;
-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+]Landroid/database/AbstractCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;
-HSPLandroid/database/AbstractCursor;->isClosed()Z
-HSPLandroid/database/AbstractCursor;->isLast()Z
-HSPLandroid/database/AbstractCursor;->move(I)Z
-HSPLandroid/database/AbstractCursor;->moveToFirst()Z
-HSPLandroid/database/AbstractCursor;->moveToLast()Z
-HSPLandroid/database/AbstractCursor;->moveToNext()Z+]Landroid/database/AbstractCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/MatrixCursor;,Landroid/database/BulkCursorToCursorAdaptor;
-HSPLandroid/database/AbstractCursor;->moveToPosition(I)Z+]Landroid/database/AbstractCursor;missing_types
-HSPLandroid/database/AbstractCursor;->onChange(Z)V
-HSPLandroid/database/AbstractCursor;->onDeactivateOrClose()V+]Landroid/database/DataSetObservable;Landroid/database/DataSetObservable;
-HSPLandroid/database/AbstractCursor;->onMove(II)Z
-HSPLandroid/database/AbstractCursor;->registerContentObserver(Landroid/database/ContentObserver;)V
-HSPLandroid/database/AbstractCursor;->registerDataSetObserver(Landroid/database/DataSetObserver;)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
-HSPLandroid/database/AbstractCursor;->unregisterContentObserver(Landroid/database/ContentObserver;)V
-HSPLandroid/database/AbstractWindowedCursor;-><init>()V
-HSPLandroid/database/AbstractWindowedCursor;->checkPosition()V
-HSPLandroid/database/AbstractWindowedCursor;->clearOrCreateWindow(Ljava/lang/String;)V
-HSPLandroid/database/AbstractWindowedCursor;->closeWindow()V+]Landroid/database/CursorWindow;Landroid/database/CursorWindow;
-HSPLandroid/database/AbstractWindowedCursor;->getBlob(I)[B
-HSPLandroid/database/AbstractWindowedCursor;->getDouble(I)D+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;]Landroid/database/CursorWindow;Landroid/database/CursorWindow;
-HSPLandroid/database/AbstractWindowedCursor;->getFloat(I)F
-HSPLandroid/database/AbstractWindowedCursor;->getInt(I)I+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;]Landroid/database/CursorWindow;Landroid/database/CursorWindow;
-HSPLandroid/database/AbstractWindowedCursor;->getLong(I)J+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;]Landroid/database/CursorWindow;Landroid/database/CursorWindow;
-HSPLandroid/database/AbstractWindowedCursor;->getString(I)Ljava/lang/String;+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;]Landroid/database/CursorWindow;Landroid/database/CursorWindow;
-HSPLandroid/database/AbstractWindowedCursor;->getType(I)I
-HSPLandroid/database/AbstractWindowedCursor;->getWindow()Landroid/database/CursorWindow;
-HSPLandroid/database/AbstractWindowedCursor;->hasWindow()Z
-HSPLandroid/database/AbstractWindowedCursor;->isNull(I)Z+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;]Landroid/database/CursorWindow;Landroid/database/CursorWindow;
-HSPLandroid/database/AbstractWindowedCursor;->onDeactivateOrClose()V+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;
-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;
-HSPLandroid/database/BulkCursorToCursorAdaptor;-><init>()V
-HSPLandroid/database/BulkCursorToCursorAdaptor;->close()V
-HSPLandroid/database/BulkCursorToCursorAdaptor;->getColumnNames()[Ljava/lang/String;
-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+]Landroid/database/IBulkCursor;Landroid/database/BulkCursorProxy;]Landroid/database/BulkCursorToCursorAdaptor;Landroid/database/BulkCursorToCursorAdaptor;
-HSPLandroid/database/BulkCursorToCursorAdaptor;->throwIfCursorIsClosed()V
-HSPLandroid/database/ContentObservable;-><init>()V
-HSPLandroid/database/ContentObservable;->dispatchChange(ZLandroid/net/Uri;)V
-HSPLandroid/database/ContentObservable;->registerObserver(Landroid/database/ContentObserver;)V
-HSPLandroid/database/ContentObserver$$ExternalSyntheticLambda0;-><init>(Landroid/database/ContentObserver;ZLjava/util/Collection;II)V
-HSPLandroid/database/ContentObserver$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/database/ContentObserver$Transport;-><init>(Landroid/database/ContentObserver;)V
-HSPLandroid/database/ContentObserver$Transport;->onChangeEtc(Z[Landroid/net/Uri;II)V
-HSPLandroid/database/ContentObserver$Transport;->releaseContentObserver()V
-HSPLandroid/database/ContentObserver;-><init>(Landroid/os/Handler;)V
-HSPLandroid/database/ContentObserver;->dispatchChange(ZLjava/util/Collection;II)V
-HSPLandroid/database/ContentObserver;->getContentObserver()Landroid/database/IContentObserver;
-HSPLandroid/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;->onChange(ZLjava/util/Collection;I)V
-HSPLandroid/database/ContentObserver;->onChange(ZLjava/util/Collection;II)V
-HSPLandroid/database/ContentObserver;->releaseContentObserver()Landroid/database/IContentObserver;
-HSPLandroid/database/CrossProcessCursorWrapper;-><init>(Landroid/database/Cursor;)V
-HSPLandroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;-><init>(Landroid/database/IContentObserver;Landroid/os/IBinder$DeathRecipient;)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
-HSPLandroid/database/CursorToBulkCursorAdaptor;->binderDied()V
-HSPLandroid/database/CursorToBulkCursorAdaptor;->close()V
-HSPLandroid/database/CursorToBulkCursorAdaptor;->closeFilledWindowLocked()V
-HSPLandroid/database/CursorToBulkCursorAdaptor;->createAndRegisterObserverProxyLocked(Landroid/database/IContentObserver;)V
-HSPLandroid/database/CursorToBulkCursorAdaptor;->disposeLocked()V
-HSPLandroid/database/CursorToBulkCursorAdaptor;->getBulkCursorDescriptor()Landroid/database/BulkCursorDescriptor;
-HSPLandroid/database/CursorToBulkCursorAdaptor;->getWindow(I)Landroid/database/CursorWindow;
-HSPLandroid/database/CursorToBulkCursorAdaptor;->throwIfCursorIsClosed()V
-HSPLandroid/database/CursorToBulkCursorAdaptor;->unregisterObserverProxyLocked()V
-HSPLandroid/database/CursorWindow$1;->createFromParcel(Landroid/os/Parcel;)Landroid/database/CursorWindow;
-HSPLandroid/database/CursorWindow$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-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-IA;)V
-HSPLandroid/database/CursorWindow;-><init>(Ljava/lang/String;)V
-HSPLandroid/database/CursorWindow;-><init>(Ljava/lang/String;J)V+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/database/CursorWindow;->allocRow()Z
-HSPLandroid/database/CursorWindow;->clear()V
-HSPLandroid/database/CursorWindow;->dispose()V+]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard;
-HSPLandroid/database/CursorWindow;->finalize()V+]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard;
-HSPLandroid/database/CursorWindow;->getBlob(II)[B
-HSPLandroid/database/CursorWindow;->getCursorWindowSize()I
-HSPLandroid/database/CursorWindow;->getDouble(II)D+]Landroid/database/CursorWindow;Landroid/database/CursorWindow;
-HSPLandroid/database/CursorWindow;->getFloat(II)F
-HSPLandroid/database/CursorWindow;->getInt(II)I+]Landroid/database/CursorWindow;Landroid/database/CursorWindow;
-HSPLandroid/database/CursorWindow;->getLong(II)J+]Landroid/database/CursorWindow;Landroid/database/CursorWindow;
-HSPLandroid/database/CursorWindow;->getNumRows()I+]Landroid/database/CursorWindow;Landroid/database/CursorWindow;
-HSPLandroid/database/CursorWindow;->getStartPosition()I
-HSPLandroid/database/CursorWindow;->getString(II)Ljava/lang/String;+]Landroid/database/CursorWindow;Landroid/database/CursorWindow;
-HSPLandroid/database/CursorWindow;->getType(II)I+]Landroid/database/CursorWindow;Landroid/database/CursorWindow;
-HSPLandroid/database/CursorWindow;->newFromParcel(Landroid/os/Parcel;)Landroid/database/CursorWindow;
-HSPLandroid/database/CursorWindow;->onAllReferencesReleased()V
-HSPLandroid/database/CursorWindow;->putLong(JII)Z
-HSPLandroid/database/CursorWindow;->putNull(II)Z
-HSPLandroid/database/CursorWindow;->putString(Ljava/lang/String;II)Z
-HSPLandroid/database/CursorWindow;->setNumColumns(I)Z
-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;->getBlob(I)[B
-HSPLandroid/database/CursorWrapper;->getColumnCount()I
-HSPLandroid/database/CursorWrapper;->getColumnIndex(Ljava/lang/String;)I
-HSPLandroid/database/CursorWrapper;->getColumnIndexOrThrow(Ljava/lang/String;)I
-HSPLandroid/database/CursorWrapper;->getColumnName(I)Ljava/lang/String;
-HSPLandroid/database/CursorWrapper;->getColumnNames()[Ljava/lang/String;
-HSPLandroid/database/CursorWrapper;->getCount()I
-HSPLandroid/database/CursorWrapper;->getExtras()Landroid/os/Bundle;
-HSPLandroid/database/CursorWrapper;->getInt(I)I+]Landroid/database/Cursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/content/ContentProviderClient$CursorWrapperInner;,Landroid/database/BulkCursorToCursorAdaptor;
-HSPLandroid/database/CursorWrapper;->getLong(I)J
-HSPLandroid/database/CursorWrapper;->getPosition()I
-HSPLandroid/database/CursorWrapper;->getString(I)Ljava/lang/String;
-HSPLandroid/database/CursorWrapper;->getType(I)I
-HSPLandroid/database/CursorWrapper;->getWrappedCursor()Landroid/database/Cursor;
-HSPLandroid/database/CursorWrapper;->isAfterLast()Z+]Landroid/database/Cursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/content/ContentProviderClient$CursorWrapperInner;,Landroid/database/BulkCursorToCursorAdaptor;
-HSPLandroid/database/CursorWrapper;->isClosed()Z
-HSPLandroid/database/CursorWrapper;->isLast()Z
-HSPLandroid/database/CursorWrapper;->isNull(I)Z+]Landroid/database/Cursor;Landroid/database/BulkCursorToCursorAdaptor;
-HSPLandroid/database/CursorWrapper;->moveToFirst()Z
-HSPLandroid/database/CursorWrapper;->moveToLast()Z
-HSPLandroid/database/CursorWrapper;->moveToNext()Z
-HSPLandroid/database/CursorWrapper;->moveToPosition(I)Z
-HSPLandroid/database/CursorWrapper;->registerContentObserver(Landroid/database/ContentObserver;)V
-HSPLandroid/database/DataSetObservable;-><init>()V
-HSPLandroid/database/DataSetObservable;->notifyChanged()V
-HSPLandroid/database/DataSetObservable;->notifyInvalidated()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/database/DataSetObserver;-><init>()V
-HSPLandroid/database/DatabaseUtils;->appendEscapedSQLString(Ljava/lang/StringBuilder;Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;
-HSPLandroid/database/DatabaseUtils;->categorizeStatement(Ljava/lang/String;Ljava/lang/String;)I+]Ljava/lang/Object;Ljava/lang/String;]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/database/DatabaseUtils;->cursorFillWindow(Landroid/database/Cursor;ILandroid/database/CursorWindow;)V
-HSPLandroid/database/DatabaseUtils;->getSqlStatementPrefixSimple(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/database/DatabaseUtils;->getSqlStatementType(Ljava/lang/String;)I
-HSPLandroid/database/DatabaseUtils;->getSqlStatementTypeExtended(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
-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
-HSPLandroid/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;->stringForQuery(Landroid/database/sqlite/SQLiteStatement;[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;
-HSPLandroid/database/IContentObserver$Stub$Proxy;->onChangeEtc(Z[Landroid/net/Uri;II)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;->getDefaultTransactionName(I)Ljava/lang/String;
-HSPLandroid/database/IContentObserver$Stub;->getMaxTransactionId()I
-HSPLandroid/database/IContentObserver$Stub;->getTransactionName(I)Ljava/lang/String;
-HSPLandroid/database/IContentObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-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;
-HSPLandroid/database/MatrixCursor;-><init>([Ljava/lang/String;)V
-HSPLandroid/database/MatrixCursor;-><init>([Ljava/lang/String;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;->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;
-HSPLandroid/database/MergeCursor$1;-><init>(Landroid/database/MergeCursor;)V
-HSPLandroid/database/MergeCursor$1;->onInvalidated()V
-HSPLandroid/database/MergeCursor;-><init>([Landroid/database/Cursor;)V
-HSPLandroid/database/MergeCursor;->close()V
-HSPLandroid/database/MergeCursor;->getColumnNames()[Ljava/lang/String;
-HSPLandroid/database/MergeCursor;->getCount()I
-HSPLandroid/database/MergeCursor;->getString(I)Ljava/lang/String;
-HSPLandroid/database/MergeCursor;->onMove(II)Z
-HSPLandroid/database/Observable;-><init>()V
-HSPLandroid/database/Observable;->registerObserver(Ljava/lang/Object;)V
-HSPLandroid/database/Observable;->unregisterAll()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/database/Observable;->unregisterObserver(Ljava/lang/Object;)V
-HSPLandroid/database/sqlite/FeatureFlagsImpl;-><init>()V
-HSPLandroid/database/sqlite/FeatureFlagsImpl;->sqliteAllowTempTables()Z
-HSPLandroid/database/sqlite/Flags;-><clinit>()V
-HSPLandroid/database/sqlite/Flags;->sqliteAllowTempTables()Z+]Landroid/database/sqlite/FeatureFlags;Landroid/database/sqlite/FeatureFlagsImpl;
-HSPLandroid/database/sqlite/SQLiteClosable;-><init>()V
-HSPLandroid/database/sqlite/SQLiteClosable;->acquireReference()V
-HSPLandroid/database/sqlite/SQLiteClosable;->close()V+]Landroid/database/sqlite/SQLiteClosable;Landroid/database/CursorWindow;,Landroid/database/sqlite/SQLiteStatement;,Landroid/database/sqlite/SQLiteDatabase;,Landroid/database/sqlite/SQLiteQuery;
-HSPLandroid/database/sqlite/SQLiteClosable;->releaseReference()V+]Landroid/database/sqlite/SQLiteClosable;Landroid/database/CursorWindow;,Landroid/database/sqlite/SQLiteStatement;,Landroid/database/sqlite/SQLiteDatabase;,Landroid/database/sqlite/SQLiteQuery;
-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/SQLiteConnection$Operation;-><init>()V
-HSPLandroid/database/sqlite/SQLiteConnection$Operation;-><init>(Landroid/database/sqlite/SQLiteConnection$Operation-IA;)V
-HSPLandroid/database/sqlite/SQLiteConnection$Operation;->describe(Ljava/lang/StringBuilder;Z)V
-HSPLandroid/database/sqlite/SQLiteConnection$Operation;->getTraceMethodName()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+]Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteConnectionPool;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/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+]Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteConnectionPool;
-HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->failOperation(ILjava/lang/Exception;)V
-HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->getOperationLocked(I)Landroid/database/sqlite/SQLiteConnection$Operation;
-HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->newOperationCookieLocked(I)I
-HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->setResult(J)V
-HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->setResult(Ljava/lang/String;)V
-HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatement;-><init>()V
-HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;-><init>(Landroid/database/sqlite/SQLiteConnection;I)V
-HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->createStatement(Ljava/lang/String;)J
-HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->entryRemoved(ZLjava/lang/String;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
-HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->getLastSeqNum()J
-HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->getStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;+]Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
-HSPLandroid/database/sqlite/SQLiteConnection;->-$$Nest$fgetmConnectionPtr(Landroid/database/sqlite/SQLiteConnection;)J
-HSPLandroid/database/sqlite/SQLiteConnection;->-$$Nest$mfinalizePreparedStatement(Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
-HSPLandroid/database/sqlite/SQLiteConnection;->-$$Nest$smnativePrepareStatement(JLjava/lang/String;)J
-HSPLandroid/database/sqlite/SQLiteConnection;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteDatabaseConfiguration;IZ)V+]Landroid/database/sqlite/SQLiteDatabaseConfiguration;Landroid/database/sqlite/SQLiteDatabaseConfiguration;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard;
-HSPLandroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
-HSPLandroid/database/sqlite/SQLiteConnection;->acquirePreparedStatementLI(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;+]Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
-HSPLandroid/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V+]Landroid/database/sqlite/SQLiteDatabaseConfiguration;Landroid/database/sqlite/SQLiteDatabaseConfiguration;]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1;,Landroid/os/StrictMode$AndroidBlockGuardPolicy;
-HSPLandroid/database/sqlite/SQLiteConnection;->attachCancellationSignal(Landroid/os/CancellationSignal;)V+]Landroid/os/CancellationSignal;Landroid/os/CancellationSignal;
-HSPLandroid/database/sqlite/SQLiteConnection;->bindArguments(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V+]Ljava/lang/Object;Ljava/lang/String;]Ljava/lang/Number;Ljava/lang/Integer;,Ljava/lang/Double;,Ljava/lang/Long;
-HSPLandroid/database/sqlite/SQLiteConnection;->canonicalizeSyncMode(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteConnection;->checkDatabaseWiped()V
-HSPLandroid/database/sqlite/SQLiteConnection;->close()V
-HSPLandroid/database/sqlite/SQLiteConnection;->collectDbStats(Ljava/util/ArrayList;)V
-HSPLandroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V+]Landroid/os/CancellationSignal;Landroid/os/CancellationSignal;
-HSPLandroid/database/sqlite/SQLiteConnection;->dispose(Z)V
-HSPLandroid/database/sqlite/SQLiteConnection;->dumpUnsafe(Landroid/util/Printer;Z)V
-HSPLandroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Landroid/database/sqlite/SQLiteConnection$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog;
-HSPLandroid/database/sqlite/SQLiteConnection;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)I+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Landroid/database/sqlite/SQLiteConnection$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog;
-HSPLandroid/database/sqlite/SQLiteConnection;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZLandroid/os/CancellationSignal;)I+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Landroid/database/CursorWindow;Landroid/database/CursorWindow;]Landroid/database/sqlite/SQLiteConnection$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog;
-HSPLandroid/database/sqlite/SQLiteConnection;->executeForLastInsertedRowId(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
-HSPLandroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Landroid/database/sqlite/SQLiteConnection$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog;
-HSPLandroid/database/sqlite/SQLiteConnection;->executeForString(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)Ljava/lang/String;+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Landroid/database/sqlite/SQLiteConnection$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog;
-HSPLandroid/database/sqlite/SQLiteConnection;->executePerConnectionSqlFromConfiguration(I)V
-HSPLandroid/database/sqlite/SQLiteConnection;->finalize()V
-HSPLandroid/database/sqlite/SQLiteConnection;->finalizePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
-HSPLandroid/database/sqlite/SQLiteConnection;->getConnectionId()I
-HSPLandroid/database/sqlite/SQLiteConnection;->getMainDbStatsUnsafe(IJJ)Landroid/database/sqlite/SQLiteDebug$DbStats;
-HSPLandroid/database/sqlite/SQLiteConnection;->isCacheable(I)Z
-HSPLandroid/database/sqlite/SQLiteConnection;->isPreparedStatementInCache(Ljava/lang/String;)Z+]Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
-HSPLandroid/database/sqlite/SQLiteConnection;->isPrimaryConnection()Z
-HSPLandroid/database/sqlite/SQLiteConnection;->maybeTruncateWalFile()V
-HSPLandroid/database/sqlite/SQLiteConnection;->obtainPreparedStatement(Ljava/lang/String;JIIZJ)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
-HSPLandroid/database/sqlite/SQLiteConnection;->open()V+]Landroid/database/sqlite/SQLiteConnection$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog;
-HSPLandroid/database/sqlite/SQLiteConnection;->open(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteDatabaseConfiguration;IZ)Landroid/database/sqlite/SQLiteConnection;
-HSPLandroid/database/sqlite/SQLiteConnection;->prepare(Ljava/lang/String;Landroid/database/sqlite/SQLiteStatementInfo;)V+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Landroid/database/sqlite/SQLiteConnection$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog;
-HSPLandroid/database/sqlite/SQLiteConnection;->reconfigure(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
-HSPLandroid/database/sqlite/SQLiteConnection;->recyclePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
-HSPLandroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
-HSPLandroid/database/sqlite/SQLiteConnection;->releasePreparedStatementLI(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V+]Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
-HSPLandroid/database/sqlite/SQLiteConnection;->setAutoCheckpointInterval()V
-HSPLandroid/database/sqlite/SQLiteConnection;->setCustomFunctionsFromConfiguration()V
-HSPLandroid/database/sqlite/SQLiteConnection;->setForeignKeyModeFromConfiguration()V
-HSPLandroid/database/sqlite/SQLiteConnection;->setJournalFromConfiguration()V
-HSPLandroid/database/sqlite/SQLiteConnection;->setJournalMode(Ljava/lang/String;)V
-HSPLandroid/database/sqlite/SQLiteConnection;->setJournalSizeLimit()V
-HSPLandroid/database/sqlite/SQLiteConnection;->setLocaleFromConfiguration()V
-HSPLandroid/database/sqlite/SQLiteConnection;->setOnlyAllowReadOnlyOperations(Z)V
-HSPLandroid/database/sqlite/SQLiteConnection;->setPageSize()V
-HSPLandroid/database/sqlite/SQLiteConnection;->setSyncMode(Ljava/lang/String;)V
-HSPLandroid/database/sqlite/SQLiteConnection;->setSyncModeFromConfiguration()V
-HSPLandroid/database/sqlite/SQLiteConnection;->throwIfStatementForbidden(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
-HSPLandroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>()V
-HSPLandroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>(Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter-IA;)V
-HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->connectionAcquired(Landroid/database/sqlite/SQLiteConnection;)V
-HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->connectionClosed(Landroid/database/sqlite/SQLiteConnection;)V
-HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->connectionReleased(Landroid/database/sqlite/SQLiteConnection;)V
-HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/database/sqlite/SQLiteConnectionPool;-><init>(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->acquireConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)Landroid/database/sqlite/SQLiteConnection;
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->clearAcquiredConnectionsPreparedStatementCache()V+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap;]Ljava/util/Iterator;Ljava/util/WeakHashMap$KeyIterator;]Ljava/util/Set;Ljava/util/WeakHashMap$KeySet;
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->close()V
-HSPLandroid/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
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeExcessConnectionsAndLogExceptionsLocked()V
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->collectDbStats(Ljava/util/ArrayList;)V
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->disableIdleConnectionHandler()V
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->discardAcquiredConnectionsLocked()V
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->dispose(Z)V
-HSPLandroid/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+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap;
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->getPath()Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->getPriority(I)I
-HSPLandroid/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;
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->onStatementExecuted(J)V+]Ljava/util/concurrent/atomic/AtomicLong;Ljava/util/concurrent/atomic/AtomicLong;
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->open()V
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->open(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)Landroid/database/sqlite/SQLiteConnectionPool;
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->openConnectionLocked(Landroid/database/sqlite/SQLiteDatabaseConfiguration;Z)Landroid/database/sqlite/SQLiteConnection;
-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
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->recycleConnectionWaiterLocked(Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;)V
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->releaseConnection(Landroid/database/sqlite/SQLiteConnection;)V+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/database/sqlite/SQLiteConnectionPool;->setMaxConnectionPoolSizeLocked()V
-HSPLandroid/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;+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-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;+]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;
-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+]Landroid/database/sqlite/SQLiteQuery;Landroid/database/sqlite/SQLiteQuery;
-HSPLandroid/database/sqlite/SQLiteCursor;->close()V+]Landroid/database/sqlite/SQLiteCursorDriver;Landroid/database/sqlite/SQLiteDirectCursorDriver;]Landroid/database/sqlite/SQLiteQuery;Landroid/database/sqlite/SQLiteQuery;
-HSPLandroid/database/sqlite/SQLiteCursor;->fillWindow(I)V+]Landroid/database/CursorWindow;Landroid/database/CursorWindow;]Landroid/database/sqlite/SQLiteCursor;Landroid/database/sqlite/SQLiteCursor;]Landroid/database/sqlite/SQLiteQuery;Landroid/database/sqlite/SQLiteQuery;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase;
-HSPLandroid/database/sqlite/SQLiteCursor;->finalize()V
-HSPLandroid/database/sqlite/SQLiteCursor;->getColumnIndex(Ljava/lang/String;)I+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/Map;Ljava/util/HashMap;
-HSPLandroid/database/sqlite/SQLiteCursor;->getColumnNames()[Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteCursor;->getCount()I
-HSPLandroid/database/sqlite/SQLiteCursor;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;+]Landroid/database/sqlite/SQLiteQuery;Landroid/database/sqlite/SQLiteQuery;
-HSPLandroid/database/sqlite/SQLiteCursor;->onMove(II)Z+]Landroid/database/CursorWindow;Landroid/database/CursorWindow;
-HSPLandroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda0;-><init>(Landroid/database/sqlite/SQLiteDatabase;)V
-HSPLandroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
-HSPLandroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda2;-><init>()V
-HSPLandroid/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
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->addOpenFlags(I)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->build()Landroid/database/sqlite/SQLiteDatabase$OpenParams;
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->isWriteAheadLoggingEnabled()Z
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->removeOpenFlags(I)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->setCursorFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->setErrorHandler(Landroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->setIdleConnectionTimeout(J)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->setWriteAheadLoggingEnabled(Z)V
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmCursorFactory(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Landroid/database/sqlite/SQLiteDatabase$CursorFactory;
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmErrorHandler(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Landroid/database/DatabaseErrorHandler;
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmIdleConnectionTimeout(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)J
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmJournalMode(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmLookasideSlotCount(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)I
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmLookasideSlotSize(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)I
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmOpenFlags(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)I
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmSyncMode(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;-><init>(ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;IIJLjava/lang/String;Ljava/lang/String;)V
-HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;-><init>(ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;IIJLjava/lang/String;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$OpenParams-IA;)V
-HSPLandroid/database/sqlite/SQLiteDatabase;-><init>(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;IIJLjava/lang/String;Ljava/lang/String;)V+]Landroid/database/sqlite/SQLiteDatabaseConfiguration;Landroid/database/sqlite/SQLiteDatabaseConfiguration;
-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;->collectDbStats(Ljava/util/ArrayList;)V
-HSPLandroid/database/sqlite/SQLiteDatabase;->compileStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteStatement;
-HSPLandroid/database/sqlite/SQLiteDatabase;->createSession()Landroid/database/sqlite/SQLiteSession;
-HSPLandroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
-HSPLandroid/database/sqlite/SQLiteDatabase;->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
-HSPLandroid/database/sqlite/SQLiteDatabase;->dumpAll(Landroid/util/Printer;ZZ)V
-HSPLandroid/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
-HSPLandroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;[Ljava/lang/Object;)V
-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;+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteDatabase;->getActiveDatabasePools()Ljava/util/ArrayList;
-HSPLandroid/database/sqlite/SQLiteDatabase;->getActiveDatabases()Ljava/util/ArrayList;
-HSPLandroid/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;->getThreadDefaultConnectionFlags(Z)I
-HSPLandroid/database/sqlite/SQLiteDatabase;->getThreadSession()Landroid/database/sqlite/SQLiteSession;+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal;
-HSPLandroid/database/sqlite/SQLiteDatabase;->getVersion()I
-HSPLandroid/database/sqlite/SQLiteDatabase;->inTransaction()Z+]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase;
-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;->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
-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/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;+]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase;
-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;+]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase;
-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;+]Landroid/database/sqlite/SQLiteCursorDriver;Landroid/database/sqlite/SQLiteDirectCursorDriver;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase;
-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;->setTransactionSuccessful()V
-HSPLandroid/database/sqlite/SQLiteDatabase;->throwIfNotOpenLocked()V
-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+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/ContentValues;Landroid/content/ContentValues;]Landroid/database/sqlite/SQLiteStatement;Landroid/database/sqlite/SQLiteStatement;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;]Ljava/util/Set;Landroid/util/MapCollections$KeySet;
-HSPLandroid/database/sqlite/SQLiteDatabase;->validateSql(Ljava/lang/String;Landroid/os/CancellationSignal;)V
-HSPLandroid/database/sqlite/SQLiteDatabase;->yieldIfContendedHelper(ZJ)Z
-HSPLandroid/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+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->isLegacyCompatibilityWalEnabled()Z
-HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->isReadOnlyDatabase()Z
-HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->isWalEnabledInternal()Z
-HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->resolveJournalMode()Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->resolveSyncMode()Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->stripPathForLogs(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->updateParametersFrom(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Object;Ljava/lang/String;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/database/sqlite/SQLiteDebug$NoPreloadHolder;-><clinit>()V
-HSPLandroid/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;+]Landroid/database/sqlite/SQLiteQuery;Landroid/database/sqlite/SQLiteQuery;
-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
-HSPLandroid/database/sqlite/SQLiteGlobal;->getDefaultSyncMode()Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteGlobal;->getJournalSizeLimit()I
-HSPLandroid/database/sqlite/SQLiteGlobal;->getWALAutoCheckpoint()I
-HSPLandroid/database/sqlite/SQLiteGlobal;->getWALConnectionPoolSize()I
-HSPLandroid/database/sqlite/SQLiteGlobal;->getWALSyncMode()Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteGlobal;->getWALTruncateSize()J
-HSPLandroid/database/sqlite/SQLiteGlobal;->releaseMemory()I
-HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;IILandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;)V
-HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)V
-HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;IILandroid/database/DatabaseErrorHandler;)V
-HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ILandroid/database/DatabaseErrorHandler;)V
-HSPLandroid/database/sqlite/SQLiteOpenHelper;->close()V
-HSPLandroid/database/sqlite/SQLiteOpenHelper;->getDatabaseLocked(Z)Landroid/database/sqlite/SQLiteDatabase;+]Ljava/io/File;Ljava/io/File;]Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase;
-HSPLandroid/database/sqlite/SQLiteOpenHelper;->getDatabaseName()Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteOpenHelper;->getReadableDatabase()Landroid/database/sqlite/SQLiteDatabase;
-HSPLandroid/database/sqlite/SQLiteOpenHelper;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;
-HSPLandroid/database/sqlite/SQLiteOpenHelper;->onConfigure(Landroid/database/sqlite/SQLiteDatabase;)V
-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;->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+]Ljava/lang/String;Ljava/lang/String;]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase;
-HSPLandroid/database/sqlite/SQLiteProgram;->bind(ILjava/lang/Object;)V
-HSPLandroid/database/sqlite/SQLiteProgram;->bindAllArgsAsStrings([Ljava/lang/String;)V+]Landroid/database/sqlite/SQLiteProgram;Landroid/database/sqlite/SQLiteQuery;,Landroid/database/sqlite/SQLiteStatement;
-HSPLandroid/database/sqlite/SQLiteProgram;->bindBlob(I[B)V
-HSPLandroid/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
-HSPLandroid/database/sqlite/SQLiteProgram;->clearBindings()V
-HSPLandroid/database/sqlite/SQLiteProgram;->getBindArgs()[Ljava/lang/Object;
-HSPLandroid/database/sqlite/SQLiteProgram;->getColumnNames()[Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteProgram;->getConnectionFlags()I+]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase;
-HSPLandroid/database/sqlite/SQLiteProgram;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
-HSPLandroid/database/sqlite/SQLiteProgram;->getSession()Landroid/database/sqlite/SQLiteSession;+]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase;
-HSPLandroid/database/sqlite/SQLiteProgram;->getSql()Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteProgram;->onAllReferencesReleased()V+]Landroid/database/sqlite/SQLiteProgram;Landroid/database/sqlite/SQLiteStatement;,Landroid/database/sqlite/SQLiteQuery;
-HSPLandroid/database/sqlite/SQLiteQuery;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Landroid/os/CancellationSignal;)V
-HSPLandroid/database/sqlite/SQLiteQuery;->fillWindow(Landroid/database/CursorWindow;IIZ)I+]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/CursorWindow;Landroid/database/CursorWindow;]Landroid/database/sqlite/SQLiteQuery;Landroid/database/sqlite/SQLiteQuery;
-HSPLandroid/database/sqlite/SQLiteQueryBuilder;-><init>()V
-HSPLandroid/database/sqlite/SQLiteQueryBuilder;->appendClause(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;
-HSPLandroid/database/sqlite/SQLiteQueryBuilder;->appendColumns(Ljava/lang/StringBuilder;[Ljava/lang/String;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;
-HSPLandroid/database/sqlite/SQLiteQueryBuilder;->appendWhere(Ljava/lang/CharSequence;)V
-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;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;
-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;->isStrict()Z
-HSPLandroid/database/sqlite/SQLiteQueryBuilder;->isStrictColumns()Z
-HSPLandroid/database/sqlite/SQLiteQueryBuilder;->isStrictGrammar()Z
-HSPLandroid/database/sqlite/SQLiteQueryBuilder;->maybeWithOperator(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteQueryBuilder;->query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
-HSPLandroid/database/sqlite/SQLiteQueryBuilder;->query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
-HSPLandroid/database/sqlite/SQLiteQueryBuilder;->query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
-HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setDistinct(Z)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;->wrap(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteSession$Transaction;-><init>()V
-HSPLandroid/database/sqlite/SQLiteSession$Transaction;-><init>(Landroid/database/sqlite/SQLiteSession$Transaction-IA;)V
-HSPLandroid/database/sqlite/SQLiteSession;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;)V
-HSPLandroid/database/sqlite/SQLiteSession;->acquireConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)V+]Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteConnectionPool;
-HSPLandroid/database/sqlite/SQLiteSession;->beginTransaction(ILandroid/database/sqlite/SQLiteTransactionListener;ILandroid/os/CancellationSignal;)V
-HSPLandroid/database/sqlite/SQLiteSession;->beginTransactionUnchecked(ILandroid/database/sqlite/SQLiteTransactionListener;ILandroid/os/CancellationSignal;)V
-HSPLandroid/database/sqlite/SQLiteSession;->closeOpenDependents()V+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;
-HSPLandroid/database/sqlite/SQLiteSession;->endTransaction(Landroid/os/CancellationSignal;)V
-HSPLandroid/database/sqlite/SQLiteSession;->endTransactionUnchecked(Landroid/os/CancellationSignal;Z)V
-HSPLandroid/database/sqlite/SQLiteSession;->execute(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)V+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;
-HSPLandroid/database/sqlite/SQLiteSession;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)I+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;
-HSPLandroid/database/sqlite/SQLiteSession;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZILandroid/os/CancellationSignal;)I+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;
-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+]Landroid/os/CancellationSignal;Landroid/os/CancellationSignal;
-HSPLandroid/database/sqlite/SQLiteSession;->hasNestedTransaction()Z
-HSPLandroid/database/sqlite/SQLiteSession;->hasTransaction()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+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Landroid/os/CancellationSignal;Landroid/os/CancellationSignal;
-HSPLandroid/database/sqlite/SQLiteSession;->recycleTransaction(Landroid/database/sqlite/SQLiteSession$Transaction;)V
-HSPLandroid/database/sqlite/SQLiteSession;->releaseConnection()V+]Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteConnectionPool;
-HSPLandroid/database/sqlite/SQLiteSession;->setTransactionSuccessful()V
-HSPLandroid/database/sqlite/SQLiteSession;->throwIfNestedTransaction()V
-HSPLandroid/database/sqlite/SQLiteSession;->throwIfNoTransaction()V
-HSPLandroid/database/sqlite/SQLiteSession;->throwIfTransactionMarkedSuccessful()V
-HSPLandroid/database/sqlite/SQLiteSession;->yieldTransaction(JZLandroid/os/CancellationSignal;)Z
-HSPLandroid/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+]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/sqlite/SQLiteStatement;Landroid/database/sqlite/SQLiteStatement;
-HSPLandroid/database/sqlite/SQLiteStatement;->executeInsert()J
-HSPLandroid/database/sqlite/SQLiteStatement;->executeUpdateDelete()I+]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/sqlite/SQLiteStatement;Landroid/database/sqlite/SQLiteStatement;
-HSPLandroid/database/sqlite/SQLiteStatement;->simpleQueryForLong()J
-HSPLandroid/database/sqlite/SQLiteStatement;->simpleQueryForString()Ljava/lang/String;
-HSPLandroid/database/sqlite/SQLiteStatementInfo;-><init>()V
-HSPLandroid/ddm/DdmHandle;->putString(Ljava/nio/ByteBuffer;Ljava/lang/String;)V
-HSPLandroid/ddm/DdmHandleAppName$Names;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/ddm/DdmHandleAppName$Names;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/ddm/DdmHandleAppName$Names-IA;)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/ddm/DdmHandleHeap;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
-HSPLandroid/ddm/DdmHandleHello;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
-HSPLandroid/ddm/DdmHandleHello;->handleFEAT(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
-HSPLandroid/ddm/DdmHandleHello;->handleHELO(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
-HSPLandroid/ddm/DdmHandleProfiling;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
-HSPLandroid/graphics/BLASTBufferQueue;-><init>(Ljava/lang/String;Landroid/view/SurfaceControl;III)V
-HSPLandroid/graphics/BLASTBufferQueue;-><init>(Ljava/lang/String;Z)V
-HSPLandroid/graphics/BLASTBufferQueue;->createSurface()Landroid/view/Surface;
-HSPLandroid/graphics/BLASTBufferQueue;->destroy()V
-HSPLandroid/graphics/BLASTBufferQueue;->finalize()V
-HSPLandroid/graphics/BLASTBufferQueue;->gatherPendingTransactions(J)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/graphics/BLASTBufferQueue;->isSameSurfaceControl(Landroid/view/SurfaceControl;)Z
-HSPLandroid/graphics/BLASTBufferQueue;->mergeWithNextTransaction(Landroid/view/SurfaceControl$Transaction;J)V
-HSPLandroid/graphics/BLASTBufferQueue;->setTransactionHangCallback(Landroid/graphics/BLASTBufferQueue$TransactionHangCallback;)V
-HSPLandroid/graphics/BLASTBufferQueue;->update(Landroid/view/SurfaceControl;III)V
-HSPLandroid/graphics/BaseCanvas;-><init>()V
-HSPLandroid/graphics/BaseCanvas;->drawARGB(IIII)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/Matrix;Landroid/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
-HSPLandroid/graphics/BaseCanvas;->drawColor(I)V
-HSPLandroid/graphics/BaseCanvas;->drawLine(FFFFLandroid/graphics/Paint;)V
-HSPLandroid/graphics/BaseCanvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V
-HSPLandroid/graphics/BaseCanvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/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;->throwIfHasHwFeaturesInSwMode(Landroid/graphics/Paint;)V
-HSPLandroid/graphics/BaseCanvas;->throwIfHasHwFeaturesInSwMode(Landroid/graphics/Shader;)V
-HSPLandroid/graphics/BaseCanvas;->throwIfHwBitmapInSwMode(Landroid/graphics/Bitmap;)V
-HSPLandroid/graphics/BaseRecordingCanvas;-><init>(J)V
-HSPLandroid/graphics/BaseRecordingCanvas;->drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V+]Landroid/graphics/BaseRecordingCanvas;Landroid/graphics/RecordingCanvas;
-HSPLandroid/graphics/BaseRecordingCanvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
-HSPLandroid/graphics/BaseRecordingCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
-HSPLandroid/graphics/BaseRecordingCanvas;->drawCircle(FFFLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;
-HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(I)V
-HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V
-HSPLandroid/graphics/BaseRecordingCanvas;->drawLine(FFFFLandroid/graphics/Paint;)V
-HSPLandroid/graphics/BaseRecordingCanvas;->drawOval(FFFFLandroid/graphics/Paint;)V
-HSPLandroid/graphics/BaseRecordingCanvas;->drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
-HSPLandroid/graphics/BaseRecordingCanvas;->drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
-HSPLandroid/graphics/BaseRecordingCanvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/Path;Landroid/graphics/Path;
-HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(FFFFLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;
-HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V+]Landroid/graphics/BaseRecordingCanvas;Landroid/graphics/RecordingCanvas;
-HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
-HSPLandroid/graphics/BaseRecordingCanvas;->drawRoundRect(FFFFFFLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;
-HSPLandroid/graphics/BaseRecordingCanvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V
-HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/Layout$Ellipsizer;
-HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
-HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;Landroid/text/SpannableString;
-HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun([CIIIIFFZLandroid/graphics/Paint;)V
-HSPLandroid/graphics/Bitmap$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Bitmap;
-HSPLandroid/graphics/Bitmap$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/graphics/Bitmap$Config;->nativeToConfig(I)Landroid/graphics/Bitmap$Config;
-HSPLandroid/graphics/Bitmap$Config;->values()[Landroid/graphics/Bitmap$Config;
-HSPLandroid/graphics/Bitmap;-><init>(JIIIZ[BLandroid/graphics/NinePatch$InsetStruct;Z)V
-HSPLandroid/graphics/Bitmap;->checkHardware(Ljava/lang/String;)V
-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;
-HSPLandroid/graphics/Bitmap;->copyPixelsToBuffer(Ljava/nio/Buffer;)V
-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;IIII)Landroid/graphics/Bitmap;
-HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)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;
-HSPLandroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
-HSPLandroid/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;->getDensity()I
-HSPLandroid/graphics/Bitmap;->getHeight()I
-HSPLandroid/graphics/Bitmap;->getNativeInstance()J
-HSPLandroid/graphics/Bitmap;->getNinePatchChunk()[B
-HSPLandroid/graphics/Bitmap;->getNinePatchInsets()Landroid/graphics/NinePatch$InsetStruct;
-HSPLandroid/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
-HSPLandroid/graphics/Bitmap;->hasGainmap()Z
-HSPLandroid/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;->setDefaultDensity(I)V
-HSPLandroid/graphics/Bitmap;->setDensity(I)V
-HSPLandroid/graphics/Bitmap;->setHasAlpha(Z)V
-HSPLandroid/graphics/Bitmap;->setHasMipMap(Z)V
-HSPLandroid/graphics/Bitmap;->setPremultiplied(Z)V
-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
-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;
-HSPLandroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
-HSPLandroid/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;
-HSPLandroid/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;
-HSPLandroid/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
-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(JZ)J
-HSPLandroid/graphics/BitmapShader;->shouldDiscardNativeInstance(Z)Z
-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
-HSPLandroid/graphics/Canvas;->checkValidClipOp(Landroid/graphics/Region$Op;)V
-HSPLandroid/graphics/Canvas;->clipPath(Landroid/graphics/Path;)Z
-HSPLandroid/graphics/Canvas;->clipPath(Landroid/graphics/Path;Landroid/graphics/Region$Op;)Z
-HSPLandroid/graphics/Canvas;->clipRect(FFFF)Z
-HSPLandroid/graphics/Canvas;->clipRect(IIII)Z
-HSPLandroid/graphics/Canvas;->clipRect(Landroid/graphics/Rect;)Z
-HSPLandroid/graphics/Canvas;->clipRect(Landroid/graphics/RectF;)Z
-HSPLandroid/graphics/Canvas;->concat(Landroid/graphics/Matrix;)V
-HSPLandroid/graphics/Canvas;->disableZ()V
-HSPLandroid/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
-HSPLandroid/graphics/Canvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V
-HSPLandroid/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
-HSPLandroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V
-HSPLandroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V
-HSPLandroid/graphics/Canvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V
-HSPLandroid/graphics/Canvas;->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;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V
-HSPLandroid/graphics/Canvas;->enableZ()V
-HSPLandroid/graphics/Canvas;->freeCaches()V
-HSPLandroid/graphics/Canvas;->freeTextLayoutCaches()V
-HSPLandroid/graphics/Canvas;->getClipBounds()Landroid/graphics/Rect;
-HSPLandroid/graphics/Canvas;->getClipBounds(Landroid/graphics/Rect;)Z
-HSPLandroid/graphics/Canvas;->getDensity()I
-HSPLandroid/graphics/Canvas;->getHeight()I
-HSPLandroid/graphics/Canvas;->getNativeCanvasWrapper()J
-HSPLandroid/graphics/Canvas;->getSaveCount()I
-HSPLandroid/graphics/Canvas;->getWidth()I
-HSPLandroid/graphics/Canvas;->isHardwareAccelerated()Z
-HSPLandroid/graphics/Canvas;->isOpaque()Z
-HSPLandroid/graphics/Canvas;->quickReject(FFFF)Z
-HSPLandroid/graphics/Canvas;->restore()V
-HSPLandroid/graphics/Canvas;->restoreToCount(I)V
-HSPLandroid/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
-HSPLandroid/graphics/Canvas;->saveLayer(FFFFLandroid/graphics/Paint;I)I
-HSPLandroid/graphics/Canvas;->saveLayer(Landroid/graphics/RectF;Landroid/graphics/Paint;)I
-HSPLandroid/graphics/Canvas;->saveLayer(Landroid/graphics/RectF;Landroid/graphics/Paint;I)I
-HSPLandroid/graphics/Canvas;->saveLayerAlpha(FFFFI)I
-HSPLandroid/graphics/Canvas;->saveLayerAlpha(FFFFII)I
-HSPLandroid/graphics/Canvas;->saveUnclippedLayer(IIII)I
-HSPLandroid/graphics/Canvas;->scale(FF)V
-HSPLandroid/graphics/Canvas;->scale(FFFF)V
-HSPLandroid/graphics/Canvas;->setBitmap(Landroid/graphics/Bitmap;)V
-HSPLandroid/graphics/Canvas;->setCompatibilityVersion(I)V
-HSPLandroid/graphics/Canvas;->setDensity(I)V
-HSPLandroid/graphics/Canvas;->setDrawFilter(Landroid/graphics/DrawFilter;)V
-HSPLandroid/graphics/Canvas;->setScreenDensity(I)V
-HSPLandroid/graphics/Canvas;->translate(FF)V
-HSPLandroid/graphics/CanvasProperty;-><init>(J)V
-HSPLandroid/graphics/CanvasProperty;->createFloat(F)Landroid/graphics/CanvasProperty;
-HSPLandroid/graphics/CanvasProperty;->createPaint(Landroid/graphics/Paint;)Landroid/graphics/CanvasProperty;
-HSPLandroid/graphics/CanvasProperty;->getNativeContainer()J
-HSPLandroid/graphics/Color;-><init>(FFFFLandroid/graphics/ColorSpace;)V
-HSPLandroid/graphics/Color;->HSVToColor(I[F)I
-HSPLandroid/graphics/Color;->RGBToHSV(III[F)V
-HSPLandroid/graphics/Color;->alpha()F
-HSPLandroid/graphics/Color;->alpha(I)I
-HSPLandroid/graphics/Color;->alpha(J)F
-HSPLandroid/graphics/Color;->argb(IIII)I
-HSPLandroid/graphics/Color;->blue()F
-HSPLandroid/graphics/Color;->blue(I)I
-HSPLandroid/graphics/Color;->blue(J)F
-HSPLandroid/graphics/Color;->colorSpace(J)Landroid/graphics/ColorSpace;
-HSPLandroid/graphics/Color;->colorToHSV(I[F)V
-HSPLandroid/graphics/Color;->getComponents()[F
-HSPLandroid/graphics/Color;->green()F
-HSPLandroid/graphics/Color;->green(I)I
-HSPLandroid/graphics/Color;->green(J)F
-HSPLandroid/graphics/Color;->luminance()F
-HSPLandroid/graphics/Color;->pack(FFFFLandroid/graphics/ColorSpace;)J
-HSPLandroid/graphics/Color;->pack(I)J
-HSPLandroid/graphics/Color;->parseColor(Ljava/lang/String;)I
-HSPLandroid/graphics/Color;->red()F
-HSPLandroid/graphics/Color;->red(I)I
-HSPLandroid/graphics/Color;->red(J)F
-HSPLandroid/graphics/Color;->rgb(III)I
-HSPLandroid/graphics/Color;->toArgb()I
-HSPLandroid/graphics/Color;->toArgb(J)I
-HSPLandroid/graphics/Color;->valueOf(I)Landroid/graphics/Color;
-HSPLandroid/graphics/ColorFilter;-><init>()V
-HSPLandroid/graphics/ColorFilter;->getNativeInstance()J
-HSPLandroid/graphics/ColorMatrixColorFilter;-><init>(Landroid/graphics/ColorMatrix;)V
-HSPLandroid/graphics/ColorMatrixColorFilter;-><init>([F)V
-HSPLandroid/graphics/ColorMatrixColorFilter;->createNativeInstance()J
-HSPLandroid/graphics/ColorSpace$Named;->values()[Landroid/graphics/ColorSpace$Named;
-HSPLandroid/graphics/ColorSpace$Rgb$TransferParameters;-><init>(DDDDDDD)V
-HSPLandroid/graphics/ColorSpace$Rgb$TransferParameters;->hashCode()I
-HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[FLandroid/graphics/ColorSpace$Rgb$TransferParameters;)V
-HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[F[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;->area([F)F
-HSPLandroid/graphics/ColorSpace$Rgb;->computePrimaries([F)[F
-HSPLandroid/graphics/ColorSpace$Rgb;->computeWhitePoint([F)[F
-HSPLandroid/graphics/ColorSpace$Rgb;->computeXYZMatrix([F[F)[F
-HSPLandroid/graphics/ColorSpace$Rgb;->contains([F[F)Z
-HSPLandroid/graphics/ColorSpace$Rgb;->equals(Ljava/lang/Object;)Z
-HSPLandroid/graphics/ColorSpace$Rgb;->getNativeInstance()J
-HSPLandroid/graphics/ColorSpace$Rgb;->getTransferParameters()Landroid/graphics/ColorSpace$Rgb$TransferParameters;
-HSPLandroid/graphics/ColorSpace$Rgb;->getWhitePoint()[F
-HSPLandroid/graphics/ColorSpace$Rgb;->hashCode()I
-HSPLandroid/graphics/ColorSpace$Rgb;->isGray([F)Z
-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([FFF)Z
-HSPLandroid/graphics/ColorSpace$Rgb;->xyPrimaries([F)[F
-HSPLandroid/graphics/ColorSpace$Rgb;->xyWhitePoint([F)[F
-HSPLandroid/graphics/ColorSpace;->-$$Nest$smadaptToIlluminantD50([F[F)[F
-HSPLandroid/graphics/ColorSpace;->-$$Nest$sminverse3x3([F)[F
-HSPLandroid/graphics/ColorSpace;-><init>(Ljava/lang/String;Landroid/graphics/ColorSpace$Model;I)V
-HSPLandroid/graphics/ColorSpace;->adapt(Landroid/graphics/ColorSpace;[FLandroid/graphics/ColorSpace$Adaptation;)Landroid/graphics/ColorSpace;
-HSPLandroid/graphics/ColorSpace;->adaptToIlluminantD50([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;->getDataSpace()I
-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
-HSPLandroid/graphics/Compatibility;-><clinit>()V
-HSPLandroid/graphics/Compatibility;->getTargetSdkVersion()I
-HSPLandroid/graphics/Compatibility;->setTargetSdkVersion(I)V
-HSPLandroid/graphics/DrawFilter;-><init>()V
-HSPLandroid/graphics/FrameInfo;-><init>()V
-HSPLandroid/graphics/FrameInfo;->addFlags(J)V
-HSPLandroid/graphics/FrameInfo;->markAnimationsStart()V
-HSPLandroid/graphics/FrameInfo;->markInputHandlingStart()V
-HSPLandroid/graphics/FrameInfo;->markPerformTraversalsStart()V
-HSPLandroid/graphics/FrameInfo;->setVsync(JJJJJJ)V
-HSPLandroid/graphics/HardwareRenderer$DestroyContextRunnable;-><init>(J)V
-HSPLandroid/graphics/HardwareRenderer$DestroyContextRunnable;->run()V
-HSPLandroid/graphics/HardwareRenderer$FrameDrawingCallback;->onFrameDraw(IJ)Landroid/graphics/HardwareRenderer$FrameCommitCallback;
-HSPLandroid/graphics/HardwareRenderer$FrameRenderRequest;-><init>(Landroid/graphics/HardwareRenderer;)V
-HSPLandroid/graphics/HardwareRenderer$ProcessInitializer$1;->onRotateGraphicsStatsBuffer()V
-HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->init(J)V
-HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->initDisplayInfo()V
-HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->initGraphicsStats()V
-HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->initSched(J)V
-HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->initUsingContext()V
-HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->requestBuffer()V
-HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->setContext(Landroid/content/Context;)V
-HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->setPackageName(Ljava/lang/String;)V
-HSPLandroid/graphics/HardwareRenderer;-><init>()V
-HSPLandroid/graphics/HardwareRenderer;->addObserver(Landroid/graphics/HardwareRendererObserver;)V
-HSPLandroid/graphics/HardwareRenderer;->allocateBuffers()V
-HSPLandroid/graphics/HardwareRenderer;->clearContent()V
-HSPLandroid/graphics/HardwareRenderer;->destroy()V
-HSPLandroid/graphics/HardwareRenderer;->detachSurfaceTexture(J)V
-HSPLandroid/graphics/HardwareRenderer;->dumpGlobalProfileInfo(Ljava/io/FileDescriptor;I)V
-HSPLandroid/graphics/HardwareRenderer;->isDrawingEnabled()Z
-HSPLandroid/graphics/HardwareRenderer;->loadSystemProperties()Z
-HSPLandroid/graphics/HardwareRenderer;->notifyFramePending()V
-HSPLandroid/graphics/HardwareRenderer;->onLayerDestroyed(Landroid/graphics/TextureLayer;)V
-HSPLandroid/graphics/HardwareRenderer;->pause()Z
-HSPLandroid/graphics/HardwareRenderer;->pushLayerUpdate(Landroid/graphics/TextureLayer;)V
-HSPLandroid/graphics/HardwareRenderer;->registerVectorDrawableAnimator(Landroid/view/NativeVectorDrawableAnimator;)V
-HSPLandroid/graphics/HardwareRenderer;->removeObserver(Landroid/graphics/HardwareRendererObserver;)V
-HSPLandroid/graphics/HardwareRenderer;->sendDeviceConfigurationForDebugging(Landroid/content/res/Configuration;)V
-HSPLandroid/graphics/HardwareRenderer;->setASurfaceTransactionCallback(Landroid/graphics/HardwareRenderer$ASurfaceTransactionCallback;)V
-HSPLandroid/graphics/HardwareRenderer;->setColorMode(I)F
-HSPLandroid/graphics/HardwareRenderer;->setContextForInit(Landroid/content/Context;)V
-HSPLandroid/graphics/HardwareRenderer;->setDebuggingEnabled(Z)V
-HSPLandroid/graphics/HardwareRenderer;->setFPSDivisor(I)V
-HSPLandroid/graphics/HardwareRenderer;->setFrameCallback(Landroid/graphics/HardwareRenderer$FrameDrawingCallback;)V
-HSPLandroid/graphics/HardwareRenderer;->setFrameCompleteCallback(Landroid/graphics/HardwareRenderer$FrameCompleteCallback;)V
-HSPLandroid/graphics/HardwareRenderer;->setHighContrastText(Z)V
-HSPLandroid/graphics/HardwareRenderer;->setIsSystemOrPersistent()V
-HSPLandroid/graphics/HardwareRenderer;->setLightSourceAlpha(FF)V
-HSPLandroid/graphics/HardwareRenderer;->setLightSourceGeometry(FFFF)V
-HSPLandroid/graphics/HardwareRenderer;->setName(Ljava/lang/String;)V
-HSPLandroid/graphics/HardwareRenderer;->setOpaque(Z)V
-HSPLandroid/graphics/HardwareRenderer;->setPackageName(Ljava/lang/String;)V
-HSPLandroid/graphics/HardwareRenderer;->setPrepareSurfaceControlForWebviewCallback(Landroid/graphics/HardwareRenderer$PrepareSurfaceControlForWebviewCallback;)V
-HSPLandroid/graphics/HardwareRenderer;->setRtAnimationsEnabled(Z)V
-HSPLandroid/graphics/HardwareRenderer;->setStopped(Z)V
-HSPLandroid/graphics/HardwareRenderer;->setSurface(Landroid/view/Surface;)V
-HSPLandroid/graphics/HardwareRenderer;->setSurface(Landroid/view/Surface;Z)V
-HSPLandroid/graphics/HardwareRenderer;->setSurfaceControl(Landroid/view/SurfaceControl;Landroid/graphics/BLASTBufferQueue;)V
-HSPLandroid/graphics/HardwareRenderer;->setTargetHdrSdrRatio(F)V
-HSPLandroid/graphics/HardwareRenderer;->setupDiskCache(Ljava/io/File;)V
-HSPLandroid/graphics/HardwareRenderer;->syncAndDrawFrame(Landroid/graphics/FrameInfo;)I
-HSPLandroid/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
-HSPLandroid/graphics/HardwareRendererObserver$$ExternalSyntheticLambda0;-><init>(Landroid/graphics/HardwareRendererObserver;)V
-HSPLandroid/graphics/HardwareRendererObserver$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/graphics/HardwareRendererObserver;-><init>(Landroid/graphics/HardwareRendererObserver$OnFrameMetricsAvailableListener;[JLandroid/os/Handler;Z)V
-HSPLandroid/graphics/HardwareRendererObserver;->getNativeInstance()J
-HSPLandroid/graphics/HardwareRendererObserver;->invokeDataAvailable(Ljava/lang/ref/WeakReference;)Z+]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;
-HSPLandroid/graphics/HardwareRendererObserver;->notifyDataAvailable()V+]Landroid/os/Handler;Landroid/os/Handler;,Landroid/view/ViewRootImpl$ViewRootHandler;
-HSPLandroid/graphics/ImageDecoder$AssetInputStreamSource;-><init>(Landroid/content/res/AssetManager$AssetInputStream;Landroid/content/res/Resources;Landroid/util/TypedValue;)V
-HSPLandroid/graphics/ImageDecoder$AssetInputStreamSource;->createImageDecoder(Z)Landroid/graphics/ImageDecoder;
-HSPLandroid/graphics/ImageDecoder$AssetInputStreamSource;->getDensity()I
-HSPLandroid/graphics/ImageDecoder$AssetInputStreamSource;->getResources()Landroid/content/res/Resources;
-HSPLandroid/graphics/ImageDecoder$AssetInputStreamSource;->toString()Ljava/lang/String;
-HSPLandroid/graphics/ImageDecoder$ImageDecoderSourceTrace;-><init>(Landroid/graphics/ImageDecoder;)V
-HSPLandroid/graphics/ImageDecoder$ImageDecoderSourceTrace;->close()V
-HSPLandroid/graphics/ImageDecoder$ImageInfo;-><init>(Landroid/util/Size;ZLjava/lang/String;Landroid/graphics/ColorSpace;)V
-HSPLandroid/graphics/ImageDecoder$ImageInfo;-><init>(Landroid/util/Size;ZLjava/lang/String;Landroid/graphics/ColorSpace;Landroid/graphics/ImageDecoder$ImageInfo-IA;)V
-HSPLandroid/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$Source-IA;)V
-HSPLandroid/graphics/ImageDecoder$Source;->computeDstDensity()I
-HSPLandroid/graphics/ImageDecoder;->-$$Nest$smdescribeDecoderForTrace(Landroid/graphics/ImageDecoder;)Ljava/lang/String;
-HSPLandroid/graphics/ImageDecoder;-><init>(JIIZZ)V
-HSPLandroid/graphics/ImageDecoder;->callHeaderDecoded(Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;Landroid/graphics/ImageDecoder$Source;)V
-HSPLandroid/graphics/ImageDecoder;->checkForExtended()Z
-HSPLandroid/graphics/ImageDecoder;->checkState(Z)V
-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;
-HSPLandroid/graphics/ImageDecoder;->describeDecoderForTrace(Landroid/graphics/ImageDecoder;)Ljava/lang/String;
-HSPLandroid/graphics/ImageDecoder;->finalize()V
-HSPLandroid/graphics/ImageDecoder;->getColorSpace()Landroid/graphics/ColorSpace;
-HSPLandroid/graphics/ImageDecoder;->getColorSpacePtr()J
-HSPLandroid/graphics/ImageDecoder;->getMimeType()Ljava/lang/String;
-HSPLandroid/graphics/ImageDecoder;->requestedResize()Z
-HSPLandroid/graphics/ImageDecoder;->setAllocator(I)V
-HSPLandroid/graphics/ImageDecoder;->setTargetSize(II)V
-HSPLandroid/graphics/Insets$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Insets;
-HSPLandroid/graphics/Insets$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/graphics/Insets;-><init>(IIII)V
-HSPLandroid/graphics/Insets;-><init>(IIIILandroid/graphics/Insets-IA;)V
-HSPLandroid/graphics/Insets;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/graphics/Insets;
-HSPLandroid/graphics/Insets;->hashCode()I
-HSPLandroid/graphics/Insets;->max(Landroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets;
-HSPLandroid/graphics/Insets;->min(Landroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets;
-HSPLandroid/graphics/Insets;->of(IIII)Landroid/graphics/Insets;
-HSPLandroid/graphics/Insets;->of(Landroid/graphics/Rect;)Landroid/graphics/Insets;
-HSPLandroid/graphics/Insets;->toRect()Landroid/graphics/Rect;
-HSPLandroid/graphics/Insets;->toString()Ljava/lang/String;
-HSPLandroid/graphics/Insets;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/graphics/Interpolator;-><init>(II)V
-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;
-HSPLandroid/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>(FFFFJJLandroid/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+][J[J
-HSPLandroid/graphics/LinearGradient;-><init>(FFFF[J[FLandroid/graphics/Shader$TileMode;Landroid/graphics/ColorSpace;)V
-HSPLandroid/graphics/LinearGradient;->createNativeInstance(JZ)J
-HSPLandroid/graphics/MaskFilter;->finalize()V
-HSPLandroid/graphics/Matrix;-><init>()V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry;
-HSPLandroid/graphics/Matrix;-><init>(Landroid/graphics/Matrix;)V
-HSPLandroid/graphics/Matrix;->checkPointArrays([FI[FII)V
-HSPLandroid/graphics/Matrix;->equals(Ljava/lang/Object;)Z
-HSPLandroid/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+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;
-HSPLandroid/graphics/Matrix;->mapRect(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z
-HSPLandroid/graphics/Matrix;->ni()J
-HSPLandroid/graphics/Matrix;->postConcat(Landroid/graphics/Matrix;)Z
-HSPLandroid/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
-HSPLandroid/graphics/Matrix;->preRotate(F)Z
-HSPLandroid/graphics/Matrix;->preScale(FF)Z
-HSPLandroid/graphics/Matrix;->preTranslate(FF)Z
-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
-HSPLandroid/graphics/Matrix;->setRotate(F)V
-HSPLandroid/graphics/Matrix;->setRotate(FFF)V
-HSPLandroid/graphics/Matrix;->setScale(FF)V
-HSPLandroid/graphics/Matrix;->setScale(FFFF)V
-HSPLandroid/graphics/Matrix;->setTranslate(FF)V
-HSPLandroid/graphics/Matrix;->setValues([F)V
-HSPLandroid/graphics/NinePatch$InsetStruct;-><init>(IIIIIIIIFIF)V
-HSPLandroid/graphics/NinePatch$InsetStruct;->scaleInsets(IIIIF)Landroid/graphics/Rect;
-HSPLandroid/graphics/NinePatch;-><init>(Landroid/graphics/Bitmap;[BLjava/lang/String;)V
-HSPLandroid/graphics/NinePatch;->draw(Landroid/graphics/Canvas;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
-HSPLandroid/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
-HSPLandroid/graphics/Outline;-><init>()V
-HSPLandroid/graphics/Outline;->isEmpty()Z
-HSPLandroid/graphics/Outline;->setAlpha(F)V
-HSPLandroid/graphics/Outline;->setConvexPath(Landroid/graphics/Path;)V
-HSPLandroid/graphics/Outline;->setEmpty()V+]Landroid/graphics/Rect;Landroid/graphics/Rect;
-HSPLandroid/graphics/Outline;->setOval(IIII)V
-HSPLandroid/graphics/Outline;->setOval(Landroid/graphics/Rect;)V
-HSPLandroid/graphics/Outline;->setPath(Landroid/graphics/Path;)V
-HSPLandroid/graphics/Outline;->setRect(IIII)V+]Landroid/graphics/Outline;Landroid/graphics/Outline;
-HSPLandroid/graphics/Outline;->setRect(Landroid/graphics/Rect;)V
-HSPLandroid/graphics/Outline;->setRoundRect(IIIIF)V+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/Outline;Landroid/graphics/Outline;
-HSPLandroid/graphics/Outline;->setRoundRect(Landroid/graphics/Rect;F)V
-HSPLandroid/graphics/Paint$FontMetrics;-><init>()V
-HSPLandroid/graphics/Paint$FontMetricsInt;-><init>()V
-HSPLandroid/graphics/Paint;-><init>()V
-HSPLandroid/graphics/Paint;-><init>(I)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;,Landroid/text/TextPaint;]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry;
-HSPLandroid/graphics/Paint;-><init>(Landroid/graphics/Paint;)V
-HSPLandroid/graphics/Paint;->ascent()F
-HSPLandroid/graphics/Paint;->descent()F
-HSPLandroid/graphics/Paint;->getAlpha()I
-HSPLandroid/graphics/Paint;->getColor()I
-HSPLandroid/graphics/Paint;->getColorFilter()Landroid/graphics/ColorFilter;
-HSPLandroid/graphics/Paint;->getEndHyphenEdit()I
-HSPLandroid/graphics/Paint;->getFlags()I
-HSPLandroid/graphics/Paint;->getFontFeatureSettings()Ljava/lang/String;
-HSPLandroid/graphics/Paint;->getFontMetrics()Landroid/graphics/Paint$FontMetrics;
-HSPLandroid/graphics/Paint;->getFontMetrics(Landroid/graphics/Paint$FontMetrics;)F
-HSPLandroid/graphics/Paint;->getFontMetricsInt()Landroid/graphics/Paint$FontMetricsInt;+]Landroid/graphics/Paint;Landroid/text/TextPaint;
-HSPLandroid/graphics/Paint;->getFontMetricsInt(Landroid/graphics/Paint$FontMetricsInt;)I
-HSPLandroid/graphics/Paint;->getFontMetricsInt(Ljava/lang/CharSequence;IIIIZLandroid/graphics/Paint$FontMetricsInt;)V
-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+]Landroid/graphics/ColorFilter;Landroid/graphics/PorterDuffColorFilter;,Landroid/graphics/BlendModeColorFilter;]Landroid/graphics/Paint;missing_types]Landroid/graphics/Shader;Landroid/graphics/LinearGradient;,Landroid/graphics/drawable/RippleShader;,Landroid/graphics/BitmapShader;,Landroid/graphics/RadialGradient;
-HSPLandroid/graphics/Paint;->getRunAdvance(Ljava/lang/CharSequence;IIIIZI)F
-HSPLandroid/graphics/Paint;->getRunAdvance([CIIIIZI)F
-HSPLandroid/graphics/Paint;->getRunCharacterAdvance(Ljava/lang/CharSequence;IIIIZI[FI)F
-HSPLandroid/graphics/Paint;->getRunCharacterAdvance(Ljava/lang/CharSequence;IIIIZI[FILandroid/graphics/RectF;Landroid/graphics/Paint$RunInfo;)F+]Landroid/graphics/Paint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;megamorphic_types
-HSPLandroid/graphics/Paint;->getRunCharacterAdvance([CIIIIZI[FI)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+]Landroid/graphics/Paint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;Landroid/text/SpannableString;
-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
-HSPLandroid/graphics/Paint;->getTextRunCursor(Ljava/lang/CharSequence;IIZII)I
-HSPLandroid/graphics/Paint;->getTextRunCursor(Ljava/lang/String;IIZII)I
-HSPLandroid/graphics/Paint;->getTextRunCursor([CIIZII)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;->installXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode;
-HSPLandroid/graphics/Paint;->isAntiAlias()Z
-HSPLandroid/graphics/Paint;->isDither()Z
-HSPLandroid/graphics/Paint;->isElegantTextHeight()Z
-HSPLandroid/graphics/Paint;->isFilterBitmap()Z+]Landroid/graphics/Paint;missing_types
-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;->reset()V
-HSPLandroid/graphics/Paint;->resetElegantTextHeight()V
-HSPLandroid/graphics/Paint;->set(Landroid/graphics/Paint;)V
-HSPLandroid/graphics/Paint;->setAlpha(I)V
-HSPLandroid/graphics/Paint;->setAntiAlias(Z)V
-HSPLandroid/graphics/Paint;->setBlendMode(Landroid/graphics/BlendMode;)V
-HSPLandroid/graphics/Paint;->setClassVariablesFrom(Landroid/graphics/Paint;)V
-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
-HSPLandroid/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;->setFontFeatureSettings(Ljava/lang/String;)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;->setStrokeMiter(F)V
-HSPLandroid/graphics/Paint;->setStrokeWidth(F)V
-HSPLandroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V
-HSPLandroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V
-HSPLandroid/graphics/Paint;->setTextLocales(Landroid/os/LocaleList;)V+]Landroid/os/LocaleList;Landroid/os/LocaleList;
-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+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/os/LocaleList;Landroid/os/LocaleList;
-HSPLandroid/graphics/PaintFlagsDrawFilter;-><init>(II)V
-HSPLandroid/graphics/Path;-><init>()V
-HSPLandroid/graphics/Path;-><init>(Landroid/graphics/Path;)V
-HSPLandroid/graphics/Path;->addArc(FFFFFF)V
-HSPLandroid/graphics/Path;->addArc(Landroid/graphics/RectF;FF)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
-HSPLandroid/graphics/Path;->addPath(Landroid/graphics/Path;Landroid/graphics/Matrix;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;
-HSPLandroid/graphics/Path;->addRect(FFFFLandroid/graphics/Path$Direction;)V
-HSPLandroid/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;FFLandroid/graphics/Path$Direction;)V
-HSPLandroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;[FLandroid/graphics/Path$Direction;)V
-HSPLandroid/graphics/Path;->approximate(F)[F
-HSPLandroid/graphics/Path;->arcTo(FFFFFFZ)V
-HSPLandroid/graphics/Path;->arcTo(Landroid/graphics/RectF;FF)V
-HSPLandroid/graphics/Path;->arcTo(Landroid/graphics/RectF;FFZ)V+]Landroid/graphics/Path;Landroid/graphics/Path;
-HSPLandroid/graphics/Path;->close()V
-HSPLandroid/graphics/Path;->computeBounds(Landroid/graphics/RectF;Z)V+]Landroid/graphics/Path;Landroid/graphics/Path;
-HSPLandroid/graphics/Path;->cubicTo(FFFFFF)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
-HSPLandroid/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
-HSPLandroid/graphics/Path;->rLineTo(FF)V
-HSPLandroid/graphics/Path;->readOnlyNI()J
-HSPLandroid/graphics/Path;->reset()V+]Landroid/graphics/Path;Landroid/graphics/Path;
-HSPLandroid/graphics/Path;->rewind()V
-HSPLandroid/graphics/Path;->set(Landroid/graphics/Path;)V
-HSPLandroid/graphics/Path;->setFillType(Landroid/graphics/Path$FillType;)V
-HSPLandroid/graphics/Path;->transform(Landroid/graphics/Matrix;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;
-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
-HSPLandroid/graphics/PathMeasure;->setPath(Landroid/graphics/Path;Z)V
-HSPLandroid/graphics/Picture;-><init>()V
-HSPLandroid/graphics/Picture;->beginRecording(II)Landroid/graphics/Canvas;
-HSPLandroid/graphics/Picture;->close()V
-HSPLandroid/graphics/Picture;->draw(Landroid/graphics/Canvas;)V
-HSPLandroid/graphics/Picture;->endRecording()V
-HSPLandroid/graphics/Picture;->finalize()V
-HSPLandroid/graphics/Picture;->getHeight()I
-HSPLandroid/graphics/Picture;->getWidth()I
-HSPLandroid/graphics/PixelFormat;->formatHasAlpha(I)Z
-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
-HSPLandroid/graphics/Point;->equals(II)Z
-HSPLandroid/graphics/Point;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/graphics/Point;
-HSPLandroid/graphics/Point;->hashCode()I
-HSPLandroid/graphics/Point;->offset(II)V
-HSPLandroid/graphics/Point;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/graphics/Point;->set(II)V
-HSPLandroid/graphics/Point;->set(Landroid/graphics/Point;)V
-HSPLandroid/graphics/Point;->toString()Ljava/lang/String;
-HSPLandroid/graphics/PointF;-><init>()V
-HSPLandroid/graphics/PointF;-><init>(FF)V
-HSPLandroid/graphics/PointF;->equals(FF)Z
-HSPLandroid/graphics/PointF;->equals(Ljava/lang/Object;)Z
-HSPLandroid/graphics/PointF;->length()F
-HSPLandroid/graphics/PointF;->length(FF)F
-HSPLandroid/graphics/PointF;->set(FF)V
-HSPLandroid/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
-HSPLandroid/graphics/RadialGradient;-><init>(FFFFFF[J[FLandroid/graphics/Shader$TileMode;Landroid/graphics/ColorSpace;)V
-HSPLandroid/graphics/RadialGradient;-><init>(FFF[I[FLandroid/graphics/Shader$TileMode;)V
-HSPLandroid/graphics/RadialGradient;->createNativeInstance(JZ)J
-HSPLandroid/graphics/RecordingCanvas;-><init>(Landroid/graphics/RenderNode;II)V
-HSPLandroid/graphics/RecordingCanvas;->disableZ()V
-HSPLandroid/graphics/RecordingCanvas;->drawRenderNode(Landroid/graphics/RenderNode;)V
-HSPLandroid/graphics/RecordingCanvas;->drawRipple(Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;ILandroid/graphics/RuntimeShader;)V
-HSPLandroid/graphics/RecordingCanvas;->drawWebViewFunctor(I)V
-HSPLandroid/graphics/RecordingCanvas;->enableZ()V
-HSPLandroid/graphics/RecordingCanvas;->finishRecording(Landroid/graphics/RenderNode;)V
-HSPLandroid/graphics/RecordingCanvas;->getHeight()I
-HSPLandroid/graphics/RecordingCanvas;->getWidth()I
-HSPLandroid/graphics/RecordingCanvas;->isHardwareAccelerated()Z
-HSPLandroid/graphics/RecordingCanvas;->obtain(Landroid/graphics/RenderNode;II)Landroid/graphics/RecordingCanvas;+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool;
-HSPLandroid/graphics/RecordingCanvas;->recycle()V+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool;
-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$1;->newArray(I)[Landroid/graphics/Rect;
-HSPLandroid/graphics/Rect$1;->newArray(I)[Ljava/lang/Object;
-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
-HSPLandroid/graphics/Rect;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/graphics/Rect;
-HSPLandroid/graphics/Rect;->exactCenterX()F
-HSPLandroid/graphics/Rect;->exactCenterY()F
-HSPLandroid/graphics/Rect;->hashCode()I
-HSPLandroid/graphics/Rect;->height()I
-HSPLandroid/graphics/Rect;->inset(II)V
-HSPLandroid/graphics/Rect;->inset(IIII)V
-HSPLandroid/graphics/Rect;->inset(Landroid/graphics/Insets;)V
-HSPLandroid/graphics/Rect;->inset(Landroid/graphics/Rect;)V
-HSPLandroid/graphics/Rect;->intersect(IIII)Z
-HSPLandroid/graphics/Rect;->intersect(Landroid/graphics/Rect;)Z
-HSPLandroid/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;->isValid()Z
-HSPLandroid/graphics/Rect;->offset(II)V
-HSPLandroid/graphics/Rect;->offsetTo(II)V
-HSPLandroid/graphics/Rect;->readFromParcel(Landroid/os/Parcel;)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/StringBuilder;)Ljava/lang/String;
-HSPLandroid/graphics/Rect;->toString()Ljava/lang/String;
-HSPLandroid/graphics/Rect;->union(IIII)V
-HSPLandroid/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
-HSPLandroid/graphics/RectF;-><init>(Landroid/graphics/RectF;)V
-HSPLandroid/graphics/RectF;->centerX()F
-HSPLandroid/graphics/RectF;->centerY()F
-HSPLandroid/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
-HSPLandroid/graphics/RectF;->intersect(Landroid/graphics/RectF;)Z+]Landroid/graphics/RectF;Landroid/graphics/RectF;
-HSPLandroid/graphics/RectF;->isEmpty()Z
-HSPLandroid/graphics/RectF;->offset(FF)V
-HSPLandroid/graphics/RectF;->offsetTo(FF)V
-HSPLandroid/graphics/RectF;->round(Landroid/graphics/Rect;)V
-HSPLandroid/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+]Landroid/graphics/RectF;Landroid/graphics/RectF;
-HSPLandroid/graphics/RectF;->width()F
-HSPLandroid/graphics/Region$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Region;
-HSPLandroid/graphics/Region$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/graphics/Region;-><init>()V
-HSPLandroid/graphics/Region;-><init>(J)V
-HSPLandroid/graphics/Region;->equals(Ljava/lang/Object;)Z
-HSPLandroid/graphics/Region;->finalize()V
-HSPLandroid/graphics/Region;->getBounds()Landroid/graphics/Rect;
-HSPLandroid/graphics/Region;->op(IIIILandroid/graphics/Region$Op;)Z
-HSPLandroid/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
-HSPLandroid/graphics/Region;->set(IIII)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;->union(Landroid/graphics/Rect;)Z
-HSPLandroid/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;-><init>([Landroid/graphics/RenderNode$PositionUpdateListener;)V
-HSPLandroid/graphics/RenderNode$CompositePositionUpdateListener;->positionChanged(JIIII)V
-HSPLandroid/graphics/RenderNode$CompositePositionUpdateListener;->positionLost(J)V
-HSPLandroid/graphics/RenderNode$CompositePositionUpdateListener;->without(Landroid/graphics/RenderNode$PositionUpdateListener;)Landroid/graphics/RenderNode$CompositePositionUpdateListener;
-HSPLandroid/graphics/RenderNode$PositionUpdateListener;->callPositionChanged(Ljava/lang/ref/WeakReference;JIIII)Z
-HSPLandroid/graphics/RenderNode$PositionUpdateListener;->callPositionLost(Ljava/lang/ref/WeakReference;J)Z
-HSPLandroid/graphics/RenderNode;-><init>(J)V
-HSPLandroid/graphics/RenderNode;-><init>(Ljava/lang/String;Landroid/graphics/RenderNode$AnimationHost;)V
-HSPLandroid/graphics/RenderNode;->addPositionUpdateListener(Landroid/graphics/RenderNode$PositionUpdateListener;)V
-HSPLandroid/graphics/RenderNode;->adopt(J)Landroid/graphics/RenderNode;
-HSPLandroid/graphics/RenderNode;->beginRecording(II)Landroid/graphics/RecordingCanvas;
-HSPLandroid/graphics/RenderNode;->clearStretch()Z
-HSPLandroid/graphics/RenderNode;->create(Ljava/lang/String;Landroid/graphics/RenderNode$AnimationHost;)Landroid/graphics/RenderNode;
-HSPLandroid/graphics/RenderNode;->discardDisplayList()V
-HSPLandroid/graphics/RenderNode;->endRecording()V+]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;
-HSPLandroid/graphics/RenderNode;->getClipToOutline()Z
-HSPLandroid/graphics/RenderNode;->getElevation()F
-HSPLandroid/graphics/RenderNode;->getMatrix(Landroid/graphics/Matrix;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;
-HSPLandroid/graphics/RenderNode;->getPivotY()F
-HSPLandroid/graphics/RenderNode;->getRotationX()F
-HSPLandroid/graphics/RenderNode;->getRotationY()F
-HSPLandroid/graphics/RenderNode;->getRotationZ()F
-HSPLandroid/graphics/RenderNode;->getScaleX()F
-HSPLandroid/graphics/RenderNode;->getScaleY()F
-HSPLandroid/graphics/RenderNode;->getTranslationX()F
-HSPLandroid/graphics/RenderNode;->getTranslationY()F
-HSPLandroid/graphics/RenderNode;->getTranslationZ()F
-HSPLandroid/graphics/RenderNode;->hasDisplayList()Z
-HSPLandroid/graphics/RenderNode;->hasIdentityMatrix()Z
-HSPLandroid/graphics/RenderNode;->isAttached()Z
-HSPLandroid/graphics/RenderNode;->offsetTopAndBottom(I)Z
-HSPLandroid/graphics/RenderNode;->removePositionUpdateListener(Landroid/graphics/RenderNode$PositionUpdateListener;)V
-HSPLandroid/graphics/RenderNode;->setAlpha(F)Z
-HSPLandroid/graphics/RenderNode;->setAmbientShadowColor(I)Z
-HSPLandroid/graphics/RenderNode;->setAnimationMatrix(Landroid/graphics/Matrix;)Z
-HSPLandroid/graphics/RenderNode;->setClipToBounds(Z)Z
-HSPLandroid/graphics/RenderNode;->setClipToOutline(Z)Z
-HSPLandroid/graphics/RenderNode;->setElevation(F)Z
-HSPLandroid/graphics/RenderNode;->setForceDarkAllowed(Z)Z
-HSPLandroid/graphics/RenderNode;->setHasOverlappingRendering(Z)Z
-HSPLandroid/graphics/RenderNode;->setLayerPaint(Landroid/graphics/Paint;)Z
-HSPLandroid/graphics/RenderNode;->setLayerType(I)Z
-HSPLandroid/graphics/RenderNode;->setLeftTopRightBottom(IIII)Z
-HSPLandroid/graphics/RenderNode;->setOutline(Landroid/graphics/Outline;)Z
-HSPLandroid/graphics/RenderNode;->setPivotX(F)Z
-HSPLandroid/graphics/RenderNode;->setProjectBackwards(Z)Z
-HSPLandroid/graphics/RenderNode;->setProjectionReceiver(Z)Z
-HSPLandroid/graphics/RenderNode;->setRenderEffect(Landroid/graphics/RenderEffect;)Z
-HSPLandroid/graphics/RenderNode;->setScaleX(F)Z
-HSPLandroid/graphics/RenderNode;->setScaleY(F)Z
-HSPLandroid/graphics/RenderNode;->setSpotShadowColor(I)Z
-HSPLandroid/graphics/RenderNode;->setTranslationX(F)Z
-HSPLandroid/graphics/RenderNode;->setTranslationY(F)Z
-HSPLandroid/graphics/RenderNode;->setUsageHint(I)V
-HSPLandroid/graphics/RenderNode;->stretch(FFFF)Z
-HSPLandroid/graphics/RuntimeShader$NoImagePreloadHolder;-><clinit>()V
-HSPLandroid/graphics/RuntimeShader;-><init>(Ljava/lang/String;)V
-HSPLandroid/graphics/RuntimeShader;->createNativeInstance(JZ)J
-HSPLandroid/graphics/RuntimeShader;->getNativeShaderBuilder()J
-HSPLandroid/graphics/RuntimeShader;->setFloatUniform(Ljava/lang/String;FF)V
-HSPLandroid/graphics/RuntimeShader;->setFloatUniform(Ljava/lang/String;FFFFI)V
-HSPLandroid/graphics/RuntimeShader;->setInputShader(Ljava/lang/String;Landroid/graphics/Shader;)V
-HSPLandroid/graphics/RuntimeShader;->setUniform(Ljava/lang/String;[FZ)V
-HSPLandroid/graphics/Shader;-><init>()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;->discardNativeInstance()V
-HSPLandroid/graphics/Shader;->discardNativeInstanceLocked()V
-HSPLandroid/graphics/Shader;->getNativeInstance()J
-HSPLandroid/graphics/Shader;->getNativeInstance(Z)J
-HSPLandroid/graphics/Shader;->setLocalMatrix(Landroid/graphics/Matrix;)V
-HSPLandroid/graphics/Shader;->shouldDiscardNativeInstance(Z)Z
-HSPLandroid/graphics/SurfaceTexture$1;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/graphics/SurfaceTexture;-><init>(I)V
-HSPLandroid/graphics/SurfaceTexture;->finalize()V
-HSPLandroid/graphics/SurfaceTexture;->isSingleBuffered()Z
-HSPLandroid/graphics/SurfaceTexture;->postEventFromNative(Ljava/lang/ref/WeakReference;)V
-HSPLandroid/graphics/SurfaceTexture;->release()V
-HSPLandroid/graphics/SurfaceTexture;->setDefaultBufferSize(II)V
-HSPLandroid/graphics/SurfaceTexture;->setOnFrameAvailableListener(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;)V
-HSPLandroid/graphics/SurfaceTexture;->setOnFrameAvailableListener(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;Landroid/os/Handler;)V
-HSPLandroid/graphics/TemporaryBuffer;->obtain(I)[C
-HSPLandroid/graphics/TemporaryBuffer;->recycle([C)V
-HSPLandroid/graphics/TextureLayer;-><init>(Landroid/graphics/HardwareRenderer;J)V
-HSPLandroid/graphics/TextureLayer;->close()V
-HSPLandroid/graphics/TextureLayer;->detachSurfaceTexture()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;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;
-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;-><init>(JLjava/lang/String;)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;->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;->defaultFromStyle(I)Landroid/graphics/Typeface;
-HSPLandroid/graphics/Typeface;->deserializeFontMap(Ljava/nio/ByteBuffer;Ljava/util/Map;)[J
-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/Typeface;->getSystemFontFamilyName()Ljava/lang/String;
-HSPLandroid/graphics/Typeface;->hasFontFamily(Ljava/lang/String;)Z
-HSPLandroid/graphics/Typeface;->readString(Ljava/nio/ByteBuffer;)Ljava/lang/String;
-HSPLandroid/graphics/Typeface;->registerGenericFamilyNative(Ljava/lang/String;Landroid/graphics/Typeface;)V
-HSPLandroid/graphics/Typeface;->setDefault(Landroid/graphics/Typeface;)V
-HSPLandroid/graphics/Typeface;->setSystemFontMap(Landroid/os/SharedMemory;)V
-HSPLandroid/graphics/Typeface;->setSystemFontMap(Ljava/util/Map;)V
-HSPLandroid/graphics/Xfermode;-><init>()V
-HSPLandroid/graphics/animation/RenderNodeAnimator$$ExternalSyntheticLambda0;-><init>(Landroid/graphics/animation/RenderNodeAnimator;)V
-HSPLandroid/graphics/animation/RenderNodeAnimator$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/graphics/animation/RenderNodeAnimator;-><init>(Landroid/graphics/CanvasProperty;F)V
-HSPLandroid/graphics/animation/RenderNodeAnimator;-><init>(Landroid/graphics/CanvasProperty;IF)V
-HSPLandroid/graphics/animation/RenderNodeAnimator;->applyInterpolator()V
-HSPLandroid/graphics/animation/RenderNodeAnimator;->callOnFinished(Landroid/graphics/animation/RenderNodeAnimator;)V
-HSPLandroid/graphics/animation/RenderNodeAnimator;->cancel()V
-HSPLandroid/graphics/animation/RenderNodeAnimator;->checkMutable()V
-HSPLandroid/graphics/animation/RenderNodeAnimator;->cloneListeners()Ljava/util/ArrayList;
-HSPLandroid/graphics/animation/RenderNodeAnimator;->doStart()V
-HSPLandroid/graphics/animation/RenderNodeAnimator;->end()V
-HSPLandroid/graphics/animation/RenderNodeAnimator;->getNativeAnimator()J
-HSPLandroid/graphics/animation/RenderNodeAnimator;->init(J)V
-HSPLandroid/graphics/animation/RenderNodeAnimator;->isNativeInterpolator(Landroid/animation/TimeInterpolator;)Z
-HSPLandroid/graphics/animation/RenderNodeAnimator;->isRunning()Z
-HSPLandroid/graphics/animation/RenderNodeAnimator;->moveToRunningState()V
-HSPLandroid/graphics/animation/RenderNodeAnimator;->notifyStartListeners()V
-HSPLandroid/graphics/animation/RenderNodeAnimator;->onFinished()V
-HSPLandroid/graphics/animation/RenderNodeAnimator;->setDuration(J)Landroid/animation/Animator;
-HSPLandroid/graphics/animation/RenderNodeAnimator;->setDuration(J)Landroid/graphics/animation/RenderNodeAnimator;
-HSPLandroid/graphics/animation/RenderNodeAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)V
-HSPLandroid/graphics/animation/RenderNodeAnimator;->setStartDelay(J)V
-HSPLandroid/graphics/animation/RenderNodeAnimator;->setTarget(Landroid/graphics/RecordingCanvas;)V
-HSPLandroid/graphics/animation/RenderNodeAnimator;->setTarget(Landroid/graphics/RenderNode;)V
-HSPLandroid/graphics/animation/RenderNodeAnimator;->start()V
-HSPLandroid/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
-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
-HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->getChangingConfigurations()I
-HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->invalidateCache()V
-HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->isStateful()Z
-HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->newDrawable()Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/AdaptiveIconDrawable;-><init>(Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;Landroid/content/res/Resources;)V
-HSPLandroid/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;->getChangingConfigurations()I
-HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
-HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getExtraInsetFraction()F
-HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getIntrinsicHeight()I
-HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getIntrinsicWidth()I
-HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getOpacity()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
-HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->isStateful()Z
-HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->jumpToCurrentState()V
-HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->mutate()Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
-HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->setVisible(ZZ)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/Animatable2$AnimationCallback;-><init>()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
-HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->canApplyTheme()Z
-HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->generateTransitionKey(II)J
-HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->getKeyframeIdAt(I)I
-HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->indexOfKeyframe([I)I
-HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->indexOfTransition(II)I
-HSPLandroid/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;
-HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->transitionHasReversibleFlag(II)Z
-HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;->start()V
-HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;->stop()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-IA;)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
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable$2;->onAnimationEnd(Landroid/animation/Animator;)V
-HSPLandroid/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+]Landroid/graphics/drawable/Drawable$ConstantState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;]Landroid/graphics/drawable/VectorDrawable;Landroid/graphics/drawable/VectorDrawable;
-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
-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$$ExternalSyntheticLambda0;->run()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
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimatorForGroup([Landroid/animation/PropertyValuesHolder;Landroid/animation/ObjectAnimator;Landroid/graphics/drawable/VectorDrawable$VGroup;J)V
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimatorForPath(Landroid/animation/ObjectAnimator;Landroid/graphics/drawable/VectorDrawable$VPath;J)V
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->end()V
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->getAnimatorNativePtr()J
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->getFrameCount(J)I
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->handlePendingAction(I)V
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->init(Landroid/animation/AnimatorSet;)V
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->invalidateOwningView()V
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->isInfinite()Z
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->isStarted()Z
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->lambda$callOnFinished$0(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;I)V
-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
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->setListener(Landroid/animation/Animator$AnimatorListener;)V
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->start()V
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->startAnimation()V
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->useLastSeenTarget()Z
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->-$$Nest$smnCreateAnimatorSet()J
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->-$$Nest$smshouldIgnoreInvalidAnimation()Z
-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-IA;)V
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->canApplyTheme()Z
-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
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->ensureAnimatorSet()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;->isStateful()Z
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->mutate()Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->onStateChange([I)Z
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->registerAnimationCallback(Landroid/graphics/drawable/Animatable2$AnimationCallback;)V
-HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
-HSPLandroid/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
-HSPLandroid/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;
-HSPLandroid/graphics/drawable/AnimationDrawable;-><init>()V
-HSPLandroid/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;
-HSPLandroid/graphics/drawable/AnimationDrawable;->getDuration(I)I
-HSPLandroid/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
-HSPLandroid/graphics/drawable/AnimationDrawable;->isRunning()Z
-HSPLandroid/graphics/drawable/AnimationDrawable;->mutate()Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/AnimationDrawable;->nextFrame(Z)V
-HSPLandroid/graphics/drawable/AnimationDrawable;->run()V
-HSPLandroid/graphics/drawable/AnimationDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V
-HSPLandroid/graphics/drawable/AnimationDrawable;->setFrame(IZZ)V
-HSPLandroid/graphics/drawable/AnimationDrawable;->setVisible(ZZ)Z
-HSPLandroid/graphics/drawable/AnimationDrawable;->start()V
-HSPLandroid/graphics/drawable/AnimationDrawable;->stop()V
-HSPLandroid/graphics/drawable/AnimationDrawable;->unscheduleSelf(Ljava/lang/Runnable;)V
-HSPLandroid/graphics/drawable/BitmapDrawable$$ExternalSyntheticLambda2;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)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
-HSPLandroid/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;->applyTheme(Landroid/content/res/Resources$Theme;)V
-HSPLandroid/graphics/drawable/BitmapDrawable;->canApplyTheme()Z
-HSPLandroid/graphics/drawable/BitmapDrawable;->clearMutated()V
-HSPLandroid/graphics/drawable/BitmapDrawable;->computeBitmapSize()V
-HSPLandroid/graphics/drawable/BitmapDrawable;->draw(Landroid/graphics/Canvas;)V
-HSPLandroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap;
-HSPLandroid/graphics/drawable/BitmapDrawable;->getChangingConfigurations()I
-HSPLandroid/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;->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
-HSPLandroid/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;->setTileModeXY(Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)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;->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;->draw(Landroid/graphics/Canvas;)V
-HSPLandroid/graphics/drawable/ClipDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
-HSPLandroid/graphics/drawable/ClipDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
-HSPLandroid/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
-HSPLandroid/graphics/drawable/ColorDrawable$ColorState;->getChangingConfigurations()I
-HSPLandroid/graphics/drawable/ColorDrawable$ColorState;->newDrawable()Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/ColorDrawable$ColorState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/ColorDrawable;-><init>()V
-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-IA;)V
-HSPLandroid/graphics/drawable/ColorDrawable;->canApplyTheme()Z
-HSPLandroid/graphics/drawable/ColorDrawable;->clearMutated()V
-HSPLandroid/graphics/drawable/ColorDrawable;->draw(Landroid/graphics/Canvas;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/drawable/ColorDrawable;Landroid/graphics/drawable/ColorDrawable;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;
-HSPLandroid/graphics/drawable/ColorDrawable;->getAlpha()I
-HSPLandroid/graphics/drawable/ColorDrawable;->getChangingConfigurations()I
-HSPLandroid/graphics/drawable/ColorDrawable;->getColor()I
-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+]Landroid/graphics/drawable/ColorDrawable;Landroid/graphics/drawable/ColorDrawable;
-HSPLandroid/graphics/drawable/ColorDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
-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/graphics/drawable/Drawable;
-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
-HSPLandroid/graphics/drawable/Drawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
-HSPLandroid/graphics/drawable/Drawable;->canApplyTheme()Z
-HSPLandroid/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;+]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;
-HSPLandroid/graphics/drawable/Drawable;->getChangingConfigurations()I
-HSPLandroid/graphics/drawable/Drawable;->getColorFilter()Landroid/graphics/ColorFilter;
-HSPLandroid/graphics/drawable/Drawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
-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
-HSPLandroid/graphics/drawable/Drawable;->getLayoutDirection()I
-HSPLandroid/graphics/drawable/Drawable;->getLevel()I
-HSPLandroid/graphics/drawable/Drawable;->getMinimumHeight()I+]Landroid/graphics/drawable/Drawable;missing_types
-HSPLandroid/graphics/drawable/Drawable;->getMinimumWidth()I+]Landroid/graphics/drawable/Drawable;missing_types
-HSPLandroid/graphics/drawable/Drawable;->getOutline(Landroid/graphics/Outline;)V
-HSPLandroid/graphics/drawable/Drawable;->getPadding(Landroid/graphics/Rect;)Z
-HSPLandroid/graphics/drawable/Drawable;->getState()[I
-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+]Landroid/graphics/drawable/Drawable$Callback;missing_types]Landroid/graphics/drawable/Drawable;missing_types
-HSPLandroid/graphics/drawable/Drawable;->isProjected()Z
-HSPLandroid/graphics/drawable/Drawable;->isStateful()Z
-HSPLandroid/graphics/drawable/Drawable;->isVisible()Z
-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
-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+]Landroid/graphics/drawable/Drawable;megamorphic_types
-HSPLandroid/graphics/drawable/Drawable;->setCallback(Landroid/graphics/drawable/Drawable$Callback;)V
-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+]Landroid/graphics/drawable/Drawable;missing_types
-HSPLandroid/graphics/drawable/Drawable;->setTint(I)V
-HSPLandroid/graphics/drawable/Drawable;->setTintList(Landroid/content/res/ColorStateList;)V
-HSPLandroid/graphics/drawable/Drawable;->setTintMode(Landroid/graphics/PorterDuff$Mode;)V
-HSPLandroid/graphics/drawable/Drawable;->setVisible(ZZ)Z
-HSPLandroid/graphics/drawable/Drawable;->unscheduleSelf(Ljava/lang/Runnable;)V
-HSPLandroid/graphics/drawable/Drawable;->updateBlendModeFilter(Landroid/graphics/BlendModeColorFilter;Landroid/content/res/ColorStateList;Landroid/graphics/BlendMode;)Landroid/graphics/BlendModeColorFilter;+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/graphics/BlendModeColorFilter;Landroid/graphics/BlendModeColorFilter;]Landroid/graphics/drawable/Drawable;megamorphic_types
-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$BlockInvalidateCallback-IA;)V
-HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)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+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/graphics/drawable/Drawable;megamorphic_types
-HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->addChild(Landroid/graphics/drawable/Drawable;)I
-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
-HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->clearMutated()V
-HSPLandroid/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;->getChildren()[Landroid/graphics/drawable/Drawable;
-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;->isConstantSize()Z
-HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->isStateful()Z
-HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mutate()V
-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
-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;->applyTheme(Landroid/content/res/Resources$Theme;)V
-HSPLandroid/graphics/drawable/DrawableContainer;->canApplyTheme()Z
-HSPLandroid/graphics/drawable/DrawableContainer;->clearMutated()V
-HSPLandroid/graphics/drawable/DrawableContainer;->cloneConstantState()Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;
-HSPLandroid/graphics/drawable/DrawableContainer;->draw(Landroid/graphics/Canvas;)V
-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+]Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;]Landroid/graphics/drawable/DrawableContainer;Landroid/graphics/drawable/AnimatedStateListDrawable;,Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable;,Landroid/graphics/drawable/StateListDrawable;]Landroid/graphics/drawable/Drawable;megamorphic_types
-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;->mutate()Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/DrawableContainer;->needsMirroring()Z
-HSPLandroid/graphics/drawable/DrawableContainer;->onBoundsChange(Landroid/graphics/Rect;)V
-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
-HSPLandroid/graphics/drawable/DrawableContainer;->setColorFilter(Landroid/graphics/ColorFilter;)V
-HSPLandroid/graphics/drawable/DrawableContainer;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V
-HSPLandroid/graphics/drawable/DrawableContainer;->setDither(Z)V
-HSPLandroid/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
-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;
-HSPLandroid/graphics/drawable/DrawableInflater;->inflateFromTag(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/DrawableInflater;->inflateFromXmlForDensity(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->-$$Nest$fputmThemeAttrs(Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;[I)V
-HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;-><init>(Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;Landroid/content/res/Resources;)V
-HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->canApplyTheme()Z
-HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->canConstantState()Z
-HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->getChangingConfigurations()I
-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
-HSPLandroid/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
-HSPLandroid/graphics/drawable/DrawableWrapper;->getIntrinsicWidth()I
-HSPLandroid/graphics/drawable/DrawableWrapper;->getOpacity()I
-HSPLandroid/graphics/drawable/DrawableWrapper;->getPadding(Landroid/graphics/Rect;)Z
-HSPLandroid/graphics/drawable/DrawableWrapper;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
-HSPLandroid/graphics/drawable/DrawableWrapper;->inflateChildDrawable(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
-HSPLandroid/graphics/drawable/DrawableWrapper;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
-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
-HSPLandroid/graphics/drawable/DrawableWrapper;->onLevelChange(I)Z
-HSPLandroid/graphics/drawable/DrawableWrapper;->onStateChange([I)Z
-HSPLandroid/graphics/drawable/DrawableWrapper;->setAlpha(I)V
-HSPLandroid/graphics/drawable/DrawableWrapper;->setColorFilter(Landroid/graphics/ColorFilter;)V
-HSPLandroid/graphics/drawable/DrawableWrapper;->setDrawable(Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/graphics/drawable/DrawableWrapper;->setHotspot(FF)V
-HSPLandroid/graphics/drawable/DrawableWrapper;->setTintBlendMode(Landroid/graphics/BlendMode;)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
-HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->-$$Nest$mcomputeOpacity(Landroid/graphics/drawable/GradientDrawable$GradientState;)V
-HSPLandroid/graphics/drawable/GradientDrawable$GradientState;-><init>(Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/content/res/Resources;)V
-HSPLandroid/graphics/drawable/GradientDrawable$GradientState;-><init>(Landroid/graphics/drawable/GradientDrawable$Orientation;[I)V+]Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/graphics/drawable/GradientDrawable$GradientState;
-HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->applyDensityScaling(II)V
-HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->canApplyTheme()Z
-HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->computeOpacity()V
-HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->getChangingConfigurations()I
-HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->hasCenterColor()Z
-HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->newDrawable()Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setCornerRadii([F)V
-HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setCornerRadius(F)V
-HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setDensity(I)V
-HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setGradientColors([I)V
-HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setSolidColors(Landroid/content/res/ColorStateList;)V
-HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setStroke(ILandroid/content/res/ColorStateList;FF)V
-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-IA;)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;->canApplyTheme()Z
-HSPLandroid/graphics/drawable/GradientDrawable;->clearMutated()V
-HSPLandroid/graphics/drawable/GradientDrawable;->draw(Landroid/graphics/Canvas;)V+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;,Landroid/graphics/Canvas;
-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
-HSPLandroid/graphics/drawable/GradientDrawable;->getIntrinsicWidth()I
-HSPLandroid/graphics/drawable/GradientDrawable;->getOpacity()I
-HSPLandroid/graphics/drawable/GradientDrawable;->getOutline(Landroid/graphics/Outline;)V
-HSPLandroid/graphics/drawable/GradientDrawable;->getPadding(Landroid/graphics/Rect;)Z
-HSPLandroid/graphics/drawable/GradientDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
-HSPLandroid/graphics/drawable/GradientDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
-HSPLandroid/graphics/drawable/GradientDrawable;->isOpaque(I)Z
-HSPLandroid/graphics/drawable/GradientDrawable;->isOpaqueForState()Z
-HSPLandroid/graphics/drawable/GradientDrawable;->isStateful()Z
-HSPLandroid/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+]Landroid/graphics/drawable/GradientDrawable;Landroid/graphics/drawable/GradientDrawable;
-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
-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;->setShape(I)V
-HSPLandroid/graphics/drawable/GradientDrawable;->setStroke(II)V
-HSPLandroid/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
-HSPLandroid/graphics/drawable/GradientDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V
-HSPLandroid/graphics/drawable/GradientDrawable;->setTintList(Landroid/content/res/ColorStateList;)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+]Landroid/graphics/drawable/GradientDrawable;Landroid/graphics/drawable/GradientDrawable;]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/graphics/Paint;Landroid/graphics/Paint;
-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;
-HSPLandroid/graphics/drawable/Icon;-><init>(I)V
-HSPLandroid/graphics/drawable/Icon;-><init>(Landroid/os/Parcel;)V
-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;
-HSPLandroid/graphics/drawable/Icon;->getResources()Landroid/content/res/Resources;
-HSPLandroid/graphics/drawable/Icon;->getType()I
-HSPLandroid/graphics/drawable/Icon;->getUriString()Ljava/lang/String;
-HSPLandroid/graphics/drawable/Icon;->hasTint()Z
-HSPLandroid/graphics/drawable/Icon;->loadDrawable(Landroid/content/Context;)Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/Icon;->loadDrawableAsUser(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/Icon;->loadDrawableInner(Landroid/content/Context;)Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/Icon;->scaleDownIfNecessary(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
-HSPLandroid/graphics/drawable/Icon;->setBitmap(Landroid/graphics/Bitmap;)V
-HSPLandroid/graphics/drawable/Icon;->setTint(I)Landroid/graphics/drawable/Icon;
-HSPLandroid/graphics/drawable/Icon;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/graphics/drawable/InsetDrawable$InsetState;->-$$Nest$fputmThemeAttrs(Landroid/graphics/drawable/InsetDrawable$InsetState;[I)V
-HSPLandroid/graphics/drawable/InsetDrawable$InsetState;-><init>(Landroid/graphics/drawable/InsetDrawable$InsetState;Landroid/content/res/Resources;)V
-HSPLandroid/graphics/drawable/InsetDrawable$InsetState;->applyDensityScaling(II)V
-HSPLandroid/graphics/drawable/InsetDrawable$InsetState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/InsetDrawable$InsetState;->onDensityChanged(II)V
-HSPLandroid/graphics/drawable/InsetDrawable$InsetValue;-><init>()V
-HSPLandroid/graphics/drawable/InsetDrawable$InsetValue;-><init>(FI)V
-HSPLandroid/graphics/drawable/InsetDrawable$InsetValue;->clone()Landroid/graphics/drawable/InsetDrawable$InsetValue;
-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-IA;)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+]Landroid/graphics/drawable/InsetDrawable;Landroid/graphics/drawable/InsetDrawable;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/InsetDrawable$InsetValue;Landroid/graphics/drawable/InsetDrawable$InsetValue;
-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+]Landroid/graphics/drawable/Drawable$ConstantState;missing_types]Landroid/graphics/drawable/Drawable;missing_types
-HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->applyDensityScaling(II)V
-HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->canApplyTheme()Z
-HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->setDensity(I)V
-HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->-$$Nest$fgetmPaddingMode(Landroid/graphics/drawable/LayerDrawable$LayerState;)I
-HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->-$$Nest$fputmPaddingMode(Landroid/graphics/drawable/LayerDrawable$LayerState;I)V
-HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->-$$Nest$fputmThemeAttrs(Landroid/graphics/drawable/LayerDrawable$LayerState;[I)V
-HSPLandroid/graphics/drawable/LayerDrawable$LayerState;-><init>(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/graphics/drawable/LayerDrawable;Landroid/content/res/Resources;)V
-HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->applyDensityScaling(II)V
-HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->canApplyTheme()Z
-HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->canConstantState()Z
-HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->getChangingConfigurations()I
-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
-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
-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;
-HSPLandroid/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
-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
-HSPLandroid/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
-HSPLandroid/graphics/drawable/LayerDrawable;->setDither(Z)V
-HSPLandroid/graphics/drawable/LayerDrawable;->setDrawable(ILandroid/graphics/drawable/Drawable;)V
-HSPLandroid/graphics/drawable/LayerDrawable;->setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z
-HSPLandroid/graphics/drawable/LayerDrawable;->setHotspot(FF)V
-HSPLandroid/graphics/drawable/LayerDrawable;->setId(II)V
-HSPLandroid/graphics/drawable/LayerDrawable;->setLayerInset(IIIII)V
-HSPLandroid/graphics/drawable/LayerDrawable;->setPaddingMode(I)V
-HSPLandroid/graphics/drawable/LayerDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V
-HSPLandroid/graphics/drawable/LayerDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
-HSPLandroid/graphics/drawable/LayerDrawable;->setVisible(ZZ)Z
-HSPLandroid/graphics/drawable/LayerDrawable;->suspendChildInvalidation()V
-HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBounds(Landroid/graphics/Rect;)V
-HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBoundsInternal(Landroid/graphics/Rect;)V+]Landroid/graphics/drawable/LayerDrawable;Landroid/graphics/drawable/LayerDrawable;,Landroid/graphics/drawable/RippleDrawable;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/Drawable;missing_types
-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
-HSPLandroid/graphics/drawable/NinePatchDrawable$$ExternalSyntheticLambda0;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V
-HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>()V
-HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Rect;)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
-HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;->canApplyTheme()Z
-HSPLandroid/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;
-HSPLandroid/graphics/drawable/NinePatchDrawable;-><init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;[BLandroid/graphics/Rect;Landroid/graphics/Rect;Ljava/lang/String;)V
-HSPLandroid/graphics/drawable/NinePatchDrawable;-><init>(Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;Landroid/content/res/Resources;)V
-HSPLandroid/graphics/drawable/NinePatchDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
-HSPLandroid/graphics/drawable/NinePatchDrawable;->canApplyTheme()Z
-HSPLandroid/graphics/drawable/NinePatchDrawable;->clearMutated()V
-HSPLandroid/graphics/drawable/NinePatchDrawable;->computeBitmapSize()V
-HSPLandroid/graphics/drawable/NinePatchDrawable;->draw(Landroid/graphics/Canvas;)V
-HSPLandroid/graphics/drawable/NinePatchDrawable;->getAlpha()I
-HSPLandroid/graphics/drawable/NinePatchDrawable;->getChangingConfigurations()I
-HSPLandroid/graphics/drawable/NinePatchDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
-HSPLandroid/graphics/drawable/NinePatchDrawable;->getIntrinsicHeight()I
-HSPLandroid/graphics/drawable/NinePatchDrawable;->getIntrinsicWidth()I
-HSPLandroid/graphics/drawable/NinePatchDrawable;->getOpacity()I
-HSPLandroid/graphics/drawable/NinePatchDrawable;->getOpticalInsets()Landroid/graphics/Insets;
-HSPLandroid/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;
-HSPLandroid/graphics/drawable/NinePatchDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
-HSPLandroid/graphics/drawable/NinePatchDrawable;->isAutoMirrored()Z
-HSPLandroid/graphics/drawable/NinePatchDrawable;->isStateful()Z
-HSPLandroid/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;
-HSPLandroid/graphics/drawable/NinePatchDrawable;->onStateChange([I)Z
-HSPLandroid/graphics/drawable/NinePatchDrawable;->setAlpha(I)V
-HSPLandroid/graphics/drawable/NinePatchDrawable;->setAutoMirrored(Z)V
-HSPLandroid/graphics/drawable/NinePatchDrawable;->setDither(Z)V
-HSPLandroid/graphics/drawable/NinePatchDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V
-HSPLandroid/graphics/drawable/NinePatchDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
-HSPLandroid/graphics/drawable/NinePatchDrawable;->updateLocalState(Landroid/content/res/Resources;)V
-HSPLandroid/graphics/drawable/NinePatchDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession$2;-><init>(Landroid/graphics/drawable/RippleAnimationSession;Landroid/graphics/drawable/RippleAnimationSession;Landroid/graphics/animation/RenderNodeAnimator;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession$2;->onAnimationEnd(Landroid/animation/Animator;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession$3;-><init>(Landroid/graphics/drawable/RippleAnimationSession;Landroid/graphics/drawable/RippleAnimationSession;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession$3;->onAnimationEnd(Landroid/animation/Animator;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ILandroid/graphics/drawable/RippleShader;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getColor()I
-HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getMaxRadius()Ljava/lang/Object;
-HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getNoisePhase()Ljava/lang/Object;
-HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getPaint()Ljava/lang/Object;
-HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getProgress()Ljava/lang/Object;
-HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getShader()Landroid/graphics/drawable/RippleShader;
-HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getX()Ljava/lang/Object;
-HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getY()Ljava/lang/Object;
-HSPLandroid/graphics/drawable/RippleAnimationSession$AnimatorListener;-><init>(Landroid/graphics/drawable/RippleAnimationSession;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession$AnimatorListener;->onAnimationCancel(Landroid/animation/Animator;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession$AnimatorListener;->onAnimationEnd(Landroid/animation/Animator;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession$AnimatorListener;->onAnimationStart(Landroid/animation/Animator;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession;->-$$Nest$fgetmCurrentAnimation(Landroid/graphics/drawable/RippleAnimationSession;)Landroid/animation/Animator;
-HSPLandroid/graphics/drawable/RippleAnimationSession;->-$$Nest$fgetmLoopAnimation(Landroid/graphics/drawable/RippleAnimationSession;)Landroid/animation/Animator;
-HSPLandroid/graphics/drawable/RippleAnimationSession;->-$$Nest$fgetmOnSessionEnd(Landroid/graphics/drawable/RippleAnimationSession;)Ljava/util/function/Consumer;
-HSPLandroid/graphics/drawable/RippleAnimationSession;->-$$Nest$fputmCurrentAnimation(Landroid/graphics/drawable/RippleAnimationSession;Landroid/animation/Animator;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession;->-$$Nest$fputmLoopAnimation(Landroid/graphics/drawable/RippleAnimationSession;Landroid/animation/Animator;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession;->-$$Nest$monAnimationEnd(Landroid/graphics/drawable/RippleAnimationSession;Landroid/animation/Animator;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession;-><clinit>()V
-HSPLandroid/graphics/drawable/RippleAnimationSession;-><init>(Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties;Z)V
-HSPLandroid/graphics/drawable/RippleAnimationSession;->computeDelay()J
-HSPLandroid/graphics/drawable/RippleAnimationSession;->end()V
-HSPLandroid/graphics/drawable/RippleAnimationSession;->enter(Landroid/graphics/Canvas;)Landroid/graphics/drawable/RippleAnimationSession;
-HSPLandroid/graphics/drawable/RippleAnimationSession;->enterHardware(Landroid/graphics/RecordingCanvas;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession;->exit(Landroid/graphics/Canvas;)Landroid/graphics/drawable/RippleAnimationSession;
-HSPLandroid/graphics/drawable/RippleAnimationSession;->exitHardware(Landroid/graphics/RecordingCanvas;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession;->getCanvasProperties()Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties;
-HSPLandroid/graphics/drawable/RippleAnimationSession;->getProperties()Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties;
-HSPLandroid/graphics/drawable/RippleAnimationSession;->notifyUpdate()V
-HSPLandroid/graphics/drawable/RippleAnimationSession;->onAnimationEnd(Landroid/animation/Animator;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession;->setForceSoftwareAnimation(Z)Landroid/graphics/drawable/RippleAnimationSession;
-HSPLandroid/graphics/drawable/RippleAnimationSession;->setOnAnimationUpdated(Ljava/lang/Runnable;)Landroid/graphics/drawable/RippleAnimationSession;
-HSPLandroid/graphics/drawable/RippleAnimationSession;->setOnSessionEnd(Ljava/util/function/Consumer;)Landroid/graphics/drawable/RippleAnimationSession;
-HSPLandroid/graphics/drawable/RippleAnimationSession;->startAnimation(Landroid/animation/Animator;Landroid/animation/Animator;)V
-HSPLandroid/graphics/drawable/RippleAnimationSession;->useRTAnimations(Landroid/graphics/Canvas;)Z
-HSPLandroid/graphics/drawable/RippleComponent;->onBoundsChange()V
-HSPLandroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda0;-><init>(Landroid/graphics/drawable/RippleDrawable;)V
-HSPLandroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda0;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V
-HSPLandroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda1;-><init>(Landroid/graphics/drawable/RippleDrawable;)V
-HSPLandroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda1;->run()V
-HSPLandroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda2;-><init>(Landroid/graphics/drawable/RippleDrawable;)V
-HSPLandroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)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
-HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->getChangingConfigurations()I
-HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->newDrawable()Landroid/graphics/drawable/Drawable;
-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-IA;)V
-HSPLandroid/graphics/drawable/RippleDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
-HSPLandroid/graphics/drawable/RippleDrawable;->canApplyTheme()Z
-HSPLandroid/graphics/drawable/RippleDrawable;->cancelExitingRipples()V
-HSPLandroid/graphics/drawable/RippleDrawable;->clearHotspots()V
-HSPLandroid/graphics/drawable/RippleDrawable;->computeRadius()F
-HSPLandroid/graphics/drawable/RippleDrawable;->createAnimationProperties(FFFFFF)Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties;
-HSPLandroid/graphics/drawable/RippleDrawable;->createConstantState(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/LayerDrawable$LayerState;
-HSPLandroid/graphics/drawable/RippleDrawable;->createConstantState(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/RippleDrawable$RippleState;
-HSPLandroid/graphics/drawable/RippleDrawable;->draw(Landroid/graphics/Canvas;)V
-HSPLandroid/graphics/drawable/RippleDrawable;->drawBackgroundAndRipples(Landroid/graphics/Canvas;)V
-HSPLandroid/graphics/drawable/RippleDrawable;->drawContent(Landroid/graphics/Canvas;)V
-HSPLandroid/graphics/drawable/RippleDrawable;->drawPatterned(Landroid/graphics/Canvas;)V+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/drawable/RippleDrawable;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties;Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/drawable/RippleAnimationSession;Landroid/graphics/drawable/RippleAnimationSession;
-HSPLandroid/graphics/drawable/RippleDrawable;->drawPatternedBackground(Landroid/graphics/Canvas;FF)V
-HSPLandroid/graphics/drawable/RippleDrawable;->exitPatternedAnimation()V
-HSPLandroid/graphics/drawable/RippleDrawable;->exitPatternedBackgroundAnimation()V
-HSPLandroid/graphics/drawable/RippleDrawable;->getComputedRadius()I
-HSPLandroid/graphics/drawable/RippleDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
-HSPLandroid/graphics/drawable/RippleDrawable;->getDirtyBounds()Landroid/graphics/Rect;+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/drawable/RippleDrawable;
-HSPLandroid/graphics/drawable/RippleDrawable;->getMaskType()I
-HSPLandroid/graphics/drawable/RippleDrawable;->getOpacity()I
-HSPLandroid/graphics/drawable/RippleDrawable;->getOutline(Landroid/graphics/Outline;)V+]Landroid/graphics/Outline;Landroid/graphics/Outline;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/InsetDrawable;,Landroid/graphics/drawable/StateListDrawable;
-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
-HSPLandroid/graphics/drawable/RippleDrawable;->isBounded()Z
-HSPLandroid/graphics/drawable/RippleDrawable;->isProjected()Z+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/drawable/RippleDrawable;
-HSPLandroid/graphics/drawable/RippleDrawable;->isStateful()Z
-HSPLandroid/graphics/drawable/RippleDrawable;->jumpToCurrentState()V
-HSPLandroid/graphics/drawable/RippleDrawable;->mutate()Landroid/graphics/drawable/Drawable;
-HSPLandroid/graphics/drawable/RippleDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
-HSPLandroid/graphics/drawable/RippleDrawable;->onHotspotBoundsChanged()V
-HSPLandroid/graphics/drawable/RippleDrawable;->onStateChange([I)Z
-HSPLandroid/graphics/drawable/RippleDrawable;->pruneRipples()V
-HSPLandroid/graphics/drawable/RippleDrawable;->setBackgroundActive(ZZZZ)V
-HSPLandroid/graphics/drawable/RippleDrawable;->setColor(Landroid/content/res/ColorStateList;)V
-HSPLandroid/graphics/drawable/RippleDrawable;->setHotspot(FF)V
-HSPLandroid/graphics/drawable/RippleDrawable;->setHotspotBounds(IIII)V
-HSPLandroid/graphics/drawable/RippleDrawable;->setPaddingMode(I)V
-HSPLandroid/graphics/drawable/RippleDrawable;->setRippleActive(Z)V
-HSPLandroid/graphics/drawable/RippleDrawable;->setVisible(ZZ)Z
-HSPLandroid/graphics/drawable/RippleDrawable;->startBackgroundAnimation()V
-HSPLandroid/graphics/drawable/RippleDrawable;->tryRippleEnter()V
-HSPLandroid/graphics/drawable/RippleDrawable;->updateLocalState()V
-HSPLandroid/graphics/drawable/RippleDrawable;->updateMaskShaderIfNeeded()V
-HSPLandroid/graphics/drawable/RippleDrawable;->updateRipplePaint()Landroid/graphics/Paint;
-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
-HSPLandroid/graphics/drawable/RippleForeground;->drawSoftware(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
-HSPLandroid/graphics/drawable/RippleForeground;->end()V
-HSPLandroid/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/RippleShader;-><init>()V
-HSPLandroid/graphics/drawable/RippleShader;->setColor(II)V
-HSPLandroid/graphics/drawable/RippleShader;->setNoisePhase(F)V
-HSPLandroid/graphics/drawable/RippleShader;->setOrigin(FF)V
-HSPLandroid/graphics/drawable/RippleShader;->setProgress(F)V
-HSPLandroid/graphics/drawable/RippleShader;->setRadius(F)V
-HSPLandroid/graphics/drawable/RippleShader;->setResolution(FF)V
-HSPLandroid/graphics/drawable/RippleShader;->setShader(Landroid/graphics/Shader;)V
-HSPLandroid/graphics/drawable/RippleShader;->setTouch(FF)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;->-$$Nest$fputmThemeAttrs(Landroid/graphics/drawable/ScaleDrawable$ScaleState;[I)V
-HSPLandroid/graphics/drawable/ScaleDrawable$ScaleState;-><init>(Landroid/graphics/drawable/ScaleDrawable$ScaleState;Landroid/content/res/Resources;)V
-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+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/ScaleDrawable;Landroid/graphics/drawable/ScaleDrawable;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/StateListDrawable;
-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$ShapeState;-><init>(Landroid/graphics/drawable/ShapeDrawable$ShapeState;)V
-HSPLandroid/graphics/drawable/ShapeDrawable;-><init>()V
-HSPLandroid/graphics/drawable/ShapeDrawable;-><init>(Landroid/graphics/drawable/ShapeDrawable$ShapeState;Landroid/content/res/Resources;)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
-HSPLandroid/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;->setIntrinsicHeight(I)V
-HSPLandroid/graphics/drawable/ShapeDrawable;->setIntrinsicWidth(I)V
-HSPLandroid/graphics/drawable/ShapeDrawable;->setShape(Landroid/graphics/drawable/shapes/Shape;)V
-HSPLandroid/graphics/drawable/ShapeDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
-HSPLandroid/graphics/drawable/ShapeDrawable;->updateLocalState()V
-HSPLandroid/graphics/drawable/ShapeDrawable;->updateShape()V
-HSPLandroid/graphics/drawable/StateListDrawable$StateListState;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;Landroid/graphics/drawable/StateListDrawable;Landroid/content/res/Resources;)V
-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/graphics/drawable/Drawable;
-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-IA;)V
-HSPLandroid/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;-><init>(Landroid/graphics/drawable/TransitionDrawable$TransitionState;Landroid/graphics/drawable/TransitionDrawable;Landroid/content/res/Resources;)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
-HSPLandroid/graphics/drawable/TransitionDrawable;->setCrossFadeEnabled(Z)V
-HSPLandroid/graphics/drawable/TransitionDrawable;->startTransition(I)V
-HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->canApplyTheme()Z
-HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->getNativePtr()J
-HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->getNativeSize()I
-HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->isStateful()Z
-HSPLandroid/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;->getFillColor()I
-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;->onStateChange([I)Z
-HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/res/ComplexColor;Landroid/content/res/ColorStateList;]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;
-HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->-$$Nest$fgetmChangingConfigurations(Landroid/graphics/drawable/VectorDrawable$VGroup;)I
-HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->-$$Nest$fgetmNativePtr(Landroid/graphics/drawable/VectorDrawable$VGroup;)J
-HSPLandroid/graphics/drawable/VectorDrawable$VGroup;-><init>()V
-HSPLandroid/graphics/drawable/VectorDrawable$VGroup;-><init>(Landroid/graphics/drawable/VectorDrawable$VGroup;Landroid/util/ArrayMap;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/graphics/drawable/VectorDrawable$VGroup;Landroid/graphics/drawable/VectorDrawable$VGroup;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->addChild(Landroid/graphics/drawable/VectorDrawable$VObject;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/graphics/drawable/VectorDrawable$VObject;Landroid/graphics/drawable/VectorDrawable$VGroup;,Landroid/graphics/drawable/VectorDrawable$VFullPath;
-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
-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
-HSPLandroid/graphics/drawable/VectorDrawable$VObject;->isTreeValid()Z
-HSPLandroid/graphics/drawable/VectorDrawable$VObject;->setTree(Lcom/android/internal/util/VirtualRefBasePtr;)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;
-HSPLandroid/graphics/drawable/VectorDrawable$VPath;->getProperty(Ljava/lang/String;)Landroid/util/Property;
-HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->-$$Nest$mcreateNativeTree(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VGroup;)V
-HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;-><init>(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;)V+]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;
-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
-HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->createNativeTreeFromCopy(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VGroup;)V
-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
-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+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime;]Landroid/graphics/drawable/VectorDrawable$VGroup;Landroid/graphics/drawable/VectorDrawable$VGroup;
-HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->setAlpha(F)Z
-HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->setDensity(I)Z
-HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->setViewportSize(FF)V
-HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->updateCacheStates()V
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnAddChild(JJ)V
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnCreateFullPath()J
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnCreateFullPath(J)J
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnCreateGroup()J
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnCreateGroup(J)J
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnCreateTree(J)J
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnCreateTreeFromCopy(JJ)J
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnGetFullPathProperties(J[BI)Z
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnGetGroupProperties(J[FI)Z
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnGetRootAlpha(J)F
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnSetName(JLjava/lang/String;)V
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnSetPathString(JLjava/lang/String;I)V
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnSetRendererViewportSize(JFF)V
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnSetRootAlpha(JF)Z
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnUpdateFullPathFillGradient(JJ)V
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnUpdateFullPathProperties(JFIFIFFFFFIII)V
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnUpdateFullPathStrokeGradient(JJ)V
-HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnUpdateGroupProperties(JFFFFFFF)V
-HSPLandroid/graphics/drawable/VectorDrawable;-><init>()V
-HSPLandroid/graphics/drawable/VectorDrawable;-><init>(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/content/res/Resources;)V
-HSPLandroid/graphics/drawable/VectorDrawable;-><init>(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/content/res/Resources;Landroid/graphics/drawable/VectorDrawable-IA;)V
-HSPLandroid/graphics/drawable/VectorDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V+]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;
-HSPLandroid/graphics/drawable/VectorDrawable;->canApplyTheme()Z
-HSPLandroid/graphics/drawable/VectorDrawable;->clearMutated()V
-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
-HSPLandroid/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;->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+]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime;]Lcom/android/internal/util/VirtualRefBasePtr;Lcom/android/internal/util/VirtualRefBasePtr;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/graphics/drawable/VectorDrawable$VGroup;Landroid/graphics/drawable/VectorDrawable$VGroup;
-HSPLandroid/graphics/drawable/VectorDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Ljava/lang/Object;Ljava/lang/String;]Ljava/util/Stack;Ljava/util/Stack;]Landroid/graphics/drawable/VectorDrawable$VGroup;Landroid/graphics/drawable/VectorDrawable$VGroup;]Landroid/graphics/drawable/VectorDrawable$VFullPath;Landroid/graphics/drawable/VectorDrawable$VFullPath;
-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;->needMirroring()Z
-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+]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;
-HSPLandroid/graphics/drawable/shapes/OvalShape;-><init>()V
-HSPLandroid/graphics/drawable/shapes/OvalShape;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
-HSPLandroid/graphics/drawable/shapes/OvalShape;->getOutline(Landroid/graphics/Outline;)V
-HSPLandroid/graphics/drawable/shapes/PathShape;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
-HSPLandroid/graphics/drawable/shapes/RectShape;-><init>()V
-HSPLandroid/graphics/drawable/shapes/RectShape;->onResize(FF)V
-HSPLandroid/graphics/drawable/shapes/RectShape;->rect()Landroid/graphics/RectF;
-HSPLandroid/graphics/drawable/shapes/RoundRectShape;-><init>([FLandroid/graphics/RectF;[F)V
-HSPLandroid/graphics/drawable/shapes/RoundRectShape;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
-HSPLandroid/graphics/drawable/shapes/RoundRectShape;->getOutline(Landroid/graphics/Outline;)V
-HSPLandroid/graphics/drawable/shapes/RoundRectShape;->onResize(FF)V
-HSPLandroid/graphics/drawable/shapes/Shape;-><init>()V
-HSPLandroid/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/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;-><init>(Ljava/nio/ByteBuffer;Ljava/io/File;Ljava/lang/String;)V
-HSPLandroid/graphics/fonts/Font$Builder;->build()Landroid/graphics/fonts/Font;
-HSPLandroid/graphics/fonts/Font$Builder;->createBuffer(Landroid/content/res/AssetManager;Ljava/lang/String;ZI)Ljava/nio/ByteBuffer;
-HSPLandroid/graphics/fonts/Font$Builder;->setFontVariationSettings(Ljava/lang/String;)Landroid/graphics/fonts/Font$Builder;
-HSPLandroid/graphics/fonts/Font$Builder;->setFontVariationSettings([Landroid/graphics/fonts/FontVariationAxis;)Landroid/graphics/fonts/Font$Builder;
-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>(J)V
-HSPLandroid/graphics/fonts/Font;->getAxes()[Landroid/graphics/fonts/FontVariationAxis;
-HSPLandroid/graphics/fonts/Font;->getNativePtr()J
-HSPLandroid/graphics/fonts/Font;->getStyle()Landroid/graphics/fonts/FontStyle;
-HSPLandroid/graphics/fonts/FontFamily$Builder;-><init>(Landroid/graphics/fonts/Font;)V
-HSPLandroid/graphics/fonts/FontFamily$Builder;->build()Landroid/graphics/fonts/FontFamily;
-HSPLandroid/graphics/fonts/FontFamily$Builder;->makeStyleIdentifier(Landroid/graphics/fonts/Font;)I
-HSPLandroid/graphics/fonts/FontFamily;-><init>(J)V
-HSPLandroid/graphics/fonts/FontFamily;->getFont(I)Landroid/graphics/fonts/Font;
-HSPLandroid/graphics/fonts/FontFamily;->getNativePtr()J
-HSPLandroid/graphics/fonts/FontFamily;->getSize()I
-HSPLandroid/graphics/fonts/FontFileUtil;->analyzeStyle(Ljava/nio/ByteBuffer;I[Landroid/graphics/fonts/FontVariationAxis;)I
-HSPLandroid/graphics/fonts/FontStyle;-><init>(II)V
-HSPLandroid/graphics/fonts/FontStyle;->getSlant()I
-HSPLandroid/graphics/fonts/FontStyle;->getWeight()I
-HSPLandroid/graphics/fonts/FontVariationAxis;-><init>(Ljava/lang/String;F)V
-HSPLandroid/graphics/fonts/FontVariationAxis;->fromFontVariationSettings(Ljava/lang/String;)[Landroid/graphics/fonts/FontVariationAxis;
-HSPLandroid/graphics/fonts/FontVariationAxis;->isValidTag(Ljava/lang/String;)Z
-HSPLandroid/graphics/fonts/FontVariationAxis;->makeTag(Ljava/lang/String;)I
-HSPLandroid/graphics/fonts/SystemFonts;->mmap(Ljava/lang/String;)Ljava/nio/ByteBuffer;
-HSPLandroid/graphics/text/LineBreakConfig$Builder;-><init>()V
-HSPLandroid/graphics/text/LineBreakConfig$Builder;->build()Landroid/graphics/text/LineBreakConfig;
-HSPLandroid/graphics/text/LineBreakConfig$Builder;->setLineBreakStyle(I)Landroid/graphics/text/LineBreakConfig$Builder;
-HSPLandroid/graphics/text/LineBreakConfig$Builder;->setLineBreakWordStyle(I)Landroid/graphics/text/LineBreakConfig$Builder;
-HSPLandroid/graphics/text/LineBreakConfig;-><clinit>()V
-HSPLandroid/graphics/text/LineBreakConfig;->getLineBreakConfig(II)Landroid/graphics/text/LineBreakConfig;
-HSPLandroid/graphics/text/LineBreakConfig;->getLineBreakStyle()I
-HSPLandroid/graphics/text/LineBreakConfig;->getLineBreakWordStyle()I
-HSPLandroid/graphics/text/LineBreaker$Builder;-><init>()V
-HSPLandroid/graphics/text/LineBreaker$Builder;->build()Landroid/graphics/text/LineBreaker;
-HSPLandroid/graphics/text/LineBreaker$Builder;->setBreakStrategy(I)Landroid/graphics/text/LineBreaker$Builder;
-HSPLandroid/graphics/text/LineBreaker$Builder;->setHyphenationFrequency(I)Landroid/graphics/text/LineBreaker$Builder;
-HSPLandroid/graphics/text/LineBreaker$Builder;->setIndents([I)Landroid/graphics/text/LineBreaker$Builder;
-HSPLandroid/graphics/text/LineBreaker$Builder;->setJustificationMode(I)Landroid/graphics/text/LineBreaker$Builder;
-HSPLandroid/graphics/text/LineBreaker$ParagraphConstraints;-><init>()V
-HSPLandroid/graphics/text/LineBreaker$ParagraphConstraints;->setIndent(FI)V
-HSPLandroid/graphics/text/LineBreaker$ParagraphConstraints;->setTabStops([FF)V
-HSPLandroid/graphics/text/LineBreaker$ParagraphConstraints;->setWidth(F)V
-HSPLandroid/graphics/text/LineBreaker$Result;-><init>(J)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
-HSPLandroid/graphics/text/LineBreaker$Result;->getLineCount()I
-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
-HSPLandroid/graphics/text/LineBreaker;->computeLineBreaks(Landroid/graphics/text/MeasuredText;Landroid/graphics/text/LineBreaker$ParagraphConstraints;I)Landroid/graphics/text/LineBreaker$Result;
-HSPLandroid/graphics/text/MeasuredText$Builder;-><init>([C)V
-HSPLandroid/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;->appendStyleRun(Landroid/graphics/Paint;Landroid/graphics/text/LineBreakConfig;IZ)Landroid/graphics/text/MeasuredText$Builder;
-HSPLandroid/graphics/text/MeasuredText$Builder;->build()Landroid/graphics/text/MeasuredText;
-HSPLandroid/graphics/text/MeasuredText$Builder;->ensureNativePtrNoReuse()V
-HSPLandroid/graphics/text/MeasuredText$Builder;->setComputeHyphenation(I)Landroid/graphics/text/MeasuredText$Builder;
-HSPLandroid/graphics/text/MeasuredText$Builder;->setComputeHyphenation(Z)Landroid/graphics/text/MeasuredText$Builder;
-HSPLandroid/graphics/text/MeasuredText$Builder;->setComputeLayout(Z)Landroid/graphics/text/MeasuredText$Builder;
-HSPLandroid/graphics/text/MeasuredText;->getCharWidthAt(I)F
-HSPLandroid/graphics/text/MeasuredText;->getChars()[C
-HSPLandroid/graphics/text/MeasuredText;->getNativePtr()J
-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;
-HSPLandroid/hardware/GeomagneticField$LegendreTable;-><init>(IF)V
-HSPLandroid/hardware/GeomagneticField;-><init>(FFFJ)V
-HSPLandroid/hardware/GeomagneticField;->computeGeocentricCoordinates(FFF)V
-HSPLandroid/hardware/HardwareBuffer$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/HardwareBuffer;
-HSPLandroid/hardware/HardwareBuffer$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/hardware/HardwareBuffer;-><init>(J)V
-HSPLandroid/hardware/HardwareBuffer;->close()V
-HSPLandroid/hardware/HardwareBuffer;->finalize()V
-HSPLandroid/hardware/HardwareBuffer;->getFormat()I
-HSPLandroid/hardware/HardwareBuffer;->getUsage()J
-HSPLandroid/hardware/HardwareBuffer;->isClosed()Z
-HSPLandroid/hardware/ICameraService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/hardware/ICameraService$Stub$Proxy;->addListener(Landroid/hardware/ICameraServiceListener;)[Landroid/hardware/CameraStatus;
-HSPLandroid/hardware/ICameraService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/hardware/ICameraService$Stub$Proxy;->getCameraCharacteristics(Ljava/lang/String;IZ)Landroid/hardware/camera2/impl/CameraMetadataNative;
-HSPLandroid/hardware/ICameraService$Stub$Proxy;->getConcurrentCameraIds()[Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination;
-HSPLandroid/hardware/ICameraService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ICameraService;
-HSPLandroid/hardware/ICameraServiceListener$Stub;->getMaxTransactionId()I
-HSPLandroid/hardware/ICameraServiceListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/hardware/OverlayProperties$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/OverlayProperties;
-HSPLandroid/hardware/OverlayProperties$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/hardware/OverlayProperties;->-$$Nest$smnReadOverlayPropertiesFromParcel(Landroid/os/Parcel;)J
-HSPLandroid/hardware/OverlayProperties;-><init>(J)V
-HSPLandroid/hardware/Sensor;-><init>()V
-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;
-HSPLandroid/hardware/Sensor;->getReportingMode()I
-HSPLandroid/hardware/Sensor;->getStringType()Ljava/lang/String;
-HSPLandroid/hardware/Sensor;->getType()I
-HSPLandroid/hardware/Sensor;->getVendor()Ljava/lang/String;
-HSPLandroid/hardware/Sensor;->isWakeUpSensor()Z
-HSPLandroid/hardware/Sensor;->setId(I)V
-HSPLandroid/hardware/Sensor;->setType(I)Z
-HSPLandroid/hardware/Sensor;->setUuid(JJ)V
-HSPLandroid/hardware/SensorEvent;-><init>(I)V
-HSPLandroid/hardware/SensorManager;-><init>()V
-HSPLandroid/hardware/SensorManager;->cancelTriggerSensor(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z
-HSPLandroid/hardware/SensorManager;->getDefaultSensor(I)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
-HSPLandroid/hardware/SensorManager;->requestTriggerSensor(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z
-HSPLandroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;)V
-HSPLandroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V
-HSPLandroid/hardware/SensorPrivacyManager;->isSensorPrivacyEnabled(II)Z
-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
-HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->disableSensor(Landroid/hardware/Sensor;)I
-HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->dispose()V
-HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->dispose(Z)V
-HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->enableSensor(Landroid/hardware/Sensor;II)I
-HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->finalize()V
-HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->hasSensors()Z
-HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->removeAllSensors()Z
-HSPLandroid/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
-HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;->dispatchAdditionalInfoEvent(III[F[I)V
-HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;->dispatchSensorEvent(I[FIJ)V+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Landroid/hardware/Sensor;Landroid/hardware/Sensor;]Landroid/util/SparseArray;Landroid/util/SparseArray;
-HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;->removeSensorEvent(Landroid/hardware/Sensor;)V
-HSPLandroid/hardware/SystemSensorManager$TriggerEventQueue;->addSensorEvent(Landroid/hardware/Sensor;)V
-HSPLandroid/hardware/SystemSensorManager$TriggerEventQueue;->dispatchSensorEvent(I[FIJ)V
-HSPLandroid/hardware/SystemSensorManager$TriggerEventQueue;->removeSensorEvent(Landroid/hardware/Sensor;)V
-HSPLandroid/hardware/SystemSensorManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
-HSPLandroid/hardware/SystemSensorManager;->cancelTriggerSensorImpl(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;Z)Z
-HSPLandroid/hardware/SystemSensorManager;->getFullSensorList()Ljava/util/List;
-HSPLandroid/hardware/SystemSensorManager;->getSensorList(I)Ljava/util/List;
-HSPLandroid/hardware/SystemSensorManager;->isDeviceSensorPolicyDefault(I)Z
-HSPLandroid/hardware/SystemSensorManager;->registerListenerImpl(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;ILandroid/os/Handler;II)Z
-HSPLandroid/hardware/SystemSensorManager;->requestTriggerSensorImpl(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z
-HSPLandroid/hardware/SystemSensorManager;->unregisterListenerImpl(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V
-HSPLandroid/hardware/TriggerEventListener;-><init>()V
-HSPLandroid/hardware/biometrics/BiometricManager;-><init>(Landroid/content/Context;Landroid/hardware/biometrics/IAuthService;)V
-HSPLandroid/hardware/biometrics/BiometricManager;->canAuthenticate()I
-HSPLandroid/hardware/biometrics/BiometricManager;->canAuthenticate(I)I
-HSPLandroid/hardware/biometrics/BiometricManager;->canAuthenticate(II)I
-HSPLandroid/hardware/biometrics/BiometricSourceType;->values()[Landroid/hardware/biometrics/BiometricSourceType;
-HSPLandroid/hardware/biometrics/BiometricSourceType;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/hardware/biometrics/IAuthService$Stub$Proxy;->canAuthenticate(Ljava/lang/String;II)I
-HSPLandroid/hardware/biometrics/IAuthService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/biometrics/IAuthService;
-HSPLandroid/hardware/biometrics/SensorPropertiesInternal$1;-><init>()V
-HSPLandroid/hardware/biometrics/SensorPropertiesInternal;-><clinit>()V
-HSPLandroid/hardware/camera2/CameraCharacteristics$1;->onDeviceStateChanged(Z)V
-HSPLandroid/hardware/camera2/CameraCharacteristics$Key;->equals(Ljava/lang/Object;)Z
-HSPLandroid/hardware/camera2/CameraCharacteristics$Key;->getNativeKey()Landroid/hardware/camera2/impl/CameraMetadataNative$Key;
-HSPLandroid/hardware/camera2/CameraCharacteristics;->-$$Nest$fgetmLock(Landroid/hardware/camera2/CameraCharacteristics;)Ljava/lang/Object;
-HSPLandroid/hardware/camera2/CameraCharacteristics;->-$$Nest$fputmFoldedDeviceState(Landroid/hardware/camera2/CameraCharacteristics;Z)V
-HSPLandroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
-HSPLandroid/hardware/camera2/CameraCharacteristics;->getDeviceStateListener()Landroid/hardware/camera2/CameraManager$DeviceStateListener;
-HSPLandroid/hardware/camera2/CameraCharacteristics;->overrideProperty(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
-HSPLandroid/hardware/camera2/CameraManager$AvailabilityCallback;-><init>()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$3;-><init>(Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;Landroid/hardware/camera2/CameraManager$AvailabilityCallback;)V
-HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->asBinder()Landroid/os/IBinder;
-HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->cameraIdHasConcurrentStreamsLocked(Ljava/lang/String;)Z
-HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->connectCameraServiceLocked()V
-HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->extractCameraIdListLocked()[Ljava/lang/String;
-HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->get()Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;
-HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->getCameraIdList()[Ljava/lang/String;
-HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->getCameraService()Landroid/hardware/ICameraService;
-HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onCameraAccessPrioritiesChanged()V
-HSPLandroid/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
-HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->postSingleAccessPriorityChangeUpdate(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/util/concurrent/Executor;)V
-HSPLandroid/hardware/camera2/CameraManager$FoldStateListener;->addDeviceStateListener(Landroid/hardware/camera2/CameraManager$DeviceStateListener;)V
-HSPLandroid/hardware/camera2/CameraManager$FoldStateListener;->handleStateChange(I)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;->getPhysicalCameraMultiResolutionConfigs(Ljava/lang/String;Landroid/hardware/camera2/impl/CameraMetadataNative;Landroid/hardware/ICameraService;)Ljava/util/Map;
-HSPLandroid/hardware/camera2/CameraManager;->registerDeviceStateListener(Landroid/hardware/camera2/CameraCharacteristics;)V
-HSPLandroid/hardware/camera2/CameraManager;->shouldOverrideToPortrait(Landroid/content/Context;)Z
-HSPLandroid/hardware/camera2/CameraMetadata;-><init>()V
-HSPLandroid/hardware/camera2/CameraMetadata;->setNativeInstance(Landroid/hardware/camera2/impl/CameraMetadataNative;)V
-HSPLandroid/hardware/camera2/impl/CameraDeviceImpl$CameraHandlerExecutor;->execute(Ljava/lang/Runnable;)V
-HSPLandroid/hardware/camera2/impl/CameraDeviceImpl;->checkAndWrapHandler(Landroid/os/Handler;)Ljava/util/concurrent/Executor;
-HSPLandroid/hardware/camera2/impl/CameraDeviceImpl;->checkHandler(Landroid/os/Handler;)Landroid/os/Handler;
-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;->equals(Ljava/lang/Object;)Z
-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;->move(Landroid/hardware/camera2/impl/CameraMetadataNative;)Landroid/hardware/camera2/impl/CameraMetadataNative;
-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;->setHasMandatoryConcurrentStreams(Z)V
-HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->setupGlobalVendorTagDescriptor()V
-HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->updateNativeAllocation()V
-HSPLandroid/hardware/camera2/marshal/MarshalHelpers;->checkNativeType(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;->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;->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/MarshalQueryableRange;->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/MarshalQueryableReprocessFormatsMap;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
-HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableSize;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
-HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableSizeF;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
-HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableString;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
-HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination;
-HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination$1;->newArray(I)[Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination;
-HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination$1;->newArray(I)[Ljava/lang/Object;
-HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination;-><init>(Landroid/os/Parcel;Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination-IA;)V
-HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination;->getConcurrentCameraIdCombination()Ljava/util/Set;
-HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/hardware/camera2/utils/TypeReference;->containsTypeVariable(Ljava/lang/reflect/Type;)Z
-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/devicestate/DeviceStateInfo$1;-><init>()V
-HSPLandroid/hardware/devicestate/DeviceStateInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/devicestate/DeviceStateInfo;
-HSPLandroid/hardware/devicestate/DeviceStateInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/hardware/devicestate/DeviceStateInfo;-><clinit>()V
-HSPLandroid/hardware/devicestate/DeviceStateManager;-><init>()V
-HSPLandroid/hardware/devicestate/DeviceStateManager;->registerCallback(Ljava/util/concurrent/Executor;Landroid/hardware/devicestate/DeviceStateManager$DeviceStateCallback;)V
-HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda1;->run()V
-HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda2;->run()V
-HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper;-><init>(Landroid/hardware/devicestate/DeviceStateManager$DeviceStateCallback;Ljava/util/concurrent/Executor;)V
-HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateManagerCallback;-><init>(Landroid/hardware/devicestate/DeviceStateManagerGlobal;)V
-HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateManagerCallback;-><init>(Landroid/hardware/devicestate/DeviceStateManagerGlobal;Landroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateManagerCallback-IA;)V
-HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateManagerCallback;->onDeviceStateInfoChanged(Landroid/hardware/devicestate/DeviceStateInfo;)V
-HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal;->-$$Nest$mhandleDeviceStateInfoChanged(Landroid/hardware/devicestate/DeviceStateManagerGlobal;Landroid/hardware/devicestate/DeviceStateInfo;)V
-HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal;-><init>(Landroid/hardware/devicestate/IDeviceStateManager;)V
-HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal;->findCallbackLocked(Landroid/hardware/devicestate/DeviceStateManager$DeviceStateCallback;)I
-HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal;->getInstance()Landroid/hardware/devicestate/DeviceStateManagerGlobal;
-HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal;->handleDeviceStateInfoChanged(Landroid/hardware/devicestate/DeviceStateInfo;)V
-HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal;->registerCallbackIfNeededLocked()V
-HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal;->registerDeviceStateCallback(Landroid/hardware/devicestate/DeviceStateManager$DeviceStateCallback;Ljava/util/concurrent/Executor;)V
-HSPLandroid/hardware/devicestate/IDeviceStateManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/hardware/devicestate/IDeviceStateManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/hardware/devicestate/IDeviceStateManager$Stub$Proxy;->registerCallback(Landroid/hardware/devicestate/IDeviceStateManagerCallback;)V
-HSPLandroid/hardware/devicestate/IDeviceStateManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/devicestate/IDeviceStateManager;
-HSPLandroid/hardware/devicestate/IDeviceStateManagerCallback$Stub;-><init>()V
-HSPLandroid/hardware/devicestate/IDeviceStateManagerCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/hardware/devicestate/IDeviceStateManagerCallback$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
-HSPLandroid/hardware/devicestate/IDeviceStateManagerCallback$Stub;->getMaxTransactionId()I
-HSPLandroid/hardware/devicestate/IDeviceStateManagerCallback$Stub;->getTransactionName(I)Ljava/lang/String;
-HSPLandroid/hardware/devicestate/IDeviceStateManagerCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-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;->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;->doubleTapSensorType()Ljava/lang/String;
-HSPLandroid/hardware/display/AmbientDisplayConfiguration;->dozePickupSensorAvailable()Z
-HSPLandroid/hardware/display/AmbientDisplayConfiguration;->enabled(I)Z
-HSPLandroid/hardware/display/AmbientDisplayConfiguration;->pulseOnNotificationAvailable()Z
-HSPLandroid/hardware/display/AmbientDisplayConfiguration;->pulseOnNotificationEnabled(I)Z
-HSPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;->getInstance()Landroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;
-HSPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;->isNightDisplayActivated()Z
-HSPLandroid/hardware/display/ColorDisplayManager;-><init>()V
-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/DeviceProductInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/display/DeviceProductInfo;
-HSPLandroid/hardware/display/DeviceProductInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/hardware/display/DeviceProductInfo$ManufactureDate$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/display/DeviceProductInfo$ManufactureDate;
-HSPLandroid/hardware/display/DeviceProductInfo$ManufactureDate$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/hardware/display/DeviceProductInfo$ManufactureDate;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/hardware/display/DeviceProductInfo$ManufactureDate;->equals(Ljava/lang/Object;)Z
-HSPLandroid/hardware/display/DeviceProductInfo;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/hardware/display/DeviceProductInfo;-><init>(Landroid/os/Parcel;Landroid/hardware/display/DeviceProductInfo-IA;)V
-HSPLandroid/hardware/display/DeviceProductInfo;->equals(Ljava/lang/Object;)Z
-HSPLandroid/hardware/display/DisplayManager$$ExternalSyntheticLambda2;-><init>()V
-HSPLandroid/hardware/display/DisplayManager$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z
-HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;-><init>()V
-HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;-><init>(Landroid/hardware/display/DisplayManager$WeakDisplayCache-IA;)V
-HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;->get(I)Landroid/view/Display;
-HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;->put(Landroid/view/Display;)V
-HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;->removeStaleEntries()V
-HSPLandroid/hardware/display/DisplayManager;-><init>(Landroid/content/Context;)V
-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;->getDisplays([ILjava/util/function/Predicate;)[Landroid/view/Display;
-HSPLandroid/hardware/display/DisplayManager;->getOrCreateDisplay(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
-HSPLandroid/hardware/display/DisplayManager;->registerDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;Landroid/os/Handler;J)V
-HSPLandroid/hardware/display/DisplayManager;->unregisterDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;)V
-HSPLandroid/hardware/display/DisplayManagerGlobal$1;-><init>(Landroid/hardware/display/DisplayManagerGlobal;ILjava/lang/String;)V
-HSPLandroid/hardware/display/DisplayManagerGlobal$1;->recompute(Ljava/lang/Integer;)Landroid/view/DisplayInfo;
-HSPLandroid/hardware/display/DisplayManagerGlobal$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;-><init>(Landroid/hardware/display/DisplayManager$DisplayListener;Ljava/util/concurrent/Executor;JLjava/lang/String;)V
-HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;->clearEvents()V
-HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;->handleDisplayEventInner(IILandroid/view/DisplayInfo;Z)V+]Landroid/view/DisplayInfo;Landroid/view/DisplayInfo;]Landroid/hardware/display/DisplayManager$DisplayListener;missing_types
-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$DisplayManagerCallback-IA;)V
-HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;->onDisplayEvent(II)V
-HSPLandroid/hardware/display/DisplayManagerGlobal;->-$$Nest$fgetmDm(Landroid/hardware/display/DisplayManagerGlobal;)Landroid/hardware/display/IDisplayManager;
-HSPLandroid/hardware/display/DisplayManagerGlobal;-><init>(Landroid/hardware/display/IDisplayManager;)V
-HSPLandroid/hardware/display/DisplayManagerGlobal;->calculateEventsMaskLocked()I
-HSPLandroid/hardware/display/DisplayManagerGlobal;->extraLogging()Z
-HSPLandroid/hardware/display/DisplayManagerGlobal;->findDisplayListenerLocked(Landroid/hardware/display/DisplayManager$DisplayListener;)I
-HSPLandroid/hardware/display/DisplayManagerGlobal;->getCompatibleDisplay(ILandroid/content/res/Resources;)Landroid/view/Display;
-HSPLandroid/hardware/display/DisplayManagerGlobal;->getCompatibleDisplay(ILandroid/view/DisplayAdjustments;)Landroid/view/Display;
-HSPLandroid/hardware/display/DisplayManagerGlobal;->getDisplayIds()[I
-HSPLandroid/hardware/display/DisplayManagerGlobal;->getDisplayIds(Z)[I
-HSPLandroid/hardware/display/DisplayManagerGlobal;->getDisplayInfo(I)Landroid/view/DisplayInfo;
-HSPLandroid/hardware/display/DisplayManagerGlobal;->getDisplayInfoLocked(I)Landroid/view/DisplayInfo;+]Landroid/app/PropertyInvalidatedCache;Landroid/hardware/display/DisplayManagerGlobal$1;
-HSPLandroid/hardware/display/DisplayManagerGlobal;->getInstance()Landroid/hardware/display/DisplayManagerGlobal;
-HSPLandroid/hardware/display/DisplayManagerGlobal;->getLooperForHandler(Landroid/os/Handler;)Landroid/os/Looper;
-HSPLandroid/hardware/display/DisplayManagerGlobal;->getPreferredWideGamutColorSpace()Landroid/graphics/ColorSpace;
-HSPLandroid/hardware/display/DisplayManagerGlobal;->getStableDisplaySize()Landroid/graphics/Point;
-HSPLandroid/hardware/display/DisplayManagerGlobal;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus;
-HSPLandroid/hardware/display/DisplayManagerGlobal;->initExtraLogging()Z
-HSPLandroid/hardware/display/DisplayManagerGlobal;->maybeLogAllDisplayListeners()V
-HSPLandroid/hardware/display/DisplayManagerGlobal;->registerCallbackIfNeededLocked()V
-HSPLandroid/hardware/display/DisplayManagerGlobal;->registerDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;Ljava/util/concurrent/Executor;JLjava/lang/String;)V+]Ljava/util/concurrent/CopyOnWriteArrayList;Ljava/util/concurrent/CopyOnWriteArrayList;
-HSPLandroid/hardware/display/DisplayManagerGlobal;->registerNativeChoreographerForRefreshRateCallbacks()V
-HSPLandroid/hardware/display/DisplayManagerGlobal;->unregisterDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;)V
-HSPLandroid/hardware/display/DisplayManagerGlobal;->updateCallbackIfNeededLocked()V
-HSPLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->equals(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)Z
-HSPLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->floatEquals(FF)Z
-HSPLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->isBrightOrDim()Z
-HSPLandroid/hardware/display/IColorDisplayManager$Stub$Proxy;->isNightDisplayActivated()Z
-HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getDisplayIds(Z)[I
-HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getDisplayInfo(I)Landroid/view/DisplayInfo;
-HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getOverlaySupport()Landroid/hardware/OverlayProperties;
-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
-HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->registerCallbackWithEventMask(Landroid/hardware/display/IDisplayManagerCallback;J)V
-HSPLandroid/hardware/display/IDisplayManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/display/IDisplayManager;
-HSPLandroid/hardware/display/IDisplayManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;-><init>()V
-HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
-HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;->getMaxTransactionId()I
-HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;->getTransactionName(I)Ljava/lang/String;
-HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-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>(ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)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>(IIILandroid/hardware/display/WifiDisplay;[Landroid/hardware/display/WifiDisplay;Landroid/hardware/display/WifiDisplaySessionInfo;)V
-HSPLandroid/hardware/display/WifiDisplayStatus;->getActiveDisplay()Landroid/hardware/display/WifiDisplay;
-HSPLandroid/hardware/display/WifiDisplayStatus;->getFeatureState()I
-HSPLandroid/hardware/face/FaceManager;->getSensorPropertiesInternal()Ljava/util/List;
-HSPLandroid/hardware/fingerprint/FingerprintManager;-><init>(Landroid/content/Context;Landroid/hardware/fingerprint/IFingerprintService;)V
-HSPLandroid/hardware/fingerprint/FingerprintManager;->hasEnrolledFingerprints(I)Z
-HSPLandroid/hardware/fingerprint/FingerprintManager;->isHardwareDetected()Z
-HSPLandroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->isHardwareDetectedDeprecated(Ljava/lang/String;Ljava/lang/String;)Z
-HSPLandroid/hardware/fingerprint/IFingerprintService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/fingerprint/IFingerprintService;
-HSPLandroid/hardware/input/HostUsiVersion$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/input/HostUsiVersion;
-HSPLandroid/hardware/input/HostUsiVersion$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/hardware/input/HostUsiVersion;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;-><init>()V
-HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/hardware/input/IInputManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-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;->getVelocityTrackerStrategy()Ljava/lang/String;
-HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->hasKeys(II[I[Z)Z
-HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->registerInputDevicesChangedListener(Landroid/hardware/input/IInputDevicesChangedListener;)V
-HSPLandroid/hardware/input/IInputManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/input/IInputManager;
-HSPLandroid/hardware/input/InputDeviceIdentifier;-><init>(Ljava/lang/String;II)V
-HSPLandroid/hardware/input/InputManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/hardware/input/InputManager;->deviceHasKeys(I[I)[Z
-HSPLandroid/hardware/input/InputManager;->getInputDevice(I)Landroid/view/InputDevice;
-HSPLandroid/hardware/input/InputManager;->getInputDeviceIds()[I
-HSPLandroid/hardware/input/InputManager;->getInstance()Landroid/hardware/input/InputManager;
-HSPLandroid/hardware/input/InputManager;->registerInputDeviceListener(Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V
-HSPLandroid/hardware/input/InputManager;->unregisterInputDeviceListener(Landroid/hardware/input/InputManager$InputDeviceListener;)V
-HSPLandroid/hardware/input/InputManagerGlobal$InputDeviceListenerDelegate;-><init>(Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V
-HSPLandroid/hardware/input/InputManagerGlobal$InputDevicesChangedListener;-><init>(Landroid/hardware/input/InputManagerGlobal;)V
-HSPLandroid/hardware/input/InputManagerGlobal$InputDevicesChangedListener;-><init>(Landroid/hardware/input/InputManagerGlobal;Landroid/hardware/input/InputManagerGlobal$InputDevicesChangedListener-IA;)V
-HSPLandroid/hardware/input/InputManagerGlobal;-><init>(Landroid/hardware/input/IInputManager;)V
-HSPLandroid/hardware/input/InputManagerGlobal;->getInputDevice(I)Landroid/view/InputDevice;
-HSPLandroid/hardware/input/InputManagerGlobal;->getInputDeviceIds()[I
-HSPLandroid/hardware/input/InputManagerGlobal;->getInputManagerService()Landroid/hardware/input/IInputManager;
-HSPLandroid/hardware/input/InputManagerGlobal;->getInstance()Landroid/hardware/input/InputManagerGlobal;
-HSPLandroid/hardware/input/InputManagerGlobal;->populateInputDevicesLocked()V
-HSPLandroid/hardware/input/InputManagerGlobal;->registerInputDeviceListener(Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V
-HSPLandroid/hardware/input/InputSettings;->isStylusPointerIconEnabled(Landroid/content/Context;)Z
-HSPLandroid/hardware/location/ContextHubClient;-><init>(Landroid/hardware/location/ContextHubInfo;Z)V
-HSPLandroid/hardware/location/ContextHubClient;->sendMessageToNanoApp(Landroid/hardware/location/NanoAppMessage;)I
-HSPLandroid/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/os/Parcel;)V
-HSPLandroid/hardware/location/ContextHubInfo;->getId()I
-HSPLandroid/hardware/location/ContextHubInfo;->getMaxPacketLengthBytes()I
-HSPLandroid/hardware/location/ContextHubManager;->createClient(Landroid/hardware/location/ContextHubInfo;Landroid/hardware/location/ContextHubClientCallback;)Landroid/hardware/location/ContextHubClient;
-HSPLandroid/hardware/location/ContextHubManager;->createQueryCallback(Landroid/hardware/location/ContextHubTransaction;)Landroid/hardware/location/IContextHubTransactionCallback;
-HSPLandroid/hardware/location/ContextHubManager;->getContextHubs()Ljava/util/List;
-HSPLandroid/hardware/location/ContextHubManager;->queryNanoApps(Landroid/hardware/location/ContextHubInfo;)Landroid/hardware/location/ContextHubTransaction;
-HSPLandroid/hardware/location/ContextHubTransaction$Response;-><init>(ILjava/lang/Object;)V
-HSPLandroid/hardware/location/ContextHubTransaction$Response;->getContents()Ljava/lang/Object;
-HSPLandroid/hardware/location/ContextHubTransaction;-><init>(I)V
-HSPLandroid/hardware/location/ContextHubTransaction;->setResponse(Landroid/hardware/location/ContextHubTransaction$Response;)V
-HSPLandroid/hardware/location/ContextHubTransaction;->waitForResponse(JLjava/util/concurrent/TimeUnit;)Landroid/hardware/location/ContextHubTransaction$Response;
-HSPLandroid/hardware/location/IContextHubCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/hardware/location/IContextHubClient$Stub$Proxy;->sendMessageToNanoApp(Landroid/hardware/location/NanoAppMessage;)I
-HSPLandroid/hardware/location/IContextHubClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubClient;
-HSPLandroid/hardware/location/IContextHubClientCallback$Stub;-><init>()V
-HSPLandroid/hardware/location/IContextHubClientCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/hardware/location/IContextHubClientCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->getContextHubs()Ljava/util/List;
-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/IContextHubTransactionCallback$Stub;-><init>()V
-HSPLandroid/hardware/location/IContextHubTransactionCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/hardware/location/IContextHubTransactionCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/hardware/location/IGeofenceHardware$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IGeofenceHardware;
-HSPLandroid/hardware/location/MemoryRegion$1;->newArray(I)[Landroid/hardware/location/MemoryRegion;
-HSPLandroid/hardware/location/MemoryRegion$1;->newArray(I)[Ljava/lang/Object;
-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;
-HSPLandroid/hardware/location/NanoAppMessage;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/hardware/location/NanoAppMessage;->createMessageToNanoApp(JI[B)Landroid/hardware/location/NanoAppMessage;
-HSPLandroid/hardware/location/NanoAppMessage;->getMessageBody()[B
-HSPLandroid/hardware/location/NanoAppMessage;->getMessageType()I
-HSPLandroid/hardware/location/NanoAppMessage;->getNanoAppId()J
-HSPLandroid/hardware/location/NanoAppMessage;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/hardware/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>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/hardware/location/NanoAppState;->getNanoAppId()J
-HSPLandroid/hardware/security/keymint/KeyParameter$1;-><init>()V
-HSPLandroid/hardware/security/keymint/KeyParameter$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/security/keymint/KeyParameter;
-HSPLandroid/hardware/security/keymint/KeyParameter$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/hardware/security/keymint/KeyParameter$1;->newArray(I)[Landroid/hardware/security/keymint/KeyParameter;
-HSPLandroid/hardware/security/keymint/KeyParameter$1;->newArray(I)[Ljava/lang/Object;
-HSPLandroid/hardware/security/keymint/KeyParameter;-><clinit>()V
-HSPLandroid/hardware/security/keymint/KeyParameter;-><init>()V
-HSPLandroid/hardware/security/keymint/KeyParameter;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/hardware/security/keymint/KeyParameter;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/hardware/security/keymint/KeyParameterValue$1;-><init>()V
-HSPLandroid/hardware/security/keymint/KeyParameterValue$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/security/keymint/KeyParameterValue;
-HSPLandroid/hardware/security/keymint/KeyParameterValue$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/hardware/security/keymint/KeyParameterValue;-><clinit>()V
-HSPLandroid/hardware/security/keymint/KeyParameterValue;-><init>(ILjava/lang/Object;)V
-HSPLandroid/hardware/security/keymint/KeyParameterValue;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/hardware/security/keymint/KeyParameterValue;-><init>(Landroid/os/Parcel;Landroid/hardware/security/keymint/KeyParameterValue-IA;)V
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->_assertTag(I)V
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->_set(ILjava/lang/Object;)V
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->algorithm(I)Landroid/hardware/security/keymint/KeyParameterValue;
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->blob([B)Landroid/hardware/security/keymint/KeyParameterValue;
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->blockMode(I)Landroid/hardware/security/keymint/KeyParameterValue;
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->getAlgorithm()I
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->getBlob()[B
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->getBlockMode()I
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->getDigest()I
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->getInteger()I
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->getKeyPurpose()I
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->getPaddingMode()I
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->getTag()I
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->integer(I)Landroid/hardware/security/keymint/KeyParameterValue;
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->keyPurpose(I)Landroid/hardware/security/keymint/KeyParameterValue;
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->paddingMode(I)Landroid/hardware/security/keymint/KeyParameterValue;
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/hardware/security/keymint/KeyParameterValue;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/hardware/soundtrigger/KeyphraseMetadata;-><init>(ILjava/lang/String;Ljava/util/Set;I)V
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;IIIIZIZIZI)V
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getAudioCapabilities()I
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getDescription()Ljava/lang/String;
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getId()I
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getImplementor()Ljava/lang/String;
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getMaxBufferMillis()I
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getMaxKeyphrases()I
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getMaxSoundModels()I
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getMaxUsers()I
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getPowerConsumptionMw()I
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getRecognitionModes()I
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getSupportedModelArch()Ljava/lang/String;
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getUuid()Ljava/util/UUID;
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getVersion()I
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->isCaptureTransitionSupported()Z
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->isConcurrentCaptureSupported()Z
-HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->isTriggerReturnedInEvent()Z
-HSPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;-><init>(Ljava/util/UUID;Ljava/util/UUID;I[BI)V
-HSPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;->getData()[B
-HSPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;->getUuid()Ljava/util/UUID;
-HSPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;->getVendorUuid()Ljava/util/UUID;
-HSPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;->getVersion()I
-HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->getDeviceList(Landroid/os/Bundle;)V
-HSPLandroid/hardware/usb/IUsbManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/usb/IUsbManager;
-HSPLandroid/hardware/usb/ParcelableUsbPort;->getUsbPort(Landroid/hardware/usb/UsbManager;)Landroid/hardware/usb/UsbPort;
-HSPLandroid/hardware/usb/UsbManager;-><init>(Landroid/content/Context;Landroid/hardware/usb/IUsbManager;)V
-HSPLandroid/hardware/usb/UsbManager;->getDeviceList()Ljava/util/HashMap;
-HSPLandroid/hardware/usb/UsbPort;->getId()Ljava/lang/String;
-HSPLandroid/hardware/usb/UsbPortStatus;-><init>(IIIIII)V
-HSPLandroid/hardware/usb/UsbPortStatus;->isConnected()Z
-HSPLandroid/icu/impl/BMPSet;-><init>([II)V
-HSPLandroid/icu/impl/BMPSet;->contains(I)Z
-HSPLandroid/icu/impl/BMPSet;->containsSlow(III)Z
-HSPLandroid/icu/impl/BMPSet;->findCodePoint(III)I
-HSPLandroid/icu/impl/BMPSet;->initBits()V
-HSPLandroid/icu/impl/BMPSet;->set32x64Bits([III)V
-HSPLandroid/icu/impl/CacheValue$NullValue;->isNull()Z
-HSPLandroid/icu/impl/CacheValue$SoftValue;-><init>(Ljava/lang/Object;)V
-HSPLandroid/icu/impl/CacheValue$SoftValue;->get()Ljava/lang/Object;
-HSPLandroid/icu/impl/CacheValue$SoftValue;->resetIfCleared(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/impl/CacheValue$StrongValue;->get()Ljava/lang/Object;
-HSPLandroid/icu/impl/CacheValue;-><init>()V
-HSPLandroid/icu/impl/CacheValue;->futureInstancesWillBeStrong()Z
-HSPLandroid/icu/impl/CacheValue;->getInstance(Ljava/lang/Object;)Landroid/icu/impl/CacheValue;
-HSPLandroid/icu/impl/CacheValue;->isNull()Z
-HSPLandroid/icu/impl/CacheValue;->setStrength(Landroid/icu/impl/CacheValue$Strength;)V
-HSPLandroid/icu/impl/CalType;->getId()Ljava/lang/String;
-HSPLandroid/icu/impl/CalType;->values()[Landroid/icu/impl/CalType;
-HSPLandroid/icu/impl/CalendarUtil$CalendarPreferences;->getCalendarTypeForRegion(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/impl/CalendarUtil;->getCalendarType(Landroid/icu/util/ULocale;)Ljava/lang/String;
-HSPLandroid/icu/impl/CaseMapImpl;->appendUnchanged(Ljava/lang/CharSequence;IILjava/lang/Appendable;ILandroid/icu/text/Edits;)V
-HSPLandroid/icu/impl/CaseMapImpl;->applyEdits(Ljava/lang/CharSequence;Ljava/lang/StringBuilder;Landroid/icu/text/Edits;)Ljava/lang/String;
-HSPLandroid/icu/impl/CaseMapImpl;->internalToUpper(IILjava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)V
-HSPLandroid/icu/impl/CaseMapImpl;->toUpper(IILjava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;
-HSPLandroid/icu/impl/CharacterIteration;->nextTrail32(Ljava/text/CharacterIterator;I)I
-HSPLandroid/icu/impl/CharacterIteration;->previous32(Ljava/text/CharacterIterator;)I
-HSPLandroid/icu/impl/ClassLoaderUtil;->getClassLoader(Ljava/lang/Class;)Ljava/lang/ClassLoader;
-HSPLandroid/icu/impl/CurrencyData$CurrencyDisplayInfo;-><init>()V
-HSPLandroid/icu/impl/CurrencyData$CurrencySpacingInfo;-><init>()V
-HSPLandroid/icu/impl/CurrencyData$CurrencySpacingInfo;->getAfterSymbols()[Ljava/lang/String;
-HSPLandroid/icu/impl/CurrencyData$CurrencySpacingInfo;->getBeforeSymbols()[Ljava/lang/String;
-HSPLandroid/icu/impl/CurrencyData$CurrencySpacingInfo;->setSymbolIfNull(Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingType;Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingPattern;Ljava/lang/String;)V
-HSPLandroid/icu/impl/DateNumberFormat;-><init>(Landroid/icu/util/ULocale;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/icu/impl/DateNumberFormat;->getDigits()[C
-HSPLandroid/icu/impl/DateNumberFormat;->initialize(Landroid/icu/util/ULocale;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/icu/impl/FormattedStringBuilder;-><init>()V
-HSPLandroid/icu/impl/FormattedStringBuilder;-><init>(I)V
-HSPLandroid/icu/impl/FormattedStringBuilder;-><init>(Landroid/icu/impl/FormattedStringBuilder;)V
-HSPLandroid/icu/impl/FormattedStringBuilder;->charAt(I)C
-HSPLandroid/icu/impl/FormattedStringBuilder;->clear()Landroid/icu/impl/FormattedStringBuilder;
-HSPLandroid/icu/impl/FormattedStringBuilder;->copyFrom(Landroid/icu/impl/FormattedStringBuilder;)V
-HSPLandroid/icu/impl/FormattedStringBuilder;->fieldAt(I)Ljava/lang/Object;
-HSPLandroid/icu/impl/FormattedStringBuilder;->getCapacity()I
-HSPLandroid/icu/impl/FormattedStringBuilder;->insert(ILjava/lang/CharSequence;IILjava/lang/Object;)I
-HSPLandroid/icu/impl/FormattedStringBuilder;->insert(ILjava/lang/CharSequence;Ljava/lang/Object;)I+]Ljava/lang/CharSequence;Ljava/lang/String;
-HSPLandroid/icu/impl/FormattedStringBuilder;->insert(I[C[Ljava/lang/Object;)I
-HSPLandroid/icu/impl/FormattedStringBuilder;->insertCodePoint(IILjava/lang/Object;)I
-HSPLandroid/icu/impl/FormattedStringBuilder;->length()I
-HSPLandroid/icu/impl/FormattedStringBuilder;->prepareForInsert(II)I
-HSPLandroid/icu/impl/FormattedStringBuilder;->subSequence(II)Ljava/lang/CharSequence;
-HSPLandroid/icu/impl/FormattedStringBuilder;->toCharArray()[C
-HSPLandroid/icu/impl/FormattedStringBuilder;->toFieldArray()[Ljava/lang/Object;
-HSPLandroid/icu/impl/FormattedStringBuilder;->toString()Ljava/lang/String;
-HSPLandroid/icu/impl/FormattedStringBuilder;->unwrapField(Ljava/lang/Object;)Ljava/text/Format$Field;
-HSPLandroid/icu/impl/FormattedValueStringBuilderImpl;->isIntOrGroup(Ljava/lang/Object;)Z
-HSPLandroid/icu/impl/FormattedValueStringBuilderImpl;->nextFieldPosition(Landroid/icu/impl/FormattedStringBuilder;Ljava/text/FieldPosition;)Z+]Landroid/icu/text/ConstrainedFieldPosition;Landroid/icu/text/ConstrainedFieldPosition;]Ljava/text/FieldPosition;Ljava/text/DontCareFieldPosition;
-HSPLandroid/icu/impl/FormattedValueStringBuilderImpl;->nextPosition(Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/text/ConstrainedFieldPosition;Ljava/text/Format$Field;)Z+]Landroid/icu/text/ConstrainedFieldPosition;Landroid/icu/text/ConstrainedFieldPosition;
-HSPLandroid/icu/impl/Grego;->dayOfWeek(J)I
-HSPLandroid/icu/impl/Grego;->dayToFields(J[I)[I
-HSPLandroid/icu/impl/Grego;->fieldsToDay(III)J
-HSPLandroid/icu/impl/Grego;->floorDivide(JJ)J
-HSPLandroid/icu/impl/Grego;->floorDivide(JJ[J)J
-HSPLandroid/icu/impl/Grego;->isLeapYear(I)Z
-HSPLandroid/icu/impl/Grego;->monthLength(II)I
-HSPLandroid/icu/impl/Grego;->previousMonthLength(II)I
-HSPLandroid/icu/impl/Grego;->timeToFields(J[I)[I
-HSPLandroid/icu/impl/ICUBinary$DatPackageReader;->addBaseName(Ljava/nio/ByteBuffer;ILjava/lang/String;Ljava/lang/String;Ljava/lang/StringBuilder;Ljava/util/Set;)Z
-HSPLandroid/icu/impl/ICUBinary$DatPackageReader;->addBaseNamesInFolder(Ljava/nio/ByteBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
-HSPLandroid/icu/impl/ICUBinary$DatPackageReader;->binarySearch(Ljava/nio/ByteBuffer;Ljava/lang/CharSequence;)I
-HSPLandroid/icu/impl/ICUBinary$DatPackageReader;->getData(Ljava/nio/ByteBuffer;Ljava/lang/CharSequence;)Ljava/nio/ByteBuffer;
-HSPLandroid/icu/impl/ICUBinary$DatPackageReader;->getDataOffset(Ljava/nio/ByteBuffer;I)I
-HSPLandroid/icu/impl/ICUBinary$DatPackageReader;->getNameOffset(Ljava/nio/ByteBuffer;I)I
-HSPLandroid/icu/impl/ICUBinary$PackageDataFile;->addBaseNamesInFolder(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
-HSPLandroid/icu/impl/ICUBinary$PackageDataFile;->getData(Ljava/lang/String;)Ljava/nio/ByteBuffer;
-HSPLandroid/icu/impl/ICUBinary;->addBaseNamesInFileFolder(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
-HSPLandroid/icu/impl/ICUBinary;->compareKeys(Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;I)I
-HSPLandroid/icu/impl/ICUBinary;->compareKeys(Ljava/lang/CharSequence;[BI)I+]Ljava/lang/CharSequence;Ljava/lang/String;
-HSPLandroid/icu/impl/ICUBinary;->getBytes(Ljava/nio/ByteBuffer;II)[B
-HSPLandroid/icu/impl/ICUBinary;->getChars(Ljava/nio/ByteBuffer;II)[C
-HSPLandroid/icu/impl/ICUBinary;->getData(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;)Ljava/nio/ByteBuffer;
-HSPLandroid/icu/impl/ICUBinary;->getData(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Z)Ljava/nio/ByteBuffer;
-HSPLandroid/icu/impl/ICUBinary;->getData(Ljava/lang/String;)Ljava/nio/ByteBuffer;
-HSPLandroid/icu/impl/ICUBinary;->getDataFromFile(Ljava/lang/String;)Ljava/nio/ByteBuffer;
-HSPLandroid/icu/impl/ICUBinary;->getInts(Ljava/nio/ByteBuffer;II)[I
-HSPLandroid/icu/impl/ICUBinary;->getString(Ljava/nio/ByteBuffer;II)Ljava/lang/String;
-HSPLandroid/icu/impl/ICUBinary;->readHeader(Ljava/nio/ByteBuffer;ILandroid/icu/impl/ICUBinary$Authenticate;)I
-HSPLandroid/icu/impl/ICUBinary;->skipBytes(Ljava/nio/ByteBuffer;I)V
-HSPLandroid/icu/impl/ICUBinary;->sliceWithOrder(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
-HSPLandroid/icu/impl/ICUConfig;->get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$CurrencySink;-><init>(ZLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$CurrencySink$EntrypointTable;)V
-HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$CurrencySink;->consumeCurrenciesEntry(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$CurrencySink;->consumeCurrencySpacingTable(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$CurrencySink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
-HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$FormattingData;-><init>(Ljava/lang/String;)V
-HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;-><init>(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Z)V
-HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;->fetchFormattingData(Ljava/lang/String;)Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$FormattingData;
-HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;->fetchSpacingInfo()Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;
-HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;->getFormatInfo(Ljava/lang/String;)Landroid/icu/impl/CurrencyData$CurrencyFormatInfo;
-HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;->getSpacingInfo()Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;
-HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;->getSymbol(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider;->getInstance(Landroid/icu/util/ULocale;Z)Landroid/icu/impl/CurrencyData$CurrencyDisplayInfo;
-HSPLandroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;-><init>()V
-HSPLandroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;-><init>(Landroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector-IA;)V
-HSPLandroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;->collect(Ljava/lang/String;Ljava/lang/String;JJIZ)V
-HSPLandroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;->collects()I
-HSPLandroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;->getList()Ljava/util/List;
-HSPLandroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;->-$$Nest$smcreate()Landroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;
-HSPLandroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;-><init>()V
-HSPLandroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;->add(Ljava/lang/Object;)V
-HSPLandroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;->create()Landroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;
-HSPLandroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;->list()Ljava/util/List;
-HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->collect(Landroid/icu/impl/ICUCurrencyMetaInfo$Collector;Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List;
-HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->collectRegion(Landroid/icu/impl/ICUCurrencyMetaInfo$Collector;Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;ILandroid/icu/impl/ICUResourceBundle;)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceString;,Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;,Landroid/icu/impl/ICUResourceBundleImpl$ResourceArray;]Landroid/icu/impl/ICUCurrencyMetaInfo$Collector;Landroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;
-HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->currencies(Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List;
-HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->currencyDigits(Ljava/lang/String;Landroid/icu/util/Currency$CurrencyUsage;)Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;
-HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->getDate(Landroid/icu/impl/ICUResourceBundle;JZ)J
-HSPLandroid/icu/impl/ICUData;->checkStreamForBinaryData(Ljava/io/InputStream;Ljava/lang/String;)V
-HSPLandroid/icu/impl/ICUData;->getStream(Ljava/lang/ClassLoader;Ljava/lang/String;Z)Ljava/io/InputStream;
-HSPLandroid/icu/impl/ICULocaleService$ICUResourceBundleFactory;->getSupportedIDs()Ljava/util/Set;
-HSPLandroid/icu/impl/ICULocaleService$ICUResourceBundleFactory;->loader()Ljava/lang/ClassLoader;
-HSPLandroid/icu/impl/ICULocaleService$LocaleKey;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->createWithCanonical(Landroid/icu/util/ULocale;Ljava/lang/String;I)Landroid/icu/impl/ICULocaleService$LocaleKey;
-HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->currentDescriptor()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/ICULocaleService$LocaleKey;Landroid/icu/impl/ICULocaleService$LocaleKey;
-HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->currentID()Ljava/lang/String;
-HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->currentLocale()Landroid/icu/util/ULocale;
-HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->fallback()Z
-HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->kind()I
-HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->prefix()Ljava/lang/String;
-HSPLandroid/icu/impl/ICULocaleService$LocaleKeyFactory;->create(Landroid/icu/impl/ICUService$Key;Landroid/icu/impl/ICUService;)Ljava/lang/Object;
-HSPLandroid/icu/impl/ICULocaleService$LocaleKeyFactory;->handlesKey(Landroid/icu/impl/ICUService$Key;)Z
-HSPLandroid/icu/impl/ICULocaleService;->createKey(Landroid/icu/util/ULocale;I)Landroid/icu/impl/ICUService$Key;
-HSPLandroid/icu/impl/ICULocaleService;->get(Landroid/icu/util/ULocale;I[Landroid/icu/util/ULocale;)Ljava/lang/Object;
-HSPLandroid/icu/impl/ICULocaleService;->get(Landroid/icu/util/ULocale;[Landroid/icu/util/ULocale;)Ljava/lang/Object;
-HSPLandroid/icu/impl/ICULocaleService;->validateFallbackLocale()Ljava/lang/String;
-HSPLandroid/icu/impl/ICURWLock;->acquireRead()V
-HSPLandroid/icu/impl/ICURWLock;->releaseRead()V
-HSPLandroid/icu/impl/ICUResourceBundle$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/impl/ICUResourceBundle$1;->createInstance(Ljava/lang/String;Landroid/icu/impl/ICUResourceBundle$Loader;)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle$1AllChildrenSink;-><init>(Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/UResource$Sink;)V
-HSPLandroid/icu/impl/ICUResourceBundle$1AllChildrenSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
-HSPLandroid/icu/impl/ICUResourceBundle$2$1;-><init>(Landroid/icu/impl/ICUResourceBundle$2;)V
-HSPLandroid/icu/impl/ICUResourceBundle$2;-><init>(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/Set;)V
-HSPLandroid/icu/impl/ICUResourceBundle$2;->run()Ljava/lang/Object;
-HSPLandroid/icu/impl/ICUResourceBundle$2;->run()Ljava/lang/Void;
-HSPLandroid/icu/impl/ICUResourceBundle$3;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/impl/ICUResourceBundle$3;->createInstance(Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundle$AvailEntry;
-HSPLandroid/icu/impl/ICUResourceBundle$5;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundle$OpenType;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/icu/impl/ICUResourceBundle$5;->load()Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle$AvailEntry;->getFullLocaleNameSet()Ljava/util/Set;
-HSPLandroid/icu/impl/ICUResourceBundle$Loader;-><init>()V
-HSPLandroid/icu/impl/ICUResourceBundle$Loader;-><init>(Landroid/icu/impl/ICUResourceBundle$Loader-IA;)V
-HSPLandroid/icu/impl/ICUResourceBundle$WholeBundle;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundleReader;)V
-HSPLandroid/icu/impl/ICUResourceBundle;->-$$Nest$mgetNoFallback(Landroid/icu/impl/ICUResourceBundle;)Z
-HSPLandroid/icu/impl/ICUResourceBundle;->-$$Nest$sfgetDEBUG()Z
-HSPLandroid/icu/impl/ICUResourceBundle;->-$$Nest$smgetParentLocaleID(Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/ICUResourceBundle$OpenType;)Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundle;->-$$Nest$sminstantiateBundle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundle$OpenType;)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;-><init>(Landroid/icu/impl/ICUResourceBundle$WholeBundle;)V
-HSPLandroid/icu/impl/ICUResourceBundle;-><init>(Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V
-HSPLandroid/icu/impl/ICUResourceBundle;->addBundleBaseNamesFromClassLoader(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/Set;)V
-HSPLandroid/icu/impl/ICUResourceBundle;->at(I)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->at(Ljava/lang/String;)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->countPathKeys(Ljava/lang/String;)I+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundle;->createBundle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->createFullLocaleNameSet(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/util/Set;
-HSPLandroid/icu/impl/ICUResourceBundle;->equals(Ljava/lang/Object;)Z
-HSPLandroid/icu/impl/ICUResourceBundle;->findResourceWithFallback(Ljava/lang/String;Landroid/icu/util/UResourceBundle;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->findResourceWithFallback([Ljava/lang/String;ILandroid/icu/impl/ICUResourceBundle;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->findStringWithFallback(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundle;->findStringWithFallback(Ljava/lang/String;Landroid/icu/util/UResourceBundle;Landroid/icu/util/UResourceBundle;)Ljava/lang/String;+]Landroid/icu/impl/ICUResourceBundleReader$Container;Landroid/icu/impl/ICUResourceBundleReader$Table;,Landroid/icu/impl/ICUResourceBundleReader$Table1632;,Landroid/icu/impl/ICUResourceBundleReader$Table16;]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;]Landroid/icu/impl/ICUResourceBundleReader;Landroid/icu/impl/ICUResourceBundleReader;
-HSPLandroid/icu/impl/ICUResourceBundle;->findTopLevel(Ljava/lang/String;)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->findTopLevel(Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->findWithFallback(Ljava/lang/String;)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->get(Ljava/lang/String;Ljava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->getAliasedResource(Landroid/icu/impl/ICUResourceBundle;[Ljava/lang/String;ILjava/lang/String;ILjava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->getAliasedResource(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;[Ljava/lang/String;I[Ljava/lang/String;Ljava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->getAllChildrenWithFallback(Ljava/lang/String;Landroid/icu/impl/UResource$Sink;)V
-HSPLandroid/icu/impl/ICUResourceBundle;->getAllItemsWithFallback(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/ICUResourceBundleReader$ReaderValue;Landroid/icu/impl/UResource$Sink;Landroid/icu/util/UResourceBundle;)V
-HSPLandroid/icu/impl/ICUResourceBundle;->getAllItemsWithFallback(Ljava/lang/String;Landroid/icu/impl/UResource$Sink;)V
-HSPLandroid/icu/impl/ICUResourceBundle;->getAllItemsWithFallbackNoFail(Ljava/lang/String;Landroid/icu/impl/UResource$Sink;)V
-HSPLandroid/icu/impl/ICUResourceBundle;->getAvailEntry(Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundle$AvailEntry;
-HSPLandroid/icu/impl/ICUResourceBundle;->getBaseName()Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundle;->getBundle(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->getBundleInstance(Ljava/lang/String;Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle$OpenType;)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundle$OpenType;)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->getDefaultScript(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundle;->getExplicitParent(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundle;->getFullLocaleNameSet(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/util/Set;
-HSPLandroid/icu/impl/ICUResourceBundle;->getKey()Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundle;->getLocale()Ljava/util/Locale;
-HSPLandroid/icu/impl/ICUResourceBundle;->getLocaleID()Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundle;->getNoFallback()Z
-HSPLandroid/icu/impl/ICUResourceBundle;->getParent()Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->getParent()Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->getParentLocaleID(Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/ICUResourceBundle$OpenType;)Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundle;->getResDepth()I
-HSPLandroid/icu/impl/ICUResourceBundle;->getResPathKeys(Ljava/lang/String;I[Ljava/lang/String;I)V
-HSPLandroid/icu/impl/ICUResourceBundle;->getResPathKeys([Ljava/lang/String;I)V
-HSPLandroid/icu/impl/ICUResourceBundle;->getStringWithFallback(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundle;->getULocale()Landroid/icu/util/ULocale;
-HSPLandroid/icu/impl/ICUResourceBundle;->getWithFallback(Ljava/lang/String;)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundle;->instantiateBundle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundle$OpenType;)Landroid/icu/impl/ICUResourceBundle;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/ICUResourceBundle$OpenType;Landroid/icu/impl/ICUResourceBundle$OpenType;]Landroid/icu/impl/CacheBase;Landroid/icu/impl/ICUResourceBundle$1;
-HSPLandroid/icu/impl/ICUResourceBundle;->setParent(Ljava/util/ResourceBundle;)V
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;->getStringArray()[Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;->getType()I
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;->handleGet(ILjava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;->handleGetStringArray()[Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceBinary;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceBinary;->getBinary([B)[B
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;-><init>(Landroid/icu/impl/ICUResourceBundle$WholeBundle;)V
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->createBundleObject(ILjava/lang/String;Ljava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->getContainerResource(I)I+]Landroid/icu/impl/ICUResourceBundleReader$Container;Landroid/icu/impl/ICUResourceBundleReader$Table1632;,Landroid/icu/impl/ICUResourceBundleReader$Table16;
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->getSize()I
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->getString(I)Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceInt;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceInt;->getInt()I
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceIntVector;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceIntVector;->getIntVector()[I
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceString;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/ICUResourceBundleReader;Landroid/icu/impl/ICUResourceBundleReader;
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceString;->getString()Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceString;->getType()I
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;-><init>(Landroid/icu/impl/ICUResourceBundle$WholeBundle;I)V
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V+]Landroid/icu/impl/ICUResourceBundleReader;Landroid/icu/impl/ICUResourceBundleReader;
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;->findString(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;->getType()I
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;->handleGet(ILjava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;->handleGet(Ljava/lang/String;Ljava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle;+]Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;]Landroid/icu/impl/ICUResourceBundleReader$Table;Landroid/icu/impl/ICUResourceBundleReader$Table;,Landroid/icu/impl/ICUResourceBundleReader$Table1632;,Landroid/icu/impl/ICUResourceBundleReader$Table16;
-HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;->handleGetObject(Ljava/lang/String;)Ljava/lang/Object;
-HSPLandroid/icu/impl/ICUResourceBundleImpl;-><init>(Landroid/icu/impl/ICUResourceBundle$WholeBundle;)V
-HSPLandroid/icu/impl/ICUResourceBundleImpl;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V
-HSPLandroid/icu/impl/ICUResourceBundleImpl;->createBundleObject(Ljava/lang/String;ILjava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle;
-HSPLandroid/icu/impl/ICUResourceBundleImpl;->getResource()I
-HSPLandroid/icu/impl/ICUResourceBundleReader$Array16;-><init>(Landroid/icu/impl/ICUResourceBundleReader;I)V
-HSPLandroid/icu/impl/ICUResourceBundleReader$Array16;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader$Array32;-><init>(Landroid/icu/impl/ICUResourceBundleReader;I)V
-HSPLandroid/icu/impl/ICUResourceBundleReader$Array32;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader$Array;-><init>()V
-HSPLandroid/icu/impl/ICUResourceBundleReader$Array;->getValue(ILandroid/icu/impl/UResource$Value;)Z
-HSPLandroid/icu/impl/ICUResourceBundleReader$Container;-><init>()V
-HSPLandroid/icu/impl/ICUResourceBundleReader$Container;->getContainer16Resource(Landroid/icu/impl/ICUResourceBundleReader;I)I+]Ljava/nio/CharBuffer;Ljava/nio/ByteBufferAsCharBuffer;
-HSPLandroid/icu/impl/ICUResourceBundleReader$Container;->getContainer32Resource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader$Container;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader$Container;->getSize()I
-HSPLandroid/icu/impl/ICUResourceBundleReader$IsAcceptable;->isDataVersionAcceptable([B)Z
-HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderCache;->createInstance(Landroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundleReader;
-HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderCache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;->equals(Ljava/lang/Object;)Z
-HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;->hashCode()I
-HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;-><init>()V
-HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getAliasString()Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getArray()Landroid/icu/impl/UResource$Array;
-HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getString()Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getStringArray()[Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getStringArray(Landroid/icu/impl/ICUResourceBundleReader$Array;)[Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getTable()Landroid/icu/impl/UResource$Table;
-HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getType()I
-HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->get(I)Ljava/lang/Object;+]Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;
-HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->putIfAbsent(ILjava/lang/Object;I)Ljava/lang/Object;+]Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;
-HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache;-><init>(I)V
-HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache;->findSimple(I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache;->get(I)Ljava/lang/Object;+]Ljava/lang/ref/SoftReference;Ljava/lang/ref/SoftReference;]Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;
-HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache;->makeKey(I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache;->putIfAbsent(ILjava/lang/Object;I)Ljava/lang/Object;+]Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;
-HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache;->putIfCleared([Ljava/lang/Object;ILjava/lang/Object;I)Ljava/lang/Object;
-HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache;->storeDirectly(I)Z
-HSPLandroid/icu/impl/ICUResourceBundleReader$Table1632;-><init>(Landroid/icu/impl/ICUResourceBundleReader;I)V
-HSPLandroid/icu/impl/ICUResourceBundleReader$Table1632;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader$Table16;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader$Table;-><init>()V
-HSPLandroid/icu/impl/ICUResourceBundleReader$Table;->findTableItem(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/CharSequence;)I
-HSPLandroid/icu/impl/ICUResourceBundleReader$Table;->findValue(Ljava/lang/CharSequence;Landroid/icu/impl/UResource$Value;)Z
-HSPLandroid/icu/impl/ICUResourceBundleReader$Table;->getKey(Landroid/icu/impl/ICUResourceBundleReader;I)Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundleReader$Table;->getKeyAndValue(ILandroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)Z+]Landroid/icu/impl/ICUResourceBundleReader$Table;Landroid/icu/impl/ICUResourceBundleReader$Table1632;,Landroid/icu/impl/ICUResourceBundleReader$Table16;
-HSPLandroid/icu/impl/ICUResourceBundleReader$Table;->getResource(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/String;)I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$fgetb16BitUnits(Landroid/icu/impl/ICUResourceBundleReader;)Ljava/nio/CharBuffer;
-HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$fgetpoolStringIndex16Limit(Landroid/icu/impl/ICUResourceBundleReader;)I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$fgetpoolStringIndexLimit(Landroid/icu/impl/ICUResourceBundleReader;)I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$mcompareKeys(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/CharSequence;C)I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$mgetInt(Landroid/icu/impl/ICUResourceBundleReader;I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$mgetResourceByteOffset(Landroid/icu/impl/ICUResourceBundleReader;I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$mgetTableKeyOffsets(Landroid/icu/impl/ICUResourceBundleReader;I)[C
-HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$sfgetNULL_READER()Landroid/icu/impl/ICUResourceBundleReader;
-HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$sfgetPUBLIC_TYPES()[I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$smRES_GET_OFFSET(I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader;-><init>(Ljava/nio/ByteBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V
-HSPLandroid/icu/impl/ICUResourceBundleReader;-><init>(Ljava/nio/ByteBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundleReader-IA;)V
-HSPLandroid/icu/impl/ICUResourceBundleReader;->RES_GET_INT(I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->RES_GET_OFFSET(I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->RES_GET_TYPE(I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->URES_IS_ARRAY(I)Z
-HSPLandroid/icu/impl/ICUResourceBundleReader;->URES_IS_TABLE(I)Z
-HSPLandroid/icu/impl/ICUResourceBundleReader;->compareKeys(Ljava/lang/CharSequence;C)I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getAlias(I)Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getArray(I)Landroid/icu/impl/ICUResourceBundleReader$Array;
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getBinary(I[B)[B
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getChars(II)[C
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getFullName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getIndexesInt(I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getInt(I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getIntVector(I)[I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getInts(II)[I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getKey16String(I)Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getNoFallback()Z
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getReader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundleReader;
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getResourceByteOffset(I)I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getRootResource()I
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getString(I)Ljava/lang/String;+]Landroid/icu/impl/ICUResourceBundleReader;Landroid/icu/impl/ICUResourceBundleReader;
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getStringV2(I)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;]Ljava/nio/CharBuffer;Ljava/nio/ByteBufferAsCharBuffer;]Ljava/lang/CharSequence;Ljava/nio/ByteBufferAsCharBuffer;
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getTable(I)Landroid/icu/impl/ICUResourceBundleReader$Table;+]Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;]Landroid/icu/impl/ICUResourceBundleReader$Table;Landroid/icu/impl/ICUResourceBundleReader$Table16;,Landroid/icu/impl/ICUResourceBundleReader$Table1632;
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getTable16KeyOffsets(I)[C+]Ljava/nio/CharBuffer;Ljava/nio/ByteBufferAsCharBuffer;
-HSPLandroid/icu/impl/ICUResourceBundleReader;->getTableKeyOffsets(I)[C
-HSPLandroid/icu/impl/ICUResourceBundleReader;->init(Ljava/nio/ByteBuffer;)V
-HSPLandroid/icu/impl/ICUResourceBundleReader;->makeKeyStringFromBytes([BI)Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundleReader;->makeStringFromBytes(II)Ljava/lang/String;
-HSPLandroid/icu/impl/ICUResourceBundleReader;->setKeyFromKey16(ILandroid/icu/impl/UResource$Key;)V
-HSPLandroid/icu/impl/ICUService$CacheEntry;-><init>(Ljava/lang/String;Ljava/lang/Object;)V
-HSPLandroid/icu/impl/ICUService$Key;-><init>(Ljava/lang/String;)V
-HSPLandroid/icu/impl/ICUService;->clearServiceCache()V
-HSPLandroid/icu/impl/ICUService;->getKey(Landroid/icu/impl/ICUService$Key;[Ljava/lang/String;)Ljava/lang/Object;
-HSPLandroid/icu/impl/ICUService;->getKey(Landroid/icu/impl/ICUService$Key;[Ljava/lang/String;Landroid/icu/impl/ICUService$Factory;)Ljava/lang/Object;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/Map;Ljava/util/concurrent/ConcurrentHashMap;]Landroid/icu/impl/ICURWLock;Landroid/icu/impl/ICURWLock;]Landroid/icu/impl/ICUService$Key;Landroid/icu/impl/ICULocaleService$LocaleKey;
-HSPLandroid/icu/impl/ICUService;->isDefault()Z
-HSPLandroid/icu/impl/IDNA2003;->convertIDNToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;
-HSPLandroid/icu/impl/IDNA2003;->convertToASCII(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer;+]Landroid/icu/text/UCharacterIterator;Landroid/icu/impl/ReplaceableUCharacterIterator;]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;
-HSPLandroid/icu/impl/IDNA2003;->getSeparatorIndex([CII)I
-HSPLandroid/icu/impl/IDNA2003;->isLDHChar(I)Z
-HSPLandroid/icu/impl/IDNA2003;->isLabelSeparator(I)Z
-HSPLandroid/icu/impl/LocaleIDParser$1;-><init>(Landroid/icu/impl/LocaleIDParser;)V
-HSPLandroid/icu/impl/LocaleIDParser$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-HSPLandroid/icu/impl/LocaleIDParser$1;->compare(Ljava/lang/String;Ljava/lang/String;)I
-HSPLandroid/icu/impl/LocaleIDParser;-><init>(Ljava/lang/String;)V
-HSPLandroid/icu/impl/LocaleIDParser;-><init>(Ljava/lang/String;Z)V+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/icu/impl/LocaleIDParser;->addSeparator()V
-HSPLandroid/icu/impl/LocaleIDParser;->append(C)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;
-HSPLandroid/icu/impl/LocaleIDParser;->append(Ljava/lang/String;)V
-HSPLandroid/icu/impl/LocaleIDParser;->atTerminator()Z
-HSPLandroid/icu/impl/LocaleIDParser;->getBaseName()Ljava/lang/String;
-HSPLandroid/icu/impl/LocaleIDParser;->getCountry()Ljava/lang/String;
-HSPLandroid/icu/impl/LocaleIDParser;->getKeyComparator()Ljava/util/Comparator;
-HSPLandroid/icu/impl/LocaleIDParser;->getKeyword()Ljava/lang/String;
-HSPLandroid/icu/impl/LocaleIDParser;->getKeywordMap()Ljava/util/Map;
-HSPLandroid/icu/impl/LocaleIDParser;->getKeywordValue(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/impl/LocaleIDParser;->getKeywords()Ljava/util/Iterator;
-HSPLandroid/icu/impl/LocaleIDParser;->getLanguage()Ljava/lang/String;
-HSPLandroid/icu/impl/LocaleIDParser;->getName()Ljava/lang/String;
-HSPLandroid/icu/impl/LocaleIDParser;->getScript()Ljava/lang/String;
-HSPLandroid/icu/impl/LocaleIDParser;->getString(I)Ljava/lang/String;
-HSPLandroid/icu/impl/LocaleIDParser;->getValue()Ljava/lang/String;
-HSPLandroid/icu/impl/LocaleIDParser;->getVariant()Ljava/lang/String;
-HSPLandroid/icu/impl/LocaleIDParser;->haveExperimentalLanguagePrefix()Z
-HSPLandroid/icu/impl/LocaleIDParser;->haveKeywordAssign()Z
-HSPLandroid/icu/impl/LocaleIDParser;->isDoneOrItemSeparator(C)Z
-HSPLandroid/icu/impl/LocaleIDParser;->isDoneOrKeywordAssign(C)Z
-HSPLandroid/icu/impl/LocaleIDParser;->isTerminator(C)Z
-HSPLandroid/icu/impl/LocaleIDParser;->isTerminatorOrIDSeparator(C)Z
-HSPLandroid/icu/impl/LocaleIDParser;->next()C
-HSPLandroid/icu/impl/LocaleIDParser;->parseBaseName()V
-HSPLandroid/icu/impl/LocaleIDParser;->parseCountry()I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;
-HSPLandroid/icu/impl/LocaleIDParser;->parseKeywords()I
-HSPLandroid/icu/impl/LocaleIDParser;->parseLanguage()I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;
-HSPLandroid/icu/impl/LocaleIDParser;->parseScript()I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;
-HSPLandroid/icu/impl/LocaleIDParser;->parseVariant()I
-HSPLandroid/icu/impl/LocaleIDParser;->reset()V
-HSPLandroid/icu/impl/LocaleIDParser;->setKeywordValue(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/icu/impl/LocaleIDParser;->setKeywordValue(Ljava/lang/String;Ljava/lang/String;Z)V
-HSPLandroid/icu/impl/LocaleIDParser;->setToKeywordStart()Z
-HSPLandroid/icu/impl/LocaleIDParser;->skipCountry()V
-HSPLandroid/icu/impl/LocaleIDParser;->skipLanguage()V
-HSPLandroid/icu/impl/LocaleIDParser;->skipScript()V
-HSPLandroid/icu/impl/LocaleIDParser;->skipUntilTerminatorOrIDSeparator()V
-HSPLandroid/icu/impl/Norm2AllModes$ComposeNormalizer2;->spanQuickCheckYes(Ljava/lang/CharSequence;)I
-HSPLandroid/icu/impl/Norm2AllModes$DecomposeNormalizer2;->normalizeAndAppend(Ljava/lang/CharSequence;ZLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)V
-HSPLandroid/icu/impl/Norm2AllModes$DecomposeNormalizer2;->spanQuickCheckYes(Ljava/lang/CharSequence;)I
-HSPLandroid/icu/impl/Norm2AllModes$NFKCSingleton;->-$$Nest$sfgetINSTANCE()Landroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;
-HSPLandroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;->-$$Nest$fgetallModes(Landroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;)Landroid/icu/impl/Norm2AllModes;
-HSPLandroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;->-$$Nest$fgetexception(Landroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;)Ljava/lang/RuntimeException;
-HSPLandroid/icu/impl/Norm2AllModes$Normalizer2WithImpl;->normalize(Ljava/lang/CharSequence;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
-HSPLandroid/icu/impl/Norm2AllModes$Normalizer2WithImpl;->normalizeSecondAndAppend(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
-HSPLandroid/icu/impl/Norm2AllModes$Normalizer2WithImpl;->normalizeSecondAndAppend(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;Z)Ljava/lang/StringBuilder;
-HSPLandroid/icu/impl/Norm2AllModes;->getFCDNormalizer2()Landroid/icu/text/Normalizer2;
-HSPLandroid/icu/impl/Norm2AllModes;->getInstanceFromSingleton(Landroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;)Landroid/icu/impl/Norm2AllModes;
-HSPLandroid/icu/impl/Norm2AllModes;->getNFCInstance()Landroid/icu/impl/Norm2AllModes;
-HSPLandroid/icu/impl/Norm2AllModes;->getNFKCInstance()Landroid/icu/impl/Norm2AllModes;
-HSPLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;-><init>(Landroid/icu/impl/Normalizer2Impl;Ljava/lang/Appendable;I)V
-HSPLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->append(Ljava/lang/CharSequence;IIZII)V
-HSPLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->flushAndAppendZeroCC(Ljava/lang/CharSequence;II)Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;
-HSPLandroid/icu/impl/Normalizer2Impl;->addToStartSet(Landroid/icu/util/MutableCodePointTrie;II)V
-HSPLandroid/icu/impl/Normalizer2Impl;->composeQuickCheck(Ljava/lang/CharSequence;IIZZ)I
-HSPLandroid/icu/impl/Normalizer2Impl;->decompose(IILandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)V
-HSPLandroid/icu/impl/Normalizer2Impl;->decompose(Ljava/lang/CharSequence;IILandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)I+]Ljava/lang/CharSequence;Ljava/lang/String;
-HSPLandroid/icu/impl/Normalizer2Impl;->decomposeAndAppend(Ljava/lang/CharSequence;ZLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)V
-HSPLandroid/icu/impl/Normalizer2Impl;->ensureCanonIterData()Landroid/icu/impl/Normalizer2Impl;
-HSPLandroid/icu/impl/Normalizer2Impl;->getRawNorm16(I)I
-HSPLandroid/icu/impl/Normalizer2Impl;->hangulLVT()I
-HSPLandroid/icu/impl/Normalizer2Impl;->isDecompNoAlgorithmic(I)Z
-HSPLandroid/icu/impl/Normalizer2Impl;->isDecompYes(I)Z
-HSPLandroid/icu/impl/Normalizer2Impl;->isHangulLV(I)Z
-HSPLandroid/icu/impl/Normalizer2Impl;->isHangulLVT(I)Z
-HSPLandroid/icu/impl/Normalizer2Impl;->isInert(I)Z
-HSPLandroid/icu/impl/Normalizer2Impl;->isMaybeOrNonZeroCC(I)Z
-HSPLandroid/icu/impl/Normalizer2Impl;->mapAlgorithmic(II)I
-HSPLandroid/icu/impl/OlsonTimeZone;-><init>(Landroid/icu/util/UResourceBundle;Landroid/icu/util/UResourceBundle;Ljava/lang/String;)V
-HSPLandroid/icu/impl/OlsonTimeZone;->clone()Ljava/lang/Object;
-HSPLandroid/icu/impl/OlsonTimeZone;->cloneAsThawed()Landroid/icu/util/TimeZone;
-HSPLandroid/icu/impl/OlsonTimeZone;->construct(Landroid/icu/util/UResourceBundle;Landroid/icu/util/UResourceBundle;Ljava/lang/String;)V
-HSPLandroid/icu/impl/OlsonTimeZone;->equals(Ljava/lang/Object;)Z
-HSPLandroid/icu/impl/OlsonTimeZone;->freeze()Landroid/icu/util/TimeZone;
-HSPLandroid/icu/impl/OlsonTimeZone;->getCanonicalID()Ljava/lang/String;
-HSPLandroid/icu/impl/OlsonTimeZone;->getHistoricalOffset(JZII[I)V
-HSPLandroid/icu/impl/OlsonTimeZone;->getInt(B)I
-HSPLandroid/icu/impl/OlsonTimeZone;->getNextTransition(JZ)Landroid/icu/util/TimeZoneTransition;
-HSPLandroid/icu/impl/OlsonTimeZone;->getOffset(JZ[I)V
-HSPLandroid/icu/impl/OlsonTimeZone;->getTimeZoneRules()[Landroid/icu/util/TimeZoneRule;
-HSPLandroid/icu/impl/OlsonTimeZone;->hashCode()I
-HSPLandroid/icu/impl/OlsonTimeZone;->initTransitionRules()V
-HSPLandroid/icu/impl/OlsonTimeZone;->initialDstOffset()I
-HSPLandroid/icu/impl/OlsonTimeZone;->initialRawOffset()I
-HSPLandroid/icu/impl/OlsonTimeZone;->isFrozen()Z
-HSPLandroid/icu/impl/OlsonTimeZone;->loadRule(Landroid/icu/util/UResourceBundle;Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/impl/OlsonTimeZone;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;
-HSPLandroid/icu/impl/PatternProps;->isWhiteSpace(I)Z
-HSPLandroid/icu/impl/PatternProps;->skipWhiteSpace(Ljava/lang/CharSequence;I)I
-HSPLandroid/icu/impl/PatternTokenizer;-><init>()V
-HSPLandroid/icu/impl/PatternTokenizer;->next(Ljava/lang/StringBuffer;)I+]Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;
-HSPLandroid/icu/impl/PatternTokenizer;->quoteLiteral(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/impl/PatternTokenizer;->setExtraQuotingCharacters(Landroid/icu/text/UnicodeSet;)Landroid/icu/impl/PatternTokenizer;
-HSPLandroid/icu/impl/PatternTokenizer;->setPattern(Ljava/lang/String;)Landroid/icu/impl/PatternTokenizer;
-HSPLandroid/icu/impl/PatternTokenizer;->setSyntaxCharacters(Landroid/icu/text/UnicodeSet;)Landroid/icu/impl/PatternTokenizer;
-HSPLandroid/icu/impl/PatternTokenizer;->setUsingQuote(Z)Landroid/icu/impl/PatternTokenizer;
-HSPLandroid/icu/impl/PluralRulesLoader;->checkBuildRulesIdMaps()V
-HSPLandroid/icu/impl/PluralRulesLoader;->forLocale(Landroid/icu/util/ULocale;Landroid/icu/text/PluralRules$PluralType;)Landroid/icu/text/PluralRules;
-HSPLandroid/icu/impl/PluralRulesLoader;->getLocaleIdToRulesIdMap(Landroid/icu/text/PluralRules$PluralType;)Ljava/util/Map;
-HSPLandroid/icu/impl/PluralRulesLoader;->getOrCreateRulesForLocale(Landroid/icu/util/ULocale;Landroid/icu/text/PluralRules$PluralType;)Landroid/icu/text/PluralRules;
-HSPLandroid/icu/impl/PluralRulesLoader;->getPluralBundle()Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/impl/PluralRulesLoader;->getRulesIdForLocale(Landroid/icu/util/ULocale;Landroid/icu/text/PluralRules$PluralType;)Ljava/lang/String;
-HSPLandroid/icu/impl/RBBIDataWrapper$IsAcceptable;->isDataVersionAcceptable([B)Z
-HSPLandroid/icu/impl/RBBIDataWrapper$RBBIDataHeader;-><init>()V
-HSPLandroid/icu/impl/RBBIDataWrapper$RBBIStateTable;-><init>()V
-HSPLandroid/icu/impl/RBBIDataWrapper$RBBIStateTable;->get(Ljava/nio/ByteBuffer;I)Landroid/icu/impl/RBBIDataWrapper$RBBIStateTable;
-HSPLandroid/icu/impl/RBBIDataWrapper;-><init>()V
-HSPLandroid/icu/impl/RBBIDataWrapper;->get(Ljava/nio/ByteBuffer;)Landroid/icu/impl/RBBIDataWrapper;
-HSPLandroid/icu/impl/ReplaceableUCharacterIterator;-><init>(Ljava/lang/String;)V
-HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->getLength()I
-HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->getText([CI)I
-HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->next()I+]Landroid/icu/text/Replaceable;Landroid/icu/text/ReplaceableString;
-HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->setIndex(I)V
-HSPLandroid/icu/impl/RuleCharacterIterator;->_advance(I)V
-HSPLandroid/icu/impl/RuleCharacterIterator;->_current()I
-HSPLandroid/icu/impl/RuleCharacterIterator;->atEnd()Z
-HSPLandroid/icu/impl/RuleCharacterIterator;->getPos(Landroid/icu/impl/RuleCharacterIterator$Position;)Landroid/icu/impl/RuleCharacterIterator$Position;
-HSPLandroid/icu/impl/RuleCharacterIterator;->isEscaped()Z
-HSPLandroid/icu/impl/RuleCharacterIterator;->next(I)I
-HSPLandroid/icu/impl/RuleCharacterIterator;->setPos(Landroid/icu/impl/RuleCharacterIterator$Position;)V
-HSPLandroid/icu/impl/RuleCharacterIterator;->skipIgnored(I)V
-HSPLandroid/icu/impl/SimpleCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/impl/SimpleCache;->put(Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLandroid/icu/impl/SimpleFormatterImpl;->compileToStringMinMaxArguments(Ljava/lang/CharSequence;Ljava/lang/StringBuilder;II)Ljava/lang/String;
-HSPLandroid/icu/impl/SimpleFormatterImpl;->format(Ljava/lang/String;[Ljava/lang/CharSequence;Ljava/lang/StringBuilder;Ljava/lang/String;Z[I)Ljava/lang/StringBuilder;
-HSPLandroid/icu/impl/SimpleFormatterImpl;->formatPrefixSuffix(Ljava/lang/String;Ljava/text/Format$Field;IILandroid/icu/impl/FormattedStringBuilder;)I
-HSPLandroid/icu/impl/SimpleFormatterImpl;->formatRawPattern(Ljava/lang/String;II[Ljava/lang/CharSequence;)Ljava/lang/String;
-HSPLandroid/icu/impl/SimpleFormatterImpl;->getArgumentLimit(Ljava/lang/String;)I
-HSPLandroid/icu/impl/SoftCache;->getInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/impl/StandardPlural;->fromString(Ljava/lang/CharSequence;)Landroid/icu/impl/StandardPlural;
-HSPLandroid/icu/impl/StandardPlural;->orNullFromString(Ljava/lang/CharSequence;)Landroid/icu/impl/StandardPlural;
-HSPLandroid/icu/impl/StandardPlural;->orOtherFromString(Ljava/lang/CharSequence;)Landroid/icu/impl/StandardPlural;
-HSPLandroid/icu/impl/StandardPlural;->values()[Landroid/icu/impl/StandardPlural;
-HSPLandroid/icu/impl/StaticUnicodeSets;->chooseFrom(Ljava/lang/String;Landroid/icu/impl/StaticUnicodeSets$Key;)Landroid/icu/impl/StaticUnicodeSets$Key;
-HSPLandroid/icu/impl/StaticUnicodeSets;->chooseFrom(Ljava/lang/String;Landroid/icu/impl/StaticUnicodeSets$Key;Landroid/icu/impl/StaticUnicodeSets$Key;)Landroid/icu/impl/StaticUnicodeSets$Key;
-HSPLandroid/icu/impl/StaticUnicodeSets;->get(Landroid/icu/impl/StaticUnicodeSets$Key;)Landroid/icu/text/UnicodeSet;
-HSPLandroid/icu/impl/StringSegment;-><init>(Ljava/lang/String;Z)V
-HSPLandroid/icu/impl/StringSegment;->adjustOffset(I)V
-HSPLandroid/icu/impl/StringSegment;->charAt(I)C
-HSPLandroid/icu/impl/StringSegment;->codePointsEqual(IIZ)Z
-HSPLandroid/icu/impl/StringSegment;->getCodePoint()I
-HSPLandroid/icu/impl/StringSegment;->getCommonPrefixLength(Ljava/lang/CharSequence;)I
-HSPLandroid/icu/impl/StringSegment;->getOffset()I
-HSPLandroid/icu/impl/StringSegment;->getPrefixLengthInternal(Ljava/lang/CharSequence;Z)I
-HSPLandroid/icu/impl/StringSegment;->length()I
-HSPLandroid/icu/impl/StringSegment;->startsWith(Landroid/icu/text/UnicodeSet;)Z
-HSPLandroid/icu/impl/StringSegment;->startsWith(Ljava/lang/CharSequence;)Z
-HSPLandroid/icu/impl/TextTrieMap$Node;-><init>(Landroid/icu/impl/TextTrieMap;)V
-HSPLandroid/icu/impl/TextTrieMap;-><init>(Z)V
-HSPLandroid/icu/impl/TimeZoneNamesFactoryImpl;->getTimeZoneNames(Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneNames;
-HSPLandroid/icu/impl/TimeZoneNamesImpl$MZMapEntry;-><init>(Ljava/lang/String;JJ)V
-HSPLandroid/icu/impl/TimeZoneNamesImpl$MZMapEntry;->from()J
-HSPLandroid/icu/impl/TimeZoneNamesImpl$MZMapEntry;->mzID()Ljava/lang/String;
-HSPLandroid/icu/impl/TimeZoneNamesImpl$MZMapEntry;->to()J
-HSPLandroid/icu/impl/TimeZoneNamesImpl$TZ2MZsCache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/impl/TimeZoneNamesImpl$TZ2MZsCache;->createInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
-HSPLandroid/icu/impl/TimeZoneNamesImpl$TZ2MZsCache;->parseDate(Ljava/lang/String;)J
-HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;-><init>([Ljava/lang/String;)V
-HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;->createMetaZoneAndPutInCache(Ljava/util/Map;[Ljava/lang/String;Ljava/lang/String;)Landroid/icu/impl/TimeZoneNamesImpl$ZNames;
-HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;->createTimeZoneAndPutInCache(Ljava/util/Map;[Ljava/lang/String;Ljava/lang/String;)Landroid/icu/impl/TimeZoneNamesImpl$ZNames;
-HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;->getName(Landroid/icu/text/TimeZoneNames$NameType;)Ljava/lang/String;
-HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;->getNameTypeIndex(Landroid/icu/text/TimeZoneNames$NameType;)I
-HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->-$$Nest$mgetNames(Landroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;)[Ljava/lang/String;
-HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;-><init>()V
-HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;-><init>(Landroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader-IA;)V
-HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->getNames()[Ljava/lang/String;
-HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->loadMetaZone(Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V
-HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->loadNames(Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V
-HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->loadTimeZone(Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V
-HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->nameTypeIndexFromKey(Landroid/icu/impl/UResource$Key;)Landroid/icu/impl/TimeZoneNamesImpl$ZNames$NameTypeIndex;
-HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
-HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->setNameIfEmpty(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-HSPLandroid/icu/impl/TimeZoneNamesImpl;-><init>(Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/impl/TimeZoneNamesImpl;->_getAvailableMetaZoneIDs(Ljava/lang/String;)Ljava/util/Set;
-HSPLandroid/icu/impl/TimeZoneNamesImpl;->_getMetaZoneID(Ljava/lang/String;J)Ljava/lang/String;
-HSPLandroid/icu/impl/TimeZoneNamesImpl;->getAvailableMetaZoneIDs(Ljava/lang/String;)Ljava/util/Set;
-HSPLandroid/icu/impl/TimeZoneNamesImpl;->getDefaultExemplarLocationName(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/impl/TimeZoneNamesImpl;->getMetaZoneDisplayName(Ljava/lang/String;Landroid/icu/text/TimeZoneNames$NameType;)Ljava/lang/String;
-HSPLandroid/icu/impl/TimeZoneNamesImpl;->getMetaZoneID(Ljava/lang/String;J)Ljava/lang/String;
-HSPLandroid/icu/impl/TimeZoneNamesImpl;->getTimeZoneDisplayName(Ljava/lang/String;Landroid/icu/text/TimeZoneNames$NameType;)Ljava/lang/String;
-HSPLandroid/icu/impl/TimeZoneNamesImpl;->initialize(Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/impl/TimeZoneNamesImpl;->loadMetaZoneNames(Ljava/lang/String;)Landroid/icu/impl/TimeZoneNamesImpl$ZNames;
-HSPLandroid/icu/impl/TimeZoneNamesImpl;->loadStrings(Ljava/lang/String;)V
-HSPLandroid/icu/impl/TimeZoneNamesImpl;->loadTimeZoneNames(Ljava/lang/String;)Landroid/icu/impl/TimeZoneNamesImpl$ZNames;
-HSPLandroid/icu/impl/Trie2;-><init>()V
-HSPLandroid/icu/impl/Trie2;->createFromSerialized(Ljava/nio/ByteBuffer;)Landroid/icu/impl/Trie2;
-HSPLandroid/icu/impl/Trie2Writable;-><init>(II)V
-HSPLandroid/icu/impl/Trie2Writable;->allocDataBlock(I)I
-HSPLandroid/icu/impl/Trie2Writable;->fillBlock(IIIIIZ)V
-HSPLandroid/icu/impl/Trie2Writable;->getDataBlock(IZ)I
-HSPLandroid/icu/impl/Trie2Writable;->getIndex2Block(IZ)I
-HSPLandroid/icu/impl/Trie2Writable;->init(II)V
-HSPLandroid/icu/impl/Trie2Writable;->isWritableBlock(I)Z
-HSPLandroid/icu/impl/Trie2Writable;->set(II)Landroid/icu/impl/Trie2Writable;
-HSPLandroid/icu/impl/Trie2Writable;->set(IZI)Landroid/icu/impl/Trie2Writable;
-HSPLandroid/icu/impl/Trie2Writable;->setIndex2Entry(II)V
-HSPLandroid/icu/impl/Trie2Writable;->setRange(IIIZ)Landroid/icu/impl/Trie2Writable;
-HSPLandroid/icu/impl/Trie2Writable;->writeBlock(II)V
-HSPLandroid/icu/impl/Trie2_16;->get(I)I
-HSPLandroid/icu/impl/Trie2_32;->get(I)I
-HSPLandroid/icu/impl/Trie2_32;->getFromU16SingleLead(C)I
-HSPLandroid/icu/impl/UBiDiProps;->getClass(I)I
-HSPLandroid/icu/impl/UBiDiProps;->getClassFromProps(I)I
-HSPLandroid/icu/impl/UCaseProps;->fold(II)I
-HSPLandroid/icu/impl/UCaseProps;->getCaseLocale(Ljava/lang/String;)I
-HSPLandroid/icu/impl/UCaseProps;->getCaseLocale(Ljava/util/Locale;)I
-HSPLandroid/icu/impl/UCaseProps;->getDelta(I)I
-HSPLandroid/icu/impl/UCaseProps;->isUpperOrTitleFromProps(I)Z
-HSPLandroid/icu/impl/UCaseProps;->propsHasException(I)Z
-HSPLandroid/icu/impl/UCaseProps;->toUpperOrTitle(ILandroid/icu/impl/UCaseProps$ContextIterator;Ljava/lang/Appendable;IZ)I
-HSPLandroid/icu/impl/UCharacterProperty$IntProperty;->getValue(I)I
-HSPLandroid/icu/impl/UCharacterProperty;->digit(I)I
-HSPLandroid/icu/impl/UCharacterProperty;->getIntPropertyValue(II)I
-HSPLandroid/icu/impl/UCharacterProperty;->getNumericTypeValue(I)I
-HSPLandroid/icu/impl/UCharacterProperty;->getProperty(I)I
-HSPLandroid/icu/impl/UCharacterProperty;->getType(I)I
-HSPLandroid/icu/impl/UPropertyAliases;->asciiToLowercase(I)I
-HSPLandroid/icu/impl/UPropertyAliases;->containsName(Landroid/icu/util/BytesTrie;Ljava/lang/CharSequence;)Z
-HSPLandroid/icu/impl/UPropertyAliases;->findProperty(I)I
-HSPLandroid/icu/impl/UPropertyAliases;->getPropertyOrValueEnum(ILjava/lang/CharSequence;)I
-HSPLandroid/icu/impl/UPropertyAliases;->getPropertyValueEnumNoThrow(ILjava/lang/CharSequence;)I
-HSPLandroid/icu/impl/UResource$Key;-><init>()V
-HSPLandroid/icu/impl/UResource$Key;->charAt(I)C
-HSPLandroid/icu/impl/UResource$Key;->contentEquals(Ljava/lang/CharSequence;)Z
-HSPLandroid/icu/impl/UResource$Key;->endsWith(Ljava/lang/CharSequence;)Z
-HSPLandroid/icu/impl/UResource$Key;->internalSubString(II)Ljava/lang/String;
-HSPLandroid/icu/impl/UResource$Key;->length()I
-HSPLandroid/icu/impl/UResource$Key;->regionMatches(ILjava/lang/CharSequence;I)Z
-HSPLandroid/icu/impl/UResource$Key;->setBytes([BI)Landroid/icu/impl/UResource$Key;
-HSPLandroid/icu/impl/UResource$Key;->setString(Ljava/lang/String;)Landroid/icu/impl/UResource$Key;
-HSPLandroid/icu/impl/UResource$Key;->toString()Ljava/lang/String;
-HSPLandroid/icu/impl/UResource$Sink;-><init>()V
-HSPLandroid/icu/impl/UResource$Value;-><init>()V
-HSPLandroid/icu/impl/UResource$Value;->toString()Ljava/lang/String;
-HSPLandroid/icu/impl/Utility;->addExact(II)I
-HSPLandroid/icu/impl/Utility;->appendTo(Ljava/lang/CharSequence;Ljava/lang/Appendable;)Ljava/lang/Appendable;+]Ljava/lang/Appendable;Ljava/lang/StringBuffer;
-HSPLandroid/icu/impl/Utility;->arrayEquals([BLjava/lang/Object;)Z
-HSPLandroid/icu/impl/Utility;->arrayRegionMatches([BI[BII)Z
-HSPLandroid/icu/impl/Utility;->sameObjects(Ljava/lang/Object;Ljava/lang/Object;)Z
-HSPLandroid/icu/impl/Utility;->shouldAlwaysBeEscaped(I)Z
-HSPLandroid/icu/impl/ZoneMeta$SystemTimeZoneCache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/impl/ZoneMeta$SystemTimeZoneCache;->createInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/impl/OlsonTimeZone;
-HSPLandroid/icu/impl/ZoneMeta;->findCLDRCanonicalID(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/impl/ZoneMeta;->getCanonicalCLDRID(Landroid/icu/util/TimeZone;)Ljava/lang/String;
-HSPLandroid/icu/impl/ZoneMeta;->getCanonicalCLDRID(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/impl/ZoneMeta;->getSystemTimeZone(Ljava/lang/String;)Landroid/icu/impl/OlsonTimeZone;
-HSPLandroid/icu/impl/ZoneMeta;->getZoneIDs()[Ljava/lang/String;
-HSPLandroid/icu/impl/ZoneMeta;->getZoneIndex(Ljava/lang/String;)I
-HSPLandroid/icu/impl/ZoneMeta;->openOlsonResource(Landroid/icu/util/UResourceBundle;Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/impl/breakiter/DictionaryBreakEngine$DequeI;->clone()Ljava/lang/Object;
-HSPLandroid/icu/impl/breakiter/DictionaryBreakEngine$DequeI;->removeAllElements()V
-HSPLandroid/icu/impl/coll/Collation;-><clinit>()V
-HSPLandroid/icu/impl/coll/Collation;->ceFromCE32(I)J
-HSPLandroid/icu/impl/coll/Collation;->ceFromSimpleCE32(I)J
-HSPLandroid/icu/impl/coll/Collation;->indexFromCE32(I)I
-HSPLandroid/icu/impl/coll/Collation;->isSpecialCE32(I)Z
-HSPLandroid/icu/impl/coll/Collation;->makeCE(J)J
-HSPLandroid/icu/impl/coll/Collation;->makeCE32FromTagAndIndex(II)I
-HSPLandroid/icu/impl/coll/Collation;->tagFromCE32(I)I
-HSPLandroid/icu/impl/coll/CollationBuilder$BundleImporter;-><init>()V
-HSPLandroid/icu/impl/coll/CollationBuilder;-><init>(Landroid/icu/impl/coll/CollationTailoring;)V
-HSPLandroid/icu/impl/coll/CollationBuilder;->parseAndBuild(Ljava/lang/String;)Landroid/icu/impl/coll/CollationTailoring;
-HSPLandroid/icu/impl/coll/CollationCompare;->compareUpToQuaternary(Landroid/icu/impl/coll/CollationIterator;Landroid/icu/impl/coll/CollationIterator;Landroid/icu/impl/coll/CollationSettings;)I
-HSPLandroid/icu/impl/coll/CollationData;->getCE32(I)I
-HSPLandroid/icu/impl/coll/CollationData;->getCE32FromContexts(I)I
-HSPLandroid/icu/impl/coll/CollationData;->isUnsafeBackward(IZ)Z
-HSPLandroid/icu/impl/coll/CollationDataBuilder;-><init>()V
-HSPLandroid/icu/impl/coll/CollationDataBuilder;->hasMappings()Z
-HSPLandroid/icu/impl/coll/CollationDataBuilder;->initForTailoring(Landroid/icu/impl/coll/CollationData;)V
-HSPLandroid/icu/impl/coll/CollationFCD;->hasTccc(I)Z
-HSPLandroid/icu/impl/coll/CollationFastLatin;->compareUTF16([C[CILjava/lang/CharSequence;Ljava/lang/CharSequence;I)I
-HSPLandroid/icu/impl/coll/CollationFastLatin;->getOptions(Landroid/icu/impl/coll/CollationData;Landroid/icu/impl/coll/CollationSettings;[C)I
-HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;-><init>()V
-HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->append(J)V
-HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->appendUnsafe(J)V
-HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->ensureAppendCapacity(I)V
-HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->get(I)J
-HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->incLength()V
-HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->set(IJ)J
-HSPLandroid/icu/impl/coll/CollationIterator;-><clinit>()V
-HSPLandroid/icu/impl/coll/CollationIterator;-><init>(Landroid/icu/impl/coll/CollationData;)V
-HSPLandroid/icu/impl/coll/CollationIterator;->appendCEsFromCE32(Landroid/icu/impl/coll/CollationData;IIZ)V
-HSPLandroid/icu/impl/coll/CollationIterator;->clearCEs()V
-HSPLandroid/icu/impl/coll/CollationIterator;->clearCEsIfNoneRemaining()V
-HSPLandroid/icu/impl/coll/CollationIterator;->makeCodePointAndCE32Pair(II)J
-HSPLandroid/icu/impl/coll/CollationIterator;->nextCE()J
-HSPLandroid/icu/impl/coll/CollationIterator;->nextCE32FromContraction(Landroid/icu/impl/coll/CollationData;ILjava/lang/CharSequence;III)I
-HSPLandroid/icu/impl/coll/CollationIterator;->nextCEFromCE32(Landroid/icu/impl/coll/CollationData;II)J
-HSPLandroid/icu/impl/coll/CollationIterator;->reset()V
-HSPLandroid/icu/impl/coll/CollationIterator;->reset(Z)V
-HSPLandroid/icu/impl/coll/CollationKeys$SortKeyByteSink;-><init>([B)V
-HSPLandroid/icu/impl/coll/CollationKeys$SortKeyByteSink;->Append(I)V
-HSPLandroid/icu/impl/coll/CollationKeys$SortKeyByteSink;->NumberOfBytesAppended()I
-HSPLandroid/icu/impl/coll/CollationKeys;->getSortKeyLevel(II)Landroid/icu/impl/coll/CollationKeys$SortKeyLevel;
-HSPLandroid/icu/impl/coll/CollationKeys;->writeSortKeyUpToQuaternary(Landroid/icu/impl/coll/CollationIterator;[ZLandroid/icu/impl/coll/CollationSettings;Landroid/icu/impl/coll/CollationKeys$SortKeyByteSink;ILandroid/icu/impl/coll/CollationKeys$LevelCallback;Z)V
-HSPLandroid/icu/impl/coll/CollationLoader;->findWithFallback(Landroid/icu/util/UResourceBundle;Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/impl/coll/CollationLoader;->loadTailoring(Landroid/icu/util/ULocale;Landroid/icu/util/Output;)Landroid/icu/impl/coll/CollationTailoring;
-HSPLandroid/icu/impl/coll/CollationRoot;->getRoot()Landroid/icu/impl/coll/CollationTailoring;
-HSPLandroid/icu/impl/coll/CollationRootElements;-><init>([J)V
-HSPLandroid/icu/impl/coll/CollationRuleParser$Sink;-><init>()V
-HSPLandroid/icu/impl/coll/CollationRuleParser;-><init>(Landroid/icu/impl/coll/CollationData;)V
-HSPLandroid/icu/impl/coll/CollationRuleParser;->getOnOffValue(Ljava/lang/String;)I
-HSPLandroid/icu/impl/coll/CollationRuleParser;->isSyntaxChar(I)Z
-HSPLandroid/icu/impl/coll/CollationRuleParser;->parse(Ljava/lang/String;)V
-HSPLandroid/icu/impl/coll/CollationRuleParser;->parse(Ljava/lang/String;Landroid/icu/impl/coll/CollationSettings;)V
-HSPLandroid/icu/impl/coll/CollationRuleParser;->parseSetting()V
-HSPLandroid/icu/impl/coll/CollationRuleParser;->readWords(ILjava/lang/StringBuilder;)I
-HSPLandroid/icu/impl/coll/CollationRuleParser;->setImporter(Landroid/icu/impl/coll/CollationRuleParser$Importer;)V
-HSPLandroid/icu/impl/coll/CollationRuleParser;->setSink(Landroid/icu/impl/coll/CollationRuleParser$Sink;)V
-HSPLandroid/icu/impl/coll/CollationRuleParser;->skipWhiteSpace(I)I
-HSPLandroid/icu/impl/coll/CollationSettings;->clone()Landroid/icu/impl/coll/CollationSettings;
-HSPLandroid/icu/impl/coll/CollationSettings;->clone()Landroid/icu/impl/coll/SharedObject;
-HSPLandroid/icu/impl/coll/CollationSettings;->dontCheckFCD()Z
-HSPLandroid/icu/impl/coll/CollationSettings;->getFlag(I)Z
-HSPLandroid/icu/impl/coll/CollationSettings;->getStrength()I
-HSPLandroid/icu/impl/coll/CollationSettings;->getStrength(I)I
-HSPLandroid/icu/impl/coll/CollationSettings;->getTertiaryMask(I)I
-HSPLandroid/icu/impl/coll/CollationSettings;->hasReordering()Z
-HSPLandroid/icu/impl/coll/CollationSettings;->isNumeric()Z
-HSPLandroid/icu/impl/coll/CollationSettings;->isTertiaryWithCaseBits(I)Z
-HSPLandroid/icu/impl/coll/CollationSettings;->setFlag(IZ)V
-HSPLandroid/icu/impl/coll/CollationSettings;->setStrength(I)V
-HSPLandroid/icu/impl/coll/CollationTailoring;-><init>(Landroid/icu/impl/coll/SharedObject$Reference;)V
-HSPLandroid/icu/impl/coll/CollationTailoring;->getRules()Ljava/lang/String;
-HSPLandroid/icu/impl/coll/CollationTailoring;->setRules(Ljava/lang/String;)V
-HSPLandroid/icu/impl/coll/CollationTailoring;->setVersion(II)V
-HSPLandroid/icu/impl/coll/FCDUTF16CollationIterator;-><clinit>()V
-HSPLandroid/icu/impl/coll/FCDUTF16CollationIterator;-><init>(Landroid/icu/impl/coll/CollationData;)V
-HSPLandroid/icu/impl/coll/FCDUTF16CollationIterator;->handleNextCE32()J
-HSPLandroid/icu/impl/coll/FCDUTF16CollationIterator;->setText(ZLjava/lang/CharSequence;I)V
-HSPLandroid/icu/impl/coll/SharedObject$Reference;->clear()V
-HSPLandroid/icu/impl/coll/SharedObject$Reference;->clone()Landroid/icu/impl/coll/SharedObject$Reference;
-HSPLandroid/icu/impl/coll/SharedObject$Reference;->copyOnWrite()Landroid/icu/impl/coll/SharedObject;
-HSPLandroid/icu/impl/coll/SharedObject$Reference;->finalize()V
-HSPLandroid/icu/impl/coll/SharedObject$Reference;->readOnly()Landroid/icu/impl/coll/SharedObject;
-HSPLandroid/icu/impl/coll/SharedObject;->addRef()V
-HSPLandroid/icu/impl/coll/SharedObject;->clone()Landroid/icu/impl/coll/SharedObject;
-HSPLandroid/icu/impl/coll/SharedObject;->getRefCount()I
-HSPLandroid/icu/impl/coll/SharedObject;->removeRef()V
-HSPLandroid/icu/impl/coll/UTF16CollationIterator;-><clinit>()V
-HSPLandroid/icu/impl/coll/UTF16CollationIterator;-><init>(Landroid/icu/impl/coll/CollationData;)V
-HSPLandroid/icu/impl/coll/UTF16CollationIterator;->handleNextCE32()J
-HSPLandroid/icu/impl/coll/UTF16CollationIterator;->nextCodePoint()I
-HSPLandroid/icu/impl/coll/UTF16CollationIterator;->setText(ZLjava/lang/CharSequence;I)V
-HSPLandroid/icu/impl/coll/UVector32;-><init>()V
-HSPLandroid/icu/impl/coll/UVector32;->addElement(I)V
-HSPLandroid/icu/impl/coll/UVector32;->ensureAppendCapacity()V
-HSPLandroid/icu/impl/coll/UVector64;-><init>()V
-HSPLandroid/icu/impl/locale/AsciiUtil;->caseIgnoreMatch(Ljava/lang/String;Ljava/lang/String;)Z
-HSPLandroid/icu/impl/locale/AsciiUtil;->isAlpha(C)Z
-HSPLandroid/icu/impl/locale/AsciiUtil;->isAlphaString(Ljava/lang/String;)Z
-HSPLandroid/icu/impl/locale/AsciiUtil;->toLower(C)C
-HSPLandroid/icu/impl/locale/AsciiUtil;->toLowerString(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/impl/locale/AsciiUtil;->toTitleString(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/impl/locale/AsciiUtil;->toUpper(C)C
-HSPLandroid/icu/impl/locale/AsciiUtil;->toUpperString(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/impl/locale/BaseLocale$Cache;->createObject(Landroid/icu/impl/locale/BaseLocale$Key;)Landroid/icu/impl/locale/BaseLocale;
-HSPLandroid/icu/impl/locale/BaseLocale$Cache;->createObject(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/impl/locale/BaseLocale$Cache;->normalizeKey(Landroid/icu/impl/locale/BaseLocale$Key;)Landroid/icu/impl/locale/BaseLocale$Key;
-HSPLandroid/icu/impl/locale/BaseLocale$Cache;->normalizeKey(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/impl/locale/BaseLocale$Key;->-$$Nest$fget_lang(Landroid/icu/impl/locale/BaseLocale$Key;)Ljava/lang/String;
-HSPLandroid/icu/impl/locale/BaseLocale$Key;->-$$Nest$fget_regn(Landroid/icu/impl/locale/BaseLocale$Key;)Ljava/lang/String;
-HSPLandroid/icu/impl/locale/BaseLocale$Key;->-$$Nest$fget_scrt(Landroid/icu/impl/locale/BaseLocale$Key;)Ljava/lang/String;
-HSPLandroid/icu/impl/locale/BaseLocale$Key;->-$$Nest$fget_vart(Landroid/icu/impl/locale/BaseLocale$Key;)Ljava/lang/String;
-HSPLandroid/icu/impl/locale/BaseLocale$Key;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/icu/impl/locale/BaseLocale$Key;->equals(Ljava/lang/Object;)Z
-HSPLandroid/icu/impl/locale/BaseLocale$Key;->hashCode()I+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/icu/impl/locale/BaseLocale$Key;->normalize(Landroid/icu/impl/locale/BaseLocale$Key;)Landroid/icu/impl/locale/BaseLocale$Key;
-HSPLandroid/icu/impl/locale/BaseLocale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/icu/impl/locale/BaseLocale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/locale/BaseLocale-IA;)V
-HSPLandroid/icu/impl/locale/BaseLocale;->getInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/icu/impl/locale/BaseLocale;
-HSPLandroid/icu/impl/locale/BaseLocale;->getLanguage()Ljava/lang/String;
-HSPLandroid/icu/impl/locale/BaseLocale;->getRegion()Ljava/lang/String;
-HSPLandroid/icu/impl/locale/BaseLocale;->getScript()Ljava/lang/String;
-HSPLandroid/icu/impl/locale/BaseLocale;->getVariant()Ljava/lang/String;
-HSPLandroid/icu/impl/locale/InternalLocaleBuilder;-><init>()V
-HSPLandroid/icu/impl/locale/InternalLocaleBuilder;->getBaseLocale()Landroid/icu/impl/locale/BaseLocale;
-HSPLandroid/icu/impl/locale/InternalLocaleBuilder;->getLocaleExtensions()Landroid/icu/impl/locale/LocaleExtensions;
-HSPLandroid/icu/impl/locale/InternalLocaleBuilder;->setLanguage(Ljava/lang/String;)Landroid/icu/impl/locale/InternalLocaleBuilder;
-HSPLandroid/icu/impl/locale/InternalLocaleBuilder;->setRegion(Ljava/lang/String;)Landroid/icu/impl/locale/InternalLocaleBuilder;
-HSPLandroid/icu/impl/locale/LanguageTag;->isLanguage(Ljava/lang/String;)Z
-HSPLandroid/icu/impl/locale/LanguageTag;->isRegion(Ljava/lang/String;)Z
-HSPLandroid/icu/impl/locale/LocaleExtensions;->getKeys()Ljava/util/Set;
-HSPLandroid/icu/impl/locale/LocaleObjectCache$CacheEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
-HSPLandroid/icu/impl/locale/LocaleObjectCache$CacheEntry;->getKey()Ljava/lang/Object;
-HSPLandroid/icu/impl/locale/LocaleObjectCache;->cleanStaleEntries()V
-HSPLandroid/icu/impl/locale/LocaleObjectCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/impl/number/AdoptingModifierStore$1;-><clinit>()V
-HSPLandroid/icu/impl/number/AdoptingModifierStore;-><init>(Landroid/icu/impl/number/Modifier;Landroid/icu/impl/number/Modifier;Landroid/icu/impl/number/Modifier;Landroid/icu/impl/number/Modifier;)V
-HSPLandroid/icu/impl/number/AdoptingModifierStore;->getModifierWithoutPlural(Landroid/icu/impl/number/Modifier$Signum;)Landroid/icu/impl/number/Modifier;+]Landroid/icu/impl/number/Modifier$Signum;Landroid/icu/impl/number/Modifier$Signum;
-HSPLandroid/icu/impl/number/AffixUtils;->containsType(Ljava/lang/CharSequence;I)Z
-HSPLandroid/icu/impl/number/AffixUtils;->escape(Ljava/lang/CharSequence;)Ljava/lang/String;
-HSPLandroid/icu/impl/number/AffixUtils;->getFieldForType(I)Landroid/icu/text/NumberFormat$Field;
-HSPLandroid/icu/impl/number/AffixUtils;->getOffset(J)I
-HSPLandroid/icu/impl/number/AffixUtils;->getState(J)I
-HSPLandroid/icu/impl/number/AffixUtils;->getType(J)I
-HSPLandroid/icu/impl/number/AffixUtils;->getTypeOrCp(J)I
-HSPLandroid/icu/impl/number/AffixUtils;->hasCurrencySymbols(Ljava/lang/CharSequence;)Z
-HSPLandroid/icu/impl/number/AffixUtils;->hasNext(JLjava/lang/CharSequence;)Z
-HSPLandroid/icu/impl/number/AffixUtils;->iterateWithConsumer(Ljava/lang/CharSequence;Landroid/icu/impl/number/AffixUtils$TokenConsumer;)V
-HSPLandroid/icu/impl/number/AffixUtils;->makeTag(IIII)J
-HSPLandroid/icu/impl/number/AffixUtils;->nextToken(JLjava/lang/CharSequence;)J
-HSPLandroid/icu/impl/number/AffixUtils;->unescape(Ljava/lang/CharSequence;Landroid/icu/impl/FormattedStringBuilder;ILandroid/icu/impl/number/AffixUtils$SymbolProvider;Landroid/icu/text/NumberFormat$Field;)I
-HSPLandroid/icu/impl/number/AffixUtils;->unescapedCount(Ljava/lang/CharSequence;ZLandroid/icu/impl/number/AffixUtils$SymbolProvider;)I
-HSPLandroid/icu/impl/number/ConstantAffixModifier;->apply(Landroid/icu/impl/FormattedStringBuilder;II)I+]Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder;
-HSPLandroid/icu/impl/number/ConstantMultiFieldModifier;-><init>(Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder;ZZ)V
-HSPLandroid/icu/impl/number/ConstantMultiFieldModifier;-><init>(Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder;ZZLandroid/icu/impl/number/Modifier$Parameters;)V
-HSPLandroid/icu/impl/number/ConstantMultiFieldModifier;->apply(Landroid/icu/impl/FormattedStringBuilder;II)I+]Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder;
-HSPLandroid/icu/impl/number/ConstantMultiFieldModifier;->getPrefixLength()I
-HSPLandroid/icu/impl/number/CurrencySpacingEnabledModifier;->applyCurrencySpacing(Landroid/icu/impl/FormattedStringBuilder;IIIILandroid/icu/text/DecimalFormatSymbols;)I
-HSPLandroid/icu/impl/number/CurrencySpacingEnabledModifier;->applyCurrencySpacingAffix(Landroid/icu/impl/FormattedStringBuilder;IBLandroid/icu/text/DecimalFormatSymbols;)I
-HSPLandroid/icu/impl/number/CustomSymbolCurrency;->resolve(Landroid/icu/util/Currency;Landroid/icu/util/ULocale;Landroid/icu/text/DecimalFormatSymbols;)Landroid/icu/util/Currency;+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/util/Currency;Landroid/icu/util/Currency;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;-><init>()V
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->_clear()Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->_copyFrom(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->clear()Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->clone()Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->copyFrom(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getCompactStyle()Landroid/icu/text/CompactDecimalFormat$CompactStyle;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getCurrency()Landroid/icu/util/Currency;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getCurrencyAsDecimal()Z
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getCurrencyPluralInfo()Landroid/icu/text/CurrencyPluralInfo;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getCurrencyUsage()Landroid/icu/util/Currency$CurrencyUsage;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getDecimalPatternMatchRequired()Z
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getDecimalSeparatorAlwaysShown()Z
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getExponentSignAlwaysShown()Z
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getFormatWidth()I
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getGroupingSize()I
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getGroupingUsed()Z
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMagnitudeMultiplier()I
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMathContext()Ljava/math/MathContext;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMaximumFractionDigits()I
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMaximumIntegerDigits()I
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMaximumSignificantDigits()I
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMinimumExponentDigits()I
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMinimumFractionDigits()I
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMinimumGroupingDigits()I
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMinimumIntegerDigits()I
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMinimumSignificantDigits()I
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMultiplier()Ljava/math/BigDecimal;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getNegativePrefix()Ljava/lang/String;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getNegativePrefixPattern()Ljava/lang/String;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getNegativeSuffix()Ljava/lang/String;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getNegativeSuffixPattern()Ljava/lang/String;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getPadPosition()Landroid/icu/impl/number/Padder$PadPosition;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getPadString()Ljava/lang/String;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getParseCaseSensitive()Z
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getParseIntegerOnly()Z
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getParseMode()Landroid/icu/impl/number/DecimalFormatProperties$ParseMode;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getParseNoExponent()Z
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getParseToBigDecimal()Z
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getPluralRules()Landroid/icu/text/PluralRules;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getPositivePrefix()Ljava/lang/String;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getPositivePrefixPattern()Ljava/lang/String;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getPositiveSuffix()Ljava/lang/String;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getPositiveSuffixPattern()Ljava/lang/String;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getRoundingIncrement()Ljava/math/BigDecimal;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getRoundingMode()Ljava/math/RoundingMode;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getSecondaryGroupingSize()I
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->getSignAlwaysShown()Z
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setCurrency(Landroid/icu/util/Currency;)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setCurrencyAsDecimal(Z)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setDecimalSeparatorAlwaysShown(Z)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setExponentSignAlwaysShown(Z)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setFormatWidth(I)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setGroupingSize(I)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setGroupingUsed(Z)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMagnitudeMultiplier(I)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMathContext(Ljava/math/MathContext;)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMaximumFractionDigits(I)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMaximumIntegerDigits(I)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMaximumSignificantDigits(I)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMinimumExponentDigits(I)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMinimumFractionDigits(I)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMinimumIntegerDigits(I)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMinimumSignificantDigits(I)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setNegativePrefixPattern(Ljava/lang/String;)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setNegativeSuffixPattern(Ljava/lang/String;)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setPadPosition(Landroid/icu/impl/number/Padder$PadPosition;)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setPadString(Ljava/lang/String;)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setParseIntegerOnly(Z)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setParseMode(Landroid/icu/impl/number/DecimalFormatProperties$ParseMode;)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setPositivePrefixPattern(Ljava/lang/String;)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setPositiveSuffixPattern(Ljava/lang/String;)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setRoundingIncrement(Ljava/math/BigDecimal;)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setRoundingMode(Ljava/math/RoundingMode;)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalFormatProperties;->setSecondaryGroupingSize(I)Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;-><init>()V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToBigDecimal(Ljava/math/BigDecimal;)V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToBigInteger(Ljava/math/BigInteger;)V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToDoubleFast(D)V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToLong(J)V+]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->adjustMagnitude(I)V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->appendDigit(BIZ)V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->applyMaxInteger(I)V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->convertToAccurateDouble()V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->copyFrom(Landroid/icu/impl/number/DecimalQuantity;)V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->fitsInLong()Z
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getDigit(I)B+]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getLowerDisplayMagnitude()I
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getMagnitude()I
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getPluralOperand(Landroid/icu/text/PluralRules$Operand;)D
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getStandardPlural(Landroid/icu/text/PluralRules;)Landroid/icu/impl/StandardPlural;
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getUpperDisplayMagnitude()I
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->isInfinite()Z
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->isNaN()Z
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->isNegative()Z
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->isZeroish()Z
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->negate()V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->populateUFieldPosition(Ljava/text/FieldPosition;)V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->roundToMagnitude(ILjava/math/MathContext;)V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->roundToMagnitude(ILjava/math/MathContext;Z)V+]Ljava/math/MathContext;Ljava/math/MathContext;]Ljava/math/RoundingMode;Ljava/math/RoundingMode;]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->safeSubtract(II)I
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->setMinFraction(I)V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->setMinInteger(I)V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->setToBigDecimal(Ljava/math/BigDecimal;)V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->setToDouble(D)V+]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->setToInt(I)V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->setToLong(J)V
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->signum()Landroid/icu/impl/number/Modifier$Signum;+]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
-HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->toLong(Z)J
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>()V
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(D)V+]Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(I)V
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(J)V
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(Ljava/lang/Number;)V
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(Ljava/math/BigDecimal;)V
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->compact()V
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->copyBcdFrom(Landroid/icu/impl/number/DecimalQuantity;)V
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->createCopy()Landroid/icu/impl/number/DecimalQuantity;
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->fromExponentString(Ljava/lang/String;)Landroid/icu/impl/number/DecimalQuantity;
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->getDigitPos(I)B
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->getVisibleFractionCount(Ljava/lang/String;)I
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->readIntToBcd(I)V
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->readLongToBcd(J)V
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->setBcdToZero()V
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->setDigitPos(IB)V
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->shiftLeft(I)V
-HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->shiftRight(I)V
-HSPLandroid/icu/impl/number/Grouper;-><init>(SSS)V
-HSPLandroid/icu/impl/number/Grouper;->forProperties(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/Grouper;
-HSPLandroid/icu/impl/number/Grouper;->getInstance(SSS)Landroid/icu/impl/number/Grouper;
-HSPLandroid/icu/impl/number/Grouper;->getMinGroupingForLocale(Landroid/icu/util/ULocale;)S
-HSPLandroid/icu/impl/number/Grouper;->getPrimary()S
-HSPLandroid/icu/impl/number/Grouper;->getSecondary()S
-HSPLandroid/icu/impl/number/Grouper;->groupAtPosition(ILandroid/icu/impl/number/DecimalQuantity;)Z
-HSPLandroid/icu/impl/number/Grouper;->withLocaleData(Landroid/icu/util/ULocale;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;)Landroid/icu/impl/number/Grouper;
-HSPLandroid/icu/impl/number/LongNameHandler$PluralTableSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
-HSPLandroid/icu/impl/number/LongNameHandler;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;
-HSPLandroid/icu/impl/number/LongNameHandler;->simpleFormatsToModifiers([Ljava/lang/String;Landroid/icu/text/NumberFormat$Field;)V
-HSPLandroid/icu/impl/number/MacroProps;-><init>()V
-HSPLandroid/icu/impl/number/MacroProps;->fallback(Landroid/icu/impl/number/MacroProps;)V
-HSPLandroid/icu/impl/number/MicroProps;-><init>(Z)V
-HSPLandroid/icu/impl/number/MicroProps;->clone()Ljava/lang/Object;
-HSPLandroid/icu/impl/number/MicroProps;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;+]Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/MicroProps;
-HSPLandroid/icu/impl/number/Modifier$Signum;->values()[Landroid/icu/impl/number/Modifier$Signum;
-HSPLandroid/icu/impl/number/MultiplierFormatHandler;-><init>(Landroid/icu/number/Scale;Landroid/icu/impl/number/MicroPropsGenerator;)V
-HSPLandroid/icu/impl/number/MultiplierFormatHandler;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;
-HSPLandroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;-><init>(Landroid/icu/impl/number/AdoptingModifierStore;Landroid/icu/text/PluralRules;)V
-HSPLandroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->addToChain(Landroid/icu/impl/number/MicroPropsGenerator;)Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;
-HSPLandroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->applyToMicros(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;)V+]Landroid/icu/impl/number/AdoptingModifierStore;Landroid/icu/impl/number/AdoptingModifierStore;]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
-HSPLandroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;+]Landroid/icu/impl/number/MicroPropsGenerator;Landroid/icu/impl/number/MicroProps;]Landroid/icu/number/Precision;Landroid/icu/number/Precision$FractionRounderImpl;]Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;
-HSPLandroid/icu/impl/number/MutablePatternModifier;-><init>(Z)V
-HSPLandroid/icu/impl/number/MutablePatternModifier;->addToChain(Landroid/icu/impl/number/MicroPropsGenerator;)Landroid/icu/impl/number/MicroPropsGenerator;
-HSPLandroid/icu/impl/number/MutablePatternModifier;->apply(Landroid/icu/impl/FormattedStringBuilder;II)I
-HSPLandroid/icu/impl/number/MutablePatternModifier;->createConstantModifier(Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder;)Landroid/icu/impl/number/ConstantMultiFieldModifier;
-HSPLandroid/icu/impl/number/MutablePatternModifier;->createImmutable()Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;
-HSPLandroid/icu/impl/number/MutablePatternModifier;->getPrefixLength()I
-HSPLandroid/icu/impl/number/MutablePatternModifier;->getSymbol(I)Ljava/lang/CharSequence;
-HSPLandroid/icu/impl/number/MutablePatternModifier;->insertPrefix(Landroid/icu/impl/FormattedStringBuilder;I)I
-HSPLandroid/icu/impl/number/MutablePatternModifier;->insertSuffix(Landroid/icu/impl/FormattedStringBuilder;I)I
-HSPLandroid/icu/impl/number/MutablePatternModifier;->needsPlurals()Z
-HSPLandroid/icu/impl/number/MutablePatternModifier;->prepareAffix(Z)V
-HSPLandroid/icu/impl/number/MutablePatternModifier;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;
-HSPLandroid/icu/impl/number/MutablePatternModifier;->setNumberProperties(Landroid/icu/impl/number/Modifier$Signum;Landroid/icu/impl/StandardPlural;)V
-HSPLandroid/icu/impl/number/MutablePatternModifier;->setPatternAttributes(Landroid/icu/number/NumberFormatter$SignDisplay;ZZ)V
-HSPLandroid/icu/impl/number/MutablePatternModifier;->setPatternInfo(Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/text/NumberFormat$Field;)V
-HSPLandroid/icu/impl/number/MutablePatternModifier;->setSymbols(Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/util/Currency;Landroid/icu/number/NumberFormatter$UnitWidth;Landroid/icu/text/PluralRules;)V
-HSPLandroid/icu/impl/number/Padder;->isValid()Z
-HSPLandroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;-><init>(Ljava/lang/String;)V
-HSPLandroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;-><init>(Ljava/lang/String;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo-IA;)V
-HSPLandroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;->getEndpoints(I)J
-HSPLandroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;->getString(I)Ljava/lang/String;
-HSPLandroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;-><init>()V
-HSPLandroid/icu/impl/number/PatternStringParser$ParserState;-><init>(Ljava/lang/String;)V
-HSPLandroid/icu/impl/number/PatternStringParser$ParserState;->next()I
-HSPLandroid/icu/impl/number/PatternStringParser$ParserState;->peek()I
-HSPLandroid/icu/impl/number/PatternStringParser;->consumeAffix(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)J
-HSPLandroid/icu/impl/number/PatternStringParser;->consumeExponent(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V
-HSPLandroid/icu/impl/number/PatternStringParser;->consumeFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V
-HSPLandroid/icu/impl/number/PatternStringParser;->consumeFractionFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V
-HSPLandroid/icu/impl/number/PatternStringParser;->consumeIntegerFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V+]Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParserState;
-HSPLandroid/icu/impl/number/PatternStringParser;->consumeLiteral(Landroid/icu/impl/number/PatternStringParser$ParserState;)V
-HSPLandroid/icu/impl/number/PatternStringParser;->consumePadding(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;Landroid/icu/impl/number/Padder$PadPosition;)V
-HSPLandroid/icu/impl/number/PatternStringParser;->consumePattern(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;)V
-HSPLandroid/icu/impl/number/PatternStringParser;->consumeSubpattern(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V
-HSPLandroid/icu/impl/number/PatternStringParser;->parseToExistingProperties(Ljava/lang/String;Landroid/icu/impl/number/DecimalFormatProperties;I)V
-HSPLandroid/icu/impl/number/PatternStringParser;->parseToExistingPropertiesImpl(Ljava/lang/String;Landroid/icu/impl/number/DecimalFormatProperties;I)V
-HSPLandroid/icu/impl/number/PatternStringParser;->parseToPatternInfo(Ljava/lang/String;)Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;
-HSPLandroid/icu/impl/number/PatternStringParser;->patternInfoToProperties(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;I)V
-HSPLandroid/icu/impl/number/PatternStringUtils$PatternSignType;-><clinit>()V
-HSPLandroid/icu/impl/number/PatternStringUtils$PatternSignType;-><init>(Ljava/lang/String;I)V
-HSPLandroid/icu/impl/number/PatternStringUtils$PatternSignType;->values()[Landroid/icu/impl/number/PatternStringUtils$PatternSignType;
-HSPLandroid/icu/impl/number/PatternStringUtils;->patternInfoToStringBuilder(Landroid/icu/impl/number/AffixPatternProvider;ZLandroid/icu/impl/number/PatternStringUtils$PatternSignType;ZLandroid/icu/impl/StandardPlural;ZLjava/lang/StringBuilder;)V
-HSPLandroid/icu/impl/number/PatternStringUtils;->propertiesToPatternString(Landroid/icu/impl/number/DecimalFormatProperties;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/PropertiesAffixPatternProvider;]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/PatternStringUtils;->resolveSignDisplay(Landroid/icu/number/NumberFormatter$SignDisplay;Landroid/icu/impl/number/Modifier$Signum;)Landroid/icu/impl/number/PatternStringUtils$PatternSignType;
-HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;-><init>(Landroid/icu/impl/number/DecimalFormatProperties;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->charAt(II)C
-HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->containsSymbolType(I)Z
-HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->currencyAsDecimal()Z
-HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->forProperties(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/AffixPatternProvider;
-HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->getString(I)Ljava/lang/String;
-HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->hasBody()Z
-HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->hasCurrencySign()Z
-HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->hasNegativeSubpattern()Z+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->length(I)I
-HSPLandroid/icu/impl/number/RoundingUtils;->getMathContextOr34Digits(Landroid/icu/impl/number/DecimalFormatProperties;)Ljava/math/MathContext;
-HSPLandroid/icu/impl/number/RoundingUtils;->getMathContextOrUnlimited(Landroid/icu/impl/number/DecimalFormatProperties;)Ljava/math/MathContext;
-HSPLandroid/icu/impl/number/RoundingUtils;->getRoundingDirection(ZZIILjava/lang/Object;)Z
-HSPLandroid/icu/impl/number/RoundingUtils;->roundsAtMidpoint(I)Z
-HSPLandroid/icu/impl/number/RoundingUtils;->scaleFromProperties(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/number/Scale;
-HSPLandroid/icu/impl/number/SimpleModifier;-><init>(Ljava/lang/String;Ljava/text/Format$Field;ZLandroid/icu/impl/number/Modifier$Parameters;)V
-HSPLandroid/icu/impl/number/SimpleModifier;->apply(Landroid/icu/impl/FormattedStringBuilder;II)I
-HSPLandroid/icu/impl/number/parse/AffixMatcher$1;->compare(Landroid/icu/impl/number/parse/AffixMatcher;Landroid/icu/impl/number/parse/AffixMatcher;)I
-HSPLandroid/icu/impl/number/parse/AffixMatcher$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-HSPLandroid/icu/impl/number/parse/AffixMatcher;-><init>(Landroid/icu/impl/number/parse/AffixPatternMatcher;Landroid/icu/impl/number/parse/AffixPatternMatcher;I)V
-HSPLandroid/icu/impl/number/parse/AffixMatcher;->createMatchers(Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/parse/NumberParserImpl;Landroid/icu/impl/number/parse/AffixTokenMatcherFactory;Landroid/icu/impl/number/parse/IgnorablesMatcher;I)V
-HSPLandroid/icu/impl/number/parse/AffixMatcher;->getInstance(Landroid/icu/impl/number/parse/AffixPatternMatcher;Landroid/icu/impl/number/parse/AffixPatternMatcher;I)Landroid/icu/impl/number/parse/AffixMatcher;
-HSPLandroid/icu/impl/number/parse/AffixMatcher;->isInteresting(Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/parse/IgnorablesMatcher;I)Z
-HSPLandroid/icu/impl/number/parse/AffixMatcher;->length(Landroid/icu/impl/number/parse/AffixPatternMatcher;)I
-HSPLandroid/icu/impl/number/parse/AffixMatcher;->match(Landroid/icu/impl/StringSegment;Landroid/icu/impl/number/parse/ParsedNumber;)Z
-HSPLandroid/icu/impl/number/parse/AffixMatcher;->matched(Landroid/icu/impl/number/parse/AffixPatternMatcher;Ljava/lang/String;)Z
-HSPLandroid/icu/impl/number/parse/AffixMatcher;->postProcess(Landroid/icu/impl/number/parse/ParsedNumber;)V
-HSPLandroid/icu/impl/number/parse/AffixMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z
-HSPLandroid/icu/impl/number/parse/AffixPatternMatcher;-><init>(Ljava/lang/String;)V
-HSPLandroid/icu/impl/number/parse/AffixPatternMatcher;->consumeToken(I)V
-HSPLandroid/icu/impl/number/parse/AffixPatternMatcher;->equals(Ljava/lang/Object;)Z
-HSPLandroid/icu/impl/number/parse/AffixPatternMatcher;->fromAffixPattern(Ljava/lang/String;Landroid/icu/impl/number/parse/AffixTokenMatcherFactory;I)Landroid/icu/impl/number/parse/AffixPatternMatcher;
-HSPLandroid/icu/impl/number/parse/AffixPatternMatcher;->getPattern()Ljava/lang/String;
-HSPLandroid/icu/impl/number/parse/AffixTokenMatcherFactory;-><init>()V
-HSPLandroid/icu/impl/number/parse/AffixTokenMatcherFactory;->minusSign()Landroid/icu/impl/number/parse/MinusSignMatcher;
-HSPLandroid/icu/impl/number/parse/DecimalMatcher;-><init>(Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/Grouper;I)V
-HSPLandroid/icu/impl/number/parse/DecimalMatcher;->getInstance(Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/Grouper;I)Landroid/icu/impl/number/parse/DecimalMatcher;
-HSPLandroid/icu/impl/number/parse/DecimalMatcher;->match(Landroid/icu/impl/StringSegment;Landroid/icu/impl/number/parse/ParsedNumber;)Z
-HSPLandroid/icu/impl/number/parse/DecimalMatcher;->match(Landroid/icu/impl/StringSegment;Landroid/icu/impl/number/parse/ParsedNumber;I)Z+]Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/number/parse/ParsedNumber;Landroid/icu/impl/number/parse/ParsedNumber;]Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;]Landroid/icu/impl/StringSegment;Landroid/icu/impl/StringSegment;
-HSPLandroid/icu/impl/number/parse/DecimalMatcher;->postProcess(Landroid/icu/impl/number/parse/ParsedNumber;)V
-HSPLandroid/icu/impl/number/parse/DecimalMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z
-HSPLandroid/icu/impl/number/parse/DecimalMatcher;->validateGroup(IIZ)Z
-HSPLandroid/icu/impl/number/parse/IgnorablesMatcher;->getInstance(I)Landroid/icu/impl/number/parse/IgnorablesMatcher;
-HSPLandroid/icu/impl/number/parse/InfinityMatcher;->getInstance(Landroid/icu/text/DecimalFormatSymbols;)Landroid/icu/impl/number/parse/InfinityMatcher;
-HSPLandroid/icu/impl/number/parse/MinusSignMatcher;->getInstance(Landroid/icu/text/DecimalFormatSymbols;Z)Landroid/icu/impl/number/parse/MinusSignMatcher;
-HSPLandroid/icu/impl/number/parse/NanMatcher;->getInstance(Landroid/icu/text/DecimalFormatSymbols;I)Landroid/icu/impl/number/parse/NanMatcher;
-HSPLandroid/icu/impl/number/parse/NumberParserImpl;-><init>(I)V
-HSPLandroid/icu/impl/number/parse/NumberParserImpl;->addMatcher(Landroid/icu/impl/number/parse/NumberParseMatcher;)V
-HSPLandroid/icu/impl/number/parse/NumberParserImpl;->addMatchers(Ljava/util/Collection;)V
-HSPLandroid/icu/impl/number/parse/NumberParserImpl;->createParserFromProperties(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;Z)Landroid/icu/impl/number/parse/NumberParserImpl;+]Landroid/icu/impl/number/Grouper;Landroid/icu/impl/number/Grouper;]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/PropertiesAffixPatternProvider;]Landroid/icu/impl/number/parse/NumberParserImpl;Landroid/icu/impl/number/parse/NumberParserImpl;]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties;
-HSPLandroid/icu/impl/number/parse/NumberParserImpl;->freeze()V
-HSPLandroid/icu/impl/number/parse/NumberParserImpl;->getParseFlags()I
-HSPLandroid/icu/impl/number/parse/NumberParserImpl;->parse(Ljava/lang/String;IZLandroid/icu/impl/number/parse/ParsedNumber;)V
-HSPLandroid/icu/impl/number/parse/NumberParserImpl;->parseGreedy(Landroid/icu/impl/StringSegment;Landroid/icu/impl/number/parse/ParsedNumber;)V
-HSPLandroid/icu/impl/number/parse/ParsedNumber;-><init>()V
-HSPLandroid/icu/impl/number/parse/ParsedNumber;->clear()V
-HSPLandroid/icu/impl/number/parse/ParsedNumber;->getNumber(I)Ljava/lang/Number;
-HSPLandroid/icu/impl/number/parse/ParsedNumber;->postProcess()V
-HSPLandroid/icu/impl/number/parse/ParsedNumber;->seenNumber()Z
-HSPLandroid/icu/impl/number/parse/ParsedNumber;->setCharsConsumed(Landroid/icu/impl/StringSegment;)V
-HSPLandroid/icu/impl/number/parse/ParsedNumber;->success()Z
-HSPLandroid/icu/impl/number/parse/RequireAffixValidator;-><init>()V
-HSPLandroid/icu/impl/number/parse/RequireAffixValidator;->postProcess(Landroid/icu/impl/number/parse/ParsedNumber;)V
-HSPLandroid/icu/impl/number/parse/RequireNumberValidator;-><init>()V
-HSPLandroid/icu/impl/number/parse/RequireNumberValidator;->postProcess(Landroid/icu/impl/number/parse/ParsedNumber;)V
-HSPLandroid/icu/impl/number/parse/ScientificMatcher;-><init>(Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/Grouper;)V
-HSPLandroid/icu/impl/number/parse/ScientificMatcher;->getInstance(Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/Grouper;)Landroid/icu/impl/number/parse/ScientificMatcher;
-HSPLandroid/icu/impl/number/parse/ScientificMatcher;->minusSignSet()Landroid/icu/text/UnicodeSet;
-HSPLandroid/icu/impl/number/parse/ScientificMatcher;->plusSignSet()Landroid/icu/text/UnicodeSet;
-HSPLandroid/icu/impl/number/parse/ScientificMatcher;->postProcess(Landroid/icu/impl/number/parse/ParsedNumber;)V
-HSPLandroid/icu/impl/number/parse/ScientificMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z
-HSPLandroid/icu/impl/number/parse/SeriesMatcher;-><init>()V
-HSPLandroid/icu/impl/number/parse/SeriesMatcher;->addMatcher(Landroid/icu/impl/number/parse/NumberParseMatcher;)V
-HSPLandroid/icu/impl/number/parse/SeriesMatcher;->freeze()V
-HSPLandroid/icu/impl/number/parse/SeriesMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z
-HSPLandroid/icu/impl/number/parse/SymbolMatcher;->postProcess(Landroid/icu/impl/number/parse/ParsedNumber;)V
-HSPLandroid/icu/impl/number/parse/SymbolMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z
-HSPLandroid/icu/impl/number/parse/ValidationMatcher;-><init>()V
-HSPLandroid/icu/impl/number/parse/ValidationMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z
-HSPLandroid/icu/impl/number/range/StandardPluralRanges$PluralRangeSetsDataSink;-><clinit>()V
-HSPLandroid/icu/impl/number/range/StandardPluralRanges$PluralRangeSetsDataSink;-><init>(Ljava/util/Map;)V
-HSPLandroid/icu/impl/number/range/StandardPluralRanges$PluralRangeSetsDataSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
-HSPLandroid/icu/impl/number/range/StandardPluralRanges$PluralRangesDataSink;-><init>(Landroid/icu/impl/number/range/StandardPluralRanges;)V
-HSPLandroid/icu/impl/number/range/StandardPluralRanges$PluralRangesDataSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
-HSPLandroid/icu/impl/number/range/StandardPluralRanges;-><init>()V
-HSPLandroid/icu/impl/number/range/StandardPluralRanges;->addPluralRange(Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;)V
-HSPLandroid/icu/impl/number/range/StandardPluralRanges;->forSet(Ljava/lang/String;)Landroid/icu/impl/number/range/StandardPluralRanges;
-HSPLandroid/icu/impl/number/range/StandardPluralRanges;->getLanguageToSet()Ljava/util/Map;
-HSPLandroid/icu/impl/number/range/StandardPluralRanges;->getPluralRangesData(Ljava/lang/String;Landroid/icu/impl/number/range/StandardPluralRanges;)V
-HSPLandroid/icu/impl/number/range/StandardPluralRanges;->getSetForLocale(Landroid/icu/util/ULocale;)Ljava/lang/String;
-HSPLandroid/icu/impl/number/range/StandardPluralRanges;->setCapacity(I)V
-HSPLandroid/icu/lang/UCharacter;->codePointAt(Ljava/lang/CharSequence;I)I
-HSPLandroid/icu/lang/UCharacter;->digit(I)I
-HSPLandroid/icu/lang/UCharacter;->foldCase(II)I
-HSPLandroid/icu/lang/UCharacter;->foldCase(IZ)I
-HSPLandroid/icu/lang/UCharacter;->getPropertyValueEnumNoThrow(ILjava/lang/CharSequence;)I
-HSPLandroid/icu/lang/UCharacter;->getType(I)I
-HSPLandroid/icu/lang/UCharacter;->isDigit(I)Z
-HSPLandroid/icu/lang/UCharacter;->isLowerCase(I)Z
-HSPLandroid/icu/lang/UScript$ScriptMetadata;->getScriptProps(I)I
-HSPLandroid/icu/lang/UScript;->getCodeFromName(Ljava/lang/String;)I
-HSPLandroid/icu/lang/UScript;->isRightToLeft(I)Z
-HSPLandroid/icu/number/CurrencyPrecision;->withCurrency(Landroid/icu/util/Currency;)Landroid/icu/number/Precision;
-HSPLandroid/icu/number/FormattedNumber;->appendTo(Ljava/lang/Appendable;)Ljava/lang/Appendable;
-HSPLandroid/icu/number/FractionPrecision;-><init>()V
-HSPLandroid/icu/number/IntegerWidth;-><init>(II)V
-HSPLandroid/icu/number/IntegerWidth;->truncateAt(I)Landroid/icu/number/IntegerWidth;
-HSPLandroid/icu/number/IntegerWidth;->zeroFillTo(I)Landroid/icu/number/IntegerWidth;
-HSPLandroid/icu/number/LocalizedNumberFormatter;-><init>(Landroid/icu/number/NumberFormatterSettings;ILjava/lang/Object;)V
-HSPLandroid/icu/number/LocalizedNumberFormatter;->computeCompiled()Z+]Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;]Landroid/icu/number/LocalizedNumberFormatter;Landroid/icu/number/LocalizedNumberFormatter;]Ljava/lang/Long;Ljava/lang/Long;
-HSPLandroid/icu/number/LocalizedNumberFormatter;->create(ILjava/lang/Object;)Landroid/icu/number/LocalizedNumberFormatter;
-HSPLandroid/icu/number/LocalizedNumberFormatter;->create(ILjava/lang/Object;)Landroid/icu/number/NumberFormatterSettings;
-HSPLandroid/icu/number/LocalizedNumberFormatter;->format(D)Landroid/icu/number/FormattedNumber;
-HSPLandroid/icu/number/LocalizedNumberFormatter;->format(J)Landroid/icu/number/FormattedNumber;
-HSPLandroid/icu/number/LocalizedNumberFormatter;->format(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/number/FormattedNumber;
-HSPLandroid/icu/number/LocalizedNumberFormatter;->formatImpl(Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;)Landroid/icu/impl/number/MicroProps;+]Landroid/icu/number/NumberFormatterImpl;Landroid/icu/number/NumberFormatterImpl;
-HSPLandroid/icu/number/LocalizedNumberFormatter;->getAffixImpl(ZZ)Ljava/lang/String;
-HSPLandroid/icu/number/NumberFormatter;->fromDecimalFormat(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/number/UnlocalizedNumberFormatter;
-HSPLandroid/icu/number/NumberFormatter;->with()Landroid/icu/number/UnlocalizedNumberFormatter;
-HSPLandroid/icu/number/NumberFormatterImpl;-><init>(Landroid/icu/impl/number/MacroProps;)V
-HSPLandroid/icu/number/NumberFormatterImpl;->format(Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;)Landroid/icu/impl/number/MicroProps;+]Landroid/icu/number/NumberFormatterImpl;Landroid/icu/number/NumberFormatterImpl;
-HSPLandroid/icu/number/NumberFormatterImpl;->formatStatic(Landroid/icu/impl/number/MacroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;)Landroid/icu/impl/number/MicroProps;
-HSPLandroid/icu/number/NumberFormatterImpl;->getPrefixSuffix(BLandroid/icu/impl/StandardPlural;Landroid/icu/impl/FormattedStringBuilder;)I
-HSPLandroid/icu/number/NumberFormatterImpl;->getPrefixSuffixImpl(Landroid/icu/impl/number/MicroPropsGenerator;BLandroid/icu/impl/FormattedStringBuilder;)I
-HSPLandroid/icu/number/NumberFormatterImpl;->getPrefixSuffixStatic(Landroid/icu/impl/number/MacroProps;BLandroid/icu/impl/StandardPlural;Landroid/icu/impl/FormattedStringBuilder;)I
-HSPLandroid/icu/number/NumberFormatterImpl;->macrosToMicroGenerator(Landroid/icu/impl/number/MacroProps;Landroid/icu/impl/number/MicroProps;Z)Landroid/icu/impl/number/MicroPropsGenerator;+]Landroid/icu/impl/number/MutablePatternModifier;Landroid/icu/impl/number/MutablePatternModifier;]Landroid/icu/text/NumberingSystem;Landroid/icu/text/NumberingSystem;]Landroid/icu/impl/number/Grouper;Landroid/icu/impl/number/Grouper;]Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/PropertiesAffixPatternProvider;]Landroid/icu/number/Precision;Landroid/icu/number/Precision$FractionRounderImpl;
-HSPLandroid/icu/number/NumberFormatterImpl;->preProcess(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;+]Landroid/icu/impl/number/MicroPropsGenerator;Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
-HSPLandroid/icu/number/NumberFormatterImpl;->preProcessUnsafe(Landroid/icu/impl/number/MacroProps;Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;
-HSPLandroid/icu/number/NumberFormatterImpl;->unitIsBaseUnit(Landroid/icu/util/MeasureUnit;)Z
-HSPLandroid/icu/number/NumberFormatterImpl;->unitIsCurrency(Landroid/icu/util/MeasureUnit;)Z
-HSPLandroid/icu/number/NumberFormatterImpl;->unitIsPercent(Landroid/icu/util/MeasureUnit;)Z
-HSPLandroid/icu/number/NumberFormatterImpl;->unitIsPermille(Landroid/icu/util/MeasureUnit;)Z
-HSPLandroid/icu/number/NumberFormatterImpl;->writeAffixes(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/FormattedStringBuilder;II)I+]Landroid/icu/impl/number/Padder;Landroid/icu/impl/number/Padder;]Landroid/icu/impl/number/Modifier;Landroid/icu/impl/number/ConstantMultiFieldModifier;,Landroid/icu/impl/number/ConstantAffixModifier;
-HSPLandroid/icu/number/NumberFormatterImpl;->writeFractionDigits(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;I)I+]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
-HSPLandroid/icu/number/NumberFormatterImpl;->writeIntegerDigits(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;I)I+]Landroid/icu/impl/number/Grouper;Landroid/icu/impl/number/Grouper;]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder;]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
-HSPLandroid/icu/number/NumberFormatterImpl;->writeNumber(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;I)I+]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
-HSPLandroid/icu/number/NumberFormatterSettings;-><init>(Landroid/icu/number/NumberFormatterSettings;ILjava/lang/Object;)V
-HSPLandroid/icu/number/NumberFormatterSettings;->macros(Landroid/icu/impl/number/MacroProps;)Landroid/icu/number/NumberFormatterSettings;
-HSPLandroid/icu/number/NumberFormatterSettings;->perUnit(Landroid/icu/util/MeasureUnit;)Landroid/icu/number/NumberFormatterSettings;
-HSPLandroid/icu/number/NumberFormatterSettings;->resolve()Landroid/icu/impl/number/MacroProps;
-HSPLandroid/icu/number/NumberFormatterSettings;->unit(Landroid/icu/util/MeasureUnit;)Landroid/icu/number/NumberFormatterSettings;
-HSPLandroid/icu/number/NumberFormatterSettings;->unitWidth(Landroid/icu/number/NumberFormatter$UnitWidth;)Landroid/icu/number/NumberFormatterSettings;
-HSPLandroid/icu/number/NumberPropertyMapper;->create(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/number/UnlocalizedNumberFormatter;
-HSPLandroid/icu/number/NumberPropertyMapper;->oldToNew(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/MacroProps;+]Ljava/math/MathContext;Ljava/math/MathContext;]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/PropertiesAffixPatternProvider;]Landroid/icu/number/Precision;Landroid/icu/number/Precision$FractionRounderImpl;,Landroid/icu/number/Precision$CurrencyRounderImpl;]Landroid/icu/number/IntegerWidth;Landroid/icu/number/IntegerWidth;]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties;]Landroid/icu/number/CurrencyPrecision;Landroid/icu/number/Precision$CurrencyRounderImpl;]Landroid/icu/util/Currency;Landroid/icu/util/Currency;
-HSPLandroid/icu/number/Precision$FractionRounderImpl;-><init>(II)V
-HSPLandroid/icu/number/Precision$FractionRounderImpl;->apply(Landroid/icu/impl/number/DecimalQuantity;)V+]Landroid/icu/number/Precision$FractionRounderImpl;Landroid/icu/number/Precision$FractionRounderImpl;]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
-HSPLandroid/icu/number/Precision$FractionRounderImpl;->createCopy()Landroid/icu/number/Precision$FractionRounderImpl;
-HSPLandroid/icu/number/Precision$FractionRounderImpl;->createCopy()Landroid/icu/number/Precision;
-HSPLandroid/icu/number/Precision;->-$$Nest$smgetDisplayMagnitudeFraction(I)I
-HSPLandroid/icu/number/Precision;->-$$Nest$smgetRoundingMagnitudeFraction(I)I
-HSPLandroid/icu/number/Precision;-><init>()V
-HSPLandroid/icu/number/Precision;->constructCurrency(Landroid/icu/util/Currency$CurrencyUsage;)Landroid/icu/number/CurrencyPrecision;
-HSPLandroid/icu/number/Precision;->constructFraction(II)Landroid/icu/number/FractionPrecision;
-HSPLandroid/icu/number/Precision;->constructFromCurrency(Landroid/icu/number/CurrencyPrecision;Landroid/icu/util/Currency;)Landroid/icu/number/Precision;
-HSPLandroid/icu/number/Precision;->getDisplayMagnitudeFraction(I)I
-HSPLandroid/icu/number/Precision;->getRoundingMagnitudeFraction(I)I
-HSPLandroid/icu/number/Precision;->setResolvedMinFraction(Landroid/icu/impl/number/DecimalQuantity;I)V+]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
-HSPLandroid/icu/number/Precision;->withLocaleData(Landroid/icu/util/Currency;)Landroid/icu/number/Precision;
-HSPLandroid/icu/number/Precision;->withMode(Ljava/math/MathContext;)Landroid/icu/number/Precision;
-HSPLandroid/icu/number/Scale;->applyTo(Landroid/icu/impl/number/DecimalQuantity;)V
-HSPLandroid/icu/number/Scale;->powerOfTen(I)Landroid/icu/number/Scale;
-HSPLandroid/icu/number/Scale;->withMathContext(Ljava/math/MathContext;)Landroid/icu/number/Scale;
-HSPLandroid/icu/number/UnlocalizedNumberFormatter;-><init>(Landroid/icu/number/NumberFormatterSettings;ILjava/lang/Object;)V
-HSPLandroid/icu/number/UnlocalizedNumberFormatter;->create(ILjava/lang/Object;)Landroid/icu/number/NumberFormatterSettings;
-HSPLandroid/icu/number/UnlocalizedNumberFormatter;->create(ILjava/lang/Object;)Landroid/icu/number/UnlocalizedNumberFormatter;
-HSPLandroid/icu/number/UnlocalizedNumberFormatter;->locale(Landroid/icu/util/ULocale;)Landroid/icu/number/LocalizedNumberFormatter;
-HSPLandroid/icu/platform/AndroidDataFiles;->generateIcuDataPath()Ljava/lang/String;
-HSPLandroid/icu/platform/AndroidDataFiles;->getI18nModuleFile(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/platform/AndroidDataFiles;->getI18nModuleIcuFile(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/platform/AndroidDataFiles;->getTimeZoneModuleFile(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/platform/AndroidDataFiles;->getTimeZoneModuleIcuFile(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/text/Bidi;-><init>(II)V
-HSPLandroid/icu/text/Bidi;->DirPropFlag(B)I
-HSPLandroid/icu/text/Bidi;->GetParaLevelAt(I)B
-HSPLandroid/icu/text/Bidi;->directionFromFlags()B
-HSPLandroid/icu/text/Bidi;->getCustomizedClass(I)I
-HSPLandroid/icu/text/Bidi;->getDirProps()V
-HSPLandroid/icu/text/Bidi;->getDirPropsMemory(I)V
-HSPLandroid/icu/text/Bidi;->getLevelsMemory(I)V
-HSPLandroid/icu/text/Bidi;->getMemory(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Class;ZI)Ljava/lang/Object;
-HSPLandroid/icu/text/Bidi;->resolveExplicitLevels()B
-HSPLandroid/icu/text/Bidi;->setPara([CB[B)V
-HSPLandroid/icu/text/Bidi;->verifyRange(III)V
-HSPLandroid/icu/text/BreakIterator$BreakIteratorCache;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/BreakIterator;)V
-HSPLandroid/icu/text/BreakIterator$BreakIteratorCache;->createBreakInstance()Landroid/icu/text/BreakIterator;
-HSPLandroid/icu/text/BreakIterator$BreakIteratorCache;->getLocale()Landroid/icu/util/ULocale;
-HSPLandroid/icu/text/BreakIterator;-><init>()V
-HSPLandroid/icu/text/BreakIterator;->clone()Ljava/lang/Object;
-HSPLandroid/icu/text/BreakIterator;->getBreakInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/BreakIterator;
-HSPLandroid/icu/text/BreakIterator;->getSentenceInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/BreakIterator;
-HSPLandroid/icu/text/BreakIterator;->getShim()Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;
-HSPLandroid/icu/text/BreakIterator;->getWordInstance(Ljava/util/Locale;)Landroid/icu/text/BreakIterator;
-HSPLandroid/icu/text/BreakIterator;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/BreakIterator;->setText(Ljava/lang/String;)V
-HSPLandroid/icu/text/BreakIteratorFactory;->createBreakInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/BreakIterator;
-HSPLandroid/icu/text/BreakIteratorFactory;->createBreakIterator(Landroid/icu/util/ULocale;I)Landroid/icu/text/BreakIterator;
-HSPLandroid/icu/text/CaseMap$Upper;->apply(Ljava/util/Locale;Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;
-HSPLandroid/icu/text/CaseMap;->getCaseLocale(Ljava/util/Locale;)I
-HSPLandroid/icu/text/CaseMap;->toUpper()Landroid/icu/text/CaseMap$Upper;
-HSPLandroid/icu/text/CollationKey;-><init>(Ljava/lang/String;Landroid/icu/text/RawCollationKey;)V
-HSPLandroid/icu/text/CollationKey;->getLength()I
-HSPLandroid/icu/text/CollationKey;->toByteArray()[B
-HSPLandroid/icu/text/Collator$ServiceShim;-><init>()V
-HSPLandroid/icu/text/Collator;-><init>()V
-HSPLandroid/icu/text/Collator;->clone()Ljava/lang/Object;
-HSPLandroid/icu/text/Collator;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/Collator;+]Landroid/icu/text/Collator$ServiceShim;Landroid/icu/text/CollatorServiceShim;]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;
-HSPLandroid/icu/text/Collator;->getInstance(Ljava/util/Locale;)Landroid/icu/text/Collator;
-HSPLandroid/icu/text/Collator;->getShim()Landroid/icu/text/Collator$ServiceShim;
-HSPLandroid/icu/text/CollatorServiceShim$CService$1CollatorFactory;->handleCreate(Landroid/icu/util/ULocale;ILandroid/icu/impl/ICUService;)Ljava/lang/Object;
-HSPLandroid/icu/text/CollatorServiceShim$CService;->validateFallbackLocale()Ljava/lang/String;
-HSPLandroid/icu/text/CollatorServiceShim;-><init>()V
-HSPLandroid/icu/text/CollatorServiceShim;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/Collator;
-HSPLandroid/icu/text/CollatorServiceShim;->makeInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/Collator;
-HSPLandroid/icu/text/ConstrainedFieldPosition;-><init>()V+]Landroid/icu/text/ConstrainedFieldPosition;Landroid/icu/text/ConstrainedFieldPosition;
-HSPLandroid/icu/text/ConstrainedFieldPosition;->constrainField(Ljava/text/Format$Field;)V
-HSPLandroid/icu/text/ConstrainedFieldPosition;->getField()Ljava/text/Format$Field;
-HSPLandroid/icu/text/ConstrainedFieldPosition;->getFieldValue()Ljava/lang/Object;
-HSPLandroid/icu/text/ConstrainedFieldPosition;->getLimit()I
-HSPLandroid/icu/text/ConstrainedFieldPosition;->getStart()I
-HSPLandroid/icu/text/ConstrainedFieldPosition;->matchesField(Ljava/text/Format$Field;Ljava/lang/Object;)Z+]Landroid/icu/text/ConstrainedFieldPosition$ConstraintType;Landroid/icu/text/ConstrainedFieldPosition$ConstraintType;
-HSPLandroid/icu/text/ConstrainedFieldPosition;->reset()V
-HSPLandroid/icu/text/ConstrainedFieldPosition;->setState(Ljava/text/Format$Field;Ljava/lang/Object;II)V
-HSPLandroid/icu/text/CurrencyDisplayNames;-><init>()V
-HSPLandroid/icu/text/CurrencyDisplayNames;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/CurrencyDisplayNames;
-HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyDigits;-><init>(II)V
-HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyFilter;-><init>(Ljava/lang/String;Ljava/lang/String;JJZ)V
-HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onDate(Ljava/util/Date;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onRegion(Ljava/lang/String;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withDate(Ljava/util/Date;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withRegion(Ljava/lang/String;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withTender()Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-HSPLandroid/icu/text/CurrencyMetaInfo;->getInstance()Landroid/icu/text/CurrencyMetaInfo;
-HSPLandroid/icu/text/DateFormat;-><init>()V
-HSPLandroid/icu/text/DateFormat;->format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
-HSPLandroid/icu/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String;
-HSPLandroid/icu/text/DateFormat;->format(Ljava/util/Date;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
-HSPLandroid/icu/text/DateFormat;->get(IILandroid/icu/util/ULocale;Landroid/icu/util/Calendar;)Landroid/icu/text/DateFormat;
-HSPLandroid/icu/text/DateFormat;->getCalendar()Landroid/icu/util/Calendar;
-HSPLandroid/icu/text/DateFormat;->getContext(Landroid/icu/text/DisplayContext$Type;)Landroid/icu/text/DisplayContext;
-HSPLandroid/icu/text/DateFormat;->getDateInstance(ILandroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
-HSPLandroid/icu/text/DateFormat;->getInstanceForSkeleton(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
-HSPLandroid/icu/text/DateFormat;->getInstanceForSkeleton(Ljava/lang/String;Ljava/util/Locale;)Landroid/icu/text/DateFormat;
-HSPLandroid/icu/text/DateFormat;->getPatternInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
-HSPLandroid/icu/text/DateFormat;->getTimeInstance(ILandroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
-HSPLandroid/icu/text/DateFormat;->setCalendar(Landroid/icu/util/Calendar;)V
-HSPLandroid/icu/text/DateFormat;->setContext(Landroid/icu/text/DisplayContext;)V
-HSPLandroid/icu/text/DateFormat;->setTimeZone(Landroid/icu/util/TimeZone;)V
-HSPLandroid/icu/text/DateFormatSymbols$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/text/DateFormatSymbols$1;->createInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols;
-HSPLandroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols;->-$$Nest$fgetdfs(Landroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols;)Landroid/icu/text/DateFormatSymbols;
-HSPLandroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols;-><init>(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V
-HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink;-><init>()V
-HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink;->preEnumerate(Ljava/lang/String;)V
-HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink;->processAliasFromValue(Ljava/lang/String;Landroid/icu/impl/UResource$Value;)Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
-HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink;->processResource(Ljava/lang/String;Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
-HSPLandroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->values()[Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-HSPLandroid/icu/text/DateFormatSymbols;-><init>(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/DateFormatSymbols;-><init>(Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/DateFormatSymbols;-><init>(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;Landroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols;)V
-HSPLandroid/icu/text/DateFormatSymbols;-><init>(Ljava/lang/Class;Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/DateFormatSymbols;-><init>(Ljava/lang/Class;Ljava/util/Locale;)V
-HSPLandroid/icu/text/DateFormatSymbols;->duplicate([Ljava/lang/String;)[Ljava/lang/String;
-HSPLandroid/icu/text/DateFormatSymbols;->getAmPmStrings()[Ljava/lang/String;
-HSPLandroid/icu/text/DateFormatSymbols;->getEras()[Ljava/lang/String;
-HSPLandroid/icu/text/DateFormatSymbols;->getExtendedInstance(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols;
-HSPLandroid/icu/text/DateFormatSymbols;->getMonths(II)[Ljava/lang/String;
-HSPLandroid/icu/text/DateFormatSymbols;->getWeekdays(II)[Ljava/lang/String;
-HSPLandroid/icu/text/DateFormatSymbols;->initializeData(Landroid/icu/text/DateFormatSymbols;)V
-HSPLandroid/icu/text/DateFormatSymbols;->initializeData(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V
-HSPLandroid/icu/text/DateFormatSymbols;->initializeData(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;Landroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols;)V
-HSPLandroid/icu/text/DateFormatSymbols;->initializeData(Landroid/icu/util/ULocale;Ljava/lang/String;)V
-HSPLandroid/icu/text/DateFormatSymbols;->loadDayPeriodStrings(Ljava/util/Map;)[Ljava/lang/String;
-HSPLandroid/icu/text/DateFormatSymbols;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/DateFormatSymbols;->setTimeSeparatorString(Ljava/lang/String;)V
-HSPLandroid/icu/text/DateIntervalFormat;-><init>(Ljava/lang/String;Landroid/icu/util/ULocale;Landroid/icu/text/SimpleDateFormat;)V
-HSPLandroid/icu/text/DateIntervalFormat;->adjustFieldWidth(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZ)Ljava/lang/String;
-HSPLandroid/icu/text/DateIntervalFormat;->concatSingleDate2TimeInterval(Ljava/lang/String;Ljava/lang/String;ILjava/util/Map;)V
-HSPLandroid/icu/text/DateIntervalFormat;->format(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
-HSPLandroid/icu/text/DateIntervalFormat;->formatImpl(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Landroid/icu/text/DateIntervalFormat$FormatOutput;Ljava/util/List;)Ljava/lang/StringBuffer;
-HSPLandroid/icu/text/DateIntervalFormat;->genIntervalPattern(ILjava/lang/String;Ljava/lang/String;ILjava/util/Map;)Landroid/icu/text/DateIntervalFormat$SkeletonAndItsBestMatch;
-HSPLandroid/icu/text/DateIntervalFormat;->genSeparateDateTimePtn(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Landroid/icu/text/DateTimePatternGenerator;)Z
-HSPLandroid/icu/text/DateIntervalFormat;->getConcatenationPattern(Landroid/icu/util/ULocale;)Ljava/lang/String;
-HSPLandroid/icu/text/DateIntervalFormat;->getDateTimeSkeleton(Ljava/lang/String;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;)V
-HSPLandroid/icu/text/DateIntervalFormat;->getInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateIntervalFormat;
-HSPLandroid/icu/text/DateIntervalFormat;->initializeIntervalPattern(Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/util/Map;
-HSPLandroid/icu/text/DateIntervalFormat;->initializePattern(Landroid/icu/impl/ICUCache;)V
-HSPLandroid/icu/text/DateIntervalFormat;->normalizeHourMetacharacters(Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/lang/String;
-HSPLandroid/icu/text/DateIntervalFormat;->setTimeZone(Landroid/icu/util/TimeZone;)V
-HSPLandroid/icu/text/DateIntervalInfo$DateIntervalSink;->processSkeletonTable(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-HSPLandroid/icu/text/DateIntervalInfo$DateIntervalSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
-HSPLandroid/icu/text/DateIntervalInfo$DateIntervalSink;->validateAndProcessPatternLetter(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
-HSPLandroid/icu/text/DateIntervalInfo;->clone()Ljava/lang/Object;
-HSPLandroid/icu/text/DateIntervalInfo;->cloneUnfrozenDII()Ljava/lang/Object;
-HSPLandroid/icu/text/DateIntervalInfo;->freeze()Landroid/icu/text/DateIntervalInfo;
-HSPLandroid/icu/text/DateIntervalInfo;->getBestSkeleton(Ljava/lang/String;)Landroid/icu/text/DateIntervalFormat$BestMatchInfo;
-HSPLandroid/icu/text/DateIntervalInfo;->getDefaultOrder()Z
-HSPLandroid/icu/text/DateIntervalInfo;->getIntervalPattern(Ljava/lang/String;I)Landroid/icu/text/DateIntervalInfo$PatternInfo;
-HSPLandroid/icu/text/DateIntervalInfo;->initializeData(Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/DateIntervalInfo;->parseSkeleton(Ljava/lang/String;[I)V
-HSPLandroid/icu/text/DateIntervalInfo;->setFallbackIntervalPattern(Ljava/lang/String;)V
-HSPLandroid/icu/text/DateIntervalInfo;->setIntervalPatternInternally(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/icu/text/DateIntervalInfo$PatternInfo;
-HSPLandroid/icu/text/DateIntervalInfo;->setup(Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/DateIntervalInfo;->splitPatternInto2Part(Ljava/lang/String;)I
-HSPLandroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink;-><init>(Landroid/icu/text/DateTimePatternGenerator;)V
-HSPLandroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
-HSPLandroid/icu/text/DateTimePatternGenerator$AppendItemNamesSink;-><init>(Landroid/icu/text/DateTimePatternGenerator;)V
-HSPLandroid/icu/text/DateTimePatternGenerator$AppendItemNamesSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
-HSPLandroid/icu/text/DateTimePatternGenerator$AvailableFormatsSink;-><init>(Landroid/icu/text/DateTimePatternGenerator;Landroid/icu/text/DateTimePatternGenerator$PatternInfo;)V
-HSPLandroid/icu/text/DateTimePatternGenerator$AvailableFormatsSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
-HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;-><init>()V
-HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->compareTo(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)I
-HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->compareTo(Ljava/lang/Object;)I
-HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->equals(Ljava/lang/Object;)Z
-HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->fieldIsNumeric(I)Z
-HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getBasePattern()Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getDistance(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;)I
-HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getFieldMask()I
-HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->set(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$FormatParser;Z)Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/text/DateTimePatternGenerator$VariableField;Landroid/icu/text/DateTimePatternGenerator$VariableField;]Landroid/icu/text/DateTimePatternGenerator$FormatParser;Landroid/icu/text/DateTimePatternGenerator$FormatParser;]Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;
-HSPLandroid/icu/text/DateTimePatternGenerator$DisplayWidth;->cldrKey()Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;-><init>()V
-HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;->addExtra(I)V
-HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;->addMissing(I)V
-HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;->clear()V
-HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;->setTo(Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;)V
-HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;-><init>()V
-HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;->addVariable(Ljava/lang/StringBuffer;Z)V
-HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;->getItems()Ljava/util/List;
-HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;->quoteLiteral(Ljava/lang/String;)Ljava/lang/Object;
-HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;->set(Ljava/lang/String;)Landroid/icu/text/DateTimePatternGenerator$FormatParser;
-HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;->set(Ljava/lang/String;Z)Landroid/icu/text/DateTimePatternGenerator$FormatParser;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;]Landroid/icu/impl/PatternTokenizer;Landroid/icu/impl/PatternTokenizer;
-HSPLandroid/icu/text/DateTimePatternGenerator$PatternInfo;-><init>()V
-HSPLandroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;-><init>(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)V
-HSPLandroid/icu/text/DateTimePatternGenerator$PatternWithSkeletonFlag;-><init>(Ljava/lang/String;Z)V
-HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;-><init>()V
-HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->appendFieldTo(ILjava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
-HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->appendTo(Ljava/lang/StringBuilder;ZZ)Ljava/lang/StringBuilder;
-HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->clear()V
-HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->compareTo(Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;)I
-HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->getFieldChar(I)C
-HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->getFieldLength(I)I
-HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->isFieldEmpty(I)Z
-HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->populate(ICI)V
-HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->populate(ILjava/lang/String;)V
-HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->toString(Z)Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator$VariableField;-><init>(Ljava/lang/String;Z)V
-HSPLandroid/icu/text/DateTimePatternGenerator$VariableField;->getCanonicalIndex()I
-HSPLandroid/icu/text/DateTimePatternGenerator$VariableField;->getType()I
-HSPLandroid/icu/text/DateTimePatternGenerator$VariableField;->isNumeric()Z
-HSPLandroid/icu/text/DateTimePatternGenerator$VariableField;->toString()Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator;-><init>()V
-HSPLandroid/icu/text/DateTimePatternGenerator;->addCLDRData(Landroid/icu/text/DateTimePatternGenerator$PatternInfo;Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/DateTimePatternGenerator;->addCanonicalItems()V
-HSPLandroid/icu/text/DateTimePatternGenerator;->addICUPatterns(Landroid/icu/text/DateTimePatternGenerator$PatternInfo;Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/DateTimePatternGenerator;->addPattern(Ljava/lang/String;ZLandroid/icu/text/DateTimePatternGenerator$PatternInfo;)Landroid/icu/text/DateTimePatternGenerator;
-HSPLandroid/icu/text/DateTimePatternGenerator;->addPatternWithSkeleton(Ljava/lang/String;Ljava/lang/String;ZLandroid/icu/text/DateTimePatternGenerator$PatternInfo;)Landroid/icu/text/DateTimePatternGenerator;
-HSPLandroid/icu/text/DateTimePatternGenerator;->adjustFieldTypes(Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;Ljava/util/EnumSet;I)Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator;->checkFrozen()V
-HSPLandroid/icu/text/DateTimePatternGenerator;->clone()Ljava/lang/Object;
-HSPLandroid/icu/text/DateTimePatternGenerator;->cloneAsThawed()Landroid/icu/text/DateTimePatternGenerator;
-HSPLandroid/icu/text/DateTimePatternGenerator;->consumeShortTimePattern(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$PatternInfo;)V
-HSPLandroid/icu/text/DateTimePatternGenerator;->fillInMissing()V
-HSPLandroid/icu/text/DateTimePatternGenerator;->freeze()Landroid/icu/text/DateTimePatternGenerator;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getAllowedHourFormats(Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/DateTimePatternGenerator;->getAllowedHourFormatsLangCountry(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getAppendFormatNumber(Landroid/icu/impl/UResource$Key;)I
-HSPLandroid/icu/text/DateTimePatternGenerator;->getAppendItemFormat(I)Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getBestAppending(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;Ljava/util/EnumSet;I)Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getBestPattern(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getBestPattern(Ljava/lang/String;IZ)Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getBestPattern(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;I)Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getBestPattern(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;IZ)Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getBestRaw(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getCLDRFieldAndWidthNumber(Landroid/icu/impl/UResource$Key;)I+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Key;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getCalendarTypeToUse(Landroid/icu/util/ULocale;)Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getCanonicalIndex(Ljava/lang/String;Z)I+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getDateTimeFormat()Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getFieldDisplayName(ILandroid/icu/text/DateTimePatternGenerator$DisplayWidth;)Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getFilteredPattern(Landroid/icu/text/DateTimePatternGenerator$FormatParser;Ljava/util/BitSet;)Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getFrozenInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/DateTimePatternGenerator;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/DateTimePatternGenerator;
-HSPLandroid/icu/text/DateTimePatternGenerator;->getInstance(Ljava/util/Locale;)Landroid/icu/text/DateTimePatternGenerator;
-HSPLandroid/icu/text/DateTimePatternGenerator;->hackTimes(Landroid/icu/text/DateTimePatternGenerator$PatternInfo;Ljava/lang/String;)V
-HSPLandroid/icu/text/DateTimePatternGenerator;->initData(Landroid/icu/util/ULocale;Z)V
-HSPLandroid/icu/text/DateTimePatternGenerator;->isAvailableFormatSet(Ljava/lang/String;)Z
-HSPLandroid/icu/text/DateTimePatternGenerator;->isFrozen()Z
-HSPLandroid/icu/text/DateTimePatternGenerator;->mapSkeletonMetacharacters(Ljava/lang/String;Ljava/util/EnumSet;)Ljava/lang/String;
-HSPLandroid/icu/text/DateTimePatternGenerator;->setAppendItemFormat(ILjava/lang/String;)V
-HSPLandroid/icu/text/DateTimePatternGenerator;->setAvailableFormat(Ljava/lang/String;)V
-HSPLandroid/icu/text/DateTimePatternGenerator;->setDateTimeFormat(ILjava/lang/String;)V
-HSPLandroid/icu/text/DateTimePatternGenerator;->setDateTimeFormat(Ljava/lang/String;)V
-HSPLandroid/icu/text/DateTimePatternGenerator;->setDateTimeFromCalendar(Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/DateTimePatternGenerator;->setDecimal(Ljava/lang/String;)V
-HSPLandroid/icu/text/DateTimePatternGenerator;->setDecimalSymbols(Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/DateTimePatternGenerator;->setFieldDisplayName(ILandroid/icu/text/DateTimePatternGenerator$DisplayWidth;Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;)V
-HSPLandroid/icu/text/DecimalFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;I)V
-HSPLandroid/icu/text/DecimalFormat;->clone()Ljava/lang/Object;
-HSPLandroid/icu/text/DecimalFormat;->fieldPositionHelper(Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;Ljava/text/FieldPosition;I)V+]Ljava/text/FieldPosition;Ljava/text/DontCareFieldPosition;]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
-HSPLandroid/icu/text/DecimalFormat;->format(DLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;+]Landroid/icu/number/LocalizedNumberFormatter;Landroid/icu/number/LocalizedNumberFormatter;]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;
-HSPLandroid/icu/text/DecimalFormat;->format(JLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
-HSPLandroid/icu/text/DecimalFormat;->getDecimalFormatSymbols()Landroid/icu/text/DecimalFormatSymbols;
-HSPLandroid/icu/text/DecimalFormat;->getMaximumFractionDigits()I
-HSPLandroid/icu/text/DecimalFormat;->getMaximumIntegerDigits()I
-HSPLandroid/icu/text/DecimalFormat;->getMinimumFractionDigits()I
-HSPLandroid/icu/text/DecimalFormat;->getMinimumIntegerDigits()I
-HSPLandroid/icu/text/DecimalFormat;->getNegativePrefix()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormat;->getNegativeSuffix()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormat;->getParser()Landroid/icu/impl/number/parse/NumberParserImpl;
-HSPLandroid/icu/text/DecimalFormat;->getPositivePrefix()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormat;->getPositiveSuffix()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormat;->isParseBigDecimal()Z
-HSPLandroid/icu/text/DecimalFormat;->isParseIntegerOnly()Z
-HSPLandroid/icu/text/DecimalFormat;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Number;
-HSPLandroid/icu/text/DecimalFormat;->refreshFormatter()V+]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/number/UnlocalizedNumberFormatter;Landroid/icu/number/UnlocalizedNumberFormatter;]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat;
-HSPLandroid/icu/text/DecimalFormat;->setCurrency(Landroid/icu/util/Currency;)V
-HSPLandroid/icu/text/DecimalFormat;->setDecimalSeparatorAlwaysShown(Z)V
-HSPLandroid/icu/text/DecimalFormat;->setGroupingUsed(Z)V
-HSPLandroid/icu/text/DecimalFormat;->setMaximumFractionDigits(I)V
-HSPLandroid/icu/text/DecimalFormat;->setMaximumIntegerDigits(I)V
-HSPLandroid/icu/text/DecimalFormat;->setMinimumFractionDigits(I)V
-HSPLandroid/icu/text/DecimalFormat;->setMinimumIntegerDigits(I)V
-HSPLandroid/icu/text/DecimalFormat;->setParseIntegerOnly(Z)V
-HSPLandroid/icu/text/DecimalFormat;->setParseStrictMode(Landroid/icu/impl/number/DecimalFormatProperties$ParseMode;)V
-HSPLandroid/icu/text/DecimalFormat;->setPropertiesFromPattern(Ljava/lang/String;I)V
-HSPLandroid/icu/text/DecimalFormat;->toNumberFormatter()Landroid/icu/number/LocalizedNumberFormatter;
-HSPLandroid/icu/text/DecimalFormat;->toPattern()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormatSymbols$1;->createInstance(Landroid/icu/util/ULocale;Ljava/lang/Void;)Landroid/icu/text/DecimalFormatSymbols$CacheData;
-HSPLandroid/icu/text/DecimalFormatSymbols$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/text/DecimalFormatSymbols$CacheData;-><init>(Landroid/icu/util/ULocale;[Ljava/lang/String;[Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols$DecFmtDataSink;-><init>([Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols$DecFmtDataSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->-$$Nest$sfgetSYMBOL_KEYS()[Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormatSymbols;->-$$Nest$smloadData(Landroid/icu/util/ULocale;)Landroid/icu/text/DecimalFormatSymbols$CacheData;
-HSPLandroid/icu/text/DecimalFormatSymbols;-><init>(Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;-><init>(Ljava/util/Locale;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->clone()Ljava/lang/Object;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getCachedLocaleData(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)Landroid/icu/text/DecimalFormatSymbols$CacheData;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getCodePointZero()I
-HSPLandroid/icu/text/DecimalFormatSymbols;->getCurrency()Landroid/icu/util/Currency;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getCurrencyPattern()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getCurrencySymbol()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getDecimalSeparator()C
-HSPLandroid/icu/text/DecimalFormatSymbols;->getDecimalSeparatorString()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getDigit()C
-HSPLandroid/icu/text/DecimalFormatSymbols;->getExponentSeparator()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getGroupingSeparator()C
-HSPLandroid/icu/text/DecimalFormatSymbols;->getGroupingSeparatorString()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getInfinity()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getInstance(Ljava/util/Locale;)Landroid/icu/text/DecimalFormatSymbols;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getInternationalCurrencySymbol()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getLocale()Ljava/util/Locale;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getLocale(Landroid/icu/util/ULocale$Type;)Landroid/icu/util/ULocale;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getLocalizedPatternSeparator(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getMinusSign()C
-HSPLandroid/icu/text/DecimalFormatSymbols;->getMinusSignString()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getMonetaryDecimalSeparator()C
-HSPLandroid/icu/text/DecimalFormatSymbols;->getMonetaryGroupingSeparator()C
-HSPLandroid/icu/text/DecimalFormatSymbols;->getNaN()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getPatternSeparator()C
-HSPLandroid/icu/text/DecimalFormatSymbols;->getPerMill()C
-HSPLandroid/icu/text/DecimalFormatSymbols;->getPerMillString()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getPercent()C
-HSPLandroid/icu/text/DecimalFormatSymbols;->getPercentString()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getPlusSignString()Ljava/lang/String;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getULocale()Landroid/icu/util/ULocale;
-HSPLandroid/icu/text/DecimalFormatSymbols;->getZeroDigit()C
-HSPLandroid/icu/text/DecimalFormatSymbols;->initSpacingInfo(Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->initialize(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)V+]Landroid/icu/impl/CurrencyData$CurrencyDisplayInfoProvider;Landroid/icu/impl/ICUCurrencyDisplayInfoProvider;]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/impl/CurrencyData$CurrencyDisplayInfo;Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;
-HSPLandroid/icu/text/DecimalFormatSymbols;->loadData(Landroid/icu/util/ULocale;)Landroid/icu/text/DecimalFormatSymbols$CacheData;
-HSPLandroid/icu/text/DecimalFormatSymbols;->setApproximatelySignString(Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setCurrency(Landroid/icu/util/Currency;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setCurrencyOrNull(Landroid/icu/util/Currency;Landroid/icu/impl/CurrencyData$CurrencyDisplayInfo;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setCurrencySymbol(Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setDecimalSeparator(C)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setDecimalSeparatorString(Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setDigit(C)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setDigitStrings([Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setExponentMultiplicationSign(Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setExponentSeparator(Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setGroupingSeparator(C)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setGroupingSeparatorString(Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setInfinity(Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setInternationalCurrencySymbol(Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setMinusSign(C)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setMinusSignString(Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setMonetaryDecimalSeparator(C)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setMonetaryDecimalSeparatorString(Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setMonetaryGroupingSeparator(C)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setMonetaryGroupingSeparatorString(Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setNaN(Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setPatternForCurrencySpacing(IZLjava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setPatternSeparator(C)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setPerMill(C)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setPerMillString(Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setPercent(C)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setPercentString(Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setPlusSign(C)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setPlusSignString(Ljava/lang/String;)V
-HSPLandroid/icu/text/DecimalFormatSymbols;->setZeroDigit(C)V
-HSPLandroid/icu/text/DisplayContext;->type()Landroid/icu/text/DisplayContext$Type;
-HSPLandroid/icu/text/Edits$Iterator;->next(Z)Z
-HSPLandroid/icu/text/Edits;-><init>()V
-HSPLandroid/icu/text/Edits;->addReplace(II)V
-HSPLandroid/icu/text/Edits;->addUnchanged(I)V
-HSPLandroid/icu/text/Edits;->append(I)V
-HSPLandroid/icu/text/Edits;->hasChanges()Z
-HSPLandroid/icu/text/Edits;->lastUnit()I
-HSPLandroid/icu/text/Edits;->reset()V
-HSPLandroid/icu/text/IDNA;->convertIDNToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer;
-HSPLandroid/icu/text/MeasureFormat;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$FormatWidth;Landroid/icu/text/NumberFormat;Landroid/icu/text/PluralRules;Landroid/icu/text/MeasureFormat$NumericFormatters;)V
-HSPLandroid/icu/text/MeasureFormat;->getNumberFormatter()Landroid/icu/number/LocalizedNumberFormatter;
-HSPLandroid/icu/text/MeasureFormat;->getUnitFormatterFromCache(ILandroid/icu/util/MeasureUnit;Landroid/icu/util/MeasureUnit;)Landroid/icu/number/LocalizedNumberFormatter;
-HSPLandroid/icu/text/Normalizer$NFKDMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
-HSPLandroid/icu/text/Normalizer2;->getNFCInstance()Landroid/icu/text/Normalizer2;
-HSPLandroid/icu/text/Normalizer2;->getNFDInstance()Landroid/icu/text/Normalizer2;
-HSPLandroid/icu/text/Normalizer2;->getNFKDInstance()Landroid/icu/text/Normalizer2;
-HSPLandroid/icu/text/Normalizer2;->normalize(Ljava/lang/CharSequence;)Ljava/lang/String;
-HSPLandroid/icu/text/Normalizer;->normalize(Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;)Ljava/lang/String;
-HSPLandroid/icu/text/NumberFormat;-><init>()V
-HSPLandroid/icu/text/NumberFormat;->clone()Ljava/lang/Object;
-HSPLandroid/icu/text/NumberFormat;->createInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat;
-HSPLandroid/icu/text/NumberFormat;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/NumberFormat;
-HSPLandroid/icu/text/NumberFormat;->getInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat;
-HSPLandroid/icu/text/NumberFormat;->getInstance(Ljava/util/Locale;I)Landroid/icu/text/NumberFormat;
-HSPLandroid/icu/text/NumberFormat;->getPattern(Landroid/icu/util/ULocale;I)Ljava/lang/String;
-HSPLandroid/icu/text/NumberFormat;->getPatternForStyle(Landroid/icu/util/ULocale;I)Ljava/lang/String;
-HSPLandroid/icu/text/NumberFormat;->getPatternForStyleAndNumberingSystem(Landroid/icu/util/ULocale;Ljava/lang/String;I)Ljava/lang/String;
-HSPLandroid/icu/text/NumberFormat;->getShim()Landroid/icu/text/NumberFormat$NumberFormatShim;
-HSPLandroid/icu/text/NumberFormatServiceShim$NFService$1RBNumberFormatFactory;->handleCreate(Landroid/icu/util/ULocale;ILandroid/icu/impl/ICUService;)Ljava/lang/Object;
-HSPLandroid/icu/text/NumberFormatServiceShim;->createInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat;
-HSPLandroid/icu/text/NumberingSystem$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/text/NumberingSystem$1;->createInstance(Ljava/lang/String;Landroid/icu/text/NumberingSystem$LocaleLookupData;)Landroid/icu/text/NumberingSystem;
-HSPLandroid/icu/text/NumberingSystem$LocaleLookupData;-><init>(Landroid/icu/util/ULocale;Ljava/lang/String;)V
-HSPLandroid/icu/text/NumberingSystem;->getDescription()Ljava/lang/String;
-HSPLandroid/icu/text/NumberingSystem;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/NumberingSystem;
-HSPLandroid/icu/text/NumberingSystem;->getInstanceByName(Ljava/lang/String;)Landroid/icu/text/NumberingSystem;
-HSPLandroid/icu/text/NumberingSystem;->getName()Ljava/lang/String;
-HSPLandroid/icu/text/NumberingSystem;->getRadix()I
-HSPLandroid/icu/text/NumberingSystem;->isAlgorithmic()Z
-HSPLandroid/icu/text/NumberingSystem;->isValidDigitString(Ljava/lang/String;)Z
-HSPLandroid/icu/text/NumberingSystem;->lookupInstanceByLocale(Landroid/icu/text/NumberingSystem$LocaleLookupData;)Landroid/icu/text/NumberingSystem;
-HSPLandroid/icu/text/PluralRules$1;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
-HSPLandroid/icu/text/PluralRules$AndConstraint;-><init>(Landroid/icu/text/PluralRules$Constraint;Landroid/icu/text/PluralRules$Constraint;)V
-HSPLandroid/icu/text/PluralRules$AndConstraint;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
-HSPLandroid/icu/text/PluralRules$BinaryConstraint;-><init>(Landroid/icu/text/PluralRules$Constraint;Landroid/icu/text/PluralRules$Constraint;)V
-HSPLandroid/icu/text/PluralRules$DecimalQuantitySamples;-><init>(Landroid/icu/text/PluralRules$SampleType;Ljava/util/Set;Z)V
-HSPLandroid/icu/text/PluralRules$DecimalQuantitySamples;->checkDecimal(Landroid/icu/text/PluralRules$SampleType;Landroid/icu/impl/number/DecimalQuantity;)V
-HSPLandroid/icu/text/PluralRules$DecimalQuantitySamples;->parse(Ljava/lang/String;)Landroid/icu/text/PluralRules$DecimalQuantitySamples;
-HSPLandroid/icu/text/PluralRules$DecimalQuantitySamplesRange;-><init>(Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity;)V
-HSPLandroid/icu/text/PluralRules$Factory;->getDefaultFactory()Landroid/icu/impl/PluralRulesLoader;
-HSPLandroid/icu/text/PluralRules$FixedDecimal;-><init>(D)V
-HSPLandroid/icu/text/PluralRules$FixedDecimal;-><init>(DI)V
-HSPLandroid/icu/text/PluralRules$FixedDecimal;-><init>(DIJ)V
-HSPLandroid/icu/text/PluralRules$FixedDecimal;-><init>(DIJI)V
-HSPLandroid/icu/text/PluralRules$FixedDecimal;-><init>(DIJII)V
-HSPLandroid/icu/text/PluralRules$FixedDecimal;-><init>(Landroid/icu/text/PluralRules$FixedDecimal;)V
-HSPLandroid/icu/text/PluralRules$FixedDecimal;->decimals(D)I
-HSPLandroid/icu/text/PluralRules$FixedDecimal;->getFractionalDigits(DI)I
-HSPLandroid/icu/text/PluralRules$FixedDecimal;->getOperand(Ljava/lang/String;)Landroid/icu/text/PluralRules$Operand;
-HSPLandroid/icu/text/PluralRules$FixedDecimal;->getPluralOperand(Landroid/icu/text/PluralRules$Operand;)D
-HSPLandroid/icu/text/PluralRules$FixedDecimal;->getVisibleDecimalDigitCount()I
-HSPLandroid/icu/text/PluralRules$FixedDecimal;->intValue()I
-HSPLandroid/icu/text/PluralRules$FixedDecimal;->isInfinite()Z
-HSPLandroid/icu/text/PluralRules$FixedDecimal;->isNaN()Z
-HSPLandroid/icu/text/PluralRules$FixedDecimal;->longValue()J
-HSPLandroid/icu/text/PluralRules$Operand;->valueOf(Ljava/lang/String;)Landroid/icu/text/PluralRules$Operand;
-HSPLandroid/icu/text/PluralRules$Operand;->values()[Landroid/icu/text/PluralRules$Operand;
-HSPLandroid/icu/text/PluralRules$RangeConstraint;-><init>(IZLandroid/icu/text/PluralRules$Operand;ZDD[J)V
-HSPLandroid/icu/text/PluralRules$RangeConstraint;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
-HSPLandroid/icu/text/PluralRules$Rule;->appliesTo(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
-HSPLandroid/icu/text/PluralRules$Rule;->getKeyword()Ljava/lang/String;
-HSPLandroid/icu/text/PluralRules$RuleList;-><init>()V
-HSPLandroid/icu/text/PluralRules$RuleList;->addRule(Landroid/icu/text/PluralRules$Rule;)Landroid/icu/text/PluralRules$RuleList;
-HSPLandroid/icu/text/PluralRules$RuleList;->finish()Landroid/icu/text/PluralRules$RuleList;
-HSPLandroid/icu/text/PluralRules$RuleList;->getKeywords()Ljava/util/Set;
-HSPLandroid/icu/text/PluralRules$RuleList;->select(Landroid/icu/text/PluralRules$IFixedDecimal;)Ljava/lang/String;
-HSPLandroid/icu/text/PluralRules$RuleList;->selectRule(Landroid/icu/text/PluralRules$IFixedDecimal;)Landroid/icu/text/PluralRules$Rule;
-HSPLandroid/icu/text/PluralRules$SimpleTokenizer;->split(Ljava/lang/String;)[Ljava/lang/String;
-HSPLandroid/icu/text/PluralRules;-><init>(Landroid/icu/text/PluralRules$RuleList;Landroid/icu/impl/number/range/StandardPluralRanges;)V
-HSPLandroid/icu/text/PluralRules;->forLocale(Landroid/icu/util/ULocale;)Landroid/icu/text/PluralRules;
-HSPLandroid/icu/text/PluralRules;->forLocale(Ljava/util/Locale;)Landroid/icu/text/PluralRules;
-HSPLandroid/icu/text/PluralRules;->isValidKeyword(Ljava/lang/String;)Z
-HSPLandroid/icu/text/PluralRules;->newInternal(Ljava/lang/String;Landroid/icu/impl/number/range/StandardPluralRanges;)Landroid/icu/text/PluralRules;
-HSPLandroid/icu/text/PluralRules;->nextToken([Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/text/PluralRules;->parseConstraint(Ljava/lang/String;)Landroid/icu/text/PluralRules$Constraint;
-HSPLandroid/icu/text/PluralRules;->parseDescription(Ljava/lang/String;)Landroid/icu/text/PluralRules;
-HSPLandroid/icu/text/PluralRules;->parseRule(Ljava/lang/String;)Landroid/icu/text/PluralRules$Rule;
-HSPLandroid/icu/text/PluralRules;->parseRuleChain(Ljava/lang/String;)Landroid/icu/text/PluralRules$RuleList;
-HSPLandroid/icu/text/PluralRules;->select(D)Ljava/lang/String;
-HSPLandroid/icu/text/PluralRules;->select(Landroid/icu/text/PluralRules$IFixedDecimal;)Ljava/lang/String;
-HSPLandroid/icu/text/RawCollationKey;-><init>(I)V
-HSPLandroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;->values()[Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;
-HSPLandroid/icu/text/RelativeDateTimeFormatter$Cache$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/text/RelativeDateTimeFormatter$Cache$1;->createInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;
-HSPLandroid/icu/text/RelativeDateTimeFormatter$Cache;->get(Landroid/icu/util/ULocale;)Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;
-HSPLandroid/icu/text/RelativeDateTimeFormatter$Direction;->values()[Landroid/icu/text/RelativeDateTimeFormatter$Direction;
-HSPLandroid/icu/text/RelativeDateTimeFormatter$Loader;->load()Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;
-HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->orNullFromString(Ljava/lang/CharSequence;)Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTableRelative(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTableRelativeTime(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTimeDetail(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTimeUnit(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->handleAlias(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
-HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->handlePlainDirection(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
-HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
-HSPLandroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;->values()[Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;
-HSPLandroid/icu/text/RelativeDateTimeFormatter$Style;->values()[Landroid/icu/text/RelativeDateTimeFormatter$Style;
-HSPLandroid/icu/text/RelativeDateTimeFormatter;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap;Ljava/lang/String;Landroid/icu/text/PluralRules;Landroid/icu/text/NumberFormat;Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/DisplayContext;Landroid/icu/text/BreakIterator;Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/RelativeDateTimeFormatter;->adjustForContext(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/text/RelativeDateTimeFormatter;->getInstance(Landroid/icu/util/ULocale;Landroid/icu/text/NumberFormat;Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/DisplayContext;)Landroid/icu/text/RelativeDateTimeFormatter;
-HSPLandroid/icu/text/RelativeDateTimeFormatter;->keyToDirection(Landroid/icu/impl/UResource$Key;)Landroid/icu/text/RelativeDateTimeFormatter$Direction;
-HSPLandroid/icu/text/ReplaceableString;-><init>(Ljava/lang/String;)V
-HSPLandroid/icu/text/ReplaceableString;->charAt(I)C
-HSPLandroid/icu/text/ReplaceableString;->getChars(II[CI)V
-HSPLandroid/icu/text/ReplaceableString;->length()I
-HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;-><init>(Landroid/icu/text/RuleBasedBreakIterator;)V
-HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;-><init>(Landroid/icu/text/RuleBasedBreakIterator;Landroid/icu/text/RuleBasedBreakIterator$BreakCache;)V
-HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->addFollowing(IIZ)V
-HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->addPreceding(IIZ)Z
-HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->current()I
-HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->following(I)V
-HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->next()V
-HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->populateFollowing()Z
-HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->populateNear(I)Z
-HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->populatePreceding()Z
-HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->preceding(I)V
-HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->previous()V
-HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->reset()V
-HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->reset(II)V
-HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->seek(I)Z
-HSPLandroid/icu/text/RuleBasedBreakIterator$DictionaryCache;-><init>(Landroid/icu/text/RuleBasedBreakIterator;)V
-HSPLandroid/icu/text/RuleBasedBreakIterator$DictionaryCache;-><init>(Landroid/icu/text/RuleBasedBreakIterator;Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;)V
-HSPLandroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->following(I)Z
-HSPLandroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->preceding(I)Z
-HSPLandroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->reset()V
-HSPLandroid/icu/text/RuleBasedBreakIterator;-><init>()V
-HSPLandroid/icu/text/RuleBasedBreakIterator;->CISetIndex32(Ljava/text/CharacterIterator;I)I
-HSPLandroid/icu/text/RuleBasedBreakIterator;->checkOffset(ILjava/text/CharacterIterator;)V
-HSPLandroid/icu/text/RuleBasedBreakIterator;->clone()Ljava/lang/Object;
-HSPLandroid/icu/text/RuleBasedBreakIterator;->first()I
-HSPLandroid/icu/text/RuleBasedBreakIterator;->following(I)I
-HSPLandroid/icu/text/RuleBasedBreakIterator;->getInstanceFromCompiledRules(Ljava/nio/ByteBuffer;)Landroid/icu/text/RuleBasedBreakIterator;
-HSPLandroid/icu/text/RuleBasedBreakIterator;->getText()Ljava/text/CharacterIterator;
-HSPLandroid/icu/text/RuleBasedBreakIterator;->handleNext()I
-HSPLandroid/icu/text/RuleBasedBreakIterator;->handleSafePrevious(I)I
-HSPLandroid/icu/text/RuleBasedBreakIterator;->isBoundary(I)Z
-HSPLandroid/icu/text/RuleBasedBreakIterator;->next()I
-HSPLandroid/icu/text/RuleBasedBreakIterator;->preceding(I)I
-HSPLandroid/icu/text/RuleBasedBreakIterator;->setText(Ljava/text/CharacterIterator;)V
-HSPLandroid/icu/text/RuleBasedCollator$CollationBuffer;-><init>(Landroid/icu/impl/coll/CollationData;)V
-HSPLandroid/icu/text/RuleBasedCollator$CollationBuffer;-><init>(Landroid/icu/impl/coll/CollationData;Landroid/icu/text/RuleBasedCollator$CollationBuffer-IA;)V
-HSPLandroid/icu/text/RuleBasedCollator$CollationKeyByteSink;-><init>(Landroid/icu/text/RawCollationKey;)V
-HSPLandroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;-><init>()V
-HSPLandroid/icu/text/RuleBasedCollator$NFDIterator;-><init>()V
-HSPLandroid/icu/text/RuleBasedCollator$UTF16NFDIterator;-><init>()V
-HSPLandroid/icu/text/RuleBasedCollator;-><init>(Landroid/icu/impl/coll/CollationTailoring;Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/RuleBasedCollator;-><init>(Ljava/lang/String;)V
-HSPLandroid/icu/text/RuleBasedCollator;->adoptTailoring(Landroid/icu/impl/coll/CollationTailoring;)V
-HSPLandroid/icu/text/RuleBasedCollator;->checkNotFrozen()V
-HSPLandroid/icu/text/RuleBasedCollator;->clone()Ljava/lang/Object;
-HSPLandroid/icu/text/RuleBasedCollator;->cloneAsThawed()Landroid/icu/text/RuleBasedCollator;
-HSPLandroid/icu/text/RuleBasedCollator;->compare(Ljava/lang/String;Ljava/lang/String;)I
-HSPLandroid/icu/text/RuleBasedCollator;->doCompare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I+]Landroid/icu/impl/coll/CollationData;Landroid/icu/impl/coll/CollationData;]Landroid/icu/impl/coll/SharedObject$Reference;Landroid/icu/impl/coll/SharedObject$Reference;]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/icu/impl/coll/CollationSettings;Landroid/icu/impl/coll/CollationSettings;
-HSPLandroid/icu/text/RuleBasedCollator;->freeze()Landroid/icu/text/Collator;
-HSPLandroid/icu/text/RuleBasedCollator;->getCollationBuffer()Landroid/icu/text/RuleBasedCollator$CollationBuffer;
-HSPLandroid/icu/text/RuleBasedCollator;->getCollationKey(Ljava/lang/String;)Landroid/icu/text/CollationKey;
-HSPLandroid/icu/text/RuleBasedCollator;->getCollationKey(Ljava/lang/String;Landroid/icu/text/RuleBasedCollator$CollationBuffer;)Landroid/icu/text/CollationKey;
-HSPLandroid/icu/text/RuleBasedCollator;->getOwnedSettings()Landroid/icu/impl/coll/CollationSettings;
-HSPLandroid/icu/text/RuleBasedCollator;->getRawCollationKey(Ljava/lang/CharSequence;Landroid/icu/text/RawCollationKey;Landroid/icu/text/RuleBasedCollator$CollationBuffer;)Landroid/icu/text/RawCollationKey;
-HSPLandroid/icu/text/RuleBasedCollator;->getRules()Ljava/lang/String;
-HSPLandroid/icu/text/RuleBasedCollator;->getStrength()I
-HSPLandroid/icu/text/RuleBasedCollator;->internalBuildTailoring(Ljava/lang/String;)V
-HSPLandroid/icu/text/RuleBasedCollator;->isFrozen()Z
-HSPLandroid/icu/text/RuleBasedCollator;->releaseCollationBuffer(Landroid/icu/text/RuleBasedCollator$CollationBuffer;)V
-HSPLandroid/icu/text/RuleBasedCollator;->setDecomposition(I)V
-HSPLandroid/icu/text/RuleBasedCollator;->setFastLatinOptions(Landroid/icu/impl/coll/CollationSettings;)V
-HSPLandroid/icu/text/RuleBasedCollator;->setStrength(I)V
-HSPLandroid/icu/text/RuleBasedCollator;->simpleKeyLengthEstimate(Ljava/lang/CharSequence;)I
-HSPLandroid/icu/text/RuleBasedCollator;->writeSortKey(Ljava/lang/CharSequence;Landroid/icu/text/RuleBasedCollator$CollationKeyByteSink;Landroid/icu/text/RuleBasedCollator$CollationBuffer;)V
-HSPLandroid/icu/text/SimpleDateFormat$PatternItem;-><init>(CI)V
-HSPLandroid/icu/text/SimpleDateFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DateFormatSymbols;Landroid/icu/util/Calendar;Landroid/icu/text/NumberFormat;Landroid/icu/util/ULocale;ZLjava/lang/String;)V
-HSPLandroid/icu/text/SimpleDateFormat;-><init>(Ljava/lang/String;Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/SimpleDateFormat;->fastZeroPaddingNumber(Ljava/lang/StringBuffer;III)V
-HSPLandroid/icu/text/SimpleDateFormat;->format(Landroid/icu/util/Calendar;Landroid/icu/text/DisplayContext;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer;
-HSPLandroid/icu/text/SimpleDateFormat;->format(Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
-HSPLandroid/icu/text/SimpleDateFormat;->format(Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer;
-HSPLandroid/icu/text/SimpleDateFormat;->getIndexFromChar(C)I
-HSPLandroid/icu/text/SimpleDateFormat;->getInstance(Landroid/icu/util/Calendar$FormatConfiguration;)Landroid/icu/text/SimpleDateFormat;
-HSPLandroid/icu/text/SimpleDateFormat;->getLocale()Landroid/icu/util/ULocale;
-HSPLandroid/icu/text/SimpleDateFormat;->getNumberFormat(C)Landroid/icu/text/NumberFormat;
-HSPLandroid/icu/text/SimpleDateFormat;->getPatternItems()[Ljava/lang/Object;
-HSPLandroid/icu/text/SimpleDateFormat;->initLocalZeroPaddingNumberFormat()V
-HSPLandroid/icu/text/SimpleDateFormat;->initialize()V
-HSPLandroid/icu/text/SimpleDateFormat;->isFieldUnitIgnored(Ljava/lang/String;I)Z
-HSPLandroid/icu/text/SimpleDateFormat;->isNumeric(CI)Z
-HSPLandroid/icu/text/SimpleDateFormat;->isSyntaxChar(C)Z
-HSPLandroid/icu/text/SimpleDateFormat;->parsePattern()V
-HSPLandroid/icu/text/SimpleDateFormat;->safeAppend([Ljava/lang/String;ILjava/lang/StringBuffer;)V
-HSPLandroid/icu/text/SimpleDateFormat;->safeAppendWithMonthPattern([Ljava/lang/String;ILjava/lang/StringBuffer;Ljava/lang/String;)V
-HSPLandroid/icu/text/SimpleDateFormat;->setContext(Landroid/icu/text/DisplayContext;)V
-HSPLandroid/icu/text/SimpleDateFormat;->subFormat(Ljava/lang/StringBuffer;CIIILandroid/icu/text/DisplayContext;Ljava/text/FieldPosition;CLandroid/icu/util/Calendar;)V
-HSPLandroid/icu/text/SimpleDateFormat;->toPattern()Ljava/lang/String;
-HSPLandroid/icu/text/SimpleDateFormat;->zeroPaddingNumber(Landroid/icu/text/NumberFormat;Ljava/lang/StringBuffer;III)V
-HSPLandroid/icu/text/TimeZoneNames$Cache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/text/TimeZoneNames$Cache;->createInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneNames;
-HSPLandroid/icu/text/TimeZoneNames;-><init>()V
-HSPLandroid/icu/text/TimeZoneNames;->getDisplayName(Ljava/lang/String;Landroid/icu/text/TimeZoneNames$NameType;J)Ljava/lang/String;
-HSPLandroid/icu/text/TimeZoneNames;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneNames;
-HSPLandroid/icu/text/TimeZoneNames;->getInstance(Ljava/util/Locale;)Landroid/icu/text/TimeZoneNames;
-HSPLandroid/icu/text/UCharacterIterator;-><init>()V
-HSPLandroid/icu/text/UCharacterIterator;->getInstance(Ljava/lang/String;)Landroid/icu/text/UCharacterIterator;
-HSPLandroid/icu/text/UCharacterIterator;->getText()Ljava/lang/String;
-HSPLandroid/icu/text/UCharacterIterator;->getText([C)I
-HSPLandroid/icu/text/UCharacterIterator;->setToStart()V
-HSPLandroid/icu/text/UFormat;-><init>()V
-HSPLandroid/icu/text/UFormat;->getLocale(Landroid/icu/util/ULocale$Type;)Landroid/icu/util/ULocale;
-HSPLandroid/icu/text/UFormat;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/text/UTF16;->append(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
-HSPLandroid/icu/text/UTF16;->charAt(Ljava/lang/String;I)I
-HSPLandroid/icu/text/UTF16;->charAt([CIII)I
-HSPLandroid/icu/text/UTF16;->getCharCount(I)I
-HSPLandroid/icu/text/UnicodeFilter;-><init>()V
-HSPLandroid/icu/text/UnicodeSet;-><init>()V
-HSPLandroid/icu/text/UnicodeSet;-><init>(Landroid/icu/text/UnicodeSet;)V
-HSPLandroid/icu/text/UnicodeSet;->_appendToPat(Ljava/lang/Appendable;IIZ)Ljava/lang/Appendable;
-HSPLandroid/icu/text/UnicodeSet;->_appendToPat(Ljava/lang/Appendable;IZ)Ljava/lang/Appendable;
-HSPLandroid/icu/text/UnicodeSet;->add(I)Landroid/icu/text/UnicodeSet;
-HSPLandroid/icu/text/UnicodeSet;->add(II)Landroid/icu/text/UnicodeSet;
-HSPLandroid/icu/text/UnicodeSet;->add([III)Landroid/icu/text/UnicodeSet;
-HSPLandroid/icu/text/UnicodeSet;->addAll(Landroid/icu/text/UnicodeSet;)Landroid/icu/text/UnicodeSet;
-HSPLandroid/icu/text/UnicodeSet;->add_unchecked(I)Landroid/icu/text/UnicodeSet;
-HSPLandroid/icu/text/UnicodeSet;->add_unchecked(II)Landroid/icu/text/UnicodeSet;
-HSPLandroid/icu/text/UnicodeSet;->appendCodePoint(Ljava/lang/Appendable;I)V
-HSPLandroid/icu/text/UnicodeSet;->appendNewPattern(Ljava/lang/Appendable;ZZ)Ljava/lang/Appendable;
-HSPLandroid/icu/text/UnicodeSet;->applyPattern(Landroid/icu/impl/RuleCharacterIterator;Landroid/icu/text/SymbolTable;Ljava/lang/Appendable;II)V
-HSPLandroid/icu/text/UnicodeSet;->applyPattern(Ljava/lang/String;Ljava/text/ParsePosition;Landroid/icu/text/SymbolTable;I)Landroid/icu/text/UnicodeSet;
-HSPLandroid/icu/text/UnicodeSet;->checkFrozen()V
-HSPLandroid/icu/text/UnicodeSet;->clear()Landroid/icu/text/UnicodeSet;
-HSPLandroid/icu/text/UnicodeSet;->clone()Ljava/lang/Object;
-HSPLandroid/icu/text/UnicodeSet;->compact()Landroid/icu/text/UnicodeSet;
-HSPLandroid/icu/text/UnicodeSet;->contains(I)Z+]Landroid/icu/impl/BMPSet;Landroid/icu/impl/BMPSet;
-HSPLandroid/icu/text/UnicodeSet;->contains(Ljava/lang/CharSequence;)Z
-HSPLandroid/icu/text/UnicodeSet;->containsAll(Ljava/lang/String;)Z
-HSPLandroid/icu/text/UnicodeSet;->findCodePoint(I)I
-HSPLandroid/icu/text/UnicodeSet;->freeze()Landroid/icu/text/UnicodeSet;
-HSPLandroid/icu/text/UnicodeSet;->getRangeCount()I
-HSPLandroid/icu/text/UnicodeSet;->getRangeEnd(I)I
-HSPLandroid/icu/text/UnicodeSet;->getRangeStart(I)I
-HSPLandroid/icu/text/UnicodeSet;->getSingleCP(Ljava/lang/CharSequence;)I
-HSPLandroid/icu/text/UnicodeSet;->hasStrings()Z
-HSPLandroid/icu/text/UnicodeSet;->isFrozen()Z
-HSPLandroid/icu/text/UnicodeSet;->resemblesPropertyPattern(Landroid/icu/impl/RuleCharacterIterator;I)Z
-HSPLandroid/icu/text/UnicodeSet;->set(Landroid/icu/text/UnicodeSet;)Landroid/icu/text/UnicodeSet;
-HSPLandroid/icu/util/AnnualTimeZoneRule;-><init>(Ljava/lang/String;IILandroid/icu/util/DateTimeRule;II)V
-HSPLandroid/icu/util/AnnualTimeZoneRule;->getEndYear()I
-HSPLandroid/icu/util/AnnualTimeZoneRule;->getFirstStart(II)Ljava/util/Date;
-HSPLandroid/icu/util/AnnualTimeZoneRule;->getNextStart(JIIZ)Ljava/util/Date;
-HSPLandroid/icu/util/AnnualTimeZoneRule;->getRule()Landroid/icu/util/DateTimeRule;
-HSPLandroid/icu/util/AnnualTimeZoneRule;->getStartInYear(III)Ljava/util/Date;
-HSPLandroid/icu/util/AnnualTimeZoneRule;->getStartYear()I
-HSPLandroid/icu/util/AnnualTimeZoneRule;->isEquivalentTo(Landroid/icu/util/TimeZoneRule;)Z
-HSPLandroid/icu/util/BasicTimeZone;-><init>(Ljava/lang/String;)V
-HSPLandroid/icu/util/ByteArrayWrapper;-><init>()V
-HSPLandroid/icu/util/ByteArrayWrapper;->releaseBytes()[B
-HSPLandroid/icu/util/BytesTrie$Result;->hasNext()Z
-HSPLandroid/icu/util/BytesTrie$Result;->hasValue()Z
-HSPLandroid/icu/util/BytesTrie;-><init>([BI)V
-HSPLandroid/icu/util/BytesTrie;->branchNext(III)Landroid/icu/util/BytesTrie$Result;
-HSPLandroid/icu/util/BytesTrie;->getValue()I
-HSPLandroid/icu/util/BytesTrie;->jumpByDelta([BI)I
-HSPLandroid/icu/util/BytesTrie;->next(I)Landroid/icu/util/BytesTrie$Result;
-HSPLandroid/icu/util/BytesTrie;->nextImpl(II)Landroid/icu/util/BytesTrie$Result;
-HSPLandroid/icu/util/BytesTrie;->readValue([BII)I
-HSPLandroid/icu/util/BytesTrie;->skipDelta([BI)I
-HSPLandroid/icu/util/BytesTrie;->skipValue(II)I
-HSPLandroid/icu/util/BytesTrie;->skipValue([BI)I
-HSPLandroid/icu/util/Calendar$FormatConfiguration;-><init>()V
-HSPLandroid/icu/util/Calendar$FormatConfiguration;->getCalendar()Landroid/icu/util/Calendar;
-HSPLandroid/icu/util/Calendar$FormatConfiguration;->getDateFormatSymbols()Landroid/icu/text/DateFormatSymbols;
-HSPLandroid/icu/util/Calendar$FormatConfiguration;->getLocale()Landroid/icu/util/ULocale;
-HSPLandroid/icu/util/Calendar$FormatConfiguration;->getOverrideString()Ljava/lang/String;
-HSPLandroid/icu/util/Calendar$FormatConfiguration;->getPatternString()Ljava/lang/String;
-HSPLandroid/icu/util/Calendar$PatternData;->getDateTimePattern(I)Ljava/lang/String;
-HSPLandroid/icu/util/Calendar$PatternData;->make(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar$PatternData;
-HSPLandroid/icu/util/Calendar$PatternData;->make(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/util/Calendar$PatternData;
-HSPLandroid/icu/util/Calendar$WeekDataCache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/util/Calendar$WeekDataCache;->createInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/Calendar$WeekData;
-HSPLandroid/icu/util/Calendar;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/util/Calendar;->clone()Ljava/lang/Object;
-HSPLandroid/icu/util/Calendar;->complete()V
-HSPLandroid/icu/util/Calendar;->computeFields()V
-HSPLandroid/icu/util/Calendar;->computeGregorianAndDOWFields(I)V
-HSPLandroid/icu/util/Calendar;->computeGregorianFields(I)V
-HSPLandroid/icu/util/Calendar;->computeWeekFields()V
-HSPLandroid/icu/util/Calendar;->createInstance(Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar;
-HSPLandroid/icu/util/Calendar;->floorDivide(II[I)I
-HSPLandroid/icu/util/Calendar;->floorDivide(JI[I)I
-HSPLandroid/icu/util/Calendar;->floorDivide(JJ)J
-HSPLandroid/icu/util/Calendar;->formatHelper(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;II)Landroid/icu/text/DateFormat;
-HSPLandroid/icu/util/Calendar;->get(I)I
-HSPLandroid/icu/util/Calendar;->getCalendarTypeForLocale(Landroid/icu/util/ULocale;)Landroid/icu/impl/CalType;
-HSPLandroid/icu/util/Calendar;->getDateTimeFormat(IILandroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
-HSPLandroid/icu/util/Calendar;->getDateTimeFormatString(Landroid/icu/util/ULocale;Ljava/lang/String;II)Ljava/lang/String;
-HSPLandroid/icu/util/Calendar;->getDateTimePattern(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;I)Ljava/lang/String;
-HSPLandroid/icu/util/Calendar;->getFirstDayOfWeek()I
-HSPLandroid/icu/util/Calendar;->getGregorianDayOfMonth()I
-HSPLandroid/icu/util/Calendar;->getGregorianDayOfYear()I
-HSPLandroid/icu/util/Calendar;->getGregorianMonth()I
-HSPLandroid/icu/util/Calendar;->getGregorianYear()I
-HSPLandroid/icu/util/Calendar;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar;
-HSPLandroid/icu/util/Calendar;->getInstance(Ljava/util/Locale;)Landroid/icu/util/Calendar;
-HSPLandroid/icu/util/Calendar;->getInstanceInternal(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar;
-HSPLandroid/icu/util/Calendar;->getKeywordValuesForLocale(Ljava/lang/String;Landroid/icu/util/ULocale;Z)[Ljava/lang/String;
-HSPLandroid/icu/util/Calendar;->getLeastMaximum(I)I
-HSPLandroid/icu/util/Calendar;->getLimit(II)I
-HSPLandroid/icu/util/Calendar;->getLocale(Landroid/icu/util/ULocale$Type;)Landroid/icu/util/ULocale;
-HSPLandroid/icu/util/Calendar;->getMinimalDaysInFirstWeek()I
-HSPLandroid/icu/util/Calendar;->getPatternData(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/util/Calendar$PatternData;
-HSPLandroid/icu/util/Calendar;->getRegionForCalendar(Landroid/icu/util/ULocale;)Ljava/lang/String;
-HSPLandroid/icu/util/Calendar;->getRepeatedWallTimeOption()I
-HSPLandroid/icu/util/Calendar;->getSkippedWallTimeOption()I
-HSPLandroid/icu/util/Calendar;->getTimeInMillis()J
-HSPLandroid/icu/util/Calendar;->getTimeZone()Landroid/icu/util/TimeZone;
-HSPLandroid/icu/util/Calendar;->getWeekDataForRegionInternal(Ljava/lang/String;)Landroid/icu/util/Calendar$WeekData;
-HSPLandroid/icu/util/Calendar;->handleCreateFields()[I
-HSPLandroid/icu/util/Calendar;->handleGetDateFormat(Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
-HSPLandroid/icu/util/Calendar;->initInternal()V
-HSPLandroid/icu/util/Calendar;->internalSet(II)V
-HSPLandroid/icu/util/Calendar;->isEquivalentTo(Landroid/icu/util/Calendar;)Z
-HSPLandroid/icu/util/Calendar;->isLenient()Z
-HSPLandroid/icu/util/Calendar;->julianDayToDayOfWeek(I)I
-HSPLandroid/icu/util/Calendar;->setCalendarLocale(Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/util/Calendar;->setFirstDayOfWeek(I)V
-HSPLandroid/icu/util/Calendar;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/util/Calendar;->setMinimalDaysInFirstWeek(I)V
-HSPLandroid/icu/util/Calendar;->setTime(Ljava/util/Date;)V
-HSPLandroid/icu/util/Calendar;->setTimeInMillis(J)V
-HSPLandroid/icu/util/Calendar;->setTimeZone(Landroid/icu/util/TimeZone;)V
-HSPLandroid/icu/util/Calendar;->setWeekData(Landroid/icu/util/Calendar$WeekData;)Landroid/icu/util/Calendar;
-HSPLandroid/icu/util/Calendar;->setWeekData(Ljava/lang/String;)V
-HSPLandroid/icu/util/Calendar;->weekNumber(II)I
-HSPLandroid/icu/util/Calendar;->weekNumber(III)I
-HSPLandroid/icu/util/CharsTrie;-><init>(Ljava/lang/CharSequence;I)V
-HSPLandroid/icu/util/CharsTrie;->branchNext(III)Landroid/icu/util/BytesTrie$Result;
-HSPLandroid/icu/util/CharsTrie;->first(I)Landroid/icu/util/BytesTrie$Result;
-HSPLandroid/icu/util/CharsTrie;->firstForCodePoint(I)Landroid/icu/util/BytesTrie$Result;
-HSPLandroid/icu/util/CharsTrie;->getValue()I
-HSPLandroid/icu/util/CharsTrie;->jumpByDelta(Ljava/lang/CharSequence;I)I
-HSPLandroid/icu/util/CharsTrie;->next(I)Landroid/icu/util/BytesTrie$Result;
-HSPLandroid/icu/util/CharsTrie;->nextImpl(II)Landroid/icu/util/BytesTrie$Result;
-HSPLandroid/icu/util/CharsTrie;->readValue(Ljava/lang/CharSequence;II)I
-HSPLandroid/icu/util/CharsTrie;->skipDelta(Ljava/lang/CharSequence;I)I
-HSPLandroid/icu/util/CharsTrie;->skipValue(II)I
-HSPLandroid/icu/util/CharsTrie;->skipValue(Ljava/lang/CharSequence;I)I
-HSPLandroid/icu/util/CodePointMap$Range;->-$$Nest$fgetend(Landroid/icu/util/CodePointMap$Range;)I
-HSPLandroid/icu/util/CodePointMap$Range;->-$$Nest$fgetvalue(Landroid/icu/util/CodePointMap$Range;)I
-HSPLandroid/icu/util/CodePointMap$Range;->-$$Nest$fputstart(Landroid/icu/util/CodePointMap$Range;I)V
-HSPLandroid/icu/util/CodePointMap$Range;-><init>()V
-HSPLandroid/icu/util/CodePointMap$Range;->getEnd()I
-HSPLandroid/icu/util/CodePointMap$Range;->getValue()I
-HSPLandroid/icu/util/CodePointMap;-><init>()V
-HSPLandroid/icu/util/CodePointMap;->getRange(ILandroid/icu/util/CodePointMap$RangeOption;ILandroid/icu/util/CodePointMap$ValueFilter;Landroid/icu/util/CodePointMap$Range;)Z
-HSPLandroid/icu/util/CodePointTrie$Data16;->getFromIndex(I)I
-HSPLandroid/icu/util/CodePointTrie$Data32;-><init>([I)V
-HSPLandroid/icu/util/CodePointTrie$Data32;->getDataLength()I
-HSPLandroid/icu/util/CodePointTrie$Data32;->getFromIndex(I)I
-HSPLandroid/icu/util/CodePointTrie$Data8;-><init>([B)V
-HSPLandroid/icu/util/CodePointTrie$Data8;->getDataLength()I
-HSPLandroid/icu/util/CodePointTrie$Data8;->getFromIndex(I)I
-HSPLandroid/icu/util/CodePointTrie$Data;-><init>()V
-HSPLandroid/icu/util/CodePointTrie$Data;-><init>(Landroid/icu/util/CodePointTrie$Data-IA;)V
-HSPLandroid/icu/util/CodePointTrie$Fast16;->bmpGet(I)I
-HSPLandroid/icu/util/CodePointTrie$Fast16;->get(I)I
-HSPLandroid/icu/util/CodePointTrie$Fast8;-><init>([C[BIII)V
-HSPLandroid/icu/util/CodePointTrie$Fast8;->get(I)I
-HSPLandroid/icu/util/CodePointTrie$Fast;-><init>([CLandroid/icu/util/CodePointTrie$Data;III)V
-HSPLandroid/icu/util/CodePointTrie$Fast;->cpIndex(I)I
-HSPLandroid/icu/util/CodePointTrie$Fast;->getType()Landroid/icu/util/CodePointTrie$Type;
-HSPLandroid/icu/util/CodePointTrie$Small32;-><init>([C[IIII)V
-HSPLandroid/icu/util/CodePointTrie$Small;-><init>([CLandroid/icu/util/CodePointTrie$Data;III)V
-HSPLandroid/icu/util/CodePointTrie$Small;-><init>([CLandroid/icu/util/CodePointTrie$Data;IIILandroid/icu/util/CodePointTrie$Small-IA;)V
-HSPLandroid/icu/util/CodePointTrie;-><init>([CLandroid/icu/util/CodePointTrie$Data;III)V
-HSPLandroid/icu/util/CodePointTrie;-><init>([CLandroid/icu/util/CodePointTrie$Data;IIILandroid/icu/util/CodePointTrie-IA;)V
-HSPLandroid/icu/util/CodePointTrie;->fastIndex(I)I
-HSPLandroid/icu/util/CodePointTrie;->fromBinary(Landroid/icu/util/CodePointTrie$Type;Landroid/icu/util/CodePointTrie$ValueWidth;Ljava/nio/ByteBuffer;)Landroid/icu/util/CodePointTrie;
-HSPLandroid/icu/util/CodePointTrie;->getRange(ILandroid/icu/util/CodePointMap$ValueFilter;Landroid/icu/util/CodePointMap$Range;)Z
-HSPLandroid/icu/util/Currency$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/util/Currency$1;->createInstance(Ljava/lang/String;Ljava/lang/Void;)Landroid/icu/util/Currency;
-HSPLandroid/icu/util/Currency;->createCurrency(Landroid/icu/util/ULocale;)Landroid/icu/util/Currency;
-HSPLandroid/icu/util/Currency;->getAvailableCurrencyCodes(Landroid/icu/util/ULocale;Ljava/util/Date;)[Ljava/lang/String;
-HSPLandroid/icu/util/Currency;->getCurrencyCode()Ljava/lang/String;
-HSPLandroid/icu/util/Currency;->getDefaultFractionDigits(Landroid/icu/util/Currency$CurrencyUsage;)I
-HSPLandroid/icu/util/Currency;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/util/Currency;
-HSPLandroid/icu/util/Currency;->getInstance(Ljava/lang/String;)Landroid/icu/util/Currency;
-HSPLandroid/icu/util/Currency;->getInstance(Ljava/util/Locale;)Landroid/icu/util/Currency;
-HSPLandroid/icu/util/Currency;->getName(Landroid/icu/util/ULocale;I[Z)Ljava/lang/String;
-HSPLandroid/icu/util/Currency;->getRoundingIncrement(Landroid/icu/util/Currency$CurrencyUsage;)D
-HSPLandroid/icu/util/Currency;->getSymbol(Landroid/icu/util/ULocale;)Ljava/lang/String;
-HSPLandroid/icu/util/Currency;->getSymbol(Ljava/util/Locale;)Ljava/lang/String;
-HSPLandroid/icu/util/Currency;->getTenderCurrencies(Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List;
-HSPLandroid/icu/util/Currency;->isAlpha3Code(Ljava/lang/String;)Z
-HSPLandroid/icu/util/Currency;->loadCurrency(Ljava/lang/String;)Landroid/icu/util/Currency;
-HSPLandroid/icu/util/DateTimeRule;-><init>(IIIZII)V
-HSPLandroid/icu/util/DateTimeRule;->getDateRuleType()I
-HSPLandroid/icu/util/DateTimeRule;->getRuleDayOfMonth()I
-HSPLandroid/icu/util/DateTimeRule;->getRuleDayOfWeek()I
-HSPLandroid/icu/util/DateTimeRule;->getRuleMillisInDay()I
-HSPLandroid/icu/util/DateTimeRule;->getRuleMonth()I
-HSPLandroid/icu/util/DateTimeRule;->getTimeRuleType()I
-HSPLandroid/icu/util/GregorianCalendar;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V
-HSPLandroid/icu/util/GregorianCalendar;->getType()Ljava/lang/String;
-HSPLandroid/icu/util/GregorianCalendar;->handleComputeFields(I)V
-HSPLandroid/icu/util/GregorianCalendar;->handleGetYearLength(I)I
-HSPLandroid/icu/util/GregorianCalendar;->isEquivalentTo(Landroid/icu/util/Calendar;)Z
-HSPLandroid/icu/util/GregorianCalendar;->isLeapYear(I)Z
-HSPLandroid/icu/util/InitialTimeZoneRule;-><init>(Ljava/lang/String;II)V
-HSPLandroid/icu/util/Measure;-><init>(Ljava/lang/Number;Landroid/icu/util/MeasureUnit;)V
-HSPLandroid/icu/util/Measure;->getNumber()Ljava/lang/Number;
-HSPLandroid/icu/util/Measure;->getUnit()Landroid/icu/util/MeasureUnit;
-HSPLandroid/icu/util/MeasureUnit$2;->create(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/MeasureUnit;
-HSPLandroid/icu/util/MeasureUnit;->addUnit(Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/MeasureUnit$Factory;)Landroid/icu/util/MeasureUnit;
-HSPLandroid/icu/util/MeasureUnit;->equals(Ljava/lang/Object;)Z
-HSPLandroid/icu/util/MeasureUnit;->getSubtype()Ljava/lang/String;
-HSPLandroid/icu/util/MeasureUnit;->getType()Ljava/lang/String;
-HSPLandroid/icu/util/MeasureUnit;->internalGetInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/MeasureUnit;
-HSPLandroid/icu/util/MutableCodePointTrie$AllSameBlocks;-><init>()V
-HSPLandroid/icu/util/MutableCodePointTrie$AllSameBlocks;->findMostUsed()I
-HSPLandroid/icu/util/MutableCodePointTrie$AllSameBlocks;->findOrAdd(III)I
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;-><init>()V
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;-><init>(Landroid/icu/util/MutableCodePointTrie$MixedBlocks-IA;)V
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->addEntry([I[CIII)V
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->extend([CIII)V
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->extend([IIII)V
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->findAllSameBlock([II)I
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->findBlock([C[CI)I
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->findBlock([C[II)I
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->findBlock([I[II)I
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->findEntry([III)I
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->findEntry([I[C[I[CII)I
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->init(II)V
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->makeHashCode(I)I
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->makeHashCode([CI)I
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->makeHashCode([II)I
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->modulo(II)I
-HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->nextIndex(II)I
-HSPLandroid/icu/util/MutableCodePointTrie;->-$$Nest$smallValuesSameAs([IIII)Z
-HSPLandroid/icu/util/MutableCodePointTrie;->-$$Nest$smequalBlocks([II[III)Z
-HSPLandroid/icu/util/MutableCodePointTrie;-><init>(II)V
-HSPLandroid/icu/util/MutableCodePointTrie;->allValuesSameAs([IIII)Z
-HSPLandroid/icu/util/MutableCodePointTrie;->allocDataBlock(I)I
-HSPLandroid/icu/util/MutableCodePointTrie;->build(Landroid/icu/util/CodePointTrie$Type;Landroid/icu/util/CodePointTrie$ValueWidth;)Landroid/icu/util/CodePointTrie;
-HSPLandroid/icu/util/MutableCodePointTrie;->buildImmutable(Landroid/icu/util/CodePointTrie$Type;Landroid/icu/util/CodePointTrie$ValueWidth;)Landroid/icu/util/CodePointTrie;
-HSPLandroid/icu/util/MutableCodePointTrie;->clear()V
-HSPLandroid/icu/util/MutableCodePointTrie;->compactData(I[IILandroid/icu/util/MutableCodePointTrie$MixedBlocks;)I
-HSPLandroid/icu/util/MutableCodePointTrie;->compactIndex(ILandroid/icu/util/MutableCodePointTrie$MixedBlocks;)I
-HSPLandroid/icu/util/MutableCodePointTrie;->compactTrie(I)I
-HSPLandroid/icu/util/MutableCodePointTrie;->compactWholeDataBlocks(ILandroid/icu/util/MutableCodePointTrie$AllSameBlocks;)I
-HSPLandroid/icu/util/MutableCodePointTrie;->ensureHighStart(I)V
-HSPLandroid/icu/util/MutableCodePointTrie;->equalBlocks([CI[CII)Z
-HSPLandroid/icu/util/MutableCodePointTrie;->equalBlocks([CI[III)Z
-HSPLandroid/icu/util/MutableCodePointTrie;->equalBlocks([II[III)Z
-HSPLandroid/icu/util/MutableCodePointTrie;->findHighStart()I
-HSPLandroid/icu/util/MutableCodePointTrie;->findSameBlock([CII[CII)I
-HSPLandroid/icu/util/MutableCodePointTrie;->get(I)I
-HSPLandroid/icu/util/MutableCodePointTrie;->getAllSameOverlap([IIII)I
-HSPLandroid/icu/util/MutableCodePointTrie;->getDataBlock(I)I
-HSPLandroid/icu/util/MutableCodePointTrie;->getOverlap([CI[CII)I
-HSPLandroid/icu/util/MutableCodePointTrie;->getOverlap([CI[III)I
-HSPLandroid/icu/util/MutableCodePointTrie;->getOverlap([II[III)I
-HSPLandroid/icu/util/MutableCodePointTrie;->set(II)V
-HSPLandroid/icu/util/MutableCodePointTrie;->writeBlock(II)V
-HSPLandroid/icu/util/Output;-><init>(Ljava/lang/Object;)V
-HSPLandroid/icu/util/STZInfo;-><init>()V
-HSPLandroid/icu/util/SimpleTimeZone;-><init>(ILjava/lang/String;IIIIIIIIIII)V
-HSPLandroid/icu/util/SimpleTimeZone;->clone()Ljava/lang/Object;
-HSPLandroid/icu/util/SimpleTimeZone;->cloneAsThawed()Landroid/icu/util/TimeZone;
-HSPLandroid/icu/util/SimpleTimeZone;->compareToRule(IIIIIIIIIIII)I
-HSPLandroid/icu/util/SimpleTimeZone;->construct(IIIIIIIIIIII)V
-HSPLandroid/icu/util/SimpleTimeZone;->decodeEndRule()V
-HSPLandroid/icu/util/SimpleTimeZone;->decodeRules()V
-HSPLandroid/icu/util/SimpleTimeZone;->decodeStartRule()V
-HSPLandroid/icu/util/SimpleTimeZone;->getDSTSavings()I
-HSPLandroid/icu/util/SimpleTimeZone;->getNextTransition(JZ)Landroid/icu/util/TimeZoneTransition;
-HSPLandroid/icu/util/SimpleTimeZone;->getOffset(IIIIII)I
-HSPLandroid/icu/util/SimpleTimeZone;->getOffset(IIIIIII)I
-HSPLandroid/icu/util/SimpleTimeZone;->getOffset(IIIIIIII)I
-HSPLandroid/icu/util/SimpleTimeZone;->getRawOffset()I
-HSPLandroid/icu/util/SimpleTimeZone;->getSTZInfo()Landroid/icu/util/STZInfo;
-HSPLandroid/icu/util/SimpleTimeZone;->getTimeZoneRules()[Landroid/icu/util/TimeZoneRule;
-HSPLandroid/icu/util/SimpleTimeZone;->hashCode()I
-HSPLandroid/icu/util/SimpleTimeZone;->initTransitionRules()V
-HSPLandroid/icu/util/SimpleTimeZone;->isFrozen()Z
-HSPLandroid/icu/util/SimpleTimeZone;->setStartYear(I)V
-HSPLandroid/icu/util/SimpleTimeZone;->toString()Ljava/lang/String;
-HSPLandroid/icu/util/SimpleTimeZone;->useDaylightTime()Z
-HSPLandroid/icu/util/TimeArrayTimeZoneRule;-><init>(Ljava/lang/String;II[JI)V
-HSPLandroid/icu/util/TimeArrayTimeZoneRule;->getStartTimes()[J
-HSPLandroid/icu/util/TimeArrayTimeZoneRule;->getTimeType()I
-HSPLandroid/icu/util/TimeZone;-><init>(Ljava/lang/String;)V
-HSPLandroid/icu/util/TimeZone;->cloneAsThawed()Landroid/icu/util/TimeZone;
-HSPLandroid/icu/util/TimeZone;->equals(Ljava/lang/Object;)Z
-HSPLandroid/icu/util/TimeZone;->forULocaleOrDefault(Landroid/icu/util/ULocale;)Landroid/icu/util/TimeZone;
-HSPLandroid/icu/util/TimeZone;->getCanonicalID(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/util/TimeZone;->getCanonicalID(Ljava/lang/String;[Z)Ljava/lang/String;
-HSPLandroid/icu/util/TimeZone;->getDefault()Landroid/icu/util/TimeZone;
-HSPLandroid/icu/util/TimeZone;->getFrozenICUTimeZone(Ljava/lang/String;Z)Landroid/icu/util/BasicTimeZone;
-HSPLandroid/icu/util/TimeZone;->getFrozenTimeZone(Ljava/lang/String;)Landroid/icu/util/TimeZone;
-HSPLandroid/icu/util/TimeZone;->getID()Ljava/lang/String;
-HSPLandroid/icu/util/TimeZone;->getOffset(JZ[I)V
-HSPLandroid/icu/util/TimeZone;->getTimeZone(Ljava/lang/String;)Landroid/icu/util/TimeZone;
-HSPLandroid/icu/util/TimeZone;->getTimeZone(Ljava/lang/String;IZ)Landroid/icu/util/TimeZone;
-HSPLandroid/icu/util/TimeZone;->hashCode()I
-HSPLandroid/icu/util/TimeZone;->setICUDefault(Landroid/icu/util/TimeZone;)V
-HSPLandroid/icu/util/TimeZoneRule;-><init>(Ljava/lang/String;II)V
-HSPLandroid/icu/util/TimeZoneRule;->getDSTSavings()I
-HSPLandroid/icu/util/TimeZoneRule;->getName()Ljava/lang/String;
-HSPLandroid/icu/util/TimeZoneRule;->getRawOffset()I
-HSPLandroid/icu/util/TimeZoneRule;->isEquivalentTo(Landroid/icu/util/TimeZoneRule;)Z
-HSPLandroid/icu/util/TimeZoneTransition;-><init>(JLandroid/icu/util/TimeZoneRule;Landroid/icu/util/TimeZoneRule;)V
-HSPLandroid/icu/util/TimeZoneTransition;->getFrom()Landroid/icu/util/TimeZoneRule;
-HSPLandroid/icu/util/TimeZoneTransition;->getTime()J
-HSPLandroid/icu/util/TimeZoneTransition;->getTo()Landroid/icu/util/TimeZoneRule;
-HSPLandroid/icu/util/ULocale$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/util/ULocale$1;->createInstance(Ljava/lang/String;Ljava/lang/Void;)Ljava/lang/String;
-HSPLandroid/icu/util/ULocale$2;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/icu/util/ULocale$2;->createInstance(Ljava/util/Locale;Ljava/lang/Void;)Landroid/icu/util/ULocale;
-HSPLandroid/icu/util/ULocale$AliasReplacer;-><clinit>()V
-HSPLandroid/icu/util/ULocale$AliasReplacer;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/icu/util/ULocale$AliasReplacer;->generateKey(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/util/ULocale$AliasReplacer;->loadAliasData()V
-HSPLandroid/icu/util/ULocale$AliasReplacer;->replace()Ljava/lang/String;
-HSPLandroid/icu/util/ULocale$AliasReplacer;->replaceLanguage(ZZZ)Z
-HSPLandroid/icu/util/ULocale$AliasReplacer;->replaceRegion()Z
-HSPLandroid/icu/util/ULocale$AliasReplacer;->replaceScript()Z
-HSPLandroid/icu/util/ULocale$AliasReplacer;->replaceVariant()Z
-HSPLandroid/icu/util/ULocale$Builder;-><init>()V
-HSPLandroid/icu/util/ULocale$Builder;->build()Landroid/icu/util/ULocale;
-HSPLandroid/icu/util/ULocale$Builder;->setLanguage(Ljava/lang/String;)Landroid/icu/util/ULocale$Builder;
-HSPLandroid/icu/util/ULocale$Builder;->setRegion(Ljava/lang/String;)Landroid/icu/util/ULocale$Builder;
-HSPLandroid/icu/util/ULocale$JDKLocaleHelper;->getDefault(Landroid/icu/util/ULocale$Category;)Ljava/util/Locale;
-HSPLandroid/icu/util/ULocale$JDKLocaleHelper;->toLocale(Landroid/icu/util/ULocale;)Ljava/util/Locale;
-HSPLandroid/icu/util/ULocale$JDKLocaleHelper;->toULocale(Ljava/util/Locale;)Landroid/icu/util/ULocale;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/Locale;Ljava/util/Locale;]Ljava/util/Set;Ljava/util/Collections$EmptySet;
-HSPLandroid/icu/util/ULocale;->-$$Nest$smgetInstance(Landroid/icu/impl/locale/BaseLocale;Landroid/icu/impl/locale/LocaleExtensions;)Landroid/icu/util/ULocale;
-HSPLandroid/icu/util/ULocale;-><init>(Ljava/lang/String;)V
-HSPLandroid/icu/util/ULocale;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
-HSPLandroid/icu/util/ULocale;-><init>(Ljava/lang/String;Ljava/util/Locale;Landroid/icu/util/ULocale-IA;)V
-HSPLandroid/icu/util/ULocale;->addLikelySubtags(Landroid/icu/util/ULocale;)Landroid/icu/util/ULocale;
-HSPLandroid/icu/util/ULocale;->appendTag(Ljava/lang/String;Ljava/lang/StringBuilder;)V
-HSPLandroid/icu/util/ULocale;->base()Landroid/icu/impl/locale/BaseLocale;+]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;]Landroid/icu/impl/LocaleIDParser;Landroid/icu/impl/LocaleIDParser;
-HSPLandroid/icu/util/ULocale;->canonicalize(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->createCanonical(Ljava/lang/String;)Landroid/icu/util/ULocale;
-HSPLandroid/icu/util/ULocale;->createLikelySubtagsString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->createTagString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->createTagString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->equals(Ljava/lang/Object;)Z
-HSPLandroid/icu/util/ULocale;->forLocale(Ljava/util/Locale;)Landroid/icu/util/ULocale;
-HSPLandroid/icu/util/ULocale;->getBaseName()Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->getBaseName(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->getCountry()Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->getDefault()Landroid/icu/util/ULocale;
-HSPLandroid/icu/util/ULocale;->getDefault(Landroid/icu/util/ULocale$Category;)Landroid/icu/util/ULocale;
-HSPLandroid/icu/util/ULocale;->getInstance(Landroid/icu/impl/locale/BaseLocale;Landroid/icu/impl/locale/LocaleExtensions;)Landroid/icu/util/ULocale;
-HSPLandroid/icu/util/ULocale;->getKeywordValue(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->getKeywordValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->getKeywords()Ljava/util/Iterator;
-HSPLandroid/icu/util/ULocale;->getKeywords(Ljava/lang/String;)Ljava/util/Iterator;
-HSPLandroid/icu/util/ULocale;->getLanguage()Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->getName()Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->getName(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/CacheBase;Landroid/icu/util/ULocale$1;
-HSPLandroid/icu/util/ULocale;->getRegionForSupplementalData(Landroid/icu/util/ULocale;Z)Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->getScript()Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->getScript(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->getShortestSubtagLength(Ljava/lang/String;)I
-HSPLandroid/icu/util/ULocale;->getVariant()Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->getVariant(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->hashCode()I
-HSPLandroid/icu/util/ULocale;->isEmptyString(Ljava/lang/String;)Z
-HSPLandroid/icu/util/ULocale;->isKnownCanonicalizedLocale(Ljava/lang/String;)Z
-HSPLandroid/icu/util/ULocale;->isRightToLeft()Z
-HSPLandroid/icu/util/ULocale;->lookupLikelySubtags(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->lscvToID(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->parseTagString(Ljava/lang/String;[Ljava/lang/String;)I
-HSPLandroid/icu/util/ULocale;->setKeywordValue(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/ULocale;
-HSPLandroid/icu/util/ULocale;->setKeywordValue(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->stripLeadingUnd(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/icu/util/ULocale;->toLocale()Ljava/util/Locale;
-HSPLandroid/icu/util/ULocale;->toString()Ljava/lang/String;
-HSPLandroid/icu/util/UResourceBundle;-><init>()V
-HSPLandroid/icu/util/UResourceBundle;->findTopLevel(Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/util/UResourceBundle;->get(I)Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/util/UResourceBundle;->get(Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/util/UResourceBundle;->getIterator()Landroid/icu/util/UResourceBundleIterator;
-HSPLandroid/icu/util/UResourceBundle;->getRootType(Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/util/UResourceBundle$RootType;
-HSPLandroid/icu/util/UResourceBundle;->handleGetObject(Ljava/lang/String;)Ljava/lang/Object;
-HSPLandroid/icu/util/UResourceBundle;->handleGetObjectImpl(Ljava/lang/String;Landroid/icu/util/UResourceBundle;)Ljava/lang/Object;
-HSPLandroid/icu/util/UResourceBundle;->instantiateBundle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/util/UResourceBundle;->resolveObject(Ljava/lang/String;Landroid/icu/util/UResourceBundle;)Ljava/lang/Object;
-HSPLandroid/icu/util/UResourceBundleIterator;-><init>(Landroid/icu/util/UResourceBundle;)V
-HSPLandroid/icu/util/UResourceBundleIterator;->hasNext()Z
-HSPLandroid/icu/util/UResourceBundleIterator;->next()Landroid/icu/util/UResourceBundle;
-HSPLandroid/icu/util/VersionInfo;->getMajor()I
-HSPLandroid/internal/modules/utils/build/SdkLevel;->isAtLeastPreReleaseCodename(Ljava/lang/String;)Z
-HSPLandroid/internal/modules/utils/build/SdkLevel;->isAtLeastV()Z
-HSPLandroid/location/Location$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
-HSPLandroid/location/Location$1;->createFromParcel(Landroid/os/Parcel;)Landroid/location/Location;
-HSPLandroid/location/Location$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/location/Location;-><init>(Landroid/location/Location;)V
-HSPLandroid/location/Location;-><init>(Ljava/lang/String;)V
-HSPLandroid/location/Location;->computeDistanceAndBearing(DDDDLandroid/location/Location$BearingDistanceCache;)V
-HSPLandroid/location/Location;->distanceTo(Landroid/location/Location;)F
-HSPLandroid/location/Location;->getAccuracy()F
-HSPLandroid/location/Location;->getAltitude()D
-HSPLandroid/location/Location;->getBearing()F
-HSPLandroid/location/Location;->getElapsedRealtimeMillis()J
-HSPLandroid/location/Location;->getElapsedRealtimeNanos()J
-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;->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
-HSPLandroid/location/Location;->isFromMockProvider()Z
-HSPLandroid/location/Location;->isMock()Z
-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
-HSPLandroid/location/Location;->setBearingAccuracyDegrees(F)V
-HSPLandroid/location/Location;->setElapsedRealtimeNanos(J)V
-HSPLandroid/location/Location;->setExtras(Landroid/os/Bundle;)V
-HSPLandroid/location/Location;->setLatitude(D)V
-HSPLandroid/location/Location;->setLongitude(D)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;
-HSPLandroid/location/Location;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/media/AudioAttributes$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioAttributes;
-HSPLandroid/media/AudioAttributes$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/media/AudioAttributes$1;Landroid/media/AudioAttributes$1;
-HSPLandroid/media/AudioAttributes$Builder;-><init>()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;
-HSPLandroid/media/AudioAttributes$Builder;->replaceFlags(I)Landroid/media/AudioAttributes$Builder;
-HSPLandroid/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;->setInternalContentType(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;->setSystemUsage(I)Landroid/media/AudioAttributes$Builder;
-HSPLandroid/media/AudioAttributes$Builder;->setUsage(I)Landroid/media/AudioAttributes$Builder;
-HSPLandroid/media/AudioAttributes;->-$$Nest$fgetmFlags(Landroid/media/AudioAttributes;)I
-HSPLandroid/media/AudioAttributes;->-$$Nest$fgetmUsage(Landroid/media/AudioAttributes;)I
-HSPLandroid/media/AudioAttributes;->-$$Nest$fputmContentType(Landroid/media/AudioAttributes;I)V
-HSPLandroid/media/AudioAttributes;->-$$Nest$fputmFlags(Landroid/media/AudioAttributes;I)V
-HSPLandroid/media/AudioAttributes;->-$$Nest$fputmFormattedTags(Landroid/media/AudioAttributes;Ljava/lang/String;)V
-HSPLandroid/media/AudioAttributes;->-$$Nest$fputmSource(Landroid/media/AudioAttributes;I)V
-HSPLandroid/media/AudioAttributes;->-$$Nest$fputmTags(Landroid/media/AudioAttributes;Ljava/util/HashSet;)V
-HSPLandroid/media/AudioAttributes;->-$$Nest$fputmUsage(Landroid/media/AudioAttributes;I)V
-HSPLandroid/media/AudioAttributes;-><init>()V
-HSPLandroid/media/AudioAttributes;-><init>(Landroid/media/AudioAttributes-IA;)V
-HSPLandroid/media/AudioAttributes;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/media/AudioAttributes;->areHapticChannelsMuted()Z
-HSPLandroid/media/AudioAttributes;->equals(Ljava/lang/Object;)Z
-HSPLandroid/media/AudioAttributes;->getAllFlags()I
-HSPLandroid/media/AudioAttributes;->getContentType()I
-HSPLandroid/media/AudioAttributes;->getFlags()I
-HSPLandroid/media/AudioAttributes;->getUsage()I
-HSPLandroid/media/AudioAttributes;->hashCode()I
-HSPLandroid/media/AudioAttributes;->isSystemUsage(I)Z
-HSPLandroid/media/AudioAttributes;->toVolumeStreamType(ZLandroid/media/AudioAttributes;)I
-HSPLandroid/media/AudioAttributes;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/media/AudioDeviceCallback;-><init>()V
-HSPLandroid/media/AudioDeviceInfo;-><init>(Landroid/media/AudioDevicePort;)V
-HSPLandroid/media/AudioDeviceInfo;->convertInternalDeviceToDeviceType(I)I
-HSPLandroid/media/AudioDeviceInfo;->getId()I
-HSPLandroid/media/AudioDeviceInfo;->getType()I
-HSPLandroid/media/AudioDevicePort;-><init>(Landroid/media/AudioHandle;Ljava/lang/String;Ljava/util/List;[Landroid/media/AudioGain;ILjava/lang/String;[I[ILjava/util/List;)V
-HSPLandroid/media/AudioDevicePort;-><init>(Landroid/media/AudioHandle;Ljava/lang/String;[I[I[I[I[Landroid/media/AudioGain;ILjava/lang/String;[I[I)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
-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;->getOnAudioFocusChangeListener()Landroid/media/AudioManager$OnAudioFocusChangeListener;
-HSPLandroid/media/AudioFocusRequest;->isValidFocusGain(I)Z
-HSPLandroid/media/AudioFormat$Builder;-><init>()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;
-HSPLandroid/media/AudioFormat;-><init>(IIIII)V
-HSPLandroid/media/AudioFormat;->getBytesPerSample(I)I
-HSPLandroid/media/AudioFormat;->getChannelCount()I
-HSPLandroid/media/AudioFormat;->getChannelMask()I
-HSPLandroid/media/AudioFormat;->getEncoding()I
-HSPLandroid/media/AudioFormat;->getPropertySetMask()I
-HSPLandroid/media/AudioFormat;->getSampleRate()I
-HSPLandroid/media/AudioFormat;->isEncodingLinearFrames(I)Z
-HSPLandroid/media/AudioFormat;->isEncodingLinearPcm(I)Z
-HSPLandroid/media/AudioFormat;->isPublicEncoding(I)Z
-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
-HSPLandroid/media/AudioManager$2;-><init>(Landroid/media/AudioManager;)V
-HSPLandroid/media/AudioManager$3;-><init>(Landroid/media/AudioManager;)V
-HSPLandroid/media/AudioManager$4;-><init>(Landroid/media/AudioManager;)V
-HSPLandroid/media/AudioManager$AudioPlaybackCallback;-><init>()V
-HSPLandroid/media/AudioManager$AudioPlaybackCallbackInfo;-><init>(Landroid/media/AudioManager$AudioPlaybackCallback;Landroid/os/Handler;)V
-HSPLandroid/media/AudioManager$AudioRecordingCallback;-><init>()V
-HSPLandroid/media/AudioManager$DevRoleListeners;-><init>(Landroid/media/AudioManager;)V
-HSPLandroid/media/AudioManager$DevRoleListeners;-><init>(Landroid/media/AudioManager;Landroid/media/AudioManager$DevRoleListeners-IA;)V
-HSPLandroid/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
-HSPLandroid/media/AudioManager$NativeEventHandlerDelegate;-><init>(Landroid/media/AudioManager;Landroid/media/AudioDeviceCallback;Landroid/os/Handler;)V
-HSPLandroid/media/AudioManager$NativeEventHandlerDelegate;->getHandler()Landroid/os/Handler;
-HSPLandroid/media/AudioManager$OnAmPortUpdateListener;-><init>(Landroid/media/AudioManager;)V
-HSPLandroid/media/AudioManager$OnAmPortUpdateListener;->onAudioPatchListUpdate([Landroid/media/AudioPatch;)V
-HSPLandroid/media/AudioManager$OnAmPortUpdateListener;->onAudioPortListUpdate([Landroid/media/AudioPort;)V
-HSPLandroid/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
-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;->abandonAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;)I
-HSPLandroid/media/AudioManager;->abandonAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;)I
-HSPLandroid/media/AudioManager;->areNavigationRepeatSoundEffectsEnabled()Z
-HSPLandroid/media/AudioManager;->broadcastDeviceListChange_sync(Landroid/os/Handler;)V
-HSPLandroid/media/AudioManager;->calcListDeltas(Ljava/util/ArrayList;Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;
-HSPLandroid/media/AudioManager;->checkFlags(Landroid/media/AudioDevicePort;I)Z
-HSPLandroid/media/AudioManager;->checkTypes(Landroid/media/AudioDevicePort;)Z
-HSPLandroid/media/AudioManager;->filterDevicePorts(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
-HSPLandroid/media/AudioManager;->generateAudioSessionId()I
-HSPLandroid/media/AudioManager;->getActiveRecordingConfigurations()Ljava/util/List;
-HSPLandroid/media/AudioManager;->getContext()Landroid/content/Context;
-HSPLandroid/media/AudioManager;->getDeviceForPortId(II)Landroid/media/AudioDeviceInfo;
-HSPLandroid/media/AudioManager;->getDevices(I)[Landroid/media/AudioDeviceInfo;
-HSPLandroid/media/AudioManager;->getDevicesForStream(I)I
-HSPLandroid/media/AudioManager;->getDevicesStatic(I)[Landroid/media/AudioDeviceInfo;
-HSPLandroid/media/AudioManager;->getIdForAudioFocusListener(Landroid/media/AudioManager$OnAudioFocusChangeListener;)Ljava/lang/String;
-HSPLandroid/media/AudioManager;->getMode()I
-HSPLandroid/media/AudioManager;->getProperty(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/media/AudioManager;->getRingerMode()I
-HSPLandroid/media/AudioManager;->getRingerModeInternal()I
-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
-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;
-HSPLandroid/media/AudioManager;->isBluetoothA2dpOn()Z
-HSPLandroid/media/AudioManager;->isBluetoothScoOn()Z
-HSPLandroid/media/AudioManager;->isInputDevice(I)Z
-HSPLandroid/media/AudioManager;->isMusicActive()Z
-HSPLandroid/media/AudioManager;->isPublicStreamType(I)Z
-HSPLandroid/media/AudioManager;->isSpeakerphoneOn()Z
-HSPLandroid/media/AudioManager;->isStreamMute(I)Z
-HSPLandroid/media/AudioManager;->isVolumeFixed()Z
-HSPLandroid/media/AudioManager;->isWiredHeadsetOn()Z
-HSPLandroid/media/AudioManager;->listAudioDevicePorts(Ljava/util/ArrayList;)I
-HSPLandroid/media/AudioManager;->playSoundEffect(I)V
-HSPLandroid/media/AudioManager;->playSoundEffect(II)V
-HSPLandroid/media/AudioManager;->preDispatchKeyEvent(Landroid/view/KeyEvent;I)V
-HSPLandroid/media/AudioManager;->registerAudioDeviceCallback(Landroid/media/AudioDeviceCallback;Landroid/os/Handler;)V
-HSPLandroid/media/AudioManager;->registerAudioFocusRequest(Landroid/media/AudioFocusRequest;)V
-HSPLandroid/media/AudioManager;->registerAudioPlaybackCallback(Landroid/media/AudioManager$AudioPlaybackCallback;Landroid/os/Handler;)V
-HSPLandroid/media/AudioManager;->registerAudioPortUpdateListener(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
-HSPLandroid/media/AudioManager;->registerAudioRecordingCallback(Landroid/media/AudioManager$AudioRecordingCallback;Landroid/os/Handler;)V
-HSPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioFocusRequest;Landroid/media/audiopolicy/AudioPolicy;)I
-HSPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;II)I
-HSPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;II)I
-HSPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;IILandroid/media/audiopolicy/AudioPolicy;)I
-HSPLandroid/media/AudioManager;->resetAudioPortGeneration()I
-HSPLandroid/media/AudioManager;->setContext(Landroid/content/Context;)V
-HSPLandroid/media/AudioManager;->setParameters(Ljava/lang/String;)V
-HSPLandroid/media/AudioManager;->unregisterAudioFocusRequest(Landroid/media/AudioManager$OnAudioFocusChangeListener;)V
-HSPLandroid/media/AudioManager;->updateAudioPortCache(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)I
-HSPLandroid/media/AudioManager;->updatePortConfig(Landroid/media/AudioPortConfig;Ljava/util/ArrayList;)Landroid/media/AudioPortConfig;
-HSPLandroid/media/AudioMixPort;-><init>(Landroid/media/AudioHandle;IILjava/lang/String;Ljava/util/List;[Landroid/media/AudioGain;)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$IPlayerShell;-><init>(Landroid/media/AudioPlaybackConfiguration;Landroid/media/IPlayer;)V
-HSPLandroid/media/AudioPlaybackConfiguration;->getAudioAttributes()Landroid/media/AudioAttributes;
-HSPLandroid/media/AudioPlaybackConfiguration;->isActive()Z
-HSPLandroid/media/AudioPort$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I
-HSPLandroid/media/AudioPort;-><init>(Landroid/media/AudioHandle;ILjava/lang/String;Ljava/util/List;[Landroid/media/AudioGain;Ljava/util/List;)V+]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/stream/Stream;Ljava/util/stream/IntPipeline$4;,Ljava/util/stream/ReferencePipeline$Head;]Ljava/util/stream/IntStream;Ljava/util/stream/IntPipeline$Head;,Ljava/util/stream/ReferencePipeline$4;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Landroid/media/AudioProfile;Landroid/media/AudioProfile;]Ljava/util/Set;Ljava/util/HashSet;
-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;->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
-HSPLandroid/media/AudioPortEventHandler$1;-><init>(Landroid/media/AudioPortEventHandler;Landroid/os/Looper;)V
-HSPLandroid/media/AudioPortEventHandler$1;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/media/AudioPortEventHandler;->handler()Landroid/os/Handler;
-HSPLandroid/media/AudioPortEventHandler;->init()V
-HSPLandroid/media/AudioPortEventHandler;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
-HSPLandroid/media/AudioPortEventHandler;->registerListener(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
-HSPLandroid/media/AudioProfile;-><init>(I[I[I[II)V
-HSPLandroid/media/AudioProfile;->getChannelIndexMasks()[I
-HSPLandroid/media/AudioProfile;->getChannelMasks()[I
-HSPLandroid/media/AudioProfile;->getFormat()I
-HSPLandroid/media/AudioProfile;->getSampleRates()[I
-HSPLandroid/media/AudioRecord;-><init>(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;II)V
-HSPLandroid/media/AudioRecord;->audioBuffSizeCheck(I)V
-HSPLandroid/media/AudioRecord;->audioParamCheck(III)V
-HSPLandroid/media/AudioRecord;->getChannelMaskFromLegacyConfig(IZ)I
-HSPLandroid/media/AudioRecord;->getMinBufferSize(III)I
-HSPLandroid/media/AudioRecord;->release()V
-HSPLandroid/media/AudioRecord;->stop()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;->toString()Ljava/lang/String;
-HSPLandroid/media/AudioRoutesInfo;->typeToString(I)Ljava/lang/String;
-HSPLandroid/media/AudioSystem;->getOutputDeviceName(I)Ljava/lang/String;
-HSPLandroid/media/AudioSystem;->getPlatformType(Landroid/content/Context;)I
-HSPLandroid/media/AudioSystem;->isSingleVolume(Landroid/content/Context;)Z
-HSPLandroid/media/AudioSystem;->streamToString(I)Ljava/lang/String;
-HSPLandroid/media/AudioTimestamp;-><init>()V
-HSPLandroid/media/AudioTrack;-><init>(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;III)V
-HSPLandroid/media/AudioTrack;->audioBuffSizeCheck(I)V
-HSPLandroid/media/AudioTrack;->audioParamCheck(IIIII)V
-HSPLandroid/media/AudioTrack;->blockUntilOffloadDrain(I)Z
-HSPLandroid/media/AudioTrack;->broadcastRoutingChange()V
-HSPLandroid/media/AudioTrack;->endStreamEventHandling()V
-HSPLandroid/media/AudioTrack;->finalize()V
-HSPLandroid/media/AudioTrack;->flush()V
-HSPLandroid/media/AudioTrack;->getMinBufferSize(III)I
-HSPLandroid/media/AudioTrack;->getPlayState()I
-HSPLandroid/media/AudioTrack;->getRoutedDevice()Landroid/media/AudioDeviceInfo;
-HSPLandroid/media/AudioTrack;->getSampleRate()I
-HSPLandroid/media/AudioTrack;->getState()I
-HSPLandroid/media/AudioTrack;->play()V
-HSPLandroid/media/AudioTrack;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
-HSPLandroid/media/AudioTrack;->release()V
-HSPLandroid/media/AudioTrack;->shouldEnablePowerSaving(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;II)Z
-HSPLandroid/media/AudioTrack;->startImpl()V
-HSPLandroid/media/AudioTrack;->stop()V
-HSPLandroid/media/AudioTrack;->testDisableNativeRoutingCallbacksLocked()V
-HSPLandroid/media/AudioTrack;->tryToDisableNativeRoutingCallback()V
-HSPLandroid/media/CallbackUtil$LazyListenerManager;-><init>()V
-HSPLandroid/media/IAudioFocusDispatcher$Stub;-><init>()V
-HSPLandroid/media/IAudioFocusDispatcher$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/media/IAudioRoutesObserver$Stub;-><init>()V
-HSPLandroid/media/IAudioRoutesObserver$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/media/IAudioRoutesObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/media/IAudioServerStateDispatcher$Stub;-><init>()V
-HSPLandroid/media/IAudioService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/media/IAudioService$Stub$Proxy;->abandonAudioFocus(Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Landroid/media/AudioAttributes;Ljava/lang/String;)I
-HSPLandroid/media/IAudioService$Stub$Proxy;->areNavigationRepeatSoundEffectsEnabled()Z
-HSPLandroid/media/IAudioService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/media/IAudioService$Stub$Proxy;->getActiveRecordingConfigurations()Ljava/util/List;
-HSPLandroid/media/IAudioService$Stub$Proxy;->getMode()I
-HSPLandroid/media/IAudioService$Stub$Proxy;->getRingerModeExternal()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
-HSPLandroid/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;->isMusicActive(Z)Z
-HSPLandroid/media/IAudioService$Stub$Proxy;->isStreamMute(I)Z
-HSPLandroid/media/IAudioService$Stub$Proxy;->isVolumeFixed()Z
-HSPLandroid/media/IAudioService$Stub$Proxy;->playSoundEffect(II)V
-HSPLandroid/media/IAudioService$Stub$Proxy;->playerAttributes(ILandroid/media/AudioAttributes;)V
-HSPLandroid/media/IAudioService$Stub$Proxy;->playerEvent(III)V
-HSPLandroid/media/IAudioService$Stub$Proxy;->registerRecordingCallback(Landroid/media/IRecordingConfigDispatcher;)V
-HSPLandroid/media/IAudioService$Stub$Proxy;->releasePlayer(I)V
-HSPLandroid/media/IAudioService$Stub$Proxy;->requestAudioFocus(Landroid/media/AudioAttributes;ILandroid/os/IBinder;Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/media/audiopolicy/IAudioPolicyCallback;I)I
-HSPLandroid/media/IAudioService$Stub$Proxy;->startWatchingRoutes(Landroid/media/IAudioRoutesObserver;)Landroid/media/AudioRoutesInfo;
-HSPLandroid/media/IAudioService$Stub$Proxy;->trackPlayer(Landroid/media/PlayerBase$PlayerIdCard;)I
-HSPLandroid/media/IAudioService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IAudioService;
-HSPLandroid/media/IMediaRouter2Manager$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/media/IMediaRouter2Manager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/media/IMediaRouterClient$Stub;-><init>()V
-HSPLandroid/media/IMediaRouterClient$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/media/IMediaRouterClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/media/IMediaRouterService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-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;->setDiscoveryRequest(Landroid/media/IMediaRouterClient;IZ)V
-HSPLandroid/media/IMediaRouterService$Stub$Proxy;->setSelectedRoute(Landroid/media/IMediaRouterClient;Ljava/lang/String;Z)V
-HSPLandroid/media/IMediaRouterService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaRouterService;
-HSPLandroid/media/IPlaybackConfigDispatcher$Stub;-><init>()V
-HSPLandroid/media/IPlaybackConfigDispatcher$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/media/IPlayer$Stub;-><init>()V
-HSPLandroid/media/IPlayer$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/media/IPlayer$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IPlayer;
-HSPLandroid/media/IRecordingConfigDispatcher$Stub;-><init>()V
-HSPLandroid/media/IRecordingConfigDispatcher$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/media/IRemoteSessionCallback$Stub;-><init>()V
-HSPLandroid/media/IRemoteVolumeObserver$Stub;-><init>()V
-HSPLandroid/media/MediaCodec$BufferInfo;-><init>()V
-HSPLandroid/media/MediaCodec$BufferInfo;->set(IIJI)V
-HSPLandroid/media/MediaCodec$BufferMap$CodecBuffer;->free()V
-HSPLandroid/media/MediaCodec$BufferMap$CodecBuffer;->setByteBuffer(Ljava/nio/ByteBuffer;)V
-HSPLandroid/media/MediaCodec$BufferMap;-><init>()V
-HSPLandroid/media/MediaCodec$BufferMap;-><init>(Landroid/media/MediaCodec$BufferMap-IA;)V
-HSPLandroid/media/MediaCodec$BufferMap;->clear()V
-HSPLandroid/media/MediaCodec$BufferMap;->put(ILjava/nio/ByteBuffer;)V+]Landroid/media/MediaCodec$BufferMap$CodecBuffer;Landroid/media/MediaCodec$BufferMap$CodecBuffer;]Ljava/util/Map;Ljava/util/HashMap;
-HSPLandroid/media/MediaCodec$BufferMap;->remove(I)V+]Landroid/media/MediaCodec$BufferMap$CodecBuffer;Landroid/media/MediaCodec$BufferMap$CodecBuffer;]Ljava/util/Map;Ljava/util/HashMap;
-HSPLandroid/media/MediaCodec$CryptoInfo$Pattern;-><init>(II)V
-HSPLandroid/media/MediaCodec$CryptoInfo$Pattern;->set(II)V
-HSPLandroid/media/MediaCodec$CryptoInfo;-><init>()V
-HSPLandroid/media/MediaCodec$EventHandler;-><init>(Landroid/media/MediaCodec;Landroid/media/MediaCodec;Landroid/os/Looper;)V
-HSPLandroid/media/MediaCodec;-><clinit>()V
-HSPLandroid/media/MediaCodec;-><init>(Ljava/lang/String;ZZ)V
-HSPLandroid/media/MediaCodec;-><init>(Ljava/lang/String;ZZII)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+]Landroid/media/MediaCodec$BufferInfo;Landroid/media/MediaCodec$BufferInfo;]Ljava/util/Map;Ljava/util/HashMap;
-HSPLandroid/media/MediaCodec;->finalize()V
-HSPLandroid/media/MediaCodec;->freeAllTrackedBuffers()V
-HSPLandroid/media/MediaCodec;->getInputBuffer(I)Ljava/nio/ByteBuffer;+]Landroid/media/MediaCodec$BufferMap;Landroid/media/MediaCodec$BufferMap;
-HSPLandroid/media/MediaCodec;->getOutputBuffer(I)Ljava/nio/ByteBuffer;+]Landroid/media/MediaCodec$BufferMap;Landroid/media/MediaCodec$BufferMap;
-HSPLandroid/media/MediaCodec;->getOutputFormat()Landroid/media/MediaFormat;
-HSPLandroid/media/MediaCodec;->lockAndGetContext()J+]Ljava/util/concurrent/locks/Lock;Ljava/util/concurrent/locks/ReentrantLock;
-HSPLandroid/media/MediaCodec;->queueInputBuffer(IIIJI)V+]Landroid/media/MediaCodec$BufferMap;Landroid/media/MediaCodec$BufferMap;
-HSPLandroid/media/MediaCodec;->release()V
-HSPLandroid/media/MediaCodec;->releaseOutputBuffer(IZ)V
-HSPLandroid/media/MediaCodec;->releaseOutputBufferInternal(IZZJ)V+]Landroid/media/MediaCodec$BufferMap;Landroid/media/MediaCodec$BufferMap;]Ljava/util/Map;Ljava/util/HashMap;
-HSPLandroid/media/MediaCodec;->setAndUnlockContext(J)V+]Ljava/util/concurrent/locks/Lock;Ljava/util/concurrent/locks/ReentrantLock;
-HSPLandroid/media/MediaCodec;->start()V
-HSPLandroid/media/MediaCodec;->stop()V
-HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->applyLevelLimits()V
-HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->applyLimits([Landroid/util/Range;Landroid/util/Range;)V
-HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->createDiscreteSampleRates()V
-HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->getDefaultFormat(Landroid/media/MediaFormat;)V
-HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->getMaxInputChannelCount()I
-HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->initWithPlatformLimits()V
-HSPLandroid/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
-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;
-HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->getAudioCapabilities()Landroid/media/MediaCodecInfo$AudioCapabilities;
-HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->getMimeType()Ljava/lang/String;
-HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->getVideoCapabilities()Landroid/media/MediaCodecInfo$VideoCapabilities;
-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$LazyHolder;->-$$Nest$sfgetSIZE_RANGE()Landroid/util/Range;
-HSPLandroid/media/MediaCodecInfo$LazyHolder;-><clinit>()V
-HSPLandroid/media/MediaCodecInfo$VideoCapabilities$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-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
-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
-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
-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/MediaDescription$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaDescription;
-HSPLandroid/media/MediaDescription$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/media/MediaDescription;-><init>(Landroid/os/Parcel;)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;)V
-HSPLandroid/media/MediaDescription;->toString()Ljava/lang/String;
-HSPLandroid/media/MediaFormat;-><init>()V
-HSPLandroid/media/MediaFormat;-><init>(Ljava/util/Map;)V
-HSPLandroid/media/MediaFormat;->containsKey(Ljava/lang/String;)Z
-HSPLandroid/media/MediaFormat;->createVideoFormat(Ljava/lang/String;II)Landroid/media/MediaFormat;
-HSPLandroid/media/MediaFormat;->getInteger(Ljava/lang/String;)I
-HSPLandroid/media/MediaFormat;->getString(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/media/MediaFormat;->setFloat(Ljava/lang/String;F)V
-HSPLandroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
-HSPLandroid/media/MediaFormat;->setString(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/media/MediaFrameworkPlatformInitializer$$ExternalSyntheticLambda0;->createService(Landroid/content/Context;)Ljava/lang/Object;
-HSPLandroid/media/MediaFrameworkPlatformInitializer;->getMediaServiceManager()Landroid/media/MediaServiceManager;
-HSPLandroid/media/MediaFrameworkPlatformInitializer;->lambda$registerServiceWrappers$0(Landroid/content/Context;)Landroid/media/session/MediaSessionManager;
-HSPLandroid/media/MediaFrameworkPlatformInitializer;->setMediaServiceManager(Landroid/media/MediaServiceManager;)V
-HSPLandroid/media/MediaMetadata$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaMetadata;
-HSPLandroid/media/MediaMetadata$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/media/MediaMetadata$Builder;-><init>(Landroid/media/MediaMetadata;)V
-HSPLandroid/media/MediaMetadata$Builder;->build()Landroid/media/MediaMetadata;
-HSPLandroid/media/MediaMetadata$Builder;->setBitmapDimensionLimit(I)Landroid/media/MediaMetadata$Builder;
-HSPLandroid/media/MediaMetadata;-><init>(Landroid/os/Parcel;)V
-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;->size()I
-HSPLandroid/media/MediaMetadata;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/media/MediaMetadataRetriever;-><init>()V
-HSPLandroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String;
-HSPLandroid/media/MediaMetadataRetriever;->finalize()V
-HSPLandroid/media/MediaMetadataRetriever;->setDataSource(Ljava/io/FileDescriptor;)V
-HSPLandroid/media/MediaMetadataRetriever;->setDataSource(Ljava/io/FileDescriptor;JJ)V
-HSPLandroid/media/MediaPlayer$2$1;->getSubtitleLooper()Landroid/os/Looper;
-HSPLandroid/media/MediaPlayer$2$1;->setSubtitleWidget(Landroid/media/SubtitleTrack$RenderingWidget;)V
-HSPLandroid/media/MediaPlayer$2;->run()V
-HSPLandroid/media/MediaPlayer$3;-><init>(Landroid/media/MediaPlayer;)V
-HSPLandroid/media/MediaPlayer$7;-><init>(Landroid/media/MediaPlayer;)V
-HSPLandroid/media/MediaPlayer$7;->onCompletion(Landroid/media/MediaPlayer;)V
-HSPLandroid/media/MediaPlayer$EventHandler;-><init>(Landroid/media/MediaPlayer;Landroid/media/MediaPlayer;Landroid/os/Looper;)V
-HSPLandroid/media/MediaPlayer$EventHandler;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/media/MediaPlayer$TimeProvider$EventHandler;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/media/MediaPlayer$TimeProvider;-><init>(Landroid/media/MediaPlayer;)V
-HSPLandroid/media/MediaPlayer$TimeProvider;->close()V
-HSPLandroid/media/MediaPlayer$TimeProvider;->finalize()V
-HSPLandroid/media/MediaPlayer$TimeProvider;->getCurrentTimeUs(ZZ)J
-HSPLandroid/media/MediaPlayer$TimeProvider;->notifySeek()V
-HSPLandroid/media/MediaPlayer$TimeProvider;->onPaused(Z)V
-HSPLandroid/media/MediaPlayer$TimeProvider;->scheduleNotification(IJ)V
-HSPLandroid/media/MediaPlayer$TrackInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaPlayer$TrackInfo;
-HSPLandroid/media/MediaPlayer$TrackInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/media/MediaPlayer$TrackInfo$1;->newArray(I)[Landroid/media/MediaPlayer$TrackInfo;
-HSPLandroid/media/MediaPlayer$TrackInfo$1;->newArray(I)[Ljava/lang/Object;
-HSPLandroid/media/MediaPlayer$TrackInfo;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/media/MediaPlayer$TrackInfo;->getTrackType()I
-HSPLandroid/media/MediaPlayer;-><init>()V
-HSPLandroid/media/MediaPlayer;->attemptDataSource(Landroid/content/ContentResolver;Landroid/net/Uri;)Z
-HSPLandroid/media/MediaPlayer;->cleanDrmObj()V
-HSPLandroid/media/MediaPlayer;->finalize()V
-HSPLandroid/media/MediaPlayer;->getInbandTrackInfo()[Landroid/media/MediaPlayer$TrackInfo;
-HSPLandroid/media/MediaPlayer;->getMediaTimeProvider()Landroid/media/MediaTimeProvider;
-HSPLandroid/media/MediaPlayer;->invoke(Landroid/os/Parcel;Landroid/os/Parcel;)V
-HSPLandroid/media/MediaPlayer;->playerSetVolume(ZFF)V
-HSPLandroid/media/MediaPlayer;->populateInbandTracks()V
-HSPLandroid/media/MediaPlayer;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
-HSPLandroid/media/MediaPlayer;->prepare()V
-HSPLandroid/media/MediaPlayer;->release()V
-HSPLandroid/media/MediaPlayer;->reset()V
-HSPLandroid/media/MediaPlayer;->resetDrmState()V
-HSPLandroid/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
-HSPLandroid/media/MediaPlayer;->setDataSource(Ljava/io/FileDescriptor;)V
-HSPLandroid/media/MediaPlayer;->setDataSource(Ljava/io/FileDescriptor;JJ)V
-HSPLandroid/media/MediaPlayer;->setOnCompletionListener(Landroid/media/MediaPlayer$OnCompletionListener;)V
-HSPLandroid/media/MediaPlayer;->setOnErrorListener(Landroid/media/MediaPlayer$OnErrorListener;)V
-HSPLandroid/media/MediaPlayer;->setSubtitleAnchor()V
-HSPLandroid/media/MediaPlayer;->setVolume(FF)V
-HSPLandroid/media/MediaPlayer;->start()V
-HSPLandroid/media/MediaPlayer;->stayAwake(Z)V
-HSPLandroid/media/MediaPlayer;->tryToDisableNativeRoutingCallback()V
-HSPLandroid/media/MediaPlayer;->tryToEnableNativeRoutingCallback()V
-HSPLandroid/media/MediaRoute2Info$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaRoute2Info;
-HSPLandroid/media/MediaRoute2Info$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/media/MediaRoute2Info$Builder;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;)V
-HSPLandroid/media/MediaRoute2Info$Builder;->addFeature(Ljava/lang/String;)Landroid/media/MediaRoute2Info$Builder;
-HSPLandroid/media/MediaRoute2Info$Builder;->build()Landroid/media/MediaRoute2Info;
-HSPLandroid/media/MediaRoute2Info$Builder;->setConnectionState(I)Landroid/media/MediaRoute2Info$Builder;
-HSPLandroid/media/MediaRoute2Info$Builder;->setVolume(I)Landroid/media/MediaRoute2Info$Builder;
-HSPLandroid/media/MediaRoute2Info$Builder;->setVolumeHandling(I)Landroid/media/MediaRoute2Info$Builder;
-HSPLandroid/media/MediaRoute2Info$Builder;->setVolumeMax(I)Landroid/media/MediaRoute2Info$Builder;
-HSPLandroid/media/MediaRoute2Info;-><init>(Landroid/media/MediaRoute2Info$Builder;)V
-HSPLandroid/media/MediaRoute2Info;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/media/MediaRoute2Info;->getId()Ljava/lang/String;
-HSPLandroid/media/MediaRoute2Info;->getOriginalId()Ljava/lang/String;
-HSPLandroid/media/MediaRoute2Info;->isSystemRoute()Z
-HSPLandroid/media/MediaRoute2ProviderInfo$Builder;-><init>()V
-HSPLandroid/media/MediaRoute2ProviderInfo$Builder;->addRoute(Landroid/media/MediaRoute2Info;)Landroid/media/MediaRoute2ProviderInfo$Builder;
-HSPLandroid/media/MediaRoute2ProviderInfo$Builder;->build()Landroid/media/MediaRoute2ProviderInfo;
-HSPLandroid/media/MediaRoute2ProviderInfo;-><init>(Landroid/media/MediaRoute2ProviderInfo$Builder;)V
-HSPLandroid/media/MediaRouter$Callback;-><init>()V
-HSPLandroid/media/MediaRouter$CallbackInfo;-><init>(Landroid/media/MediaRouter$Callback;IILandroid/media/MediaRouter;)V
-HSPLandroid/media/MediaRouter$CallbackInfo;->filterRouteEvent(I)Z
-HSPLandroid/media/MediaRouter$CallbackInfo;->filterRouteEvent(Landroid/media/MediaRouter$RouteInfo;)Z
-HSPLandroid/media/MediaRouter$RouteCategory;-><init>(IIZ)V
-HSPLandroid/media/MediaRouter$RouteCategory;-><init>(Ljava/lang/CharSequence;IZ)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;->getAllPresentationDisplays()[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;->isBluetooth()Z
-HSPLandroid/media/MediaRouter$RouteInfo;->isConnecting()Z
-HSPLandroid/media/MediaRouter$RouteInfo;->isDefault()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
-HSPLandroid/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
-HSPLandroid/media/MediaRouter$Static$1$1;->run()V
-HSPLandroid/media/MediaRouter$Static$1;-><init>(Landroid/media/MediaRouter$Static;)V
-HSPLandroid/media/MediaRouter$Static$1;->dispatchAudioRoutesChanged(Landroid/media/AudioRoutesInfo;)V
-HSPLandroid/media/MediaRouter$Static$Client$1;-><init>(Landroid/media/MediaRouter$Static$Client;)V
-HSPLandroid/media/MediaRouter$Static$Client$1;->run()V
-HSPLandroid/media/MediaRouter$Static$Client;-><init>(Landroid/media/MediaRouter$Static;)V
-HSPLandroid/media/MediaRouter$Static$Client;->onRestoreRoute()V
-HSPLandroid/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;->getStreamVolume(I)I
-HSPLandroid/media/MediaRouter$Static;->isBluetoothA2dpOn()Z
-HSPLandroid/media/MediaRouter$Static;->isPlaybackActive()Z
-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;->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
-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
-HSPLandroid/media/MediaRouter$VolumeChangeReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-HSPLandroid/media/MediaRouter$WifiDisplayStatusChangedReceiver;-><init>()V
-HSPLandroid/media/MediaRouter2Manager;->getInstance(Landroid/content/Context;)Landroid/media/MediaRouter2Manager;
-HSPLandroid/media/MediaRouter2Utils;->toUniqueId(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/media/MediaRouter;-><init>(Landroid/content/Context;)V
-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;I)V
-HSPLandroid/media/MediaRouter;->dispatchRouteRemoved(Landroid/media/MediaRouter$RouteInfo;)V
-HSPLandroid/media/MediaRouter;->dispatchRouteSelected(ILandroid/media/MediaRouter$RouteInfo;)V
-HSPLandroid/media/MediaRouter;->dispatchRouteVolumeChanged(Landroid/media/MediaRouter$RouteInfo;)V
-HSPLandroid/media/MediaRouter;->findCallbackInfo(Landroid/media/MediaRouter$Callback;)I
-HSPLandroid/media/MediaRouter;->getDefaultRoute()Landroid/media/MediaRouter$RouteInfo;
-HSPLandroid/media/MediaRouter;->getRouteAt(I)Landroid/media/MediaRouter$RouteInfo;
-HSPLandroid/media/MediaRouter;->getRouteCount()I
-HSPLandroid/media/MediaRouter;->getSelectedRoute(I)Landroid/media/MediaRouter$RouteInfo;
-HSPLandroid/media/MediaRouter;->removeCallback(Landroid/media/MediaRouter$Callback;)V
-HSPLandroid/media/MediaRouter;->removeRouteStatic(Landroid/media/MediaRouter$RouteInfo;)V
-HSPLandroid/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;->systemVolumeChanged(I)V
-HSPLandroid/media/MediaRouter;->typesToString(I)Ljava/lang/String;
-HSPLandroid/media/MediaRouter;->updateWifiDisplayStatus(Landroid/hardware/display/WifiDisplayStatus;)V
-HSPLandroid/media/MediaServiceManager$ServiceRegisterer;-><init>(Ljava/lang/String;)V
-HSPLandroid/media/MediaServiceManager$ServiceRegisterer;->get()Landroid/os/IBinder;
-HSPLandroid/media/MediaServiceManager;-><init>()V
-HSPLandroid/media/MediaServiceManager;->getMediaCommunicationServiceRegisterer()Landroid/media/MediaServiceManager$ServiceRegisterer;
-HSPLandroid/media/MediaServiceManager;->getMediaSessionServiceRegisterer()Landroid/media/MediaServiceManager$ServiceRegisterer;
-HSPLandroid/media/PlayerBase$IPlayerWrapper;-><init>(Landroid/media/PlayerBase;)V
-HSPLandroid/media/PlayerBase$PlayerIdCard;-><init>(ILandroid/media/AudioAttributes;Landroid/media/IPlayer;I)V
-HSPLandroid/media/PlayerBase$PlayerIdCard;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/media/PlayerBase;-><init>(Landroid/media/AudioAttributes;I)V
-HSPLandroid/media/PlayerBase;->basePause()V
-HSPLandroid/media/PlayerBase;->baseRegisterPlayer(I)V
-HSPLandroid/media/PlayerBase;->baseRelease()V
-HSPLandroid/media/PlayerBase;->baseSetVolume(FF)V
-HSPLandroid/media/PlayerBase;->baseStart(I)V
-HSPLandroid/media/PlayerBase;->baseStop()V
-HSPLandroid/media/PlayerBase;->baseUpdateAudioAttributes(Landroid/media/AudioAttributes;)V
-HSPLandroid/media/PlayerBase;->baseUpdateDeviceId(Landroid/media/AudioDeviceInfo;)V
-HSPLandroid/media/PlayerBase;->deprecateStreamTypeForPlayback(ILjava/lang/String;Ljava/lang/String;)V
-HSPLandroid/media/PlayerBase;->getCurrentOpPackageName()Ljava/lang/String;
-HSPLandroid/media/PlayerBase;->getService()Landroid/media/IAudioService;
-HSPLandroid/media/PlayerBase;->getStartDelayMs()I
-HSPLandroid/media/PlayerBase;->resolvePlaybackSessionId(Landroid/content/Context;I)I
-HSPLandroid/media/PlayerBase;->updatePlayerVolume()V
-HSPLandroid/media/PlayerBase;->updateState(II)V
-HSPLandroid/media/RoutingSessionInfo$Builder;->build()Landroid/media/RoutingSessionInfo;
-HSPLandroid/media/RoutingSessionInfo;-><init>(Landroid/media/RoutingSessionInfo$Builder;)V
-HSPLandroid/media/RoutingSessionInfo;->convertToUniqueRouteIds(Ljava/util/List;)Ljava/util/List;
-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;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/media/SoundPool;-><init>(Landroid/content/Context;ILandroid/media/AudioAttributes;I)V
-HSPLandroid/media/SoundPool;->postEventFromNative(IIILjava/lang/Object;)V
-HSPLandroid/media/SoundPool;->setOnLoadCompleteListener(Landroid/media/SoundPool$OnLoadCompleteListener;)V
-HSPLandroid/media/SubtitleController$1;->handleMessage(Landroid/os/Message;)Z
-HSPLandroid/media/SubtitleController;-><init>(Landroid/content/Context;Landroid/media/MediaTimeProvider;Landroid/media/SubtitleController$Listener;)V
-HSPLandroid/media/SubtitleController;->doSelectDefaultTrack()V
-HSPLandroid/media/SubtitleController;->doSelectTrack(Landroid/media/SubtitleTrack;)V
-HSPLandroid/media/SubtitleController;->finalize()V
-HSPLandroid/media/SubtitleController;->getDefaultTrack()Landroid/media/SubtitleTrack;
-HSPLandroid/media/SubtitleController;->hide()V
-HSPLandroid/media/SubtitleController;->reset()V
-HSPLandroid/media/SubtitleController;->selectDefaultTrack()V
-HSPLandroid/media/SubtitleController;->selectTrack(Landroid/media/SubtitleTrack;)Z
-HSPLandroid/media/SubtitleController;->setAnchor(Landroid/media/SubtitleController$Anchor;)V
-HSPLandroid/media/Utils$1;-><init>()V
-HSPLandroid/media/Utils$1;->compare(Landroid/util/Range;Landroid/util/Range;)I
-HSPLandroid/media/Utils$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-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$ListenerList;-><init>()V
-HSPLandroid/media/Utils$ListenerList;-><init>(ZZZ)V
-HSPLandroid/media/Utils;->alignRange(Landroid/util/Range;I)Landroid/util/Range;
-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;
-HSPLandroid/media/Utils;->intersectSortedDistinctRanges([Landroid/util/Range;[Landroid/util/Range;)[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;
-HSPLandroid/media/Utils;->sortDistinctRanges([Landroid/util/Range;)V
-HSPLandroid/media/audiofx/AudioEffect$Descriptor;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;-><init>(II[Landroid/media/AudioAttributes;)V
-HSPLandroid/media/audiopolicy/AudioProductStrategy;-><init>(Ljava/lang/String;I[Landroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;)V
-HSPLandroid/media/audiopolicy/AudioProductStrategy;->attributesMatches(Landroid/media/AudioAttributes;Landroid/media/AudioAttributes;)Z
-HSPLandroid/media/audiopolicy/AudioProductStrategy;->getAudioAttributesForStrategyWithLegacyStreamType(I)Landroid/media/AudioAttributes;
-HSPLandroid/media/audiopolicy/AudioProductStrategy;->getAudioProductStrategies()Ljava/util/List;
-HSPLandroid/media/audiopolicy/AudioProductStrategy;->getLegacyStreamTypeForStrategyWithAudioAttributes(Landroid/media/AudioAttributes;)I
-HSPLandroid/media/audiopolicy/AudioProductStrategy;->initializeAudioProductStrategies()Ljava/util/List;
-HSPLandroid/media/browse/MediaBrowser$1;->run()V
-HSPLandroid/media/browse/MediaBrowser$2;->run()V
-HSPLandroid/media/browse/MediaBrowser$6;->run()V
-HSPLandroid/media/browse/MediaBrowser$ConnectionCallback;-><init>()V
-HSPLandroid/media/browse/MediaBrowser$MediaServiceConnection$1;->run()V
-HSPLandroid/media/browse/MediaBrowser$MediaServiceConnection;->isCurrent(Ljava/lang/String;)Z
-HSPLandroid/media/browse/MediaBrowser$MediaServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-HSPLandroid/media/browse/MediaBrowser$MediaServiceConnection;->postOrRun(Ljava/lang/Runnable;)V
-HSPLandroid/media/browse/MediaBrowser$ServiceCallbacks;->onConnect(Ljava/lang/String;Landroid/media/session/MediaSession$Token;Landroid/os/Bundle;)V
-HSPLandroid/media/browse/MediaBrowser;-><init>(Landroid/content/Context;Landroid/content/ComponentName;Landroid/media/browse/MediaBrowser$ConnectionCallback;Landroid/os/Bundle;)V
-HSPLandroid/media/browse/MediaBrowser;->connect()V
-HSPLandroid/media/browse/MediaBrowser;->disconnect()V
-HSPLandroid/media/browse/MediaBrowser;->forceCloseConnection()V
-HSPLandroid/media/browse/MediaBrowser;->isCurrent(Landroid/service/media/IMediaBrowserServiceCallbacks;Ljava/lang/String;)Z
-HSPLandroid/media/browse/MediaBrowserUtils;->areSameOptions(Landroid/os/Bundle;Landroid/os/Bundle;)Z
-HSPLandroid/media/metrics/Event;-><init>()V
-HSPLandroid/media/metrics/IMediaMetricsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/media/metrics/IMediaMetricsManager$Stub$Proxy;->getPlaybackSessionId(I)Ljava/lang/String;
-HSPLandroid/media/metrics/IMediaMetricsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/metrics/IMediaMetricsManager;
-HSPLandroid/media/metrics/LogSessionId;-><init>(Ljava/lang/String;)V
-HSPLandroid/media/metrics/MediaMetricsManager;-><init>(Landroid/media/metrics/IMediaMetricsManager;I)V
-HSPLandroid/media/metrics/MediaMetricsManager;->createPlaybackSession()Landroid/media/metrics/PlaybackSession;
-HSPLandroid/media/metrics/NetworkEvent$1;-><init>()V
-HSPLandroid/media/metrics/NetworkEvent;-><clinit>()V
-HSPLandroid/media/metrics/PlaybackSession;-><init>(Ljava/lang/String;Landroid/media/metrics/MediaMetricsManager;)V
-HSPLandroid/media/metrics/PlaybackSession;->getSessionId()Landroid/media/metrics/LogSessionId;
-HSPLandroid/media/permission/ClearCallingIdentityContext;-><init>()V
-HSPLandroid/media/permission/ClearCallingIdentityContext;->close()V
-HSPLandroid/media/permission/ClearCallingIdentityContext;->create()Landroid/media/permission/SafeCloseable;
-HSPLandroid/media/permission/Identity;-><init>()V
-HSPLandroid/media/session/IActiveSessionsListener$Stub;-><init>()V
-HSPLandroid/media/session/IActiveSessionsListener$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/media/session/IActiveSessionsListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/media/session/IOnMediaKeyEventDispatchedListener$Stub;-><init>()V
-HSPLandroid/media/session/IOnMediaKeyEventSessionChangedListener$Stub;-><init>()V
-HSPLandroid/media/session/ISession$Stub$Proxy;->destroySession()V
-HSPLandroid/media/session/ISession$Stub$Proxy;->getController()Landroid/media/session/ISessionController;
-HSPLandroid/media/session/ISession$Stub$Proxy;->setFlags(I)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/ISessionCallback$Stub;-><init>()V
-HSPLandroid/media/session/ISessionCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/media/session/ISessionController$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/media/session/ISessionController$Stub$Proxy;->getMetadata()Landroid/media/MediaMetadata;
-HSPLandroid/media/session/ISessionController$Stub$Proxy;->getPackageName()Ljava/lang/String;
-HSPLandroid/media/session/ISessionController$Stub$Proxy;->getPlaybackState()Landroid/media/session/PlaybackState;
-HSPLandroid/media/session/ISessionController$Stub$Proxy;->getVolumeAttributes()Landroid/media/session/MediaController$PlaybackInfo;
-HSPLandroid/media/session/ISessionController$Stub$Proxy;->registerCallback(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
-HSPLandroid/media/session/ISessionController$Stub$Proxy;->unregisterCallback(Landroid/media/session/ISessionControllerCallback;)V
-HSPLandroid/media/session/ISessionController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionController;
-HSPLandroid/media/session/ISessionControllerCallback$Stub;-><init>()V
-HSPLandroid/media/session/ISessionControllerCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/media/session/ISessionControllerCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/media/session/ISessionManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/media/session/ISessionManager$Stub$Proxy;->addSessionsListener(Landroid/media/session/IActiveSessionsListener;Landroid/content/ComponentName;I)V
-HSPLandroid/media/session/ISessionManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-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;
-HSPLandroid/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/MediaController$Callback;-><init>()V
-HSPLandroid/media/session/MediaController$CallbackStub;-><init>(Landroid/media/session/MediaController;)V
-HSPLandroid/media/session/MediaController$CallbackStub;->onMetadataChanged(Landroid/media/MediaMetadata;)V
-HSPLandroid/media/session/MediaController$CallbackStub;->onPlaybackStateChanged(Landroid/media/session/PlaybackState;)V
-HSPLandroid/media/session/MediaController$CallbackStub;->onSessionDestroyed()V
-HSPLandroid/media/session/MediaController$MessageHandler;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/media/session/MediaController$PlaybackInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/MediaController$PlaybackInfo;
-HSPLandroid/media/session/MediaController$PlaybackInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/media/session/MediaController$PlaybackInfo;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/media/session/MediaController$TransportControls;-><init>(Landroid/media/session/MediaController;)V
-HSPLandroid/media/session/MediaController;-><init>(Landroid/content/Context;Landroid/media/session/MediaSession$Token;)V
-HSPLandroid/media/session/MediaController;->addCallbackLocked(Landroid/media/session/MediaController$Callback;Landroid/os/Handler;)V
-HSPLandroid/media/session/MediaController;->getHandlerForCallbackLocked(Landroid/media/session/MediaController$Callback;)Landroid/media/session/MediaController$MessageHandler;
-HSPLandroid/media/session/MediaController;->getMetadata()Landroid/media/MediaMetadata;
-HSPLandroid/media/session/MediaController;->getPackageName()Ljava/lang/String;
-HSPLandroid/media/session/MediaController;->getPlaybackInfo()Landroid/media/session/MediaController$PlaybackInfo;
-HSPLandroid/media/session/MediaController;->getPlaybackState()Landroid/media/session/PlaybackState;
-HSPLandroid/media/session/MediaController;->getSessionToken()Landroid/media/session/MediaSession$Token;
-HSPLandroid/media/session/MediaController;->postMessage(ILjava/lang/Object;Landroid/os/Bundle;)V
-HSPLandroid/media/session/MediaController;->registerCallback(Landroid/media/session/MediaController$Callback;Landroid/os/Handler;)V
-HSPLandroid/media/session/MediaController;->removeCallbackLocked(Landroid/media/session/MediaController$Callback;)Z
-HSPLandroid/media/session/MediaController;->unregisterCallback(Landroid/media/session/MediaController$Callback;)V
-HSPLandroid/media/session/MediaSession$Callback;-><init>()V
-HSPLandroid/media/session/MediaSession$CallbackMessageHandler;-><init>(Landroid/media/session/MediaSession;Landroid/os/Looper;Landroid/media/session/MediaSession$Callback;)V
-HSPLandroid/media/session/MediaSession$CallbackStub;-><init>(Landroid/media/session/MediaSession;)V
-HSPLandroid/media/session/MediaSession$Token$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/MediaSession$Token;
-HSPLandroid/media/session/MediaSession$Token$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/media/session/MediaSession$Token;-><init>(ILandroid/media/session/ISessionController;)V
-HSPLandroid/media/session/MediaSession$Token;->equals(Ljava/lang/Object;)Z
-HSPLandroid/media/session/MediaSession$Token;->getBinder()Landroid/media/session/ISessionController;
-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
-HSPLandroid/media/session/MediaSession;->getSessionToken()Landroid/media/session/MediaSession$Token;
-HSPLandroid/media/session/MediaSession;->hasCustomParcelable(Landroid/os/Bundle;)Z
-HSPLandroid/media/session/MediaSession;->isActive()Z
-HSPLandroid/media/session/MediaSession;->release()V
-HSPLandroid/media/session/MediaSession;->setActive(Z)V
-HSPLandroid/media/session/MediaSession;->setCallback(Landroid/media/session/MediaSession$Callback;)V
-HSPLandroid/media/session/MediaSession;->setCallback(Landroid/media/session/MediaSession$Callback;Landroid/os/Handler;)V
-HSPLandroid/media/session/MediaSession;->setFlags(I)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/MediaSessionManager$OnMediaKeyEventDispatchedListenerStub;-><init>(Landroid/media/session/MediaSessionManager;)V
-HSPLandroid/media/session/MediaSessionManager$OnMediaKeyEventSessionChangedListenerStub;-><init>(Landroid/media/session/MediaSessionManager;)V
-HSPLandroid/media/session/MediaSessionManager$RemoteSessionCallbackStub;-><init>(Landroid/media/session/MediaSessionManager;)V
-HSPLandroid/media/session/MediaSessionManager$RemoteUserInfo;-><init>(Ljava/lang/String;II)V
-HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper$1$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper$1;-><init>(Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;)V
-HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper$1;->onActiveSessionsChanged(Ljava/util/List;)V
-HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper;->-$$Nest$fgetmStub(Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;)Landroid/media/session/IActiveSessionsListener$Stub;
-HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper;->-$$Nest$mcallOnActiveSessionsChangedListener(Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;Ljava/util/List;)V
-HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper;-><init>(Landroid/content/Context;Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;Ljava/util/concurrent/Executor;)V
-HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper;->callOnActiveSessionsChangedListener(Ljava/util/List;)V
-HSPLandroid/media/session/MediaSessionManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/media/session/MediaSessionManager;->addOnActiveSessionsChangedListener(Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;Landroid/content/ComponentName;ILjava/util/concurrent/Executor;)V
-HSPLandroid/media/session/MediaSessionManager;->addOnActiveSessionsChangedListener(Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;Landroid/content/ComponentName;Landroid/os/Handler;)V
-HSPLandroid/media/session/MediaSessionManager;->createSession(Landroid/media/session/MediaSession$CallbackStub;Ljava/lang/String;Landroid/os/Bundle;)Landroid/media/session/ISession;
-HSPLandroid/media/session/MediaSessionManager;->dispatchVolumeKeyEventInternal(Landroid/view/KeyEvent;IZZ)V
-HSPLandroid/media/session/MediaSessionManager;->getActiveSessions(Landroid/content/ComponentName;)Ljava/util/List;
-HSPLandroid/media/session/MediaSessionManager;->getActiveSessionsForUser(Landroid/content/ComponentName;I)Ljava/util/List;
-HSPLandroid/media/session/PlaybackState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/PlaybackState;
-HSPLandroid/media/session/PlaybackState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/media/session/PlaybackState$Builder;-><init>()V
-HSPLandroid/media/session/PlaybackState$Builder;->build()Landroid/media/session/PlaybackState;
-HSPLandroid/media/session/PlaybackState$Builder;->setActions(J)Landroid/media/session/PlaybackState$Builder;
-HSPLandroid/media/session/PlaybackState$Builder;->setActiveQueueItemId(J)Landroid/media/session/PlaybackState$Builder;
-HSPLandroid/media/session/PlaybackState$Builder;->setBufferedPosition(J)Landroid/media/session/PlaybackState$Builder;
-HSPLandroid/media/session/PlaybackState$Builder;->setErrorMessage(Ljava/lang/CharSequence;)Landroid/media/session/PlaybackState$Builder;
-HSPLandroid/media/session/PlaybackState$Builder;->setExtras(Landroid/os/Bundle;)Landroid/media/session/PlaybackState$Builder;
-HSPLandroid/media/session/PlaybackState$Builder;->setState(IJFJ)Landroid/media/session/PlaybackState$Builder;
-HSPLandroid/media/session/PlaybackState$CustomAction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/PlaybackState$CustomAction;
-HSPLandroid/media/session/PlaybackState$CustomAction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/media/session/PlaybackState;-><init>(IJJFJJLjava/util/List;JLjava/lang/CharSequence;Landroid/os/Bundle;)V
-HSPLandroid/media/session/PlaybackState;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/media/session/PlaybackState;->getPosition()J
-HSPLandroid/media/session/PlaybackState;->getState()I
-HSPLandroid/media/session/PlaybackState;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/metrics/LogMaker;-><init>(I)V
-HSPLandroid/metrics/LogMaker;->addTaggedData(ILjava/lang/Object;)Landroid/metrics/LogMaker;
-HSPLandroid/metrics/LogMaker;->getEntries()Landroid/util/SparseArray;
-HSPLandroid/metrics/LogMaker;->getType()I
-HSPLandroid/metrics/LogMaker;->isValidValue(Ljava/lang/Object;)Z
-HSPLandroid/metrics/LogMaker;->serialize()[Ljava/lang/Object;
-HSPLandroid/metrics/LogMaker;->setCategory(I)Landroid/metrics/LogMaker;
-HSPLandroid/metrics/LogMaker;->setComponentName(Landroid/content/ComponentName;)Landroid/metrics/LogMaker;
-HSPLandroid/metrics/LogMaker;->setSubtype(I)Landroid/metrics/LogMaker;
-HSPLandroid/metrics/LogMaker;->setType(I)Landroid/metrics/LogMaker;
-HSPLandroid/multiuser/FeatureFlagsImpl;-><init>()V
-HSPLandroid/multiuser/FeatureFlagsImpl;->enableSystemUserOnlyForServicesAndProviders()Z
-HSPLandroid/multiuser/Flags;-><clinit>()V
-HSPLandroid/multiuser/Flags;->enableSystemUserOnlyForServicesAndProviders()Z+]Landroid/multiuser/FeatureFlags;Landroid/multiuser/FeatureFlagsImpl;
-HSPLandroid/net/Credentials;-><init>(III)V
-HSPLandroid/net/Credentials;->getPid()I
-HSPLandroid/net/Credentials;->getUid()I
-HSPLandroid/net/INetworkPolicyListener$Stub;-><init>()V
-HSPLandroid/net/INetworkPolicyListener$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/net/INetworkPolicyListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/net/INetworkPolicyManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/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;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkPolicyManager;
-HSPLandroid/net/INetworkScoreCache$Stub;-><init>()V
-HSPLandroid/net/INetworkScoreCache$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/net/INetworkScoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkScoreService;
-HSPLandroid/net/LocalServerSocket;-><init>(Ljava/io/FileDescriptor;)V
-HSPLandroid/net/LocalServerSocket;->accept()Landroid/net/LocalSocket;
-HSPLandroid/net/LocalServerSocket;->close()V
-HSPLandroid/net/LocalServerSocket;->getFileDescriptor()Ljava/io/FileDescriptor;
-HSPLandroid/net/LocalSocket;-><init>(Landroid/net/LocalSocketImpl;I)V
-HSPLandroid/net/LocalSocket;->checkConnected()V
-HSPLandroid/net/LocalSocket;->close()V
-HSPLandroid/net/LocalSocket;->createLocalSocketForAccept(Landroid/net/LocalSocketImpl;)Landroid/net/LocalSocket;
-HSPLandroid/net/LocalSocket;->getFileDescriptor()Ljava/io/FileDescriptor;
-HSPLandroid/net/LocalSocket;->getInputStream()Ljava/io/InputStream;
-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([BII)I
-HSPLandroid/net/LocalSocketImpl$SocketOutputStream;-><init>(Landroid/net/LocalSocketImpl;)V
-HSPLandroid/net/LocalSocketImpl$SocketOutputStream;->write(I)V
-HSPLandroid/net/LocalSocketImpl$SocketOutputStream;->write([BII)V
-HSPLandroid/net/LocalSocketImpl;->-$$Nest$fgetfd(Landroid/net/LocalSocketImpl;)Ljava/io/FileDescriptor;
-HSPLandroid/net/LocalSocketImpl;->-$$Nest$fgetwriteMonitor(Landroid/net/LocalSocketImpl;)Ljava/lang/Object;
-HSPLandroid/net/LocalSocketImpl;->-$$Nest$mwrite_native(Landroid/net/LocalSocketImpl;ILjava/io/FileDescriptor;)V
-HSPLandroid/net/LocalSocketImpl;->-$$Nest$mwriteba_native(Landroid/net/LocalSocketImpl;[BIILjava/io/FileDescriptor;)V
-HSPLandroid/net/LocalSocketImpl;-><init>()V
-HSPLandroid/net/LocalSocketImpl;-><init>(Ljava/io/FileDescriptor;)V
-HSPLandroid/net/LocalSocketImpl;->accept(Landroid/net/LocalSocketImpl;)V
-HSPLandroid/net/LocalSocketImpl;->bind(Landroid/net/LocalSocketAddress;)V
-HSPLandroid/net/LocalSocketImpl;->close()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;
-HSPLandroid/net/LocalSocketImpl;->getOutputStream()Ljava/io/OutputStream;
-HSPLandroid/net/LocalSocketImpl;->getPeerCredentials()Landroid/net/Credentials;
-HSPLandroid/net/LocalSocketImpl;->getSockAddress()Landroid/net/LocalSocketAddress;
-HSPLandroid/net/LocalSocketImpl;->listen(I)V
-HSPLandroid/net/LocalSocketImpl;->setOption(ILjava/lang/Object;)V
-HSPLandroid/net/MatchAllNetworkSpecifier;-><init>()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;->equals(Ljava/lang/Object;)Z
-HSPLandroid/net/NetworkKey;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/net/NetworkPolicyManager$Listener;-><init>()V
-HSPLandroid/net/NetworkPolicyManager$Listener;->onMeteredIfacesChanged([Ljava/lang/String;)V
-HSPLandroid/net/NetworkPolicyManager$Listener;->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;->getRestrictBackground()Z
-HSPLandroid/net/NetworkPolicyManager;->registerListener(Landroid/net/INetworkPolicyListener;)V
-HSPLandroid/net/NetworkScoreManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/net/NetworkScoreManager;->getActiveScorerPackage()Ljava/lang/String;
-HSPLandroid/net/NetworkScoreManager;->registerNetworkScoreCache(ILandroid/net/INetworkScoreCache;I)V
-HSPLandroid/net/NetworkSpecifier;-><init>()V
-HSPLandroid/net/Proxy;->setHttpProxyConfiguration(Landroid/net/ProxyInfo;)V
-HSPLandroid/net/Proxy;->setHttpProxyConfiguration(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V
-HSPLandroid/net/Proxy;->setHttpProxySystemProperty(Landroid/net/ProxyInfo;)V
-HSPLandroid/net/SSLCertificateSocketFactory;-><init>(ILandroid/net/SSLSessionCache;Z)V
-HSPLandroid/net/TelephonyNetworkSpecifier$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/TelephonyNetworkSpecifier;
-HSPLandroid/net/TelephonyNetworkSpecifier$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/net/TelephonyNetworkSpecifier$Builder;-><init>()V
-HSPLandroid/net/TelephonyNetworkSpecifier$Builder;->build()Landroid/net/TelephonyNetworkSpecifier;
-HSPLandroid/net/TelephonyNetworkSpecifier$Builder;->setSubscriptionId(I)Landroid/net/TelephonyNetworkSpecifier$Builder;
-HSPLandroid/net/TelephonyNetworkSpecifier;-><init>(I)V
-HSPLandroid/net/TelephonyNetworkSpecifier;->equals(Ljava/lang/Object;)Z
-HSPLandroid/net/TelephonyNetworkSpecifier;->hashCode()I
-HSPLandroid/net/TelephonyNetworkSpecifier;->toString()Ljava/lang/String;
-HSPLandroid/net/TelephonyNetworkSpecifier;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/net/Uri$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/Uri;+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/net/Uri$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/net/Uri$1;Landroid/net/Uri$1;
-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$AbstractHierarchicalUri-IA;)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;
-HSPLandroid/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;
-HSPLandroid/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$Builder;-><init>()V
-HSPLandroid/net/Uri$Builder;->appendEncodedPath(Ljava/lang/String;)Landroid/net/Uri$Builder;
-HSPLandroid/net/Uri$Builder;->appendPath(Ljava/lang/String;)Landroid/net/Uri$Builder;
-HSPLandroid/net/Uri$Builder;->appendQueryParameter(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder;
-HSPLandroid/net/Uri$Builder;->authority(Landroid/net/Uri$Part;)Landroid/net/Uri$Builder;
-HSPLandroid/net/Uri$Builder;->authority(Ljava/lang/String;)Landroid/net/Uri$Builder;
-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
-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;->scheme(Ljava/lang/String;)Landroid/net/Uri$Builder;
-HSPLandroid/net/Uri$Builder;->toString()Ljava/lang/String;+]Landroid/net/Uri$Builder;Landroid/net/Uri$Builder;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;
-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;->appendSspTo(Ljava/lang/StringBuilder;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/net/Uri$Part;Landroid/net/Uri$Part;,Landroid/net/Uri$Part$EmptyPart;]Landroid/net/Uri$PathPart;Landroid/net/Uri$PathPart;
-HSPLandroid/net/Uri$HierarchicalUri;->buildUpon()Landroid/net/Uri$Builder;+]Landroid/net/Uri$Builder;Landroid/net/Uri$Builder;
-HSPLandroid/net/Uri$HierarchicalUri;->generatePath(Landroid/net/Uri$PathPart;)Landroid/net/Uri$PathPart;+]Landroid/net/Uri$Part;Landroid/net/Uri$Part$EmptyPart;,Landroid/net/Uri$Part;]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/net/Uri$HierarchicalUri;->getAuthority()Ljava/lang/String;
-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;
-HSPLandroid/net/Uri$HierarchicalUri;->isHierarchical()Z
-HSPLandroid/net/Uri$HierarchicalUri;->makeUriString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/net/Uri$Part;Landroid/net/Uri$Part$EmptyPart;
-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$OpaqueUri-IA;)V
-HSPLandroid/net/Uri$OpaqueUri;->getEncodedSchemeSpecificPart()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$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;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/net/Uri$PathPart;Landroid/net/Uri$PathPart;
-HSPLandroid/net/Uri$PathPart;->from(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$PathPart;
-HSPLandroid/net/Uri$PathPart;->fromDecoded(Ljava/lang/String;)Landroid/net/Uri$PathPart;
-HSPLandroid/net/Uri$PathPart;->fromEncoded(Ljava/lang/String;)Landroid/net/Uri$PathPart;
-HSPLandroid/net/Uri$PathPart;->getEncoded()Ljava/lang/String;
-HSPLandroid/net/Uri$PathPart;->getPathSegments()Landroid/net/Uri$PathSegments;+]Ljava/lang/String;Ljava/lang/String;]Landroid/net/Uri$PathSegmentsBuilder;Landroid/net/Uri$PathSegmentsBuilder;]Landroid/net/Uri$PathPart;Landroid/net/Uri$PathPart;
-HSPLandroid/net/Uri$PathPart;->makeAbsolute(Landroid/net/Uri$PathPart;)Landroid/net/Uri$PathPart;+]Ljava/lang/String;Ljava/lang/String;
-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
-HSPLandroid/net/Uri$PathSegmentsBuilder;->add(Ljava/lang/String;)V
-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$StringUri-IA;)V
-HSPLandroid/net/Uri$StringUri;->buildUpon()Landroid/net/Uri$Builder;+]Landroid/net/Uri$Builder;Landroid/net/Uri$Builder;]Landroid/net/Uri$StringUri;Landroid/net/Uri$StringUri;
-HSPLandroid/net/Uri$StringUri;->findFragmentSeparator()I+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/net/Uri$StringUri;->findSchemeSeparator()I+]Ljava/lang/String;Ljava/lang/String;
-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;
-HSPLandroid/net/Uri$StringUri;->getEncodedFragment()Ljava/lang/String;
-HSPLandroid/net/Uri$StringUri;->getEncodedPath()Ljava/lang/String;
-HSPLandroid/net/Uri$StringUri;->getEncodedQuery()Ljava/lang/String;
-HSPLandroid/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;
-HSPLandroid/net/Uri$StringUri;->isHierarchical()Z
-HSPLandroid/net/Uri$StringUri;->isRelative()Z
-HSPLandroid/net/Uri$StringUri;->parseAuthority(Ljava/lang/String;I)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/net/Uri$StringUri;->parseFragment()Ljava/lang/String;
-HSPLandroid/net/Uri$StringUri;->parsePath()Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/net/Uri$StringUri;->parsePath(Ljava/lang/String;I)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/net/Uri$StringUri;->parseQuery()Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/net/Uri$StringUri;->parseScheme()Ljava/lang/String;
-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-IA;)V
-HSPLandroid/net/Uri;->checkContentUriWithoutPermission(Ljava/lang/String;I)V
-HSPLandroid/net/Uri;->checkFileUriExposed(Ljava/lang/String;)V
-HSPLandroid/net/Uri;->compareTo(Landroid/net/Uri;)I
-HSPLandroid/net/Uri;->compareTo(Ljava/lang/Object;)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;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;
-HSPLandroid/net/Uri;->equals(Ljava/lang/Object;)Z
-HSPLandroid/net/Uri;->fromFile(Ljava/io/File;)Landroid/net/Uri;
-HSPLandroid/net/Uri;->fromParts(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;
-HSPLandroid/net/Uri;->getBooleanQueryParameter(Ljava/lang/String;Z)Z
-HSPLandroid/net/Uri;->getQueryParameter(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Landroid/net/Uri;Landroid/net/Uri$StringUri;
-HSPLandroid/net/Uri;->getQueryParameterNames()Ljava/util/Set;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/Set;Ljava/util/LinkedHashSet;]Landroid/net/Uri;Landroid/net/Uri$StringUri;
-HSPLandroid/net/Uri;->hashCode()I
-HSPLandroid/net/Uri;->isAbsolute()Z
-HSPLandroid/net/Uri;->isAllowed(CLjava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/net/Uri;->isOpaque()Z
-HSPLandroid/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+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Ljava/nio/charset/Charset;Lcom/android/icu/charset/CharsetICU;]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU;]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;
-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+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU;
-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>(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/net/WifiKey;->equals(Ljava/lang/Object;)Z
-HSPLandroid/net/WifiKey;->writeToParcel(Landroid/os/Parcel;I)V
-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;
-HSPLandroid/net/metrics/IpConnectivityLog;-><init>()V
-HSPLandroid/net/vcn/VcnTransportInfo$1;-><init>()V
-HSPLandroid/net/vcn/VcnTransportInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/vcn/VcnTransportInfo;
-HSPLandroid/net/vcn/VcnTransportInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/net/vcn/VcnTransportInfo;-><clinit>()V
-HSPLandroid/nfc/NfcFrameworkInitializer;->setNfcServiceManager(Landroid/nfc/NfcServiceManager;)V
-HSPLandroid/nfc/NfcServiceManager;-><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;-><init>(Ljava/util/List;Ljava/lang/String;)V
-HSPLandroid/nfc/cardemulation/AidGroup;->isValidCategory(Ljava/lang/String;)Z
-HSPLandroid/opengl/EGL14;->eglCreateWindowSurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Ljava/lang/Object;[II)Landroid/opengl/EGLSurface;
-HSPLandroid/opengl/EGLConfig;-><init>(J)V
-HSPLandroid/opengl/EGLContext;-><init>(J)V
-HSPLandroid/opengl/EGLDisplay;-><init>(J)V
-HSPLandroid/opengl/EGLObjectHandle;->getNativeHandle()J
-HSPLandroid/opengl/EGLSurface;-><init>(J)V
-HSPLandroid/opengl/GLES20;->glVertexAttribPointer(IIIZILjava/nio/Buffer;)V
-HSPLandroid/opengl/Matrix;->setIdentityM([FI)V
-HSPLandroid/os/AsyncTask$1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
-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
-HSPLandroid/os/AsyncTask$4;->done()V
-HSPLandroid/os/AsyncTask$AsyncTaskResult;-><init>(Landroid/os/AsyncTask;[Ljava/lang/Object;)V
-HSPLandroid/os/AsyncTask$InternalHandler;-><init>(Landroid/os/Looper;)V
-HSPLandroid/os/AsyncTask$InternalHandler;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/os/AsyncTask$SerialExecutor$1;-><init>(Landroid/os/AsyncTask$SerialExecutor;Ljava/lang/Runnable;)V
-HSPLandroid/os/AsyncTask$SerialExecutor$1;->run()V
-HSPLandroid/os/AsyncTask$SerialExecutor;->execute(Ljava/lang/Runnable;)V
-HSPLandroid/os/AsyncTask$SerialExecutor;->scheduleNext()V
-HSPLandroid/os/AsyncTask$WorkerRunnable;-><init>()V
-HSPLandroid/os/AsyncTask$WorkerRunnable;-><init>(Landroid/os/AsyncTask$WorkerRunnable-IA;)V
-HSPLandroid/os/AsyncTask;->-$$Nest$fgetmTaskInvoked(Landroid/os/AsyncTask;)Ljava/util/concurrent/atomic/AtomicBoolean;
-HSPLandroid/os/AsyncTask;->-$$Nest$mfinish(Landroid/os/AsyncTask;Ljava/lang/Object;)V
-HSPLandroid/os/AsyncTask;->-$$Nest$mpostResult(Landroid/os/AsyncTask;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/os/AsyncTask;->-$$Nest$mpostResultIfNotInvoked(Landroid/os/AsyncTask;Ljava/lang/Object;)V
-HSPLandroid/os/AsyncTask;-><init>()V
-HSPLandroid/os/AsyncTask;-><init>(Landroid/os/Looper;)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
-HSPLandroid/os/AsyncTask;->getHandler()Landroid/os/Handler;
-HSPLandroid/os/AsyncTask;->getMainHandler()Landroid/os/Handler;
-HSPLandroid/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
-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/BaseBundle;Z)V+]Landroid/os/BaseBundle;Landroid/os/Bundle;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/BaseBundle;-><init>(Landroid/os/Parcel;I)V
-HSPLandroid/os/BaseBundle;-><init>(Ljava/lang/ClassLoader;I)V+]Ljava/lang/Object;Landroid/os/Bundle;,Landroid/os/PersistableBundle;]Ljava/lang/Class;Ljava/lang/Class;
-HSPLandroid/os/BaseBundle;->clear()V
-HSPLandroid/os/BaseBundle;->containsKey(Ljava/lang/String;)Z
-HSPLandroid/os/BaseBundle;->deepCopyValue(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/os/BaseBundle;->get(Ljava/lang/String;)Ljava/lang/Object;+]Landroid/os/BaseBundle;Landroid/os/Bundle;
-HSPLandroid/os/BaseBundle;->get(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
-HSPLandroid/os/BaseBundle;->getArrayList(Ljava/lang/String;Ljava/lang/Class;)Ljava/util/ArrayList;
-HSPLandroid/os/BaseBundle;->getBoolean(Ljava/lang/String;)Z
-HSPLandroid/os/BaseBundle;->getBoolean(Ljava/lang/String;Z)Z
-HSPLandroid/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;
-HSPLandroid/os/BaseBundle;->getCharSequenceArray(Ljava/lang/String;)[Ljava/lang/CharSequence;
-HSPLandroid/os/BaseBundle;->getFloat(Ljava/lang/String;F)F+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Float;Ljava/lang/Float;]Landroid/os/BaseBundle;Landroid/os/Bundle;
-HSPLandroid/os/BaseBundle;->getInt(Ljava/lang/String;)I
-HSPLandroid/os/BaseBundle;->getInt(Ljava/lang/String;I)I+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/os/BaseBundle;Landroid/os/Bundle;
-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
-HSPLandroid/os/BaseBundle;->getLongArray(Ljava/lang/String;)[J
-HSPLandroid/os/BaseBundle;->getSerializable(Ljava/lang/String;)Ljava/io/Serializable;
-HSPLandroid/os/BaseBundle;->getSerializable(Ljava/lang/String;Ljava/lang/Class;)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;
-HSPLandroid/os/BaseBundle;->getStringArray(Ljava/lang/String;)[Ljava/lang/String;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle;
-HSPLandroid/os/BaseBundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
-HSPLandroid/os/BaseBundle;->getValue(Ljava/lang/String;)Ljava/lang/Object;+]Landroid/os/BaseBundle;Landroid/os/Bundle;
-HSPLandroid/os/BaseBundle;->getValue(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/os/BaseBundle;Landroid/os/Bundle;
-HSPLandroid/os/BaseBundle;->getValue(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle;
-HSPLandroid/os/BaseBundle;->getValueAt(ILjava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Class;Ljava/lang/Class;
-HSPLandroid/os/BaseBundle;->initializeFromParcelLocked(Landroid/os/Parcel;ZZ)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/BaseBundle;->isEmpty()Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle;
-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;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle;
-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
-HSPLandroid/os/BaseBundle;->putBooleanArray(Ljava/lang/String;[Z)V
-HSPLandroid/os/BaseBundle;->putByteArray(Ljava/lang/String;[B)V
-HSPLandroid/os/BaseBundle;->putCharSequence(Ljava/lang/String;Ljava/lang/CharSequence;)V
-HSPLandroid/os/BaseBundle;->putCharSequenceArray(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+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle;
-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;)V
-HSPLandroid/os/BaseBundle;->readFromParcelInner(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/BaseBundle;->recycleParcel(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-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+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle;
-HSPLandroid/os/BaseBundle;->unparcel()V+]Landroid/os/BaseBundle;Landroid/os/Bundle;,Landroid/os/PersistableBundle;
-HSPLandroid/os/BaseBundle;->unparcel(Z)V
-HSPLandroid/os/BaseBundle;->unwrapLazyValueFromMapLocked(ILjava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/function/BiFunction;Landroid/os/Parcel$LazyValue;]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;
-HSPLandroid/os/BaseBundle;->writeToParcelInner(Landroid/os/Parcel;I)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Parcel;Landroid/os/Parcel;
-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/BatteryProperty;-><init>()V
-HSPLandroid/os/BatteryProperty;->getLong()J
-HSPLandroid/os/BatteryProperty;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/os/BatterySaverPolicyConfig;->getAdjustBrightnessFactor()F
-HSPLandroid/os/BatterySaverPolicyConfig;->getAdvertiseIsEnabled()Z
-HSPLandroid/os/BatterySaverPolicyConfig;->getDeferFullBackup()Z
-HSPLandroid/os/BatterySaverPolicyConfig;->getDeferKeyValueBackup()Z
-HSPLandroid/os/BatterySaverPolicyConfig;->getDeviceSpecificSettings()Ljava/util/Map;
-HSPLandroid/os/BatterySaverPolicyConfig;->getDisableAnimation()Z
-HSPLandroid/os/BatterySaverPolicyConfig;->getDisableAod()Z
-HSPLandroid/os/BatterySaverPolicyConfig;->getDisableLaunchBoost()Z
-HSPLandroid/os/BatterySaverPolicyConfig;->getDisableOptionalSensors()Z
-HSPLandroid/os/BatterySaverPolicyConfig;->getDisableVibration()Z
-HSPLandroid/os/BatterySaverPolicyConfig;->getEnableAdjustBrightness()Z
-HSPLandroid/os/BatterySaverPolicyConfig;->getEnableDataSaver()Z
-HSPLandroid/os/BatterySaverPolicyConfig;->getEnableFirewall()Z
-HSPLandroid/os/BatterySaverPolicyConfig;->getEnableQuickDoze()Z
-HSPLandroid/os/BatterySaverPolicyConfig;->getForceAllAppsStandby()Z
-HSPLandroid/os/BatterySaverPolicyConfig;->getForceBackgroundCheck()Z
-HSPLandroid/os/BatterySaverPolicyConfig;->getLocationMode()I
-HSPLandroid/os/BatteryStats$Counter;-><init>()V
-HSPLandroid/os/BatteryStats$LongCounter;-><init>()V
-HSPLandroid/os/BatteryStats$Timer;-><init>()V
-HSPLandroid/os/BatteryStats$Uid$Pkg$Serv;-><init>()V
-HSPLandroid/os/BatteryStats$Uid$Wakelock;-><init>()V
-HSPLandroid/os/BatteryStatsManager;-><init>(Lcom/android/internal/app/IBatteryStats;)V
-HSPLandroid/os/Binder$$ExternalSyntheticLambda1;->resolveWorkSourceUid(I)I
-HSPLandroid/os/Binder$PropagateWorkSourceTransactListener;->onTransactEnded(Ljava/lang/Object;)V
-HSPLandroid/os/Binder$PropagateWorkSourceTransactListener;->onTransactStarted(Landroid/os/IBinder;I)Ljava/lang/Object;
-HSPLandroid/os/Binder$ProxyTransactListener;->onTransactStarted(Landroid/os/IBinder;II)Ljava/lang/Object;+]Landroid/os/Binder$ProxyTransactListener;Landroid/os/Binder$PropagateWorkSourceTransactListener;
-HSPLandroid/os/Binder;-><init>()V
-HSPLandroid/os/Binder;-><init>(Ljava/lang/String;)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry;
-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
-HSPLandroid/os/Binder;->defaultBlocking(Landroid/os/IBinder;)Landroid/os/IBinder;
-HSPLandroid/os/Binder;->doDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-HSPLandroid/os/Binder;->dump(Ljava/io/FileDescriptor;[Ljava/lang/String;)V
-HSPLandroid/os/Binder;->execTransact(IJJI)Z+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Binder;->execTransactInternal(ILandroid/os/Parcel;Landroid/os/Parcel;II)Z+]Landroid/os/Binder;missing_types
-HSPLandroid/os/Binder;->getCallingUserHandle()Landroid/os/UserHandle;
-HSPLandroid/os/Binder;->getInterfaceDescriptor()Ljava/lang/String;
-HSPLandroid/os/Binder;->getMaxTransactionId()I
-HSPLandroid/os/Binder;->getSimpleDescriptor()Ljava/lang/String;
-HSPLandroid/os/Binder;->getTransactionName(I)Ljava/lang/String;
-HSPLandroid/os/Binder;->getTransactionTraceName(I)Ljava/lang/String;+]Landroid/os/Binder;megamorphic_types]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;]Ljava/util/concurrent/atomic/AtomicReferenceArray;Ljava/util/concurrent/atomic/AtomicReferenceArray;
-HSPLandroid/os/Binder;->isBinderAlive()Z
-HSPLandroid/os/Binder;->isDirectlyHandlingTransaction()Z
-HSPLandroid/os/Binder;->isProxy(Landroid/os/IInterface;)Z
-HSPLandroid/os/Binder;->isStackTrackingEnabled()Z
-HSPLandroid/os/Binder;->lambda$static$1(I)I
-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;->setProxyTransactListener(Landroid/os/Binder$ProxyTransactListener;)V
-HSPLandroid/os/Binder;->setTransactionCallback(Landroid/os/IBinderCallback;)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
-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
-HSPLandroid/os/BinderProxy;-><init>(J)V
-HSPLandroid/os/BinderProxy;->getInstance(JJ)Landroid/os/BinderProxy;
-HSPLandroid/os/BinderProxy;->linkToDeath(Landroid/os/IBinder$DeathRecipient;I)V+]Ljava/util/List;Ljava/util/Collections$SynchronizedRandomAccessList;
-HSPLandroid/os/BinderProxy;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;
-HSPLandroid/os/BinderProxy;->sendDeathNotice(Landroid/os/IBinder$DeathRecipient;Landroid/os/IBinder;)V
-HSPLandroid/os/BinderProxy;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z+]Landroid/os/BinderProxy;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/BinderProxy;->unlinkToDeath(Landroid/os/IBinder$DeathRecipient;I)Z+]Ljava/util/List;Ljava/util/Collections$SynchronizedRandomAccessList;
-HSPLandroid/os/BluetoothServiceManager$ServiceRegisterer;-><init>(Ljava/lang/String;)V
-HSPLandroid/os/BluetoothServiceManager$ServiceRegisterer;->get()Landroid/os/IBinder;
-HSPLandroid/os/BluetoothServiceManager;-><init>()V
-HSPLandroid/os/BluetoothServiceManager;->getBluetoothManagerServiceRegisterer()Landroid/os/BluetoothServiceManager$ServiceRegisterer;
-HSPLandroid/os/Build$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/os/Build;->getRadioVersion()Ljava/lang/String;
-HSPLandroid/os/Build;->getSerial()Ljava/lang/String;
-HSPLandroid/os/Build;->isDebuggable()Z
-HSPLandroid/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;
-HSPLandroid/os/Bundle$1;->newArray(I)[Landroid/os/Bundle;
-HSPLandroid/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
-HSPLandroid/os/Bundle;-><init>(Landroid/os/Bundle;Z)V
-HSPLandroid/os/Bundle;-><init>(Landroid/os/Parcel;I)V
-HSPLandroid/os/Bundle;-><init>(Landroid/os/PersistableBundle;)V
-HSPLandroid/os/Bundle;->clear()V
-HSPLandroid/os/Bundle;->clone()Ljava/lang/Object;
-HSPLandroid/os/Bundle;->deepCopy()Landroid/os/Bundle;
-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;
-HSPLandroid/os/Bundle;->getFloat(Ljava/lang/String;)F
-HSPLandroid/os/Bundle;->getFloat(Ljava/lang/String;F)F
-HSPLandroid/os/Bundle;->getIntegerArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
-HSPLandroid/os/Bundle;->getParcelable(Ljava/lang/String;)Landroid/os/Parcelable;
-HSPLandroid/os/Bundle;->getParcelable(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
-HSPLandroid/os/Bundle;->getParcelableArray(Ljava/lang/String;)[Landroid/os/Parcelable;+]Landroid/os/Bundle;Landroid/os/Bundle;
-HSPLandroid/os/Bundle;->getParcelableArray(Ljava/lang/String;Ljava/lang/Class;)[Ljava/lang/Object;
-HSPLandroid/os/Bundle;->getParcelableArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
-HSPLandroid/os/Bundle;->getSerializable(Ljava/lang/String;)Ljava/io/Serializable;
-HSPLandroid/os/Bundle;->getSerializable(Ljava/lang/String;Ljava/lang/Class;)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
-HSPLandroid/os/Bundle;->maybePrefillHasFds()V+]Landroid/os/Parcel;Landroid/os/Parcel;
-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
-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
-HSPLandroid/os/Bundle;->putFloat(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
-HSPLandroid/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
-HSPLandroid/os/Bundle;->toString()Ljava/lang/String;
-HSPLandroid/os/Bundle;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/CancellationSignal$Transport;-><init>()V
-HSPLandroid/os/CancellationSignal$Transport;->cancel()V
-HSPLandroid/os/CancellationSignal;-><init>()V
-HSPLandroid/os/CancellationSignal;->cancel()V
-HSPLandroid/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/CombinedVibration$Mono$1;-><init>()V
-HSPLandroid/os/CombinedVibration$Mono;-><clinit>()V
-HSPLandroid/os/CombinedVibration$Mono;-><init>(Landroid/os/VibrationEffect;)V
-HSPLandroid/os/CombinedVibration$Mono;->validate()V
-HSPLandroid/os/CombinedVibration;-><init>()V
-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
-HSPLandroid/os/DdmSyncStageUpdater;-><clinit>()V
-HSPLandroid/os/DdmSyncStageUpdater;-><init>()V
-HSPLandroid/os/DdmSyncStageUpdater;->next(Landroid/os/DdmSyncState$Stage;)V
-HSPLandroid/os/DdmSyncState$Stage;->$values()[Landroid/os/DdmSyncState$Stage;
-HSPLandroid/os/DdmSyncState$Stage;-><clinit>()V
-HSPLandroid/os/DdmSyncState$Stage;-><init>(Ljava/lang/String;ILjava/lang/String;)V
-HSPLandroid/os/DdmSyncState$Stage;->toInt()I
-HSPLandroid/os/DdmSyncState$Stage;->values()[Landroid/os/DdmSyncState$Stage;
-HSPLandroid/os/DdmSyncState;-><clinit>()V
-HSPLandroid/os/DdmSyncState;->next(Landroid/os/DdmSyncState$Stage;)V
-HSPLandroid/os/DeadObjectException;-><init>()V
-HSPLandroid/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;->getMemoryStat(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/os/Debug$MemoryInfo;->getMemoryStats()Ljava/util/Map;
-HSPLandroid/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
-HSPLandroid/os/Debug$MemoryInfo;->getOtherRss(I)I
-HSPLandroid/os/Debug$MemoryInfo;->getOtherSharedClean(I)I
-HSPLandroid/os/Debug$MemoryInfo;->getOtherSharedDirty(I)I
-HSPLandroid/os/Debug$MemoryInfo;->getOtherSwappablePss(I)I
-HSPLandroid/os/Debug$MemoryInfo;->getOtherSwappedOut(I)I
-HSPLandroid/os/Debug$MemoryInfo;->getOtherSwappedOutPss(I)I
-HSPLandroid/os/Debug$MemoryInfo;->getSummaryCode()I
-HSPLandroid/os/Debug$MemoryInfo;->getSummaryCodeRss()I
-HSPLandroid/os/Debug$MemoryInfo;->getSummaryGraphics()I
-HSPLandroid/os/Debug$MemoryInfo;->getSummaryGraphicsRss()I
-HSPLandroid/os/Debug$MemoryInfo;->getSummaryJavaHeap()I
-HSPLandroid/os/Debug$MemoryInfo;->getSummaryJavaHeapRss()I
-HSPLandroid/os/Debug$MemoryInfo;->getSummaryNativeHeap()I
-HSPLandroid/os/Debug$MemoryInfo;->getSummaryNativeHeapRss()I
-HSPLandroid/os/Debug$MemoryInfo;->getSummaryPrivateOther()I
-HSPLandroid/os/Debug$MemoryInfo;->getSummaryStack()I
-HSPLandroid/os/Debug$MemoryInfo;->getSummaryStackRss()I
-HSPLandroid/os/Debug$MemoryInfo;->getSummarySystem()I
-HSPLandroid/os/Debug$MemoryInfo;->getSummaryTotalPss()I
-HSPLandroid/os/Debug$MemoryInfo;->getSummaryTotalSwap()I
-HSPLandroid/os/Debug$MemoryInfo;->getSummaryTotalSwapPss()I
-HSPLandroid/os/Debug$MemoryInfo;->getSummaryUnknownRss()I
-HSPLandroid/os/Debug$MemoryInfo;->getTotalPrivateClean()I
-HSPLandroid/os/Debug$MemoryInfo;->getTotalPrivateDirty()I
-HSPLandroid/os/Debug$MemoryInfo;->getTotalPss()I
-HSPLandroid/os/Debug$MemoryInfo;->getTotalRss()I
-HSPLandroid/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
-HSPLandroid/os/Debug$MemoryInfo;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/os/Debug;->getCaller([Ljava/lang/StackTraceElement;I)Ljava/lang/String;
-HSPLandroid/os/Debug;->getCallers(ILjava/lang/String;)Ljava/lang/String;
-HSPLandroid/os/Debug;->isDebuggerConnected()Z
-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/DropBoxManager$Entry$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/DropBoxManager$Entry;
-HSPLandroid/os/DropBoxManager$Entry$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/os/DropBoxManager$Entry;-><init>(Ljava/lang/String;JLandroid/os/ParcelFileDescriptor;I)V
-HSPLandroid/os/DropBoxManager$Entry;-><init>(Ljava/lang/String;JLjava/io/File;I)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;
-HSPLandroid/os/DropBoxManager$Entry;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/os/DropBoxManager;-><init>(Landroid/content/Context;Lcom/android/internal/os/IDropBoxManagerService;)V
-HSPLandroid/os/DropBoxManager;->addFile(Ljava/lang/String;Ljava/io/File;I)V
-HSPLandroid/os/DropBoxManager;->addText(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/os/Environment$UserEnvironment;-><init>(I)V
-HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppCacheDirs(Ljava/lang/String;)[Ljava/io/File;
-HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppFilesDirs(Ljava/lang/String;)[Ljava/io/File;
-HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppMediaDirs(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;->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;->getDataDirectory()Ljava/io/File;
-HSPLandroid/os/Environment;->getDataDirectory(Ljava/lang/String;)Ljava/io/File;
-HSPLandroid/os/Environment;->getDataDirectoryPath()Ljava/lang/String;
-HSPLandroid/os/Environment;->getDataDirectoryPath(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/os/Environment;->getDataPreloadsDirectory()Ljava/io/File;
-HSPLandroid/os/Environment;->getDataProfilesDeDirectory(I)Ljava/io/File;
-HSPLandroid/os/Environment;->getDataProfilesDePackageDirectory(ILjava/lang/String;)Ljava/io/File;
-HSPLandroid/os/Environment;->getDataRefProfilesDePackageDirectory(Ljava/lang/String;)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;->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;->getOemDirectory()Ljava/io/File;
-HSPLandroid/os/Environment;->getProductDirectory()Ljava/io/File;
-HSPLandroid/os/Environment;->getRootDirectory()Ljava/io/File;
-HSPLandroid/os/Environment;->getSystemExtDirectory()Ljava/io/File;
-HSPLandroid/os/Environment;->getUserConfigDirectory(I)Ljava/io/File;
-HSPLandroid/os/Environment;->initForCurrentUser()V
-HSPLandroid/os/Environment;->isExternalStorageEmulated()Z
-HSPLandroid/os/Environment;->isExternalStorageEmulated(Ljava/io/File;)Z
-HSPLandroid/os/Environment;->isExternalStorageRemovable(Ljava/io/File;)Z
-HSPLandroid/os/Environment;->throwIfUserRequired()V
-HSPLandroid/os/FactoryTest;->getMode()I
-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
-HSPLandroid/os/FileObserver;-><clinit>()V
-HSPLandroid/os/FileObserver;-><init>(Ljava/io/File;I)V
-HSPLandroid/os/FileObserver;-><init>(Ljava/lang/String;I)V
-HSPLandroid/os/FileObserver;-><init>(Ljava/util/List;I)V
-HSPLandroid/os/FileObserver;->startWatching()V
-HSPLandroid/os/FileUtils;->buildValidExtFilename(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Object;Ljava/lang/String;
-HSPLandroid/os/FileUtils;->bytesToFile(Ljava/lang/String;[B)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
-HSPLandroid/os/FileUtils;->convertToModernFd(Ljava/io/FileDescriptor;)Landroid/os/ParcelFileDescriptor;
-HSPLandroid/os/FileUtils;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;)J
-HSPLandroid/os/FileUtils;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/os/FileUtils$ProgressListener;)J
-HSPLandroid/os/FileUtils;->copyInternalUserspace(Ljava/io/InputStream;Ljava/io/OutputStream;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/os/FileUtils$ProgressListener;)J
-HSPLandroid/os/FileUtils;->getMediaProviderAppId(Landroid/content/Context;)I
-HSPLandroid/os/FileUtils;->isValidExtFilename(Ljava/lang/String;)Z
-HSPLandroid/os/FileUtils;->listFilesOrEmpty(Ljava/io/File;Ljava/io/FilenameFilter;)[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;->setPermissions(Ljava/lang/String;III)I
-HSPLandroid/os/FileUtils;->sync(Ljava/io/FileOutputStream;)Z
-HSPLandroid/os/FileUtils;->translateModePfdToPosix(I)I
-HSPLandroid/os/FileUtils;->translateModePosixToPfd(I)I
-HSPLandroid/os/FileUtils;->translateModeStringToPosix(Ljava/lang/String;)I
-HSPLandroid/os/FileUtils;->trimFilename(Ljava/lang/StringBuilder;I)V
-HSPLandroid/os/GraphicsEnvironment;->chooseDriver(Landroid/content/Context;Landroid/os/Bundle;Landroid/content/pm/PackageManager;Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)Z
-HSPLandroid/os/GraphicsEnvironment;->chooseDriverInternal(Landroid/os/Bundle;Landroid/content/pm/ApplicationInfo;)Ljava/lang/String;
-HSPLandroid/os/GraphicsEnvironment;->debugLayerEnabled(Landroid/os/Bundle;Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)Z
-HSPLandroid/os/GraphicsEnvironment;->getAppInfoWithMetadata(Landroid/content/Context;Landroid/content/pm/PackageManager;Ljava/lang/String;)Landroid/content/pm/ApplicationInfo;
-HSPLandroid/os/GraphicsEnvironment;->getGlobalSettingsString(Landroid/content/ContentResolver;Landroid/os/Bundle;Ljava/lang/String;)Ljava/util/List;
-HSPLandroid/os/GraphicsEnvironment;->getInstance()Landroid/os/GraphicsEnvironment;
-HSPLandroid/os/GraphicsEnvironment;->getPackageIndex(Ljava/lang/String;Ljava/util/List;)I
-HSPLandroid/os/GraphicsEnvironment;->getVulkanVersion(Landroid/content/pm/PackageManager;)I
-HSPLandroid/os/GraphicsEnvironment;->queryAngleChoiceInternal(Landroid/content/Context;Landroid/os/Bundle;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/os/GraphicsEnvironment;->setLayerPaths(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;)V
-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;->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$MessengerImpl-IA;)V
-HSPLandroid/os/Handler$MessengerImpl;->send(Landroid/os/Message;)V
-HSPLandroid/os/Handler;-><init>()V
-HSPLandroid/os/Handler;-><init>(Landroid/os/Handler$Callback;)V
-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>(Landroid/os/Looper;Landroid/os/Handler$Callback;ZZ)V
-HSPLandroid/os/Handler;-><init>(Z)V
-HSPLandroid/os/Handler;->createAsync(Landroid/os/Looper;)Landroid/os/Handler;
-HSPLandroid/os/Handler;->disallowNullArgumentIfShared(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/os/Handler;->dispatchMessage(Landroid/os/Message;)V+]Landroid/os/Handler;missing_types
-HSPLandroid/os/Handler;->enqueueMessage(Landroid/os/MessageQueue;Landroid/os/Message;J)Z+]Landroid/os/Message;Landroid/os/Message;]Landroid/os/MessageQueue;Landroid/os/MessageQueue;
-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;
-HSPLandroid/os/Handler;->getPostMessage(Ljava/lang/Runnable;)Landroid/os/Message;
-HSPLandroid/os/Handler;->getPostMessage(Ljava/lang/Runnable;Ljava/lang/Object;)Landroid/os/Message;
-HSPLandroid/os/Handler;->getTraceName(Landroid/os/Message;)Ljava/lang/String;
-HSPLandroid/os/Handler;->handleCallback(Landroid/os/Message;)V+]Ljava/lang/Runnable;missing_types
-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;->obtainMessage()Landroid/os/Message;
-HSPLandroid/os/Handler;->obtainMessage(I)Landroid/os/Message;
-HSPLandroid/os/Handler;->obtainMessage(III)Landroid/os/Message;
-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+]Landroid/os/Handler;missing_types
-HSPLandroid/os/Handler;->postAtFrontOfQueue(Ljava/lang/Runnable;)Z
-HSPLandroid/os/Handler;->postAtTime(Ljava/lang/Runnable;J)Z+]Landroid/os/Handler;Landroid/view/ViewRootImpl$ViewRootHandler;
-HSPLandroid/os/Handler;->postAtTime(Ljava/lang/Runnable;Ljava/lang/Object;J)Z
-HSPLandroid/os/Handler;->postDelayed(Ljava/lang/Runnable;IJ)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
-HSPLandroid/os/Handler;->sendEmptyMessageDelayed(IJ)Z
-HSPLandroid/os/Handler;->sendMessage(Landroid/os/Message;)Z+]Landroid/os/Handler;missing_types
-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+]Landroid/os/Handler;missing_types
-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;->onCreated()V
-HSPLandroid/os/HandlerThread;->onLooperPrepared()V
-HSPLandroid/os/HandlerThread;->quit()Z
-HSPLandroid/os/HandlerThread;->quitSafely()Z
-HSPLandroid/os/HandlerThread;->run()V
-HSPLandroid/os/HwBinder;-><init>()V
-HSPLandroid/os/HwBinder;->getService(Ljava/lang/String;Ljava/lang/String;)Landroid/os/IHwBinder;
-HSPLandroid/os/HwBlob;-><init>(I)V
-HSPLandroid/os/HwBlob;->wrapArray([B)[Ljava/lang/Byte;
-HSPLandroid/os/HwParcel;-><init>()V
-HSPLandroid/os/HwParcel;-><init>(Z)V
-HSPLandroid/os/HwParcel;->readInt8Vector()Ljava/util/ArrayList;
-HSPLandroid/os/HwParcel;->readStringVector()Ljava/util/ArrayList;
-HSPLandroid/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;
-HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->getProperty(ILandroid/os/BatteryProperty;)I
-HSPLandroid/os/IBatteryPropertiesRegistrar$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IBatteryPropertiesRegistrar;
-HSPLandroid/os/IBinder$DeathRecipient;->binderDied(Landroid/os/IBinder;)V+]Landroid/os/IBinder$DeathRecipient;Landroid/os/RemoteCallbackList$Callback;
-HSPLandroid/os/IBinder;->getSuggestedMaxIpcSizeBytes()I
-HSPLandroid/os/ICancellationSignal$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/os/ICancellationSignal$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/os/ICancellationSignal$Stub$Proxy;->cancel()V
-HSPLandroid/os/ICancellationSignal$Stub;-><init>()V
-HSPLandroid/os/ICancellationSignal$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/os/ICancellationSignal$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/ICancellationSignal;
-HSPLandroid/os/IDeviceIdentifiersPolicyService$Stub$Proxy;->getSerialForPackage(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/os/IDeviceIdentifiersPolicyService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdentifiersPolicyService;
-HSPLandroid/os/IDeviceIdleController$Stub$Proxy;->isPowerSaveWhitelistApp(Ljava/lang/String;)Z
-HSPLandroid/os/IDeviceIdleController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdleController;
-HSPLandroid/os/IHintManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/os/IHintManager$Stub$Proxy;->createHintSession(Landroid/os/IBinder;[IJ)Landroid/os/IHintSession;
-HSPLandroid/os/IHintManager$Stub$Proxy;->getHintSessionPreferredRate()J
-HSPLandroid/os/IHintManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IHintManager;
-HSPLandroid/os/IHintSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IHintSession;
-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;->getDefaultTransactionName(I)Ljava/lang/String;
-HSPLandroid/os/IMessenger$Stub;->getMaxTransactionId()I
-HSPLandroid/os/IMessenger$Stub;->getTransactionName(I)Ljava/lang/String;
-HSPLandroid/os/IMessenger$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;->asBinder()Landroid/os/IBinder;
-HSPLandroid/os/INetworkManagementService$Stub$Proxy;->setUidCleartextNetworkPolicy(II)V
-HSPLandroid/os/INetworkManagementService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/INetworkManagementService;
-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;ILandroid/os/IWakeLockCallback;)V
-HSPLandroid/os/IPowerManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/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;->updateWakeLockWorkSource(Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;)V
-HSPLandroid/os/IPowerManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IPowerManager;
-HSPLandroid/os/IPowerManager$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;->asBinder()Landroid/os/IBinder;
-HSPLandroid/os/IRemoteCallback$Stub$Proxy;->sendResult(Landroid/os/Bundle;)V
-HSPLandroid/os/IRemoteCallback$Stub;-><init>()V
-HSPLandroid/os/IRemoteCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/os/IRemoteCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IRemoteCallback;
-HSPLandroid/os/IRemoteCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/os/IServiceManager$Stub$Proxy;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V
-HSPLandroid/os/IServiceManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/os/IServiceManager$Stub$Proxy;->checkService(Ljava/lang/String;)Landroid/os/IBinder;
-HSPLandroid/os/IServiceManager$Stub$Proxy;->isDeclared(Ljava/lang/String;)Z
-HSPLandroid/os/ISystemConfig$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/ISystemConfig;
-HSPLandroid/os/IThermalEventListener$Stub;-><init>()V
-HSPLandroid/os/IThermalEventListener$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/os/IThermalService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/os/IThermalService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/os/IThermalService$Stub$Proxy;->getCurrentThermalStatus()I
-HSPLandroid/os/IThermalService$Stub$Proxy;->registerThermalStatusListener(Landroid/os/IThermalStatusListener;)Z
-HSPLandroid/os/IThermalService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IThermalService;
-HSPLandroid/os/IThermalStatusListener$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/os/IThermalStatusListener$Stub;->getMaxTransactionId()I
-HSPLandroid/os/IThermalStatusListener$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;->asBinder()Landroid/os/IBinder;
-HSPLandroid/os/IUserManager$Stub$Proxy;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;
-HSPLandroid/os/IUserManager$Stub$Proxy;->getApplicationRestrictionsForUser(Ljava/lang/String;I)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;->getProfileType(I)Ljava/lang/String;
-HSPLandroid/os/IUserManager$Stub$Proxy;->getProfiles(IZ)Ljava/util/List;
-HSPLandroid/os/IUserManager$Stub$Proxy;->getUserBadgeColorResId(I)I
-HSPLandroid/os/IUserManager$Stub$Proxy;->getUserHandle(I)I
-HSPLandroid/os/IUserManager$Stub$Proxy;->getUserInfo(I)Landroid/content/pm/UserInfo;
-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;->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;->isQuietModeEnabled(I)Z
-HSPLandroid/os/IUserManager$Stub$Proxy;->isUserRunning(I)Z
-HSPLandroid/os/IUserManager$Stub$Proxy;->isUserUnlocked(I)Z
-HSPLandroid/os/IUserManager$Stub$Proxy;->isUserUnlockingOrUnlocked(I)Z
-HSPLandroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
-HSPLandroid/os/IVibratorManagerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/os/IVibratorManagerService$Stub$Proxy;->getVibratorIds()[I
-HSPLandroid/os/IVibratorManagerService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IVibratorManagerService;
-HSPLandroid/os/IpcDataCache$Config;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/os/IpcDataCache$Config;-><init>(Landroid/os/IpcDataCache$Config;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/os/IpcDataCache$Config;->api()Ljava/lang/String;
-HSPLandroid/os/IpcDataCache$Config;->child(Ljava/lang/String;)Landroid/os/IpcDataCache$Config;
-HSPLandroid/os/IpcDataCache$Config;->maxEntries()I
-HSPLandroid/os/IpcDataCache$Config;->module()Ljava/lang/String;
-HSPLandroid/os/IpcDataCache$Config;->name()Ljava/lang/String;
-HSPLandroid/os/IpcDataCache$Config;->registerChild(Ljava/lang/String;)V
-HSPLandroid/os/IpcDataCache$QueryHandler;-><init>()V
-HSPLandroid/os/IpcDataCache$QueryHandler;->shouldBypassCache(Ljava/lang/Object;)Z
-HSPLandroid/os/IpcDataCache$SystemServerCallHandler;-><init>(Landroid/os/IpcDataCache$RemoteCall;)V
-HSPLandroid/os/IpcDataCache$SystemServerCallHandler;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/os/IpcDataCache;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/IpcDataCache$QueryHandler;)V
-HSPLandroid/os/IpcDataCache;-><init>(Landroid/os/IpcDataCache$Config;Landroid/os/IpcDataCache$QueryHandler;)V
-HSPLandroid/os/IpcDataCache;-><init>(Landroid/os/IpcDataCache$Config;Landroid/os/IpcDataCache$RemoteCall;)V
-HSPLandroid/os/IpcDataCache;->query(Ljava/lang/Object;)Ljava/lang/Object;
-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;)V
-HSPLandroid/os/LocaleList;->computeFirstMatch(Ljava/util/Collection;Z)Ljava/util/Locale;
-HSPLandroid/os/LocaleList;->computeFirstMatchIndex(Ljava/util/Collection;Z)I
-HSPLandroid/os/LocaleList;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Ljava/util/Locale;
-HSPLandroid/os/LocaleList;->findFirstMatchIndex(Ljava/util/Locale;)I
-HSPLandroid/os/LocaleList;->forLanguageTags(Ljava/lang/String;)Landroid/os/LocaleList;
-HSPLandroid/os/LocaleList;->get(I)Ljava/util/Locale;
-HSPLandroid/os/LocaleList;->getAdjustedDefault()Landroid/os/LocaleList;
-HSPLandroid/os/LocaleList;->getDefault()Landroid/os/LocaleList;+]Ljava/lang/Object;Ljava/util/Locale;
-HSPLandroid/os/LocaleList;->getEmptyLocaleList()Landroid/os/LocaleList;
-HSPLandroid/os/LocaleList;->getFirstMatchWithEnglishSupported([Ljava/lang/String;)Ljava/util/Locale;
-HSPLandroid/os/LocaleList;->getLikelyScript(Ljava/util/Locale;)Ljava/lang/String;
-HSPLandroid/os/LocaleList;->hashCode()I
-HSPLandroid/os/LocaleList;->isEmpty()Z
-HSPLandroid/os/LocaleList;->isPseudoLocale(Ljava/util/Locale;)Z
-HSPLandroid/os/LocaleList;->isPseudoLocalesOnly([Ljava/lang/String;)Z
-HSPLandroid/os/LocaleList;->matchesLanguageAndScript(Ljava/util/Locale;Ljava/util/Locale;)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;->getMainLooper()Landroid/os/Looper;
-HSPLandroid/os/Looper;->getQueue()Landroid/os/MessageQueue;
-HSPLandroid/os/Looper;->getThread()Ljava/lang/Thread;
-HSPLandroid/os/Looper;->getThresholdOverride()I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Thread;missing_types
-HSPLandroid/os/Looper;->isCurrentThread()Z
-HSPLandroid/os/Looper;->loop()V
-HSPLandroid/os/Looper;->loopOnce(Landroid/os/Looper;JI)Z+]Landroid/os/Handler;megamorphic_types]Landroid/os/Message;Landroid/os/Message;]Landroid/os/MessageQueue;Landroid/os/MessageQueue;
-HSPLandroid/os/Looper;->myLooper()Landroid/os/Looper;+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal;
-HSPLandroid/os/Looper;->myQueue()Landroid/os/MessageQueue;
-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;->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;
-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;->copyFrom(Landroid/os/Message;)V
-HSPLandroid/os/Message;->getCallback()Ljava/lang/Runnable;
-HSPLandroid/os/Message;->getData()Landroid/os/Bundle;
-HSPLandroid/os/Message;->getTarget()Landroid/os/Handler;
-HSPLandroid/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;
-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+]Landroid/os/Handler;megamorphic_types
-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;-><init>(Z)V
-HSPLandroid/os/MessageQueue;->addIdleHandler(Landroid/os/MessageQueue$IdleHandler;)V
-HSPLandroid/os/MessageQueue;->addOnFileDescriptorEventListener(Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V
-HSPLandroid/os/MessageQueue;->dispatchEvents(II)I
-HSPLandroid/os/MessageQueue;->dispose()V
-HSPLandroid/os/MessageQueue;->enqueueMessage(Landroid/os/Message;J)Z+]Landroid/os/Message;Landroid/os/Message;
-HSPLandroid/os/MessageQueue;->finalize()V
-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;->next()Landroid/os/Message;+]Landroid/os/MessageQueue$IdleHandler;missing_types]Landroid/os/Message;Landroid/os/Message;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/os/MessageQueue;->postSyncBarrier()I
-HSPLandroid/os/MessageQueue;->postSyncBarrier(J)I+]Landroid/os/Message;Landroid/os/Message;
-HSPLandroid/os/MessageQueue;->quit(Z)V
-HSPLandroid/os/MessageQueue;->removeAllFutureMessagesLocked()V
-HSPLandroid/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+]Landroid/os/Message;Landroid/os/Message;
-HSPLandroid/os/MessageQueue;->removeMessages(Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/Object;)V+]Landroid/os/Message;Landroid/os/Message;
-HSPLandroid/os/MessageQueue;->removeOnFileDescriptorEventListener(Ljava/io/FileDescriptor;)V
-HSPLandroid/os/MessageQueue;->removeSyncBarrier(I)V+]Landroid/os/Message;Landroid/os/Message;
-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;->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
-HSPLandroid/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;+]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass;
-HSPLandroid/os/Parcel$LazyValue;-><init>(Landroid/os/Parcel;IIILjava/lang/ClassLoader;)V
-HSPLandroid/os/Parcel$LazyValue;->apply(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel$LazyValue;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Landroid/os/Parcel$LazyValue;Landroid/os/Parcel$LazyValue;
-HSPLandroid/os/Parcel$LazyValue;->writeToParcel(Landroid/os/Parcel;)V
-HSPLandroid/os/Parcel$ReadWriteHelper;->readString16(Landroid/os/Parcel;)Ljava/lang/String;+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel$ReadWriteHelper;->readString8(Landroid/os/Parcel;)Ljava/lang/String;+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel$ReadWriteHelper;->writeString16(Landroid/os/Parcel;Ljava/lang/String;)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel$ReadWriteHelper;->writeString8(Landroid/os/Parcel;Ljava/lang/String;)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->-$$Nest$mreadValue(Landroid/os/Parcel;Ljava/lang/ClassLoader;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object;
-HSPLandroid/os/Parcel;-><init>(J)V
-HSPLandroid/os/Parcel;->adoptClassCookies(Landroid/os/Parcel;)V
-HSPLandroid/os/Parcel;->appendFrom(Landroid/os/Parcel;II)V
-HSPLandroid/os/Parcel;->checkArrayTypeToUnparcel(Ljava/lang/Class;Ljava/lang/Class;)V
-HSPLandroid/os/Parcel;->checkTypeToUnparcel(Ljava/lang/Class;Ljava/lang/Class;)V
-HSPLandroid/os/Parcel;->copyClassCookies()Ljava/util/Map;
-HSPLandroid/os/Parcel;->createBinderArrayList()Ljava/util/ArrayList;
-HSPLandroid/os/Parcel;->createBooleanArray()[Z
-HSPLandroid/os/Parcel;->createByteArray()[B
-HSPLandroid/os/Parcel;->createException(ILjava/lang/String;)Ljava/lang/Exception;
-HSPLandroid/os/Parcel;->createExceptionOrNull(ILjava/lang/String;)Ljava/lang/Exception;
-HSPLandroid/os/Parcel;->createFloatArray()[F
-HSPLandroid/os/Parcel;->createIntArray()[I+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->createLongArray()[J+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->createString16Array()[Ljava/lang/String;+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->createString8Array()[Ljava/lang/String;+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->createStringArray()[Ljava/lang/String;
-HSPLandroid/os/Parcel;->createStringArrayList()Ljava/util/ArrayList;+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->createTypedArray(Landroid/os/Parcelable$Creator;)[Ljava/lang/Object;+]Landroid/os/Parcelable$Creator;missing_types]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->createTypedArrayList(Landroid/os/Parcelable$Creator;)Ljava/util/ArrayList;+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->dataAvail()I
-HSPLandroid/os/Parcel;->dataPosition()I
-HSPLandroid/os/Parcel;->dataSize()I
-HSPLandroid/os/Parcel;->destroy()V
-HSPLandroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
-HSPLandroid/os/Parcel;->enforceNoDataAvail()V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->ensureReadSquashableParcelables()V
-HSPLandroid/os/Parcel;->ensureWithinMemoryLimit(II)V
-HSPLandroid/os/Parcel;->finalize()V
-HSPLandroid/os/Parcel;->freeBuffer()V
-HSPLandroid/os/Parcel;->getClassCookie(Ljava/lang/Class;)Ljava/lang/Object;
-HSPLandroid/os/Parcel;->getExceptionCode(Ljava/lang/Throwable;)I
-HSPLandroid/os/Parcel;->getValueType(Ljava/lang/Object;)I
-HSPLandroid/os/Parcel;->hasFileDescriptors()Z
-HSPLandroid/os/Parcel;->hasReadWriteHelper()Z
-HSPLandroid/os/Parcel;->init(J)V
-HSPLandroid/os/Parcel;->isLengthPrefixed(I)Z
-HSPLandroid/os/Parcel;->markForBinder(Landroid/os/IBinder;)V
-HSPLandroid/os/Parcel;->markSensitive()V
-HSPLandroid/os/Parcel;->marshall()[B
-HSPLandroid/os/Parcel;->maybeWriteSquashed(Landroid/os/Parcelable;)Z
-HSPLandroid/os/Parcel;->obtain()Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->obtain(J)Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->obtain(Landroid/os/IBinder;)Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->pushAllowFds(Z)Z
-HSPLandroid/os/Parcel;->readArrayList(Ljava/lang/ClassLoader;)Ljava/util/ArrayList;
-HSPLandroid/os/Parcel;->readArrayList(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/util/ArrayList;
-HSPLandroid/os/Parcel;->readArrayListInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/util/ArrayList;+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->readArrayMap(Landroid/util/ArrayMap;IZZLjava/lang/ClassLoader;)I+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->readArrayMap(Landroid/util/ArrayMap;Ljava/lang/ClassLoader;)V
-HSPLandroid/os/Parcel;->readArrayMapInternal(Landroid/util/ArrayMap;ILjava/lang/ClassLoader;)V
-HSPLandroid/os/Parcel;->readArraySet(Ljava/lang/ClassLoader;)Landroid/util/ArraySet;
-HSPLandroid/os/Parcel;->readBinderList(Ljava/util/List;)V
-HSPLandroid/os/Parcel;->readBlob()[B
-HSPLandroid/os/Parcel;->readBoolean()Z+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->readBooleanArray([Z)V
-HSPLandroid/os/Parcel;->readBundle()Landroid/os/Bundle;+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->readBundle(Ljava/lang/ClassLoader;)Landroid/os/Bundle;+]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->readByte()B+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->readByteArray([B)V
-HSPLandroid/os/Parcel;->readCallingWorkSourceUid()I
-HSPLandroid/os/Parcel;->readCharSequence()Ljava/lang/CharSequence;+]Landroid/os/Parcelable$Creator;Landroid/text/TextUtils$1;
-HSPLandroid/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
-HSPLandroid/os/Parcel;->readFloat()F
-HSPLandroid/os/Parcel;->readFloatArray([F)V
-HSPLandroid/os/Parcel;->readHashMap(Ljava/lang/ClassLoader;)Ljava/util/HashMap;
-HSPLandroid/os/Parcel;->readHashMapInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/HashMap;
-HSPLandroid/os/Parcel;->readInt()I
-HSPLandroid/os/Parcel;->readIntArray([I)V
-HSPLandroid/os/Parcel;->readLazyValue(Ljava/lang/ClassLoader;)Ljava/lang/Object;+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->readList(Ljava/util/List;Ljava/lang/ClassLoader;)V
-HSPLandroid/os/Parcel;->readList(Ljava/util/List;Ljava/lang/ClassLoader;Ljava/lang/Class;)V
-HSPLandroid/os/Parcel;->readListInternal(Ljava/util/List;ILjava/lang/ClassLoader;)V
-HSPLandroid/os/Parcel;->readListInternal(Ljava/util/List;ILjava/lang/ClassLoader;Ljava/lang/Class;)V
-HSPLandroid/os/Parcel;->readLong()J
-HSPLandroid/os/Parcel;->readLongArray([J)V
-HSPLandroid/os/Parcel;->readMap(Ljava/util/Map;Ljava/lang/ClassLoader;)V
-HSPLandroid/os/Parcel;->readMapInternal(Ljava/util/Map;ILjava/lang/ClassLoader;)V
-HSPLandroid/os/Parcel;->readMapInternal(Ljava/util/Map;ILjava/lang/ClassLoader;Ljava/lang/Class;Ljava/lang/Class;)V
-HSPLandroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;)Landroid/os/Parcelable;
-HSPLandroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Object;
-HSPLandroid/os/Parcel;->readParcelableArray(Ljava/lang/ClassLoader;)[Landroid/os/Parcelable;
-HSPLandroid/os/Parcel;->readParcelableArray(Ljava/lang/ClassLoader;Ljava/lang/Class;)[Ljava/lang/Object;
-HSPLandroid/os/Parcel;->readParcelableArrayInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)[Ljava/lang/Object;+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->readParcelableCreator(Ljava/lang/ClassLoader;)Landroid/os/Parcelable$Creator;
-HSPLandroid/os/Parcel;->readParcelableCreatorInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Landroid/os/Parcelable$Creator;+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Object;Landroid/os/Parcel;]Ljava/lang/reflect/Field;Ljava/lang/reflect/Field;]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->readParcelableInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/os/Parcelable$Creator;megamorphic_types]Landroid/os/Parcelable$ClassLoaderCreator;Landroid/content/pm/ParceledListSlice$1;
-HSPLandroid/os/Parcel;->readParcelableList(Ljava/util/List;Ljava/lang/ClassLoader;)Ljava/util/List;
-HSPLandroid/os/Parcel;->readParcelableList(Ljava/util/List;Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/util/List;
-HSPLandroid/os/Parcel;->readParcelableListInternal(Ljava/util/List;Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/util/List;+]Ljava/util/List;Ljava/util/ArrayList;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->readPersistableBundle()Landroid/os/PersistableBundle;
-HSPLandroid/os/Parcel;->readPersistableBundle(Ljava/lang/ClassLoader;)Landroid/os/PersistableBundle;
-HSPLandroid/os/Parcel;->readRawFileDescriptor()Ljava/io/FileDescriptor;
-HSPLandroid/os/Parcel;->readSerializable()Ljava/io/Serializable;
-HSPLandroid/os/Parcel;->readSerializableInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Object;+]Ljava/io/ObjectInputStream;Landroid/os/Parcel$2;]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->readSize()Landroid/util/Size;
-HSPLandroid/os/Parcel;->readSparseArray(Ljava/lang/ClassLoader;)Landroid/util/SparseArray;
-HSPLandroid/os/Parcel;->readSparseArray(Ljava/lang/ClassLoader;Ljava/lang/Class;)Landroid/util/SparseArray;
-HSPLandroid/os/Parcel;->readSparseArrayInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Landroid/util/SparseArray;
-HSPLandroid/os/Parcel;->readSparseIntArray()Landroid/util/SparseIntArray;
-HSPLandroid/os/Parcel;->readSparseIntArrayInternal(Landroid/util/SparseIntArray;I)V
-HSPLandroid/os/Parcel;->readSquashed(Landroid/os/Parcel$SquashReadHelper;)Landroid/os/Parcelable;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/Parcel$SquashReadHelper;Landroid/content/pm/ApplicationInfo$1$$ExternalSyntheticLambda0;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->readString()Ljava/lang/String;+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->readString16()Ljava/lang/String;+]Landroid/os/Parcel$ReadWriteHelper;Landroid/os/Parcel$ReadWriteHelper;
-HSPLandroid/os/Parcel;->readString16Array([Ljava/lang/String;)V
-HSPLandroid/os/Parcel;->readString16NoHelper()Ljava/lang/String;
-HSPLandroid/os/Parcel;->readString8()Ljava/lang/String;+]Landroid/os/Parcel$ReadWriteHelper;Landroid/os/Parcel$ReadWriteHelper;
-HSPLandroid/os/Parcel;->readString8NoHelper()Ljava/lang/String;
-HSPLandroid/os/Parcel;->readStringArray()[Ljava/lang/String;+]Landroid/os/Parcel;Landroid/os/Parcel;
-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;+]Landroid/os/Parcelable$Creator;megamorphic_types]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->readValue(ILjava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Object;
-HSPLandroid/os/Parcel;->readValue(ILjava/lang/ClassLoader;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object;+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->readValue(Ljava/lang/ClassLoader;)Ljava/lang/Object;
-HSPLandroid/os/Parcel;->readValue(Ljava/lang/ClassLoader;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->recycle()V
-HSPLandroid/os/Parcel;->resetSqaushingState()V
-HSPLandroid/os/Parcel;->restoreAllowFds(Z)V
-HSPLandroid/os/Parcel;->setClassCookie(Ljava/lang/Class;Ljava/lang/Object;)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;->unmarshall([BII)V
-HSPLandroid/os/Parcel;->writeArrayMap(Landroid/util/ArrayMap;)V
-HSPLandroid/os/Parcel;->writeArrayMapInternal(Landroid/util/ArrayMap;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->writeArraySet(Landroid/util/ArraySet;)V
-HSPLandroid/os/Parcel;->writeBinderList(Ljava/util/List;)V
-HSPLandroid/os/Parcel;->writeBlob([B)V
-HSPLandroid/os/Parcel;->writeBoolean(Z)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->writeBooleanArray([Z)V
-HSPLandroid/os/Parcel;->writeBundle(Landroid/os/Bundle;)V+]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/os/Parcel;Landroid/os/Parcel;
-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
-HSPLandroid/os/Parcel;->writeDouble(D)V
-HSPLandroid/os/Parcel;->writeException(Ljava/lang/Exception;)V
-HSPLandroid/os/Parcel;->writeFileDescriptor(Ljava/io/FileDescriptor;)V
-HSPLandroid/os/Parcel;->writeFloat(F)V
-HSPLandroid/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
-HSPLandroid/os/Parcel;->writeList(Ljava/util/List;)V
-HSPLandroid/os/Parcel;->writeLong(J)V
-HSPLandroid/os/Parcel;->writeLongArray([J)V
-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+]Landroid/os/Parcelable;missing_types]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->writeParcelableArray([Landroid/os/Parcelable;I)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->writeParcelableCreator(Landroid/os/Parcelable;)V+]Ljava/lang/Object;missing_types]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->writeParcelableList(Ljava/util/List;I)V
-HSPLandroid/os/Parcel;->writePersistableBundle(Landroid/os/PersistableBundle;)V
-HSPLandroid/os/Parcel;->writeSerializable(Ljava/io/Serializable;)V
-HSPLandroid/os/Parcel;->writeSparseArray(Landroid/util/SparseArray;)V
-HSPLandroid/os/Parcel;->writeSparseBooleanArray(Landroid/util/SparseBooleanArray;)V
-HSPLandroid/os/Parcel;->writeSparseIntArray(Landroid/util/SparseIntArray;)V
-HSPLandroid/os/Parcel;->writeString(Ljava/lang/String;)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->writeString16(Ljava/lang/String;)V+]Landroid/os/Parcel$ReadWriteHelper;Landroid/os/Parcel$ReadWriteHelper;
-HSPLandroid/os/Parcel;->writeString16Array([Ljava/lang/String;)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->writeString16NoHelper(Ljava/lang/String;)V
-HSPLandroid/os/Parcel;->writeString8(Ljava/lang/String;)V+]Landroid/os/Parcel$ReadWriteHelper;Landroid/os/Parcel$ReadWriteHelper;
-HSPLandroid/os/Parcel;->writeString8Array([Ljava/lang/String;)V
-HSPLandroid/os/Parcel;->writeString8NoHelper(Ljava/lang/String;)V
-HSPLandroid/os/Parcel;->writeStringArray([Ljava/lang/String;)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->writeStringList(Ljava/util/List;)V
-HSPLandroid/os/Parcel;->writeStrongBinder(Landroid/os/IBinder;)V
-HSPLandroid/os/Parcel;->writeStrongInterface(Landroid/os/IInterface;)V+]Landroid/os/IInterface;Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;,Landroid/app/ActivityThread$ApplicationThread;,Landroid/view/ViewRootImpl$W;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->writeTypedArray([Landroid/os/Parcelable;I)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/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+]Landroid/os/Parcelable;Landroid/view/WindowManager$LayoutParams;,Landroid/content/Intent;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->writeValue(ILjava/lang/Object;)V+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Ljava/lang/Long;Ljava/lang/Long;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/Parcel;->writeValue(Ljava/lang/Object;)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/ParcelFileDescriptor$2;->createFromParcel(Landroid/os/Parcel;)Landroid/os/ParcelFileDescriptor;
-HSPLandroid/os/ParcelFileDescriptor$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;-><init>(Landroid/os/ParcelFileDescriptor;)V
-HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;->close()V
-HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;->read([B)I
-HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;->read([BII)I
-HSPLandroid/os/ParcelFileDescriptor$AutoCloseOutputStream;-><init>(Landroid/os/ParcelFileDescriptor;)V
-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;->adoptFd(I)Landroid/os/ParcelFileDescriptor;
-HSPLandroid/os/ParcelFileDescriptor;->canDetectErrors()Z
-HSPLandroid/os/ParcelFileDescriptor;->close()V
-HSPLandroid/os/ParcelFileDescriptor;->closeWithStatus(ILjava/lang/String;)V
-HSPLandroid/os/ParcelFileDescriptor;->createPipe()[Landroid/os/ParcelFileDescriptor;
-HSPLandroid/os/ParcelFileDescriptor;->detachFd()I
-HSPLandroid/os/ParcelFileDescriptor;->dup()Landroid/os/ParcelFileDescriptor;
-HSPLandroid/os/ParcelFileDescriptor;->dup(Ljava/io/FileDescriptor;)Landroid/os/ParcelFileDescriptor;
-HSPLandroid/os/ParcelFileDescriptor;->finalize()V
-HSPLandroid/os/ParcelFileDescriptor;->fromFd(I)Landroid/os/ParcelFileDescriptor;
-HSPLandroid/os/ParcelFileDescriptor;->fromSocket(Ljava/net/Socket;)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;->openInternal(Ljava/io/File;I)Ljava/io/FileDescriptor;
-HSPLandroid/os/ParcelFileDescriptor;->parseMode(Ljava/lang/String;)I
-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;
-HSPLandroid/os/ParcelUuid$1;->newArray(I)[Landroid/os/ParcelUuid;
-HSPLandroid/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;->getUuid()Ljava/util/UUID;
-HSPLandroid/os/ParcelUuid;->hashCode()I
-HSPLandroid/os/ParcelUuid;->toString()Ljava/lang/String;
-HSPLandroid/os/ParcelUuid;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/os/ParcelableException;-><init>(Ljava/lang/Throwable;)V
-HSPLandroid/os/ParcelableParcel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/ParcelableParcel;
-HSPLandroid/os/ParcelableParcel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/os/ParcelableParcel;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
-HSPLandroid/os/ParcelableParcel;->getClassLoader()Ljava/lang/ClassLoader;
-HSPLandroid/os/ParcelableParcel;->getParcel()Landroid/os/Parcel;
-HSPLandroid/os/ParcelableParcel;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/os/PatternMatcher$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/PatternMatcher;
-HSPLandroid/os/PatternMatcher$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/os/PatternMatcher$1;->newArray(I)[Landroid/os/PatternMatcher;
-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
-HSPLandroid/os/PatternMatcher;->match(Ljava/lang/String;)Z
-HSPLandroid/os/PatternMatcher;->matchPattern(Ljava/lang/String;Ljava/lang/String;[II)Z
-HSPLandroid/os/PatternMatcher;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/os/PerformanceHintManager;->createHintSession([IJ)Landroid/os/PerformanceHintManager$Session;
-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;-><init>()V
-HSPLandroid/os/PersistableBundle;-><init>(I)V
-HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/Parcel;I)V
-HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/PersistableBundle;)V
-HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/PersistableBundle;Z)V
-HSPLandroid/os/PersistableBundle;-><init>(Landroid/util/ArrayMap;Z)V
-HSPLandroid/os/PersistableBundle;->deepCopy()Landroid/os/PersistableBundle;
-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;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/os/PooledStringReader;->readString()Ljava/lang/String;
-HSPLandroid/os/PooledStringWriter;->writeString(Ljava/lang/String;)V
-HSPLandroid/os/PowerExemptionManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/os/PowerManager$1;-><init>(Landroid/os/PowerManager;ILjava/lang/String;)V
-HSPLandroid/os/PowerManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/os/PowerManager$1;->recompute(Ljava/lang/Void;)Ljava/lang/Boolean;
-HSPLandroid/os/PowerManager$2;-><init>(Landroid/os/PowerManager;ILjava/lang/String;)V
-HSPLandroid/os/PowerManager$2;->recompute(Ljava/lang/Integer;)Ljava/lang/Boolean;
-HSPLandroid/os/PowerManager$2;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/os/PowerManager$3$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/os/PowerManager$3;->lambda$onStatusChange$0(Landroid/os/PowerManager$OnThermalStatusChangedListener;I)V
-HSPLandroid/os/PowerManager$3;->onStatusChange(I)V
-HSPLandroid/os/PowerManager$WakeLock$$ExternalSyntheticLambda0;-><init>(Landroid/os/PowerManager$WakeLock;)V
-HSPLandroid/os/PowerManager$WakeLock$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/os/PowerManager$WakeLock;-><init>(Landroid/os/PowerManager;ILjava/lang/String;Ljava/lang/String;I)V
-HSPLandroid/os/PowerManager$WakeLock;->acquire()V
-HSPLandroid/os/PowerManager$WakeLock;->acquire(J)V
-HSPLandroid/os/PowerManager$WakeLock;->acquireLocked()V
-HSPLandroid/os/PowerManager$WakeLock;->finalize()V
-HSPLandroid/os/PowerManager$WakeLock;->isHeld()Z
-HSPLandroid/os/PowerManager$WakeLock;->release()V
-HSPLandroid/os/PowerManager$WakeLock;->release(I)V
-HSPLandroid/os/PowerManager$WakeLock;->setReferenceCounted(Z)V
-HSPLandroid/os/PowerManager$WakeLock;->setWorkSource(Landroid/os/WorkSource;)V
-HSPLandroid/os/PowerManager;-><init>(Landroid/content/Context;Landroid/os/IPowerManager;Landroid/os/IThermalService;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;->getBrightnessConstraint(I)F
-HSPLandroid/os/PowerManager;->getCurrentThermalStatus()I
-HSPLandroid/os/PowerManager;->getPowerSaveState(I)Landroid/os/PowerSaveState;
-HSPLandroid/os/PowerManager;->isDeviceIdleMode()Z
-HSPLandroid/os/PowerManager;->isDeviceLightIdleMode()Z
-HSPLandroid/os/PowerManager;->isIgnoringBatteryOptimizations(Ljava/lang/String;)Z
-HSPLandroid/os/PowerManager;->isInteractive()Z
-HSPLandroid/os/PowerManager;->isLightDeviceIdleMode()Z
-HSPLandroid/os/PowerManager;->isPowerSaveMode()Z
-HSPLandroid/os/PowerManager;->isScreenOn()Z
-HSPLandroid/os/PowerManager;->newWakeLock(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock;
-HSPLandroid/os/PowerManager;->userActivity(JII)V
-HSPLandroid/os/PowerManager;->userActivity(JZ)V
-HSPLandroid/os/PowerManager;->validateWakeLockParameters(ILjava/lang/String;)V
-HSPLandroid/os/PowerManager;->wakeUp(JILjava/lang/String;)V
-HSPLandroid/os/PowerSaveState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/PowerSaveState;
-HSPLandroid/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;
-HSPLandroid/os/PowerSaveState$Builder;->setBrightnessFactor(F)Landroid/os/PowerSaveState$Builder;
-HSPLandroid/os/PowerSaveState$Builder;->setGlobalBatterySaverEnabled(Z)Landroid/os/PowerSaveState$Builder;
-HSPLandroid/os/PowerSaveState;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/os/PowerSaveState;-><init>(Landroid/os/PowerSaveState$Builder;)V
-HSPLandroid/os/PowerWhitelistManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/os/PowerWhitelistManager;->isWhitelisted(Ljava/lang/String;Z)Z
-HSPLandroid/os/Process;->getStartElapsedRealtime()J
-HSPLandroid/os/Process;->getStartUptimeMillis()J
-HSPLandroid/os/Process;->is64Bit()Z
-HSPLandroid/os/Process;->isApplicationUid(I)Z
-HSPLandroid/os/Process;->isIsolated()Z
-HSPLandroid/os/Process;->isIsolated(I)Z
-HSPLandroid/os/Process;->isSdkSandbox()Z
-HSPLandroid/os/Process;->isSdkSandboxUid(I)Z
-HSPLandroid/os/Process;->myPid()I
-HSPLandroid/os/Process;->myProcessName()Ljava/lang/String;
-HSPLandroid/os/Process;->myTid()I
-HSPLandroid/os/Process;->myUid()I
-HSPLandroid/os/Process;->myUserHandle()Landroid/os/UserHandle;
-HSPLandroid/os/Process;->setArgV0(Ljava/lang/String;)V
-HSPLandroid/os/Process;->setStartTimes(JJJJ)V
-HSPLandroid/os/RemoteCallback$1;-><init>(Landroid/os/RemoteCallback;)V
-HSPLandroid/os/RemoteCallback$1;->sendResult(Landroid/os/Bundle;)V
-HSPLandroid/os/RemoteCallback$3;->createFromParcel(Landroid/os/Parcel;)Landroid/os/RemoteCallback;
-HSPLandroid/os/RemoteCallback$3;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/os/RemoteCallback;-><init>(Landroid/os/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
-HSPLandroid/os/RemoteCallback;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/os/RemoteCallbackList$Callback;-><init>(Landroid/os/RemoteCallbackList;Landroid/os/IInterface;Ljava/lang/Object;)V
-HSPLandroid/os/RemoteCallbackList$Callback;->binderDied()V
-HSPLandroid/os/RemoteCallbackList;-><init>()V
-HSPLandroid/os/RemoteCallbackList;->beginBroadcast()I
-HSPLandroid/os/RemoteCallbackList;->finishBroadcast()V
-HSPLandroid/os/RemoteCallbackList;->getBroadcastCookie(I)Ljava/lang/Object;
-HSPLandroid/os/RemoteCallbackList;->getBroadcastItem(I)Landroid/os/IInterface;
-HSPLandroid/os/RemoteCallbackList;->kill()V
-HSPLandroid/os/RemoteCallbackList;->logExcessiveCallbacks()V
-HSPLandroid/os/RemoteCallbackList;->onCallbackDied(Landroid/os/IInterface;)V
-HSPLandroid/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/RemoteException;-><init>()V
-HSPLandroid/os/RemoteException;-><init>(Ljava/lang/String;)V
-HSPLandroid/os/RemoteException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;ZZ)V
-HSPLandroid/os/ResultReceiver$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/ResultReceiver;
-HSPLandroid/os/ResultReceiver$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/os/ResultReceiver$MyResultReceiver;-><init>(Landroid/os/ResultReceiver;)V
-HSPLandroid/os/ResultReceiver$MyResultReceiver;->send(ILandroid/os/Bundle;)V
-HSPLandroid/os/ResultReceiver$MyRunnable;->run()V
-HSPLandroid/os/ResultReceiver;-><init>(Landroid/os/Handler;)V
-HSPLandroid/os/ResultReceiver;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/os/ResultReceiver;->send(ILandroid/os/Bundle;)V
-HSPLandroid/os/ResultReceiver;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/os/ServiceManager$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;
-HSPLandroid/os/ServiceManager;->getIServiceManager()Landroid/os/IServiceManager;
-HSPLandroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
-HSPLandroid/os/ServiceManager;->getServiceOrThrow(Ljava/lang/String;)Landroid/os/IBinder;
-HSPLandroid/os/ServiceManager;->initServiceCache(Ljava/util/Map;)V
-HSPLandroid/os/ServiceManager;->isDeclared(Ljava/lang/String;)Z
-HSPLandroid/os/ServiceManager;->rawGetService(Ljava/lang/String;)Landroid/os/IBinder;+]Lcom/android/internal/util/StatLogger;Lcom/android/internal/util/StatLogger;]Landroid/os/IServiceManager;Landroid/os/ServiceManagerProxy;
-HSPLandroid/os/ServiceManager;->waitForDeclaredService(Ljava/lang/String;)Landroid/os/IBinder;
-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;
-HSPLandroid/os/ServiceManagerProxy;->isDeclared(Ljava/lang/String;)Z
-HSPLandroid/os/ServiceSpecificException;-><init>(ILjava/lang/String;)V
-HSPLandroid/os/SharedMemory$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/SharedMemory;
-HSPLandroid/os/SharedMemory$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/os/SharedMemory$Closer;-><init>(ILandroid/os/SharedMemory$MemoryRegistration;)V
-HSPLandroid/os/SharedMemory$Closer;-><init>(ILandroid/os/SharedMemory$MemoryRegistration;Landroid/os/SharedMemory$Closer-IA;)V
-HSPLandroid/os/SharedMemory$MemoryRegistration;-><init>(I)V
-HSPLandroid/os/SharedMemory$MemoryRegistration;-><init>(ILandroid/os/SharedMemory$MemoryRegistration-IA;)V
-HSPLandroid/os/SharedMemory$MemoryRegistration;->acquire()Landroid/os/SharedMemory$MemoryRegistration;
-HSPLandroid/os/SharedMemory$Unmapper;-><init>(JILandroid/os/SharedMemory$MemoryRegistration;)V
-HSPLandroid/os/SharedMemory$Unmapper;-><init>(JILandroid/os/SharedMemory$MemoryRegistration;Landroid/os/SharedMemory$Unmapper-IA;)V
-HSPLandroid/os/SharedMemory;-><init>(Ljava/io/FileDescriptor;)V
-HSPLandroid/os/SharedMemory;-><init>(Ljava/io/FileDescriptor;Landroid/os/SharedMemory-IA;)V
-HSPLandroid/os/SharedMemory;->checkOpen()V
-HSPLandroid/os/SharedMemory;->map(III)Ljava/nio/ByteBuffer;
-HSPLandroid/os/SharedMemory;->mapReadOnly()Ljava/nio/ByteBuffer;
-HSPLandroid/os/SharedMemory;->validateProt(I)V
-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
-HSPLandroid/os/StatFs;->getTotalBytes()J
-HSPLandroid/os/StatFs;->restat(Ljava/lang/String;)V
-HSPLandroid/os/StatsServiceManager$ServiceRegisterer;-><init>(Ljava/lang/String;)V
-HSPLandroid/os/StatsServiceManager$ServiceRegisterer;->get()Landroid/os/IBinder;
-HSPLandroid/os/StatsServiceManager;-><init>()V
-HSPLandroid/os/StatsServiceManager;->getStatsManagerServiceRegisterer()Landroid/os/StatsServiceManager$ServiceRegisterer;
-HSPLandroid/os/StrictMode$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/os/StrictMode$$ExternalSyntheticLambda1;->log(Landroid/os/StrictMode$ViolationInfo;)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
-HSPLandroid/os/StrictMode$8;->initialValue()Landroid/os/StrictMode$ThreadSpanState;
-HSPLandroid/os/StrictMode$8;->initialValue()Ljava/lang/Object;
-HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy$$ExternalSyntheticLambda1;->run()V
-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(Landroid/view/IWindowManager;Ljava/util/ArrayList;)V
-HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onCustomSlowCall(Ljava/lang/String;)V
-HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onNetwork()V
-HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onReadFromDisk()V+]Landroid/os/StrictMode$AndroidBlockGuardPolicy;Landroid/os/StrictMode$AndroidBlockGuardPolicy;
-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$AndroidCloseGuardReporter-IA;)V
-HSPLandroid/os/StrictMode$AndroidCloseGuardReporter;->report(Ljava/lang/String;)V
-HSPLandroid/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
-HSPLandroid/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;
-HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectAll()Landroid/os/StrictMode$ThreadPolicy$Builder;
-HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectCustomSlowCalls()Landroid/os/StrictMode$ThreadPolicy$Builder;
-HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectDiskReads()Landroid/os/StrictMode$ThreadPolicy$Builder;
-HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectDiskWrites()Landroid/os/StrictMode$ThreadPolicy$Builder;
-HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectExplicitGc()Landroid/os/StrictMode$ThreadPolicy$Builder;
-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;
-HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->penaltyDropBox()Landroid/os/StrictMode$ThreadPolicy$Builder;
-HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->penaltyLog()Landroid/os/StrictMode$ThreadPolicy$Builder;
-HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitAll()Landroid/os/StrictMode$ThreadPolicy$Builder;
-HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitCustomSlowCalls()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;->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$ThreadPolicy-IA;)V
-HSPLandroid/os/StrictMode$ThreadSpanState;-><init>()V
-HSPLandroid/os/StrictMode$ThreadSpanState;-><init>(Landroid/os/StrictMode$ThreadSpanState-IA;)V
-HSPLandroid/os/StrictMode$UnsafeIntentStrictModeCallback;-><init>()V
-HSPLandroid/os/StrictMode$UnsafeIntentStrictModeCallback;-><init>(Landroid/os/StrictMode$UnsafeIntentStrictModeCallback-IA;)V
-HSPLandroid/os/StrictMode$ViolationInfo;->-$$Nest$fgetmViolation(Landroid/os/StrictMode$ViolationInfo;)Landroid/os/strictmode/Violation;
-HSPLandroid/os/StrictMode$ViolationInfo;-><init>(Landroid/os/Parcel;Z)V+]Ljava/util/Deque;Ljava/util/ArrayDeque;]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/os/StrictMode$ViolationInfo;-><init>(Landroid/os/strictmode/Violation;I)V
-HSPLandroid/os/StrictMode$ViolationInfo;->getStackTrace()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;
-HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectContentUriWithoutPermission()Landroid/os/StrictMode$VmPolicy$Builder;
-HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectCredentialProtectedWhileLocked()Landroid/os/StrictMode$VmPolicy$Builder;
-HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectFileUriExposure()Landroid/os/StrictMode$VmPolicy$Builder;
-HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectIncorrectContextUse()Landroid/os/StrictMode$VmPolicy$Builder;
-HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectLeakedClosableObjects()Landroid/os/StrictMode$VmPolicy$Builder;
-HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectLeakedRegistrationObjects()Landroid/os/StrictMode$VmPolicy$Builder;
-HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectLeakedSqlLiteObjects()Landroid/os/StrictMode$VmPolicy$Builder;
-HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectUnsafeIntentLaunch()Landroid/os/StrictMode$VmPolicy$Builder;
-HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectUntaggedSockets()Landroid/os/StrictMode$VmPolicy$Builder;
-HSPLandroid/os/StrictMode$VmPolicy$Builder;->disable(I)Landroid/os/StrictMode$VmPolicy$Builder;
-HSPLandroid/os/StrictMode$VmPolicy$Builder;->enable(I)Landroid/os/StrictMode$VmPolicy$Builder;
-HSPLandroid/os/StrictMode$VmPolicy$Builder;->penaltyDeathOnFileUriExposure()Landroid/os/StrictMode$VmPolicy$Builder;
-HSPLandroid/os/StrictMode$VmPolicy$Builder;->penaltyDropBox()Landroid/os/StrictMode$VmPolicy$Builder;
-HSPLandroid/os/StrictMode$VmPolicy$Builder;->penaltyLog()Landroid/os/StrictMode$VmPolicy$Builder;
-HSPLandroid/os/StrictMode$VmPolicy$Builder;->permitActivityLeaks()Landroid/os/StrictMode$VmPolicy$Builder;
-HSPLandroid/os/StrictMode$VmPolicy$Builder;->permitUnsafeIntentLaunch()Landroid/os/StrictMode$VmPolicy$Builder;
-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$VmPolicy-IA;)V
-HSPLandroid/os/StrictMode;->-$$Nest$sfgetEMPTY_CLASS_LIMIT_MAP()Ljava/util/HashMap;
-HSPLandroid/os/StrictMode;->-$$Nest$sfgetLOGCAT_LOGGER()Landroid/os/StrictMode$ViolationLogger;
-HSPLandroid/os/StrictMode;->-$$Nest$sfgetLOG_V()Z
-HSPLandroid/os/StrictMode;->-$$Nest$sfgetsExpectedActivityInstanceCount()Ljava/util/HashMap;
-HSPLandroid/os/StrictMode;->-$$Nest$sfgetsLogger()Landroid/os/StrictMode$ViolationLogger;
-HSPLandroid/os/StrictMode;->-$$Nest$sfgetsThisThreadSpanState()Ljava/lang/ThreadLocal;
-HSPLandroid/os/StrictMode;->-$$Nest$sfgetsThreadViolationExecutor()Ljava/lang/ThreadLocal;
-HSPLandroid/os/StrictMode;->-$$Nest$sfgetsThreadViolationListener()Ljava/lang/ThreadLocal;
-HSPLandroid/os/StrictMode;->-$$Nest$smclampViolationTimeMap(Landroid/util/SparseLongArray;J)V
-HSPLandroid/os/StrictMode;->-$$Nest$smtooManyViolationsThisLoop()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;->allowVmViolations()Landroid/os/StrictMode$VmPolicy;
-HSPLandroid/os/StrictMode;->assertConfigurationContext(Landroid/content/Context;Ljava/lang/String;)V
-HSPLandroid/os/StrictMode;->clampViolationTimeMap(Landroid/util/SparseLongArray;J)V
-HSPLandroid/os/StrictMode;->clearGatheredViolations()V+]Ljava/lang/ThreadLocal;Landroid/os/StrictMode$1;
-HSPLandroid/os/StrictMode;->decrementExpectedActivityCount(Ljava/lang/Class;)V
-HSPLandroid/os/StrictMode;->dropboxViolationAsync(ILandroid/os/StrictMode$ViolationInfo;)V
-HSPLandroid/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;->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;->noteUntaggedSocket()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;->registerIntentMatchingRestrictionCallback()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;->trackActivity(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/os/StrictMode;->vmClosableObjectLeaksEnabled()Z
-HSPLandroid/os/StrictMode;->vmContentUriWithoutPermissionEnabled()Z
-HSPLandroid/os/StrictMode;->vmFileUriExposureEnabled()Z
-HSPLandroid/os/StrictMode;->vmImplicitDirectBootEnabled()Z
-HSPLandroid/os/StrictMode;->vmIncorrectContextUseEnabled()Z
-HSPLandroid/os/StrictMode;->vmRegistrationLeaksEnabled()Z
-HSPLandroid/os/StrictMode;->vmSqliteObjectLeaksEnabled()Z
-HSPLandroid/os/StrictMode;->vmUnsafeIntentLaunchEnabled()Z
-HSPLandroid/os/StrictMode;->vmUntaggedSocketEnabled()Z
-HSPLandroid/os/StrictMode;->writeGatheredViolationsToParcel(Landroid/os/Parcel;)V
-HSPLandroid/os/SystemClock$2;->millis()J
-HSPLandroid/os/SystemClock;->sleep(J)V
-HSPLandroid/os/SystemConfigManager;-><init>()V
-HSPLandroid/os/SystemConfigManager;->getDisabledUntilUsedPreinstalledCarrierApps()Ljava/util/Set;
-HSPLandroid/os/SystemConfigManager;->getDisabledUntilUsedPreinstalledCarrierAssociatedAppEntries()Ljava/util/Map;
-HSPLandroid/os/SystemProperties$Handle;-><init>(J)V
-HSPLandroid/os/SystemProperties$Handle;-><init>(JLandroid/os/SystemProperties$Handle-IA;)V
-HSPLandroid/os/SystemProperties$Handle;->getLong(J)J
-HSPLandroid/os/SystemProperties;->-$$Nest$smnative_get_long(JJ)J
-HSPLandroid/os/SystemProperties;->addChangeCallback(Ljava/lang/Runnable;)V
-HSPLandroid/os/SystemProperties;->find(Ljava/lang/String;)Landroid/os/SystemProperties$Handle;
-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
-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
-HSPLandroid/os/SystemVibrator;-><init>(Landroid/content/Context;)V
-HSPLandroid/os/SystemVibrator;->hasVibrator()Z
-HSPLandroid/os/SystemVibrator;->vibrate(ILjava/lang/String;Landroid/os/VibrationEffect;Ljava/lang/String;Landroid/os/VibrationAttributes;)V
-HSPLandroid/os/SystemVibratorManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/os/SystemVibratorManager;->getVibratorIds()[I
-HSPLandroid/os/SystemVibratorManager;->vibrate(ILjava/lang/String;Landroid/os/CombinedVibration;Ljava/lang/String;Landroid/os/VibrationAttributes;)V
-HSPLandroid/os/TelephonyServiceManager$ServiceRegisterer;-><init>(Ljava/lang/String;)V
-HSPLandroid/os/TelephonyServiceManager$ServiceRegisterer;->get()Landroid/os/IBinder;
-HSPLandroid/os/TelephonyServiceManager;-><init>()V
-HSPLandroid/os/TelephonyServiceManager;->getCarrierConfigServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer;
-HSPLandroid/os/TelephonyServiceManager;->getEuiccControllerService()Landroid/os/TelephonyServiceManager$ServiceRegisterer;
-HSPLandroid/os/TelephonyServiceManager;->getPhoneSubServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer;
-HSPLandroid/os/TelephonyServiceManager;->getSmsServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer;
-HSPLandroid/os/TelephonyServiceManager;->getSubscriptionServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer;
-HSPLandroid/os/TelephonyServiceManager;->getTelephonyServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer;
-HSPLandroid/os/Temperature;-><init>(FILjava/lang/String;I)V
-HSPLandroid/os/Temperature;->getStatus()I
-HSPLandroid/os/Temperature;->isValidStatus(I)Z
-HSPLandroid/os/ThreadLocalWorkSource$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
-HSPLandroid/os/ThreadLocalWorkSource;->getToken()J+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal;
-HSPLandroid/os/ThreadLocalWorkSource;->getUid()I+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal;
-HSPLandroid/os/ThreadLocalWorkSource;->lambda$static$0()[I
-HSPLandroid/os/ThreadLocalWorkSource;->parseUidFromToken(J)I
-HSPLandroid/os/ThreadLocalWorkSource;->restore(J)V+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal;
-HSPLandroid/os/ThreadLocalWorkSource;->setUid(I)J+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal;
-HSPLandroid/os/Trace;->asyncTraceBegin(JLjava/lang/String;I)V
-HSPLandroid/os/Trace;->asyncTraceEnd(JLjava/lang/String;I)V
-HSPLandroid/os/Trace;->asyncTraceForTrackBegin(JLjava/lang/String;Ljava/lang/String;I)V
-HSPLandroid/os/Trace;->asyncTraceForTrackEnd(JLjava/lang/String;I)V
-HSPLandroid/os/Trace;->beginAsyncSection(Ljava/lang/String;I)V
-HSPLandroid/os/Trace;->beginSection(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/os/Trace;->endAsyncSection(Ljava/lang/String;I)V
-HSPLandroid/os/Trace;->endSection()V
-HSPLandroid/os/Trace;->instant(JLjava/lang/String;)V
-HSPLandroid/os/Trace;->instantForTrack(JLjava/lang/String;Ljava/lang/String;)V
-HSPLandroid/os/Trace;->isEnabled()Z
-HSPLandroid/os/Trace;->isTagEnabled(J)Z
-HSPLandroid/os/Trace;->setAppTracingAllowed(Z)V
-HSPLandroid/os/Trace;->setCounter(Ljava/lang/String;J)V
-HSPLandroid/os/Trace;->traceBegin(JLjava/lang/String;)V
-HSPLandroid/os/Trace;->traceCounter(JLjava/lang/String;I)V
-HSPLandroid/os/Trace;->traceEnd(J)V
-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
-HSPLandroid/os/UserHandle;->equals(Ljava/lang/Object;)Z
-HSPLandroid/os/UserHandle;->formatUid(I)Ljava/lang/String;
-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;->getUid(II)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;->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;
-HSPLandroid/os/UserHandle;->toString()Ljava/lang/String;
-HSPLandroid/os/UserHandle;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/os/UserHandle;->writeToParcel(Landroid/os/UserHandle;Landroid/os/Parcel;)V
-HSPLandroid/os/UserManager$1;-><init>(Landroid/os/UserManager;ILjava/lang/String;)V
-HSPLandroid/os/UserManager$1;->bypass(Ljava/lang/Integer;)Z
-HSPLandroid/os/UserManager$1;->bypass(Ljava/lang/Object;)Z
-HSPLandroid/os/UserManager$1;->recompute(Ljava/lang/Integer;)Ljava/lang/Boolean;
-HSPLandroid/os/UserManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/os/UserManager$2;-><init>(Landroid/os/UserManager;ILjava/lang/String;)V
-HSPLandroid/os/UserManager$2;->bypass(Ljava/lang/Integer;)Z
-HSPLandroid/os/UserManager$2;->bypass(Ljava/lang/Object;)Z
-HSPLandroid/os/UserManager$2;->recompute(Ljava/lang/Integer;)Ljava/lang/Boolean;
-HSPLandroid/os/UserManager$2;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/os/UserManager$3;-><init>(Landroid/os/UserManager;ILjava/lang/String;)V
-HSPLandroid/os/UserManager$3;->bypass(Ljava/lang/Integer;)Z
-HSPLandroid/os/UserManager$3;->bypass(Ljava/lang/Object;)Z
-HSPLandroid/os/UserManager$3;->recompute(Ljava/lang/Integer;)Ljava/lang/String;
-HSPLandroid/os/UserManager$3;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/os/UserManager$4;-><init>(Landroid/os/UserManager;ILjava/lang/String;)V
-HSPLandroid/os/UserManager;->-$$Nest$fgetmService(Landroid/os/UserManager;)Landroid/os/IUserManager;
-HSPLandroid/os/UserManager;-><init>(Landroid/content/Context;Landroid/os/IUserManager;)V
-HSPLandroid/os/UserManager;->convertUserIdsToUserHandles([I)Ljava/util/List;
-HSPLandroid/os/UserManager;->get(Landroid/content/Context;)Landroid/os/UserManager;
-HSPLandroid/os/UserManager;->getAliveUsers()Ljava/util/List;
-HSPLandroid/os/UserManager;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;
-HSPLandroid/os/UserManager;->getContextUserIfAppropriate()I
-HSPLandroid/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;->getProfileType(I)Ljava/lang/String;
-HSPLandroid/os/UserManager;->getProfiles(I)Ljava/util/List;
-HSPLandroid/os/UserManager;->getProfiles(Z)Ljava/util/List;
-HSPLandroid/os/UserManager;->getSerialNumberForUser(Landroid/os/UserHandle;)J
-HSPLandroid/os/UserManager;->getUserBadgeColor(I)I
-HSPLandroid/os/UserManager;->getUserCount()I
-HSPLandroid/os/UserManager;->getUserForSerialNumber(J)Landroid/os/UserHandle;
-HSPLandroid/os/UserManager;->getUserHandle()I
-HSPLandroid/os/UserManager;->getUserHandle(I)I
-HSPLandroid/os/UserManager;->getUserHandles(Z)Ljava/util/List;
-HSPLandroid/os/UserManager;->getUserInfo(I)Landroid/content/pm/UserInfo;
-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;->getUsers()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;I)Z
-HSPLandroid/os/UserManager;->hasUserRestrictionForUser(Ljava/lang/String;Landroid/os/UserHandle;)Z
-HSPLandroid/os/UserManager;->isDemoUser()Z
-HSPLandroid/os/UserManager;->isDeviceInDemoMode(Landroid/content/Context;)Z
-HSPLandroid/os/UserManager;->isHeadlessSystemUserMode()Z
-HSPLandroid/os/UserManager;->isManagedProfile()Z
-HSPLandroid/os/UserManager;->isManagedProfile(I)Z
-HSPLandroid/os/UserManager;->isProfile(I)Z
-HSPLandroid/os/UserManager;->isQuietModeEnabled(Landroid/os/UserHandle;)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;->isUserSwitcherEnabled()Z
-HSPLandroid/os/UserManager;->isUserSwitcherEnabled(Z)Z
-HSPLandroid/os/UserManager;->isUserTypeManagedProfile(Ljava/lang/String;)Z
-HSPLandroid/os/UserManager;->isUserTypeRestricted(Ljava/lang/String;)Z
-HSPLandroid/os/UserManager;->isUserUnlocked()Z
-HSPLandroid/os/UserManager;->isUserUnlocked(I)Z
-HSPLandroid/os/UserManager;->isUserUnlocked(Landroid/os/UserHandle;)Z
-HSPLandroid/os/UserManager;->isUserUnlockingOrUnlocked(I)Z
-HSPLandroid/os/UserManager;->supportsMultipleUsers()Z
-HSPLandroid/os/VibrationAttributes$Builder;-><init>()V
-HSPLandroid/os/VibrationAttributes$Builder;->build()Landroid/os/VibrationAttributes;
-HSPLandroid/os/VibrationAttributes$Builder;->setUsage(Landroid/media/AudioAttributes;)V
-HSPLandroid/os/VibrationEffect$Composed;->validate()V
-HSPLandroid/os/VibrationEffect;-><init>()V
-HSPLandroid/os/VibrationEffect;->createOneShot(JI)Landroid/os/VibrationEffect;
-HSPLandroid/os/VibrationEffect;->createWaveform([JI)Landroid/os/VibrationEffect;
-HSPLandroid/os/VibrationEffect;->createWaveform([J[II)Landroid/os/VibrationEffect;
-HSPLandroid/os/VibrationEffect;->get(IZ)Landroid/os/VibrationEffect;
-HSPLandroid/os/Vibrator;-><init>(Landroid/content/Context;)V
-HSPLandroid/os/Vibrator;->vibrate(Landroid/os/VibrationEffect;Landroid/media/AudioAttributes;)V
-HSPLandroid/os/Vibrator;->vibrate(Landroid/os/VibrationEffect;Landroid/os/VibrationAttributes;)V
-HSPLandroid/os/VibratorManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/os/WorkSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/WorkSource;
-HSPLandroid/os/WorkSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/os/WorkSource;-><init>()V
-HSPLandroid/os/WorkSource;-><init>(ILjava/lang/String;)V
-HSPLandroid/os/WorkSource;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/os/WorkSource;-><init>(Landroid/os/WorkSource;)V
-HSPLandroid/os/WorkSource;->add(ILjava/lang/String;)Z
-HSPLandroid/os/WorkSource;->add(Landroid/os/WorkSource;)Z
-HSPLandroid/os/WorkSource;->diff(Landroid/os/WorkSource;)Z
-HSPLandroid/os/WorkSource;->equals(Ljava/lang/Object;)Z
-HSPLandroid/os/WorkSource;->getPackageName(I)Ljava/lang/String;
-HSPLandroid/os/WorkSource;->getUid(I)I
-HSPLandroid/os/WorkSource;->getWorkChains()Ljava/util/List;
-HSPLandroid/os/WorkSource;->insert(IILjava/lang/String;)V
-HSPLandroid/os/WorkSource;->isEmpty()Z
-HSPLandroid/os/WorkSource;->remove(Landroid/os/WorkSource;)Z
-HSPLandroid/os/WorkSource;->removeUidsAndNames(Landroid/os/WorkSource;)Z
-HSPLandroid/os/WorkSource;->set(Landroid/os/WorkSource;)V
-HSPLandroid/os/WorkSource;->size()I
-HSPLandroid/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
-HSPLandroid/os/WorkSource;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/os/connectivity/CellularBatteryStats;-><init>(JJJJJJJJJLjava/lang/Long;[J[J[JJ)V
-HSPLandroid/os/health/HealthStats;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/os/health/HealthStats;->getMeasurement(I)J
-HSPLandroid/os/health/HealthStats;->getMeasurements(I)Ljava/util/Map;
-HSPLandroid/os/health/HealthStats;->getStats(I)Ljava/util/Map;
-HSPLandroid/os/health/HealthStats;->getTimer(I)Landroid/os/health/TimerStat;
-HSPLandroid/os/health/HealthStats;->getTimers(I)Ljava/util/Map;
-HSPLandroid/os/health/HealthStats;->hasMeasurement(I)Z
-HSPLandroid/os/health/HealthStats;->hasMeasurements(I)Z
-HSPLandroid/os/health/HealthStats;->hasStats(I)Z
-HSPLandroid/os/health/HealthStats;->hasTimer(I)Z
-HSPLandroid/os/health/HealthStats;->hasTimers(I)Z
-HSPLandroid/os/health/HealthStatsParceler$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/health/HealthStatsParceler;
-HSPLandroid/os/health/HealthStatsParceler$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/os/health/HealthStatsParceler;->getHealthStats()Landroid/os/health/HealthStats;
-HSPLandroid/os/health/SystemHealthManager;->takeMyUidSnapshot()Landroid/os/health/HealthStats;
-HSPLandroid/os/health/SystemHealthManager;->takeUidSnapshot(I)Landroid/os/health/HealthStats;
-HSPLandroid/os/health/TimerStat$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/health/TimerStat;
-HSPLandroid/os/health/TimerStat$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/os/health/TimerStat;->getCount()I
-HSPLandroid/os/health/TimerStat;->getTime()J
-HSPLandroid/os/storage/IObbActionListener$Stub;-><init>()V
-HSPLandroid/os/storage/IStorageEventListener$Stub;-><init>()V
-HSPLandroid/os/storage/IStorageEventListener$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/os/storage/IStorageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->allocateBytes(Ljava/lang/String;JILjava/lang/String;)V
-HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getAllocatableBytes(Ljava/lang/String;ILjava/lang/String;)J
-HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getVolumeList(ILjava/lang/String;I)[Landroid/os/storage/StorageVolume;
-HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getVolumes(I)[Landroid/os/storage/VolumeInfo;
-HSPLandroid/os/storage/IStorageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IStorageManager;
-HSPLandroid/os/storage/StorageEventListener;-><init>()V
-HSPLandroid/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$ObbActionListener-IA;)V
-HSPLandroid/os/storage/StorageManager$StorageEventListenerDelegate;-><init>(Landroid/os/storage/StorageManager;Ljava/util/concurrent/Executor;Landroid/os/storage/StorageEventListener;Landroid/os/storage/StorageManager$StorageVolumeCallback;)V
-HSPLandroid/os/storage/StorageManager$StorageEventListenerDelegate;->onStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/os/storage/StorageManager$StorageEventListenerDelegate;->onVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V
-HSPLandroid/os/storage/StorageManager$StorageVolumeCallback;-><init>()V
-HSPLandroid/os/storage/StorageManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
-HSPLandroid/os/storage/StorageManager;->allocateBytes(Ljava/io/FileDescriptor;JI)V
-HSPLandroid/os/storage/StorageManager;->allocateBytes(Ljava/util/UUID;JI)V
-HSPLandroid/os/storage/StorageManager;->convert(Ljava/lang/String;)Ljava/util/UUID;
-HSPLandroid/os/storage/StorageManager;->convert(Ljava/util/UUID;)Ljava/lang/String;+]Ljava/lang/Object;Ljava/util/UUID;
-HSPLandroid/os/storage/StorageManager;->getAllocatableBytes(Ljava/util/UUID;I)J
-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;->getVolumes()Ljava/util/List;
-HSPLandroid/os/storage/StorageManager;->isEncrypted()Z
-HSPLandroid/os/storage/StorageManager;->registerListener(Landroid/os/storage/StorageEventListener;)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-IA;)V
-HSPLandroid/os/storage/StorageVolume;->getId()Ljava/lang/String;
-HSPLandroid/os/storage/StorageVolume;->getOwner()Landroid/os/UserHandle;
-HSPLandroid/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;
-HSPLandroid/os/storage/StorageVolume;->isEmulated()Z
-HSPLandroid/os/storage/StorageVolume;->isPrimary()Z
-HSPLandroid/os/storage/StorageVolume;->isRemovable()Z
-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;->getPathForUser(I)Ljava/io/File;
-HSPLandroid/os/storage/VolumeInfo;->getType()I
-HSPLandroid/os/strictmode/CredentialProtectedWhileLockedViolation;-><init>(Ljava/lang/String;)V
-HSPLandroid/os/strictmode/DiskReadViolation;-><init>()V
-HSPLandroid/os/strictmode/LeakedClosableViolation;-><init>(Ljava/lang/String;)V
-HSPLandroid/os/strictmode/Violation;-><init>(Ljava/lang/String;)V
-HSPLandroid/os/strictmode/Violation;->calcStackTraceHashCode([Ljava/lang/StackTraceElement;)I
-HSPLandroid/os/strictmode/Violation;->fillInStackTrace()Ljava/lang/Throwable;
-HSPLandroid/os/strictmode/Violation;->hashCode()I
-HSPLandroid/os/strictmode/Violation;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
-HSPLandroid/os/vibrator/PrebakedSegment;->getDuration()J
-HSPLandroid/os/vibrator/PrebakedSegment;->isValidEffectStrength(I)Z
-HSPLandroid/os/vibrator/PrebakedSegment;->validate()V
-HSPLandroid/os/vibrator/StepSegment;->getDuration()J
-HSPLandroid/os/vibrator/StepSegment;->validate()V
-HSPLandroid/os/vibrator/VibrationEffectSegment;-><init>()V
-HSPLandroid/os/vibrator/VibrationEffectSegment;->checkDurationArgument(JLjava/lang/String;)V
-HSPLandroid/os/vibrator/VibrationEffectSegment;->checkFrequencyArgument(FLjava/lang/String;)V
-HSPLandroid/permission/ILegacyPermissionManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/permission/ILegacyPermissionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/permission/ILegacyPermissionManager;
-HSPLandroid/permission/IOnPermissionsChangeListener$Stub;-><init>()V
-HSPLandroid/permission/IOnPermissionsChangeListener$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/permission/IPermissionChecker$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/permission/IPermissionChecker$Stub$Proxy;->checkPermission(Ljava/lang/String;Landroid/content/AttributionSourceState;Ljava/lang/String;ZZZI)I
-HSPLandroid/permission/IPermissionChecker$Stub;->asInterface(Landroid/os/IBinder;)Landroid/permission/IPermissionChecker;
-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;->asBinder()Landroid/os/IBinder;
-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;->removeOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
-HSPLandroid/permission/IPermissionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/permission/IPermissionManager;
-HSPLandroid/permission/LegacyPermissionManager;-><init>()V
-HSPLandroid/permission/LegacyPermissionManager;-><init>(Landroid/permission/ILegacyPermissionManager;)V
-HSPLandroid/permission/LegacyPermissionManager;->checkDeviceIdentifierAccess(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)I
-HSPLandroid/permission/PermissionCheckerManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/permission/PermissionCheckerManager;->checkPermission(Ljava/lang/String;Landroid/content/AttributionSourceState;Ljava/lang/String;ZZZI)I
-HSPLandroid/permission/PermissionManager$1;-><init>(ILjava/lang/String;Ljava/lang/String;)V
-HSPLandroid/permission/PermissionManager$1;->recompute(Landroid/permission/PermissionManager$PermissionQuery;)Ljava/lang/Integer;
-HSPLandroid/permission/PermissionManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/permission/PermissionManager$2;-><init>(ILjava/lang/String;Ljava/lang/String;)V
-HSPLandroid/permission/PermissionManager$2;->bypass(Landroid/permission/PermissionManager$PackageNamePermissionQuery;)Z
-HSPLandroid/permission/PermissionManager$2;->bypass(Ljava/lang/Object;)Z
-HSPLandroid/permission/PermissionManager$2;->recompute(Landroid/permission/PermissionManager$PackageNamePermissionQuery;)Ljava/lang/Integer;
-HSPLandroid/permission/PermissionManager$2;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/permission/PermissionManager$OnPermissionsChangeListenerDelegate;-><init>(Landroid/permission/PermissionManager;Landroid/content/pm/PackageManager$OnPermissionsChangedListener;Landroid/os/Looper;)V
-HSPLandroid/permission/PermissionManager$OnPermissionsChangeListenerDelegate;->handleMessage(Landroid/os/Message;)Z
-HSPLandroid/permission/PermissionManager$PackageNamePermissionQuery;->equals(Ljava/lang/Object;)Z
-HSPLandroid/permission/PermissionManager$PackageNamePermissionQuery;->hashCode()I
-HSPLandroid/permission/PermissionManager$PermissionQuery;->equals(Ljava/lang/Object;)Z
-HSPLandroid/permission/PermissionManager$PermissionQuery;->hashCode()I
-HSPLandroid/permission/PermissionManager$SplitPermissionInfo;-><init>(Landroid/content/pm/permission/SplitPermissionInfoParcelable;)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;-><clinit>()V
-HSPLandroid/permission/PermissionManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/permission/PermissionManager;->addOnPermissionsChangeListener(Landroid/content/pm/PackageManager$OnPermissionsChangedListener;)V
-HSPLandroid/permission/PermissionManager;->checkPermissionUncached(Ljava/lang/String;III)I+]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;
-HSPLandroid/permission/PermissionManager;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)I
-HSPLandroid/permission/PermissionManager;->getPermissionInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;
-HSPLandroid/permission/PermissionManager;->getPersistentDeviceId(I)Ljava/lang/String;
-HSPLandroid/permission/PermissionManager;->getSplitPermissions()Ljava/util/List;
-HSPLandroid/permission/PermissionManager;->removeOnPermissionsChangeListener(Landroid/content/pm/PackageManager$OnPermissionsChangedListener;)V
-HSPLandroid/permission/PermissionManager;->splitPermissionInfoListToNonParcelableList(Ljava/util/List;)Ljava/util/List;
-HSPLandroid/permission/PermissionManager;->updatePermissionFlags(Ljava/lang/String;Ljava/lang/String;IILandroid/os/UserHandle;)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/provider/CallLog$Calls;->shouldHaveSharedCallLogEntries(Landroid/content/Context;Landroid/os/UserManager;I)Z
-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$Contacts;->getLookupUri(JLjava/lang/String;)Landroid/net/Uri;
-HSPLandroid/provider/DeviceConfigInitializer;-><clinit>()V
-HSPLandroid/provider/DeviceConfigInitializer;->setDeviceConfigServiceManager(Landroid/provider/DeviceConfigServiceManager;)V
-HSPLandroid/provider/DeviceConfigServiceManager;-><init>()V
-HSPLandroid/provider/FontRequest;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
-HSPLandroid/provider/FontsContract$1;->run()V
-HSPLandroid/provider/FontsContract$FontFamilyResult;->getFonts()[Landroid/provider/FontsContract$FontInfo;
-HSPLandroid/provider/FontsContract$FontFamilyResult;->getStatusCode()I
-HSPLandroid/provider/FontsContract$FontInfo;->getAxes()[Landroid/graphics/fonts/FontVariationAxis;
-HSPLandroid/provider/FontsContract$FontInfo;->getResultCode()I
-HSPLandroid/provider/FontsContract$FontInfo;->getTtcIndex()I
-HSPLandroid/provider/FontsContract$FontInfo;->getUri()Landroid/net/Uri;
-HSPLandroid/provider/FontsContract$FontInfo;->getWeight()I
-HSPLandroid/provider/FontsContract$FontInfo;->isItalic()Z
-HSPLandroid/provider/FontsContract;->buildTypeface(Landroid/content/Context;Landroid/os/CancellationSignal;[Landroid/provider/FontsContract$FontInfo;)Landroid/graphics/Typeface;
-HSPLandroid/provider/FontsContract;->fetchFonts(Landroid/content/Context;Landroid/os/CancellationSignal;Landroid/provider/FontRequest;)Landroid/provider/FontsContract$FontFamilyResult;
-HSPLandroid/provider/FontsContract;->getFontFromProvider(Landroid/content/Context;Landroid/provider/FontRequest;Ljava/lang/String;Landroid/os/CancellationSignal;)[Landroid/provider/FontsContract$FontInfo;
-HSPLandroid/provider/FontsContract;->getFontSync(Landroid/provider/FontRequest;)Landroid/graphics/Typeface;
-HSPLandroid/provider/FontsContract;->getProvider(Landroid/content/pm/PackageManager;Landroid/provider/FontRequest;)Landroid/content/pm/ProviderInfo;
-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
-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;->checkCallingOrSelfPermission(Ljava/lang/String;)I
-HSPLandroid/provider/Settings$Config;->createCompositeName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/provider/Settings$Config;->createNamespaceUri(Ljava/lang/String;)Landroid/net/Uri;
-HSPLandroid/provider/Settings$Config;->createPrefix(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/provider/Settings$Config;->getContentResolver()Landroid/content/ContentResolver;
-HSPLandroid/provider/Settings$Config;->getStrings(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Ljava/util/Map;
-HSPLandroid/provider/Settings$Config;->getStrings(Ljava/lang/String;Ljava/util/List;)Ljava/util/Map;
-HSPLandroid/provider/Settings$Config;->registerContentObserver(Ljava/lang/String;ZLandroid/database/ContentObserver;)V
-HSPLandroid/provider/Settings$ContentProviderHolder;->-$$Nest$fgetmUri(Landroid/provider/Settings$ContentProviderHolder;)Landroid/net/Uri;
-HSPLandroid/provider/Settings$ContentProviderHolder;->getProvider(Landroid/content/ContentResolver;)Landroid/content/IContentProvider;
-HSPLandroid/provider/Settings$GenerationTracker;-><init>(Ljava/lang/String;Landroid/util/MemoryIntArray;IILjava/util/function/Consumer;)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)J
-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;+]Landroid/provider/Settings$NameValueCache;Landroid/provider/Settings$NameValueCache;]Ljava/util/HashSet;Ljava/util/HashSet;
-HSPLandroid/provider/Settings$Global;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
-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
-HSPLandroid/provider/Settings$Global;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZIZ)Z
-HSPLandroid/provider/Settings$NameValueCache$$ExternalSyntheticLambda0;-><init>(Landroid/provider/Settings$NameValueCache;)V
-HSPLandroid/provider/Settings$NameValueCache;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/content/IContentProvider;Landroid/content/ContentProviderProxy;]Landroid/provider/Settings$GenerationTracker;Landroid/provider/Settings$GenerationTracker;]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/provider/Settings$ContentProviderHolder;Landroid/provider/Settings$ContentProviderHolder;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver;]Landroid/net/Uri;Landroid/net/Uri$StringUri;
-HSPLandroid/provider/Settings$NameValueCache;->getStringsForPrefixStripPrefix(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Ljava/util/Map;+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;]Landroid/provider/Settings$GenerationTracker;Landroid/provider/Settings$GenerationTracker;]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/provider/Settings$ContentProviderHolder;Landroid/provider/Settings$ContentProviderHolder;]Ljava/util/Set;Ljava/util/HashMap$EntrySet;]Ljava/lang/String;Ljava/lang/String;]Landroid/content/IContentProvider;Landroid/content/ContentProviderProxy;,Landroid/content/ContentProvider$Transport;]Ljava/util/List;Ljava/util/Arrays$ArrayList;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;,Ljava/util/Arrays$ArrayItr;]Landroid/net/Uri;Landroid/net/Uri$StringUri;
-HSPLandroid/provider/Settings$NameValueCache;->isCallerExemptFromReadableRestriction()Z
-HSPLandroid/provider/Settings$NameValueCache;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZIZ)Z
-HSPLandroid/provider/Settings$NameValueTable;->getUriFor(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
-HSPLandroid/provider/Settings$Secure;->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
-HSPLandroid/provider/Settings$Secure;->getLong(Landroid/content/ContentResolver;Ljava/lang/String;J)J
-HSPLandroid/provider/Settings$Secure;->getLongForUser(Landroid/content/ContentResolver;Ljava/lang/String;JI)J
-HSPLandroid/provider/Settings$Secure;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;+]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver;
-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;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
-HSPLandroid/provider/Settings$Secure;->putIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)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;ZIZ)Z
-HSPLandroid/provider/Settings$SettingNotFoundException;-><init>(Ljava/lang/String;)V
-HSPLandroid/provider/Settings$System;->getFloat(Landroid/content/ContentResolver;Ljava/lang/String;)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
-HSPLandroid/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;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;+]Landroid/provider/Settings$NameValueCache;Landroid/provider/Settings$NameValueCache;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/HashSet;Ljava/util/HashSet;
-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
-HSPLandroid/provider/Settings$System;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;IZ)Z
-HSPLandroid/provider/Settings;->-$$Nest$smparseIntSetting(Ljava/lang/String;Ljava/lang/String;)I
-HSPLandroid/provider/Settings;->-$$Nest$smparseIntSettingWithDefault(Ljava/lang/String;I)I
-HSPLandroid/provider/Settings;->canDrawOverlays(Landroid/content/Context;)Z
-HSPLandroid/provider/Settings;->isCallingPackageAllowedToDrawOverlays(Landroid/content/Context;ILjava/lang/String;Z)Z
-HSPLandroid/provider/Settings;->isCallingPackageAllowedToPerformAppOpsProtectedOperation(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;ZI[Ljava/lang/String;Z)Z
-HSPLandroid/provider/Settings;->isInSystemServer()Z
-HSPLandroid/provider/Settings;->parseFloatSettingWithDefault(Ljava/lang/String;F)F
-HSPLandroid/provider/Settings;->parseIntSetting(Ljava/lang/String;Ljava/lang/String;)I
-HSPLandroid/provider/Settings;->parseIntSettingWithDefault(Ljava/lang/String;I)I
-HSPLandroid/provider/Settings;->parseLongSettingWithDefault(Ljava/lang/String;J)J
-HSPLandroid/provider/Telephony$Sms;->getDefaultSmsPackage(Landroid/content/Context;)Ljava/lang/String;
-HSPLandroid/renderscript/RenderScriptCacheDir;->setupDiskCache(Ljava/io/File;)V
-HSPLandroid/se/omapi/SeServiceManager;-><init>()V
-HSPLandroid/security/FeatureFlagsImpl;-><init>()V
-HSPLandroid/security/Flags;-><clinit>()V
-HSPLandroid/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
-HSPLandroid/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;->bindAsUser(Landroid/content/Context;Landroid/os/Handler;Landroid/os/UserHandle;)Landroid/security/KeyChain$KeyChainConnection;
-HSPLandroid/security/KeyChain;->bindAsUser(Landroid/content/Context;Landroid/os/UserHandle;)Landroid/security/KeyChain$KeyChainConnection;
-HSPLandroid/security/KeyChain;->ensureNotOnMainThread(Landroid/content/Context;)V
-HSPLandroid/security/KeyStore2$$ExternalSyntheticLambda3;->execute(Landroid/system/keystore2/IKeystoreService;)Ljava/lang/Object;
-HSPLandroid/security/KeyStore2$$ExternalSyntheticLambda4;->execute(Landroid/system/keystore2/IKeystoreService;)Ljava/lang/Object;
-HSPLandroid/security/KeyStore2;-><init>()V
-HSPLandroid/security/KeyStore2;->getInstance()Landroid/security/KeyStore2;
-HSPLandroid/security/KeyStore2;->getKeyEntry(Landroid/system/keystore2/KeyDescriptor;)Landroid/system/keystore2/KeyEntryResponse;
-HSPLandroid/security/KeyStore2;->getKeyStoreException(ILjava/lang/String;)Landroid/security/KeyStoreException;
-HSPLandroid/security/KeyStore2;->getService(Z)Landroid/system/keystore2/IKeystoreService;
-HSPLandroid/security/KeyStore2;->handleRemoteExceptionWithRetry(Landroid/security/KeyStore2$CheckedRemoteRequest;)Ljava/lang/Object;
-HSPLandroid/security/KeyStore;->getInstance()Landroid/security/KeyStore;
-HSPLandroid/security/KeyStoreException;-><init>(ILjava/lang/String;)V
-HSPLandroid/security/KeyStoreException;-><init>(ILjava/lang/String;Ljava/lang/String;)V
-HSPLandroid/security/KeyStoreException;->getErrorCode()I
-HSPLandroid/security/KeyStoreException;->initializeRkpStatusForRegularErrors(I)I
-HSPLandroid/security/KeyStoreOperation$$ExternalSyntheticLambda0;->execute()Ljava/lang/Object;
-HSPLandroid/security/KeyStoreOperation$$ExternalSyntheticLambda1;->execute()Ljava/lang/Object;
-HSPLandroid/security/KeyStoreOperation$$ExternalSyntheticLambda2;->execute()Ljava/lang/Object;
-HSPLandroid/security/KeyStoreOperation$$ExternalSyntheticLambda3;->execute()Ljava/lang/Object;
-HSPLandroid/security/KeyStoreOperation;-><init>(Landroid/system/keystore2/IKeystoreOperation;Ljava/lang/Long;[Landroid/hardware/security/keymint/KeyParameter;)V
-HSPLandroid/security/KeyStoreOperation;->abort()V
-HSPLandroid/security/KeyStoreOperation;->finish([B[B)[B
-HSPLandroid/security/KeyStoreOperation;->getChallenge()Ljava/lang/Long;
-HSPLandroid/security/KeyStoreOperation;->getParameters()[Landroid/hardware/security/keymint/KeyParameter;
-HSPLandroid/security/KeyStoreOperation;->handleExceptions(Landroid/security/CheckedRemoteRequest;)Ljava/lang/Object;
-HSPLandroid/security/KeyStoreOperation;->update([B)[B
-HSPLandroid/security/KeyStoreSecurityLevel;-><init>(Landroid/system/keystore2/IKeystoreSecurityLevel;)V
-HSPLandroid/security/KeyStoreSecurityLevel;->createOperation(Landroid/system/keystore2/KeyDescriptor;Ljava/util/Collection;)Landroid/security/KeyStoreOperation;
-HSPLandroid/security/NetworkSecurityPolicy;->getInstance()Landroid/security/NetworkSecurityPolicy;
-HSPLandroid/security/NetworkSecurityPolicy;->isCleartextTrafficPermitted(Ljava/lang/String;)Z
-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;-><init>(Landroid/os/Parcel;)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;->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;->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;
-HSPLandroid/security/keymaster/KeymasterArgument;-><init>(I)V
-HSPLandroid/security/keymaster/KeymasterArgument;->writeToParcel(Landroid/os/Parcel;I)V
-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;->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;->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;->getBytes(I[B)[B
-HSPLandroid/security/keymaster/KeymasterArguments;->getEnum(II)I
-HSPLandroid/security/keymaster/KeymasterArguments;->getEnums(I)Ljava/util/List;
-HSPLandroid/security/keymaster/KeymasterArguments;->getUnsignedInt(IJ)J
-HSPLandroid/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;->writeValue(Landroid/os/Parcel;)V
-HSPLandroid/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;->writeValue(Landroid/os/Parcel;)V
-HSPLandroid/security/keymaster/KeymasterLongArgument;-><init>(IJ)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>(Landroid/os/Parcel;)V
-HSPLandroid/security/keystore/AndroidKeyStoreProvider;-><init>(Ljava/lang/String;)V
-HSPLandroid/security/keystore/AndroidKeyStoreProvider;->getKeyStoreForUid(I)Ljava/security/KeyStore;
-HSPLandroid/security/keystore/ArrayUtils;->cloneIfNotEmpty([B)[B
-HSPLandroid/security/keystore/ArrayUtils;->cloneIfNotEmpty([Ljava/lang/String;)[Ljava/lang/String;
-HSPLandroid/security/keystore/ArrayUtils;->concat([BII[BII)[B
-HSPLandroid/security/keystore/ArrayUtils;->concat([B[B)[B
-HSPLandroid/security/keystore/ArrayUtils;->nullToEmpty([Ljava/lang/String;)[Ljava/lang/String;
-HSPLandroid/security/keystore/ArrayUtils;->subarray([BII)[B
-HSPLandroid/security/keystore/DelegatingX509Certificate;-><init>(Ljava/security/cert/X509Certificate;)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;->setBlockModes([Ljava/lang/String;)Landroid/security/keystore/KeyGenParameterSpec$Builder;
-HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;->setEncryptionPaddings([Ljava/lang/String;)Landroid/security/keystore/KeyGenParameterSpec$Builder;
-HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;->setKeySize(I)Landroid/security/keystore/KeyGenParameterSpec$Builder;
-HSPLandroid/security/keystore/KeyGenParameterSpec;->getBlockModes()[Ljava/lang/String;
-HSPLandroid/security/keystore/KeyGenParameterSpec;->getEncryptionPaddings()[Ljava/lang/String;
-HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeySize()I
-HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeyValidityForConsumptionEnd()Ljava/util/Date;
-HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeyValidityForOriginationEnd()Ljava/util/Date;
-HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeyValidityStart()Ljava/util/Date;
-HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeystoreAlias()Ljava/lang/String;
-HSPLandroid/security/keystore/KeyGenParameterSpec;->getPurposes()I
-HSPLandroid/security/keystore/KeyGenParameterSpec;->getSignaturePaddings()[Ljava/lang/String;
-HSPLandroid/security/keystore/KeyGenParameterSpec;->getUid()I
-HSPLandroid/security/keystore/KeyGenParameterSpec;->isCriticalToDeviceEncryption()Z
-HSPLandroid/security/keystore/KeyGenParameterSpec;->isDigestsSpecified()Z
-HSPLandroid/security/keystore/KeyGenParameterSpec;->isStrongBoxBacked()Z
-HSPLandroid/security/keystore/KeyGenParameterSpec;->isUnlockedDeviceRequired()Z
-HSPLandroid/security/keystore/KeyGenParameterSpec;->isUserAuthenticationRequired()Z
-HSPLandroid/security/keystore/KeyGenParameterSpec;->isUserConfirmationRequired()Z
-HSPLandroid/security/keystore/KeyGenParameterSpec;->isUserPresenceRequired()Z
-HSPLandroid/security/keystore/KeyProperties$BlockMode;->allToKeymaster([Ljava/lang/String;)[I
-HSPLandroid/security/keystore/KeyProperties$Digest;->toKeymaster(Ljava/lang/String;)I
-HSPLandroid/security/keystore/KeyProperties$EncryptionPadding;->allToKeymaster([Ljava/lang/String;)[I
-HSPLandroid/security/keystore/KeyProperties$KeyAlgorithm;->fromKeymasterAsymmetricKeyAlgorithm(I)Ljava/lang/String;
-HSPLandroid/security/keystore/KeyProperties$KeyAlgorithm;->fromKeymasterSecretKeyAlgorithm(II)Ljava/lang/String;
-HSPLandroid/security/keystore/KeyProperties$Purpose;->allToKeymaster(I)[I
-HSPLandroid/security/keystore/KeyProperties$Purpose;->toKeymaster(I)I
-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;->getErrorCode()I
-HSPLandroid/security/keystore/Utils;->cloneIfNotNull(Ljava/util/Date;)Ljava/util/Date;
-HSPLandroid/security/keystore/Utils;->cloneIfNotNull([B)[B
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream;-><init>(Landroid/security/KeyStoreOperation;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream;-><init>(Landroid/security/KeyStoreOperation;Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream-IA;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream;->finish([B[B)[B
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer;-><init>(Landroid/security/keystore2/KeyStoreCryptoOperationStreamer;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer;-><init>(Landroid/security/keystore2/KeyStoreCryptoOperationStreamer;Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer-IA;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer;->doFinal([BII[B)[B
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM$NoPadding;-><init>()V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM$NoPadding;->finalize()V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;-><init>(I)V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->addAlgorithmSpecificParametersToBegin(Ljava/util/List;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->createAdditionalAuthenticationDataStreamer(Landroid/security/KeyStoreOperation;)Landroid/security/keystore2/KeyStoreCryptoOperationStreamer;
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->createMainDataStreamer(Landroid/security/KeyStoreOperation;)Landroid/security/keystore2/KeyStoreCryptoOperationStreamer;
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->initAlgorithmSpecificParameters()V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->initAlgorithmSpecificParameters(Ljava/security/spec/AlgorithmParameterSpec;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->resetAll()V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->resetWhilePreservingInitState()V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi;-><init>(II)V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi;->addAlgorithmSpecificParametersToBegin(Ljava/util/List;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi;->engineGetIV()[B
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi;->initKey(ILjava/security/Key;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi;->loadAlgorithmSpecificParametersFromBeginResult([Landroid/hardware/security/keymint/KeyParameter;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi;->resetAll()V
-HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi;->setIv([B)V
-HSPLandroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider;-><init>()V
-HSPLandroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider;->putAsymmetricCipherImpl(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider;->putMacImpl(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider;->putSignatureImpl(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider;->putSymmetricCipherImpl(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;-><init>()V
-HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->abortOperation()V
-HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->engineDoFinal([BII)[B
-HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->engineDoFinal([BII[BI)I
-HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->engineInit(ILjava/security/Key;Ljava/security/SecureRandom;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->engineInit(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->finalize()V
-HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->flushAAD()V
-HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->init(ILjava/security/Key;Ljava/security/SecureRandom;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->isEncrypting()Z
-HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->resetAll()V
-HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->resetWhilePreservingInitState()V
-HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->setKey(Landroid/security/keystore2/AndroidKeyStoreKey;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreKey;-><init>(Landroid/system/keystore2/KeyDescriptor;J[Landroid/system/keystore2/Authorization;Ljava/lang/String;Landroid/security/KeyStoreSecurityLevel;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getAlgorithm()Ljava/lang/String;
-HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getFormat()Ljava/lang/String;
-HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getKeyIdDescriptor()Landroid/system/keystore2/KeyDescriptor;
-HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getSecurityLevel()Landroid/security/KeyStoreSecurityLevel;
-HSPLandroid/security/keystore2/AndroidKeyStoreProvider;-><init>()V
-HSPLandroid/security/keystore2/AndroidKeyStoreProvider;->install()V
-HSPLandroid/security/keystore2/AndroidKeyStoreProvider;->loadAndroidKeyStoreKeyFromKeystore(Landroid/security/KeyStore2;Landroid/system/keystore2/KeyDescriptor;)Landroid/security/keystore2/AndroidKeyStoreKey;
-HSPLandroid/security/keystore2/AndroidKeyStoreProvider;->loadAndroidKeyStoreKeyFromKeystore(Landroid/security/KeyStore2;Ljava/lang/String;I)Landroid/security/keystore2/AndroidKeyStoreKey;
-HSPLandroid/security/keystore2/AndroidKeyStoreProvider;->makeAndroidKeyStoreSecretKeyFromKeyEntryResponse(Landroid/system/keystore2/KeyDescriptor;Landroid/system/keystore2/KeyEntryResponse;II)Landroid/security/keystore2/AndroidKeyStoreSecretKey;
-HSPLandroid/security/keystore2/AndroidKeyStoreProvider;->putKeyFactoryImpl(Ljava/lang/String;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreProvider;->putSecretKeyFactoryImpl(Ljava/lang/String;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreSecretKey;-><init>(Landroid/system/keystore2/KeyDescriptor;Landroid/system/keystore2/KeyMetadata;Ljava/lang/String;Landroid/security/KeyStoreSecurityLevel;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreSpi;-><init>()V
-HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->engineContainsAlias(Ljava/lang/String;)Z
-HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->engineGetKey(Ljava/lang/String;[C)Ljava/security/Key;
-HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->engineIsKeyEntry(Ljava/lang/String;)Z
-HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->engineLoad(Ljava/security/KeyStore$LoadStoreParameter;)V
-HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->getKeyMetadata(Ljava/lang/String;)Landroid/system/keystore2/KeyEntryResponse;
-HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->getTargetDomain()I
-HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->isKeyEntry(Ljava/lang/String;)Z
-HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->makeKeyDescriptor(Ljava/lang/String;)Landroid/system/keystore2/KeyDescriptor;
-HSPLandroid/security/keystore2/KeyStore2ParameterUtils;->makeBytes(I[B)Landroid/hardware/security/keymint/KeyParameter;
-HSPLandroid/security/keystore2/KeyStore2ParameterUtils;->makeEnum(II)Landroid/hardware/security/keymint/KeyParameter;
-HSPLandroid/security/keystore2/KeyStore2ParameterUtils;->makeInt(II)Landroid/hardware/security/keymint/KeyParameter;
-HSPLandroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;-><init>(Landroid/security/KeyStoreOperation;)V
-HSPLandroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;->finish([B[B)[B
-HSPLandroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;->update([B)[B
-HSPLandroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer;-><init>(Landroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer$Stream;I)V
-HSPLandroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer;-><init>(Landroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer$Stream;II)V
-HSPLandroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer;->doFinal([BII[B)[B
-HSPLandroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer;->update([BII)[B
-HSPLandroid/security/keystore2/KeyStoreCryptoOperationUtils;->abortOperation(Landroid/security/KeyStoreOperation;)V
-HSPLandroid/security/keystore2/KeyStoreCryptoOperationUtils;->getOrMakeOperationChallenge(Landroid/security/KeyStoreOperation;Landroid/security/keystore2/AndroidKeyStoreKey;)J
-HSPLandroid/security/keystore2/KeyStoreCryptoOperationUtils;->getRandomBytesToMixIntoKeystoreRng(Ljava/security/SecureRandom;I)[B
-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;->hasPerDomainConfigs()Z
-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
-HSPLandroid/security/net/config/CertificatesEntryRef;-><init>(Landroid/security/net/config/CertificateSource;Z)V
-HSPLandroid/security/net/config/CertificatesEntryRef;->findAllCertificatesByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
-HSPLandroid/security/net/config/CertificatesEntryRef;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Landroid/security/net/config/TrustAnchor;
-HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;-><init>(Landroid/security/net/config/ApplicationConfig;)V
-HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;->isCertificateTransparencyVerificationRequired(Ljava/lang/String;)Z
-HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;->isCleartextTrafficPermitted(Ljava/lang/String;)Z
-HSPLandroid/security/net/config/DirectoryCertificateSource$1;-><init>(Landroid/security/net/config/DirectoryCertificateSource;Ljava/security/cert/X509Certificate;)V
-HSPLandroid/security/net/config/DirectoryCertificateSource$3;-><init>(Landroid/security/net/config/DirectoryCertificateSource;Ljava/security/cert/X509Certificate;)V
-HSPLandroid/security/net/config/DirectoryCertificateSource$3;->match(Ljava/security/cert/X509Certificate;)Z
-HSPLandroid/security/net/config/DirectoryCertificateSource;-><init>(Ljava/io/File;)V
-HSPLandroid/security/net/config/DirectoryCertificateSource;->findAllByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
-HSPLandroid/security/net/config/DirectoryCertificateSource;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
-HSPLandroid/security/net/config/DirectoryCertificateSource;->findCert(Ljavax/security/auth/x500/X500Principal;Landroid/security/net/config/DirectoryCertificateSource$CertSelector;)Ljava/security/cert/X509Certificate;
-HSPLandroid/security/net/config/DirectoryCertificateSource;->findCerts(Ljavax/security/auth/x500/X500Principal;Landroid/security/net/config/DirectoryCertificateSource$CertSelector;)Ljava/util/Set;
-HSPLandroid/security/net/config/DirectoryCertificateSource;->getHash(Ljavax/security/auth/x500/X500Principal;)Ljava/lang/String;
-HSPLandroid/security/net/config/DirectoryCertificateSource;->hashName(Ljavax/security/auth/x500/X500Principal;)I
-HSPLandroid/security/net/config/DirectoryCertificateSource;->intToHexString(II)Ljava/lang/String;
-HSPLandroid/security/net/config/DirectoryCertificateSource;->readCertificate(Ljava/lang/String;)Ljava/security/cert/X509Certificate;
-HSPLandroid/security/net/config/Domain;->hashCode()I
-HSPLandroid/security/net/config/KeyStoreCertificateSource;-><init>(Ljava/security/KeyStore;)V
-HSPLandroid/security/net/config/KeyStoreCertificateSource;->ensureInitialized()V
-HSPLandroid/security/net/config/KeyStoreCertificateSource;->findAllByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
-HSPLandroid/security/net/config/KeyStoreCertificateSource;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
-HSPLandroid/security/net/config/KeyStoreConfigSource;-><init>(Ljava/security/KeyStore;)V
-HSPLandroid/security/net/config/KeyStoreConfigSource;->getDefaultConfig()Landroid/security/net/config/NetworkSecurityConfig;
-HSPLandroid/security/net/config/KeyStoreConfigSource;->getPerDomainConfigs()Ljava/util/Set;
-HSPLandroid/security/net/config/ManifestConfigSource$DefaultConfigSource;-><init>(ZLandroid/content/pm/ApplicationInfo;)V
-HSPLandroid/security/net/config/ManifestConfigSource$DefaultConfigSource;->getDefaultConfig()Landroid/security/net/config/NetworkSecurityConfig;
-HSPLandroid/security/net/config/ManifestConfigSource$DefaultConfigSource;->getPerDomainConfigs()Ljava/util/Set;
-HSPLandroid/security/net/config/ManifestConfigSource;-><init>(Landroid/content/Context;)V
-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;
-HSPLandroid/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
-HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;-><init>()V
-HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->addCertificatesEntryRef(Landroid/security/net/config/CertificatesEntryRef;)Landroid/security/net/config/NetworkSecurityConfig$Builder;
-HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->addCertificatesEntryRefs(Ljava/util/Collection;)Landroid/security/net/config/NetworkSecurityConfig$Builder;
-HSPLandroid/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;
-HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->getParent()Landroid/security/net/config/NetworkSecurityConfig$Builder;
-HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->setCleartextTrafficPermitted(Z)Landroid/security/net/config/NetworkSecurityConfig$Builder;
-HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->setHstsEnforced(Z)Landroid/security/net/config/NetworkSecurityConfig$Builder;
-HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->setParent(Landroid/security/net/config/NetworkSecurityConfig$Builder;)Landroid/security/net/config/NetworkSecurityConfig$Builder;
-HSPLandroid/security/net/config/NetworkSecurityConfig;-><init>(ZZZLandroid/security/net/config/PinSet;Ljava/util/List;)V
-HSPLandroid/security/net/config/NetworkSecurityConfig;->findAllCertificatesByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
-HSPLandroid/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;->getPins()Landroid/security/net/config/PinSet;
-HSPLandroid/security/net/config/NetworkSecurityConfig;->getTrustManager()Landroid/security/net/config/NetworkSecurityTrustManager;
-HSPLandroid/security/net/config/NetworkSecurityConfig;->isCleartextTrafficPermitted()Z
-HSPLandroid/security/net/config/NetworkSecurityConfigProvider;-><init>()V
-HSPLandroid/security/net/config/NetworkSecurityConfigProvider;->handleNewApplication(Landroid/content/Context;)V
-HSPLandroid/security/net/config/NetworkSecurityConfigProvider;->install(Landroid/content/Context;)V
-HSPLandroid/security/net/config/NetworkSecurityTrustManager;-><init>(Landroid/security/net/config/NetworkSecurityConfig;)V
-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/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;->-$$Nest$sfgetINSTANCE()Landroid/security/net/config/SystemCertificateSource;
-HSPLandroid/security/net/config/SystemCertificateSource$NoPreloadHolder;-><clinit>()V
-HSPLandroid/security/net/config/SystemCertificateSource;-><init>()V
-HSPLandroid/security/net/config/SystemCertificateSource;-><init>(Landroid/security/net/config/SystemCertificateSource-IA;)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;
-HSPLandroid/security/net/config/SystemCertificateSource;->getDirectory()Ljava/io/File;
-HSPLandroid/security/net/config/SystemCertificateSource;->getInstance()Landroid/security/net/config/SystemCertificateSource;
-HSPLandroid/security/net/config/SystemCertificateSource;->isCertMarkedAsRemoved(Ljava/lang/String;)Z
-HSPLandroid/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;->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
-HSPLandroid/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;
-HSPLandroid/security/net/config/XmlConfigSource;->parseCertificatesEntry(Landroid/content/res/XmlResourceParser;Z)Landroid/security/net/config/CertificatesEntryRef;
-HSPLandroid/security/net/config/XmlConfigSource;->parseConfigEntry(Landroid/content/res/XmlResourceParser;Ljava/util/Set;Landroid/security/net/config/NetworkSecurityConfig$Builder;I)Ljava/util/List;
-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;
-HSPLandroid/server/FeatureFlagsImpl;->telemetryApisService()Z
-HSPLandroid/service/appprediction/IPredictionService$Stub;-><init>()V
-HSPLandroid/service/dreams/IDreamManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/dreams/IDreamManager;
-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;->asBinder()Landroid/os/IBinder;
-HSPLandroid/service/media/IMediaBrowserServiceCallbacks$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/media/IMediaBrowserServiceCallbacks;
-HSPLandroid/service/media/MediaBrowserService$ServiceBinder;->connect(Ljava/lang/String;Landroid/os/Bundle;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
-HSPLandroid/service/media/MediaBrowserService;->-$$Nest$fgetmHandler(Landroid/service/media/MediaBrowserService;)Landroid/os/Handler;
-HSPLandroid/service/media/MediaBrowserService;-><init>()V
-HSPLandroid/service/media/MediaBrowserService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
-HSPLandroid/service/media/MediaBrowserService;->onCreate()V
-HSPLandroid/service/media/MediaBrowserService;->setSessionToken(Landroid/media/session/MediaSession$Token;)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;
-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
-HSPLandroid/service/notification/Condition;->isValidState(I)Z
-HSPLandroid/service/notification/ConditionProviderService$H;-><init>(Landroid/service/notification/ConditionProviderService;)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;->onConnected()V
-HSPLandroid/service/notification/ConditionProviderService;-><init>()V
-HSPLandroid/service/notification/ConditionProviderService;->getNotificationInterface()Landroid/app/INotificationManager;
-HSPLandroid/service/notification/ConditionProviderService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
-HSPLandroid/service/notification/IConditionProvider$Stub;-><init>()V
-HSPLandroid/service/notification/IConditionProvider$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/service/notification/INotificationListener$Stub;-><init>()V
-HSPLandroid/service/notification/INotificationListener$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/service/notification/INotificationListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/service/notification/IStatusBarNotificationHolder$Stub$Proxy;->get()Landroid/service/notification/StatusBarNotification;
-HSPLandroid/service/notification/NotificationListenerService$MyHandler;-><init>(Landroid/service/notification/NotificationListenerService;Landroid/os/Looper;)V
-HSPLandroid/service/notification/NotificationListenerService$MyHandler;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;-><init>(Landroid/service/notification/NotificationListenerService;)V
-HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onInterruptionFilterChanged(I)V
-HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onListenerConnected(Landroid/service/notification/NotificationRankingUpdate;)V
-HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationChannelGroupModification(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V
-HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationChannelModification(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
-HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationPosted(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;)V+]Landroid/os/Handler;Landroid/service/notification/NotificationListenerService$MyHandler;]Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/IStatusBarNotificationHolder$Stub$Proxy;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/os/Message;Landroid/os/Message;
-HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationRankingUpdate(Landroid/service/notification/NotificationRankingUpdate;)V
-HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationRemoved(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
-HSPLandroid/service/notification/NotificationListenerService$Ranking;-><init>()V
-HSPLandroid/service/notification/NotificationListenerService$Ranking;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Object;Landroid/service/notification/NotificationListenerService$Ranking;]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/service/notification/NotificationListenerService$Ranking;->getChannel()Landroid/app/NotificationChannel;
-HSPLandroid/service/notification/NotificationListenerService$Ranking;->getKey()Ljava/lang/String;
-HSPLandroid/service/notification/NotificationListenerService$Ranking;->populate(Landroid/service/notification/NotificationListenerService$Ranking;)V+]Landroid/service/notification/NotificationListenerService$Ranking;Landroid/service/notification/NotificationListenerService$Ranking;
-HSPLandroid/service/notification/NotificationListenerService$Ranking;->populate(Ljava/lang/String;IZIIILjava/lang/CharSequence;Ljava/lang/String;Landroid/app/NotificationChannel;Ljava/util/ArrayList;Ljava/util/ArrayList;ZIZJZLjava/util/ArrayList;Ljava/util/ArrayList;ZZZLandroid/content/pm/ShortcutInfo;IZIZ)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+]Landroid/service/notification/NotificationListenerService$Ranking;Landroid/service/notification/NotificationListenerService$Ranking;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Object;Landroid/service/notification/NotificationListenerService$RankingMap;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/service/notification/NotificationListenerService$RankingMap;->getOrderedKeys()[Ljava/lang/String;
-HSPLandroid/service/notification/NotificationListenerService$RankingMap;->getRanking(Ljava/lang/String;Landroid/service/notification/NotificationListenerService$Ranking;)Z
-HSPLandroid/service/notification/NotificationListenerService;-><init>()V
-HSPLandroid/service/notification/NotificationListenerService;->applyUpdateLocked(Landroid/service/notification/NotificationRankingUpdate;)V
-HSPLandroid/service/notification/NotificationListenerService;->attachBaseContext(Landroid/content/Context;)V
-HSPLandroid/service/notification/NotificationListenerService;->cleanUpNotificationList(Landroid/content/pm/ParceledListSlice;)[Landroid/service/notification/StatusBarNotification;
-HSPLandroid/service/notification/NotificationListenerService;->createLegacyIconExtras(Landroid/app/Notification;)V
-HSPLandroid/service/notification/NotificationListenerService;->getActiveNotifications()[Landroid/service/notification/StatusBarNotification;
-HSPLandroid/service/notification/NotificationListenerService;->getActiveNotifications([Ljava/lang/String;I)[Landroid/service/notification/StatusBarNotification;
-HSPLandroid/service/notification/NotificationListenerService;->getContext()Landroid/content/Context;
-HSPLandroid/service/notification/NotificationListenerService;->getCurrentRanking()Landroid/service/notification/NotificationListenerService$RankingMap;
-HSPLandroid/service/notification/NotificationListenerService;->getNotificationInterface()Landroid/app/INotificationManager;
-HSPLandroid/service/notification/NotificationListenerService;->isBound()Z
-HSPLandroid/service/notification/NotificationListenerService;->maybePopulatePeople(Landroid/app/Notification;)V
-HSPLandroid/service/notification/NotificationListenerService;->maybePopulateRemoteViews(Landroid/app/Notification;)V
-HSPLandroid/service/notification/NotificationListenerService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
-HSPLandroid/service/notification/NotificationListenerService;->onInterruptionFilterChanged(I)V
-HSPLandroid/service/notification/NotificationListenerService;->onListenerConnected()V
-HSPLandroid/service/notification/NotificationListenerService;->onNotificationChannelGroupModified(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V
-HSPLandroid/service/notification/NotificationListenerService;->onNotificationPosted(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;)V
-HSPLandroid/service/notification/NotificationListenerService;->onNotificationRankingUpdate(Landroid/service/notification/NotificationListenerService$RankingMap;)V
-HSPLandroid/service/notification/NotificationListenerService;->onNotificationRemoved(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;Landroid/service/notification/NotificationStats;I)V
-HSPLandroid/service/notification/NotificationRankingUpdate$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/NotificationRankingUpdate;
-HSPLandroid/service/notification/NotificationRankingUpdate$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/service/notification/NotificationRankingUpdate;-><init>(Landroid/os/Parcel;)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+]Landroid/os/Parcelable$Creator;Lcom/android/internal/logging/InstanceId$1;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/service/notification/StatusBarNotification;->getGroupKey()Ljava/lang/String;
-HSPLandroid/service/notification/StatusBarNotification;->getId()I
-HSPLandroid/service/notification/StatusBarNotification;->getInstanceId()Lcom/android/internal/logging/InstanceId;
-HSPLandroid/service/notification/StatusBarNotification;->getKey()Ljava/lang/String;
-HSPLandroid/service/notification/StatusBarNotification;->getNotification()Landroid/app/Notification;
-HSPLandroid/service/notification/StatusBarNotification;->getOpPkg()Ljava/lang/String;
-HSPLandroid/service/notification/StatusBarNotification;->getOverrideGroupKey()Ljava/lang/String;
-HSPLandroid/service/notification/StatusBarNotification;->getPackageContext(Landroid/content/Context;)Landroid/content/Context;
-HSPLandroid/service/notification/StatusBarNotification;->getPackageName()Ljava/lang/String;
-HSPLandroid/service/notification/StatusBarNotification;->getPostTime()J
-HSPLandroid/service/notification/StatusBarNotification;->getTag()Ljava/lang/String;
-HSPLandroid/service/notification/StatusBarNotification;->getUid()I
-HSPLandroid/service/notification/StatusBarNotification;->getUser()Landroid/os/UserHandle;
-HSPLandroid/service/notification/StatusBarNotification;->getUserId()I
-HSPLandroid/service/notification/StatusBarNotification;->groupKey()Ljava/lang/String;
-HSPLandroid/service/notification/StatusBarNotification;->isAppGroup()Z
-HSPLandroid/service/notification/StatusBarNotification;->isGroup()Z
-HSPLandroid/service/notification/StatusBarNotification;->isOngoing()Z
-HSPLandroid/service/notification/StatusBarNotification;->key()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/UserHandle;Landroid/os/UserHandle;
-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>(Landroid/os/Parcel;)V
-HSPLandroid/service/notification/ZenModeConfig$ZenRule;->equals(Ljava/lang/Object;)Z
-HSPLandroid/service/notification/ZenModeConfig;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/service/notification/ZenModeConfig;->areAllPriorityOnlyRingerSoundsMuted(Landroid/app/NotificationManager$Policy;)Z
-HSPLandroid/service/notification/ZenModeConfig;->equals(Ljava/lang/Object;)Z
-HSPLandroid/service/textclassifier/ITextClassifierCallback$Stub$Proxy;->onSuccess(Landroid/os/Bundle;)V
-HSPLandroid/service/textclassifier/ITextClassifierCallback$Stub;-><init>()V
-HSPLandroid/service/textclassifier/ITextClassifierCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/service/textclassifier/ITextClassifierCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onClassifyText(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassification$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
-HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onCreateTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;)V
-HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onDestroyTextClassificationSession(Landroid/view/textclassifier/TextClassificationSessionId;)V
-HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onGenerateLinks(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextLinks$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
-HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onSelectionEvent(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/SelectionEvent;)V
-HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onSuggestConversationActions(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/ConversationActions$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
-HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onTextClassifierEvent(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassifierEvent;)V
-HSPLandroid/service/textclassifier/ITextClassifierService$Stub;-><init>()V
-HSPLandroid/service/textclassifier/ITextClassifierService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/textclassifier/ITextClassifierService;
-HSPLandroid/service/textclassifier/ITextClassifierService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/service/textclassifier/TextClassifierService;->getResponse(Landroid/os/Bundle;)Landroid/os/Parcelable;
-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;
-HSPLandroid/service/vr/IVrManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/vr/IVrManager;
-HSPLandroid/service/vr/IVrStateCallbacks$Stub;-><init>()V
-HSPLandroid/speech/tts/ITextToSpeechCallback$Stub;-><init>()V
-HSPLandroid/speech/tts/ITextToSpeechCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getClientDefaultLanguage()[Ljava/lang/String;
-HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getDefaultVoiceNameFor(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->setCallback(Landroid/os/IBinder;Landroid/speech/tts/ITextToSpeechCallback;)V
-HSPLandroid/speech/tts/TextToSpeech$Connection$1;-><init>(Landroid/speech/tts/TextToSpeech$Connection;)V
-HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->doInBackground([Ljava/lang/Void;)Ljava/lang/Integer;
-HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->onPostExecute(Ljava/lang/Integer;)V
-HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->onPostExecute(Ljava/lang/Object;)V
-HSPLandroid/speech/tts/TextToSpeech$Connection;-><init>(Landroid/speech/tts/TextToSpeech;)V
-HSPLandroid/speech/tts/TextToSpeech$Connection;->getCallerIdentity()Landroid/os/IBinder;
-HSPLandroid/speech/tts/TextToSpeech$Connection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-HSPLandroid/speech/tts/TextToSpeech$EngineInfo;-><init>()V
-HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;)V
-HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;Ljava/lang/String;)V
-HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;Ljava/lang/String;Ljava/lang/String;Z)V
-HSPLandroid/speech/tts/TextToSpeech;->connectToEngine(Ljava/lang/String;)Z
-HSPLandroid/speech/tts/TextToSpeech;->dispatchOnInit(I)V
-HSPLandroid/speech/tts/TextToSpeech;->getDefaultEngine()Ljava/lang/String;
-HSPLandroid/speech/tts/TextToSpeech;->initTts()I
-HSPLandroid/speech/tts/TextToSpeech;->runAction(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
-HSPLandroid/speech/tts/TextToSpeech;->runAction(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;ZZ)Ljava/lang/Object;
-HSPLandroid/speech/tts/TtsEngines;-><init>(Landroid/content/Context;)V
-HSPLandroid/speech/tts/TtsEngines;->getDefaultEngine()Ljava/lang/String;
-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;->isEngineInstalled(Ljava/lang/String;)Z
-HSPLandroid/speech/tts/TtsEngines;->isSystemEngine(Landroid/content/pm/ServiceInfo;)Z
-HSPLandroid/sysprop/DisplayProperties;->debug_force_rtl()Ljava/util/Optional;
-HSPLandroid/sysprop/DisplayProperties;->debug_layout()Ljava/util/Optional;
-HSPLandroid/sysprop/DisplayProperties;->debug_vri_package()Ljava/util/Optional;
-HSPLandroid/sysprop/DisplayProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean;
-HSPLandroid/sysprop/DisplayProperties;->tryParseString(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/sysprop/InputProperties;->tryParseString(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda10;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda7;-><init>()V
-HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda7;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda8;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda9;-><init>()V
-HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda9;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/sysprop/TelephonyProperties;->baseband_version()Ljava/util/List;
-HSPLandroid/sysprop/TelephonyProperties;->current_active_phone()Ljava/util/List;
-HSPLandroid/sysprop/TelephonyProperties;->icc_operator_alpha()Ljava/util/List;
-HSPLandroid/sysprop/TelephonyProperties;->icc_operator_iso_country()Ljava/util/List;
-HSPLandroid/sysprop/TelephonyProperties;->icc_operator_numeric()Ljava/util/List;
-HSPLandroid/sysprop/TelephonyProperties;->lambda$baseband_version$0(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/sysprop/TelephonyProperties;->lambda$icc_operator_alpha$8(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/sysprop/TelephonyProperties;->lambda$icc_operator_iso_country$9(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/sysprop/TelephonyProperties;->lambda$icc_operator_numeric$7(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/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_numeric$2(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/sysprop/TelephonyProperties;->max_active_modems()Ljava/util/Optional;
-HSPLandroid/sysprop/TelephonyProperties;->multi_sim_config()Ljava/util/Optional;
-HSPLandroid/sysprop/TelephonyProperties;->operator_alpha()Ljava/util/List;
-HSPLandroid/sysprop/TelephonyProperties;->operator_is_roaming()Ljava/util/List;
-HSPLandroid/sysprop/TelephonyProperties;->operator_numeric()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/VndkProperties;->product_vndk_version()Ljava/util/Optional;
-HSPLandroid/sysprop/VndkProperties;->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;
-HSPLandroid/system/GaiException;-><init>(Ljava/lang/String;I)V
-HSPLandroid/system/GaiException;->getMessage()Ljava/lang/String;
-HSPLandroid/system/GaiException;->rethrowAsUnknownHostException(Ljava/lang/String;)Ljava/net/UnknownHostException;
-HSPLandroid/system/Int32Ref;-><init>(I)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;->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;->close(Ljava/io/FileDescriptor;)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;
-HSPLandroid/system/Os;->getpeername(Ljava/io/FileDescriptor;)Ljava/net/SocketAddress;
-HSPLandroid/system/Os;->getpgid(I)I
-HSPLandroid/system/Os;->getpid()I
-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;I)I
-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;->mmap(JJIILjava/io/FileDescriptor;J)J
-HSPLandroid/system/Os;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor;
-HSPLandroid/system/Os;->poll([Landroid/system/StructPollfd;I)I
-HSPLandroid/system/Os;->read(Ljava/io/FileDescriptor;[BII)I
-HSPLandroid/system/Os;->rename(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/system/Os;->setenv(Ljava/lang/String;Ljava/lang/String;Z)V
-HSPLandroid/system/Os;->setpgid(II)V
-HSPLandroid/system/Os;->setregid(II)V
-HSPLandroid/system/Os;->setreuid(II)V
-HSPLandroid/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;
-HSPLandroid/system/Os;->sysconf(I)J
-HSPLandroid/system/Os;->write(Ljava/io/FileDescriptor;[BII)I
-HSPLandroid/system/OsConstants;->S_ISDIR(I)Z
-HSPLandroid/system/OsConstants;->errnoName(I)Ljava/lang/String;
-HSPLandroid/system/OsConstants;->gaiName(I)Ljava/lang/String;
-HSPLandroid/system/StructAddrinfo;-><init>()V
-HSPLandroid/system/StructCapUserData;-><init>(III)V
-HSPLandroid/system/StructCapUserHeader;-><init>(II)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/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/UnixSocketAddress;-><init>([B)V
-HSPLandroid/system/keystore2/Authorization$1;-><init>()V
-HSPLandroid/system/keystore2/Authorization$1;->createFromParcel(Landroid/os/Parcel;)Landroid/system/keystore2/Authorization;
-HSPLandroid/system/keystore2/Authorization$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/system/keystore2/Authorization$1;->newArray(I)[Landroid/system/keystore2/Authorization;
-HSPLandroid/system/keystore2/Authorization$1;->newArray(I)[Ljava/lang/Object;
-HSPLandroid/system/keystore2/Authorization;-><clinit>()V
-HSPLandroid/system/keystore2/Authorization;-><init>()V
-HSPLandroid/system/keystore2/Authorization;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/system/keystore2/CreateOperationResponse$1;-><init>()V
-HSPLandroid/system/keystore2/CreateOperationResponse$1;->createFromParcel(Landroid/os/Parcel;)Landroid/system/keystore2/CreateOperationResponse;
-HSPLandroid/system/keystore2/CreateOperationResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/system/keystore2/CreateOperationResponse;-><clinit>()V
-HSPLandroid/system/keystore2/CreateOperationResponse;-><init>()V
-HSPLandroid/system/keystore2/CreateOperationResponse;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/system/keystore2/IKeystoreOperation$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/system/keystore2/IKeystoreOperation$Stub$Proxy;->abort()V
-HSPLandroid/system/keystore2/IKeystoreOperation$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/system/keystore2/IKeystoreOperation$Stub$Proxy;->finish([B[B)[B
-HSPLandroid/system/keystore2/IKeystoreOperation$Stub$Proxy;->update([B)[B
-HSPLandroid/system/keystore2/IKeystoreOperation$Stub;->asInterface(Landroid/os/IBinder;)Landroid/system/keystore2/IKeystoreOperation;
-HSPLandroid/system/keystore2/IKeystoreOperation;-><clinit>()V
-HSPLandroid/system/keystore2/IKeystoreSecurityLevel$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/system/keystore2/IKeystoreSecurityLevel$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/system/keystore2/IKeystoreSecurityLevel$Stub$Proxy;->createOperation(Landroid/system/keystore2/KeyDescriptor;[Landroid/hardware/security/keymint/KeyParameter;Z)Landroid/system/keystore2/CreateOperationResponse;
-HSPLandroid/system/keystore2/IKeystoreSecurityLevel$Stub;->asInterface(Landroid/os/IBinder;)Landroid/system/keystore2/IKeystoreSecurityLevel;
-HSPLandroid/system/keystore2/IKeystoreSecurityLevel;-><clinit>()V
-HSPLandroid/system/keystore2/IKeystoreService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/system/keystore2/IKeystoreService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/system/keystore2/IKeystoreService$Stub$Proxy;->getKeyEntry(Landroid/system/keystore2/KeyDescriptor;)Landroid/system/keystore2/KeyEntryResponse;
-HSPLandroid/system/keystore2/IKeystoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/system/keystore2/IKeystoreService;
-HSPLandroid/system/keystore2/IKeystoreService;-><clinit>()V
-HSPLandroid/system/keystore2/KeyDescriptor$1;-><init>()V
-HSPLandroid/system/keystore2/KeyDescriptor$1;->createFromParcel(Landroid/os/Parcel;)Landroid/system/keystore2/KeyDescriptor;
-HSPLandroid/system/keystore2/KeyDescriptor$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/system/keystore2/KeyDescriptor;-><clinit>()V
-HSPLandroid/system/keystore2/KeyDescriptor;-><init>()V
-HSPLandroid/system/keystore2/KeyDescriptor;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/system/keystore2/KeyDescriptor;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/system/keystore2/KeyEntryResponse$1;-><init>()V
-HSPLandroid/system/keystore2/KeyEntryResponse$1;->createFromParcel(Landroid/os/Parcel;)Landroid/system/keystore2/KeyEntryResponse;
-HSPLandroid/system/keystore2/KeyEntryResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/system/keystore2/KeyEntryResponse;-><clinit>()V
-HSPLandroid/system/keystore2/KeyEntryResponse;-><init>()V
-HSPLandroid/system/keystore2/KeyEntryResponse;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/system/keystore2/KeyMetadata$1;-><init>()V
-HSPLandroid/system/keystore2/KeyMetadata$1;->createFromParcel(Landroid/os/Parcel;)Landroid/system/keystore2/KeyMetadata;
-HSPLandroid/system/keystore2/KeyMetadata$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/system/keystore2/KeyMetadata;-><clinit>()V
-HSPLandroid/system/keystore2/KeyMetadata;-><init>()V
-HSPLandroid/system/keystore2/KeyMetadata;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/system/keystore2/KeyParameters$1;-><init>()V
-HSPLandroid/system/keystore2/KeyParameters$1;->createFromParcel(Landroid/os/Parcel;)Landroid/system/keystore2/KeyParameters;
-HSPLandroid/system/keystore2/KeyParameters$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/system/keystore2/KeyParameters;-><clinit>()V
-HSPLandroid/system/keystore2/KeyParameters;-><init>()V
-HSPLandroid/system/keystore2/KeyParameters;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/system/keystore2/OperationChallenge$1;-><init>()V
-HSPLandroid/system/keystore2/OperationChallenge;-><clinit>()V
-HSPLandroid/telecom/AudioState;-><init>(Landroid/telecom/CallAudioState;)V
-HSPLandroid/telecom/CallAudioState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/CallAudioState;
-HSPLandroid/telecom/CallAudioState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telecom/CallAudioState;-><init>(ZIILandroid/bluetooth/BluetoothDevice;Ljava/util/Collection;)V
-HSPLandroid/telecom/CallAudioState;->audioRouteToString(I)Ljava/lang/String;
-HSPLandroid/telecom/CallAudioState;->getRoute()I
-HSPLandroid/telecom/CallAudioState;->getSupportedRouteMask()I
-HSPLandroid/telecom/CallAudioState;->isMuted()Z
-HSPLandroid/telecom/CallAudioState;->toString()Ljava/lang/String;
-HSPLandroid/telecom/DisconnectCause$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/DisconnectCause;
-HSPLandroid/telecom/DisconnectCause$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telecom/DisconnectCause;->getCode()I
-HSPLandroid/telecom/DisconnectCause;->getReason()Ljava/lang/String;
-HSPLandroid/telecom/Log;->buildMessage(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
-HSPLandroid/telecom/Log;->continueSession(Landroid/telecom/Logging/Session;Ljava/lang/String;)V
-HSPLandroid/telecom/Log;->createSubsession()Landroid/telecom/Logging/Session;
-HSPLandroid/telecom/Log;->d(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
-HSPLandroid/telecom/Log;->d(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
-HSPLandroid/telecom/Log;->endSession()V
-HSPLandroid/telecom/Log;->getSessionId()Ljava/lang/String;
-HSPLandroid/telecom/Log;->getSessionManager()Landroid/telecom/Logging/SessionManager;
-HSPLandroid/telecom/Log;->i(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
-HSPLandroid/telecom/Log;->obfuscatePhoneNumber(Ljava/lang/StringBuilder;Ljava/lang/String;)V
-HSPLandroid/telecom/Log;->pii(Ljava/lang/Object;)Ljava/lang/String;
-HSPLandroid/telecom/Log;->piiHandle(Ljava/lang/Object;)Ljava/lang/String;
-HSPLandroid/telecom/Log;->v(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
-HSPLandroid/telecom/Logging/Session;-><init>(Ljava/lang/String;Ljava/lang/String;JZLjava/lang/String;)V
-HSPLandroid/telecom/Logging/Session;->addChild(Landroid/telecom/Logging/Session;)V
-HSPLandroid/telecom/Logging/Session;->equals(Ljava/lang/Object;)Z
-HSPLandroid/telecom/Logging/Session;->getChildSessions()Ljava/util/ArrayList;
-HSPLandroid/telecom/Logging/Session;->getExecutionStartTimeMilliseconds()J
-HSPLandroid/telecom/Logging/Session;->getFullMethodPath(Ljava/lang/StringBuilder;ZI)V
-HSPLandroid/telecom/Logging/Session;->getFullMethodPath(Z)Ljava/lang/String;
-HSPLandroid/telecom/Logging/Session;->getFullSessionId(I)Ljava/lang/String;
-HSPLandroid/telecom/Logging/Session;->getLocalExecutionTime()J
-HSPLandroid/telecom/Logging/Session;->getNextChildId()Ljava/lang/String;
-HSPLandroid/telecom/Logging/Session;->getOwnerInfo()Ljava/lang/String;
-HSPLandroid/telecom/Logging/Session;->getParentSession()Landroid/telecom/Logging/Session;
-HSPLandroid/telecom/Logging/Session;->getShortMethodName()Ljava/lang/String;
-HSPLandroid/telecom/Logging/Session;->isExternal()Z
-HSPLandroid/telecom/Logging/Session;->isSessionCompleted()Z
-HSPLandroid/telecom/Logging/Session;->isStartedFromActiveSession()Z
-HSPLandroid/telecom/Logging/Session;->markSessionCompleted(J)V
-HSPLandroid/telecom/Logging/Session;->removeChild(Landroid/telecom/Logging/Session;)V
-HSPLandroid/telecom/Logging/Session;->setExecutionStartTimeMs(J)V
-HSPLandroid/telecom/Logging/Session;->setParentSession(Landroid/telecom/Logging/Session;)V
-HSPLandroid/telecom/Logging/Session;->setSessionId(Ljava/lang/String;)V
-HSPLandroid/telecom/Logging/Session;->setShortMethodName(Ljava/lang/String;)V
-HSPLandroid/telecom/Logging/Session;->toString()Ljava/lang/String;
-HSPLandroid/telecom/Logging/SessionManager;-><init>()V
-HSPLandroid/telecom/Logging/SessionManager;->cleanupStaleSessions(J)V
-HSPLandroid/telecom/Logging/SessionManager;->continueSession(Landroid/telecom/Logging/Session;Ljava/lang/String;)V
-HSPLandroid/telecom/Logging/SessionManager;->createSubsession()Landroid/telecom/Logging/Session;
-HSPLandroid/telecom/Logging/SessionManager;->createSubsession(Z)Landroid/telecom/Logging/Session;
-HSPLandroid/telecom/Logging/SessionManager;->endParentSessions(Landroid/telecom/Logging/Session;)V
-HSPLandroid/telecom/Logging/SessionManager;->endSession()V
-HSPLandroid/telecom/Logging/SessionManager;->getSessionId()Ljava/lang/String;
-HSPLandroid/telecom/Logging/SessionManager;->resetStaleSessionTimer()V
-HSPLandroid/telecom/PhoneAccount$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/PhoneAccount;
-HSPLandroid/telecom/PhoneAccount$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-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;->setHighlightColor(I)Landroid/telecom/PhoneAccount$Builder;
-HSPLandroid/telecom/PhoneAccount$Builder;->setIcon(Landroid/graphics/drawable/Icon;)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;
-HSPLandroid/telecom/PhoneAccount$Builder;->setSupportedUriSchemes(Ljava/util/List;)Landroid/telecom/PhoneAccount$Builder;
-HSPLandroid/telecom/PhoneAccount;-><init>(Landroid/os/Parcel;)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;
-HSPLandroid/telecom/PhoneAccount;->equals(Ljava/lang/Object;)Z
-HSPLandroid/telecom/PhoneAccount;->getAccountHandle()Landroid/telecom/PhoneAccountHandle;
-HSPLandroid/telecom/PhoneAccount;->hasAudioRoutes(I)Z
-HSPLandroid/telecom/PhoneAccount;->hasCapabilities(I)Z
-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;->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;->hashCode()I
-HSPLandroid/telecom/PhoneAccountHandle;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/ComponentName;Landroid/content/ComponentName;
-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;
-HSPLandroid/telecom/TelecomManager;->getDefaultDialerPackage(Landroid/os/UserHandle;)Ljava/lang/String;
-HSPLandroid/telecom/TelecomManager;->getPhoneAccount(Landroid/telecom/PhoneAccountHandle;)Landroid/telecom/PhoneAccount;
-HSPLandroid/telecom/TelecomManager;->getSystemDialerPackage()Ljava/lang/String;
-HSPLandroid/telecom/TelecomManager;->getTelecomService()Lcom/android/internal/telecom/ITelecomService;
-HSPLandroid/telecom/TelecomManager;->isInCall()Z
-HSPLandroid/telephony/AccessNetworkConstants;->transportTypeToString(I)Ljava/lang/String;
-HSPLandroid/telephony/AccessNetworkUtils;->getDuplexModeForEutranBand(I)I
-HSPLandroid/telephony/AccessNetworkUtils;->getOperatingBandForEarfcn(I)I
-HSPLandroid/telephony/BinderCacheManager$BinderDeathTracker;-><init>(Landroid/telephony/BinderCacheManager;Landroid/os/IInterface;)V
-HSPLandroid/telephony/BinderCacheManager$BinderDeathTracker;->getConnection()Landroid/os/IInterface;
-HSPLandroid/telephony/BinderCacheManager$BinderDeathTracker;->isAlive()Z
-HSPLandroid/telephony/BinderCacheManager;->getBinder()Landroid/os/IInterface;
-HSPLandroid/telephony/BinderCacheManager;->getTracker()Landroid/telephony/BinderCacheManager$BinderDeathTracker;
-HSPLandroid/telephony/CarrierConfigManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/telephony/CarrierConfigManager;->getConfig()Landroid/os/PersistableBundle;
-HSPLandroid/telephony/CarrierConfigManager;->getConfigForSubId(I)Landroid/os/PersistableBundle;
-HSPLandroid/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;->isConfigForIdentifiedCarrier(Landroid/os/PersistableBundle;)Z
-HSPLandroid/telephony/CellConfigLte$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellConfigLte;
-HSPLandroid/telephony/CellConfigLte$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-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
-HSPLandroid/telephony/CellIdentity;->getPlmn()Ljava/lang/String;
-HSPLandroid/telephony/CellIdentity;->isMcc(Ljava/lang/String;)Z
-HSPLandroid/telephony/CellIdentity;->isMnc(Ljava/lang/String;)Z
-HSPLandroid/telephony/CellIdentity;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/telephony/CellIdentityGsm;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/telephony/CellIdentityGsm;->updateGlobalCellId()V
-HSPLandroid/telephony/CellIdentityLte$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentityLte;
-HSPLandroid/telephony/CellIdentityLte$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telephony/CellIdentityLte;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/telephony/CellIdentityLte;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityLte;
-HSPLandroid/telephony/CellIdentityLte;->equals(Ljava/lang/Object;)Z
-HSPLandroid/telephony/CellIdentityLte;->getCi()I
-HSPLandroid/telephony/CellIdentityLte;->toString()Ljava/lang/String;
-HSPLandroid/telephony/CellIdentityLte;->updateGlobalCellId()V
-HSPLandroid/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>(Landroid/os/Parcel;)V
-HSPLandroid/telephony/CellIdentityWcdma;->toString()Ljava/lang/String;
-HSPLandroid/telephony/CellIdentityWcdma;->updateGlobalCellId()V
-HSPLandroid/telephony/CellIdentityWcdma;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/telephony/CellInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellInfo;
-HSPLandroid/telephony/CellInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telephony/CellInfo;->isRegistered()Z
-HSPLandroid/telephony/CellInfoLte;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/telephony/CellInfoLte;->getCellIdentity()Landroid/telephony/CellIdentityLte;
-HSPLandroid/telephony/CellSignalStrength;-><init>()V
-HSPLandroid/telephony/CellSignalStrength;->getNumSignalStrengthLevels()I
-HSPLandroid/telephony/CellSignalStrengthCdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthCdma;
-HSPLandroid/telephony/CellSignalStrengthCdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telephony/CellSignalStrengthCdma;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/telephony/CellSignalStrengthCdma;->equals(Ljava/lang/Object;)Z
-HSPLandroid/telephony/CellSignalStrengthCdma;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/telephony/CellSignalStrengthGsm$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthGsm;
-HSPLandroid/telephony/CellSignalStrengthGsm$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telephony/CellSignalStrengthGsm;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/telephony/CellSignalStrengthGsm;->equals(Ljava/lang/Object;)Z
-HSPLandroid/telephony/CellSignalStrengthGsm;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/telephony/CellSignalStrengthLte$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthLte;
-HSPLandroid/telephony/CellSignalStrengthLte$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telephony/CellSignalStrengthLte;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/telephony/CellSignalStrengthLte;->equals(Ljava/lang/Object;)Z
-HSPLandroid/telephony/CellSignalStrengthLte;->getDbm()I
-HSPLandroid/telephony/CellSignalStrengthLte;->getLevel()I
-HSPLandroid/telephony/CellSignalStrengthLte;->isValid()Z
-HSPLandroid/telephony/CellSignalStrengthLte;->toString()Ljava/lang/String;
-HSPLandroid/telephony/CellSignalStrengthLte;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/telephony/CellSignalStrengthNr$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthNr;
-HSPLandroid/telephony/CellSignalStrengthNr$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telephony/CellSignalStrengthNr;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/telephony/CellSignalStrengthNr;->equals(Ljava/lang/Object;)Z
-HSPLandroid/telephony/CellSignalStrengthNr;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/telephony/CellSignalStrengthTdscdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthTdscdma;
-HSPLandroid/telephony/CellSignalStrengthTdscdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telephony/CellSignalStrengthTdscdma;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/telephony/CellSignalStrengthTdscdma;->equals(Ljava/lang/Object;)Z
-HSPLandroid/telephony/CellSignalStrengthTdscdma;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/telephony/CellSignalStrengthWcdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthWcdma;
-HSPLandroid/telephony/CellSignalStrengthWcdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telephony/CellSignalStrengthWcdma;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/telephony/CellSignalStrengthWcdma;->equals(Ljava/lang/Object;)Z
-HSPLandroid/telephony/CellSignalStrengthWcdma;->getLevel()I
-HSPLandroid/telephony/CellSignalStrengthWcdma;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/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>(Landroid/os/Parcel;)V
-HSPLandroid/telephony/DataSpecificRegistrationInfo;-><init>(Landroid/telephony/DataSpecificRegistrationInfo;)V
-HSPLandroid/telephony/DataSpecificRegistrationInfo;->toString()Ljava/lang/String;
-HSPLandroid/telephony/DataSpecificRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;-><init>()V
-HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->build()Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery;
-HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setCallingFeatureId(Ljava/lang/String;)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
-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;->setLogAsInfo(Z)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
-HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setMethod(Ljava/lang/String;)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
-HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setMinSdkVersionForCoarse(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
-HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setMinSdkVersionForEnforcement(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
-HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setMinSdkVersionForFine(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
-HSPLandroid/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;
-HSPLandroid/telephony/LocationAccessPolicy;->getAppOpsString(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/telephony/LocationAccessPolicy;->isAppAtLeastSdkVersion(Landroid/content/Context;Ljava/lang/String;I)Z
-HSPLandroid/telephony/LocationAccessPolicy;->isCurrentProfile(Landroid/content/Context;I)Z
-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>(Landroid/os/Parcel;)V
-HSPLandroid/telephony/LteVopsSupportInfo;->toString()Ljava/lang/String;
-HSPLandroid/telephony/LteVopsSupportInfo;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/telephony/ModemActivityInfo;-><init>(JII[II)V
-HSPLandroid/telephony/ModemActivityInfo;-><init>(JJJ[IJ)V
-HSPLandroid/telephony/ModemActivityInfo;->getIdleTimeMillis()J
-HSPLandroid/telephony/ModemActivityInfo;->getNumTxPowerLevels()I
-HSPLandroid/telephony/ModemActivityInfo;->getReceiveTimeMillis()J
-HSPLandroid/telephony/ModemActivityInfo;->getSleepTimeMillis()J
-HSPLandroid/telephony/ModemActivityInfo;->getTimestampMillis()J
-HSPLandroid/telephony/ModemActivityInfo;->isEmpty()Z
-HSPLandroid/telephony/ModemActivityInfo;->isValid()Z
-HSPLandroid/telephony/ModemActivityInfo;->toString()Ljava/lang/String;
-HSPLandroid/telephony/NetworkRegistrationInfo$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/telephony/NetworkRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/NetworkRegistrationInfo;
-HSPLandroid/telephony/NetworkRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(Landroid/telephony/NetworkRegistrationInfo;)V
-HSPLandroid/telephony/NetworkRegistrationInfo;->domainToString(I)Ljava/lang/String;
-HSPLandroid/telephony/NetworkRegistrationInfo;->getAccessNetworkTechnology()I
-HSPLandroid/telephony/NetworkRegistrationInfo;->getDomain()I
-HSPLandroid/telephony/NetworkRegistrationInfo;->getNrState()I
-HSPLandroid/telephony/NetworkRegistrationInfo;->getRegistrationState()I
-HSPLandroid/telephony/NetworkRegistrationInfo;->getRoamingType()I
-HSPLandroid/telephony/NetworkRegistrationInfo;->getTransportType()I
-HSPLandroid/telephony/NetworkRegistrationInfo;->isInService()Z
-HSPLandroid/telephony/NetworkRegistrationInfo;->isUsingCarrierAggregation()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;->toString()Ljava/lang/String;
-HSPLandroid/telephony/NetworkRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/telephony/PhoneNumberUtils;->convertKeypadLettersToDigits(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/telephony/PhoneNumberUtils;->extractNetworkPortionAlt(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/telephony/PhoneNumberUtils;->formatNumberInternal(Ljava/lang/String;Ljava/lang/String;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;)Ljava/lang/String;
-HSPLandroid/telephony/PhoneNumberUtils;->formatNumberToE164(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/telephony/PhoneNumberUtils;->getMinMatch()I
-HSPLandroid/telephony/PhoneNumberUtils;->isDialable(C)Z
-HSPLandroid/telephony/PhoneNumberUtils;->isNonSeparator(C)Z
-HSPLandroid/telephony/PhoneNumberUtils;->normalizeNumber(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;
-HSPLandroid/telephony/PhoneNumberUtils;->stripSeparators(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda10;->runOrThrow()V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda19;->runOrThrow()V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda27;->run()V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda51;->run()V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;-><init>(Landroid/telephony/PhoneStateListener;Ljava/util/concurrent/Executor;)V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onActiveDataSubIdChanged$56(Landroid/telephony/PhoneStateListener;I)V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onDataActivity$16(Landroid/telephony/PhoneStateListener;I)V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onDataConnectionStateChanged$14(Landroid/telephony/PhoneStateListener;II)V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onDisplayInfoChanged$38(Landroid/telephony/PhoneStateListener;Landroid/telephony/TelephonyDisplayInfo;)V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onDisplayInfoChanged$39(Landroid/telephony/PhoneStateListener;Landroid/telephony/TelephonyDisplayInfo;)V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onLegacyCallStateChanged$10(Landroid/telephony/PhoneStateListener;ILjava/lang/String;)V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onServiceStateChanged$0(Landroid/telephony/PhoneStateListener;Landroid/telephony/ServiceState;)V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onSignalStrengthsChanged$18(Landroid/telephony/PhoneStateListener;Landroid/telephony/SignalStrength;)V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onActiveDataSubIdChanged(I)V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onDataActivity(I)V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onDataConnectionStateChanged(II)V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onDisplayInfoChanged(Landroid/telephony/TelephonyDisplayInfo;)V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onLegacyCallStateChanged(ILjava/lang/String;)V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onServiceStateChanged(Landroid/telephony/ServiceState;)V
-HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onSignalStrengthsChanged(Landroid/telephony/SignalStrength;)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/PhoneStateListener;->onDataConnectionStateChanged(I)V
-HSPLandroid/telephony/Rlog;->d(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+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/telephony/ServiceState;-><init>(Landroid/telephony/ServiceState;)V
-HSPLandroid/telephony/ServiceState;->copyFrom(Landroid/telephony/ServiceState;)V
-HSPLandroid/telephony/ServiceState;->createLocationInfoSanitizedCopy(Z)Landroid/telephony/ServiceState;
-HSPLandroid/telephony/ServiceState;->getCellBandwidths()[I
-HSPLandroid/telephony/ServiceState;->getDataNetworkType()I
-HSPLandroid/telephony/ServiceState;->getDataRegState()I
-HSPLandroid/telephony/ServiceState;->getDataRegistrationState()I
-HSPLandroid/telephony/ServiceState;->getDataRoaming()Z
-HSPLandroid/telephony/ServiceState;->getDataRoamingFromRegistration()Z
-HSPLandroid/telephony/ServiceState;->getDataRoamingType()I
-HSPLandroid/telephony/ServiceState;->getDuplexMode()I
-HSPLandroid/telephony/ServiceState;->getNetworkRegistrationInfo(II)Landroid/telephony/NetworkRegistrationInfo;
-HSPLandroid/telephony/ServiceState;->getNetworkRegistrationInfoList()Ljava/util/List;
-HSPLandroid/telephony/ServiceState;->getNrState()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;->isEmergencyOnly()Z
-HSPLandroid/telephony/ServiceState;->isPsOnlyTech(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;->rilRadioTechnologyToString(I)Ljava/lang/String;
-HSPLandroid/telephony/ServiceState;->rilServiceStateToString(I)Ljava/lang/String;
-HSPLandroid/telephony/ServiceState;->roamingTypeToString(I)Ljava/lang/String;
-HSPLandroid/telephony/ServiceState;->toString()Ljava/lang/String;
-HSPLandroid/telephony/ServiceState;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/telephony/SignalStrength$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/SignalStrength;
-HSPLandroid/telephony/SignalStrength$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telephony/SignalStrength;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/telephony/SignalStrength;->getCellSignalStrengths()Ljava/util/List;
-HSPLandroid/telephony/SignalStrength;->getCellSignalStrengths(Ljava/lang/Class;)Ljava/util/List;
-HSPLandroid/telephony/SignalStrength;->getLevel()I
-HSPLandroid/telephony/SignalStrength;->getPrimary()Landroid/telephony/CellSignalStrength;
-HSPLandroid/telephony/SignalStrength;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/telephony/SubscriptionInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/SubscriptionInfo;+]Landroid/os/Parcelable$Creator;Landroid/text/TextUtils$1;]Landroid/telephony/SubscriptionInfo$Builder;Landroid/telephony/SubscriptionInfo$Builder;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/telephony/SubscriptionInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmAreUiccApplicationsEnabled(Landroid/telephony/SubscriptionInfo$Builder;)Z
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmCardId(Landroid/telephony/SubscriptionInfo$Builder;)I
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmCardString(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/String;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmCarrierConfigAccessRules(Landroid/telephony/SubscriptionInfo$Builder;)[Landroid/telephony/UiccAccessRule;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmCarrierId(Landroid/telephony/SubscriptionInfo$Builder;)I
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmCarrierName(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/CharSequence;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmCountryIso(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/String;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmDataRoaming(Landroid/telephony/SubscriptionInfo$Builder;)I
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmDisplayName(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/CharSequence;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmDisplayNameSource(Landroid/telephony/SubscriptionInfo$Builder;)I
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmEhplmns(Landroid/telephony/SubscriptionInfo$Builder;)[Ljava/lang/String;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmGroupOwner(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/String;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmGroupUuid(Landroid/telephony/SubscriptionInfo$Builder;)Landroid/os/ParcelUuid;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmHplmns(Landroid/telephony/SubscriptionInfo$Builder;)[Ljava/lang/String;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmIccId(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/String;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmIconBitmap(Landroid/telephony/SubscriptionInfo$Builder;)Landroid/graphics/Bitmap;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmIconTint(Landroid/telephony/SubscriptionInfo$Builder;)I
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmId(Landroid/telephony/SubscriptionInfo$Builder;)I
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmIsEmbedded(Landroid/telephony/SubscriptionInfo$Builder;)Z
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmIsGroupDisabled(Landroid/telephony/SubscriptionInfo$Builder;)Z
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmIsOpportunistic(Landroid/telephony/SubscriptionInfo$Builder;)Z
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmMcc(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/String;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmMnc(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/String;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmNativeAccessRules(Landroid/telephony/SubscriptionInfo$Builder;)[Landroid/telephony/UiccAccessRule;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmNumber(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/String;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmPortIndex(Landroid/telephony/SubscriptionInfo$Builder;)I
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmProfileClass(Landroid/telephony/SubscriptionInfo$Builder;)I
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmSimSlotIndex(Landroid/telephony/SubscriptionInfo$Builder;)I
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmType(Landroid/telephony/SubscriptionInfo$Builder;)I
-HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmUsageSetting(Landroid/telephony/SubscriptionInfo$Builder;)I
-HSPLandroid/telephony/SubscriptionInfo$Builder;-><init>()V
-HSPLandroid/telephony/SubscriptionInfo$Builder;->build()Landroid/telephony/SubscriptionInfo;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setCardId(I)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setCardString(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setCarrierConfigAccessRules([Landroid/telephony/UiccAccessRule;)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setCarrierId(I)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setCarrierName(Ljava/lang/CharSequence;)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setCountryIso(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setDataRoaming(I)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setDisplayName(Ljava/lang/CharSequence;)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setDisplayNameSource(I)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setEhplmns([Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setEmbedded(Z)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setGroupDisabled(Z)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setGroupOwner(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setGroupUuid(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setHplmns([Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setIccId(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setIconTint(I)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setId(I)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setMcc(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setMnc(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setNativeAccessRules([Landroid/telephony/UiccAccessRule;)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setNumber(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setOpportunistic(Z)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setPortIndex(I)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setProfileClass(I)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setSimSlotIndex(I)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setType(I)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setUiccApplicationsEnabled(Z)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo$Builder;->setUsageSetting(I)Landroid/telephony/SubscriptionInfo$Builder;
-HSPLandroid/telephony/SubscriptionInfo;-><init>(ILjava/lang/String;ILjava/lang/CharSequence;Ljava/lang/CharSequence;IILjava/lang/String;ILandroid/graphics/Bitmap;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[Landroid/telephony/UiccAccessRule;Ljava/lang/String;IZLjava/lang/String;ZIIILjava/lang/String;[Landroid/telephony/UiccAccessRule;Z)V
-HSPLandroid/telephony/SubscriptionInfo;-><init>(ILjava/lang/String;ILjava/lang/CharSequence;Ljava/lang/CharSequence;IILjava/lang/String;ILandroid/graphics/Bitmap;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[Landroid/telephony/UiccAccessRule;Ljava/lang/String;IZLjava/lang/String;ZIIILjava/lang/String;[Landroid/telephony/UiccAccessRule;ZII)V
-HSPLandroid/telephony/SubscriptionInfo;-><init>(Landroid/telephony/SubscriptionInfo$Builder;)V
-HSPLandroid/telephony/SubscriptionInfo;-><init>(Landroid/telephony/SubscriptionInfo$Builder;Landroid/telephony/SubscriptionInfo-IA;)V
-HSPLandroid/telephony/SubscriptionInfo;->getCarrierId()I
-HSPLandroid/telephony/SubscriptionInfo;->getCarrierName()Ljava/lang/CharSequence;
-HSPLandroid/telephony/SubscriptionInfo;->getCountryIso()Ljava/lang/String;
-HSPLandroid/telephony/SubscriptionInfo;->getDisplayName()Ljava/lang/CharSequence;
-HSPLandroid/telephony/SubscriptionInfo;->getGroupUuid()Landroid/os/ParcelUuid;
-HSPLandroid/telephony/SubscriptionInfo;->getIccId()Ljava/lang/String;
-HSPLandroid/telephony/SubscriptionInfo;->getMcc()I
-HSPLandroid/telephony/SubscriptionInfo;->getMccString()Ljava/lang/String;
-HSPLandroid/telephony/SubscriptionInfo;->getMnc()I
-HSPLandroid/telephony/SubscriptionInfo;->getMncString()Ljava/lang/String;
-HSPLandroid/telephony/SubscriptionInfo;->getNumber()Ljava/lang/String;
-HSPLandroid/telephony/SubscriptionInfo;->getSimSlotIndex()I
-HSPLandroid/telephony/SubscriptionInfo;->getSubscriptionId()I
-HSPLandroid/telephony/SubscriptionInfo;->isEmbedded()Z
-HSPLandroid/telephony/SubscriptionInfo;->isOpportunistic()Z
-HSPLandroid/telephony/SubscriptionInfo;->toString()Ljava/lang/String;
-HSPLandroid/telephony/SubscriptionManager$$ExternalSyntheticLambda10;->applyOrThrow(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/telephony/SubscriptionManager$$ExternalSyntheticLambda15;->applyOrThrow(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/telephony/SubscriptionManager$$ExternalSyntheticLambda9;->applyOrThrow(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/telephony/SubscriptionManager$IntegerPropertyInvalidatedCache;->query(Ljava/lang/Integer;)Ljava/lang/Object;
-HSPLandroid/telephony/SubscriptionManager$IntegerPropertyInvalidatedCache;->recompute(Ljava/lang/Integer;)Ljava/lang/Object;
-HSPLandroid/telephony/SubscriptionManager$IntegerPropertyInvalidatedCache;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;-><init>()V
-HSPLandroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;-><init>(Landroid/os/Looper;)V
-HSPLandroid/telephony/SubscriptionManager$VoidPropertyInvalidatedCache;->query(Ljava/lang/Void;)Ljava/lang/Object;
-HSPLandroid/telephony/SubscriptionManager$VoidPropertyInvalidatedCache;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/telephony/SubscriptionManager$VoidPropertyInvalidatedCache;->recompute(Ljava/lang/Void;)Ljava/lang/Object;
-HSPLandroid/telephony/SubscriptionManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/telephony/SubscriptionManager;->addOnSubscriptionsChangedListener(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V
-HSPLandroid/telephony/SubscriptionManager;->addOnSubscriptionsChangedListener(Ljava/util/concurrent/Executor;Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V
-HSPLandroid/telephony/SubscriptionManager;->from(Landroid/content/Context;)Landroid/telephony/SubscriptionManager;
-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;->getAvailableSubscriptionInfoList()Ljava/util/List;
-HSPLandroid/telephony/SubscriptionManager;->getCompleteActiveSubscriptionIdList()[I
-HSPLandroid/telephony/SubscriptionManager;->getCompleteActiveSubscriptionInfoList()Ljava/util/List;
-HSPLandroid/telephony/SubscriptionManager;->getDefaultDataSubscriptionId()I
-HSPLandroid/telephony/SubscriptionManager;->getDefaultSmsSubscriptionId()I
-HSPLandroid/telephony/SubscriptionManager;->getDefaultSubscriptionId()I
-HSPLandroid/telephony/SubscriptionManager;->getDefaultVoiceSubscriptionId()I
-HSPLandroid/telephony/SubscriptionManager;->getPhoneId(I)I
-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;->getSlotIndex(I)I
-HSPLandroid/telephony/SubscriptionManager;->getSubId(I)[I
-HSPLandroid/telephony/SubscriptionManager;->getSubscriptionIds(I)[I
-HSPLandroid/telephony/SubscriptionManager;->isSubscriptionVisible(Landroid/telephony/SubscriptionInfo;)Z
-HSPLandroid/telephony/SubscriptionManager;->isUsableSubIdValue(I)Z
-HSPLandroid/telephony/SubscriptionManager;->isValidSlotIndex(I)Z
-HSPLandroid/telephony/SubscriptionManager;->isValidSubscriptionId(I)Z
-HSPLandroid/telephony/SubscriptionPlan$1;->newArray(I)[Landroid/telephony/SubscriptionPlan;
-HSPLandroid/telephony/SubscriptionPlan$1;->newArray(I)[Ljava/lang/Object;
-HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;-><init>(Landroid/telephony/TelephonyCallback;Ljava/util/concurrent/Executor;)V
-HSPLandroid/telephony/TelephonyCallback;-><init>()V
-HSPLandroid/telephony/TelephonyCallback;->init(Ljava/util/concurrent/Executor;)V
-HSPLandroid/telephony/TelephonyDisplayInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/TelephonyDisplayInfo;
-HSPLandroid/telephony/TelephonyDisplayInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telephony/TelephonyDisplayInfo;-><init>(II)V
-HSPLandroid/telephony/TelephonyDisplayInfo;->getNetworkType()I
-HSPLandroid/telephony/TelephonyDisplayInfo;->getOverrideNetworkType()I
-HSPLandroid/telephony/TelephonyDisplayInfo;->overrideNetworkTypeToString(I)Ljava/lang/String;
-HSPLandroid/telephony/TelephonyDisplayInfo;->toString()Ljava/lang/String;
-HSPLandroid/telephony/TelephonyDisplayInfo;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda0;->createService(Landroid/content/Context;)Ljava/lang/Object;
-HSPLandroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda1;->createService(Landroid/content/Context;)Ljava/lang/Object;
-HSPLandroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda2;->createService(Landroid/content/Context;)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/TelephonyManager$1;-><init>(Landroid/telephony/TelephonyManager;ILjava/lang/String;)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
-HSPLandroid/telephony/TelephonyManager;->createForPhoneAccountHandle(Landroid/telecom/PhoneAccountHandle;)Landroid/telephony/TelephonyManager;
-HSPLandroid/telephony/TelephonyManager;->createForSubscriptionId(I)Landroid/telephony/TelephonyManager;
-HSPLandroid/telephony/TelephonyManager;->from(Landroid/content/Context;)Landroid/telephony/TelephonyManager;
-HSPLandroid/telephony/TelephonyManager;->getActiveModemCount()I
-HSPLandroid/telephony/TelephonyManager;->getAttributionTag()Ljava/lang/String;
-HSPLandroid/telephony/TelephonyManager;->getCallState()I
-HSPLandroid/telephony/TelephonyManager;->getCardIdForDefaultEuicc()I
-HSPLandroid/telephony/TelephonyManager;->getCarrierPrivilegeStatus(I)I
-HSPLandroid/telephony/TelephonyManager;->getCurrentPhoneType()I
-HSPLandroid/telephony/TelephonyManager;->getCurrentPhoneType(I)I
-HSPLandroid/telephony/TelephonyManager;->getCurrentPhoneTypeForSlot(I)I
-HSPLandroid/telephony/TelephonyManager;->getDataEnabled()Z
-HSPLandroid/telephony/TelephonyManager;->getDataEnabled(I)Z
-HSPLandroid/telephony/TelephonyManager;->getDataNetworkType()I
-HSPLandroid/telephony/TelephonyManager;->getDataNetworkType(I)I
-HSPLandroid/telephony/TelephonyManager;->getDefault()Landroid/telephony/TelephonyManager;
-HSPLandroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;
-HSPLandroid/telephony/TelephonyManager;->getGroupIdLevel1()Ljava/lang/String;
-HSPLandroid/telephony/TelephonyManager;->getITelephony()Lcom/android/internal/telephony/ITelephony;
-HSPLandroid/telephony/TelephonyManager;->getImei()Ljava/lang/String;
-HSPLandroid/telephony/TelephonyManager;->getImei(I)Ljava/lang/String;
-HSPLandroid/telephony/TelephonyManager;->getLine1Number()Ljava/lang/String;
-HSPLandroid/telephony/TelephonyManager;->getLine1Number(I)Ljava/lang/String;
-HSPLandroid/telephony/TelephonyManager;->getLocationData()I
-HSPLandroid/telephony/TelephonyManager;->getMeid()Ljava/lang/String;
-HSPLandroid/telephony/TelephonyManager;->getMeid(I)Ljava/lang/String;
-HSPLandroid/telephony/TelephonyManager;->getMultiSimConfiguration()Landroid/telephony/TelephonyManager$MultiSimVariants;
-HSPLandroid/telephony/TelephonyManager;->getNetworkCountryIso()Ljava/lang/String;
-HSPLandroid/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;->getPhoneCount()I
-HSPLandroid/telephony/TelephonyManager;->getPhoneId()I
-HSPLandroid/telephony/TelephonyManager;->getPhoneType()I
-HSPLandroid/telephony/TelephonyManager;->getPhoneType(I)I
-HSPLandroid/telephony/TelephonyManager;->getRenouncedPermissions()Ljava/util/Set;
-HSPLandroid/telephony/TelephonyManager;->getServiceState()Landroid/telephony/ServiceState;
-HSPLandroid/telephony/TelephonyManager;->getServiceState(I)Landroid/telephony/ServiceState;
-HSPLandroid/telephony/TelephonyManager;->getServiceStateForSubscriber(I)Landroid/telephony/ServiceState;
-HSPLandroid/telephony/TelephonyManager;->getServiceStateForSubscriber(IZZ)Landroid/telephony/ServiceState;
-HSPLandroid/telephony/TelephonyManager;->getSignalStrength()Landroid/telephony/SignalStrength;
-HSPLandroid/telephony/TelephonyManager;->getSimCarrierId()I
-HSPLandroid/telephony/TelephonyManager;->getSimCountryIso()Ljava/lang/String;
-HSPLandroid/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;
-HSPLandroid/telephony/TelephonyManager;->getSimSerialNumber()Ljava/lang/String;
-HSPLandroid/telephony/TelephonyManager;->getSimSerialNumber(I)Ljava/lang/String;
-HSPLandroid/telephony/TelephonyManager;->getSimSpecificCarrierId()I
-HSPLandroid/telephony/TelephonyManager;->getSimState()I
-HSPLandroid/telephony/TelephonyManager;->getSimState(I)I
-HSPLandroid/telephony/TelephonyManager;->getSimStateForSlotIndex(I)I
-HSPLandroid/telephony/TelephonyManager;->getSimStateIncludingLoaded()I
-HSPLandroid/telephony/TelephonyManager;->getSlotIndex()I
-HSPLandroid/telephony/TelephonyManager;->getSmsService()Lcom/android/internal/telephony/ISms;
-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;->getSubscriberInfoService()Lcom/android/internal/telephony/IPhoneSubInfo;
-HSPLandroid/telephony/TelephonyManager;->getSubscriptionId(Landroid/telecom/PhoneAccountHandle;)I
-HSPLandroid/telephony/TelephonyManager;->getSubscriptionService()Lcom/android/internal/telephony/ISub;
-HSPLandroid/telephony/TelephonyManager;->getSupportedModemCount()I
-HSPLandroid/telephony/TelephonyManager;->getTelephonyProperty(ILjava/util/List;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/telephony/TelephonyManager;->getVoiceNetworkType()I
-HSPLandroid/telephony/TelephonyManager;->getVoiceNetworkType(I)I
-HSPLandroid/telephony/TelephonyManager;->hasCarrierPrivileges(I)Z
-HSPLandroid/telephony/TelephonyManager;->isDataCapable()Z
-HSPLandroid/telephony/TelephonyManager;->isDataConnectionAllowed()Z
-HSPLandroid/telephony/TelephonyManager;->isDataEnabled()Z
-HSPLandroid/telephony/TelephonyManager;->isDataEnabledForReason(I)Z
-HSPLandroid/telephony/TelephonyManager;->isDataEnabledForReason(II)Z
-HSPLandroid/telephony/TelephonyManager;->isEmergencyNumber(Ljava/lang/String;)Z
-HSPLandroid/telephony/TelephonyManager;->isNetworkRoaming()Z
-HSPLandroid/telephony/TelephonyManager;->isNetworkRoaming(I)Z
-HSPLandroid/telephony/TelephonyManager;->isSmsCapable()Z
-HSPLandroid/telephony/TelephonyManager;->isVoiceCapable()Z
-HSPLandroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V
-HSPLandroid/telephony/TelephonyManager;->mergeAttributionAndRenouncedPermissions(Landroid/content/Context;Landroid/content/Context;)Landroid/content/Context;
-HSPLandroid/telephony/TelephonyManager;->registerTelephonyCallback(ILjava/util/concurrent/Executor;Landroid/telephony/TelephonyCallback;)V
-HSPLandroid/telephony/TelephonyManager;->registerTelephonyCallback(Ljava/util/concurrent/Executor;Landroid/telephony/TelephonyCallback;)V
-HSPLandroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda0;-><init>()V
-HSPLandroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I
-HSPLandroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda1;-><init>()V
-HSPLandroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda1;->applyAsInt(Ljava/lang/Object;)I
-HSPLandroid/telephony/TelephonyRegistryManager$1$$ExternalSyntheticLambda0;-><init>(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V
-HSPLandroid/telephony/TelephonyRegistryManager$1$$ExternalSyntheticLambda0;->run()V
-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;-><init>(Landroid/content/Context;)V
-HSPLandroid/telephony/TelephonyRegistryManager;->addOnSubscriptionsChangedListener(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;Ljava/util/concurrent/Executor;)V
-HSPLandroid/telephony/TelephonyRegistryManager;->getEventsFromBitmask(I)Ljava/util/Set;
-HSPLandroid/telephony/TelephonyRegistryManager;->getEventsFromCallback(Landroid/telephony/TelephonyCallback;)Ljava/util/Set;
-HSPLandroid/telephony/TelephonyRegistryManager;->lambda$listenFromListener$0(Ljava/lang/Integer;)I
-HSPLandroid/telephony/TelephonyRegistryManager;->listenFromCallback(ZZILjava/lang/String;Ljava/lang/String;Landroid/telephony/TelephonyCallback;[IZ)V
-HSPLandroid/telephony/TelephonyRegistryManager;->listenFromListener(IZZLjava/lang/String;Ljava/lang/String;Landroid/telephony/PhoneStateListener;IZ)V
-HSPLandroid/telephony/TelephonyRegistryManager;->registerTelephonyCallback(ZZLjava/util/concurrent/Executor;ILjava/lang/String;Ljava/lang/String;Landroid/telephony/TelephonyCallback;Z)V
-HSPLandroid/telephony/UiccAccessRule$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/UiccAccessRule;
-HSPLandroid/telephony/UiccAccessRule$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telephony/UiccAccessRule$1;->newArray(I)[Landroid/telephony/UiccAccessRule;
-HSPLandroid/telephony/UiccAccessRule$1;->newArray(I)[Ljava/lang/Object;
-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/telephony/VoiceSpecificRegistrationInfo;)V
-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;->buildWithoutCheck()Landroid/telephony/data/ApnSetting;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setAlwaysOn(Z)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setApnName(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setApnSetId(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setApnTypeBitmask(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setAuthType(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setCarrierEnabled(Z)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setCarrierId(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;->setId(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setLingeringNetworkTypeBitmask(J)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setMaxConns(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setMaxConnsTime(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setMmsProxyAddress(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setMmsProxyPort(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setMmsc(Landroid/net/Uri;)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setModemCognitive(Z)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setMtuV4(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setMtuV6(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setMvnoMatchData(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setMvnoType(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setNetworkTypeBitmask(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setOperatorNumeric(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setPassword(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setProfileId(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setProtocol(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setProxyAddress(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setProxyPort(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setRoamingProtocol(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setSkip464Xlat(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setUser(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting$Builder;->setWaitTime(I)Landroid/telephony/data/ApnSetting$Builder;
-HSPLandroid/telephony/data/ApnSetting;-><init>(Landroid/telephony/data/ApnSetting$Builder;)V
-HSPLandroid/telephony/data/ApnSetting;->UriToString(Landroid/net/Uri;)Ljava/lang/String;
-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;->getApnTypesStringFromBitmask(I)Ljava/lang/String;
-HSPLandroid/telephony/data/ApnSetting;->portToString(I)Ljava/lang/String;
-HSPLandroid/telephony/data/ApnSetting;->toString()Ljava/lang/String;
-HSPLandroid/telephony/euicc/EuiccManager;->getIEuiccController()Lcom/android/internal/telephony/euicc/IEuiccController;
-HSPLandroid/telephony/euicc/EuiccManager;->isEnabled()Z
-HSPLandroid/telephony/ims/ImsMmTelManager;->createForSubscriptionId(I)Landroid/telephony/ims/ImsMmTelManager;
-HSPLandroid/telephony/ims/ImsMmTelManager;->getITelephony()Lcom/android/internal/telephony/ITelephony;
-HSPLandroid/telephony/ims/ImsMmTelManager;->getITelephonyInterface()Lcom/android/internal/telephony/ITelephony;
-HSPLandroid/telephony/ims/ImsMmTelManager;->isAvailable(II)Z
-HSPLandroid/telephony/ims/ImsReasonInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/ims/ImsReasonInfo;
-HSPLandroid/telephony/ims/ImsReasonInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/telephony/ims/ImsReasonInfo;->toString()Ljava/lang/String;
-HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder;-><init>(Landroid/telephony/ims/RegistrationManager$RegistrationCallback;)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/IImsRegistrationCallback$Stub;-><init>()V
-HSPLandroid/telephony/ims/aidl/IImsRegistrationCallback$Stub;->asBinder()Landroid/os/IBinder;
-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
-HSPLandroid/text/AutoGrowArray$IntArray;->ensureCapacity(I)V
-HSPLandroid/text/AutoGrowArray$IntArray;->getRawArray()[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;Landroid/text/TextDirectionHeuristic;Z)Ljava/lang/CharSequence;
-HSPLandroid/text/BoringLayout$Metrics;->-$$Nest$mreset(Landroid/text/BoringLayout$Metrics;)V
-HSPLandroid/text/BoringLayout$Metrics;-><init>()V
-HSPLandroid/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;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;IZ)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
-HSPLandroid/text/BoringLayout;->getHeight()I
-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
-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;ZZZ)V+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Ljava/lang/CharSequence;Ljava/lang/String;
-HSPLandroid/text/BoringLayout;->isBoring(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;Landroid/text/BoringLayout$Metrics;)Landroid/text/BoringLayout$Metrics;
-HSPLandroid/text/BoringLayout;->isBoring(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;ZLandroid/graphics/Paint$FontMetrics;Landroid/text/BoringLayout$Metrics;)Landroid/text/BoringLayout$Metrics;+]Landroid/text/TextLine;Landroid/text/TextLine;]Landroid/text/Spanned;megamorphic_types]Ljava/lang/CharSequence;megamorphic_types]Landroid/text/TextDirectionHeuristic;Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;,Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal;
-HSPLandroid/text/BoringLayout;->isBoring(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;ZLandroid/text/BoringLayout$Metrics;)Landroid/text/BoringLayout$Metrics;
-HSPLandroid/text/BoringLayout;->isFallbackLineSpacingEnabled()Z
-HSPLandroid/text/BoringLayout;->make(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;Z)Landroid/text/BoringLayout;
-HSPLandroid/text/BoringLayout;->make(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;I)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;
-HSPLandroid/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/BoringLayout;->replaceOrMake(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;Landroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;IZ)Landroid/text/BoringLayout;
-HSPLandroid/text/CharSequenceCharacterIterator;->current()C
-HSPLandroid/text/CharSequenceCharacterIterator;->first()C
-HSPLandroid/text/CharSequenceCharacterIterator;->getBeginIndex()I
-HSPLandroid/text/CharSequenceCharacterIterator;->getEndIndex()I
-HSPLandroid/text/CharSequenceCharacterIterator;->getIndex()I
-HSPLandroid/text/CharSequenceCharacterIterator;->next()C
-HSPLandroid/text/CharSequenceCharacterIterator;->setIndex(I)C
-HSPLandroid/text/ClientFlags;->icuBidiMigration()Z
-HSPLandroid/text/DynamicLayout$Builder;->obtain(Ljava/lang/CharSequence;Landroid/text/TextPaint;I)Landroid/text/DynamicLayout$Builder;+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool;
-HSPLandroid/text/DynamicLayout$ChangeWatcher;->afterTextChanged(Landroid/text/Editable;)V
-HSPLandroid/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
-HSPLandroid/text/DynamicLayout$ChangeWatcher;->onTextChanged(Ljava/lang/CharSequence;III)V
-HSPLandroid/text/DynamicLayout;-><init>(Landroid/text/DynamicLayout$Builder;)V
-HSPLandroid/text/DynamicLayout;->addBlockAtOffset(I)V+]Landroid/text/DynamicLayout;Landroid/text/DynamicLayout;
-HSPLandroid/text/DynamicLayout;->contentMayProtrudeFromLineTopOrBottom(Ljava/lang/CharSequence;II)Z+]Landroid/text/DynamicLayout;Landroid/text/DynamicLayout;]Landroid/graphics/Paint;Landroid/text/TextPaint;]Landroid/text/Spanned;Landroid/text/SpannableString;
-HSPLandroid/text/DynamicLayout;->createBlocks()V
-HSPLandroid/text/DynamicLayout;->generate(Landroid/text/DynamicLayout$Builder;)V+]Landroid/text/DynamicLayout;Landroid/text/DynamicLayout;]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector;]Landroid/text/PackedObjectVector;Landroid/text/PackedObjectVector;]Landroid/text/TextPaint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;Landroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;,Landroid/text/SpannableStringBuilder;]Landroid/text/Spannable;Landroid/text/SpannableStringBuilder;
-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+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector;
-HSPLandroid/text/DynamicLayout;->getIndexFirstChangedBlock()I
-HSPLandroid/text/DynamicLayout;->getLineContainsTab(I)Z+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector;
-HSPLandroid/text/DynamicLayout;->getLineCount()I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector;
-HSPLandroid/text/DynamicLayout;->getLineDescent(I)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector;
-HSPLandroid/text/DynamicLayout;->getLineDirections(I)Landroid/text/Layout$Directions;+]Landroid/text/PackedObjectVector;Landroid/text/PackedObjectVector;
-HSPLandroid/text/DynamicLayout;->getLineExtra(I)I
-HSPLandroid/text/DynamicLayout;->getLineStart(I)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector;
-HSPLandroid/text/DynamicLayout;->getLineTop(I)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector;
-HSPLandroid/text/DynamicLayout;->getNumberOfBlocks()I
-HSPLandroid/text/DynamicLayout;->getParagraphDirection(I)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector;
-HSPLandroid/text/DynamicLayout;->getStartHyphenEdit(I)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector;
-HSPLandroid/text/DynamicLayout;->reflow(Ljava/lang/CharSequence;III)V+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector;]Landroid/text/DynamicLayout;Landroid/text/DynamicLayout;]Landroid/text/PackedObjectVector;Landroid/text/PackedObjectVector;]Landroid/text/StaticLayout;Landroid/text/StaticLayout;]Landroid/text/Spanned;Landroid/text/SpannableString;]Ljava/lang/CharSequence;Landroid/text/SpannableString;]Landroid/text/StaticLayout$Builder;Landroid/text/StaticLayout$Builder;
-HSPLandroid/text/DynamicLayout;->setIndexFirstChangedBlock(I)V
-HSPLandroid/text/DynamicLayout;->updateAlwaysNeedsToBeRedrawn(I)V
-HSPLandroid/text/DynamicLayout;->updateBlocks(III)V
-HSPLandroid/text/Editable$Factory;-><init>()V
-HSPLandroid/text/Editable$Factory;->getInstance()Landroid/text/Editable$Factory;
-HSPLandroid/text/Editable$Factory;->newEditable(Ljava/lang/CharSequence;)Landroid/text/Editable;
-HSPLandroid/text/FontConfig$Font;->getAxes()[Landroid/graphics/fonts/FontVariationAxis;
-HSPLandroid/text/FontConfig$Font;->getTtcIndex()I
-HSPLandroid/text/FontConfig$Font;->getWeight()I
-HSPLandroid/text/FontConfig$Font;->isItalic()Z
-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/HtmlToSpannedConverter;-><init>(Ljava/lang/String;Landroid/text/Html$ImageGetter;Landroid/text/Html$TagHandler;Lorg/ccil/cowan/tagsoup/Parser;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
-HSPLandroid/text/HtmlToSpannedConverter;->endDocument()V
-HSPLandroid/text/HtmlToSpannedConverter;->endElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/text/HtmlToSpannedConverter;->endPrefixMapping(Ljava/lang/String;)V
-HSPLandroid/text/HtmlToSpannedConverter;->getLast(Landroid/text/Spanned;Ljava/lang/Class;)Ljava/lang/Object;
-HSPLandroid/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
-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;->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/InputFilter$LengthFilter;->getMax()I
-HSPLandroid/text/Layout$Alignment;->values()[Landroid/text/Layout$Alignment;
-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;-><init>(Ljava/lang/CharSequence;)V
-HSPLandroid/text/Layout$Ellipsizer;->charAt(I)C
-HSPLandroid/text/Layout$Ellipsizer;->getChars(II[CI)V
-HSPLandroid/text/Layout$Ellipsizer;->length()I
-HSPLandroid/text/Layout$HorizontalMeasurementProvider;->init()V
-HSPLandroid/text/Layout$SpannedEllipsizer;->getSpanEnd(Ljava/lang/Object;)I
-HSPLandroid/text/Layout$SpannedEllipsizer;->getSpanFlags(Ljava/lang/Object;)I
-HSPLandroid/text/Layout$SpannedEllipsizer;->getSpanStart(Ljava/lang/Object;)I
-HSPLandroid/text/Layout$SpannedEllipsizer;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
-HSPLandroid/text/Layout$SpannedEllipsizer;->nextSpanTransition(IILjava/lang/Class;)I
-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;FFZZILandroid/text/TextUtils$TruncateAt;III[I[IILandroid/graphics/text/LineBreakConfig;ZZLandroid/graphics/Paint$FontMetrics;)V
-HSPLandroid/text/Layout;->addSelection(IIIIILandroid/text/Layout$SelectionRectangleConsumer;)V
-HSPLandroid/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;->draw(Landroid/graphics/Canvas;Ljava/util/List;Ljava/util/List;Landroid/graphics/Path;Landroid/graphics/Paint;I)V+]Landroid/text/Layout;Landroid/text/BoringLayout;,Landroid/text/StaticLayout;
-HSPLandroid/text/Layout;->drawBackground(Landroid/graphics/Canvas;II)V
-HSPLandroid/text/Layout;->drawText(Landroid/graphics/Canvas;II)V+]Landroid/text/Layout;Landroid/text/BoringLayout;,Landroid/text/StaticLayout;,Landroid/text/DynamicLayout;]Landroid/text/TextPaint;Landroid/text/TextPaint;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;]Landroid/text/TextLine;Landroid/text/TextLine;]Landroid/text/Spanned;Landroid/text/SpannableString;]Ljava/lang/CharSequence;Landroid/text/SpannableString;
-HSPLandroid/text/Layout;->drawWithoutText(Landroid/graphics/Canvas;Ljava/util/List;Ljava/util/List;Landroid/graphics/Path;Landroid/graphics/Paint;III)V
-HSPLandroid/text/Layout;->ellipsize(III[CILandroid/text/TextUtils$TruncateAt;)V
-HSPLandroid/text/Layout;->getCursorPath(ILandroid/graphics/Path;Ljava/lang/CharSequence;)V
-HSPLandroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;IILandroid/text/TextPaint;)F
-HSPLandroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
-HSPLandroid/text/Layout;->getEndHyphenEdit(I)I
-HSPLandroid/text/Layout;->getHeight()I
-HSPLandroid/text/Layout;->getHeight(Z)I
-HSPLandroid/text/Layout;->getHorizontal(IZ)F
-HSPLandroid/text/Layout;->getHorizontal(IZIZ)F
-HSPLandroid/text/Layout;->getIndentAdjust(ILandroid/text/Layout$Alignment;)I
-HSPLandroid/text/Layout;->getLineBaseline(I)I
-HSPLandroid/text/Layout;->getLineBottom(I)I
-HSPLandroid/text/Layout;->getLineBottom(IZ)I
-HSPLandroid/text/Layout;->getLineEnd(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;
-HSPLandroid/text/Layout;->getLineExtent(ILandroid/text/Layout$TabStops;Z)F
-HSPLandroid/text/Layout;->getLineExtent(IZ)F
-HSPLandroid/text/Layout;->getLineForOffset(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;
-HSPLandroid/text/Layout;->getLineForVertical(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;
-HSPLandroid/text/Layout;->getLineLeft(I)F
-HSPLandroid/text/Layout;->getLineMax(I)F
-HSPLandroid/text/Layout;->getLineRangeForDraw(Landroid/graphics/Canvas;)J+]Landroid/text/Layout;Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;
-HSPLandroid/text/Layout;->getLineRight(I)F
-HSPLandroid/text/Layout;->getLineStartPos(III)I
-HSPLandroid/text/Layout;->getLineVisibleEnd(I)I
-HSPLandroid/text/Layout;->getLineWidth(I)F
-HSPLandroid/text/Layout;->getOffsetAtStartOf(I)I
-HSPLandroid/text/Layout;->getOffsetForHorizontal(IF)I
-HSPLandroid/text/Layout;->getOffsetForHorizontal(IFZ)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;]Landroid/text/TextLine;Landroid/text/TextLine;]Landroid/text/Layout$HorizontalMeasurementProvider;Landroid/text/Layout$HorizontalMeasurementProvider;
-HSPLandroid/text/Layout;->getPaint()Landroid/text/TextPaint;
-HSPLandroid/text/Layout;->getParagraphAlignment(I)Landroid/text/Layout$Alignment;+]Landroid/text/Layout;Landroid/text/DynamicLayout;
-HSPLandroid/text/Layout;->getParagraphLeadingMargin(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;]Landroid/text/Spanned;missing_types
-HSPLandroid/text/Layout;->getParagraphLeft(I)I
-HSPLandroid/text/Layout;->getParagraphRight(I)I
-HSPLandroid/text/Layout;->getParagraphSpans(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;+]Landroid/text/Spanned;Landroid/text/SpannableString;
-HSPLandroid/text/Layout;->getPrimaryHorizontal(I)F
-HSPLandroid/text/Layout;->getPrimaryHorizontal(IZ)F
-HSPLandroid/text/Layout;->getSelection(IILandroid/text/Layout$SelectionRectangleConsumer;)V
-HSPLandroid/text/Layout;->getSelectionPath(IILandroid/graphics/Path;)V
-HSPLandroid/text/Layout;->getSpacingAdd()F
-HSPLandroid/text/Layout;->getSpacingMultiplier()F
-HSPLandroid/text/Layout;->getStartHyphenEdit(I)I
-HSPLandroid/text/Layout;->getText()Ljava/lang/CharSequence;
-HSPLandroid/text/Layout;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic;
-HSPLandroid/text/Layout;->getWidth()I
-HSPLandroid/text/Layout;->increaseWidthTo(I)V
-HSPLandroid/text/Layout;->isFallbackLineSpacingEnabled()Z
-HSPLandroid/text/Layout;->isJustificationRequired(I)Z
-HSPLandroid/text/Layout;->isRtlCharAt(I)Z
-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;->shouldClampCursor(I)Z
-HSPLandroid/text/MeasuredParagraph;-><init>()V
-HSPLandroid/text/MeasuredParagraph;->applyMetricsAffectingSpan(Landroid/text/TextPaint;Landroid/graphics/text/LineBreakConfig;[Landroid/text/style/MetricAffectingSpan;[Landroid/text/style/LineBreakConfigSpan;IILandroid/graphics/text/MeasuredText$Builder;Landroid/text/MeasuredParagraph$StyleRunCallback;)V+]Landroid/text/TextPaint;Landroid/text/TextPaint;]Landroid/graphics/text/LineBreakConfig$Builder;Landroid/graphics/text/LineBreakConfig$Builder;]Landroid/text/AutoGrowArray$IntArray;Landroid/text/AutoGrowArray$IntArray;]Landroid/text/style/MetricAffectingSpan;missing_types
-HSPLandroid/text/MeasuredParagraph;->applyStyleRun(IILandroid/text/TextPaint;Landroid/graphics/text/LineBreakConfig;Landroid/graphics/text/MeasuredText$Builder;Landroid/text/MeasuredParagraph$StyleRunCallback;)V+]Landroid/text/AutoGrowArray$FloatArray;Landroid/text/AutoGrowArray$FloatArray;]Landroid/graphics/text/MeasuredText$Builder;Landroid/graphics/text/MeasuredText$Builder;]Landroid/text/AutoGrowArray$ByteArray;Landroid/text/AutoGrowArray$ByteArray;]Landroid/text/TextPaint;Landroid/text/TextPaint;
-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;->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;
-HSPLandroid/text/MeasuredParagraph;->getMeasuredText()Landroid/graphics/text/MeasuredText;
-HSPLandroid/text/MeasuredParagraph;->getParagraphDir()I
-HSPLandroid/text/MeasuredParagraph;->getSpanEndCache()Landroid/text/AutoGrowArray$IntArray;
-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+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector;
-HSPLandroid/text/PackedIntVector;->growBuffer()V
-HSPLandroid/text/PackedIntVector;->insertAt(I[I)V+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector;
-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+]Landroid/text/PackedObjectVector;Landroid/text/PackedObjectVector;
-HSPLandroid/text/PackedObjectVector;->moveRowGapTo(I)V
-HSPLandroid/text/PackedObjectVector;->setValue(IILjava/lang/Object;)V
-HSPLandroid/text/PackedObjectVector;->size()I
-HSPLandroid/text/PrecomputedText$ParagraphInfo;-><init>(ILandroid/text/MeasuredParagraph;)V
-HSPLandroid/text/PrecomputedText$Params;-><init>(Landroid/text/TextPaint;Landroid/graphics/text/LineBreakConfig;Landroid/text/TextDirectionHeuristic;II)V
-HSPLandroid/text/PrecomputedText$Params;->getBreakStrategy()I
-HSPLandroid/text/PrecomputedText$Params;->getHyphenationFrequency()I
-HSPLandroid/text/PrecomputedText$Params;->getTextDirection()Landroid/text/TextDirectionHeuristic;
-HSPLandroid/text/PrecomputedText$Params;->getTextPaint()Landroid/text/TextPaint;
-HSPLandroid/text/Selection;->getSelectionEnd(Ljava/lang/CharSequence;)I
-HSPLandroid/text/Selection;->getSelectionStart(Ljava/lang/CharSequence;)I+]Landroid/text/Spanned;missing_types
-HSPLandroid/text/Selection;->removeMemory(Landroid/text/Spannable;)V
-HSPLandroid/text/Selection;->removeSelection(Landroid/text/Spannable;)V
-HSPLandroid/text/Selection;->setSelection(Landroid/text/Spannable;I)V
-HSPLandroid/text/Selection;->setSelection(Landroid/text/Spannable;II)V
-HSPLandroid/text/Selection;->setSelection(Landroid/text/Spannable;III)V
-HSPLandroid/text/Selection;->updateMemory(Landroid/text/Spannable;I)V
-HSPLandroid/text/SpanSet;-><init>(Ljava/lang/Class;)V
-HSPLandroid/text/SpanSet;->getNextTransition(II)I
-HSPLandroid/text/SpanSet;->hasSpansIntersecting(II)Z
-HSPLandroid/text/SpanSet;->init(Landroid/text/Spanned;II)V+]Landroid/text/Spanned;Landroid/text/SpannableString;
-HSPLandroid/text/SpanSet;->recycle()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
-HSPLandroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;Z)V
-HSPLandroid/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
-HSPLandroid/text/SpannableString;->subSequence(II)Ljava/lang/CharSequence;
-HSPLandroid/text/SpannableString;->valueOf(Ljava/lang/CharSequence;)Landroid/text/SpannableString;
-HSPLandroid/text/SpannableStringBuilder;-><init>()V
-HSPLandroid/text/SpannableStringBuilder;-><init>(Ljava/lang/CharSequence;)V+]Ljava/lang/CharSequence;missing_types
-HSPLandroid/text/SpannableStringBuilder;-><init>(Ljava/lang/CharSequence;II)V
-HSPLandroid/text/SpannableStringBuilder;->append(C)Landroid/text/Editable;
-HSPLandroid/text/SpannableStringBuilder;->append(C)Landroid/text/SpannableStringBuilder;
-HSPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/Editable;
-HSPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;+]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannedString;,Landroid/text/SpannableStringBuilder;,Landroid/text/SpannableString;]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder;
-HSPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder;
-HSPLandroid/text/SpannableStringBuilder;->calcMax(I)I
-HSPLandroid/text/SpannableStringBuilder;->change(IILjava/lang/CharSequence;II)V+]Landroid/text/Spanned;Landroid/text/SpannedString;,Landroid/text/SpannableStringBuilder;,Landroid/text/SpannableString;]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder;
-HSPLandroid/text/SpannableStringBuilder;->charAt(I)C
-HSPLandroid/text/SpannableStringBuilder;->checkRange(Ljava/lang/String;II)V+]Landroid/text/SpannableStringBuilder;missing_types
-HSPLandroid/text/SpannableStringBuilder;->checkSortBuffer([II)[I
-HSPLandroid/text/SpannableStringBuilder;->clear()V
-HSPLandroid/text/SpannableStringBuilder;->compareSpans(II[I[I)I
-HSPLandroid/text/SpannableStringBuilder;->countSpans(IILjava/lang/Class;I)I+]Ljava/lang/Class;Ljava/lang/Class;
-HSPLandroid/text/SpannableStringBuilder;->delete(II)Landroid/text/Editable;
-HSPLandroid/text/SpannableStringBuilder;->delete(II)Landroid/text/SpannableStringBuilder;
-HSPLandroid/text/SpannableStringBuilder;->drawTextRun(Landroid/graphics/BaseCanvas;IIIIFFZLandroid/graphics/Paint;)V
-HSPLandroid/text/SpannableStringBuilder;->equals(Ljava/lang/Object;)Z
-HSPLandroid/text/SpannableStringBuilder;->getChars(II[CI)V
-HSPLandroid/text/SpannableStringBuilder;->getSpanEnd(Ljava/lang/Object;)I+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap;
-HSPLandroid/text/SpannableStringBuilder;->getSpanFlags(Ljava/lang/Object;)I+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap;
-HSPLandroid/text/SpannableStringBuilder;->getSpanStart(Ljava/lang/Object;)I+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap;
-HSPLandroid/text/SpannableStringBuilder;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;+]Landroid/text/SpannableStringBuilder;missing_types
-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+]Ljava/lang/Class;Ljava/lang/Class;
-HSPLandroid/text/SpannableStringBuilder;->getTextWatcherDepth()I
-HSPLandroid/text/SpannableStringBuilder;->hasNonExclusiveExclusiveSpanAt(Ljava/lang/CharSequence;I)Z
-HSPLandroid/text/SpannableStringBuilder;->insert(ILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
-HSPLandroid/text/SpannableStringBuilder;->invalidateIndex(I)V
-HSPLandroid/text/SpannableStringBuilder;->isInvalidParagraph(II)Z
-HSPLandroid/text/SpannableStringBuilder;->leftChild(I)I
-HSPLandroid/text/SpannableStringBuilder;->length()I
-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
-HSPLandroid/text/SpannableStringBuilder;->replace(IILjava/lang/CharSequence;)Landroid/text/Editable;
-HSPLandroid/text/SpannableStringBuilder;->replace(IILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
-HSPLandroid/text/SpannableStringBuilder;->replace(IILjava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder;+]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder;
-HSPLandroid/text/SpannableStringBuilder;->resizeFor(I)V
-HSPLandroid/text/SpannableStringBuilder;->resolveGap(I)I
-HSPLandroid/text/SpannableStringBuilder;->restoreInvariants()V+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap;
-HSPLandroid/text/SpannableStringBuilder;->rightChild(I)I
-HSPLandroid/text/SpannableStringBuilder;->sendAfterTextChanged([Landroid/text/TextWatcher;)V
-HSPLandroid/text/SpannableStringBuilder;->sendBeforeTextChanged([Landroid/text/TextWatcher;III)V
-HSPLandroid/text/SpannableStringBuilder;->sendSpanAdded(Ljava/lang/Object;II)V+]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder;
-HSPLandroid/text/SpannableStringBuilder;->sendSpanChanged(Ljava/lang/Object;IIII)V
-HSPLandroid/text/SpannableStringBuilder;->sendSpanRemoved(Ljava/lang/Object;II)V
-HSPLandroid/text/SpannableStringBuilder;->sendTextChanged([Landroid/text/TextWatcher;III)V
-HSPLandroid/text/SpannableStringBuilder;->sendToSpanWatchers(III)V
-HSPLandroid/text/SpannableStringBuilder;->setFilters([Landroid/text/InputFilter;)V
-HSPLandroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
-HSPLandroid/text/SpannableStringBuilder;->setSpan(ZLjava/lang/Object;IIIZ)V+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap;
-HSPLandroid/text/SpannableStringBuilder;->siftDown(I[Ljava/lang/Object;I[I[I)V
-HSPLandroid/text/SpannableStringBuilder;->sort([Ljava/lang/Object;[I[I)V
-HSPLandroid/text/SpannableStringBuilder;->subSequence(II)Ljava/lang/CharSequence;
-HSPLandroid/text/SpannableStringBuilder;->toString()Ljava/lang/String;+]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder;
-HSPLandroid/text/SpannableStringBuilder;->treeRoot()I
-HSPLandroid/text/SpannableStringBuilder;->updatedIntervalBound(IIIIZZ)I
-HSPLandroid/text/SpannableStringInternal;-><init>(Ljava/lang/CharSequence;IIZ)V+]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannedString;,Landroid/text/SpannableStringBuilder;,Landroid/text/SpannableString;
-HSPLandroid/text/SpannableStringInternal;->charAt(I)C+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/text/SpannableStringInternal;->checkRange(Ljava/lang/String;II)V+]Landroid/text/SpannableStringInternal;Landroid/text/SpannedString;,Landroid/text/SpannableString;
-HSPLandroid/text/SpannableStringInternal;->copySpansFromInternal(Landroid/text/SpannableStringInternal;IIZ)V+]Landroid/text/SpannableStringInternal;Landroid/text/SpannedString;,Landroid/text/SpannableString;
-HSPLandroid/text/SpannableStringInternal;->copySpansFromSpanned(Landroid/text/Spanned;IIZ)V+]Landroid/text/Spanned;Landroid/text/SpannableStringBuilder;
-HSPLandroid/text/SpannableStringInternal;->equals(Ljava/lang/Object;)Z
-HSPLandroid/text/SpannableStringInternal;->getChars(II[CI)V+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/text/SpannableStringInternal;->getSpanEnd(Ljava/lang/Object;)I
-HSPLandroid/text/SpannableStringInternal;->getSpanFlags(Ljava/lang/Object;)I
-HSPLandroid/text/SpannableStringInternal;->getSpanStart(Ljava/lang/Object;)I
-HSPLandroid/text/SpannableStringInternal;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/text/SpannableStringInternal;Landroid/text/SpannableString;
-HSPLandroid/text/SpannableStringInternal;->length()I+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/text/SpannableStringInternal;->nextSpanTransition(IILjava/lang/Class;)I
-HSPLandroid/text/SpannableStringInternal;->removeSpan(Ljava/lang/Object;I)V
-HSPLandroid/text/SpannableStringInternal;->sendSpanAdded(Ljava/lang/Object;II)V+]Landroid/text/SpanWatcher;Landroid/text/DynamicLayout$ChangeWatcher;,Landroid/widget/Editor$SpanController;,Landroid/widget/TextView$ChangeWatcher;]Landroid/text/SpannableStringInternal;Landroid/text/SpannableString;
-HSPLandroid/text/SpannableStringInternal;->sendSpanChanged(Ljava/lang/Object;IIII)V
-HSPLandroid/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
-HSPLandroid/text/SpannedString;-><init>(Ljava/lang/CharSequence;Z)V+]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannableStringBuilder;
-HSPLandroid/text/SpannedString;->equals(Ljava/lang/Object;)Z
-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
-HSPLandroid/text/SpannedString;->subSequence(II)Ljava/lang/CharSequence;
-HSPLandroid/text/SpannedString;->valueOf(Ljava/lang/CharSequence;)Landroid/text/SpannedString;
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmAddLastLineLineSpacing(Landroid/text/StaticLayout$Builder;)Z
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmBreakStrategy(Landroid/text/StaticLayout$Builder;)I
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmEllipsize(Landroid/text/StaticLayout$Builder;)Landroid/text/TextUtils$TruncateAt;
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmEllipsizedWidth(Landroid/text/StaticLayout$Builder;)I
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmEnd(Landroid/text/StaticLayout$Builder;)I
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmFallbackLineSpacing(Landroid/text/StaticLayout$Builder;)Z
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmFontMetricsInt(Landroid/text/StaticLayout$Builder;)Landroid/graphics/Paint$FontMetricsInt;
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmHyphenationFrequency(Landroid/text/StaticLayout$Builder;)I
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmIncludePad(Landroid/text/StaticLayout$Builder;)Z
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmJustificationMode(Landroid/text/StaticLayout$Builder;)I
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmLineBreakConfig(Landroid/text/StaticLayout$Builder;)Landroid/graphics/text/LineBreakConfig;
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmPaint(Landroid/text/StaticLayout$Builder;)Landroid/text/TextPaint;
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmSpacingAdd(Landroid/text/StaticLayout$Builder;)F
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmSpacingMult(Landroid/text/StaticLayout$Builder;)F
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmStart(Landroid/text/StaticLayout$Builder;)I
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmText(Landroid/text/StaticLayout$Builder;)Ljava/lang/CharSequence;
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmTextDir(Landroid/text/StaticLayout$Builder;)Landroid/text/TextDirectionHeuristic;
-HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmWidth(Landroid/text/StaticLayout$Builder;)I
-HSPLandroid/text/StaticLayout$Builder;-><init>()V
-HSPLandroid/text/StaticLayout$Builder;->build()Landroid/text/StaticLayout;
-HSPLandroid/text/StaticLayout$Builder;->obtain(Ljava/lang/CharSequence;IILandroid/text/TextPaint;I)Landroid/text/StaticLayout$Builder;
-HSPLandroid/text/StaticLayout$Builder;->recycle(Landroid/text/StaticLayout$Builder;)V
-HSPLandroid/text/StaticLayout$Builder;->setAlignment(Landroid/text/Layout$Alignment;)Landroid/text/StaticLayout$Builder;
-HSPLandroid/text/StaticLayout$Builder;->setBreakStrategy(I)Landroid/text/StaticLayout$Builder;
-HSPLandroid/text/StaticLayout$Builder;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)Landroid/text/StaticLayout$Builder;
-HSPLandroid/text/StaticLayout$Builder;->setEllipsizedWidth(I)Landroid/text/StaticLayout$Builder;
-HSPLandroid/text/StaticLayout$Builder;->setHyphenationFrequency(I)Landroid/text/StaticLayout$Builder;
-HSPLandroid/text/StaticLayout$Builder;->setIncludePad(Z)Landroid/text/StaticLayout$Builder;
-HSPLandroid/text/StaticLayout$Builder;->setIndents([I[I)Landroid/text/StaticLayout$Builder;
-HSPLandroid/text/StaticLayout$Builder;->setJustificationMode(I)Landroid/text/StaticLayout$Builder;
-HSPLandroid/text/StaticLayout$Builder;->setLineSpacing(FF)Landroid/text/StaticLayout$Builder;
-HSPLandroid/text/StaticLayout$Builder;->setMaxLines(I)Landroid/text/StaticLayout$Builder;
-HSPLandroid/text/StaticLayout$Builder;->setTextDirection(Landroid/text/TextDirectionHeuristic;)Landroid/text/StaticLayout$Builder;
-HSPLandroid/text/StaticLayout$Builder;->setUseLineSpacingFromFallbacks(Z)Landroid/text/StaticLayout$Builder;
-HSPLandroid/text/StaticLayout;-><init>(Landroid/text/StaticLayout$Builder;ZI)V+]Landroid/text/StaticLayout;Landroid/text/StaticLayout;
-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+]Landroid/text/MeasuredParagraph;Landroid/text/MeasuredParagraph;]Landroid/graphics/text/LineBreaker$Builder;Landroid/graphics/text/LineBreaker$Builder;]Landroid/text/TextPaint;Landroid/text/TextPaint;]Landroid/graphics/text/LineBreaker;Landroid/graphics/text/LineBreaker;]Ljava/lang/CharSequence;Landroid/text/SpannableString;]Landroid/graphics/text/LineBreaker$ParagraphConstraints;Landroid/graphics/text/LineBreaker$ParagraphConstraints;]Landroid/graphics/text/LineBreaker$Result;Landroid/graphics/text/LineBreaker$Result;]Landroid/text/AutoGrowArray$IntArray;Landroid/text/AutoGrowArray$IntArray;
-HSPLandroid/text/StaticLayout;->getBottomPadding()I
-HSPLandroid/text/StaticLayout;->getEllipsisCount(I)I
-HSPLandroid/text/StaticLayout;->getEllipsisStart(I)I
-HSPLandroid/text/StaticLayout;->getEndHyphenEdit(I)I
-HSPLandroid/text/StaticLayout;->getHeight(Z)I
-HSPLandroid/text/StaticLayout;->getIndentAdjust(ILandroid/text/Layout$Alignment;)I
-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;+]Landroid/text/StaticLayout;Landroid/text/StaticLayout;
-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;->getTotalInsets(I)F
-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+]Landroid/text/MeasuredParagraph;Landroid/text/MeasuredParagraph;]Ljava/lang/CharSequence;Landroid/text/SpannableString;
-HSPLandroid/text/StaticLayout;->packHyphenEdit(II)I
-HSPLandroid/text/StaticLayout;->unpackEndHyphenEdit(I)I
-HSPLandroid/text/StaticLayout;->unpackStartHyphenEdit(I)I
-HSPLandroid/text/TextDirectionHeuristics$FirstStrong;->checkRtl(Ljava/lang/CharSequence;II)I
-HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->doCheck(Ljava/lang/CharSequence;II)Z
-HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->isRtl(Ljava/lang/CharSequence;II)Z
-HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->isRtl([CII)Z
-HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal;->defaultIsRtl()Z
-HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;->defaultIsRtl()Z
-HSPLandroid/text/TextDirectionHeuristics;->isRtlCodePoint(I)I
-HSPLandroid/text/TextFlags;->getKeyForFlag(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;
-HSPLandroid/text/TextFlags;->isFeatureEnabled(Ljava/lang/String;)Z
-HSPLandroid/text/TextLine$DecorationInfo;-><init>()V
-HSPLandroid/text/TextLine$DecorationInfo;->copyInfo()Landroid/text/TextLine$DecorationInfo;
-HSPLandroid/text/TextLine$DecorationInfo;->hasDecoration()Z
-HSPLandroid/text/TextLine;-><init>()V
-HSPLandroid/text/TextLine;->adjustEndHyphenEdit(II)I
-HSPLandroid/text/TextLine;->adjustStartHyphenEdit(II)I
-HSPLandroid/text/TextLine;->draw(Landroid/graphics/Canvas;FIII)V+]Landroid/text/Layout$Directions;Landroid/text/Layout$Directions;
-HSPLandroid/text/TextLine;->drawStroke(Landroid/text/TextPaint;Landroid/graphics/Canvas;IFFFFF)V
-HSPLandroid/text/TextLine;->drawTextRun(Landroid/graphics/Canvas;Landroid/text/TextPaint;IIIIZFI)V+]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;
-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;->expandMetricsFromPaint(Landroid/text/TextPaint;IIIIZLandroid/graphics/Paint$FontMetricsInt;)V+]Landroid/text/TextPaint;Landroid/text/TextPaint;
-HSPLandroid/text/TextLine;->extractDecorationInfo(Landroid/text/TextPaint;Landroid/text/TextLine$DecorationInfo;)V+]Landroid/text/TextPaint;Landroid/text/TextPaint;
-HSPLandroid/text/TextLine;->getOffsetBeforeAfter(IIIZIZ)I+]Landroid/text/TextPaint;Landroid/text/TextPaint;]Landroid/text/Spanned;Landroid/text/SpannableString;
-HSPLandroid/text/TextLine;->getOffsetToLeftRightOf(IZ)I
-HSPLandroid/text/TextLine;->getRunAdvance(Landroid/text/TextPaint;IIIIZI[FILandroid/graphics/RectF;Landroid/text/TextLine$LineInfo;)F+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/text/PrecomputedText;Landroid/text/PrecomputedText;]Landroid/text/TextPaint;Landroid/text/TextPaint;
-HSPLandroid/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;Landroid/text/TextShaper$GlyphsConsumer;FIIILandroid/graphics/Paint$FontMetricsInt;Landroid/graphics/RectF;Z[FILandroid/text/TextLine$LineInfo;I)F+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/text/style/MetricAffectingSpan;megamorphic_types]Landroid/text/style/CharacterStyle;megamorphic_types]Landroid/text/TextPaint;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/text/TextLine$DecorationInfo;Landroid/text/TextLine$DecorationInfo;]Landroid/text/SpanSet;Landroid/text/SpanSet;
-HSPLandroid/text/TextLine;->handleText(Landroid/text/TextPaint;IIIIZLandroid/graphics/Canvas;Landroid/text/TextShaper$GlyphsConsumer;FIIILandroid/graphics/Paint$FontMetricsInt;Landroid/graphics/RectF;ZILjava/util/ArrayList;[FILandroid/text/TextLine$LineInfo;I)F+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/text/TextPaint;Landroid/text/TextPaint;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;,Landroid/graphics/Canvas;,Landroid/view/Surface$CompatibleCanvas;
-HSPLandroid/text/TextLine;->isLineEndSpace(C)Z
-HSPLandroid/text/TextLine;->measure(IZLandroid/graphics/Paint$FontMetricsInt;Landroid/graphics/RectF;Landroid/text/TextLine$LineInfo;)F+]Landroid/text/Layout$Directions;Landroid/text/Layout$Directions;]Landroid/text/TextLine;Landroid/text/TextLine;
-HSPLandroid/text/TextLine;->obtain()Landroid/text/TextLine;
-HSPLandroid/text/TextLine;->recycle(Landroid/text/TextLine;)Landroid/text/TextLine;+]Landroid/text/SpanSet;Landroid/text/SpanSet;
-HSPLandroid/text/TextLine;->set(Landroid/text/TextPaint;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;ZLandroid/text/Layout$TabStops;IIZ)V+]Landroid/text/SpanSet;Landroid/text/SpanSet;
-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;+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/text/TextUtils$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/text/TextUtils$1;Landroid/text/TextUtils$1;
-HSPLandroid/text/TextUtils$SimpleStringSplitter;-><init>(C)V
-HSPLandroid/text/TextUtils$SimpleStringSplitter;->hasNext()Z
-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;->toString()Ljava/lang/String;
-HSPLandroid/text/TextUtils;->concat([Ljava/lang/CharSequence;)Ljava/lang/CharSequence;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder;
-HSPLandroid/text/TextUtils;->copySpansFrom(Landroid/text/Spanned;IILjava/lang/Class;Landroid/text/Spannable;I)V
-HSPLandroid/text/TextUtils;->couldAffectRtl(C)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+]Ljava/lang/Object;Ljava/lang/String;]Ljava/lang/CharSequence;Ljava/lang/String;
-HSPLandroid/text/TextUtils;->expandTemplate(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
-HSPLandroid/text/TextUtils;->formatSimple(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Boolean;Ljava/lang/Boolean;
-HSPLandroid/text/TextUtils;->getCapsMode(Ljava/lang/CharSequence;II)I
-HSPLandroid/text/TextUtils;->getChars(Ljava/lang/CharSequence;II[CI)V+]Ljava/lang/Object;Landroid/text/SpannableString;]Landroid/text/GetChars;Landroid/text/SpannableString;
-HSPLandroid/text/TextUtils;->getEllipsisString(Landroid/text/TextUtils$TruncateAt;)Ljava/lang/String;
-HSPLandroid/text/TextUtils;->getLayoutDirectionFromLocale(Ljava/util/Locale;)I
-HSPLandroid/text/TextUtils;->getTrimmedLength(Ljava/lang/CharSequence;)I
-HSPLandroid/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+]Ljava/lang/Object;Landroid/text/SpannableString;
-HSPLandroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I
-HSPLandroid/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+]Ljava/lang/CharSequence;Ljava/lang/String;
-HSPLandroid/text/TextUtils;->isGraphic(Ljava/lang/CharSequence;)Z
-HSPLandroid/text/TextUtils;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Iterable;missing_types]Ljava/util/Iterator;missing_types
-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;->nullIfEmpty(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/text/TextUtils;->obtain(I)[C
-HSPLandroid/text/TextUtils;->packRangeInLong(II)J
-HSPLandroid/text/TextUtils;->recycle([C)V
-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;
-HSPLandroid/text/TextUtils;->stringOrSpannedString(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
-HSPLandroid/text/TextUtils;->substring(Ljava/lang/CharSequence;II)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;
-HSPLandroid/text/TextUtils;->toUpperCase(Ljava/util/Locale;Ljava/lang/CharSequence;Z)Ljava/lang/CharSequence;
-HSPLandroid/text/TextUtils;->trimNoCopySpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
-HSPLandroid/text/TextUtils;->trimToParcelableSize(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
-HSPLandroid/text/TextUtils;->trimToSize(Ljava/lang/CharSequence;I)Ljava/lang/CharSequence;
-HSPLandroid/text/TextUtils;->unpackRangeEndFromLong(J)I
-HSPLandroid/text/TextUtils;->unpackRangeStartFromLong(J)I
-HSPLandroid/text/TextUtils;->writeToParcel(Ljava/lang/CharSequence;Landroid/os/Parcel;I)V+]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/os/Parcel;Landroid/os/Parcel;
-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;
-HSPLandroid/text/format/DateFormat;->getIcuDateFormatSymbols(Ljava/util/Locale;)Landroid/icu/text/DateFormatSymbols;
-HSPLandroid/text/format/DateFormat;->getMonthString(Landroid/icu/text/DateFormatSymbols;III)Ljava/lang/String;
-HSPLandroid/text/format/DateFormat;->getTimeFormat(Landroid/content/Context;)Ljava/text/DateFormat;
-HSPLandroid/text/format/DateFormat;->getTimeFormatString(Landroid/content/Context;I)Ljava/lang/String;
-HSPLandroid/text/format/DateFormat;->getYearString(II)Ljava/lang/String;
-HSPLandroid/text/format/DateFormat;->hasDesignator(Ljava/lang/CharSequence;C)Z
-HSPLandroid/text/format/DateFormat;->is24HourFormat(Landroid/content/Context;)Z
-HSPLandroid/text/format/DateFormat;->is24HourFormat(Landroid/content/Context;I)Z
-HSPLandroid/text/format/DateFormat;->is24HourLocale(Ljava/util/Locale;)Z
-HSPLandroid/text/format/DateFormat;->zeroPad(II)Ljava/lang/String;
-HSPLandroid/text/format/DateIntervalFormat;-><clinit>()V
-HSPLandroid/text/format/DateIntervalFormat;->formatDateRange(JJILjava/lang/String;)Ljava/lang/String;
-HSPLandroid/text/format/DateIntervalFormat;->formatDateRange(Landroid/icu/util/ULocale;Landroid/icu/util/TimeZone;JJI)Ljava/lang/String;
-HSPLandroid/text/format/DateIntervalFormat;->getFormatter(Ljava/lang/String;Landroid/icu/util/ULocale;Landroid/icu/util/TimeZone;)Landroid/icu/text/DateIntervalFormat;
-HSPLandroid/text/format/DateIntervalFormat;->isExactlyMidnight(Landroid/icu/util/Calendar;)Z
-HSPLandroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;JJI)Ljava/lang/String;
-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;
-HSPLandroid/text/format/DateUtils;->formatElapsedTime(J)Ljava/lang/String;
-HSPLandroid/text/format/DateUtils;->formatElapsedTime(Ljava/lang/StringBuilder;J)Ljava/lang/String;
-HSPLandroid/text/format/DateUtils;->getRelativeTimeSpanString(JJJI)Ljava/lang/CharSequence;
-HSPLandroid/text/format/DateUtils;->initFormatStrings()V
-HSPLandroid/text/format/DateUtils;->initFormatStringsLocked()V
-HSPLandroid/text/format/DateUtils;->isSameDate(JJ)Z
-HSPLandroid/text/format/DateUtils;->isToday(J)Z
-HSPLandroid/text/format/DateUtilsBridge;->createIcuCalendar(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;J)Landroid/icu/util/Calendar;
-HSPLandroid/text/format/DateUtilsBridge;->fallInSameMonth(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)Z
-HSPLandroid/text/format/DateUtilsBridge;->fallInSameYear(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)Z
-HSPLandroid/text/format/DateUtilsBridge;->fallOnDifferentDates(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)Z
-HSPLandroid/text/format/DateUtilsBridge;->icuTimeZone(Ljava/util/TimeZone;)Landroid/icu/util/TimeZone;
-HSPLandroid/text/format/DateUtilsBridge;->isThisYear(Landroid/icu/util/Calendar;)Z
-HSPLandroid/text/format/DateUtilsBridge;->toSkeleton(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;I)Ljava/lang/String;
-HSPLandroid/text/format/Formatter;->formatBytes(Landroid/content/res/Resources;JI)Landroid/text/format/Formatter$BytesResult;
-HSPLandroid/text/format/Formatter;->formatFileSize(Landroid/content/Context;J)Ljava/lang/String;
-HSPLandroid/text/format/Formatter;->formatFileSize(Landroid/content/Context;JI)Ljava/lang/String;
-HSPLandroid/text/format/RelativeDateTimeFormatter;->getFormatter(Landroid/icu/util/ULocale;Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/DisplayContext;)Landroid/icu/text/RelativeDateTimeFormatter;
-HSPLandroid/text/format/RelativeDateTimeFormatter;->getRelativeTimeSpanString(Landroid/icu/util/ULocale;Landroid/icu/util/TimeZone;JJJILandroid/icu/text/DisplayContext;)Ljava/lang/String;
-HSPLandroid/text/format/RelativeDateTimeFormatter;->getRelativeTimeSpanString(Ljava/util/Locale;Ljava/util/TimeZone;JJJILandroid/icu/text/DisplayContext;)Ljava/lang/String;
-HSPLandroid/text/format/Time$TimeCalculator;->copyFieldsFromTime(Landroid/text/format/Time;)V
-HSPLandroid/text/format/Time$TimeCalculator;->copyFieldsToTime(Landroid/text/format/Time;)V
-HSPLandroid/text/format/Time$TimeCalculator;->lookupZoneInfoData(Ljava/lang/String;)Lcom/android/i18n/timezone/ZoneInfoData;
-HSPLandroid/text/format/Time$TimeCalculator;->setTimeInMillis(J)V
-HSPLandroid/text/format/Time$TimeCalculator;->updateZoneInfoFromTimeZone()V
-HSPLandroid/text/format/Time;-><init>()V
-HSPLandroid/text/format/Time;->getJulianDay(JJ)I
-HSPLandroid/text/format/Time;->initialize(Ljava/lang/String;)V
-HSPLandroid/text/format/Time;->set(J)V
-HSPLandroid/text/method/AllCapsTransformationMethod;-><init>(Landroid/content/Context;)V
-HSPLandroid/text/method/AllCapsTransformationMethod;->getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence;
-HSPLandroid/text/method/AllCapsTransformationMethod;->setLengthChangesAllowed(Z)V
-HSPLandroid/text/method/ArrowKeyMovementMethod;->canSelectArbitrarily()Z
-HSPLandroid/text/method/ArrowKeyMovementMethod;->getInstance()Landroid/text/method/MovementMethod;
-HSPLandroid/text/method/ArrowKeyMovementMethod;->handleMovementKey(Landroid/widget/TextView;Landroid/text/Spannable;IILandroid/view/KeyEvent;)Z
-HSPLandroid/text/method/ArrowKeyMovementMethod;->initialize(Landroid/widget/TextView;Landroid/text/Spannable;)V
-HSPLandroid/text/method/ArrowKeyMovementMethod;->onTakeFocus(Landroid/widget/TextView;Landroid/text/Spannable;I)V
-HSPLandroid/text/method/ArrowKeyMovementMethod;->onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z
-HSPLandroid/text/method/BaseKeyListener;-><init>()V
-HSPLandroid/text/method/BaseKeyListener;->makeTextContentType(Landroid/text/method/TextKeyListener$Capitalize;Z)I
-HSPLandroid/text/method/BaseMovementMethod;-><init>()V
-HSPLandroid/text/method/BaseMovementMethod;->getMovementMetaState(Landroid/text/Spannable;Landroid/view/KeyEvent;)I
-HSPLandroid/text/method/BaseMovementMethod;->handleMovementKey(Landroid/widget/TextView;Landroid/text/Spannable;IILandroid/view/KeyEvent;)Z
-HSPLandroid/text/method/BaseMovementMethod;->onKeyDown(Landroid/widget/TextView;Landroid/text/Spannable;ILandroid/view/KeyEvent;)Z
-HSPLandroid/text/method/BaseMovementMethod;->onKeyUp(Landroid/widget/TextView;Landroid/text/Spannable;ILandroid/view/KeyEvent;)Z
-HSPLandroid/text/method/LinkMovementMethod;-><init>()V
-HSPLandroid/text/method/LinkMovementMethod;->getInstance()Landroid/text/method/MovementMethod;
-HSPLandroid/text/method/LinkMovementMethod;->initialize(Landroid/widget/TextView;Landroid/text/Spannable;)V
-HSPLandroid/text/method/MetaKeyKeyListener;-><init>()V
-HSPLandroid/text/method/MetaKeyKeyListener;->getMetaState(Ljava/lang/CharSequence;I)I
-HSPLandroid/text/method/MetaKeyKeyListener;->isMetaTracker(Ljava/lang/CharSequence;Ljava/lang/Object;)Z
-HSPLandroid/text/method/MetaKeyKeyListener;->onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
-HSPLandroid/text/method/MetaKeyKeyListener;->onKeyUp(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
-HSPLandroid/text/method/QwertyKeyListener;->onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
-HSPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->charAt(I)C
-HSPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->getChars(II[CI)V
-HSPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->length()I
-HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpanEnd(Ljava/lang/Object;)I
-HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpanFlags(Ljava/lang/Object;)I
-HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpanStart(Ljava/lang/Object;)I
-HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
-HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->nextSpanTransition(IILjava/lang/Class;)I
-HSPLandroid/text/method/ReplacementTransformationMethod;-><init>()V
-HSPLandroid/text/method/ReplacementTransformationMethod;->getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence;
-HSPLandroid/text/method/ReplacementTransformationMethod;->onFocusChanged(Landroid/view/View;Ljava/lang/CharSequence;ZILandroid/graphics/Rect;)V
-HSPLandroid/text/method/ScrollingMovementMethod;-><init>()V
-HSPLandroid/text/method/SingleLineTransformationMethod;-><init>()V
-HSPLandroid/text/method/SingleLineTransformationMethod;->getInstance()Landroid/text/method/SingleLineTransformationMethod;
-HSPLandroid/text/method/SingleLineTransformationMethod;->getOriginal()[C
-HSPLandroid/text/method/SingleLineTransformationMethod;->getReplacement()[C
-HSPLandroid/text/method/TextKeyListener$SettingsObserver;->onChange(Z)V
-HSPLandroid/text/method/TextKeyListener;-><init>(Landroid/text/method/TextKeyListener$Capitalize;Z)V
-HSPLandroid/text/method/TextKeyListener;->getInputType()I
-HSPLandroid/text/method/TextKeyListener;->getInstance()Landroid/text/method/TextKeyListener;
-HSPLandroid/text/method/TextKeyListener;->getInstance(ZLandroid/text/method/TextKeyListener$Capitalize;)Landroid/text/method/TextKeyListener;
-HSPLandroid/text/method/TextKeyListener;->getKeyListener(Landroid/view/KeyEvent;)Landroid/text/method/KeyListener;
-HSPLandroid/text/method/TextKeyListener;->getPrefs(Landroid/content/Context;)I
-HSPLandroid/text/method/TextKeyListener;->initPrefs(Landroid/content/Context;)V
-HSPLandroid/text/method/TextKeyListener;->onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
-HSPLandroid/text/method/TextKeyListener;->onKeyUp(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
-HSPLandroid/text/method/TextKeyListener;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V
-HSPLandroid/text/method/TextKeyListener;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V
-HSPLandroid/text/method/TextKeyListener;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V
-HSPLandroid/text/method/TextKeyListener;->updatePrefs(Landroid/content/ContentResolver;)V
-HSPLandroid/text/method/Touch;->onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z+]Landroid/text/Layout;Landroid/text/DynamicLayout;]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Landroid/text/Spannable;Landroid/text/SpannableString;]Landroid/view/MotionEvent;Landroid/view/MotionEvent;
-HSPLandroid/text/method/WordIterator;-><init>(Ljava/util/Locale;)V
-HSPLandroid/text/method/WordIterator;->checkOffsetIsValid(I)V
-HSPLandroid/text/method/WordIterator;->following(I)I
-HSPLandroid/text/method/WordIterator;->getBeginning(I)I
-HSPLandroid/text/method/WordIterator;->getBeginning(IZ)I
-HSPLandroid/text/method/WordIterator;->getEnd(I)I
-HSPLandroid/text/method/WordIterator;->getEnd(IZ)I
-HSPLandroid/text/method/WordIterator;->preceding(I)I
-HSPLandroid/text/method/WordIterator;->setCharSequence(Ljava/lang/CharSequence;II)V
-HSPLandroid/text/style/AbsoluteSizeSpan;-><init>(IZ)V
-HSPLandroid/text/style/AbsoluteSizeSpan;->updateDrawState(Landroid/text/TextPaint;)V
-HSPLandroid/text/style/CharacterStyle;-><init>()V
-HSPLandroid/text/style/CharacterStyle;->getUnderlying()Landroid/text/style/CharacterStyle;
-HSPLandroid/text/style/ClickableSpan;-><init>()V
-HSPLandroid/text/style/ClickableSpan;->updateDrawState(Landroid/text/TextPaint;)V
-HSPLandroid/text/style/DynamicDrawableSpan;-><init>(I)V
-HSPLandroid/text/style/ForegroundColorSpan;-><init>(I)V
-HSPLandroid/text/style/ForegroundColorSpan;->getSpanTypeIdInternal()I
-HSPLandroid/text/style/ForegroundColorSpan;->updateDrawState(Landroid/text/TextPaint;)V+]Landroid/text/TextPaint;Landroid/text/TextPaint;
-HSPLandroid/text/style/ForegroundColorSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
-HSPLandroid/text/style/ImageSpan;-><init>(Landroid/graphics/drawable/Drawable;I)V
-HSPLandroid/text/style/ImageSpan;->getDrawable()Landroid/graphics/drawable/Drawable;
-HSPLandroid/text/style/MetricAffectingSpan;-><init>()V
-HSPLandroid/text/style/MetricAffectingSpan;->getUnderlying()Landroid/text/style/CharacterStyle;
-HSPLandroid/text/style/MetricAffectingSpan;->getUnderlying()Landroid/text/style/MetricAffectingSpan;
-HSPLandroid/text/style/RelativeSizeSpan;-><init>(F)V
-HSPLandroid/text/style/ReplacementSpan;-><init>()V
-HSPLandroid/text/style/SpellCheckSpan;->getSpanTypeIdInternal()I
-HSPLandroid/text/style/SpellCheckSpan;->isSpellCheckInProgress()Z
-HSPLandroid/text/style/SpellCheckSpan;->setSpellCheckInProgress(Z)V
-HSPLandroid/text/style/SpellCheckSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
-HSPLandroid/text/style/StyleSpan;-><init>(I)V
-HSPLandroid/text/style/StyleSpan;-><init>(II)V
-HSPLandroid/text/style/StyleSpan;->apply(Landroid/graphics/Paint;II)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
-HSPLandroid/text/style/TextAppearanceSpan;-><init>(Landroid/content/Context;I)V
-HSPLandroid/text/style/TextAppearanceSpan;-><init>(Landroid/content/Context;II)V
-HSPLandroid/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;
-HSPLandroid/text/style/TextAppearanceSpan;->getTextStyle()I
-HSPLandroid/text/style/TextAppearanceSpan;->updateDrawState(Landroid/text/TextPaint;)V
-HSPLandroid/text/style/TextAppearanceSpan;->updateMeasureState(Landroid/text/TextPaint;)V
-HSPLandroid/text/style/TextAppearanceSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
-HSPLandroid/text/style/TtsSpan$Builder;->build()Landroid/text/style/TtsSpan;
-HSPLandroid/text/style/TtsSpan$Builder;->setStringArgument(Ljava/lang/String;Ljava/lang/String;)Landroid/text/style/TtsSpan$Builder;
-HSPLandroid/text/style/TtsSpan$SemioticClassBuilder;-><init>(Ljava/lang/String;)V
-HSPLandroid/text/style/TypefaceSpan;-><init>(Ljava/lang/String;)V
-HSPLandroid/text/style/TypefaceSpan;-><init>(Ljava/lang/String;Landroid/graphics/Typeface;)V
-HSPLandroid/text/style/URLSpan;-><init>(Ljava/lang/String;)V
-HSPLandroid/text/style/URLSpan;->getURL()Ljava/lang/String;
-HSPLandroid/text/style/UnderlineSpan;-><init>()V
-HSPLandroid/text/style/UnderlineSpan;->getSpanTypeIdInternal()I
-HSPLandroid/text/style/UnderlineSpan;->updateDrawState(Landroid/text/TextPaint;)V
-HSPLandroid/text/style/UnderlineSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
-HSPLandroid/text/util/Linkify$4;-><init>()V
-HSPLandroid/text/util/Linkify;->addLinks(Landroid/text/Spannable;ILandroid/content/Context;Ljava/util/function/Function;)Z
-HSPLandroid/text/util/Linkify;->containsUnsupportedCharacters(Ljava/lang/String;)Z
-HSPLandroid/text/util/Linkify;->gatherLinks(Ljava/util/ArrayList;Landroid/text/Spannable;Ljava/util/regex/Pattern;[Ljava/lang/String;Landroid/text/util/Linkify$MatchFilter;Landroid/text/util/Linkify$TransformFilter;)V
-HSPLandroid/text/util/Linkify;->pruneOverlaps(Ljava/util/ArrayList;)V
-HSPLandroid/transition/ChangeBounds;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/transition/ChangeBounds;->setResizeClip(Z)V
-HSPLandroid/transition/ChangeClipBounds;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/transition/ChangeImageTransform;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/transition/ChangeTransform;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/transition/Fade$1;->onTransitionEnd(Landroid/transition/Transition;)V
-HSPLandroid/transition/Fade$FadeAnimatorListener;->onAnimationEnd(Landroid/animation/Animator;)V
-HSPLandroid/transition/Fade$FadeAnimatorListener;->onAnimationStart(Landroid/animation/Animator;)V
-HSPLandroid/transition/Fade;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/transition/Fade;->captureStartValues(Landroid/transition/TransitionValues;)V
-HSPLandroid/transition/Fade;->createAnimation(Landroid/view/View;FF)Landroid/animation/Animator;
-HSPLandroid/transition/Fade;->onAppear(Landroid/view/ViewGroup;Landroid/view/View;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator;
-HSPLandroid/transition/Fade;->onDisappear(Landroid/view/ViewGroup;Landroid/view/View;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator;
-HSPLandroid/transition/Scene;->enter()V
-HSPLandroid/transition/Transition$2;->onAnimationEnd(Landroid/animation/Animator;)V
-HSPLandroid/transition/Transition$2;->onAnimationStart(Landroid/animation/Animator;)V
-HSPLandroid/transition/Transition$3;->onAnimationEnd(Landroid/animation/Animator;)V
-HSPLandroid/transition/Transition;-><init>()V
-HSPLandroid/transition/Transition;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V+]Ljava/lang/Object;megamorphic_types]Landroid/content/Context;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Ljava/lang/Class;Ljava/lang/Class;
-HSPLandroid/transition/Transition;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition;
-HSPLandroid/transition/Transition;->addTarget(Landroid/view/View;)Landroid/transition/Transition;
-HSPLandroid/transition/Transition;->addUnmatched(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
-HSPLandroid/transition/Transition;->addViewValues(Landroid/transition/TransitionValuesMaps;Landroid/view/View;Landroid/transition/TransitionValues;)V
-HSPLandroid/transition/Transition;->animate(Landroid/animation/Animator;)V
-HSPLandroid/transition/Transition;->captureHierarchy(Landroid/view/View;Z)V
-HSPLandroid/transition/Transition;->capturePropagationValues(Landroid/transition/TransitionValues;)V
-HSPLandroid/transition/Transition;->captureValues(Landroid/view/ViewGroup;Z)V
-HSPLandroid/transition/Transition;->clearValues(Z)V
-HSPLandroid/transition/Transition;->clone()Landroid/transition/Transition;
-HSPLandroid/transition/Transition;->createAnimators(Landroid/view/ViewGroup;Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;Ljava/util/ArrayList;Ljava/util/ArrayList;)V
-HSPLandroid/transition/Transition;->end()V
-HSPLandroid/transition/Transition;->getDuration()J
-HSPLandroid/transition/Transition;->getInterpolator()Landroid/animation/TimeInterpolator;
-HSPLandroid/transition/Transition;->getName()Ljava/lang/String;
-HSPLandroid/transition/Transition;->getStartDelay()J
-HSPLandroid/transition/Transition;->isValidTarget(Landroid/view/View;)Z
-HSPLandroid/transition/Transition;->matchIds(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/SparseArray;Landroid/util/SparseArray;)V
-HSPLandroid/transition/Transition;->matchInstances(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
-HSPLandroid/transition/Transition;->matchItemIds(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;)V
-HSPLandroid/transition/Transition;->matchNames(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
-HSPLandroid/transition/Transition;->matchStartAndEnd(Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;)V
-HSPLandroid/transition/Transition;->playTransition(Landroid/view/ViewGroup;)V
-HSPLandroid/transition/Transition;->removeListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition;
-HSPLandroid/transition/Transition;->runAnimators()V
-HSPLandroid/transition/Transition;->setDuration(J)Landroid/transition/Transition;
-HSPLandroid/transition/Transition;->setEpicenterCallback(Landroid/transition/Transition$EpicenterCallback;)V
-HSPLandroid/transition/Transition;->start()V
-HSPLandroid/transition/TransitionInflater;-><init>(Landroid/content/Context;)V
-HSPLandroid/transition/TransitionInflater;->createCustom(Landroid/util/AttributeSet;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
-HSPLandroid/transition/TransitionInflater;->createTransitionFromXml(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/transition/Transition;)Landroid/transition/Transition;
-HSPLandroid/transition/TransitionInflater;->from(Landroid/content/Context;)Landroid/transition/TransitionInflater;
-HSPLandroid/transition/TransitionInflater;->inflateTransition(I)Landroid/transition/Transition;
-HSPLandroid/transition/TransitionListenerAdapter;-><init>()V
-HSPLandroid/transition/TransitionListenerAdapter;->onTransitionStart(Landroid/transition/Transition;)V
-HSPLandroid/transition/TransitionManager$MultiListener$1;->onTransitionEnd(Landroid/transition/Transition;)V
-HSPLandroid/transition/TransitionManager$MultiListener;->onPreDraw()Z
-HSPLandroid/transition/TransitionManager;-><init>()V
-HSPLandroid/transition/TransitionManager;->beginDelayedTransition(Landroid/view/ViewGroup;Landroid/transition/Transition;)V
-HSPLandroid/transition/TransitionManager;->endTransitions(Landroid/view/ViewGroup;)V
-HSPLandroid/transition/TransitionManager;->getRunningTransitions()Landroid/util/ArrayMap;
-HSPLandroid/transition/TransitionManager;->sceneChangeSetup(Landroid/view/ViewGroup;Landroid/transition/Transition;)V
-HSPLandroid/transition/TransitionSet$TransitionSetListener;->onTransitionEnd(Landroid/transition/Transition;)V
-HSPLandroid/transition/TransitionSet$TransitionSetListener;->onTransitionStart(Landroid/transition/Transition;)V
-HSPLandroid/transition/TransitionSet;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/transition/TransitionSet;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition;
-HSPLandroid/transition/TransitionSet;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/TransitionSet;
-HSPLandroid/transition/TransitionSet;->addTarget(Landroid/view/View;)Landroid/transition/TransitionSet;
-HSPLandroid/transition/TransitionSet;->addTransition(Landroid/transition/Transition;)Landroid/transition/TransitionSet;
-HSPLandroid/transition/TransitionSet;->addTransitionInternal(Landroid/transition/Transition;)V
-HSPLandroid/transition/TransitionSet;->captureEndValues(Landroid/transition/TransitionValues;)V
-HSPLandroid/transition/TransitionSet;->capturePropagationValues(Landroid/transition/TransitionValues;)V
-HSPLandroid/transition/TransitionSet;->captureStartValues(Landroid/transition/TransitionValues;)V
-HSPLandroid/transition/TransitionSet;->clone()Landroid/transition/Transition;
-HSPLandroid/transition/TransitionSet;->clone()Landroid/transition/TransitionSet;
-HSPLandroid/transition/TransitionSet;->createAnimators(Landroid/view/ViewGroup;Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;Ljava/util/ArrayList;Ljava/util/ArrayList;)V
-HSPLandroid/transition/TransitionSet;->getTransitionCount()I
-HSPLandroid/transition/TransitionSet;->removeListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition;
-HSPLandroid/transition/TransitionSet;->removeListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/TransitionSet;
-HSPLandroid/transition/TransitionSet;->runAnimators()V
-HSPLandroid/transition/TransitionSet;->setEpicenterCallback(Landroid/transition/Transition$EpicenterCallback;)V
-HSPLandroid/transition/TransitionSet;->setOrdering(I)Landroid/transition/TransitionSet;
-HSPLandroid/transition/TransitionSet;->setupStartEndListeners()V
-HSPLandroid/transition/TransitionValuesMaps;-><init>()V
-HSPLandroid/transition/Visibility$DisappearListener;->onAnimationEnd(Landroid/animation/Animator;)V
-HSPLandroid/transition/Visibility$DisappearListener;->onAnimationStart(Landroid/animation/Animator;)V
-HSPLandroid/transition/Visibility$DisappearListener;->onTransitionEnd(Landroid/transition/Transition;)V
-HSPLandroid/transition/Visibility;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/transition/Visibility;->captureEndValues(Landroid/transition/TransitionValues;)V
-HSPLandroid/transition/Visibility;->captureValues(Landroid/transition/TransitionValues;)V
-HSPLandroid/transition/Visibility;->createAnimator(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator;
-HSPLandroid/transition/Visibility;->getMode()I
-HSPLandroid/transition/Visibility;->getTransitionProperties()[Ljava/lang/String;
-HSPLandroid/transition/Visibility;->getVisibilityChangeInfo(Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/transition/Visibility$VisibilityInfo;
-HSPLandroid/transition/Visibility;->isTransitionRequired(Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Z
-HSPLandroid/transition/Visibility;->onAppear(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;ILandroid/transition/TransitionValues;I)Landroid/animation/Animator;
-HSPLandroid/transition/Visibility;->onDisappear(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;ILandroid/transition/TransitionValues;I)Landroid/animation/Animator;
-HSPLandroid/transition/Visibility;->setMode(I)V
-HSPLandroid/util/AndroidException;-><init>()V
-HSPLandroid/util/AndroidException;-><init>(Ljava/lang/String;)V
-HSPLandroid/util/AndroidException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;ZZ)V
-HSPLandroid/util/AndroidRuntimeException;-><init>(Ljava/lang/String;)V
-HSPLandroid/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
-HSPLandroid/util/ArrayMap$1;->colIndexOfKey(Ljava/lang/Object;)I
-HSPLandroid/util/ArrayMap$1;->colRemoveAt(I)V
-HSPLandroid/util/ArrayMap;-><init>()V
-HSPLandroid/util/ArrayMap;-><init>(I)V
-HSPLandroid/util/ArrayMap;-><init>(IZ)V
-HSPLandroid/util/ArrayMap;-><init>(Landroid/util/ArrayMap;)V
-HSPLandroid/util/ArrayMap;->allocArrays(I)V
-HSPLandroid/util/ArrayMap;->append(Ljava/lang/Object;Ljava/lang/Object;)V+]Ljava/lang/Object;Ljava/lang/String;
-HSPLandroid/util/ArrayMap;->binarySearchHashes([III)I
-HSPLandroid/util/ArrayMap;->clear()V
-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;
-HSPLandroid/util/ArrayMap;->equals(Ljava/lang/Object;)Z
-HSPLandroid/util/ArrayMap;->freeArrays([I[Ljava/lang/Object;I)V
-HSPLandroid/util/ArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;
-HSPLandroid/util/ArrayMap;->getCollection()Landroid/util/MapCollections;
-HSPLandroid/util/ArrayMap;->hashCode()I
-HSPLandroid/util/ArrayMap;->indexOf(Ljava/lang/Object;I)I+]Ljava/lang/Object;megamorphic_types
-HSPLandroid/util/ArrayMap;->indexOfKey(Ljava/lang/Object;)I+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Object;megamorphic_types
-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;+]Landroid/util/MapCollections;Landroid/util/ArrayMap$1;
-HSPLandroid/util/ArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Object;megamorphic_types
-HSPLandroid/util/ArrayMap;->putAll(Landroid/util/ArrayMap;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;
-HSPLandroid/util/ArrayMap;->putAll(Ljava/util/Map;)V
-HSPLandroid/util/ArrayMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
-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
-HSPLandroid/util/ArrayMap;->valueAt(I)Ljava/lang/Object;
-HSPLandroid/util/ArrayMap;->values()Ljava/util/Collection;
-HSPLandroid/util/ArraySet$1;-><init>(Landroid/util/ArraySet;)V
-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+]Ljava/lang/Object;Ljava/lang/String;,Landroid/accounts/Account;,Landroid/window/SurfaceSyncGroup$2;,Landroid/net/UidRange;
-HSPLandroid/util/ArraySet;->addAll(Landroid/util/ArraySet;)V
-HSPLandroid/util/ArraySet;->addAll(Ljava/util/Collection;)Z
-HSPLandroid/util/ArraySet;->allocArrays(I)V
-HSPLandroid/util/ArraySet;->append(Ljava/lang/Object;)V+]Ljava/lang/Object;Lcom/android/org/conscrypt/OpenSSLRSAPublicKey;,Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;
-HSPLandroid/util/ArraySet;->binarySearch([II)I
-HSPLandroid/util/ArraySet;->clear()V
-HSPLandroid/util/ArraySet;->contains(Ljava/lang/Object;)Z
-HSPLandroid/util/ArraySet;->ensureCapacity(I)V
-HSPLandroid/util/ArraySet;->equals(Ljava/lang/Object;)Z
-HSPLandroid/util/ArraySet;->forEach(Ljava/util/function/Consumer;)V
-HSPLandroid/util/ArraySet;->freeArrays([I[Ljava/lang/Object;I)V
-HSPLandroid/util/ArraySet;->getCollection()Landroid/util/MapCollections;
-HSPLandroid/util/ArraySet;->hashCode()I
-HSPLandroid/util/ArraySet;->indexOf(Ljava/lang/Object;)I
-HSPLandroid/util/ArraySet;->indexOf(Ljava/lang/Object;I)I
-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
-HSPLandroid/util/ArraySet;->removeAll(Ljava/util/Collection;)Z
-HSPLandroid/util/ArraySet;->removeAt(I)Ljava/lang/Object;
-HSPLandroid/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;
-HSPLandroid/util/ArraySet;->valueAtUnchecked(I)Ljava/lang/Object;
-HSPLandroid/util/AtomicFile;-><init>(Ljava/io/File;)V
-HSPLandroid/util/AtomicFile;-><init>(Ljava/io/File;Landroid/util/SystemConfigFileCommitEventLogger;)V
-HSPLandroid/util/AtomicFile;-><init>(Ljava/io/File;Ljava/lang/String;)V
-HSPLandroid/util/AtomicFile;->finishWrite(Ljava/io/FileOutputStream;)V
-HSPLandroid/util/AtomicFile;->openRead()Ljava/io/FileInputStream;
-HSPLandroid/util/AtomicFile;->rename(Ljava/io/File;Ljava/io/File;)V
-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
-HSPLandroid/util/Base64;->decode(Ljava/lang/String;I)[B
-HSPLandroid/util/Base64;->decode([BI)[B
-HSPLandroid/util/Base64;->decode([BIII)[B+]Landroid/util/Base64$Decoder;Landroid/util/Base64$Decoder;
-HSPLandroid/util/Base64;->encode([BI)[B
-HSPLandroid/util/Base64;->encode([BIII)[B
-HSPLandroid/util/Base64;->encodeToString([BI)Ljava/lang/String;
-HSPLandroid/util/Base64;->encodeToString([BIII)Ljava/lang/String;
-HSPLandroid/util/CloseGuard;-><init>()V
-HSPLandroid/util/CloseGuard;->close()V
-HSPLandroid/util/CloseGuard;->open(Ljava/lang/String;)V
-HSPLandroid/util/ContainerHelpers;->binarySearch([III)I
-HSPLandroid/util/ContainerHelpers;->binarySearch([JIJ)I
-HSPLandroid/util/DebugUtils;->constNameWithoutPrefix(Ljava/lang/String;Ljava/lang/reflect/Field;)Ljava/lang/String;
-HSPLandroid/util/DebugUtils;->flagsToString(Ljava/lang/Class;Ljava/lang/String;J)Ljava/lang/String;
-HSPLandroid/util/DebugUtils;->getFieldValue(Ljava/lang/reflect/Field;)J
-HSPLandroid/util/DisplayMetrics;-><init>()V
-HSPLandroid/util/DisplayMetrics;->setTo(Landroid/util/DisplayMetrics;)V
-HSPLandroid/util/DisplayMetrics;->setToDefaults()V
-HSPLandroid/util/DisplayUtils;->getDisplayUniqueIdConfigIndex(Landroid/content/res/Resources;Ljava/lang/String;)I
-HSPLandroid/util/EventLog$Event;-><init>([B)V
-HSPLandroid/util/EventLog$Event;->decodeObject()Ljava/lang/Object;+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;
-HSPLandroid/util/EventLog$Event;->getData()Ljava/lang/Object;
-HSPLandroid/util/EventLog$Event;->getHeaderSize()I
-HSPLandroid/util/EventLog$Event;->getUid()I
-HSPLandroid/util/EventLog;->getTagCode(Ljava/lang/String;)I
-HSPLandroid/util/EventLog;->readTagsFile()V
-HSPLandroid/util/ExceptionUtils;->appendCause(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
-HSPLandroid/util/ExceptionUtils;->getRootCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
-HSPLandroid/util/FastImmutableArraySet$FastIterator;->hasNext()Z
-HSPLandroid/util/FastImmutableArraySet$FastIterator;->next()Ljava/lang/Object;
-HSPLandroid/util/FastImmutableArraySet;->iterator()Ljava/util/Iterator;
-HSPLandroid/util/FeatureFlagUtils;->getAllFeatureFlags()Ljava/util/Map;
-HSPLandroid/util/FeatureFlagUtils;->getSystemPropertyPrefix(Ljava/lang/String;)Ljava/lang/String;
-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/IndentingPrintWriter;-><init>(Ljava/io/Writer;Ljava/lang/String;I)V
-HSPLandroid/util/IndentingPrintWriter;-><init>(Ljava/io/Writer;Ljava/lang/String;Ljava/lang/String;I)V
-HSPLandroid/util/IndentingPrintWriter;->decreaseIndent()Landroid/util/IndentingPrintWriter;
-HSPLandroid/util/IndentingPrintWriter;->increaseIndent()Landroid/util/IndentingPrintWriter;
-HSPLandroid/util/IndentingPrintWriter;->maybeWriteIndent()V
-HSPLandroid/util/IndentingPrintWriter;->print(Ljava/lang/String;Ljava/lang/Object;)Landroid/util/IndentingPrintWriter;
-HSPLandroid/util/IndentingPrintWriter;->println()V
-HSPLandroid/util/IndentingPrintWriter;->write(I)V
-HSPLandroid/util/IndentingPrintWriter;->write(Ljava/lang/String;II)V
-HSPLandroid/util/IndentingPrintWriter;->write([CII)V
-HSPLandroid/util/IntArray;-><init>()V
-HSPLandroid/util/IntArray;-><init>(I)V
-HSPLandroid/util/IntArray;->add(I)V
-HSPLandroid/util/IntArray;->add(II)V
-HSPLandroid/util/IntArray;->addAll(Landroid/util/IntArray;)V
-HSPLandroid/util/IntArray;->binarySearch(I)I
-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
-HSPLandroid/util/IntProperty;-><init>(Ljava/lang/String;)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;->nextLiteral(Z)Ljava/lang/String;
-HSPLandroid/util/JsonReader;->nextName()Ljava/lang/String;
-HSPLandroid/util/JsonReader;->nextNonWhitespace()I
-HSPLandroid/util/JsonReader;->nextString()Ljava/lang/String;
-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;
-HSPLandroid/util/JsonReader;->peekStack()Landroid/util/JsonScope;
-HSPLandroid/util/JsonReader;->pop()Landroid/util/JsonScope;
-HSPLandroid/util/JsonReader;->push(Landroid/util/JsonScope;)V
-HSPLandroid/util/JsonReader;->readEscapeCharacter()C
-HSPLandroid/util/JsonReader;->readLiteral()Landroid/util/JsonToken;
-HSPLandroid/util/JsonReader;->replaceTop(Landroid/util/JsonScope;)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;
-HSPLandroid/util/JsonWriter;->newline()V
-HSPLandroid/util/JsonWriter;->open(Landroid/util/JsonScope;Ljava/lang/String;)Landroid/util/JsonWriter;
-HSPLandroid/util/JsonWriter;->peek()Landroid/util/JsonScope;+]Ljava/util/List;Ljava/util/ArrayList;
-HSPLandroid/util/JsonWriter;->replaceTop(Landroid/util/JsonScope;)V+]Ljava/util/List;Ljava/util/ArrayList;
-HSPLandroid/util/JsonWriter;->string(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/Writer;Ljava/io/BufferedWriter;
-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;->getValue()I
-HSPLandroid/util/KeyValueListParser;-><init>(C)V
-HSPLandroid/util/KeyValueListParser;->getBoolean(Ljava/lang/String;Z)Z
-HSPLandroid/util/KeyValueListParser;->getInt(Ljava/lang/String;I)I
-HSPLandroid/util/KeyValueListParser;->getLong(Ljava/lang/String;J)J
-HSPLandroid/util/KeyValueListParser;->setString(Ljava/lang/String;)V
-HSPLandroid/util/LocalLog;-><init>(I)V
-HSPLandroid/util/LocalLog;-><init>(IZ)V
-HSPLandroid/util/LocalLog;->append(Ljava/lang/String;)V
-HSPLandroid/util/LocalLog;->log(Ljava/lang/String;)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
-HSPLandroid/util/Log$ImmediateLogWriter;->getWritten()I
-HSPLandroid/util/Log$ImmediateLogWriter;->write([CII)V
-HSPLandroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
-HSPLandroid/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;
-HSPLandroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
-HSPLandroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
-HSPLandroid/util/Log;->logToRadioBuffer(ILjava/lang/String;Ljava/lang/String;)I
-HSPLandroid/util/Log;->println(ILjava/lang/String;Ljava/lang/String;)I
-HSPLandroid/util/Log;->printlns(IILjava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
-HSPLandroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
-HSPLandroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)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
-HSPLandroid/util/Log;->wtf(ILjava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;ZZ)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
-HSPLandroid/util/LongArray;->ensureCapacity(I)V
-HSPLandroid/util/LongArray;->get(I)J
-HSPLandroid/util/LongArray;->indexOf(J)I
-HSPLandroid/util/LongArray;->size()I
-HSPLandroid/util/LongArray;->toArray()[J
-HSPLandroid/util/LongSparseArray;-><init>()V
-HSPLandroid/util/LongSparseArray;-><init>(I)V
-HSPLandroid/util/LongSparseArray;->append(JLjava/lang/Object;)V
-HSPLandroid/util/LongSparseArray;->clear()V
-HSPLandroid/util/LongSparseArray;->delete(J)V
-HSPLandroid/util/LongSparseArray;->gc()V
-HSPLandroid/util/LongSparseArray;->get(J)Ljava/lang/Object;+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;
-HSPLandroid/util/LongSparseArray;->get(JLjava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/util/LongSparseArray;->indexOfKey(J)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
-HSPLandroid/util/LongSparseArray;->size()I
-HSPLandroid/util/LongSparseArray;->valueAt(I)Ljava/lang/Object;
-HSPLandroid/util/LongSparseLongArray;-><init>()V
-HSPLandroid/util/LongSparseLongArray;-><init>(I)V
-HSPLandroid/util/LongSparseLongArray;->append(JJ)V
-HSPLandroid/util/LongSparseLongArray;->clear()V
-HSPLandroid/util/LongSparseLongArray;->clone()Landroid/util/LongSparseLongArray;
-HSPLandroid/util/LongSparseLongArray;->get(JJ)J
-HSPLandroid/util/LongSparseLongArray;->indexOfKey(J)I
-HSPLandroid/util/LongSparseLongArray;->put(JJ)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;+]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap;]Landroid/util/LruCache;missing_types
-HSPLandroid/util/LruCache;->hitCount()I
-HSPLandroid/util/LruCache;->maxSize()I
-HSPLandroid/util/LruCache;->missCount()I
-HSPLandroid/util/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap;]Landroid/util/LruCache;Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;,Landroid/util/LruCache;
-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+]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap;]Landroid/util/LruCache;Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
-HSPLandroid/util/MapCollections$ArrayIterator;-><init>(Landroid/util/MapCollections;I)V+]Landroid/util/MapCollections;Landroid/util/ArraySet$1;,Landroid/util/ArrayMap$1;
-HSPLandroid/util/MapCollections$ArrayIterator;->hasNext()Z
-HSPLandroid/util/MapCollections$ArrayIterator;->next()Ljava/lang/Object;+]Landroid/util/MapCollections$ArrayIterator;Landroid/util/MapCollections$ArrayIterator;]Landroid/util/MapCollections;Landroid/util/ArraySet$1;,Landroid/util/ArrayMap$1;
-HSPLandroid/util/MapCollections$ArrayIterator;->remove()V
-HSPLandroid/util/MapCollections$EntrySet;-><init>(Landroid/util/MapCollections;)V
-HSPLandroid/util/MapCollections$EntrySet;->iterator()Ljava/util/Iterator;
-HSPLandroid/util/MapCollections$EntrySet;->size()I
-HSPLandroid/util/MapCollections$KeySet;-><init>(Landroid/util/MapCollections;)V
-HSPLandroid/util/MapCollections$KeySet;->contains(Ljava/lang/Object;)Z
-HSPLandroid/util/MapCollections$KeySet;->containsAll(Ljava/util/Collection;)Z
-HSPLandroid/util/MapCollections$KeySet;->iterator()Ljava/util/Iterator;
-HSPLandroid/util/MapCollections$KeySet;->size()I
-HSPLandroid/util/MapCollections$KeySet;->toArray()[Ljava/lang/Object;
-HSPLandroid/util/MapCollections$KeySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
-HSPLandroid/util/MapCollections$MapIterator;-><init>(Landroid/util/MapCollections;)V
-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;->next()Ljava/util/Map$Entry;
-HSPLandroid/util/MapCollections$ValuesCollection;->iterator()Ljava/util/Iterator;
-HSPLandroid/util/MapCollections$ValuesCollection;->size()I
-HSPLandroid/util/MapCollections$ValuesCollection;->toArray()[Ljava/lang/Object;
-HSPLandroid/util/MapCollections;-><init>()V
-HSPLandroid/util/MapCollections;->getEntrySet()Ljava/util/Set;
-HSPLandroid/util/MapCollections;->getKeySet()Ljava/util/Set;
-HSPLandroid/util/MapCollections;->getValues()Ljava/util/Collection;
-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;
-HSPLandroid/util/MathUtils;->addOrThrow(II)I
-HSPLandroid/util/MathUtils;->constrain(FFF)F
-HSPLandroid/util/MathUtils;->constrain(III)I
-HSPLandroid/util/MathUtils;->constrainedMap(FFFFF)F
-HSPLandroid/util/MathUtils;->lerp(FFF)F
-HSPLandroid/util/MathUtils;->lerpInv(FFF)F
-HSPLandroid/util/MathUtils;->lerpInvSat(FFF)F
-HSPLandroid/util/MathUtils;->saturate(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>(Landroid/os/Parcel;)V
-HSPLandroid/util/MemoryIntArray;-><init>(Landroid/os/Parcel;Landroid/util/MemoryIntArray-IA;)V
-HSPLandroid/util/MemoryIntArray;->close()V
-HSPLandroid/util/MemoryIntArray;->enforceNotClosed()V
-HSPLandroid/util/MemoryIntArray;->enforceValidIndex(I)V
-HSPLandroid/util/MemoryIntArray;->finalize()V
-HSPLandroid/util/MemoryIntArray;->get(I)I
-HSPLandroid/util/MemoryIntArray;->isClosed()Z
-HSPLandroid/util/MemoryIntArray;->size()I
-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
-HSPLandroid/util/MergedConfiguration;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/util/MergedConfiguration;-><init>(Landroid/util/MergedConfiguration;)V
-HSPLandroid/util/MergedConfiguration;->equals(Ljava/lang/Object;)Z
-HSPLandroid/util/MergedConfiguration;->getGlobalConfiguration()Landroid/content/res/Configuration;
-HSPLandroid/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
-HSPLandroid/util/MergedConfiguration;->updateMergedConfig()V
-HSPLandroid/util/MutableBoolean;-><init>(Z)V
-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
-HSPLandroid/util/Pair;->hashCode()I
-HSPLandroid/util/Pair;->toString()Ljava/lang/String;
-HSPLandroid/util/PathParser$PathData;-><init>(Landroid/util/PathParser$PathData;)V
-HSPLandroid/util/PathParser$PathData;-><init>(Ljava/lang/String;)V
-HSPLandroid/util/PathParser$PathData;->finalize()V
-HSPLandroid/util/PathParser$PathData;->getNativePtr()J
-HSPLandroid/util/PathParser;->-$$Nest$smnCreateEmptyPathData()J
-HSPLandroid/util/PathParser;->-$$Nest$smnCreatePathData(J)J
-HSPLandroid/util/PathParser;->-$$Nest$smnCreatePathDataFromString(Ljava/lang/String;I)J
-HSPLandroid/util/PathParser;->-$$Nest$smnFinalize(J)V
-HSPLandroid/util/PathParser;->createPathFromPathData(Ljava/lang/String;)Landroid/graphics/Path;
-HSPLandroid/util/Pools$SimplePool;-><init>(I)V
-HSPLandroid/util/Pools$SimplePool;->acquire()Ljava/lang/Object;
-HSPLandroid/util/Pools$SimplePool;->isInPool(Ljava/lang/Object;)Z
-HSPLandroid/util/Pools$SimplePool;->release(Ljava/lang/Object;)Z
-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
-HSPLandroid/util/PrefixPrinter;->println(Ljava/lang/String;)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
-HSPLandroid/util/Range;->clamp(Ljava/lang/Comparable;)Ljava/lang/Comparable;
-HSPLandroid/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;->equals(Ljava/lang/Object;)Z
-HSPLandroid/util/Range;->extend(Landroid/util/Range;)Landroid/util/Range;
-HSPLandroid/util/Range;->getLower()Ljava/lang/Comparable;
-HSPLandroid/util/Range;->getUpper()Ljava/lang/Comparable;
-HSPLandroid/util/Range;->hashCode()I
-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/Rational;-><init>(II)V
-HSPLandroid/util/Rational;->compareTo(Landroid/util/Rational;)I
-HSPLandroid/util/Rational;->compareTo(Ljava/lang/Object;)I
-HSPLandroid/util/Singleton;-><init>()V
-HSPLandroid/util/Singleton;->get()Ljava/lang/Object;
-HSPLandroid/util/Size;-><init>(II)V
-HSPLandroid/util/Size;->equals(Ljava/lang/Object;)Z
-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/Size;->toString()Ljava/lang/String;
-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;->i(Ljava/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/SparseArray;-><init>()V
-HSPLandroid/util/SparseArray;-><init>(I)V
-HSPLandroid/util/SparseArray;->append(ILjava/lang/Object;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;
-HSPLandroid/util/SparseArray;->clear()V
-HSPLandroid/util/SparseArray;->clone()Landroid/util/SparseArray;
-HSPLandroid/util/SparseArray;->contains(I)Z
-HSPLandroid/util/SparseArray;->contentEquals(Landroid/util/SparseArray;)Z
-HSPLandroid/util/SparseArray;->delete(I)V
-HSPLandroid/util/SparseArray;->gc()V
-HSPLandroid/util/SparseArray;->get(I)Ljava/lang/Object;+]Landroid/util/SparseArray;missing_types
-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/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/util/SparseArrayMap;->get(ILjava/lang/Object;)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
-HSPLandroid/util/SparseBooleanArray;->clone()Landroid/util/SparseBooleanArray;
-HSPLandroid/util/SparseBooleanArray;->delete(I)V
-HSPLandroid/util/SparseBooleanArray;->get(I)Z
-HSPLandroid/util/SparseBooleanArray;->get(IZ)Z
-HSPLandroid/util/SparseBooleanArray;->indexOfKey(I)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;->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;
-HSPLandroid/util/SparseIntArray;->copyKeys()[I
-HSPLandroid/util/SparseIntArray;->delete(I)V
-HSPLandroid/util/SparseIntArray;->get(I)I+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;
-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;->size()I
-HSPLandroid/util/SparseIntArray;->valueAt(I)I
-HSPLandroid/util/SparseLongArray;-><init>()V
-HSPLandroid/util/SparseLongArray;-><init>(I)V
-HSPLandroid/util/SparseLongArray;->clear()V
-HSPLandroid/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
-HSPLandroid/util/SparseLongArray;->removeAt(I)V
-HSPLandroid/util/SparseLongArray;->size()I
-HSPLandroid/util/SparseLongArray;->valueAt(I)J
-HSPLandroid/util/SparseSetArray;-><init>()V
-HSPLandroid/util/SparseSetArray;->add(ILjava/lang/Object;)Z
-HSPLandroid/util/SparseSetArray;->get(I)Landroid/util/ArraySet;
-HSPLandroid/util/Spline$MonotoneCubicSpline;-><init>([F[F)V
-HSPLandroid/util/Spline$MonotoneCubicSpline;->interpolate(F)F
-HSPLandroid/util/StateSet;->get(I)[I
-HSPLandroid/util/StateSet;->stateSetMatches([I[I)Z
-HSPLandroid/util/StateSet;->trimStateSet([II)[I
-HSPLandroid/util/SystemConfigFileCommitEventLogger;-><init>(Ljava/lang/String;)V
-HSPLandroid/util/TimeUtils;->formatDuration(J)Ljava/lang/String;
-HSPLandroid/util/TimeUtils;->formatDuration(JLjava/lang/StringBuilder;)V
-HSPLandroid/util/TimeUtils;->formatDurationLocked(JI)I
-HSPLandroid/util/TimeUtils;->printFieldLocked([CICIZI)I
-HSPLandroid/util/TimingLogger;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/util/TimingLogger;->addSplit(Ljava/lang/String;)V
-HSPLandroid/util/TimingLogger;->dumpToLog()V
-HSPLandroid/util/TimingLogger;->reset()V
-HSPLandroid/util/TimingLogger;->reset(Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/util/TimingsTraceLog;-><init>(Ljava/lang/String;J)V
-HSPLandroid/util/TimingsTraceLog;-><init>(Ljava/lang/String;JI)V
-HSPLandroid/util/TimingsTraceLog;->assertSameThread()V
-HSPLandroid/util/TimingsTraceLog;->logDuration(Ljava/lang/String;J)V
-HSPLandroid/util/TimingsTraceLog;->traceBegin(Ljava/lang/String;)V
-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;->getComplexUnit()I
-HSPLandroid/util/TypedValue;->getDimension(Landroid/util/DisplayMetrics;)F
-HSPLandroid/util/TypedValue;->getFloat()F
-HSPLandroid/util/TypedValue;->getFraction(FF)F
-HSPLandroid/util/TypedValue;->toString()Ljava/lang/String;
-HSPLandroid/util/UtilConfig;->setThrowExceptionForUpperArrayOutOfBounds(Z)V
-HSPLandroid/util/Xml;->asAttributeSet(Lorg/xmlpull/v1/XmlPullParser;)Landroid/util/AttributeSet;
-HSPLandroid/util/Xml;->newFastPullParser()Lcom/android/modules/utils/TypedXmlPullParser;
-HSPLandroid/util/Xml;->newFastSerializer()Lcom/android/modules/utils/TypedXmlSerializer;
-HSPLandroid/util/Xml;->newPullParser()Lorg/xmlpull/v1/XmlPullParser;
-HSPLandroid/util/Xml;->newSerializer()Lorg/xmlpull/v1/XmlSerializer;
-HSPLandroid/util/proto/EncodedBuffer;-><init>(I)V
-HSPLandroid/util/proto/EncodedBuffer;->editRawFixed32(II)V
-HSPLandroid/util/proto/EncodedBuffer;->getBytes(I)[B
-HSPLandroid/util/proto/EncodedBuffer;->getRawFixed32At(I)I
-HSPLandroid/util/proto/EncodedBuffer;->getRawVarint32Size(I)I
-HSPLandroid/util/proto/EncodedBuffer;->getReadPos()I
-HSPLandroid/util/proto/EncodedBuffer;->getReadableSize()I
-HSPLandroid/util/proto/EncodedBuffer;->getWritePos()I
-HSPLandroid/util/proto/EncodedBuffer;->readRawByte()B
-HSPLandroid/util/proto/EncodedBuffer;->readRawFixed32()I
-HSPLandroid/util/proto/EncodedBuffer;->readRawUnsigned()J
-HSPLandroid/util/proto/EncodedBuffer;->rewindWriteTo(I)V
-HSPLandroid/util/proto/EncodedBuffer;->skipRead(I)V
-HSPLandroid/util/proto/EncodedBuffer;->startEditing()V
-HSPLandroid/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
-HSPLandroid/util/proto/EncodedBuffer;->writeRawVarint32(I)V
-HSPLandroid/util/proto/EncodedBuffer;->writeRawVarint64(J)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
-HSPLandroid/util/proto/ProtoInputStream;->getFieldNumber()I
-HSPLandroid/util/proto/ProtoInputStream;->getOffset()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;->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
-HSPLandroid/util/proto/ProtoOutputStream;->assertNotCompacted()V
-HSPLandroid/util/proto/ProtoOutputStream;->compactIfNecessary()V
-HSPLandroid/util/proto/ProtoOutputStream;->compactSizes(I)V
-HSPLandroid/util/proto/ProtoOutputStream;->editEncodedSize(I)I
-HSPLandroid/util/proto/ProtoOutputStream;->end(J)V
-HSPLandroid/util/proto/ProtoOutputStream;->endObjectImpl(JZ)V
-HSPLandroid/util/proto/ProtoOutputStream;->flush()V
-HSPLandroid/util/proto/ProtoOutputStream;->getTagSize(I)I
-HSPLandroid/util/proto/ProtoOutputStream;->readRawTag()I
-HSPLandroid/util/proto/ProtoOutputStream;->start(J)J
-HSPLandroid/util/proto/ProtoOutputStream;->startObjectImpl(IZ)J
-HSPLandroid/util/proto/ProtoOutputStream;->write(JI)V
-HSPLandroid/util/proto/ProtoOutputStream;->write(JJ)V
-HSPLandroid/util/proto/ProtoOutputStream;->write(JLjava/lang/String;)V
-HSPLandroid/util/proto/ProtoOutputStream;->writeInt32Impl(II)V
-HSPLandroid/util/proto/ProtoOutputStream;->writeKnownLengthHeader(II)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
-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;-><init>(Landroid/os/Parcelable;)V
-HSPLandroid/view/AbsSavedState;->getSuperState()Landroid/os/Parcelable;
-HSPLandroid/view/AbsSavedState;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/Choreographer$1;->initialValue()Landroid/view/Choreographer;
-HSPLandroid/view/Choreographer$1;->initialValue()Ljava/lang/Object;
-HSPLandroid/view/Choreographer$2;->initialValue()Landroid/view/Choreographer;
-HSPLandroid/view/Choreographer$2;->initialValue()Ljava/lang/Object;
-HSPLandroid/view/Choreographer$CallbackQueue;-><init>(Landroid/view/Choreographer;)V
-HSPLandroid/view/Choreographer$CallbackQueue;-><init>(Landroid/view/Choreographer;Landroid/view/Choreographer$CallbackQueue-IA;)V
-HSPLandroid/view/Choreographer$CallbackQueue;->addCallbackLocked(JLjava/lang/Object;Ljava/lang/Object;)V
-HSPLandroid/view/Choreographer$CallbackQueue;->extractDueCallbacksLocked(J)Landroid/view/Choreographer$CallbackRecord;
-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$CallbackRecord-IA;)V
-HSPLandroid/view/Choreographer$CallbackRecord;->run(J)V+]Landroid/view/Choreographer$FrameCallback;missing_types]Ljava/lang/Runnable;missing_types
-HSPLandroid/view/Choreographer$CallbackRecord;->run(Landroid/view/Choreographer$FrameData;)V+]Landroid/view/Choreographer$FrameData;Landroid/view/Choreographer$FrameData;]Landroid/view/Choreographer$CallbackRecord;Landroid/view/Choreographer$CallbackRecord;
-HSPLandroid/view/Choreographer$FrameData;->-$$Nest$fgetmFrameTimeNanos(Landroid/view/Choreographer$FrameData;)J
-HSPLandroid/view/Choreographer$FrameData;-><init>()V
-HSPLandroid/view/Choreographer$FrameData;->allocateFrameTimelines(I)V
-HSPLandroid/view/Choreographer$FrameData;->checkInCallback()V
-HSPLandroid/view/Choreographer$FrameData;->getFrameTimeNanos()J
-HSPLandroid/view/Choreographer$FrameData;->getFrameTimelines()[Landroid/view/Choreographer$FrameTimeline;
-HSPLandroid/view/Choreographer$FrameData;->getPreferredFrameTimeline()Landroid/view/Choreographer$FrameTimeline;
-HSPLandroid/view/Choreographer$FrameData;->setInCallback(Z)V+]Landroid/view/Choreographer$FrameTimeline;Landroid/view/Choreographer$FrameTimeline;
-HSPLandroid/view/Choreographer$FrameData;->update(JI)V
-HSPLandroid/view/Choreographer$FrameData;->update(JLandroid/view/DisplayEventReceiver$VsyncEventData;)Landroid/view/Choreographer$FrameTimeline;+]Landroid/view/Choreographer$FrameTimeline;Landroid/view/Choreographer$FrameTimeline;
-HSPLandroid/view/Choreographer$FrameData;->update(JLandroid/view/DisplayEventReceiver;J)Landroid/view/Choreographer$FrameTimeline;
-HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;-><init>(Landroid/view/Choreographer;Landroid/os/Looper;IJ)V
-HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;->onVsync(JJILandroid/view/DisplayEventReceiver$VsyncEventData;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/Message;Landroid/os/Message;]Landroid/view/Choreographer$FrameHandler;Landroid/view/Choreographer$FrameHandler;]Landroid/view/DisplayEventReceiver$VsyncEventData;Landroid/view/DisplayEventReceiver$VsyncEventData;
-HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;->run()V+]Landroid/view/Choreographer;Landroid/view/Choreographer;
-HSPLandroid/view/Choreographer$FrameHandler;-><init>(Landroid/view/Choreographer;Landroid/os/Looper;)V
-HSPLandroid/view/Choreographer$FrameHandler;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/view/Choreographer$FrameTimeline;->-$$Nest$fgetmDeadlineNanos(Landroid/view/Choreographer$FrameTimeline;)J
-HSPLandroid/view/Choreographer$FrameTimeline;->-$$Nest$fgetmExpectedPresentationTimeNanos(Landroid/view/Choreographer$FrameTimeline;)J
-HSPLandroid/view/Choreographer$FrameTimeline;->-$$Nest$fgetmVsyncId(Landroid/view/Choreographer$FrameTimeline;)J
-HSPLandroid/view/Choreographer$FrameTimeline;-><init>()V
-HSPLandroid/view/Choreographer$FrameTimeline;->getDeadlineNanos()J
-HSPLandroid/view/Choreographer$FrameTimeline;->setInCallback(Z)V
-HSPLandroid/view/Choreographer$FrameTimeline;->update(JJJ)V
-HSPLandroid/view/Choreographer;->-$$Nest$fgetmHandler(Landroid/view/Choreographer;)Landroid/view/Choreographer$FrameHandler;
-HSPLandroid/view/Choreographer;->-$$Nest$mobtainCallbackLocked(Landroid/view/Choreographer;JLjava/lang/Object;Ljava/lang/Object;)Landroid/view/Choreographer$CallbackRecord;
-HSPLandroid/view/Choreographer;->-$$Nest$sfgetVSYNC_CALLBACK_TOKEN()Ljava/lang/Object;
-HSPLandroid/view/Choreographer;->-$$Nest$sfputmMainInstance(Landroid/view/Choreographer;)V
-HSPLandroid/view/Choreographer;-><init>(Landroid/os/Looper;I)V
-HSPLandroid/view/Choreographer;-><init>(Landroid/os/Looper;IJ)V
-HSPLandroid/view/Choreographer;-><init>(Landroid/os/Looper;ILandroid/view/Choreographer-IA;)V
-HSPLandroid/view/Choreographer;->doCallbacks(IJ)V+]Landroid/view/Choreographer$CallbackQueue;Landroid/view/Choreographer$CallbackQueue;]Landroid/view/Choreographer$CallbackRecord;Landroid/view/Choreographer$CallbackRecord;]Landroid/view/Choreographer$FrameData;Landroid/view/Choreographer$FrameData;
-HSPLandroid/view/Choreographer;->doFrame(JILandroid/view/DisplayEventReceiver$VsyncEventData;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/view/Choreographer$FrameData;Landroid/view/Choreographer$FrameData;]Landroid/graphics/FrameInfo;Landroid/graphics/FrameInfo;]Landroid/view/Choreographer;Landroid/view/Choreographer;]Landroid/view/DisplayEventReceiver$VsyncEventData;Landroid/view/DisplayEventReceiver$VsyncEventData;
-HSPLandroid/view/Choreographer;->doScheduleCallback(I)V
-HSPLandroid/view/Choreographer;->doScheduleVsync()V
-HSPLandroid/view/Choreographer;->getFrameIntervalNanos()J
-HSPLandroid/view/Choreographer;->getFrameTime()J+]Landroid/view/Choreographer;Landroid/view/Choreographer;
-HSPLandroid/view/Choreographer;->getFrameTimeNanos()J
-HSPLandroid/view/Choreographer;->getInstance()Landroid/view/Choreographer;
-HSPLandroid/view/Choreographer;->getMainThreadInstance()Landroid/view/Choreographer;
-HSPLandroid/view/Choreographer;->getRefreshRate()F
-HSPLandroid/view/Choreographer;->getSfInstance()Landroid/view/Choreographer;
-HSPLandroid/view/Choreographer;->getVsyncId()J
-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+]Landroid/view/Choreographer;Landroid/view/Choreographer;
-HSPLandroid/view/Choreographer;->postCallbackDelayed(ILjava/lang/Runnable;Ljava/lang/Object;J)V
-HSPLandroid/view/Choreographer;->postCallbackDelayedInternal(ILjava/lang/Object;Ljava/lang/Object;J)V+]Landroid/view/Choreographer$CallbackQueue;Landroid/view/Choreographer$CallbackQueue;]Landroid/os/Message;Landroid/os/Message;]Landroid/view/Choreographer$FrameHandler;Landroid/view/Choreographer$FrameHandler;
-HSPLandroid/view/Choreographer;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V+]Landroid/view/Choreographer;Landroid/view/Choreographer;
-HSPLandroid/view/Choreographer;->postFrameCallbackDelayed(Landroid/view/Choreographer$FrameCallback;J)V
-HSPLandroid/view/Choreographer;->recycleCallbackLocked(Landroid/view/Choreographer$CallbackRecord;)V
-HSPLandroid/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+]Landroid/view/Choreographer$FrameDisplayEventReceiver;Landroid/view/Choreographer$FrameDisplayEventReceiver;
-HSPLandroid/view/Choreographer;->setFPSDivisor(I)V
-HSPLandroid/view/ContextThemeWrapper;-><init>()V
-HSPLandroid/view/ContextThemeWrapper;-><init>(Landroid/content/Context;I)V
-HSPLandroid/view/ContextThemeWrapper;-><init>(Landroid/content/Context;Landroid/content/res/Resources$Theme;)V
-HSPLandroid/view/ContextThemeWrapper;->attachBaseContext(Landroid/content/Context;)V
-HSPLandroid/view/ContextThemeWrapper;->getAssets()Landroid/content/res/AssetManager;
-HSPLandroid/view/ContextThemeWrapper;->getOverrideConfiguration()Landroid/content/res/Configuration;
-HSPLandroid/view/ContextThemeWrapper;->getResources()Landroid/content/res/Resources;
-HSPLandroid/view/ContextThemeWrapper;->getResourcesInternal()Landroid/content/res/Resources;
-HSPLandroid/view/ContextThemeWrapper;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
-HSPLandroid/view/ContextThemeWrapper;->getTheme()Landroid/content/res/Resources$Theme;+]Landroid/view/ContextThemeWrapper;Landroid/view/ContextThemeWrapper;
-HSPLandroid/view/ContextThemeWrapper;->initializeTheme()V
-HSPLandroid/view/ContextThemeWrapper;->onApplyThemeResource(Landroid/content/res/Resources$Theme;IZ)V
-HSPLandroid/view/ContextThemeWrapper;->setTheme(I)V
-HSPLandroid/view/CrossWindowBlurListeners;-><clinit>()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$HdrCapabilities-IA;)V
-HSPLandroid/view/Display$HdrCapabilities;->equals(Ljava/lang/Object;)Z
-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>(IIIFF[F[I)V
-HSPLandroid/view/Display$Mode;-><init>(IIIF[F[I)V
-HSPLandroid/view/Display$Mode;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/Display$Mode;-><init>(Landroid/os/Parcel;Landroid/view/Display$Mode-IA;)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;-><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
-HSPLandroid/view/Display;->getAppVsyncOffsetNanos()J
-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;->getHdrSdrRatio()F
-HSPLandroid/view/Display;->getHeight()I
-HSPLandroid/view/Display;->getInstallOrientation()I
-HSPLandroid/view/Display;->getLocalRotation()I+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
-HSPLandroid/view/Display;->getMetrics(Landroid/util/DisplayMetrics;)V
-HSPLandroid/view/Display;->getMode()Landroid/view/Display$Mode;
-HSPLandroid/view/Display;->getName()Ljava/lang/String;
-HSPLandroid/view/Display;->getPreferredWideGamutColorSpace()Landroid/graphics/ColorSpace;
-HSPLandroid/view/Display;->getPresentationDeadlineNanos()J
-HSPLandroid/view/Display;->getRealMetrics(Landroid/util/DisplayMetrics;)V
-HSPLandroid/view/Display;->getRealSize(Landroid/graphics/Point;)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;->getSupportedColorModes()[I
-HSPLandroid/view/Display;->getSupportedModes()[Landroid/view/Display$Mode;
-HSPLandroid/view/Display;->getSupportedWideColorGamut()[Landroid/graphics/ColorSpace;
-HSPLandroid/view/Display;->getWidth()I
-HSPLandroid/view/Display;->hasAccess(IIII)Z
-HSPLandroid/view/Display;->isValid()Z
-HSPLandroid/view/Display;->isWideColorGamut()Z
-HSPLandroid/view/Display;->shouldReportMaxBounds()Z
-HSPLandroid/view/Display;->stateToString(I)Ljava/lang/String;
-HSPLandroid/view/Display;->updateCachedAppSizeIfNeededLocked()V
-HSPLandroid/view/Display;->updateDisplayInfoLocked()V+]Landroid/hardware/display/DisplayManagerGlobal;Landroid/hardware/display/DisplayManagerGlobal;
-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$Physical-IA;)V
-HSPLandroid/view/DisplayAddress$Physical;->equals(Ljava/lang/Object;)Z
-HSPLandroid/view/DisplayAddress$Physical;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/DisplayAddress;-><init>()V
-HSPLandroid/view/DisplayAdjustments;-><init>()V
-HSPLandroid/view/DisplayAdjustments;-><init>(Landroid/content/res/Configuration;)V
-HSPLandroid/view/DisplayAdjustments;-><init>(Landroid/view/DisplayAdjustments;)V
-HSPLandroid/view/DisplayAdjustments;->equals(Ljava/lang/Object;)Z
-HSPLandroid/view/DisplayAdjustments;->getCompatibilityInfo()Landroid/content/res/CompatibilityInfo;
-HSPLandroid/view/DisplayAdjustments;->getConfiguration()Landroid/content/res/Configuration;
-HSPLandroid/view/DisplayAdjustments;->hashCode()I
-HSPLandroid/view/DisplayAdjustments;->setCompatibilityInfo(Landroid/content/res/CompatibilityInfo;)V
-HSPLandroid/view/DisplayAdjustments;->setConfiguration(Landroid/content/res/Configuration;)V
-HSPLandroid/view/DisplayCutout$Bounds;->-$$Nest$mgetRects(Landroid/view/DisplayCutout$Bounds;)[Landroid/graphics/Rect;
-HSPLandroid/view/DisplayCutout$Bounds;-><init>([Landroid/graphics/Rect;Z)V
-HSPLandroid/view/DisplayCutout$Bounds;-><init>([Landroid/graphics/Rect;ZLandroid/view/DisplayCutout$Bounds-IA;)V
-HSPLandroid/view/DisplayCutout$Bounds;->equals(Ljava/lang/Object;)Z
-HSPLandroid/view/DisplayCutout$Bounds;->getRects()[Landroid/graphics/Rect;
-HSPLandroid/view/DisplayCutout$Bounds;->isEmpty()Z
-HSPLandroid/view/DisplayCutout$CutoutPathParserInfo;-><init>(IIIIFLjava/lang/String;IFF)V
-HSPLandroid/view/DisplayCutout$CutoutPathParserInfo;->equals(Ljava/lang/Object;)Z
-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;
-HSPLandroid/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
-HSPLandroid/view/DisplayCutout$ParcelableWrapper;->set(Landroid/view/DisplayCutout$ParcelableWrapper;)V
-HSPLandroid/view/DisplayCutout$ParcelableWrapper;->set(Landroid/view/DisplayCutout;)V
-HSPLandroid/view/DisplayCutout$ParcelableWrapper;->writeCutoutToParcel(Landroid/view/DisplayCutout;Landroid/os/Parcel;I)V
-HSPLandroid/view/DisplayCutout$ParcelableWrapper;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/DisplayCutout;-><init>(Landroid/graphics/Rect;Landroid/graphics/Insets;Landroid/view/DisplayCutout$Bounds;Landroid/view/DisplayCutout$CutoutPathParserInfo;[I)V
-HSPLandroid/view/DisplayCutout;-><init>(Landroid/graphics/Rect;Landroid/graphics/Insets;Landroid/view/DisplayCutout$Bounds;Landroid/view/DisplayCutout$CutoutPathParserInfo;[ILandroid/view/DisplayCutout-IA;)V
-HSPLandroid/view/DisplayCutout;-><init>(Landroid/graphics/Rect;Landroid/graphics/Insets;[Landroid/graphics/Rect;Landroid/view/DisplayCutout$CutoutPathParserInfo;Z)V
-HSPLandroid/view/DisplayCutout;->atLeastZero(I)I
-HSPLandroid/view/DisplayCutout;->equals(Ljava/lang/Object;)Z
-HSPLandroid/view/DisplayCutout;->getBoundingRects()Ljava/util/List;
-HSPLandroid/view/DisplayCutout;->getBoundingRectsAll()[Landroid/graphics/Rect;
-HSPLandroid/view/DisplayCutout;->getCopyOrRef(Landroid/graphics/Rect;Z)Landroid/graphics/Rect;
-HSPLandroid/view/DisplayCutout;->getSafeInsetBottom()I
-HSPLandroid/view/DisplayCutout;->getSafeInsetLeft()I
-HSPLandroid/view/DisplayCutout;->getSafeInsetRight()I
-HSPLandroid/view/DisplayCutout;->getSafeInsetTop()I
-HSPLandroid/view/DisplayCutout;->inset(IIII)Landroid/view/DisplayCutout;
-HSPLandroid/view/DisplayCutout;->insetInsets(IIIILandroid/graphics/Rect;)Landroid/graphics/Rect;
-HSPLandroid/view/DisplayCutout;->isBoundsEmpty()Z
-HSPLandroid/view/DisplayCutout;->isEmpty()Z+]Landroid/graphics/Rect;Landroid/graphics/Rect;
-HSPLandroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;-><init>()V
-HSPLandroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;-><init>(JJJ)V
-HSPLandroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;->copyFrom(Landroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;)V
-HSPLandroid/view/DisplayEventReceiver$VsyncEventData;-><init>()V
-HSPLandroid/view/DisplayEventReceiver$VsyncEventData;-><init>([Landroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;IIJ)V
-HSPLandroid/view/DisplayEventReceiver$VsyncEventData;->copyFrom(Landroid/view/DisplayEventReceiver$VsyncEventData;)V+]Landroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;Landroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;
-HSPLandroid/view/DisplayEventReceiver$VsyncEventData;->preferredFrameTimeline()Landroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;
-HSPLandroid/view/DisplayEventReceiver;-><init>(Landroid/os/Looper;II)V
-HSPLandroid/view/DisplayEventReceiver;-><init>(Landroid/os/Looper;IIJ)V
-HSPLandroid/view/DisplayEventReceiver;->dispatchVsync(JJI)V+]Landroid/view/DisplayEventReceiver;Landroid/view/Choreographer$FrameDisplayEventReceiver;
-HSPLandroid/view/DisplayEventReceiver;->getLatestVsyncEventData()Landroid/view/DisplayEventReceiver$VsyncEventData;
-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-IA;)V
-HSPLandroid/view/DisplayInfo;->copyFrom(Landroid/view/DisplayInfo;)V
-HSPLandroid/view/DisplayInfo;->equals(Landroid/view/DisplayInfo;)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/DisplayInfo;Landroid/view/DisplayInfo;
-HSPLandroid/view/DisplayInfo;->findMode(I)Landroid/view/Display$Mode;
-HSPLandroid/view/DisplayInfo;->flagsToString(I)Ljava/lang/String;
-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;->getLogicalMetrics(Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;)V
-HSPLandroid/view/DisplayInfo;->getMaxBoundsMetrics(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+]Landroid/content/res/CompatibilityInfo;Landroid/content/res/CompatibilityInfo$1;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
-HSPLandroid/view/DisplayInfo;->getMode()Landroid/view/Display$Mode;
-HSPLandroid/view/DisplayInfo;->getRefreshRate()F
-HSPLandroid/view/DisplayInfo;->hasAccess(I)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
-HSPLandroid/view/DisplayShape$1;-><init>()V
-HSPLandroid/view/DisplayShape$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/DisplayShape;
-HSPLandroid/view/DisplayShape$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/DisplayShape;-><clinit>()V
-HSPLandroid/view/DisplayShape;-><init>(Ljava/lang/String;IIFI)V
-HSPLandroid/view/DisplayShape;-><init>(Ljava/lang/String;IIFIIIF)V
-HSPLandroid/view/DisplayShape;-><init>(Ljava/lang/String;IIFIIIFLandroid/view/DisplayShape-IA;)V
-HSPLandroid/view/DisplayShape;->equals(Ljava/lang/Object;)Z
-HSPLandroid/view/FocusFinder$1;->initialValue()Landroid/view/FocusFinder;
-HSPLandroid/view/FocusFinder$1;->initialValue()Ljava/lang/Object;
-HSPLandroid/view/FocusFinder$FocusSorter$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-HSPLandroid/view/FocusFinder$FocusSorter$$ExternalSyntheticLambda1;->compare(Ljava/lang/Object;Ljava/lang/Object;)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;
-HSPLandroid/view/FocusFinder;->findNextUserSpecifiedFocus(Landroid/view/ViewGroup;Landroid/view/View;I)Landroid/view/View;
-HSPLandroid/view/FocusFinder;->getEffectiveRoot(Landroid/view/ViewGroup;Landroid/view/View;)Landroid/view/ViewGroup;
-HSPLandroid/view/FocusFinder;->getInstance()Landroid/view/FocusFinder;
-HSPLandroid/view/FocusFinder;->isBetterCandidate(ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
-HSPLandroid/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/Handler;Landroid/view/Window$OnFrameMetricsAvailableListener;)V
-HSPLandroid/view/FrameMetricsObserver;->getRendererObserver()Landroid/graphics/HardwareRendererObserver;
-HSPLandroid/view/FrameMetricsObserver;->onFrameMetricsAvailable(I)V+]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;
-HSPLandroid/view/GestureDetector$GestureHandler;-><init>(Landroid/view/GestureDetector;)V
-HSPLandroid/view/GestureDetector$GestureHandler;-><init>(Landroid/view/GestureDetector;Landroid/os/Handler;)V
-HSPLandroid/view/GestureDetector$GestureHandler;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/view/GestureDetector$SimpleOnGestureListener;-><init>()V
-HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onDoubleTapEvent(Landroid/view/MotionEvent;)Z
-HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onDown(Landroid/view/MotionEvent;)Z
-HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onFling(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z
-HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onLongPress(Landroid/view/MotionEvent;)V
-HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onScroll(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z
-HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onShowPress(Landroid/view/MotionEvent;)V
-HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onSingleTapConfirmed(Landroid/view/MotionEvent;)Z
-HSPLandroid/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
-HSPLandroid/view/GestureDetector;->cancel()V
-HSPLandroid/view/GestureDetector;->cancelTaps()V
-HSPLandroid/view/GestureDetector;->init(Landroid/content/Context;)V
-HSPLandroid/view/GestureDetector;->isConsideredDoubleTap(Landroid/view/MotionEvent;Landroid/view/MotionEvent;Landroid/view/MotionEvent;)Z
-HSPLandroid/view/GestureDetector;->onTouchEvent(Landroid/view/MotionEvent;)Z
-HSPLandroid/view/GestureDetector;->recordGestureClassification(I)V
-HSPLandroid/view/GestureDetector;->setContextClickListener(Landroid/view/GestureDetector$OnContextClickListener;)V
-HSPLandroid/view/GestureDetector;->setIsLongpressEnabled(Z)V
-HSPLandroid/view/GestureDetector;->setOnDoubleTapListener(Landroid/view/GestureDetector$OnDoubleTapListener;)V
-HSPLandroid/view/Gravity;->apply(IIILandroid/graphics/Rect;IILandroid/graphics/Rect;)V
-HSPLandroid/view/Gravity;->apply(IIILandroid/graphics/Rect;Landroid/graphics/Rect;)V
-HSPLandroid/view/Gravity;->apply(IIILandroid/graphics/Rect;Landroid/graphics/Rect;I)V
-HSPLandroid/view/Gravity;->applyDisplay(ILandroid/graphics/Rect;Landroid/graphics/Rect;)V
-HSPLandroid/view/Gravity;->getAbsoluteGravity(II)I
-HSPLandroid/view/Gravity;->isHorizontal(I)Z
-HSPLandroid/view/Gravity;->isVertical(I)Z
-HSPLandroid/view/HandlerActionQueue$HandlerAction;-><init>(Ljava/lang/Runnable;J)V
-HSPLandroid/view/HandlerActionQueue$HandlerAction;->matches(Ljava/lang/Runnable;)Z
-HSPLandroid/view/HandlerActionQueue;-><init>()V
-HSPLandroid/view/HandlerActionQueue;->executeActions(Landroid/os/Handler;)V+]Landroid/os/Handler;Landroid/view/ViewRootImpl$ViewRootHandler;
-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
-HSPLandroid/view/HandwritingInitiator$HandwritableViewInfo;-><init>(Landroid/view/View;)V
-HSPLandroid/view/HandwritingInitiator$HandwritableViewInfo;->getView()Landroid/view/View;
-HSPLandroid/view/HandwritingInitiator$HandwritingAreaTracker;-><init>()V
-HSPLandroid/view/HandwritingInitiator$HandwritingAreaTracker;->updateHandwritingAreaForView(Landroid/view/View;)V
-HSPLandroid/view/HandwritingInitiator$State;->-$$Nest$fgetmShouldInitHandwriting(Landroid/view/HandwritingInitiator$State;)Z
-HSPLandroid/view/HandwritingInitiator$State;->-$$Nest$fgetmStylusPointerId(Landroid/view/HandwritingInitiator$State;)I
-HSPLandroid/view/HandwritingInitiator;->-$$Nest$smisViewActive(Landroid/view/View;)Z
-HSPLandroid/view/HandwritingInitiator;-><init>(Landroid/view/ViewConfiguration;Landroid/view/inputmethod/InputMethodManager;)V
-HSPLandroid/view/HandwritingInitiator;->clearConnectedView()V
-HSPLandroid/view/HandwritingInitiator;->getConnectedView()Landroid/view/View;
-HSPLandroid/view/HandwritingInitiator;->isViewActive(Landroid/view/View;)Z
-HSPLandroid/view/HandwritingInitiator;->onInputConnectionClosed(Landroid/view/View;)V
-HSPLandroid/view/HandwritingInitiator;->onInputConnectionCreated(Landroid/view/View;)V
-HSPLandroid/view/HandwritingInitiator;->onTouchEvent(Landroid/view/MotionEvent;)Z
-HSPLandroid/view/HandwritingInitiator;->updateHandwritingAreasForView(Landroid/view/View;)V
-HSPLandroid/view/HdrRenderState;->updateForFrame(J)Z
-HSPLandroid/view/IGraphicsStats$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/view/IGraphicsStats$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/view/IGraphicsStats$Stub$Proxy;->requestBufferForProcess(Ljava/lang/String;Landroid/view/IGraphicsStatsCallback;)Landroid/os/ParcelFileDescriptor;
-HSPLandroid/view/IGraphicsStats$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IGraphicsStats;
-HSPLandroid/view/IGraphicsStatsCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/view/IGraphicsStatsCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/view/IRemoteAnimationRunner$Stub;-><init>()V
-HSPLandroid/view/IRemoteAnimationRunner$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/view/ISystemGestureExclusionListener$Stub;-><init>()V
-HSPLandroid/view/IWindow$Stub;-><init>()V
-HSPLandroid/view/IWindow$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/view/IWindow$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
-HSPLandroid/view/IWindow$Stub;->getMaxTransactionId()I
-HSPLandroid/view/IWindow$Stub;->getTransactionName(I)Ljava/lang/String;
-HSPLandroid/view/IWindow$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/view/IWindowManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/view/IWindowManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/view/IWindowManager$Stub$Proxy;->getCurrentAnimatorScale()F
-HSPLandroid/view/IWindowManager$Stub$Proxy;->getWindowInsets(ILandroid/os/IBinder;Landroid/view/InsetsState;)Z
-HSPLandroid/view/IWindowManager$Stub$Proxy;->hasNavigationBar(I)Z
-HSPLandroid/view/IWindowManager$Stub$Proxy;->isInTouchMode(I)Z
-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;
-HSPLandroid/view/IWindowManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowManager;
-HSPLandroid/view/IWindowSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/view/IWindowSession$Stub$Proxy;->addToDisplayAsUser(Landroid/view/IWindow;Landroid/view/WindowManager$LayoutParams;IIIILandroid/view/InputChannel;Landroid/view/InsetsState;Landroid/view/InsetsSourceControl$Array;Landroid/graphics/Rect;[F)I
-HSPLandroid/view/IWindowSession$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/view/IWindowSession$Stub$Proxy;->finishDrawing(Landroid/view/IWindow;Landroid/view/SurfaceControl$Transaction;I)V
-HSPLandroid/view/IWindowSession$Stub$Proxy;->getWindowId(Landroid/os/IBinder;)Landroid/view/IWindowId;
-HSPLandroid/view/IWindowSession$Stub$Proxy;->onRectangleOnScreenRequested(Landroid/os/IBinder;Landroid/graphics/Rect;)V
-HSPLandroid/view/IWindowSession$Stub$Proxy;->pokeDrawLock(Landroid/os/IBinder;)V
-HSPLandroid/view/IWindowSession$Stub$Proxy;->relayout(Landroid/view/IWindow;Landroid/view/WindowManager$LayoutParams;IIIIIILandroid/window/ClientWindowFrames;Landroid/util/MergedConfiguration;Landroid/view/SurfaceControl;Landroid/view/InsetsState;Landroid/view/InsetsSourceControl$Array;Landroid/os/Bundle;)I
-HSPLandroid/view/IWindowSession$Stub$Proxy;->relayoutAsync(Landroid/view/IWindow;Landroid/view/WindowManager$LayoutParams;IIIIII)V+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/view/IWindowSession$Stub$Proxy;Landroid/view/IWindowSession$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/view/IWindowSession$Stub$Proxy;->reportSystemGestureExclusionChanged(Landroid/view/IWindow;Ljava/util/List;)V
-HSPLandroid/view/IWindowSession$Stub$Proxy;->setInsets(Landroid/view/IWindow;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;)V
-HSPLandroid/view/IWindowSession$Stub$Proxy;->setOnBackInvokedCallbackInfo(Landroid/view/IWindow;Landroid/window/OnBackInvokedCallbackInfo;)V
-HSPLandroid/view/IWindowSession$Stub$Proxy;->setWallpaperZoomOut(Landroid/os/IBinder;F)V
-HSPLandroid/view/IWindowSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowSession;
-HSPLandroid/view/IWindowSessionCallback$Stub;-><init>()V
-HSPLandroid/view/IWindowSessionCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/view/ImeFocusController;-><init>(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/ImeFocusController;->getImmDelegate()Landroid/view/ImeFocusController$InputMethodManagerDelegate;
-HSPLandroid/view/ImeFocusController;->hasImeFocus()Z
-HSPLandroid/view/ImeFocusController;->isInLocalFocusMode(Landroid/view/WindowManager$LayoutParams;)Z
-HSPLandroid/view/ImeFocusController;->onPostWindowFocus(Landroid/view/View;ZLandroid/view/WindowManager$LayoutParams;)V
-HSPLandroid/view/ImeFocusController;->onPreWindowFocus(ZLandroid/view/WindowManager$LayoutParams;)V
-HSPLandroid/view/ImeFocusController;->onProcessImeInputStage(Ljava/lang/Object;Landroid/view/InputEvent;Landroid/view/WindowManager$LayoutParams;Landroid/view/inputmethod/InputMethodManager$FinishedInputEventCallback;)I
-HSPLandroid/view/ImeFocusController;->onTraversal(ZLandroid/view/WindowManager$LayoutParams;)V
-HSPLandroid/view/ImeFocusController;->onViewDetachedFromWindow(Landroid/view/View;)V
-HSPLandroid/view/ImeFocusController;->onViewFocusChanged(Landroid/view/View;Z)V
-HSPLandroid/view/ImeFocusController;->onWindowDismissed()V
-HSPLandroid/view/ImeInsetsSourceConsumer;-><init>(ILandroid/view/InsetsState;Ljava/util/function/Supplier;Landroid/view/InsetsController;)V
-HSPLandroid/view/ImeInsetsSourceConsumer;->applyLocalVisibilityOverride()Z
-HSPLandroid/view/ImeInsetsSourceConsumer;->getImm()Landroid/view/inputmethod/InputMethodManager;
-HSPLandroid/view/ImeInsetsSourceConsumer;->isRequestedVisibleAwaitingControl()Z
-HSPLandroid/view/ImeInsetsSourceConsumer;->onPerceptible(Z)V
-HSPLandroid/view/ImeInsetsSourceConsumer;->onShowRequested()V
-HSPLandroid/view/ImeInsetsSourceConsumer;->onWindowFocusGained(Z)V
-HSPLandroid/view/ImeInsetsSourceConsumer;->onWindowFocusLost()V
-HSPLandroid/view/ImeInsetsSourceConsumer;->removeSurface()V
-HSPLandroid/view/ImeInsetsSourceConsumer;->setControl(Landroid/view/InsetsSourceControl;[I[I)Z
-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
-HSPLandroid/view/InputChannel;->getToken()Landroid/os/IBinder;
-HSPLandroid/view/InputChannel;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/view/InputChannel;->setNativeInputChannel(J)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;-><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;->getSources()I
-HSPLandroid/view/InputDevice;->isVirtual()Z
-HSPLandroid/view/InputEvent;-><init>()V
-HSPLandroid/view/InputEvent;->getSequenceNumber()I
-HSPLandroid/view/InputEvent;->isFromSource(I)Z+]Landroid/view/InputEvent;Landroid/view/MotionEvent;
-HSPLandroid/view/InputEvent;->prepareForReuse()V
-HSPLandroid/view/InputEvent;->recycle()V
-HSPLandroid/view/InputEvent;->recycleIfNeededAfterDispatch()V
-HSPLandroid/view/InputEventAssigner;-><init>()V
-HSPLandroid/view/InputEventAssigner;->notifyFrameProcessed()V
-HSPLandroid/view/InputEventAssigner;->processEvent(Landroid/view/InputEvent;)I
-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
-HSPLandroid/view/InputEventReceiver;->consumeBatchedInputEvents(J)Z
-HSPLandroid/view/InputEventReceiver;->dispatchInputEvent(ILandroid/view/InputEvent;)V
-HSPLandroid/view/InputEventReceiver;->dispose()V
-HSPLandroid/view/InputEventReceiver;->dispose(Z)V
-HSPLandroid/view/InputEventReceiver;->finalize()V
-HSPLandroid/view/InputEventReceiver;->finishInputEvent(Landroid/view/InputEvent;Z)V
-HSPLandroid/view/InputEventReceiver;->onBatchedInputEventPending(I)V
-HSPLandroid/view/InputEventReceiver;->reportTimeline(IJJ)V
-HSPLandroid/view/InputEventSender;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;)V
-HSPLandroid/view/InputEventSender;->dispatchInputEventFinished(IZ)V
-HSPLandroid/view/InputEventSender;->dispose()V
-HSPLandroid/view/InputEventSender;->dispose(Z)V
-HSPLandroid/view/InputEventSender;->finalize()V
-HSPLandroid/view/InputEventSender;->sendInputEvent(ILandroid/view/InputEvent;)Z
-HSPLandroid/view/InputMonitor$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InputMonitor;
-HSPLandroid/view/InputMonitor$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/InputMonitor;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/InputMonitor;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/InsetsAnimationControlImpl$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-HSPLandroid/view/InsetsAnimationControlImpl;-><init>(Landroid/util/SparseArray;Landroid/graphics/Rect;Landroid/view/InsetsState;Landroid/view/WindowInsetsAnimationControlListener;ILandroid/view/InsetsAnimationControlCallbacks;JLandroid/view/animation/Interpolator;IILandroid/content/res/CompatibilityInfo$Translator;Landroid/view/inputmethod/ImeTracker$Token;)V
-HSPLandroid/view/InsetsAnimationControlImpl;->addTranslationToMatrix(IILandroid/graphics/Matrix;Landroid/graphics/Rect;)V
-HSPLandroid/view/InsetsAnimationControlImpl;->applyChangeInsets(Landroid/view/InsetsState;)Z
-HSPLandroid/view/InsetsAnimationControlImpl;->buildSideControlsMap(Landroid/util/SparseSetArray;Landroid/util/SparseArray;)V
-HSPLandroid/view/InsetsAnimationControlImpl;->calculateInsets(Landroid/view/InsetsState;Landroid/graphics/Rect;Landroid/util/SparseArray;ZLandroid/util/SparseIntArray;)Landroid/graphics/Insets;
-HSPLandroid/view/InsetsAnimationControlImpl;->calculateInsets(Landroid/view/InsetsState;Landroid/util/SparseArray;Z)Landroid/graphics/Insets;
-HSPLandroid/view/InsetsAnimationControlImpl;->calculatePerceptible(Landroid/graphics/Insets;F)Z
-HSPLandroid/view/InsetsAnimationControlImpl;->cancel()V
-HSPLandroid/view/InsetsAnimationControlImpl;->finish(Z)V
-HSPLandroid/view/InsetsAnimationControlImpl;->getAnimation()Landroid/view/WindowInsetsAnimation;
-HSPLandroid/view/InsetsAnimationControlImpl;->getAnimationType()I
-HSPLandroid/view/InsetsAnimationControlImpl;->getControllingTypes()I
-HSPLandroid/view/InsetsAnimationControlImpl;->getControls()Landroid/util/SparseArray;
-HSPLandroid/view/InsetsAnimationControlImpl;->getCurrentAlpha()F
-HSPLandroid/view/InsetsAnimationControlImpl;->getHiddenStateInsets()Landroid/graphics/Insets;
-HSPLandroid/view/InsetsAnimationControlImpl;->getInsetsFromState(Landroid/view/InsetsState;Landroid/graphics/Rect;Landroid/util/SparseIntArray;)Landroid/graphics/Insets;
-HSPLandroid/view/InsetsAnimationControlImpl;->getShownStateInsets()Landroid/graphics/Insets;
-HSPLandroid/view/InsetsAnimationControlImpl;->getTypes()I
-HSPLandroid/view/InsetsAnimationControlImpl;->hasZeroInsetsIme()Z
-HSPLandroid/view/InsetsAnimationControlImpl;->isCancelled()Z
-HSPLandroid/view/InsetsAnimationControlImpl;->notifyControlRevoked(I)V
-HSPLandroid/view/InsetsAnimationControlImpl;->releaseLeashes()V
-HSPLandroid/view/InsetsAnimationControlImpl;->setInsetsAndAlpha(Landroid/graphics/Insets;FF)V
-HSPLandroid/view/InsetsAnimationControlImpl;->setInsetsAndAlpha(Landroid/graphics/Insets;FFZ)V
-HSPLandroid/view/InsetsAnimationControlImpl;->updateSurfacePosition(Landroid/util/SparseArray;)V
-HSPLandroid/view/InsetsAnimationThread;->ensureThreadLocked()V
-HSPLandroid/view/InsetsAnimationThread;->getHandler()Landroid/os/Handler;
-HSPLandroid/view/InsetsAnimationThread;->release()V
-HSPLandroid/view/InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda1;->run()V
-HSPLandroid/view/InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/view/InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda1;->run()V
-HSPLandroid/view/InsetsAnimationThreadControlRunner$1;-><init>(Landroid/view/InsetsAnimationThreadControlRunner;)V
-HSPLandroid/view/InsetsAnimationThreadControlRunner$1;->applySurfaceParams([Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;)V
-HSPLandroid/view/InsetsAnimationThreadControlRunner$1;->notifyFinished(Landroid/view/InsetsAnimationControlRunner;Z)V
-HSPLandroid/view/InsetsAnimationThreadControlRunner$1;->releaseSurfaceControlFromRt(Landroid/view/SurfaceControl;)V
-HSPLandroid/view/InsetsAnimationThreadControlRunner$1;->reportPerceptible(IZ)V
-HSPLandroid/view/InsetsAnimationThreadControlRunner$1;->scheduleApplyChangeInsets(Landroid/view/InsetsAnimationControlRunner;)V
-HSPLandroid/view/InsetsAnimationThreadControlRunner$1;->startAnimation(Landroid/view/InsetsAnimationControlRunner;Landroid/view/WindowInsetsAnimationControlListener;ILandroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;)V
-HSPLandroid/view/InsetsAnimationThreadControlRunner;->-$$Nest$fgetmOuterCallbacks(Landroid/view/InsetsAnimationThreadControlRunner;)Landroid/view/InsetsAnimationControlCallbacks;
-HSPLandroid/view/InsetsAnimationThreadControlRunner;->cancel()V
-HSPLandroid/view/InsetsAnimationThreadControlRunner;->getAnimation()Landroid/view/WindowInsetsAnimation;
-HSPLandroid/view/InsetsAnimationThreadControlRunner;->getAnimationType()I
-HSPLandroid/view/InsetsAnimationThreadControlRunner;->getControllingTypes()I
-HSPLandroid/view/InsetsAnimationThreadControlRunner;->getTypes()I
-HSPLandroid/view/InsetsAnimationThreadControlRunner;->notifyControlRevoked(I)V
-HSPLandroid/view/InsetsAnimationThreadControlRunner;->updateSurfacePosition(Landroid/util/SparseArray;)V
-HSPLandroid/view/InsetsController$$ExternalSyntheticLambda10;-><init>(Landroid/view/InsetsController;)V
-HSPLandroid/view/InsetsController$$ExternalSyntheticLambda7;-><init>()V
-HSPLandroid/view/InsetsController$$ExternalSyntheticLambda9;-><init>(Landroid/view/InsetsController;)V
-HSPLandroid/view/InsetsController$1;-><init>(Landroid/view/InsetsController;)V
-HSPLandroid/view/InsetsController$2;-><init>(Landroid/view/InsetsController;)V
-HSPLandroid/view/InsetsController$2;->onFinish(Landroid/view/InsetsState;Landroid/view/InsetsState;)V
-HSPLandroid/view/InsetsController$3;-><init>(Landroid/view/InsetsController;)V
-HSPLandroid/view/InsetsController$3;->onFinish(Landroid/view/InsetsState;Landroid/view/InsetsState;)V
-HSPLandroid/view/InsetsController$3;->onStart(Landroid/view/InsetsState;Landroid/view/InsetsState;)V
-HSPLandroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda0;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V
-HSPLandroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda3;->getInterpolation(F)F
-HSPLandroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda4;->getInterpolation(F)F
-HSPLandroid/view/InsetsController$InternalAnimationControlListener$1;->initialValue()Landroid/animation/AnimationHandler;
-HSPLandroid/view/InsetsController$InternalAnimationControlListener$1;->initialValue()Ljava/lang/Object;
-HSPLandroid/view/InsetsController$InternalAnimationControlListener$2;->onAnimationEnd(Landroid/animation/Animator;)V
-HSPLandroid/view/InsetsController$InternalAnimationControlListener;-><init>(ZZIIZILandroid/view/WindowInsetsAnimationControlListener;Landroid/view/inputmethod/ImeTracker$InputMethodJankContext;)V
-HSPLandroid/view/InsetsController$InternalAnimationControlListener;->calculateDurationMs()J
-HSPLandroid/view/InsetsController$InternalAnimationControlListener;->getAlphaInterpolator()Landroid/view/animation/Interpolator;
-HSPLandroid/view/InsetsController$InternalAnimationControlListener;->getDurationMs()J
-HSPLandroid/view/InsetsController$InternalAnimationControlListener;->getInsetsInterpolator()Landroid/view/animation/Interpolator;
-HSPLandroid/view/InsetsController$InternalAnimationControlListener;->lambda$getAlphaInterpolator$2(F)F
-HSPLandroid/view/InsetsController$InternalAnimationControlListener;->lambda$getAlphaInterpolator$3(F)F
-HSPLandroid/view/InsetsController$InternalAnimationControlListener;->lambda$getAlphaInterpolator$4(F)F
-HSPLandroid/view/InsetsController$InternalAnimationControlListener;->onAnimationFinish()V
-HSPLandroid/view/InsetsController$InternalAnimationControlListener;->onCancelled(Landroid/view/WindowInsetsAnimationController;)V
-HSPLandroid/view/InsetsController$InternalAnimationControlListener;->onFinished(Landroid/view/WindowInsetsAnimationController;)V
-HSPLandroid/view/InsetsController$InternalAnimationControlListener;->onReady(Landroid/view/WindowInsetsAnimationController;I)V
-HSPLandroid/view/InsetsController$RunningAnimation;-><init>(Landroid/view/InsetsAnimationControlRunner;I)V
-HSPLandroid/view/InsetsController;->-$$Nest$sfgetsEvaluator()Landroid/animation/TypeEvaluator;
-HSPLandroid/view/InsetsController;-><init>(Landroid/view/InsetsController$Host;)V
-HSPLandroid/view/InsetsController;-><init>(Landroid/view/InsetsController$Host;Lcom/android/internal/util/function/TriFunction;Landroid/os/Handler;)V
-HSPLandroid/view/InsetsController;->abortPendingImeControlRequest()V
-HSPLandroid/view/InsetsController;->applyAnimation(IZZLandroid/view/inputmethod/ImeTracker$Token;)V
-HSPLandroid/view/InsetsController;->applyAnimation(IZZZLandroid/view/inputmethod/ImeTracker$Token;)V
-HSPLandroid/view/InsetsController;->applyLocalVisibilityOverride()V
-HSPLandroid/view/InsetsController;->calculateControllableTypes()I
-HSPLandroid/view/InsetsController;->calculateInsets(ZIIIII)Landroid/view/WindowInsets;
-HSPLandroid/view/InsetsController;->calculateVisibleInsets(IIII)Landroid/graphics/Insets;
-HSPLandroid/view/InsetsController;->cancelAnimation(Landroid/view/InsetsAnimationControlRunner;Z)V
-HSPLandroid/view/InsetsController;->cancelExistingAnimations()V
-HSPLandroid/view/InsetsController;->cancelExistingControllers(I)V
-HSPLandroid/view/InsetsController;->captionInsetsUnchanged()Z
-HSPLandroid/view/InsetsController;->collectSourceControls(ZILandroid/util/SparseArray;ILandroid/view/inputmethod/ImeTracker$Token;)Landroid/util/Pair;
-HSPLandroid/view/InsetsController;->controlAnimationUncheckedInner(ILandroid/os/CancellationSignal;Landroid/view/WindowInsetsAnimationControlListener;Landroid/graphics/Rect;ZJLandroid/view/animation/Interpolator;IIZLandroid/view/inputmethod/ImeTracker$Token;)V
-HSPLandroid/view/InsetsController;->dispatchAnimationEnd(Landroid/view/WindowInsetsAnimation;)V
-HSPLandroid/view/InsetsController;->getAnimationType(I)I
-HSPLandroid/view/InsetsController;->getHost()Landroid/view/InsetsController$Host;
-HSPLandroid/view/InsetsController;->getLastDispatchedState()Landroid/view/InsetsState;
-HSPLandroid/view/InsetsController;->getRequestedVisibleTypes()I
-HSPLandroid/view/InsetsController;->getSourceConsumer(II)Landroid/view/InsetsSourceConsumer;
-HSPLandroid/view/InsetsController;->getState()Landroid/view/InsetsState;
-HSPLandroid/view/InsetsController;->getSystemBarsAppearance()I
-HSPLandroid/view/InsetsController;->hide(I)V
-HSPLandroid/view/InsetsController;->invokeControllableInsetsChangedListeners()I
-HSPLandroid/view/InsetsController;->lambda$new$2(Landroid/view/InsetsController;Ljava/lang/Integer;Ljava/lang/Integer;)Landroid/view/InsetsSourceConsumer;
-HSPLandroid/view/InsetsController;->lambda$static$1(FLandroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets;
-HSPLandroid/view/InsetsController;->notifyControlRevoked(Landroid/view/InsetsSourceConsumer;)V
-HSPLandroid/view/InsetsController;->notifyFinished(Landroid/view/InsetsAnimationControlRunner;Z)V
-HSPLandroid/view/InsetsController;->notifyVisibilityChanged()V
-HSPLandroid/view/InsetsController;->onControlsChanged([Landroid/view/InsetsSourceControl;)V
-HSPLandroid/view/InsetsController;->onFrameChanged(Landroid/graphics/Rect;)V+]Landroid/graphics/Rect;Landroid/graphics/Rect;
-HSPLandroid/view/InsetsController;->onStateChanged(Landroid/view/InsetsState;)Z
-HSPLandroid/view/InsetsController;->onWindowFocusGained(Z)V
-HSPLandroid/view/InsetsController;->onWindowFocusLost()V
-HSPLandroid/view/InsetsController;->reportPerceptible(IZ)V
-HSPLandroid/view/InsetsController;->reportRequestedVisibleTypes()V
-HSPLandroid/view/InsetsController;->setRequestedVisibleTypes(II)V
-HSPLandroid/view/InsetsController;->show(I)V
-HSPLandroid/view/InsetsController;->show(IZLandroid/view/inputmethod/ImeTracker$Token;)V
-HSPLandroid/view/InsetsController;->updateCompatSysUiVisibility()V
-HSPLandroid/view/InsetsController;->updateState(Landroid/view/InsetsState;)V
-HSPLandroid/view/InsetsFlags;-><init>()V
-HSPLandroid/view/InsetsSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InsetsSource;
-HSPLandroid/view/InsetsSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/InsetsSource;-><init>(II)V
-HSPLandroid/view/InsetsSource;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/InsetsSource;-><init>(Landroid/view/InsetsSource;)V
-HSPLandroid/view/InsetsSource;->calculateInsets(Landroid/graphics/Rect;Landroid/graphics/Rect;Z)Landroid/graphics/Insets;+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/graphics/Rect;Landroid/graphics/Rect;
-HSPLandroid/view/InsetsSource;->calculateInsets(Landroid/graphics/Rect;Z)Landroid/graphics/Insets;
-HSPLandroid/view/InsetsSource;->calculateVisibleInsets(Landroid/graphics/Rect;)Landroid/graphics/Insets;
-HSPLandroid/view/InsetsSource;->equals(Ljava/lang/Object;)Z
-HSPLandroid/view/InsetsSource;->equals(Ljava/lang/Object;Z)Z
-HSPLandroid/view/InsetsSource;->getFlags()I
-HSPLandroid/view/InsetsSource;->getFrame()Landroid/graphics/Rect;
-HSPLandroid/view/InsetsSource;->getId()I
-HSPLandroid/view/InsetsSource;->getIntersection(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
-HSPLandroid/view/InsetsSource;->getType()I
-HSPLandroid/view/InsetsSource;->getVisibleFrame()Landroid/graphics/Rect;
-HSPLandroid/view/InsetsSource;->hasFlags(I)Z
-HSPLandroid/view/InsetsSource;->isVisible()Z
-HSPLandroid/view/InsetsSource;->setVisible(Z)Landroid/view/InsetsSource;
-HSPLandroid/view/InsetsSource;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/InsetsSourceConsumer;-><init>(IILandroid/view/InsetsState;Ljava/util/function/Supplier;Landroid/view/InsetsController;)V
-HSPLandroid/view/InsetsSourceConsumer;->applyLocalVisibilityOverride()Z
-HSPLandroid/view/InsetsSourceConsumer;->applyRequestedVisibilityToControl()V
-HSPLandroid/view/InsetsSourceConsumer;->getControl()Landroid/view/InsetsSourceControl;
-HSPLandroid/view/InsetsSourceConsumer;->getId()I
-HSPLandroid/view/InsetsSourceConsumer;->getType()I
-HSPLandroid/view/InsetsSourceConsumer;->isRequestedVisibleAwaitingControl()Z
-HSPLandroid/view/InsetsSourceConsumer;->onPerceptible(Z)V
-HSPLandroid/view/InsetsSourceConsumer;->onWindowFocusGained(Z)V
-HSPLandroid/view/InsetsSourceConsumer;->onWindowFocusLost()V
-HSPLandroid/view/InsetsSourceConsumer;->removeSurface()V
-HSPLandroid/view/InsetsSourceConsumer;->setControl(Landroid/view/InsetsSourceControl;[I[I)Z
-HSPLandroid/view/InsetsSourceConsumer;->updateSource(Landroid/view/InsetsSource;I)V
-HSPLandroid/view/InsetsSourceControl$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InsetsSourceControl;
-HSPLandroid/view/InsetsSourceControl$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/InsetsSourceControl$1;->newArray(I)[Landroid/view/InsetsSourceControl;
-HSPLandroid/view/InsetsSourceControl$1;->newArray(I)[Ljava/lang/Object;
-HSPLandroid/view/InsetsSourceControl$Array$1;-><init>()V
-HSPLandroid/view/InsetsSourceControl$Array;-><clinit>()V
-HSPLandroid/view/InsetsSourceControl$Array;-><init>()V
-HSPLandroid/view/InsetsSourceControl$Array;->get()[Landroid/view/InsetsSourceControl;
-HSPLandroid/view/InsetsSourceControl$Array;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/view/InsetsSourceControl;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/InsetsSourceControl;-><init>(Landroid/view/InsetsSourceControl;)V
-HSPLandroid/view/InsetsSourceControl;->equals(Ljava/lang/Object;)Z
-HSPLandroid/view/InsetsSourceControl;->getAndClearSkipAnimationOnce()Z
-HSPLandroid/view/InsetsSourceControl;->getId()I
-HSPLandroid/view/InsetsSourceControl;->getInsetsHint()Landroid/graphics/Insets;
-HSPLandroid/view/InsetsSourceControl;->getLeash()Landroid/view/SurfaceControl;
-HSPLandroid/view/InsetsSourceControl;->getSurfacePosition()Landroid/graphics/Point;
-HSPLandroid/view/InsetsSourceControl;->getType()I
-HSPLandroid/view/InsetsSourceControl;->hashCode()I
-HSPLandroid/view/InsetsSourceControl;->isInitiallyVisible()Z
-HSPLandroid/view/InsetsSourceControl;->release(Ljava/util/function/Consumer;)V
-HSPLandroid/view/InsetsSourceControl;->setSurfacePosition(II)Z
-HSPLandroid/view/InsetsState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InsetsState;
-HSPLandroid/view/InsetsState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/InsetsState$OnTraverseCallbacks;->onIdMatch(Landroid/view/InsetsSource;Landroid/view/InsetsSource;)V
-HSPLandroid/view/InsetsState$OnTraverseCallbacks;->onStart(Landroid/view/InsetsState;Landroid/view/InsetsState;)V
-HSPLandroid/view/InsetsState;-><init>()V
-HSPLandroid/view/InsetsState;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/InsetsState;-><init>(Landroid/view/InsetsState;Z)V
-HSPLandroid/view/InsetsState;->addSource(Landroid/view/InsetsSource;)V
-HSPLandroid/view/InsetsState;->calculateInsets(Landroid/graphics/Rect;II)Landroid/graphics/Insets;+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/util/SparseArray;Landroid/util/SparseArray;
-HSPLandroid/view/InsetsState;->calculateInsets(Landroid/graphics/Rect;IZ)Landroid/graphics/Insets;+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/util/SparseArray;Landroid/util/SparseArray;
-HSPLandroid/view/InsetsState;->calculateInsets(Landroid/graphics/Rect;Landroid/view/InsetsState;ZIIIIILandroid/util/SparseIntArray;)Landroid/view/WindowInsets;
-HSPLandroid/view/InsetsState;->calculateRelativeCutout(Landroid/graphics/Rect;)Landroid/view/DisplayCutout;
-HSPLandroid/view/InsetsState;->calculateRelativeDisplayShape(Landroid/graphics/Rect;)Landroid/view/DisplayShape;
-HSPLandroid/view/InsetsState;->calculateRelativePrivacyIndicatorBounds(Landroid/graphics/Rect;)Landroid/view/PrivacyIndicatorBounds;
-HSPLandroid/view/InsetsState;->calculateRelativeRoundedCorners(Landroid/graphics/Rect;)Landroid/view/RoundedCorners;
-HSPLandroid/view/InsetsState;->calculateUncontrollableInsetsFromFrame(Landroid/graphics/Rect;)I
-HSPLandroid/view/InsetsState;->calculateVisibleInsets(Landroid/graphics/Rect;IIII)Landroid/graphics/Insets;
-HSPLandroid/view/InsetsState;->canControlSource(Landroid/graphics/Rect;Landroid/view/InsetsSource;)Z
-HSPLandroid/view/InsetsState;->clearsCompatInsets(IIII)Z
-HSPLandroid/view/InsetsState;->equals(Ljava/lang/Object;)Z
-HSPLandroid/view/InsetsState;->equals(Ljava/lang/Object;ZZ)Z
-HSPLandroid/view/InsetsState;->getDisplayCutout()Landroid/view/DisplayCutout;+]Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/DisplayCutout$ParcelableWrapper;
-HSPLandroid/view/InsetsState;->getDisplayCutoutSafe(Landroid/graphics/Rect;)V+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/DisplayCutout;Landroid/view/DisplayCutout;]Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/DisplayCutout$ParcelableWrapper;
-HSPLandroid/view/InsetsState;->getDisplayFrame()Landroid/graphics/Rect;
-HSPLandroid/view/InsetsState;->getDisplayShape()Landroid/view/DisplayShape;
-HSPLandroid/view/InsetsState;->getPrivacyIndicatorBounds()Landroid/view/PrivacyIndicatorBounds;
-HSPLandroid/view/InsetsState;->getRoundedCorners()Landroid/view/RoundedCorners;
-HSPLandroid/view/InsetsState;->isSourceOrDefaultVisible(II)Z
-HSPLandroid/view/InsetsState;->peekSource(I)Landroid/view/InsetsSource;
-HSPLandroid/view/InsetsState;->readFromParcel(Landroid/os/Parcel;)Landroid/util/SparseArray;
-HSPLandroid/view/InsetsState;->set(Landroid/view/InsetsState;I)V
-HSPLandroid/view/InsetsState;->set(Landroid/view/InsetsState;Z)V
-HSPLandroid/view/InsetsState;->setDisplayCutout(Landroid/view/DisplayCutout;)V
-HSPLandroid/view/InsetsState;->setDisplayFrame(Landroid/graphics/Rect;)V
-HSPLandroid/view/InsetsState;->setPrivacyIndicatorBounds(Landroid/view/PrivacyIndicatorBounds;)V
-HSPLandroid/view/InsetsState;->setRoundedCorners(Landroid/view/RoundedCorners;)V
-HSPLandroid/view/InsetsState;->sourceAt(I)Landroid/view/InsetsSource;
-HSPLandroid/view/InsetsState;->sourceIdAt(I)I
-HSPLandroid/view/InsetsState;->sourceSize()I
-HSPLandroid/view/InsetsState;->traverse(Landroid/view/InsetsState;Landroid/view/InsetsState;Landroid/view/InsetsState$OnTraverseCallbacks;)V
-HSPLandroid/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>(Landroid/os/Parcel;)V
-HSPLandroid/view/KeyCharacterMap;->finalize()V
-HSPLandroid/view/KeyCharacterMap;->get(II)I
-HSPLandroid/view/KeyCharacterMap;->getKeyboardType()I
-HSPLandroid/view/KeyCharacterMap;->getModifierBehavior()I
-HSPLandroid/view/KeyCharacterMap;->load(I)Landroid/view/KeyCharacterMap;
-HSPLandroid/view/KeyEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/KeyEvent;
-HSPLandroid/view/KeyEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/KeyEvent$DispatcherState;-><init>()V
-HSPLandroid/view/KeyEvent$DispatcherState;->handleUpEvent(Landroid/view/KeyEvent;)V
-HSPLandroid/view/KeyEvent$DispatcherState;->isTracking(Landroid/view/KeyEvent;)Z
-HSPLandroid/view/KeyEvent$DispatcherState;->reset()V
-HSPLandroid/view/KeyEvent$DispatcherState;->reset(Ljava/lang/Object;)V
-HSPLandroid/view/KeyEvent$DispatcherState;->startTracking(Landroid/view/KeyEvent;Ljava/lang/Object;)V
-HSPLandroid/view/KeyEvent;-><init>(JJIIIIIIII)V
-HSPLandroid/view/KeyEvent;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/KeyEvent;->actionToString(I)Ljava/lang/String;
-HSPLandroid/view/KeyEvent;->dispatch(Landroid/view/KeyEvent$Callback;Landroid/view/KeyEvent$DispatcherState;Ljava/lang/Object;)Z
-HSPLandroid/view/KeyEvent;->getAction()I
-HSPLandroid/view/KeyEvent;->getDeviceId()I
-HSPLandroid/view/KeyEvent;->getEventTime()J
-HSPLandroid/view/KeyEvent;->getFlags()I
-HSPLandroid/view/KeyEvent;->getId()I
-HSPLandroid/view/KeyEvent;->getKeyCharacterMap()Landroid/view/KeyCharacterMap;
-HSPLandroid/view/KeyEvent;->getKeyCode()I
-HSPLandroid/view/KeyEvent;->getMetaState()I
-HSPLandroid/view/KeyEvent;->getRepeatCount()I
-HSPLandroid/view/KeyEvent;->getSource()I
-HSPLandroid/view/KeyEvent;->getUnicodeChar()I
-HSPLandroid/view/KeyEvent;->getUnicodeChar(I)I
-HSPLandroid/view/KeyEvent;->isCanceled()Z
-HSPLandroid/view/KeyEvent;->isModifierKey(I)Z
-HSPLandroid/view/KeyEvent;->isTracking()Z
-HSPLandroid/view/KeyEvent;->metaStateToString(I)Ljava/lang/String;
-HSPLandroid/view/KeyEvent;->normalizeMetaState(I)I
-HSPLandroid/view/KeyEvent;->obtain()Landroid/view/KeyEvent;
-HSPLandroid/view/KeyEvent;->obtain(IJJIIIIIIIII[BLjava/lang/String;)Landroid/view/KeyEvent;
-HSPLandroid/view/KeyEvent;->recycleIfNeededAfterDispatch()V
-HSPLandroid/view/KeyEvent;->startTracking()V
-HSPLandroid/view/KeyEvent;->toString()Ljava/lang/String;
-HSPLandroid/view/KeyEvent;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/LayoutInflater$FactoryMerger;-><init>(Landroid/view/LayoutInflater$Factory;Landroid/view/LayoutInflater$Factory2;Landroid/view/LayoutInflater$Factory;Landroid/view/LayoutInflater$Factory2;)V
-HSPLandroid/view/LayoutInflater$FactoryMerger;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
-HSPLandroid/view/LayoutInflater;-><init>(Landroid/content/Context;)V
-HSPLandroid/view/LayoutInflater;-><init>(Landroid/view/LayoutInflater;Landroid/content/Context;)V
-HSPLandroid/view/LayoutInflater;->advanceToRootNode(Lorg/xmlpull/v1/XmlPullParser;)V
-HSPLandroid/view/LayoutInflater;->consumeChildElements(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;
-HSPLandroid/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;
-HSPLandroid/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;->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+]Landroid/util/AttributeSet;Landroid/content/res/XmlBlock$Parser;]Landroid/view/View;missing_types]Landroid/view/ViewGroup;Landroid/widget/FrameLayout;,Landroid/widget/LinearLayout;]Landroid/view/LayoutInflater;Lcom/android/internal/policy/PhoneLayoutInflater;]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Ljava/lang/Object;Ljava/lang/String;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/Context;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/content/res/XmlResourceParser;Landroid/content/res/XmlBlock$Parser;
-HSPLandroid/view/LayoutInflater;->rInflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/content/Context;Landroid/util/AttributeSet;Z)V+]Landroid/view/View;missing_types]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Landroid/view/ViewGroup;Landroid/widget/RelativeLayout;,Landroid/widget/FrameLayout;,Landroid/widget/LinearLayout;]Landroid/view/LayoutInflater;Lcom/android/internal/policy/PhoneLayoutInflater;]Ljava/lang/Object;Ljava/lang/String;
-HSPLandroid/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;->verifyClassLoader(Ljava/lang/reflect/Constructor;)Z
-HSPLandroid/view/MenuInflater;-><init>(Landroid/content/Context;)V
-HSPLandroid/view/MotionEvent$PointerCoords;-><init>()V
-HSPLandroid/view/MotionEvent$PointerProperties;-><init>()V
-HSPLandroid/view/MotionEvent;-><init>()V
-HSPLandroid/view/MotionEvent;->ensureSharedTempPointerCapacity(I)V
-HSPLandroid/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
-HSPLandroid/view/MotionEvent;->getAxisValue(I)F
-HSPLandroid/view/MotionEvent;->getButtonState()I
-HSPLandroid/view/MotionEvent;->getClassification()I
-HSPLandroid/view/MotionEvent;->getDeviceId()I
-HSPLandroid/view/MotionEvent;->getDownTime()J
-HSPLandroid/view/MotionEvent;->getEdgeFlags()I
-HSPLandroid/view/MotionEvent;->getEventTime()J
-HSPLandroid/view/MotionEvent;->getFlags()I
-HSPLandroid/view/MotionEvent;->getHistoricalEventTime(I)J
-HSPLandroid/view/MotionEvent;->getHistoricalX(II)F
-HSPLandroid/view/MotionEvent;->getHistoricalY(II)F
-HSPLandroid/view/MotionEvent;->getHistorySize()I
-HSPLandroid/view/MotionEvent;->getId()I
-HSPLandroid/view/MotionEvent;->getMetaState()I
-HSPLandroid/view/MotionEvent;->getOrientation()F
-HSPLandroid/view/MotionEvent;->getPointerCount()I
-HSPLandroid/view/MotionEvent;->getPointerId(I)I
-HSPLandroid/view/MotionEvent;->getPointerIdBits()I
-HSPLandroid/view/MotionEvent;->getPressure(I)F
-HSPLandroid/view/MotionEvent;->getRawX()F
-HSPLandroid/view/MotionEvent;->getRawY()F
-HSPLandroid/view/MotionEvent;->getSource()I
-HSPLandroid/view/MotionEvent;->getToolType(I)I
-HSPLandroid/view/MotionEvent;->getTouchMajor()F
-HSPLandroid/view/MotionEvent;->getTouchMinor()F
-HSPLandroid/view/MotionEvent;->getX()F
-HSPLandroid/view/MotionEvent;->getX(I)F
-HSPLandroid/view/MotionEvent;->getY()F
-HSPLandroid/view/MotionEvent;->getY(I)F
-HSPLandroid/view/MotionEvent;->initialize(IIIIIIIIIFFFFJJI[Landroid/view/MotionEvent$PointerProperties;[Landroid/view/MotionEvent$PointerCoords;)Z
-HSPLandroid/view/MotionEvent;->isTargetAccessibilityFocus()Z+]Landroid/view/MotionEvent;Landroid/view/MotionEvent;
-HSPLandroid/view/MotionEvent;->isTouchEvent()Z
-HSPLandroid/view/MotionEvent;->obtain()Landroid/view/MotionEvent;
-HSPLandroid/view/MotionEvent;->obtain(JJIFFFFIFFII)Landroid/view/MotionEvent;
-HSPLandroid/view/MotionEvent;->obtain(JJIFFFFIFFIIII)Landroid/view/MotionEvent;
-HSPLandroid/view/MotionEvent;->obtain(JJIFFI)Landroid/view/MotionEvent;
-HSPLandroid/view/MotionEvent;->obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;
-HSPLandroid/view/MotionEvent;->offsetLocation(FF)V
-HSPLandroid/view/MotionEvent;->recycle()V
-HSPLandroid/view/MotionEvent;->setAction(I)V
-HSPLandroid/view/MotionEvent;->setLocation(FF)V
-HSPLandroid/view/MotionEvent;->setTargetAccessibilityFocus(Z)V+]Landroid/view/MotionEvent;Landroid/view/MotionEvent;
-HSPLandroid/view/MotionEvent;->split(I)Landroid/view/MotionEvent;
-HSPLandroid/view/MotionEvent;->transform(Landroid/graphics/Matrix;)V
-HSPLandroid/view/MotionEvent;->updateCursorPosition()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;->disable()V
-HSPLandroid/view/OrientationEventListener;->enable()V
-HSPLandroid/view/PendingInsetsController;-><init>()V
-HSPLandroid/view/PendingInsetsController;->detach()V
-HSPLandroid/view/PendingInsetsController;->getRequestedVisibleTypes()I
-HSPLandroid/view/PendingInsetsController;->getSystemBarsAppearance()I
-HSPLandroid/view/PendingInsetsController;->replayAndAttach(Landroid/view/InsetsController;)V
-HSPLandroid/view/PointerIcon;->getSystemIcon(Landroid/content/Context;I)Landroid/view/PointerIcon;
-HSPLandroid/view/PointerIcon;->getSystemIconTypeIndex(I)I
-HSPLandroid/view/PrivacyIndicatorBounds$1;-><init>()V
-HSPLandroid/view/PrivacyIndicatorBounds$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/PrivacyIndicatorBounds;
-HSPLandroid/view/PrivacyIndicatorBounds$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/PrivacyIndicatorBounds;-><clinit>()V
-HSPLandroid/view/PrivacyIndicatorBounds;-><init>()V
-HSPLandroid/view/PrivacyIndicatorBounds;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/PrivacyIndicatorBounds;-><init>([Landroid/graphics/Rect;I)V
-HSPLandroid/view/PrivacyIndicatorBounds;->equals(Ljava/lang/Object;)Z
-HSPLandroid/view/PrivacyIndicatorBounds;->inset(IIII)Landroid/view/PrivacyIndicatorBounds;
-HSPLandroid/view/PrivacyIndicatorBounds;->insetRect(Landroid/graphics/Rect;IIII)Landroid/graphics/Rect;
-HSPLandroid/view/PrivacyIndicatorBounds;->updateStaticBounds([Landroid/graphics/Rect;)Landroid/view/PrivacyIndicatorBounds;
-HSPLandroid/view/PrivacyIndicatorBounds;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/RemoteAccessibilityController;-><init>(Landroid/view/View;)V
-HSPLandroid/view/RemoteAccessibilityController;->connected()Z
-HSPLandroid/view/RemoteAccessibilityController;->disassosciateHierarchy()V
-HSPLandroid/view/RemoteAccessibilityController;->setRemoteAccessibilityEmbeddedConnection(Landroid/view/accessibility/IAccessibilityEmbeddedConnection;Landroid/os/IBinder;)V
-HSPLandroid/view/RemoteAnimationAdapter;-><init>(Landroid/view/IRemoteAnimationRunner;JJ)V
-HSPLandroid/view/RemoteAnimationAdapter;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/RoundedCorner$1;-><init>()V
-HSPLandroid/view/RoundedCorner$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/RoundedCorner;
-HSPLandroid/view/RoundedCorner$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/RoundedCorner;-><clinit>()V
-HSPLandroid/view/RoundedCorner;-><init>(I)V
-HSPLandroid/view/RoundedCorner;-><init>(IIII)V
-HSPLandroid/view/RoundedCorner;->equals(Ljava/lang/Object;)Z
-HSPLandroid/view/RoundedCorner;->getCenter()Landroid/graphics/Point;
-HSPLandroid/view/RoundedCorner;->getRadius()I
-HSPLandroid/view/RoundedCorner;->isEmpty()Z
-HSPLandroid/view/RoundedCorners$1;-><init>()V
-HSPLandroid/view/RoundedCorners$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/RoundedCorners;
-HSPLandroid/view/RoundedCorners$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/RoundedCorners;-><clinit>()V
-HSPLandroid/view/RoundedCorners;-><init>(Landroid/view/RoundedCorner;Landroid/view/RoundedCorner;Landroid/view/RoundedCorner;Landroid/view/RoundedCorner;)V
-HSPLandroid/view/RoundedCorners;-><init>([Landroid/view/RoundedCorner;)V
-HSPLandroid/view/RoundedCorners;->equals(Ljava/lang/Object;)Z
-HSPLandroid/view/RoundedCorners;->getRoundedCornerBottomRadius(Landroid/content/res/Resources;Ljava/lang/String;)I
-HSPLandroid/view/RoundedCorners;->getRoundedCornerRadius(Landroid/content/res/Resources;Ljava/lang/String;)I
-HSPLandroid/view/RoundedCorners;->getRoundedCornerTopRadius(Landroid/content/res/Resources;Ljava/lang/String;)I
-HSPLandroid/view/RoundedCorners;->inset(IIII)Landroid/view/RoundedCorners;
-HSPLandroid/view/RoundedCorners;->insetRoundedCorner(IIIIIIII)Landroid/view/RoundedCorner;
-HSPLandroid/view/RoundedCorners;->writeToParcel(Landroid/os/Parcel;I)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
-HSPLandroid/view/ScaleGestureDetector;->onTouchEvent(Landroid/view/MotionEvent;)Z
-HSPLandroid/view/ScaleGestureDetector;->setQuickScaleEnabled(Z)V
-HSPLandroid/view/ScaleGestureDetector;->setStylusScaleEnabled(Z)V
-HSPLandroid/view/Surface$CompatibleCanvas;-><init>(Landroid/view/Surface;)V
-HSPLandroid/view/Surface;-><init>()V
-HSPLandroid/view/Surface;-><init>(J)V
-HSPLandroid/view/Surface;-><init>(Landroid/graphics/SurfaceTexture;)V
-HSPLandroid/view/Surface;->checkNotReleasedLocked()V
-HSPLandroid/view/Surface;->copyFrom(Landroid/graphics/BLASTBufferQueue;)V
-HSPLandroid/view/Surface;->copyFrom(Landroid/view/SurfaceControl;)V
-HSPLandroid/view/Surface;->destroy()V
-HSPLandroid/view/Surface;->finalize()V
-HSPLandroid/view/Surface;->forceScopedDisconnect()V
-HSPLandroid/view/Surface;->getGenerationId()I
-HSPLandroid/view/Surface;->getNextFrameNumber()J
-HSPLandroid/view/Surface;->isValid()Z
-HSPLandroid/view/Surface;->lockCanvas(Landroid/graphics/Rect;)Landroid/graphics/Canvas;
-HSPLandroid/view/Surface;->release()V
-HSPLandroid/view/Surface;->rotationToString(I)Ljava/lang/String;
-HSPLandroid/view/Surface;->setNativeObjectLocked(J)V
-HSPLandroid/view/Surface;->transferFrom(Landroid/view/Surface;)V
-HSPLandroid/view/Surface;->unlockCanvasAndPost(Landroid/graphics/Canvas;)V
-HSPLandroid/view/Surface;->unlockSwCanvasAndPost(Landroid/graphics/Canvas;)V
-HSPLandroid/view/Surface;->updateNativeObject(J)V
-HSPLandroid/view/Surface;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/SurfaceControl$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/SurfaceControl;
-HSPLandroid/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;
-HSPLandroid/view/SurfaceControl$Builder;->setBLASTLayer()Landroid/view/SurfaceControl$Builder;
-HSPLandroid/view/SurfaceControl$Builder;->setBufferSize(II)Landroid/view/SurfaceControl$Builder;
-HSPLandroid/view/SurfaceControl$Builder;->setCallsite(Ljava/lang/String;)Landroid/view/SurfaceControl$Builder;
-HSPLandroid/view/SurfaceControl$Builder;->setColorLayer()Landroid/view/SurfaceControl$Builder;
-HSPLandroid/view/SurfaceControl$Builder;->setContainerLayer()Landroid/view/SurfaceControl$Builder;
-HSPLandroid/view/SurfaceControl$Builder;->setFlags(I)Landroid/view/SurfaceControl$Builder;
-HSPLandroid/view/SurfaceControl$Builder;->setFlags(II)Landroid/view/SurfaceControl$Builder;
-HSPLandroid/view/SurfaceControl$Builder;->setFormat(I)Landroid/view/SurfaceControl$Builder;
-HSPLandroid/view/SurfaceControl$Builder;->setHidden(Z)Landroid/view/SurfaceControl$Builder;
-HSPLandroid/view/SurfaceControl$Builder;->setLocalOwnerView(Landroid/view/View;)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;
-HSPLandroid/view/SurfaceControl$Builder;->unsetBufferSize()V
-HSPLandroid/view/SurfaceControl$Transaction;-><init>()V
-HSPLandroid/view/SurfaceControl$Transaction;-><init>(J)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry;
-HSPLandroid/view/SurfaceControl$Transaction;->apply()V
-HSPLandroid/view/SurfaceControl$Transaction;->apply(Z)V
-HSPLandroid/view/SurfaceControl$Transaction;->applyResizedSurfaces()V
-HSPLandroid/view/SurfaceControl$Transaction;->checkPreconditions(Landroid/view/SurfaceControl;)V
-HSPLandroid/view/SurfaceControl$Transaction;->clear()V
-HSPLandroid/view/SurfaceControl$Transaction;->close()V
-HSPLandroid/view/SurfaceControl$Transaction;->hide(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/view/SurfaceControl$Transaction;->merge(Landroid/view/SurfaceControl$Transaction;)Landroid/view/SurfaceControl$Transaction;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;
-HSPLandroid/view/SurfaceControl$Transaction;->notifyReparentedSurfaces()V
-HSPLandroid/view/SurfaceControl$Transaction;->remove(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/view/SurfaceControl$Transaction;->reparent(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/view/SurfaceControl$Transaction;->sanitize(II)V
-HSPLandroid/view/SurfaceControl$Transaction;->setAlpha(Landroid/view/SurfaceControl;F)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/view/SurfaceControl$Transaction;->setBufferSize(Landroid/view/SurfaceControl;II)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/view/SurfaceControl$Transaction;->setColor(Landroid/view/SurfaceControl;[F)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/view/SurfaceControl$Transaction;->setCornerRadius(Landroid/view/SurfaceControl;F)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/view/SurfaceControl$Transaction;->setDesintationFrame(Landroid/view/SurfaceControl;II)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/view/SurfaceControl$Transaction;->setExtendedRangeBrightness(Landroid/view/SurfaceControl;FF)Landroid/view/SurfaceControl$Transaction;+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/view/SurfaceControl$Transaction;->setFrameTimelineVsync(J)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/view/SurfaceControl$Transaction;->setLayer(Landroid/view/SurfaceControl;I)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/view/SurfaceControl$Transaction;->setMatrix(Landroid/view/SurfaceControl;FFFF)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/view/SurfaceControl$Transaction;->setMatrix(Landroid/view/SurfaceControl;Landroid/graphics/Matrix;[F)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/view/SurfaceControl$Transaction;->setOpaque(Landroid/view/SurfaceControl;Z)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/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;
-HSPLandroid/view/SurfaceControl$Transaction;->setWindowCrop(Landroid/view/SurfaceControl;II)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/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;->-$$Nest$smnativeCreateTransaction()J
-HSPLandroid/view/SurfaceControl;->-$$Nest$smnativeSanitize(JII)V
-HSPLandroid/view/SurfaceControl;->-$$Nest$smnativeSetDestinationFrame(JJIIII)V
-HSPLandroid/view/SurfaceControl;->-$$Nest$smnativeSetExtendedRangeBrightness(JJFF)V
-HSPLandroid/view/SurfaceControl;->-$$Nest$smnativeSetFlags(JJII)V
-HSPLandroid/view/SurfaceControl;-><init>()V
-HSPLandroid/view/SurfaceControl;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/SurfaceControl;-><init>(Landroid/view/SurfaceControl;Ljava/lang/String;)V
-HSPLandroid/view/SurfaceControl;-><init>(Landroid/view/SurfaceSession;Ljava/lang/String;IIIILandroid/view/SurfaceControl;Landroid/util/SparseIntArray;Ljava/lang/ref/WeakReference;Ljava/lang/String;)V
-HSPLandroid/view/SurfaceControl;->assignNativeObject(JLjava/lang/String;)V
-HSPLandroid/view/SurfaceControl;->checkNotReleased()V
-HSPLandroid/view/SurfaceControl;->copyFrom(Landroid/view/SurfaceControl;Ljava/lang/String;)V
-HSPLandroid/view/SurfaceControl;->finalize()V
-HSPLandroid/view/SurfaceControl;->getTransformHint()I
-HSPLandroid/view/SurfaceControl;->isSameSurface(Landroid/view/SurfaceControl;)Z
-HSPLandroid/view/SurfaceControl;->isValid()Z
-HSPLandroid/view/SurfaceControl;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/view/SurfaceControl;->release()V
-HSPLandroid/view/SurfaceControl;->rotationToBufferTransform(I)I
-HSPLandroid/view/SurfaceControl;->setTransformHint(I)V
-HSPLandroid/view/SurfaceControlRegistry$DefaultReporter;-><init>()V
-HSPLandroid/view/SurfaceControlRegistry$DefaultReporter;-><init>(Landroid/view/SurfaceControlRegistry$DefaultReporter-IA;)V
-HSPLandroid/view/SurfaceControlRegistry;-><clinit>()V
-HSPLandroid/view/SurfaceControlRegistry;->getProcessInstance()Landroid/view/SurfaceControlRegistry;
-HSPLandroid/view/SurfaceSession;-><init>()V
-HSPLandroid/view/SurfaceSession;->finalize()V
-HSPLandroid/view/SurfaceSession;->kill()V
-HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda1;-><init>(Landroid/view/SurfaceView;)V
-HSPLandroid/view/SurfaceView$1;-><init>(Landroid/view/SurfaceView;)V
-HSPLandroid/view/SurfaceView$SurfaceViewPositionUpdateListener;-><init>(Landroid/view/SurfaceView;II)V
-HSPLandroid/view/SurfaceView$SurfaceViewPositionUpdateListener;->positionChanged(JIIII)V
-HSPLandroid/view/SurfaceView$SurfaceViewPositionUpdateListener;->positionLost(J)V
-HSPLandroid/view/SurfaceView;->-$$Nest$fgetmRTLastReportedPosition(Landroid/view/SurfaceView;)Landroid/graphics/Rect;
-HSPLandroid/view/SurfaceView;->-$$Nest$fgetmRtTransaction(Landroid/view/SurfaceView;)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/view/SurfaceView;->-$$Nest$mapplyOrMergeTransaction(Landroid/view/SurfaceView;Landroid/view/SurfaceControl$Transaction;J)V
-HSPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;)V
-HSPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IIZ)V
-HSPLandroid/view/SurfaceView;->applyOrMergeTransaction(Landroid/view/SurfaceControl$Transaction;J)V
-HSPLandroid/view/SurfaceView;->applyTransactionOnVriDraw(Landroid/view/SurfaceControl$Transaction;)V
-HSPLandroid/view/SurfaceView;->clearSurfaceViewPort(Landroid/graphics/Canvas;)V
-HSPLandroid/view/SurfaceView;->copySurface(ZZ)V
-HSPLandroid/view/SurfaceView;->createBlastSurfaceControls(Landroid/view/ViewRootImpl;Ljava/lang/String;Landroid/view/SurfaceControl$Transaction;)V
-HSPLandroid/view/SurfaceView;->dispatchDraw(Landroid/graphics/Canvas;)V
-HSPLandroid/view/SurfaceView;->gatherTransparentRegion(Landroid/graphics/Region;)Z
-HSPLandroid/view/SurfaceView;->getHolder()Landroid/view/SurfaceHolder;
-HSPLandroid/view/SurfaceView;->getSurfaceCallbacks()[Landroid/view/SurfaceHolder$Callback;
-HSPLandroid/view/SurfaceView;->notifySurfaceDestroyed()V
-HSPLandroid/view/SurfaceView;->onAttachedToWindow()V
-HSPLandroid/view/SurfaceView;->onDetachedFromWindow()V
-HSPLandroid/view/SurfaceView;->onDrawFinished()V
-HSPLandroid/view/SurfaceView;->onMeasure(II)V
-HSPLandroid/view/SurfaceView;->onSetSurfacePositionAndScale(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;IIFF)V
-HSPLandroid/view/SurfaceView;->onWindowVisibilityChanged(I)V
-HSPLandroid/view/SurfaceView;->performDrawFinished()V
-HSPLandroid/view/SurfaceView;->performSurfaceTransaction(Landroid/view/ViewRootImpl;Landroid/content/res/CompatibilityInfo$Translator;ZZZZLandroid/view/SurfaceControl$Transaction;)Z
-HSPLandroid/view/SurfaceView;->releaseSurfaces(Z)V
-HSPLandroid/view/SurfaceView;->replacePositionUpdateListener(II)V
-HSPLandroid/view/SurfaceView;->requiresSurfaceControlCreation(ZZ)Z
-HSPLandroid/view/SurfaceView;->setFrame(IIII)Z
-HSPLandroid/view/SurfaceView;->setVisibility(I)V
-HSPLandroid/view/SurfaceView;->setZOrderOnTop(Z)V
-HSPLandroid/view/SurfaceView;->setZOrderedOnTop(ZZ)Z
-HSPLandroid/view/SurfaceView;->surfaceCreated(Landroid/view/SurfaceControl$Transaction;)V
-HSPLandroid/view/SurfaceView;->surfaceDestroyed()V
-HSPLandroid/view/SurfaceView;->updateBackgroundColor(Landroid/view/SurfaceControl$Transaction;)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/view/SurfaceView;->updateBackgroundVisibility(Landroid/view/SurfaceControl$Transaction;)V
-HSPLandroid/view/SurfaceView;->updateEmbeddedAccessibilityMatrix(Z)V
-HSPLandroid/view/SurfaceView;->updateRelativeZ(Landroid/view/SurfaceControl$Transaction;)V
-HSPLandroid/view/SurfaceView;->updateSurface()V
-HSPLandroid/view/SurfaceView;->vriDrawStarted(Z)V
-HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;-><init>(Landroid/view/SurfaceControl;)V
-HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->build()Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;
-HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->withAlpha(F)Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;
-HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->withMatrix(Landroid/graphics/Matrix;)Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;
-HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->withVisibility(Z)Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;
-HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;-><init>(Landroid/view/SurfaceControl;IFLandroid/graphics/Matrix;Landroid/graphics/Rect;IFIZLandroid/view/SurfaceControl$Transaction;)V
-HSPLandroid/view/SyncRtSurfaceTransactionApplier;->applyParams(Landroid/view/SurfaceControl$Transaction;Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;[F)V
-HSPLandroid/view/TextureView;-><init>(Landroid/content/Context;)V
-HSPLandroid/view/TextureView;->applyUpdate()V
-HSPLandroid/view/TextureView;->destroyHardwareLayer()V
-HSPLandroid/view/TextureView;->destroyHardwareResources()V
-HSPLandroid/view/TextureView;->draw(Landroid/graphics/Canvas;)V
-HSPLandroid/view/TextureView;->getLayerType()I
-HSPLandroid/view/TextureView;->getTextureLayer()Landroid/graphics/TextureLayer;
-HSPLandroid/view/TextureView;->isOpaque()Z
-HSPLandroid/view/TextureView;->onAttachedToWindow()V
-HSPLandroid/view/TextureView;->onDetachedFromWindowInternal()V
-HSPLandroid/view/TextureView;->onSizeChanged(IIII)V
-HSPLandroid/view/TextureView;->onVisibilityChanged(Landroid/view/View;I)V
-HSPLandroid/view/TextureView;->releaseSurfaceTexture()V
-HSPLandroid/view/TextureView;->setSurfaceTextureListener(Landroid/view/TextureView$SurfaceTextureListener;)V
-HSPLandroid/view/TextureView;->updateLayer()V
-HSPLandroid/view/ThreadedRenderer$1$$ExternalSyntheticLambda0;-><init>(Ljava/util/ArrayList;)V
-HSPLandroid/view/ThreadedRenderer$1$$ExternalSyntheticLambda0;->onFrameCommit(Z)V
-HSPLandroid/view/ThreadedRenderer$1;-><init>(Landroid/view/ThreadedRenderer;Ljava/util/ArrayList;)V
-HSPLandroid/view/ThreadedRenderer$1;->lambda$onFrameDraw$0(Ljava/util/ArrayList;Z)V+]Landroid/graphics/HardwareRenderer$FrameCommitCallback;Landroid/view/ViewRootImpl$7$$ExternalSyntheticLambda0;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/view/ThreadedRenderer$1;->onFrameDraw(IJ)Landroid/graphics/HardwareRenderer$FrameCommitCallback;+]Landroid/graphics/HardwareRenderer$FrameDrawingCallback;Landroid/view/ViewRootImpl$3;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;->-$$Nest$fgetmSurfaceControl(Landroid/view/ThreadedRenderer$WebViewOverlayProvider;)Landroid/view/SurfaceControl;
-HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;-><clinit>()V
-HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;-><init>()V
-HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;-><init>(Landroid/view/ThreadedRenderer$WebViewOverlayProvider-IA;)V
-HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;->setBLASTBufferQueue(Landroid/graphics/BLASTBufferQueue;)V
-HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;->setSurfaceControl(Landroid/view/SurfaceControl;)V
-HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;->setSurfaceControlOpaque(Z)Z
-HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;->shouldEnableOverlaySupport()Z
-HSPLandroid/view/ThreadedRenderer;-><init>(Landroid/content/Context;ZLjava/lang/String;)V
-HSPLandroid/view/ThreadedRenderer;->access$000()Z
-HSPLandroid/view/ThreadedRenderer;->create(Landroid/content/Context;ZLjava/lang/String;)Landroid/view/ThreadedRenderer;
-HSPLandroid/view/ThreadedRenderer;->destroy()V
-HSPLandroid/view/ThreadedRenderer;->destroyHardwareResources(Landroid/view/View;)V
-HSPLandroid/view/ThreadedRenderer;->destroyResources(Landroid/view/View;)V
-HSPLandroid/view/ThreadedRenderer;->draw(Landroid/view/View;Landroid/view/View$AttachInfo;Landroid/view/ThreadedRenderer$DrawCallbacks;)V+]Landroid/view/ViewFrameInfo;Landroid/view/ViewFrameInfo;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;
-HSPLandroid/view/ThreadedRenderer;->dumpArgsToFlags([Ljava/lang/String;)I
-HSPLandroid/view/ThreadedRenderer;->getHeight()I
-HSPLandroid/view/ThreadedRenderer;->getWidth()I
-HSPLandroid/view/ThreadedRenderer;->handleDumpGfxInfo(Ljava/io/FileDescriptor;[Ljava/lang/String;)V
-HSPLandroid/view/ThreadedRenderer;->initialize(Landroid/view/Surface;)Z
-HSPLandroid/view/ThreadedRenderer;->initializeIfNeeded(IILandroid/view/View$AttachInfo;Landroid/view/Surface;Landroid/graphics/Rect;)Z
-HSPLandroid/view/ThreadedRenderer;->invalidateRoot()V
-HSPLandroid/view/ThreadedRenderer;->isEnabled()Z
-HSPLandroid/view/ThreadedRenderer;->isRequested()Z
-HSPLandroid/view/ThreadedRenderer;->loadSystemProperties()Z
-HSPLandroid/view/ThreadedRenderer;->registerRtFrameCallback(Landroid/graphics/HardwareRenderer$FrameDrawingCallback;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/view/ThreadedRenderer;->rendererOwnsSurfaceControlOpacity()Z
-HSPLandroid/view/ThreadedRenderer;->setEnabled(Z)V
-HSPLandroid/view/ThreadedRenderer;->setLightCenter(Landroid/view/View$AttachInfo;)V
-HSPLandroid/view/ThreadedRenderer;->setRequested(Z)V
-HSPLandroid/view/ThreadedRenderer;->setSurface(Landroid/view/Surface;)V
-HSPLandroid/view/ThreadedRenderer;->setSurfaceControl(Landroid/view/SurfaceControl;Landroid/graphics/BLASTBufferQueue;)V+]Landroid/view/ThreadedRenderer$WebViewOverlayProvider;Landroid/view/ThreadedRenderer$WebViewOverlayProvider;
-HSPLandroid/view/ThreadedRenderer;->setSurfaceControlOpaque(Z)Z
-HSPLandroid/view/ThreadedRenderer;->setup(IILandroid/view/View$AttachInfo;Landroid/graphics/Rect;)V
-HSPLandroid/view/ThreadedRenderer;->updateEnabledState(Landroid/view/Surface;)V
-HSPLandroid/view/ThreadedRenderer;->updateRootDisplayList(Landroid/view/View;Landroid/view/ThreadedRenderer$DrawCallbacks;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/view/ThreadedRenderer$DrawCallbacks;Landroid/view/ViewRootImpl;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;
-HSPLandroid/view/ThreadedRenderer;->updateSurface(Landroid/view/Surface;)V
-HSPLandroid/view/ThreadedRenderer;->updateViewTreeDisplayList(Landroid/view/View;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;
-HSPLandroid/view/ThreadedRenderer;->updateWebViewOverlayCallbacks()V+]Landroid/view/ThreadedRenderer$WebViewOverlayProvider;Landroid/view/ThreadedRenderer$WebViewOverlayProvider;
-HSPLandroid/view/TouchDelegate;-><init>(Landroid/graphics/Rect;Landroid/view/View;)V
-HSPLandroid/view/VelocityTracker;-><init>(I)V
-HSPLandroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V
-HSPLandroid/view/VelocityTracker;->clear()V
-HSPLandroid/view/VelocityTracker;->computeCurrentVelocity(I)V
-HSPLandroid/view/VelocityTracker;->computeCurrentVelocity(IF)V
-HSPLandroid/view/VelocityTracker;->finalize()V
-HSPLandroid/view/VelocityTracker;->getXVelocity()F
-HSPLandroid/view/VelocityTracker;->getXVelocity(I)F
-HSPLandroid/view/VelocityTracker;->getYVelocity()F
-HSPLandroid/view/VelocityTracker;->getYVelocity(I)F
-HSPLandroid/view/VelocityTracker;->obtain()Landroid/view/VelocityTracker;
-HSPLandroid/view/VelocityTracker;->recycle()V
-HSPLandroid/view/View$$ExternalSyntheticLambda4;-><init>(Landroid/view/View;)V
-HSPLandroid/view/View$$ExternalSyntheticLambda4;->run()V
-HSPLandroid/view/View$$ExternalSyntheticLambda5;->run()V
-HSPLandroid/view/View$$ExternalSyntheticLambda7;-><init>(Landroid/view/View;)V
-HSPLandroid/view/View$$ExternalSyntheticLambda7;->run()V
-HSPLandroid/view/View$12;->get(Landroid/view/View;)Ljava/lang/Float;
-HSPLandroid/view/View$12;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/view/View$12;->setValue(Landroid/view/View;F)V
-HSPLandroid/view/View$12;->setValue(Ljava/lang/Object;F)V+]Landroid/view/View$12;Landroid/view/View$12;
-HSPLandroid/view/View$13;->get(Landroid/view/View;)Ljava/lang/Float;
-HSPLandroid/view/View$13;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/view/View$13;->setValue(Landroid/view/View;F)V
-HSPLandroid/view/View$13;->setValue(Ljava/lang/Object;F)V
-HSPLandroid/view/View$1;-><init>(Landroid/view/View;Landroid/view/View$ListenerInfo;)V
-HSPLandroid/view/View$1;->positionChanged(JIIII)V
-HSPLandroid/view/View$1;->positionLost(J)V
-HSPLandroid/view/View$2;->get(Landroid/view/View;)Ljava/lang/Float;
-HSPLandroid/view/View$2;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/view/View$2;->setValue(Landroid/view/View;F)V
-HSPLandroid/view/View$2;->setValue(Ljava/lang/Object;F)V
-HSPLandroid/view/View$3;->get(Landroid/view/View;)Ljava/lang/Float;
-HSPLandroid/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
-HSPLandroid/view/View$4;->get(Landroid/view/View;)Ljava/lang/Float;
-HSPLandroid/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
-HSPLandroid/view/View$5;->get(Landroid/view/View;)Ljava/lang/Float;
-HSPLandroid/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$AccessibilityDelegate;-><init>()V
-HSPLandroid/view/View$AccessibilityDelegate;->getAccessibilityNodeProvider(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeProvider;
-HSPLandroid/view/View$AccessibilityDelegate;->sendAccessibilityEvent(Landroid/view/View;I)V
-HSPLandroid/view/View$AttachInfo;-><init>(Landroid/view/IWindowSession;Landroid/view/IWindow;Landroid/view/Display;Landroid/view/ViewRootImpl;Landroid/os/Handler;Landroid/view/View$AttachInfo$Callbacks;Landroid/content/Context;)V
-HSPLandroid/view/View$AttachInfo;->delayNotifyContentCaptureInsetsEvent(Landroid/graphics/Insets;)V
-HSPLandroid/view/View$AttachInfo;->ensureEvents(Landroid/view/contentcapture/ContentCaptureSession;)Ljava/util/ArrayList;
-HSPLandroid/view/View$BaseSavedState$1;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Landroid/view/View$BaseSavedState;
-HSPLandroid/view/View$BaseSavedState$1;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Ljava/lang/Object;
-HSPLandroid/view/View$BaseSavedState;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/View$BaseSavedState;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
-HSPLandroid/view/View$BaseSavedState;-><init>(Landroid/os/Parcelable;)V
-HSPLandroid/view/View$BaseSavedState;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/View$CheckForLongPress;->run()V
-HSPLandroid/view/View$CheckForTap;->run()V
-HSPLandroid/view/View$ForegroundInfo;->-$$Nest$fgetmInsidePadding(Landroid/view/View$ForegroundInfo;)Z
-HSPLandroid/view/View$ForegroundInfo;->-$$Nest$fputmInsidePadding(Landroid/view/View$ForegroundInfo;Z)V
-HSPLandroid/view/View$ForegroundInfo;-><init>()V
-HSPLandroid/view/View$ListenerInfo;->-$$Nest$fgetmHandwritingArea(Landroid/view/View$ListenerInfo;)Landroid/graphics/Rect;
-HSPLandroid/view/View$ListenerInfo;->-$$Nest$fgetmKeepClearRects(Landroid/view/View$ListenerInfo;)Ljava/util/List;
-HSPLandroid/view/View$ListenerInfo;->-$$Nest$fgetmPreferKeepClear(Landroid/view/View$ListenerInfo;)Z
-HSPLandroid/view/View$ListenerInfo;->-$$Nest$fgetmUnrestrictedKeepClearRects(Landroid/view/View$ListenerInfo;)Ljava/util/List;
-HSPLandroid/view/View$ListenerInfo;->-$$Nest$fputmHandwritingArea(Landroid/view/View$ListenerInfo;Landroid/graphics/Rect;)V
-HSPLandroid/view/View$ListenerInfo;->-$$Nest$fputmPositionChangedUpdate(Landroid/view/View$ListenerInfo;Ljava/lang/Runnable;)V
-HSPLandroid/view/View$ListenerInfo;-><init>()V
-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+]Landroid/graphics/Interpolator;Landroid/graphics/Interpolator;]Landroid/view/View;missing_types
-HSPLandroid/view/View$TintInfo;-><init>()V
-HSPLandroid/view/View$TransformationInfo;-><init>()V
-HSPLandroid/view/View$UnsetPressedState;->run()V
-HSPLandroid/view/View$VisibilityChangeForAutofillHandler;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/view/View;-><init>(Landroid/content/Context;)V+]Landroid/view/View;missing_types]Ljava/lang/Object;missing_types]Landroid/content/Context;missing_types]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Ljava/lang/Class;Ljava/lang/Class;
-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+]Landroid/view/View;missing_types]Landroid/content/Context;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;
-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;
-HSPLandroid/view/View;->announceForAccessibility(Ljava/lang/CharSequence;)V
-HSPLandroid/view/View;->appendId(Ljava/lang/StringBuilder;)V
-HSPLandroid/view/View;->applyBackgroundTint()V
-HSPLandroid/view/View;->applyForegroundTint()V
-HSPLandroid/view/View;->applyInsets(Landroid/graphics/Rect;)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
-HSPLandroid/view/View;->awakenScrollBars(IZ)Z+]Landroid/os/Handler;Landroid/view/ViewRootImpl$ViewRootHandler;]Landroid/view/View;Landroid/widget/ImageView;,Landroid/widget/TextView;,Landroid/widget/LinearLayout;
-HSPLandroid/view/View;->bringToFront()V
-HSPLandroid/view/View;->buildDrawingCache(Z)V
-HSPLandroid/view/View;->buildDrawingCacheImpl(Z)V
-HSPLandroid/view/View;->buildLayer()V
-HSPLandroid/view/View;->calculateAccessibilityDataSensitive()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+]Landroid/view/View;missing_types]Landroid/view/ViewParent;missing_types
-HSPLandroid/view/View;->canResolveTextDirection()Z+]Landroid/view/View;missing_types]Landroid/view/ViewParent;missing_types
-HSPLandroid/view/View;->canScrollHorizontally(I)Z
-HSPLandroid/view/View;->canScrollVertically(I)Z
-HSPLandroid/view/View;->canTakeFocus()Z
-HSPLandroid/view/View;->cancel(Landroid/view/View$SendAccessibilityEventThrottle;)V
-HSPLandroid/view/View;->cancelLongPress()V
-HSPLandroid/view/View;->cancelPendingInputEvents()V
-HSPLandroid/view/View;->checkForLongClick(JFFI)V
-HSPLandroid/view/View;->checkInputConnectionProxy(Landroid/view/View;)Z
-HSPLandroid/view/View;->cleanupDraw()V
-HSPLandroid/view/View;->clearAccessibilityFocus()V
-HSPLandroid/view/View;->clearAccessibilityFocusNoCallbacks(I)V
-HSPLandroid/view/View;->clearAccessibilityThrottles()V
-HSPLandroid/view/View;->clearAnimation()V
-HSPLandroid/view/View;->clearFocus()V
-HSPLandroid/view/View;->clearFocusInternal(Landroid/view/View;ZZ)V
-HSPLandroid/view/View;->clearParentsWantFocus()V
-HSPLandroid/view/View;->clearTranslationState()V
-HSPLandroid/view/View;->clearViewTranslationResponse()V
-HSPLandroid/view/View;->collectPreferKeepClearRects()Ljava/util/List;
-HSPLandroid/view/View;->collectUnrestrictedPreferKeepClearRects()Ljava/util/List;
-HSPLandroid/view/View;->combineMeasuredStates(II)I
-HSPLandroid/view/View;->combineVisibility(II)I
-HSPLandroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
-HSPLandroid/view/View;->computeHorizontalScrollExtent()I
-HSPLandroid/view/View;->computeHorizontalScrollOffset()I
-HSPLandroid/view/View;->computeHorizontalScrollRange()I
-HSPLandroid/view/View;->computeOpaqueFlags()V
-HSPLandroid/view/View;->computeScroll()V
-HSPLandroid/view/View;->computeSystemWindowInsets(Landroid/view/WindowInsets;Landroid/graphics/Rect;)Landroid/view/WindowInsets;
-HSPLandroid/view/View;->computeVerticalScrollExtent()I+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->computeVerticalScrollOffset()I
-HSPLandroid/view/View;->computeVerticalScrollRange()I+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->damageInParent()V
-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+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Landroid/view/View;missing_types]Landroid/view/HandlerActionQueue;Landroid/view/HandlerActionQueue;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/concurrent/CopyOnWriteArrayList;Ljava/util/concurrent/CopyOnWriteArrayList;]Ljava/util/Iterator;Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;
-HSPLandroid/view/View;->dispatchCancelPendingInputEvents()V
-HSPLandroid/view/View;->dispatchCollectViewAttributes(Landroid/view/View$AttachInfo;I)V+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V
-HSPLandroid/view/View;->dispatchDetachedFromWindow()V+]Landroid/view/View;missing_types]Ljava/util/List;Ljava/util/Collections$EmptyList;]Landroid/view/ImeFocusController;Landroid/view/ImeFocusController;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/view/View;->dispatchDraw(Landroid/graphics/Canvas;)V
-HSPLandroid/view/View;->dispatchDrawableHotspotChanged(FF)V
-HSPLandroid/view/View;->dispatchFinishTemporaryDetach()V
-HSPLandroid/view/View;->dispatchInitialProvideContentCaptureStructure()V
-HSPLandroid/view/View;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z
-HSPLandroid/view/View;->dispatchKeyEventPreIme(Landroid/view/KeyEvent;)Z
-HSPLandroid/view/View;->dispatchNestedFling(FFZ)Z
-HSPLandroid/view/View;->dispatchNestedPreFling(FF)Z
-HSPLandroid/view/View;->dispatchNestedPreScroll(II[I[I)Z
-HSPLandroid/view/View;->dispatchNestedScroll(IIII[I)Z
-HSPLandroid/view/View;->dispatchPointerEvent(Landroid/view/MotionEvent;)Z
-HSPLandroid/view/View;->dispatchProvideAutofillStructure(Landroid/view/ViewStructure;I)V
-HSPLandroid/view/View;->dispatchProvideContentCaptureStructure()V
-HSPLandroid/view/View;->dispatchProvideStructure(Landroid/view/ViewStructure;II)V
-HSPLandroid/view/View;->dispatchRestoreInstanceState(Landroid/util/SparseArray;)V
-HSPLandroid/view/View;->dispatchSaveInstanceState(Landroid/util/SparseArray;)V
-HSPLandroid/view/View;->dispatchScreenStateChanged(I)V
-HSPLandroid/view/View;->dispatchSetActivated(Z)V
-HSPLandroid/view/View;->dispatchSetPressed(Z)V
-HSPLandroid/view/View;->dispatchSetSelected(Z)V
-HSPLandroid/view/View;->dispatchStartTemporaryDetach()V
-HSPLandroid/view/View;->dispatchSystemUiVisibilityChanged(I)V
-HSPLandroid/view/View;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
-HSPLandroid/view/View;->dispatchVisibilityAggregated(Z)Z+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->dispatchVisibilityChanged(Landroid/view/View;I)V
-HSPLandroid/view/View;->dispatchWindowFocusChanged(Z)V
-HSPLandroid/view/View;->dispatchWindowInsetsAnimationEnd(Landroid/view/WindowInsetsAnimation;)V
-HSPLandroid/view/View;->dispatchWindowSystemUiVisiblityChanged(I)V
-HSPLandroid/view/View;->dispatchWindowVisibilityChanged(I)V
-HSPLandroid/view/View;->draw(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->draw(Landroid/graphics/Canvas;Landroid/view/ViewGroup;J)Z+]Landroid/view/View;missing_types]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;]Landroid/view/ViewGroup;Landroid/widget/FrameLayout;]Landroid/view/animation/Transformation;Landroid/view/animation/Transformation;]Landroid/view/animation/Animation;Landroid/view/animation/TranslateAnimation;,Landroid/view/animation/AlphaAnimation;
-HSPLandroid/view/View;->drawAutofilledHighlight(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->drawBackground(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;
-HSPLandroid/view/View;->drawDefaultFocusHighlight(Landroid/graphics/Canvas;)V
-HSPLandroid/view/View;->drawableHotspotChanged(FF)V
-HSPLandroid/view/View;->drawableStateChanged()V+]Landroid/animation/StateListAnimator;Landroid/animation/StateListAnimator;]Landroid/view/View;missing_types]Landroid/graphics/drawable/Drawable;Landroid/widget/ScrollBarDrawable;,Landroid/graphics/drawable/RippleDrawable;,Landroid/graphics/drawable/InsetDrawable;,Landroid/graphics/drawable/StateListDrawable;,Landroid/graphics/drawable/ColorDrawable;
-HSPLandroid/view/View;->drawsWithRenderNode(Landroid/graphics/Canvas;)Z+]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;
-HSPLandroid/view/View;->ensureTransformationInfo()V
-HSPLandroid/view/View;->findAccessibilityFocusHost(Z)Landroid/view/View;
-HSPLandroid/view/View;->findFocus()Landroid/view/View;
-HSPLandroid/view/View;->findFrameMetricsObserver(Landroid/view/Window$OnFrameMetricsAvailableListener;)Landroid/view/FrameMetricsObserver;
-HSPLandroid/view/View;->findKeyboardNavigationCluster()Landroid/view/View;
-HSPLandroid/view/View;->findOnBackInvokedDispatcher()Landroid/window/OnBackInvokedDispatcher;
-HSPLandroid/view/View;->findUserSetNextFocus(Landroid/view/View;I)Landroid/view/View;
-HSPLandroid/view/View;->findViewByAutofillIdTraversal(I)Landroid/view/View;
-HSPLandroid/view/View;->findViewById(I)Landroid/view/View;
-HSPLandroid/view/View;->findViewTraversal(I)Landroid/view/View;
-HSPLandroid/view/View;->findViewWithTag(Ljava/lang/Object;)Landroid/view/View;
-HSPLandroid/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
-HSPLandroid/view/View;->focusSearch(I)Landroid/view/View;
-HSPLandroid/view/View;->forceLayout()V
-HSPLandroid/view/View;->gatherTransparentRegion(Landroid/graphics/Region;)Z
-HSPLandroid/view/View;->generateViewId()I
-HSPLandroid/view/View;->getAccessibilityClassName()Ljava/lang/CharSequence;
-HSPLandroid/view/View;->getAccessibilityDelegate()Landroid/view/View$AccessibilityDelegate;
-HSPLandroid/view/View;->getAccessibilityLiveRegion()I
-HSPLandroid/view/View;->getAccessibilityNodeProvider()Landroid/view/accessibility/AccessibilityNodeProvider;
-HSPLandroid/view/View;->getAccessibilityViewId()I
-HSPLandroid/view/View;->getAlpha()F
-HSPLandroid/view/View;->getAndCacheContentCaptureSession()Landroid/view/contentcapture/ContentCaptureSession;
-HSPLandroid/view/View;->getAnimation()Landroid/view/animation/Animation;
-HSPLandroid/view/View;->getApplicationWindowToken()Landroid/os/IBinder;
-HSPLandroid/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
-HSPLandroid/view/View;->getBoundsOnScreen(Landroid/graphics/Rect;)V
-HSPLandroid/view/View;->getBoundsOnScreen(Landroid/graphics/Rect;Z)V
-HSPLandroid/view/View;->getClipBounds()Landroid/graphics/Rect;
-HSPLandroid/view/View;->getClipToOutline()Z
-HSPLandroid/view/View;->getContentCaptureSession()Landroid/view/contentcapture/ContentCaptureSession;
-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;+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/drawable/Drawable;missing_types]Ljava/lang/Object;missing_types]Ljava/lang/Class;Ljava/lang/Class;
-HSPLandroid/view/View;->getDrawableState()[I+]Landroid/view/View;missing_types
-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;->getFilterTouchesWhenObscured()Z
-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;->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;
-HSPLandroid/view/View;->getHasOverlappingRendering()Z+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->getHeight()I
-HSPLandroid/view/View;->getHitRect(Landroid/graphics/Rect;)V
-HSPLandroid/view/View;->getHorizontalFadingEdgeLength()I
-HSPLandroid/view/View;->getHorizontalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
-HSPLandroid/view/View;->getHorizontalScrollbarHeight()I
-HSPLandroid/view/View;->getId()I
-HSPLandroid/view/View;->getImportantForAccessibility()I
-HSPLandroid/view/View;->getImportantForAutofill()I
-HSPLandroid/view/View;->getImportantForContentCapture()I
-HSPLandroid/view/View;->getInverseMatrix()Landroid/graphics/Matrix;
-HSPLandroid/view/View;->getKeyDispatcherState()Landroid/view/KeyEvent$DispatcherState;
-HSPLandroid/view/View;->getLayerType()I
-HSPLandroid/view/View;->getLayoutDirection()I+]Landroid/view/View;missing_types]Landroid/content/Context;missing_types
-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
-HSPLandroid/view/View;->getLocationInSurface([I)V
-HSPLandroid/view/View;->getLocationInWindow([I)V+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->getLocationOnScreen()[I
-HSPLandroid/view/View;->getLocationOnScreen([I)V+]Landroid/view/View;missing_types]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;
-HSPLandroid/view/View;->getMatrix()Landroid/graphics/Matrix;+]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;
-HSPLandroid/view/View;->getMeasuredHeight()I
-HSPLandroid/view/View;->getMeasuredState()I
-HSPLandroid/view/View;->getMeasuredWidth()I
-HSPLandroid/view/View;->getMeasuredWidthAndState()I
-HSPLandroid/view/View;->getMinimumHeight()I
-HSPLandroid/view/View;->getMinimumWidth()I
-HSPLandroid/view/View;->getNotifiedContentCaptureAppeared()Z
-HSPLandroid/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;
-HSPLandroid/view/View;->getPivotX()F
-HSPLandroid/view/View;->getPivotY()F
-HSPLandroid/view/View;->getProjectionReceiver()Landroid/view/View;
-HSPLandroid/view/View;->getRawLayoutDirection()I
-HSPLandroid/view/View;->getRawTextAlignment()I
-HSPLandroid/view/View;->getRawTextDirection()I
-HSPLandroid/view/View;->getReceiveContentMimeTypes()[Ljava/lang/String;
-HSPLandroid/view/View;->getResources()Landroid/content/res/Resources;
-HSPLandroid/view/View;->getRight()I
-HSPLandroid/view/View;->getRootView()Landroid/view/View;
-HSPLandroid/view/View;->getRootWindowInsets()Landroid/view/WindowInsets;
-HSPLandroid/view/View;->getRotation()F
-HSPLandroid/view/View;->getRotationX()F
-HSPLandroid/view/View;->getRotationY()F
-HSPLandroid/view/View;->getRunQueue()Landroid/view/HandlerActionQueue;
-HSPLandroid/view/View;->getScaleX()F+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;
-HSPLandroid/view/View;->getScaleY()F+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;
-HSPLandroid/view/View;->getScrollX()I
-HSPLandroid/view/View;->getScrollY()I
-HSPLandroid/view/View;->getSolidColor()I
-HSPLandroid/view/View;->getStateListAnimator()Landroid/animation/StateListAnimator;
-HSPLandroid/view/View;->getStraightVerticalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->getSuggestedMinimumHeight()I+]Landroid/graphics/drawable/Drawable;missing_types
-HSPLandroid/view/View;->getSuggestedMinimumWidth()I+]Landroid/graphics/drawable/Drawable;missing_types
-HSPLandroid/view/View;->getSystemGestureExclusionRects()Ljava/util/List;
-HSPLandroid/view/View;->getSystemUiVisibility()I
-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
-HSPLandroid/view/View;->getTransitionName()Ljava/lang/String;
-HSPLandroid/view/View;->getTranslationX()F
-HSPLandroid/view/View;->getTranslationY()F+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;
-HSPLandroid/view/View;->getTranslationZ()F
-HSPLandroid/view/View;->getVerticalFadingEdgeLength()I
-HSPLandroid/view/View;->getVerticalScrollbarWidth()I+]Landroid/widget/ScrollBarDrawable;Landroid/widget/ScrollBarDrawable;
-HSPLandroid/view/View;->getViewRootImpl()Landroid/view/ViewRootImpl;
-HSPLandroid/view/View;->getViewTranslationCallback()Landroid/view/translation/ViewTranslationCallback;
-HSPLandroid/view/View;->getViewTreeObserver()Landroid/view/ViewTreeObserver;
-HSPLandroid/view/View;->getVisibility()I
-HSPLandroid/view/View;->getWidth()I
-HSPLandroid/view/View;->getWindowAttachCount()I
-HSPLandroid/view/View;->getWindowId()Landroid/view/WindowId;
-HSPLandroid/view/View;->getWindowInsetsController()Landroid/view/WindowInsetsController;+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;
-HSPLandroid/view/View;->getWindowSystemUiVisibility()I
-HSPLandroid/view/View;->getWindowToken()Landroid/os/IBinder;
-HSPLandroid/view/View;->getWindowVisibility()I
-HSPLandroid/view/View;->getWindowVisibleDisplayFrame(Landroid/graphics/Rect;)V
-HSPLandroid/view/View;->getX()F
-HSPLandroid/view/View;->getY()F
-HSPLandroid/view/View;->getZ()F
-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+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;
-HSPLandroid/view/View;->hasImeFocus()Z
-HSPLandroid/view/View;->hasListenersForAccessibility()Z
-HSPLandroid/view/View;->hasNestedScrollingParent()Z
-HSPLandroid/view/View;->hasOnClickListeners()Z
-HSPLandroid/view/View;->hasOverlappingRendering()Z
-HSPLandroid/view/View;->hasRtlSupport()Z
-HSPLandroid/view/View;->hasSize()Z
-HSPLandroid/view/View;->hasTransientState()Z
-HSPLandroid/view/View;->hasTranslationTransientState()Z
-HSPLandroid/view/View;->hasUnhandledKeyListener()Z
-HSPLandroid/view/View;->hasWindowFocus()Z
-HSPLandroid/view/View;->hasWindowInsetsAnimationCallback()Z
-HSPLandroid/view/View;->hideAutofillHighlight()Z
-HSPLandroid/view/View;->hideTooltip()V
-HSPLandroid/view/View;->includeForAccessibility()Z
-HSPLandroid/view/View;->includeForAccessibility(Z)Z
-HSPLandroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;
-HSPLandroid/view/View;->initScrollCache()V
-HSPLandroid/view/View;->initialAwakenScrollBars()Z+]Landroid/view/View;Landroid/widget/ScrollView;
-HSPLandroid/view/View;->initializeFadingEdgeInternal(Landroid/content/res/TypedArray;)V
-HSPLandroid/view/View;->initializeScrollIndicatorsInternal()V
-HSPLandroid/view/View;->initializeScrollbarsInternal(Landroid/content/res/TypedArray;)V
-HSPLandroid/view/View;->internalSetPadding(IIII)V
-HSPLandroid/view/View;->invalidate()V+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->invalidate(IIII)V+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->invalidate(Landroid/graphics/Rect;)V+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->invalidate(Z)V+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/view/View;missing_types]Landroid/graphics/drawable/Drawable;missing_types
-HSPLandroid/view/View;->invalidateInternal(IIIIZZ)V+]Landroid/view/View;megamorphic_types]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ViewParent;missing_types]Landroid/graphics/drawable/Drawable;missing_types
-HSPLandroid/view/View;->invalidateOutline()V
-HSPLandroid/view/View;->invalidateParentCaches()V
-HSPLandroid/view/View;->invalidateParentIfNeeded()V
-HSPLandroid/view/View;->invalidateParentIfNeededAndWasQuickRejected()V
-HSPLandroid/view/View;->invalidateViewProperty(ZZ)V
-HSPLandroid/view/View;->isAccessibilityFocused()Z
-HSPLandroid/view/View;->isAccessibilityFocusedViewOrHost()Z
-HSPLandroid/view/View;->isAccessibilityPane()Z
-HSPLandroid/view/View;->isActionableForAccessibility()Z
-HSPLandroid/view/View;->isActivated()Z
-HSPLandroid/view/View;->isAggregatedVisible()Z
-HSPLandroid/view/View;->isAttachedToWindow()Z
-HSPLandroid/view/View;->isAutoHandwritingEnabled()Z
-HSPLandroid/view/View;->isAutofillable()Z+]Landroid/view/View;missing_types]Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager;
-HSPLandroid/view/View;->isAutofilled()Z
-HSPLandroid/view/View;->isClickable()Z
-HSPLandroid/view/View;->isContextClickable()Z
-HSPLandroid/view/View;->isCredential()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;->isFocusableInTouchMode()Z
-HSPLandroid/view/View;->isFocused()Z
-HSPLandroid/view/View;->isFocusedByDefault()Z
-HSPLandroid/view/View;->isForegroundInsidePadding()Z
-HSPLandroid/view/View;->isFrameworkOptionalFitsSystemWindows()Z
-HSPLandroid/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+]Landroid/view/View;missing_types]Landroid/view/ViewParent;missing_types
-HSPLandroid/view/View;->isImportantForContentCapture()Z
-HSPLandroid/view/View;->isInEditMode()Z
-HSPLandroid/view/View;->isInLayout()Z
-HSPLandroid/view/View;->isInScrollingContainer()Z
-HSPLandroid/view/View;->isInTouchMode()Z
-HSPLandroid/view/View;->isKeyboardNavigationCluster()Z
-HSPLandroid/view/View;->isLaidOut()Z
-HSPLandroid/view/View;->isLayoutDirectionInherited()Z
-HSPLandroid/view/View;->isLayoutDirectionResolved()Z
-HSPLandroid/view/View;->isLayoutModeOptical(Ljava/lang/Object;)Z+]Landroid/view/ViewGroup;missing_types
-HSPLandroid/view/View;->isLayoutRequested()Z
-HSPLandroid/view/View;->isLayoutRtl()Z
-HSPLandroid/view/View;->isLayoutValid()Z+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->isLongClickable()Z
-HSPLandroid/view/View;->isNestedScrollingEnabled()Z
-HSPLandroid/view/View;->isOpaque()Z
-HSPLandroid/view/View;->isPaddingResolved()Z
-HSPLandroid/view/View;->isPressed()Z
-HSPLandroid/view/View;->isProjectionReceiver()Z
-HSPLandroid/view/View;->isRootNamespace()Z
-HSPLandroid/view/View;->isRtlCompatibilityMode()Z
-HSPLandroid/view/View;->isSelected()Z
-HSPLandroid/view/View;->isShowingLayoutBounds()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
-HSPLandroid/view/View;->isViewIdGenerated(I)Z
-HSPLandroid/view/View;->isVisibleToUser()Z
-HSPLandroid/view/View;->isVisibleToUser(Landroid/graphics/Rect;)Z
-HSPLandroid/view/View;->jumpDrawablesToCurrentState()V
-HSPLandroid/view/View;->layout(IIII)V+]Landroid/view/View;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/view/View;->makeFrameworkOptionalFitsSystemWindows()V
-HSPLandroid/view/View;->makeOptionalFitsSystemWindows()V
-HSPLandroid/view/View;->mapRectFromViewToScreenCoords(Landroid/graphics/RectF;Z)V
-HSPLandroid/view/View;->mapRectFromViewToWindowCoords(Landroid/graphics/RectF;Z)V
-HSPLandroid/view/View;->measure(II)V+]Landroid/view/View;megamorphic_types]Landroid/util/LongSparseLongArray;Landroid/util/LongSparseLongArray;
-HSPLandroid/view/View;->mergeDrawableStates([I[I)[I
-HSPLandroid/view/View;->needGlobalAttributesUpdate(Z)V
-HSPLandroid/view/View;->needRtlPropertiesResolution()Z
-HSPLandroid/view/View;->notifyAppearedOrDisappearedForContentCaptureIfNeeded(Z)V
-HSPLandroid/view/View;->notifyAutofillManagerOnClick()V
-HSPLandroid/view/View;->notifyEnterOrExitForAutoFillIfNeeded(Z)V
-HSPLandroid/view/View;->notifyGlobalFocusCleared(Landroid/view/View;)V
-HSPLandroid/view/View;->notifySubtreeAccessibilityStateChangedByParentIfNeeded()V
-HSPLandroid/view/View;->notifySubtreeAccessibilityStateChangedIfNeeded()V
-HSPLandroid/view/View;->notifyViewAccessibilityStateChangedIfNeeded(I)V
-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;->onApplyFrameworkOptionalFitSystemWindows(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
-HSPLandroid/view/View;->onApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
-HSPLandroid/view/View;->onAttachedToWindow()V+]Landroid/view/accessibility/AccessibilityNodeIdManager;Landroid/view/accessibility/AccessibilityNodeIdManager;]Landroid/view/View;missing_types
-HSPLandroid/view/View;->onCancelPendingInputEvents()V
-HSPLandroid/view/View;->onCheckIsTextEditor()Z
-HSPLandroid/view/View;->onCloseSystemDialogs(Ljava/lang/String;)V
-HSPLandroid/view/View;->onConfigurationChanged(Landroid/content/res/Configuration;)V
-HSPLandroid/view/View;->onCreateDrawableState(I)[I+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->onCreateInputConnection(Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection;
-HSPLandroid/view/View;->onDetachedFromWindow()V
-HSPLandroid/view/View;->onDetachedFromWindowInternal()V+]Landroid/view/accessibility/AccessibilityNodeIdManager;Landroid/view/accessibility/AccessibilityNodeIdManager;]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;
-HSPLandroid/view/View;->onDraw(Landroid/graphics/Canvas;)V
-HSPLandroid/view/View;->onDrawForeground(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->onDrawHorizontalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V
-HSPLandroid/view/View;->onDrawScrollBars(Landroid/graphics/Canvas;)V+]Landroid/graphics/Interpolator;Landroid/graphics/Interpolator;]Landroid/view/View;missing_types]Landroid/widget/ScrollBarDrawable;Landroid/widget/ScrollBarDrawable;
-HSPLandroid/view/View;->onDrawScrollIndicators(Landroid/graphics/Canvas;)V
-HSPLandroid/view/View;->onDrawVerticalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V+]Landroid/graphics/drawable/Drawable;Landroid/widget/ScrollBarDrawable;
-HSPLandroid/view/View;->onFilterTouchEventForSecurity(Landroid/view/MotionEvent;)Z
-HSPLandroid/view/View;->onFinishInflate()V
-HSPLandroid/view/View;->onFinishTemporaryDetach()V
-HSPLandroid/view/View;->onFocusChanged(ZILandroid/graphics/Rect;)V
-HSPLandroid/view/View;->onFocusLost()V
-HSPLandroid/view/View;->onKeyDown(ILandroid/view/KeyEvent;)Z
-HSPLandroid/view/View;->onKeyPreIme(ILandroid/view/KeyEvent;)Z
-HSPLandroid/view/View;->onKeyUp(ILandroid/view/KeyEvent;)Z
-HSPLandroid/view/View;->onLayout(ZIIII)V
-HSPLandroid/view/View;->onMeasure(II)V+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->onProvideAutofillStructure(Landroid/view/ViewStructure;I)V
-HSPLandroid/view/View;->onProvideAutofillVirtualStructure(Landroid/view/ViewStructure;I)V
-HSPLandroid/view/View;->onProvideContentCaptureStructure(Landroid/view/ViewStructure;I)V
-HSPLandroid/view/View;->onProvideStructure(Landroid/view/ViewStructure;II)V
-HSPLandroid/view/View;->onResolveDrawables(I)V
-HSPLandroid/view/View;->onRestoreInstanceState(Landroid/os/Parcelable;)V
-HSPLandroid/view/View;->onRtlPropertiesChanged(I)V
-HSPLandroid/view/View;->onSaveInstanceState()Landroid/os/Parcelable;
-HSPLandroid/view/View;->onScreenStateChanged(I)V
-HSPLandroid/view/View;->onScrollChanged(IIII)V
-HSPLandroid/view/View;->onSetAlpha(I)Z
-HSPLandroid/view/View;->onSizeChanged(IIII)V
-HSPLandroid/view/View;->onStartTemporaryDetach()V
-HSPLandroid/view/View;->onTouchEvent(Landroid/view/MotionEvent;)Z
-HSPLandroid/view/View;->onVisibilityAggregated(Z)V+]Landroid/view/View;megamorphic_types]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Landroid/graphics/drawable/Drawable;missing_types
-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
-HSPLandroid/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
-HSPLandroid/view/View;->performHapticFeedback(I)Z
-HSPLandroid/view/View;->performHapticFeedback(II)Z
-HSPLandroid/view/View;->performLongClick()Z
-HSPLandroid/view/View;->performLongClick(FF)Z
-HSPLandroid/view/View;->performLongClickInternal(FF)Z
-HSPLandroid/view/View;->playSoundEffect(I)V
-HSPLandroid/view/View;->pointInView(FF)Z
-HSPLandroid/view/View;->pointInView(FFF)Z
-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+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;
-HSPLandroid/view/View;->postOnAnimation(Ljava/lang/Runnable;)V
-HSPLandroid/view/View;->postOnAnimationDelayed(Ljava/lang/Runnable;J)V
-HSPLandroid/view/View;->postSendViewScrolledAccessibilityEventCallback(II)V
-HSPLandroid/view/View;->postUpdate(Ljava/lang/Runnable;)V
-HSPLandroid/view/View;->rebuildOutline()V+]Landroid/view/ViewOutlineProvider;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Landroid/graphics/Outline;Landroid/graphics/Outline;
-HSPLandroid/view/View;->recomputePadding()V
-HSPLandroid/view/View;->refreshDrawableState()V
-HSPLandroid/view/View;->registerPendingFrameMetricsObservers()V
-HSPLandroid/view/View;->removeCallbacks(Ljava/lang/Runnable;)Z
-HSPLandroid/view/View;->removeFrameMetricsListener(Landroid/view/Window$OnFrameMetricsAvailableListener;)V
-HSPLandroid/view/View;->removeLongPressCallback()V
-HSPLandroid/view/View;->removeOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V
-HSPLandroid/view/View;->removeOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V
-HSPLandroid/view/View;->removePerformClickCallback()V
-HSPLandroid/view/View;->removeTapCallback()V
-HSPLandroid/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+]Landroid/view/View;missing_types]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/util/LongSparseLongArray;Landroid/util/LongSparseLongArray;]Landroid/view/ViewParent;missing_types
-HSPLandroid/view/View;->requestRectangleOnScreen(Landroid/graphics/Rect;)Z
-HSPLandroid/view/View;->requestRectangleOnScreen(Landroid/graphics/Rect;Z)Z
-HSPLandroid/view/View;->requireViewById(I)Landroid/view/View;
-HSPLandroid/view/View;->resetDisplayList()V
-HSPLandroid/view/View;->resetPressedState()V
-HSPLandroid/view/View;->resetResolvedDrawables()V
-HSPLandroid/view/View;->resetResolvedDrawablesInternal()V
-HSPLandroid/view/View;->resetResolvedLayoutDirection()V
-HSPLandroid/view/View;->resetResolvedPadding()V
-HSPLandroid/view/View;->resetResolvedPaddingInternal()V
-HSPLandroid/view/View;->resetResolvedTextAlignment()V
-HSPLandroid/view/View;->resetResolvedTextDirection()V
-HSPLandroid/view/View;->resetRtlProperties()V
-HSPLandroid/view/View;->resetSubtreeAccessibilityStateChanged()V
-HSPLandroid/view/View;->resolveDrawables()V
-HSPLandroid/view/View;->resolveLayoutDirection()Z
-HSPLandroid/view/View;->resolveLayoutParams()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup$LayoutParams;missing_types
-HSPLandroid/view/View;->resolvePadding()V+]Landroid/view/View;missing_types]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/InsetDrawable;,Landroid/graphics/drawable/RippleDrawable;,Landroid/graphics/drawable/ColorDrawable;
-HSPLandroid/view/View;->resolveRtlPropertiesIfNeeded()Z+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->resolveSize(II)I
-HSPLandroid/view/View;->resolveSizeAndState(III)I
-HSPLandroid/view/View;->resolveTextAlignment()Z
-HSPLandroid/view/View;->resolveTextDirection()Z
-HSPLandroid/view/View;->restoreHierarchyState(Landroid/util/SparseArray;)V
-HSPLandroid/view/View;->retrieveExplicitStyle(Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
-HSPLandroid/view/View;->rootViewRequestFocus()Z
-HSPLandroid/view/View;->sanitizeFloatPropertyValue(FLjava/lang/String;)F
-HSPLandroid/view/View;->sanitizeFloatPropertyValue(FLjava/lang/String;FF)F
-HSPLandroid/view/View;->saveAttributeDataForStyleable(Landroid/content/Context;[ILandroid/util/AttributeSet;Landroid/content/res/TypedArray;II)V
-HSPLandroid/view/View;->saveHierarchyState(Landroid/util/SparseArray;)V
-HSPLandroid/view/View;->scheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;J)V
-HSPLandroid/view/View;->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;->setAccessibilityHeading(Z)V
-HSPLandroid/view/View;->setAccessibilityLiveRegion(I)V
-HSPLandroid/view/View;->setAccessibilityPaneTitle(Ljava/lang/CharSequence;)V
-HSPLandroid/view/View;->setAccessibilityTraversalAfter(I)V
-HSPLandroid/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;->setAutoHandwritingEnabled(Z)V
-HSPLandroid/view/View;->setAutofilled(ZZ)V
-HSPLandroid/view/View;->setBackground(Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/view/View;->setBackgroundBounds()V+]Landroid/graphics/drawable/Drawable;missing_types
-HSPLandroid/view/View;->setBackgroundColor(I)V
-HSPLandroid/view/View;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/view/View;missing_types]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable;,Landroid/graphics/drawable/RippleDrawable;,Landroid/graphics/drawable/ColorDrawable;
-HSPLandroid/view/View;->setBackgroundRenderNodeProperties(Landroid/graphics/RenderNode;)V+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;
-HSPLandroid/view/View;->setBackgroundResource(I)V
-HSPLandroid/view/View;->setBackgroundTintList(Landroid/content/res/ColorStateList;)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;->setDetached(Z)V
-HSPLandroid/view/View;->setDisplayListProperties(Landroid/graphics/RenderNode;)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;
-HSPLandroid/view/View;->setDrawingCacheEnabled(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+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager;]Landroid/view/ViewParent;missing_types
-HSPLandroid/view/View;->setFocusable(I)V
-HSPLandroid/view/View;->setFocusable(Z)V
-HSPLandroid/view/View;->setFocusableInTouchMode(Z)V
-HSPLandroid/view/View;->setForeground(Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/view/View;->setForegroundGravity(I)V
-HSPLandroid/view/View;->setFrame(IIII)Z+]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;
-HSPLandroid/view/View;->setHandwritingArea(Landroid/graphics/Rect;)V
-HSPLandroid/view/View;->setHapticFeedbackEnabled(Z)V
-HSPLandroid/view/View;->setHasTransientState(Z)V
-HSPLandroid/view/View;->setHorizontalFadingEdgeEnabled(Z)V
-HSPLandroid/view/View;->setHorizontalScrollBarEnabled(Z)V
-HSPLandroid/view/View;->setId(I)V
-HSPLandroid/view/View;->setImportantForAccessibility(I)V
-HSPLandroid/view/View;->setImportantForAutofill(I)V
-HSPLandroid/view/View;->setImportantForContentCapture(I)V
-HSPLandroid/view/View;->setIsRootNamespace(Z)V
-HSPLandroid/view/View;->setKeepScreenOn(Z)V
-HSPLandroid/view/View;->setKeyboardNavigationCluster(Z)V
-HSPLandroid/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+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;Lcom/android/internal/policy/DecorView;
-HSPLandroid/view/View;->setLeft(I)V
-HSPLandroid/view/View;->setLeftTopRightBottom(IIII)V
-HSPLandroid/view/View;->setLongClickable(Z)V
-HSPLandroid/view/View;->setMeasuredDimension(II)V
-HSPLandroid/view/View;->setMeasuredDimensionRaw(II)V
-HSPLandroid/view/View;->setMinimumHeight(I)V
-HSPLandroid/view/View;->setMinimumWidth(I)V
-HSPLandroid/view/View;->setNotifiedContentCaptureAppeared()V
-HSPLandroid/view/View;->setOnApplyWindowInsetsListener(Landroid/view/View$OnApplyWindowInsetsListener;)V
-HSPLandroid/view/View;->setOnClickListener(Landroid/view/View$OnClickListener;)V
-HSPLandroid/view/View;->setOnCreateContextMenuListener(Landroid/view/View$OnCreateContextMenuListener;)V
-HSPLandroid/view/View;->setOnDragListener(Landroid/view/View$OnDragListener;)V
-HSPLandroid/view/View;->setOnFocusChangeListener(Landroid/view/View$OnFocusChangeListener;)V
-HSPLandroid/view/View;->setOnHoverListener(Landroid/view/View$OnHoverListener;)V
-HSPLandroid/view/View;->setOnKeyListener(Landroid/view/View$OnKeyListener;)V
-HSPLandroid/view/View;->setOnLongClickListener(Landroid/view/View$OnLongClickListener;)V
-HSPLandroid/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;->setOutlineAmbientShadowColor(I)V
-HSPLandroid/view/View;->setOutlineProvider(Landroid/view/ViewOutlineProvider;)V
-HSPLandroid/view/View;->setOutlineProviderFromAttribute(I)V
-HSPLandroid/view/View;->setOutlineSpotShadowColor(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;->setRenderEffect(Landroid/graphics/RenderEffect;)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+]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;
-HSPLandroid/view/View;->setScaleY(F)V+]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;
-HSPLandroid/view/View;->setScrollContainer(Z)V
-HSPLandroid/view/View;->setScrollIndicators(II)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
-HSPLandroid/view/View;->setTransitionAlpha(F)V
-HSPLandroid/view/View;->setTransitionName(Ljava/lang/String;)V
-HSPLandroid/view/View;->setTransitionVisibility(I)V
-HSPLandroid/view/View;->setTranslationX(F)V
-HSPLandroid/view/View;->setTranslationY(F)V
-HSPLandroid/view/View;->setTranslationZ(F)V+]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;
-HSPLandroid/view/View;->setVerticalScrollBarEnabled(Z)V
-HSPLandroid/view/View;->setVisibility(I)V
-HSPLandroid/view/View;->setWillNotDraw(Z)V
-HSPLandroid/view/View;->setX(F)V
-HSPLandroid/view/View;->setY(F)V
-HSPLandroid/view/View;->shouldDrawRoundScrollbar()Z+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;
-HSPLandroid/view/View;->sizeChange(IIII)V
-HSPLandroid/view/View;->skipInvalidate()Z+]Landroid/view/ViewGroup;missing_types
-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+]Landroid/view/View;missing_types
-HSPLandroid/view/View;->unFocus(Landroid/view/View;)V
-HSPLandroid/view/View;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/view/View;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V
-HSPLandroid/view/View;->updateDisplayListIfDirty()Landroid/graphics/RenderNode;+]Landroid/view/View;megamorphic_types]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;
-HSPLandroid/view/View;->updateFocusedInCluster(Landroid/view/View;I)V
-HSPLandroid/view/View;->updateHandwritingArea()V
-HSPLandroid/view/View;->updateKeepClearRects()V
-HSPLandroid/view/View;->updateLocalSystemUiVisibility(II)Z
-HSPLandroid/view/View;->updatePflags3AndNotifyA11yIfChanged(IZ)V
-HSPLandroid/view/View;->updatePositionUpdateListener()V
-HSPLandroid/view/View;->updatePreferKeepClearForFocus()V
-HSPLandroid/view/View;->updateSystemGestureExclusionRects()V
-HSPLandroid/view/View;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
-HSPLandroid/view/View;->willNotDraw()Z
-HSPLandroid/view/ViewAnimationHostBridge;-><init>(Landroid/view/View;)V
-HSPLandroid/view/ViewAnimationHostBridge;->isAttached()Z
-HSPLandroid/view/ViewAnimationHostBridge;->registerAnimatingRenderNode(Landroid/graphics/RenderNode;)V
-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;
-HSPLandroid/view/ViewConfiguration;->getDoubleTapTimeout()I
-HSPLandroid/view/ViewConfiguration;->getLongPressTimeout()I
-HSPLandroid/view/ViewConfiguration;->getPressedStateDuration()I
-HSPLandroid/view/ViewConfiguration;->getScaledAmbiguousGestureMultiplier()F
-HSPLandroid/view/ViewConfiguration;->getScaledDoubleTapSlop()I
-HSPLandroid/view/ViewConfiguration;->getScaledDoubleTapTouchSlop()I
-HSPLandroid/view/ViewConfiguration;->getScaledFadingEdgeLength()I
-HSPLandroid/view/ViewConfiguration;->getScaledHandwritingSlop()I
-HSPLandroid/view/ViewConfiguration;->getScaledHorizontalScrollFactor()F
-HSPLandroid/view/ViewConfiguration;->getScaledHoverSlop()I
-HSPLandroid/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
-HSPLandroid/view/ViewConfiguration;->getScrollBarFadeDuration()I
-HSPLandroid/view/ViewConfiguration;->getScrollDefaultDelay()I
-HSPLandroid/view/ViewConfiguration;->getScrollFriction()F
-HSPLandroid/view/ViewConfiguration;->getTapTimeout()I
-HSPLandroid/view/ViewConfiguration;->isFadingMarqueeEnabled()Z
-HSPLandroid/view/ViewConfiguration;->isPreferKeepClearForFocusEnabled()Z
-HSPLandroid/view/ViewDebug;->getViewInstanceCount()J
-HSPLandroid/view/ViewDebug;->getViewRootImplCount()J
-HSPLandroid/view/ViewFrameInfo;-><init>()V
-HSPLandroid/view/ViewFrameInfo;->markDrawStart()V
-HSPLandroid/view/ViewFrameInfo;->populateFrameInfo(Landroid/graphics/FrameInfo;)V
-HSPLandroid/view/ViewFrameInfo;->reset()V
-HSPLandroid/view/ViewFrameInfo;->setInputEvent(I)V
-HSPLandroid/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
-HSPLandroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;-><init>()V
-HSPLandroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;->obtain()Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;
-HSPLandroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;->recycle()V
-HSPLandroid/view/ViewGroup$LayoutParams;-><init>()V
-HSPLandroid/view/ViewGroup$LayoutParams;-><init>(II)V
-HSPLandroid/view/ViewGroup$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/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+]Landroid/view/ViewGroup$MarginLayoutParams;missing_types]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;
-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+]Landroid/view/ViewGroup$MarginLayoutParams;missing_types
-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;-><init>()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;
-HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;)V
-HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;I)V
-HSPLandroid/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+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types
-HSPLandroid/view/ViewGroup;->attachViewToParent(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
-HSPLandroid/view/ViewGroup;->bringChildToFront(Landroid/view/View;)V
-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
-HSPLandroid/view/ViewGroup;->clearCachedLayoutMode()V
-HSPLandroid/view/ViewGroup;->clearChildFocus(Landroid/view/View;)V
-HSPLandroid/view/ViewGroup;->clearDisappearingChildren()V
-HSPLandroid/view/ViewGroup;->clearFocus()V
-HSPLandroid/view/ViewGroup;->clearFocusedInCluster()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+]Landroid/view/View;missing_types
-HSPLandroid/view/ViewGroup;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V
-HSPLandroid/view/ViewGroup;->dispatchDetachedFromWindow()V
-HSPLandroid/view/ViewGroup;->dispatchDraw(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;
-HSPLandroid/view/ViewGroup;->dispatchDrawableHotspotChanged(FF)V
-HSPLandroid/view/ViewGroup;->dispatchFinishTemporaryDetach()V
-HSPLandroid/view/ViewGroup;->dispatchFreezeSelfOnly(Landroid/util/SparseArray;)V
-HSPLandroid/view/ViewGroup;->dispatchGetDisplayList()V+]Landroid/view/View;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/view/ViewGroup;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z
-HSPLandroid/view/ViewGroup;->dispatchKeyEventPreIme(Landroid/view/KeyEvent;)Z
-HSPLandroid/view/ViewGroup;->dispatchProvideAutofillStructure(Landroid/view/ViewStructure;I)V
-HSPLandroid/view/ViewGroup;->dispatchProvideContentCaptureStructure()V
-HSPLandroid/view/ViewGroup;->dispatchRestoreInstanceState(Landroid/util/SparseArray;)V
-HSPLandroid/view/ViewGroup;->dispatchSaveInstanceState(Landroid/util/SparseArray;)V
-HSPLandroid/view/ViewGroup;->dispatchScreenStateChanged(I)V
-HSPLandroid/view/ViewGroup;->dispatchSetActivated(Z)V
-HSPLandroid/view/ViewGroup;->dispatchSetPressed(Z)V
-HSPLandroid/view/ViewGroup;->dispatchSetSelected(Z)V
-HSPLandroid/view/ViewGroup;->dispatchStartTemporaryDetach()V
-HSPLandroid/view/ViewGroup;->dispatchSystemUiVisibilityChanged(I)V
-HSPLandroid/view/ViewGroup;->dispatchThawSelfOnly(Landroid/util/SparseArray;)V
-HSPLandroid/view/ViewGroup;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z+]Landroid/view/ViewGroup$TouchTarget;Landroid/view/ViewGroup$TouchTarget;]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/view/MotionEvent;Landroid/view/MotionEvent;
-HSPLandroid/view/ViewGroup;->dispatchTransformedTouchEvent(Landroid/view/MotionEvent;ZLandroid/view/View;I)Z+]Landroid/view/View;missing_types]Landroid/view/MotionEvent;Landroid/view/MotionEvent;
-HSPLandroid/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+]Landroid/view/View;missing_types
-HSPLandroid/view/ViewGroup;->dispatchVisibilityChanged(Landroid/view/View;I)V
-HSPLandroid/view/ViewGroup;->dispatchWindowFocusChanged(Z)V
-HSPLandroid/view/ViewGroup;->dispatchWindowInsetsAnimationEnd(Landroid/view/WindowInsetsAnimation;)V
-HSPLandroid/view/ViewGroup;->dispatchWindowSystemUiVisiblityChanged(I)V
-HSPLandroid/view/ViewGroup;->dispatchWindowVisibilityChanged(I)V
-HSPLandroid/view/ViewGroup;->drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z+]Landroid/view/View;missing_types
-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;
-HSPLandroid/view/ViewGroup;->findOnBackInvokedDispatcherForChild(Landroid/view/View;Landroid/view/View;)Landroid/window/OnBackInvokedDispatcher;
-HSPLandroid/view/ViewGroup;->findViewByAutofillIdTraversal(I)Landroid/view/View;
-HSPLandroid/view/ViewGroup;->findViewByPredicateTraversal(Ljava/util/function/Predicate;Landroid/view/View;)Landroid/view/View;
-HSPLandroid/view/ViewGroup;->findViewTraversal(I)Landroid/view/View;
-HSPLandroid/view/ViewGroup;->findViewWithTagTraversal(Ljava/lang/Object;)Landroid/view/View;
-HSPLandroid/view/ViewGroup;->finishAnimatingView(Landroid/view/View;Landroid/view/animation/Animation;)V
-HSPLandroid/view/ViewGroup;->focusSearch(Landroid/view/View;I)Landroid/view/View;
-HSPLandroid/view/ViewGroup;->focusableViewAvailable(Landroid/view/View;)V
-HSPLandroid/view/ViewGroup;->gatherTransparentRegion(Landroid/graphics/Region;)Z
-HSPLandroid/view/ViewGroup;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams;
-HSPLandroid/view/ViewGroup;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
-HSPLandroid/view/ViewGroup;->getAccessibilityClassName()Ljava/lang/CharSequence;
-HSPLandroid/view/ViewGroup;->getAndVerifyPreorderedIndex(IIZ)I
-HSPLandroid/view/ViewGroup;->getAndVerifyPreorderedView(Ljava/util/ArrayList;[Landroid/view/View;I)Landroid/view/View;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
-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+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ViewParent;Landroid/view/ViewRootImpl;
-HSPLandroid/view/ViewGroup;->getChildrenForAutofill(I)Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;
-HSPLandroid/view/ViewGroup;->getChildrenForContentCapture()Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;
-HSPLandroid/view/ViewGroup;->getClipChildren()Z
-HSPLandroid/view/ViewGroup;->getClipToPadding()Z
-HSPLandroid/view/ViewGroup;->getDescendantFocusability()I
-HSPLandroid/view/ViewGroup;->getFocusedChild()Landroid/view/View;
-HSPLandroid/view/ViewGroup;->getLayoutMode()I
-HSPLandroid/view/ViewGroup;->getLayoutTransition()Landroid/animation/LayoutTransition;
-HSPLandroid/view/ViewGroup;->getNestedScrollAxes()I
-HSPLandroid/view/ViewGroup;->getOverlay()Landroid/view/ViewGroupOverlay;
-HSPLandroid/view/ViewGroup;->getScrollIndicatorBounds(Landroid/graphics/Rect;)V
-HSPLandroid/view/ViewGroup;->getTempLocationF()[F
-HSPLandroid/view/ViewGroup;->getTouchTarget(Landroid/view/View;)Landroid/view/ViewGroup$TouchTarget;
-HSPLandroid/view/ViewGroup;->getTouchscreenBlocksFocus()Z
-HSPLandroid/view/ViewGroup;->handleFocusGainInternal(ILandroid/graphics/Rect;)V
-HSPLandroid/view/ViewGroup;->hasBooleanFlag(I)Z
-HSPLandroid/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;->hasWindowInsetsAnimationCallback()Z
-HSPLandroid/view/ViewGroup;->indexOfChild(Landroid/view/View;)I
-HSPLandroid/view/ViewGroup;->initFromAttributes(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/view/ViewGroup;->initViewGroup()V
-HSPLandroid/view/ViewGroup;->internalSetPadding(IIII)V
-HSPLandroid/view/ViewGroup;->invalidateChild(Landroid/view/View;Landroid/graphics/Rect;)V+]Landroid/view/ViewGroup;missing_types
-HSPLandroid/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;->isViewTransitioning(Landroid/view/View;)Z
-HSPLandroid/view/ViewGroup;->jumpDrawablesToCurrentState()V
-HSPLandroid/view/ViewGroup;->layout(IIII)V
-HSPLandroid/view/ViewGroup;->makeFrameworkOptionalFitsSystemWindows()V
-HSPLandroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V
-HSPLandroid/view/ViewGroup;->measureChild(Landroid/view/View;II)V
-HSPLandroid/view/ViewGroup;->measureChildWithMargins(Landroid/view/View;IIII)V+]Landroid/view/View;missing_types
-HSPLandroid/view/ViewGroup;->measureChildren(II)V
-HSPLandroid/view/ViewGroup;->newDispatchApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
-HSPLandroid/view/ViewGroup;->notifySubtreeAccessibilityStateChangedIfNeeded()V
-HSPLandroid/view/ViewGroup;->offsetDescendantRectToMyCoords(Landroid/view/View;Landroid/graphics/Rect;)V
-HSPLandroid/view/ViewGroup;->offsetRectBetweenParentAndChild(Landroid/view/View;Landroid/graphics/Rect;ZZ)V
-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+]Landroid/view/ViewParent;missing_types
-HSPLandroid/view/ViewGroup;->onDescendantUnbufferedRequested()V
-HSPLandroid/view/ViewGroup;->onDetachedFromWindow()V
-HSPLandroid/view/ViewGroup;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z+]Landroid/view/MotionEvent;Landroid/view/MotionEvent;
-HSPLandroid/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
-HSPLandroid/view/ViewGroup;->populateChildrenForAutofill(Ljava/util/ArrayList;I)V
-HSPLandroid/view/ViewGroup;->populateChildrenForContentCapture(Ljava/util/ArrayList;)V
-HSPLandroid/view/ViewGroup;->recomputeViewAttributes(Landroid/view/View;)V
-HSPLandroid/view/ViewGroup;->recreateChildDisplayList(Landroid/view/View;)V+]Landroid/view/View;missing_types
-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;->removeFromArray(II)V
-HSPLandroid/view/ViewGroup;->removePointersFromTouchTargets(I)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;->removeViewInternal(Landroid/view/View;)Z
-HSPLandroid/view/ViewGroup;->requestChildFocus(Landroid/view/View;Landroid/view/View;)V
-HSPLandroid/view/ViewGroup;->requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z
-HSPLandroid/view/ViewGroup;->requestDisallowInterceptTouchEvent(Z)V+]Landroid/view/ViewParent;missing_types
-HSPLandroid/view/ViewGroup;->requestFocus(ILandroid/graphics/Rect;)Z
-HSPLandroid/view/ViewGroup;->requestTransitionStart(Landroid/animation/LayoutTransition;)V
-HSPLandroid/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+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types
-HSPLandroid/view/ViewGroup;->resolvePadding()V
-HSPLandroid/view/ViewGroup;->resolveRtlPropertiesIfNeeded()Z+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types
-HSPLandroid/view/ViewGroup;->resolveTextAlignment()Z
-HSPLandroid/view/ViewGroup;->resolveTextDirection()Z
-HSPLandroid/view/ViewGroup;->restoreDefaultFocus()Z
-HSPLandroid/view/ViewGroup;->setAddStatesFromChildren(Z)V
-HSPLandroid/view/ViewGroup;->setAlwaysDrawnWithCacheEnabled(Z)V
-HSPLandroid/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
-HSPLandroid/view/ViewGroup;->setDescendantFocusability(I)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;->shouldBlockFocusForTouchscreen()Z
-HSPLandroid/view/ViewGroup;->shouldDelayChildPressedState()Z
-HSPLandroid/view/ViewGroup;->startViewTransition(Landroid/view/View;)V
-HSPLandroid/view/ViewGroup;->suppressLayout(Z)V
-HSPLandroid/view/ViewGroup;->touchAccessibilityNodeProviderIfNeeded(Landroid/view/View;)V
-HSPLandroid/view/ViewGroup;->transformPointToViewLocal([FLandroid/view/View;)V
-HSPLandroid/view/ViewGroup;->unFocus(Landroid/view/View;)V
-HSPLandroid/view/ViewGroup;->updateLocalSystemUiVisibility(II)Z
-HSPLandroid/view/ViewGroupOverlay;->add(Landroid/view/View;)V
-HSPLandroid/view/ViewGroupOverlay;->remove(Landroid/view/View;)V
-HSPLandroid/view/ViewOutlineProvider$1;->getOutline(Landroid/view/View;Landroid/graphics/Outline;)V+]Landroid/graphics/Outline;Landroid/graphics/Outline;]Landroid/graphics/drawable/Drawable;missing_types]Landroid/view/View;missing_types
-HSPLandroid/view/ViewOutlineProvider$2;->getOutline(Landroid/view/View;Landroid/graphics/Outline;)V
-HSPLandroid/view/ViewOutlineProvider;-><init>()V
-HSPLandroid/view/ViewOverlay$OverlayViewGroup;-><init>(Landroid/content/Context;Landroid/view/View;)V
-HSPLandroid/view/ViewOverlay$OverlayViewGroup;->add(Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/view/ViewOverlay$OverlayViewGroup;->add(Landroid/view/View;)V
-HSPLandroid/view/ViewOverlay$OverlayViewGroup;->dispatchDraw(Landroid/graphics/Canvas;)V
-HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(IIII)V
-HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(Landroid/graphics/Rect;)V
-HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(Z)V
-HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidateParentIfNeeded()V
-HSPLandroid/view/ViewOverlay$OverlayViewGroup;->isEmpty()Z
-HSPLandroid/view/ViewOverlay$OverlayViewGroup;->onDescendantInvalidated(Landroid/view/View;Landroid/view/View;)V
-HSPLandroid/view/ViewOverlay$OverlayViewGroup;->remove(Landroid/view/View;)V
-HSPLandroid/view/ViewOverlay;-><init>(Landroid/content/Context;Landroid/view/View;)V
-HSPLandroid/view/ViewOverlay;->add(Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/view/ViewOverlay;->getOverlayView()Landroid/view/ViewGroup;
-HSPLandroid/view/ViewOverlay;->isEmpty()Z
-HSPLandroid/view/ViewPropertyAnimator$1;-><init>(Landroid/view/ViewPropertyAnimator;)V
-HSPLandroid/view/ViewPropertyAnimator$1;->run()V
-HSPLandroid/view/ViewPropertyAnimator$2;->run()V
-HSPLandroid/view/ViewPropertyAnimator$3;->run()V
-HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;-><init>(Landroid/view/ViewPropertyAnimator;)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+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/view/View;Landroid/widget/LinearLayout;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;
-HSPLandroid/view/ViewPropertyAnimator$NameValuesHolder;-><init>(IFF)V
-HSPLandroid/view/ViewPropertyAnimator$PropertyBundle;-><init>(ILjava/util/ArrayList;)V
-HSPLandroid/view/ViewPropertyAnimator$PropertyBundle;->cancel(I)Z
-HSPLandroid/view/ViewPropertyAnimator;-><init>(Landroid/view/View;)V
-HSPLandroid/view/ViewPropertyAnimator;->alpha(F)Landroid/view/ViewPropertyAnimator;
-HSPLandroid/view/ViewPropertyAnimator;->animateProperty(IF)V
-HSPLandroid/view/ViewPropertyAnimator;->animatePropertyBy(IFF)V
-HSPLandroid/view/ViewPropertyAnimator;->cancel()V
-HSPLandroid/view/ViewPropertyAnimator;->getValue(I)F
-HSPLandroid/view/ViewPropertyAnimator;->scaleX(F)Landroid/view/ViewPropertyAnimator;
-HSPLandroid/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;
-HSPLandroid/view/ViewPropertyAnimator;->setStartDelay(J)Landroid/view/ViewPropertyAnimator;
-HSPLandroid/view/ViewPropertyAnimator;->setValue(IF)V
-HSPLandroid/view/ViewPropertyAnimator;->start()V
-HSPLandroid/view/ViewPropertyAnimator;->startAnimation()V
-HSPLandroid/view/ViewPropertyAnimator;->translationX(F)Landroid/view/ViewPropertyAnimator;
-HSPLandroid/view/ViewPropertyAnimator;->translationY(F)Landroid/view/ViewPropertyAnimator;
-HSPLandroid/view/ViewPropertyAnimator;->withEndAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;
-HSPLandroid/view/ViewPropertyAnimator;->withLayer()Landroid/view/ViewPropertyAnimator;
-HSPLandroid/view/ViewPropertyAnimator;->withStartAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;
-HSPLandroid/view/ViewRootImpl$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/view/ViewRootImpl$$ExternalSyntheticLambda17;-><init>(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/ViewRootImpl$$ExternalSyntheticLambda3;->run()V
-HSPLandroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager;-><init>(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager;->ensureNoConnection()V
-HSPLandroid/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
-HSPLandroid/view/ViewRootImpl$AsyncInputStage;->defer(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
-HSPLandroid/view/ViewRootImpl$AsyncInputStage;->dequeue(Landroid/view/ViewRootImpl$QueuedInputEvent;Landroid/view/ViewRootImpl$QueuedInputEvent;)V
-HSPLandroid/view/ViewRootImpl$AsyncInputStage;->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
-HSPLandroid/view/ViewRootImpl$EarlyPostImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;)V
-HSPLandroid/view/ViewRootImpl$EarlyPostImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
-HSPLandroid/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
-HSPLandroid/view/ViewRootImpl$HighContrastTextManager;-><init>(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/ViewRootImpl$ImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V
-HSPLandroid/view/ViewRootImpl$ImeInputStage;->onFinishedInputEvent(Ljava/lang/Object;Z)V
-HSPLandroid/view/ViewRootImpl$ImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
-HSPLandroid/view/ViewRootImpl$InputMetricsListener;-><init>(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/ViewRootImpl$InputMetricsListener;->onFrameMetricsAvailable(I)V+]Landroid/view/ViewRootImpl$WindowInputEventReceiver;Landroid/view/ViewRootImpl$WindowInputEventReceiver;
-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+]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->postIfNeededLocked()V+]Landroid/view/Choreographer;Landroid/view/Choreographer;
-HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->removeView(Landroid/view/View;)V
-HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->run()V+]Landroid/view/View;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/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
-HSPLandroid/view/ViewRootImpl$NativePreImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V
-HSPLandroid/view/ViewRootImpl$NativePreImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
-HSPLandroid/view/ViewRootImpl$QueuedInputEvent;-><init>()V
-HSPLandroid/view/ViewRootImpl$QueuedInputEvent;->shouldSendToSynthesizer()Z
-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
-HSPLandroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;->resetState()V
-HSPLandroid/view/ViewRootImpl$SyntheticJoystickHandler;-><init>(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/ViewRootImpl$SyntheticJoystickHandler;->cancel()V
-HSPLandroid/view/ViewRootImpl$SyntheticKeyboardHandler;-><init>(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/ViewRootImpl$SyntheticTouchNavigationHandler$1;-><init>(Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;)V
-HSPLandroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;-><init>(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/ViewRootImpl$SyntheticTrackballHandler;-><init>(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/ViewRootImpl$SystemUiVisibilityInfo;-><init>()V
-HSPLandroid/view/ViewRootImpl$TrackballAxis;-><init>()V
-HSPLandroid/view/ViewRootImpl$TraversalRunnable;-><init>(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/ViewRootImpl$TraversalRunnable;->run()V+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;
-HSPLandroid/view/ViewRootImpl$UnhandledKeyManager;-><init>()V
-HSPLandroid/view/ViewRootImpl$UnhandledKeyManager;-><init>(Landroid/view/ViewRootImpl$UnhandledKeyManager-IA;)V
-HSPLandroid/view/ViewRootImpl$UnhandledKeyManager;->dispatch(Landroid/view/View;Landroid/view/KeyEvent;)Z
-HSPLandroid/view/ViewRootImpl$UnhandledKeyManager;->preDispatch(Landroid/view/KeyEvent;)V
-HSPLandroid/view/ViewRootImpl$UnhandledKeyManager;->preViewDispatch(Landroid/view/KeyEvent;)Z
-HSPLandroid/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
-HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->processKeyEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
-HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->processPointerEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
-HSPLandroid/view/ViewRootImpl$ViewPreImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;)V
-HSPLandroid/view/ViewRootImpl$ViewPreImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
-HSPLandroid/view/ViewRootImpl$ViewRootHandler;-><init>(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/ViewRootImpl$ViewRootHandler;->getMessageName(Landroid/os/Message;)Ljava/lang/String;
-HSPLandroid/view/ViewRootImpl$ViewRootHandler;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/view/ViewRootImpl$ViewRootHandler;->handleMessageImpl(Landroid/os/Message;)V
-HSPLandroid/view/ViewRootImpl$ViewRootHandler;->sendMessageAtTime(Landroid/os/Message;J)Z
-HSPLandroid/view/ViewRootImpl$W;-><init>(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/ViewRootImpl$W;->closeSystemDialogs(Ljava/lang/String;)V
-HSPLandroid/view/ViewRootImpl$W;->dispatchAppVisibility(Z)V
-HSPLandroid/view/ViewRootImpl$W;->dispatchWindowShown()V
-HSPLandroid/view/ViewRootImpl$W;->insetsControlChanged(Landroid/view/InsetsState;[Landroid/view/InsetsSourceControl;)V
-HSPLandroid/view/ViewRootImpl$W;->moved(II)V
-HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;-><init>(Landroid/view/ViewRootImpl;Landroid/view/InputChannel;Landroid/os/Looper;)V
-HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->dispose()V
-HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->onBatchedInputEventPending(I)V
-HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->onFocusEvent(Z)V
-HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->onInputEvent(Landroid/view/InputEvent;)V
-HSPLandroid/view/ViewRootImpl;->-$$Nest$fgetmBlastBufferQueue(Landroid/view/ViewRootImpl;)Landroid/graphics/BLASTBufferQueue;
-HSPLandroid/view/ViewRootImpl;->-$$Nest$fputmProfileRendering(Landroid/view/ViewRootImpl;Z)V
-HSPLandroid/view/ViewRootImpl;->-$$Nest$mdispatchInsetsControlChanged(Landroid/view/ViewRootImpl;Landroid/view/InsetsState;[Landroid/view/InsetsSourceControl;)V
-HSPLandroid/view/ViewRootImpl;->-$$Nest$mprofileRendering(Landroid/view/ViewRootImpl;Z)V
-HSPLandroid/view/ViewRootImpl;-><init>(Landroid/content/Context;Landroid/view/Display;)V
-HSPLandroid/view/ViewRootImpl;-><init>(Landroid/content/Context;Landroid/view/Display;Landroid/view/IWindowSession;Landroid/view/WindowLayout;)V
-HSPLandroid/view/ViewRootImpl;->addConfigCallback(Landroid/view/ViewRootImpl$ConfigChangedCallback;)V
-HSPLandroid/view/ViewRootImpl;->addFrameCommitCallbackIfNeeded()V+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;
-HSPLandroid/view/ViewRootImpl;->addSurfaceChangedCallback(Landroid/view/ViewRootImpl$SurfaceChangedCallback;)V
-HSPLandroid/view/ViewRootImpl;->addWindowCallbacks(Landroid/view/WindowCallbacks;)V
-HSPLandroid/view/ViewRootImpl;->adjustLayoutParamsForCompatibility(Landroid/view/WindowManager$LayoutParams;)V
-HSPLandroid/view/ViewRootImpl;->applyKeepScreenOnFlag(Landroid/view/WindowManager$LayoutParams;)V
-HSPLandroid/view/ViewRootImpl;->applyTransactionOnDraw(Landroid/view/SurfaceControl$Transaction;)Z+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;
-HSPLandroid/view/ViewRootImpl;->canResolveTextDirection()Z
-HSPLandroid/view/ViewRootImpl;->cancelInvalidate(Landroid/view/View;)V
-HSPLandroid/view/ViewRootImpl;->checkForLeavingTouchModeAndConsume(Landroid/view/KeyEvent;)Z
-HSPLandroid/view/ViewRootImpl;->checkThread()V
-HSPLandroid/view/ViewRootImpl;->childDrawableStateChanged(Landroid/view/View;)V
-HSPLandroid/view/ViewRootImpl;->childHasTransientStateChanged(Landroid/view/View;Z)V
-HSPLandroid/view/ViewRootImpl;->clearChildFocus(Landroid/view/View;)V
-HSPLandroid/view/ViewRootImpl;->clearLowProfileModeIfNeeded(IZ)V
-HSPLandroid/view/ViewRootImpl;->collectViewAttributes()Z+]Landroid/view/View;Lcom/android/internal/policy/DecorView;
-HSPLandroid/view/ViewRootImpl;->controlInsetsForCompatibility(Landroid/view/WindowManager$LayoutParams;)V
-HSPLandroid/view/ViewRootImpl;->createSyncIfNeeded()V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/window/SurfaceSyncGroup;Landroid/window/SurfaceSyncGroup;
-HSPLandroid/view/ViewRootImpl;->deliverInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
-HSPLandroid/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
-HSPLandroid/view/ViewRootImpl;->dispatchAppVisibility(Z)V
-HSPLandroid/view/ViewRootImpl;->dispatchApplyInsets(Landroid/view/View;)V
-HSPLandroid/view/ViewRootImpl;->dispatchCheckFocus()V
-HSPLandroid/view/ViewRootImpl;->dispatchDetachedFromWindow()V
-HSPLandroid/view/ViewRootImpl;->dispatchDispatchSystemUiVisibilityChanged()V
-HSPLandroid/view/ViewRootImpl;->dispatchFocusEvent(ZZ)V
-HSPLandroid/view/ViewRootImpl;->dispatchInsetsControlChanged(Landroid/view/InsetsState;[Landroid/view/InsetsSourceControl;)V
-HSPLandroid/view/ViewRootImpl;->dispatchInvalidateDelayed(Landroid/view/View;J)V
-HSPLandroid/view/ViewRootImpl;->dispatchInvalidateOnAnimation(Landroid/view/View;)V+]Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;
-HSPLandroid/view/ViewRootImpl;->dispatchMoved(II)V
-HSPLandroid/view/ViewRootImpl;->doConsumeBatchedInput(J)Z
-HSPLandroid/view/ViewRootImpl;->doDie()V
-HSPLandroid/view/ViewRootImpl;->doProcessInputEvents()V
-HSPLandroid/view/ViewRootImpl;->doTraversal()V+]Landroid/os/Looper;Landroid/os/Looper;]Landroid/view/ViewRootImpl$ViewRootHandler;Landroid/view/ViewRootImpl$ViewRootHandler;]Landroid/os/MessageQueue;Landroid/os/MessageQueue;
-HSPLandroid/view/ViewRootImpl;->draw(ZLandroid/window/SurfaceSyncGroup;Z)Z+]Landroid/view/Surface;Landroid/view/Surface;]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/HdrRenderState;Landroid/view/HdrRenderState;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/view/Choreographer;Landroid/view/Choreographer;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/view/ViewRootImpl;->drawAccessibilityFocusedDrawableIfNeeded(Landroid/graphics/Canvas;)V
-HSPLandroid/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;)V
-HSPLandroid/view/ViewRootImpl;->enqueueInputEvent(Landroid/view/InputEvent;Landroid/view/InputEventReceiver;IZ)V
-HSPLandroid/view/ViewRootImpl;->ensureTouchMode(Z)Z
-HSPLandroid/view/ViewRootImpl;->ensureTouchModeLocally(Z)Z
-HSPLandroid/view/ViewRootImpl;->enterTouchMode()Z
-HSPLandroid/view/ViewRootImpl;->findOnBackInvokedDispatcherForChild(Landroid/view/View;Landroid/view/View;)Landroid/window/OnBackInvokedDispatcher;
-HSPLandroid/view/ViewRootImpl;->finishInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
-HSPLandroid/view/ViewRootImpl;->fireAccessibilityFocusEventIfHasFocusedNode()V
-HSPLandroid/view/ViewRootImpl;->focusableViewAvailable(Landroid/view/View;)V
-HSPLandroid/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;
-HSPLandroid/view/ViewRootImpl;->getBufferTransformHint()I
-HSPLandroid/view/ViewRootImpl;->getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;)Z
-HSPLandroid/view/ViewRootImpl;->getCompatWindowConfiguration()Landroid/app/WindowConfiguration;
-HSPLandroid/view/ViewRootImpl;->getConfiguration()Landroid/content/res/Configuration;+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/Context;Lcom/android/internal/policy/DecorContext;
-HSPLandroid/view/ViewRootImpl;->getDisplayId()I
-HSPLandroid/view/ViewRootImpl;->getHandwritingInitiator()Landroid/view/HandwritingInitiator;
-HSPLandroid/view/ViewRootImpl;->getHostVisibility()I+]Landroid/view/View;Lcom/android/internal/policy/DecorView;
-HSPLandroid/view/ViewRootImpl;->getImeFocusController()Landroid/view/ImeFocusController;
-HSPLandroid/view/ViewRootImpl;->getImpliedSystemUiVisibility(Landroid/view/WindowManager$LayoutParams;)I
-HSPLandroid/view/ViewRootImpl;->getInsetsController()Landroid/view/InsetsController;
-HSPLandroid/view/ViewRootImpl;->getNightMode()I
-HSPLandroid/view/ViewRootImpl;->getOnBackInvokedDispatcher()Landroid/window/WindowOnBackInvokedDispatcher;
-HSPLandroid/view/ViewRootImpl;->getOrCreateSurfaceSyncGroup()Landroid/window/SurfaceSyncGroup;
-HSPLandroid/view/ViewRootImpl;->getParent()Landroid/view/ViewParent;
-HSPLandroid/view/ViewRootImpl;->getRootMeasureSpec(III)I
-HSPLandroid/view/ViewRootImpl;->getRunQueue()Landroid/view/HandlerActionQueue;+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal;
-HSPLandroid/view/ViewRootImpl;->getSurfaceControl()Landroid/view/SurfaceControl;
-HSPLandroid/view/ViewRootImpl;->getSurfaceSequenceId()I
-HSPLandroid/view/ViewRootImpl;->getTextDirection()I
-HSPLandroid/view/ViewRootImpl;->getTitle()Ljava/lang/CharSequence;
-HSPLandroid/view/ViewRootImpl;->getUpdatedFrameInfo()Landroid/graphics/FrameInfo;+]Landroid/view/InputEventAssigner;Landroid/view/InputEventAssigner;]Landroid/view/ViewFrameInfo;Landroid/view/ViewFrameInfo;
-HSPLandroid/view/ViewRootImpl;->getValidLayoutRequesters(Ljava/util/ArrayList;Z)Ljava/util/ArrayList;
-HSPLandroid/view/ViewRootImpl;->getView()Landroid/view/View;
-HSPLandroid/view/ViewRootImpl;->getViewBoundsSandboxingEnabled()Z
-HSPLandroid/view/ViewRootImpl;->getWindowBoundsInsetSystemBars()Landroid/graphics/Rect;
-HSPLandroid/view/ViewRootImpl;->getWindowFlags()I
-HSPLandroid/view/ViewRootImpl;->getWindowInsets(Z)Landroid/view/WindowInsets;
-HSPLandroid/view/ViewRootImpl;->getWindowVisibleDisplayFrame(Landroid/graphics/Rect;)V
-HSPLandroid/view/ViewRootImpl;->handleAppVisibility(Z)V
-HSPLandroid/view/ViewRootImpl;->handleContentCaptureFlush()V
-HSPLandroid/view/ViewRootImpl;->handleDispatchSystemUiVisibilityChanged()V
-HSPLandroid/view/ViewRootImpl;->handleWindowFocusChanged()V
-HSPLandroid/view/ViewRootImpl;->invalidate()V+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;
-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;->isAccessibilityFocusDirty()Z+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable;
-HSPLandroid/view/ViewRootImpl;->isContentCaptureEnabled()Z
-HSPLandroid/view/ViewRootImpl;->isContentCaptureReallyEnabled()Z
-HSPLandroid/view/ViewRootImpl;->isHardwareEnabled()Z+]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;
-HSPLandroid/view/ViewRootImpl;->isInLayout()Z
-HSPLandroid/view/ViewRootImpl;->isInTouchMode()Z
-HSPLandroid/view/ViewRootImpl;->isInWMSRequestedSync()Z
-HSPLandroid/view/ViewRootImpl;->isLayoutRequested()Z
-HSPLandroid/view/ViewRootImpl;->isNavigationKey(Landroid/view/KeyEvent;)Z
-HSPLandroid/view/ViewRootImpl;->isTextDirectionResolved()Z
-HSPLandroid/view/ViewRootImpl;->keepClearRectsChanged(Z)V
-HSPLandroid/view/ViewRootImpl;->lambda$createSyncIfNeeded$4(ILandroid/view/SurfaceControl$Transaction;)V
-HSPLandroid/view/ViewRootImpl;->lambda$getOrCreateSurfaceSyncGroup$14()V
-HSPLandroid/view/ViewRootImpl;->lambda$new$0(Landroid/view/View;)Ljava/util/List;
-HSPLandroid/view/ViewRootImpl;->lambda$new$1(Landroid/view/View;)Ljava/util/List;
-HSPLandroid/view/ViewRootImpl;->lambda$new$2(Landroid/view/View;)Ljava/util/List;
-HSPLandroid/view/ViewRootImpl;->loadSystemProperties()V
-HSPLandroid/view/ViewRootImpl;->maybeFireAccessibilityWindowStateChangedEvent()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;IIZ)Z+]Landroid/view/View;Lcom/android/internal/policy/DecorView;
-HSPLandroid/view/ViewRootImpl;->mergeWithNextTransaction(Landroid/view/SurfaceControl$Transaction;J)V+]Landroid/graphics/BLASTBufferQueue;Landroid/graphics/BLASTBufferQueue;
-HSPLandroid/view/ViewRootImpl;->notifyContentCaptureEvents()V
-HSPLandroid/view/ViewRootImpl;->notifyDrawStarted(Z)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/view/ViewRootImpl;->notifyInsetsChanged()V
-HSPLandroid/view/ViewRootImpl;->notifyRendererOfFramePending()V+]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;
-HSPLandroid/view/ViewRootImpl;->notifySurfaceCreated(Landroid/view/SurfaceControl$Transaction;)V
-HSPLandroid/view/ViewRootImpl;->notifySurfaceDestroyed()V
-HSPLandroid/view/ViewRootImpl;->obtainQueuedInputEvent(Landroid/view/InputEvent;Landroid/view/InputEventReceiver;I)Landroid/view/ViewRootImpl$QueuedInputEvent;
-HSPLandroid/view/ViewRootImpl;->onDescendantInvalidated(Landroid/view/View;Landroid/view/View;)V+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;
-HSPLandroid/view/ViewRootImpl;->onDescendantUnbufferedRequested()V
-HSPLandroid/view/ViewRootImpl;->onMovedToDisplay(ILandroid/content/res/Configuration;)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;->performContentCaptureInitialReport()V
-HSPLandroid/view/ViewRootImpl;->performDraw(Landroid/window/SurfaceSyncGroup;)Z+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;
-HSPLandroid/view/ViewRootImpl;->performLayout(Landroid/view/WindowManager$LayoutParams;II)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/view/HandlerActionQueue;Landroid/view/HandlerActionQueue;]Landroid/content/Context;Lcom/android/internal/policy/DecorContext;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/view/ViewRootImpl;->performMeasure(II)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;
-HSPLandroid/view/ViewRootImpl;->performTraversals()V+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Landroid/view/View;missing_types]Landroid/graphics/Point;Landroid/graphics/Point;]Landroid/view/HandlerActionQueue;Landroid/view/HandlerActionQueue;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/view/Surface;Landroid/view/Surface;]Landroid/util/MergedConfiguration;Landroid/util/MergedConfiguration;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ImeFocusController;Landroid/view/ImeFocusController;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/content/Context;Landroid/view/ContextThemeWrapper;,Lcom/android/internal/policy/DecorContext;]Lcom/android/internal/view/RootViewSurfaceTaker;Lcom/android/internal/policy/DecorView;]Landroid/graphics/Region;Landroid/graphics/Region;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/window/SurfaceSyncGroup;Landroid/window/SurfaceSyncGroup;]Landroid/window/WindowOnBackInvokedDispatcher;Landroid/window/WindowOnBackInvokedDispatcher;
-HSPLandroid/view/ViewRootImpl;->playSoundEffect(I)V
-HSPLandroid/view/ViewRootImpl;->pokeDrawLockIfNeeded()V
-HSPLandroid/view/ViewRootImpl;->prepareSurfaces()V+]Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;
-HSPLandroid/view/ViewRootImpl;->profileRendering(Z)V
-HSPLandroid/view/ViewRootImpl;->recomputeViewAttributes(Landroid/view/View;)V
-HSPLandroid/view/ViewRootImpl;->recycleQueuedInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
-HSPLandroid/view/ViewRootImpl;->registerAnimatingRenderNode(Landroid/graphics/RenderNode;)V
-HSPLandroid/view/ViewRootImpl;->registerBackCallbackOnWindow()V
-HSPLandroid/view/ViewRootImpl;->registerCallbackForPendingTransactions()V+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;
-HSPLandroid/view/ViewRootImpl;->registerCallbacksForSync(ZLandroid/window/SurfaceSyncGroup;)V
-HSPLandroid/view/ViewRootImpl;->registerCompatOnBackInvokedCallback()V
-HSPLandroid/view/ViewRootImpl;->registerListeners()V
-HSPLandroid/view/ViewRootImpl;->registerRtFrameCallback(Landroid/graphics/HardwareRenderer$FrameDrawingCallback;)V+]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;
-HSPLandroid/view/ViewRootImpl;->relayoutWindow(Landroid/view/WindowManager$LayoutParams;IZ)I+]Landroid/view/IWindowSession;Landroid/view/IWindowSession$Stub$Proxy;]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/graphics/Point;Landroid/graphics/Point;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;]Landroid/view/HdrRenderState;Landroid/view/HdrRenderState;]Landroid/view/InsetsController;Landroid/view/InsetsController;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/view/WindowLayout;Landroid/view/WindowLayout;]Landroid/util/MergedConfiguration;Landroid/util/MergedConfiguration;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/view/Display;Landroid/view/Display;
-HSPLandroid/view/ViewRootImpl;->removeSendWindowContentChangedCallback()V
-HSPLandroid/view/ViewRootImpl;->removeSurfaceChangedCallback(Landroid/view/ViewRootImpl$SurfaceChangedCallback;)V
-HSPLandroid/view/ViewRootImpl;->removeWindowCallbacks(Landroid/view/WindowCallbacks;)V
-HSPLandroid/view/ViewRootImpl;->reportDrawFinished(Landroid/view/SurfaceControl$Transaction;I)V
-HSPLandroid/view/ViewRootImpl;->reportNextDraw(Ljava/lang/String;)V
-HSPLandroid/view/ViewRootImpl;->requestChildFocus(Landroid/view/View;Landroid/view/View;)V
-HSPLandroid/view/ViewRootImpl;->requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z
-HSPLandroid/view/ViewRootImpl;->requestDisallowInterceptTouchEvent(Z)V
-HSPLandroid/view/ViewRootImpl;->requestFitSystemWindows()V
-HSPLandroid/view/ViewRootImpl;->requestLayout()V+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;
-HSPLandroid/view/ViewRootImpl;->requestLayoutDuringLayout(Landroid/view/View;)Z
-HSPLandroid/view/ViewRootImpl;->requestTransparentRegion(Landroid/view/View;)V
-HSPLandroid/view/ViewRootImpl;->scheduleConsumeBatchedInput()V
-HSPLandroid/view/ViewRootImpl;->scheduleTraversals()V+]Landroid/os/Looper;Landroid/os/Looper;]Landroid/view/ViewRootImpl$ViewRootHandler;Landroid/view/ViewRootImpl$ViewRootHandler;]Landroid/os/MessageQueue;Landroid/os/MessageQueue;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/view/Choreographer;Landroid/view/Choreographer;
-HSPLandroid/view/ViewRootImpl;->scrollToRectOrFocus(Landroid/graphics/Rect;Z)Z
-HSPLandroid/view/ViewRootImpl;->sendBackKeyEvent(I)V
-HSPLandroid/view/ViewRootImpl;->setAccessibilityFocus(Landroid/view/View;Landroid/view/accessibility/AccessibilityNodeInfo;)V
-HSPLandroid/view/ViewRootImpl;->setAccessibilityWindowAttributesIfNeeded()V
-HSPLandroid/view/ViewRootImpl;->setActivityConfigCallback(Landroid/view/ViewRootImpl$ActivityConfigCallback;)V
-HSPLandroid/view/ViewRootImpl;->setBoundsLayerCrop(Landroid/view/SurfaceControl$Transaction;)V
-HSPLandroid/view/ViewRootImpl;->setFrame(Landroid/graphics/Rect;Z)V+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/InsetsController;Landroid/view/InsetsController;
-HSPLandroid/view/ViewRootImpl;->setLayoutParams(Landroid/view/WindowManager$LayoutParams;Z)V+]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;
-HSPLandroid/view/ViewRootImpl;->setOnContentApplyWindowInsetsListener(Landroid/view/Window$OnContentApplyWindowInsetsListener;)V
-HSPLandroid/view/ViewRootImpl;->setTag()V
-HSPLandroid/view/ViewRootImpl;->setView(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;Landroid/view/View;I)V+]Landroid/view/IWindowSession;Landroid/view/IWindowSession$Stub$Proxy;]Landroid/view/InsetsState;Landroid/view/InsetsState;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/content/res/CompatibilityInfo;Landroid/content/res/CompatibilityInfo$1;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/view/InsetsSourceControl$Array;Landroid/view/InsetsSourceControl$Array;]Landroid/view/InsetsController;Landroid/view/InsetsController;]Landroid/view/PendingInsetsController;Landroid/view/PendingInsetsController;]Lcom/android/internal/view/RootViewSurfaceTaker;Lcom/android/internal/policy/DecorView;]Landroid/view/FallbackEventHandler;Lcom/android/internal/policy/PhoneFallbackEventHandler;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/view/WindowLayout;Landroid/view/WindowLayout;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager;]Landroid/view/DisplayAdjustments;Landroid/view/DisplayAdjustments;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/view/Display;Landroid/view/Display;
-HSPLandroid/view/ViewRootImpl;->setWindowStopped(Z)V
-HSPLandroid/view/ViewRootImpl;->shouldDispatchCutout()Z
-HSPLandroid/view/ViewRootImpl;->shouldOptimizeMeasure(Landroid/view/WindowManager$LayoutParams;)Z
-HSPLandroid/view/ViewRootImpl;->shouldSetFrameRate()Z+]Landroid/view/Surface;Landroid/view/Surface;
-HSPLandroid/view/ViewRootImpl;->shouldSetFrameRateCategory()Z+]Landroid/view/Surface;Landroid/view/Surface;
-HSPLandroid/view/ViewRootImpl;->shouldUseDisplaySize(Landroid/view/WindowManager$LayoutParams;)Z
-HSPLandroid/view/ViewRootImpl;->systemGestureExclusionChanged()V
-HSPLandroid/view/ViewRootImpl;->unscheduleConsumeBatchedInput()V
-HSPLandroid/view/ViewRootImpl;->unscheduleTraversals()V
-HSPLandroid/view/ViewRootImpl;->updateBlastSurfaceIfNeeded()V+]Landroid/graphics/BLASTBufferQueue;Landroid/graphics/BLASTBufferQueue;]Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;
-HSPLandroid/view/ViewRootImpl;->updateBoundsLayer(Landroid/view/SurfaceControl$Transaction;)Z
-HSPLandroid/view/ViewRootImpl;->updateCaptionInsets()Z
-HSPLandroid/view/ViewRootImpl;->updateCompatSysUiVisibility(III)V
-HSPLandroid/view/ViewRootImpl;->updateCompatSystemUiVisibilityInfo(IIII)V
-HSPLandroid/view/ViewRootImpl;->updateConfiguration(I)V
-HSPLandroid/view/ViewRootImpl;->updateContentDrawBounds()Z+]Landroid/view/WindowCallbacks;Lcom/android/internal/policy/DecorView;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/view/ViewRootImpl;->updateForceDarkMode()V
-HSPLandroid/view/ViewRootImpl;->updateInternalDisplay(ILandroid/content/res/Resources;)V
-HSPLandroid/view/ViewRootImpl;->updateKeepClearForAccessibilityFocusRect()V
-HSPLandroid/view/ViewRootImpl;->updateKeepClearRectsForView(Landroid/view/View;)V
-HSPLandroid/view/ViewRootImpl;->updateOpacity(Landroid/view/WindowManager$LayoutParams;ZZ)V
-HSPLandroid/view/ViewRootImpl;->updateSyncInProgressCount(Landroid/window/SurfaceSyncGroup;)V
-HSPLandroid/view/ViewRootImpl;->updateSystemGestureExclusionRectsForView(Landroid/view/View;)V
-HSPLandroid/view/ViewRootImpl;->windowFocusChanged(Z)V
-HSPLandroid/view/ViewRootInsetsControllerHost;-><init>(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/ViewRootInsetsControllerHost;->dipToPx(I)I
-HSPLandroid/view/ViewRootInsetsControllerHost;->dispatchWindowInsetsAnimationEnd(Landroid/view/WindowInsetsAnimation;)V
-HSPLandroid/view/ViewRootInsetsControllerHost;->getHandler()Landroid/os/Handler;
-HSPLandroid/view/ViewRootInsetsControllerHost;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager;
-HSPLandroid/view/ViewRootInsetsControllerHost;->getSystemBarsAppearance()I
-HSPLandroid/view/ViewRootInsetsControllerHost;->getSystemBarsBehavior()I
-HSPLandroid/view/ViewRootInsetsControllerHost;->getTranslator()Landroid/content/res/CompatibilityInfo$Translator;
-HSPLandroid/view/ViewRootInsetsControllerHost;->getWindowToken()Landroid/os/IBinder;
-HSPLandroid/view/ViewRootInsetsControllerHost;->hasAnimationCallbacks()Z
-HSPLandroid/view/ViewRootInsetsControllerHost;->isSystemBarsAppearanceControlled()Z
-HSPLandroid/view/ViewRootInsetsControllerHost;->notifyInsetsChanged()V
-HSPLandroid/view/ViewRootInsetsControllerHost;->updateCompatSysUiVisibility(III)V
-HSPLandroid/view/ViewRootRectTracker$ViewInfo;-><init>(Landroid/view/ViewRootRectTracker;Landroid/view/View;)V
-HSPLandroid/view/ViewRootRectTracker$ViewInfo;->getView()Landroid/view/View;
-HSPLandroid/view/ViewRootRectTracker$ViewInfo;->update()I
-HSPLandroid/view/ViewRootRectTracker;->-$$Nest$mgetTrackedRectsForView(Landroid/view/ViewRootRectTracker;Landroid/view/View;)Ljava/util/List;
-HSPLandroid/view/ViewRootRectTracker;-><init>(Ljava/util/function/Function;)V
-HSPLandroid/view/ViewRootRectTracker;->computeChangedRects()Ljava/util/List;
-HSPLandroid/view/ViewRootRectTracker;->computeChanges()Z
-HSPLandroid/view/ViewRootRectTracker;->getTrackedRectsForView(Landroid/view/View;)Ljava/util/List;
-HSPLandroid/view/ViewRootRectTracker;->updateRectsForView(Landroid/view/View;)V
-HSPLandroid/view/ViewStructure;-><init>()V
-HSPLandroid/view/ViewStructure;->setImportantForAutofill(I)V
-HSPLandroid/view/ViewStub;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/view/ViewStub;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroid/view/ViewStub;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/view/ViewStub;->inflate()Landroid/view/View;
-HSPLandroid/view/ViewStub;->setLayoutInflater(Landroid/view/LayoutInflater;)V
-HSPLandroid/view/ViewStub;->setLayoutResource(I)V
-HSPLandroid/view/ViewStub;->setOnInflateListener(Landroid/view/ViewStub$OnInflateListener;)V
-HSPLandroid/view/ViewStub;->setVisibility(I)V
-HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;-><init>()V
-HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->get(I)Ljava/lang/Object;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->size()I
-HSPLandroid/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+]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->getArray()Ljava/util/ArrayList;
-HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->remove(Ljava/lang/Object;)V
-HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->size()I+]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->start()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;+]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;-><init>()V
-HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->equals(Ljava/lang/Object;)Z
-HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->isEmpty()Z
-HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->reset()V
-HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->set(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
-HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->setTouchableInsets(I)V
-HSPLandroid/view/ViewTreeObserver;-><init>(Landroid/content/Context;)V
-HSPLandroid/view/ViewTreeObserver;->addOnComputeInternalInsetsListener(Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;)V
-HSPLandroid/view/ViewTreeObserver;->addOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)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
-HSPLandroid/view/ViewTreeObserver;->captureFrameCommitCallbacks()Ljava/util/ArrayList;
-HSPLandroid/view/ViewTreeObserver;->checkIsAlive()V
-HSPLandroid/view/ViewTreeObserver;->dispatchOnComputeInternalInsets(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
-HSPLandroid/view/ViewTreeObserver;->dispatchOnDraw()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/view/ViewTreeObserver$OnDrawListener;Landroid/widget/Editor$2;
-HSPLandroid/view/ViewTreeObserver;->dispatchOnEnterAnimationComplete()V
-HSPLandroid/view/ViewTreeObserver;->dispatchOnGlobalLayout()V+]Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;]Landroid/view/ViewTreeObserver$CopyOnWriteArray;Landroid/view/ViewTreeObserver$CopyOnWriteArray;
-HSPLandroid/view/ViewTreeObserver;->dispatchOnPreDraw()Z+]Landroid/view/ViewTreeObserver$OnPreDrawListener;missing_types]Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;]Landroid/view/ViewTreeObserver$CopyOnWriteArray;Landroid/view/ViewTreeObserver$CopyOnWriteArray;
-HSPLandroid/view/ViewTreeObserver;->dispatchOnScrollChanged()V
-HSPLandroid/view/ViewTreeObserver;->dispatchOnSystemGestureExclusionRectsChanged(Ljava/util/List;)V
-HSPLandroid/view/ViewTreeObserver;->dispatchOnTouchModeChanged(Z)V
-HSPLandroid/view/ViewTreeObserver;->dispatchOnWindowAttachedChange(Z)V
-HSPLandroid/view/ViewTreeObserver;->dispatchOnWindowFocusChange(Z)V
-HSPLandroid/view/ViewTreeObserver;->dispatchOnWindowShown()V
-HSPLandroid/view/ViewTreeObserver;->dispatchOnWindowVisibilityChange(I)V
-HSPLandroid/view/ViewTreeObserver;->hasComputeInternalInsetsListeners()Z
-HSPLandroid/view/ViewTreeObserver;->isAlive()Z
-HSPLandroid/view/ViewTreeObserver;->kill()V
-HSPLandroid/view/ViewTreeObserver;->merge(Landroid/view/ViewTreeObserver;)V
-HSPLandroid/view/ViewTreeObserver;->removeGlobalOnLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
-HSPLandroid/view/ViewTreeObserver;->removeOnComputeInternalInsetsListener(Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;)V
-HSPLandroid/view/ViewTreeObserver;->removeOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)V
-HSPLandroid/view/ViewTreeObserver;->removeOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
-HSPLandroid/view/ViewTreeObserver;->removeOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V
-HSPLandroid/view/ViewTreeObserver;->removeOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V
-HSPLandroid/view/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;->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;
-HSPLandroid/view/Window;->getColorMode()I
-HSPLandroid/view/Window;->getContainer()Landroid/view/Window;
-HSPLandroid/view/Window;->getContext()Landroid/content/Context;
-HSPLandroid/view/Window;->getDefaultFeatures(Landroid/content/Context;)I
-HSPLandroid/view/Window;->getFeatures()I
-HSPLandroid/view/Window;->getForcedWindowFlags()I
-HSPLandroid/view/Window;->getLocalFeatures()I
-HSPLandroid/view/Window;->getWindowControllerCallback()Landroid/view/Window$WindowControllerCallback;
-HSPLandroid/view/Window;->getWindowManager()Landroid/view/WindowManager;
-HSPLandroid/view/Window;->getWindowStyle()Landroid/content/res/TypedArray;
-HSPLandroid/view/Window;->hasFeature(I)Z
-HSPLandroid/view/Window;->hasSoftInputMode()Z
-HSPLandroid/view/Window;->haveDimAmount()Z
-HSPLandroid/view/Window;->isDestroyed()Z
-HSPLandroid/view/Window;->isOutOfBounds(Landroid/content/Context;Landroid/view/MotionEvent;)Z
-HSPLandroid/view/Window;->isOverlayWithDecorCaptionEnabled()Z
-HSPLandroid/view/Window;->isWideColorGamut()Z
-HSPLandroid/view/Window;->makeActive()V
-HSPLandroid/view/Window;->onDrawLegacyNavigationBarBackgroundChanged(Z)Z
-HSPLandroid/view/Window;->removeOnFrameMetricsAvailableListener(Landroid/view/Window$OnFrameMetricsAvailableListener;)V
-HSPLandroid/view/Window;->requestFeature(I)Z
-HSPLandroid/view/Window;->setAttributes(Landroid/view/WindowManager$LayoutParams;)V+]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/view/Window;Lcom/android/internal/policy/PhoneWindow;
-HSPLandroid/view/Window;->setBackgroundBlurRadius(I)V
-HSPLandroid/view/Window;->setCallback(Landroid/view/Window$Callback;)V
-HSPLandroid/view/Window;->setCloseOnTouchOutside(Z)V
-HSPLandroid/view/Window;->setCloseOnTouchOutsideIfNotSet(Z)V
-HSPLandroid/view/Window;->setColorMode(I)V
-HSPLandroid/view/Window;->setDefaultWindowFormat(I)V
-HSPLandroid/view/Window;->setFlags(II)V
-HSPLandroid/view/Window;->setGravity(I)V
-HSPLandroid/view/Window;->setLayout(II)V
-HSPLandroid/view/Window;->setOnWindowDismissedCallback(Landroid/view/Window$OnWindowDismissedCallback;)V
-HSPLandroid/view/Window;->setPreferMinimalPostProcessing(Z)V
-HSPLandroid/view/Window;->setSoftInputMode(I)V
-HSPLandroid/view/Window;->setType(I)V
-HSPLandroid/view/Window;->setWindowAnimations(I)V
-HSPLandroid/view/Window;->setWindowControllerCallback(Landroid/view/Window$WindowControllerCallback;)V
-HSPLandroid/view/Window;->setWindowManager(Landroid/view/WindowManager;Landroid/os/IBinder;Ljava/lang/String;Z)V
-HSPLandroid/view/Window;->shouldCloseOnTouch(Landroid/content/Context;Landroid/view/MotionEvent;)Z
-HSPLandroid/view/WindowInsets$Builder;-><init>()V
-HSPLandroid/view/WindowInsets$Builder;-><init>(Landroid/view/WindowInsets;)V
-HSPLandroid/view/WindowInsets$Builder;->build()Landroid/view/WindowInsets;
-HSPLandroid/view/WindowInsets$Builder;->setSystemWindowInsets(Landroid/graphics/Insets;)Landroid/view/WindowInsets$Builder;
-HSPLandroid/view/WindowInsets$Side;->all()I
-HSPLandroid/view/WindowInsets$Type;->all()I
-HSPLandroid/view/WindowInsets$Type;->captionBar()I
-HSPLandroid/view/WindowInsets$Type;->defaultVisible()I
-HSPLandroid/view/WindowInsets$Type;->displayCutout()I
-HSPLandroid/view/WindowInsets$Type;->hasCompatSystemBars(I)Z
-HSPLandroid/view/WindowInsets$Type;->ime()I
-HSPLandroid/view/WindowInsets$Type;->indexOf(I)I
-HSPLandroid/view/WindowInsets$Type;->navigationBars()I
-HSPLandroid/view/WindowInsets$Type;->statusBars()I
-HSPLandroid/view/WindowInsets$Type;->systemBars()I
-HSPLandroid/view/WindowInsets$Type;->systemGestures()I
-HSPLandroid/view/WindowInsets$Type;->toString(I)Ljava/lang/String;
-HSPLandroid/view/WindowInsets;-><init>([Landroid/graphics/Insets;[Landroid/graphics/Insets;[ZZIILandroid/view/DisplayCutout;Landroid/view/RoundedCorners;Landroid/view/PrivacyIndicatorBounds;Landroid/view/DisplayShape;IZ[[Landroid/graphics/Rect;[[Landroid/graphics/Rect;II)V+]Landroid/view/DisplayCutout;Landroid/view/DisplayCutout;][Landroid/graphics/Insets;[Landroid/graphics/Insets;][[Landroid/graphics/Rect;[[Landroid/graphics/Rect;
-HSPLandroid/view/WindowInsets;->assignCompatInsets([Landroid/graphics/Insets;Landroid/graphics/Rect;)V
-HSPLandroid/view/WindowInsets;->consumeDisplayCutout()Landroid/view/WindowInsets;
-HSPLandroid/view/WindowInsets;->consumeStableInsets()Landroid/view/WindowInsets;
-HSPLandroid/view/WindowInsets;->consumeSystemWindowInsets()Landroid/view/WindowInsets;
-HSPLandroid/view/WindowInsets;->displayCutoutCopyConstructorArgument(Landroid/view/WindowInsets;)Landroid/view/DisplayCutout;
-HSPLandroid/view/WindowInsets;->equals(Ljava/lang/Object;)Z
-HSPLandroid/view/WindowInsets;->getDisplayCutout()Landroid/view/DisplayCutout;
-HSPLandroid/view/WindowInsets;->getInsets(I)Landroid/graphics/Insets;
-HSPLandroid/view/WindowInsets;->getInsets([Landroid/graphics/Insets;I)Landroid/graphics/Insets;
-HSPLandroid/view/WindowInsets;->getInsetsIgnoringVisibility(I)Landroid/graphics/Insets;
-HSPLandroid/view/WindowInsets;->getMandatorySystemGestureInsets()Landroid/graphics/Insets;
-HSPLandroid/view/WindowInsets;->getStableInsetBottom()I
-HSPLandroid/view/WindowInsets;->getStableInsetLeft()I
-HSPLandroid/view/WindowInsets;->getStableInsetRight()I
-HSPLandroid/view/WindowInsets;->getStableInsetTop()I
-HSPLandroid/view/WindowInsets;->getStableInsets()Landroid/graphics/Insets;
-HSPLandroid/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;
-HSPLandroid/view/WindowInsets;->getSystemWindowInsetsAsRect()Landroid/graphics/Rect;
-HSPLandroid/view/WindowInsets;->inset(IIII)Landroid/view/WindowInsets;
-HSPLandroid/view/WindowInsets;->inset(Landroid/graphics/Insets;)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;->insetUnchecked(IIII)Landroid/view/WindowInsets;
-HSPLandroid/view/WindowInsets;->isConsumed()Z
-HSPLandroid/view/WindowInsets;->isRound()Z
-HSPLandroid/view/WindowInsets;->replaceSystemWindowInsets(IIII)Landroid/view/WindowInsets;
-HSPLandroid/view/WindowInsetsAnimation$Bounds;-><init>(Landroid/graphics/Insets;Landroid/graphics/Insets;)V
-HSPLandroid/view/WindowInsetsAnimation$Callback;-><init>(I)V
-HSPLandroid/view/WindowInsetsAnimation;-><init>(ILandroid/view/animation/Interpolator;J)V
-HSPLandroid/view/WindowInsetsAnimation;->getTypeMask()I
-HSPLandroid/view/WindowInsetsAnimation;->setAlpha(F)V
-HSPLandroid/view/WindowLayout;-><clinit>()V
-HSPLandroid/view/WindowLayout;-><init>()V
-HSPLandroid/view/WindowLayout;->computeFrames(Landroid/view/WindowManager$LayoutParams;Landroid/view/InsetsState;Landroid/graphics/Rect;Landroid/graphics/Rect;IIIIFLandroid/window/ClientWindowFrames;)V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/view/DisplayCutout;Landroid/view/DisplayCutout;]Landroid/graphics/Rect;Landroid/graphics/Rect;
-HSPLandroid/view/WindowLayout;->computeSurfaceSize(Landroid/view/WindowManager$LayoutParams;Landroid/graphics/Rect;IILandroid/graphics/Rect;ZLandroid/graphics/Point;)V+]Landroid/graphics/Point;Landroid/graphics/Point;]Landroid/graphics/Rect;Landroid/graphics/Rect;
-HSPLandroid/view/WindowLeaked;-><init>(Ljava/lang/String;)V
-HSPLandroid/view/WindowManager$LayoutParams$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/WindowManager$LayoutParams;
-HSPLandroid/view/WindowManager$LayoutParams$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/WindowManager$LayoutParams;-><init>()V
-HSPLandroid/view/WindowManager$LayoutParams;-><init>(IIIII)V
-HSPLandroid/view/WindowManager$LayoutParams;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/WindowManager$LayoutParams;->copyFrom(Landroid/view/WindowManager$LayoutParams;)I+]Landroid/graphics/Rect;Landroid/graphics/Rect;
-HSPLandroid/view/WindowManager$LayoutParams;->forRotation(I)Landroid/view/WindowManager$LayoutParams;
-HSPLandroid/view/WindowManager$LayoutParams;->getColorMode()I
-HSPLandroid/view/WindowManager$LayoutParams;->getFitInsetsSides()I
-HSPLandroid/view/WindowManager$LayoutParams;->getFitInsetsTypes()I
-HSPLandroid/view/WindowManager$LayoutParams;->getTitle()Ljava/lang/CharSequence;
-HSPLandroid/view/WindowManager$LayoutParams;->isFitInsetsIgnoringVisibility()Z
-HSPLandroid/view/WindowManager$LayoutParams;->isFullscreen()Z
-HSPLandroid/view/WindowManager$LayoutParams;->mayUseInputMethod(I)Z
-HSPLandroid/view/WindowManager$LayoutParams;->setColorMode(I)V
-HSPLandroid/view/WindowManager$LayoutParams;->setFitInsetsIgnoringVisibility(Z)V
-HSPLandroid/view/WindowManager$LayoutParams;->setFitInsetsSides(I)V
-HSPLandroid/view/WindowManager$LayoutParams;->setFitInsetsTypes(I)V
-HSPLandroid/view/WindowManager$LayoutParams;->setSurfaceInsets(Landroid/view/View;ZZ)V
-HSPLandroid/view/WindowManager$LayoutParams;->setTitle(Ljava/lang/CharSequence;)V
-HSPLandroid/view/WindowManager$LayoutParams;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel;
-HSPLandroid/view/WindowManager;->hasWindowExtensionsEnabled()Z
-HSPLandroid/view/WindowManagerGlobal$1;-><init>()V
-HSPLandroid/view/WindowManagerGlobal$2;-><init>(Landroid/view/WindowManagerGlobal;)V
-HSPLandroid/view/WindowManagerGlobal$TrustedPresentationListener;-><clinit>()V
-HSPLandroid/view/WindowManagerGlobal$TrustedPresentationListener;-><init>(Landroid/view/WindowManagerGlobal;)V
-HSPLandroid/view/WindowManagerGlobal$TrustedPresentationListener;-><init>(Landroid/view/WindowManagerGlobal;Landroid/view/WindowManagerGlobal$TrustedPresentationListener-IA;)V
-HSPLandroid/view/WindowManagerGlobal;-><init>()V
-HSPLandroid/view/WindowManagerGlobal;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;Landroid/view/Display;Landroid/view/Window;I)V
-HSPLandroid/view/WindowManagerGlobal;->closeAll(Landroid/os/IBinder;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/view/WindowManagerGlobal;->closeAllExceptView(Landroid/os/IBinder;Landroid/view/View;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/view/WindowManagerGlobal;->doRemoveView(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/WindowManagerGlobal;->dumpGfxInfo(Ljava/io/FileDescriptor;[Ljava/lang/String;)V
-HSPLandroid/view/WindowManagerGlobal;->findViewLocked(Landroid/view/View;Z)I+]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/view/WindowManagerGlobal;->getInstance()Landroid/view/WindowManagerGlobal;
-HSPLandroid/view/WindowManagerGlobal;->getRootViews(Landroid/os/IBinder;)Ljava/util/ArrayList;
-HSPLandroid/view/WindowManagerGlobal;->getWindowManagerService()Landroid/view/IWindowManager;
-HSPLandroid/view/WindowManagerGlobal;->getWindowSession()Landroid/view/IWindowSession;
-HSPLandroid/view/WindowManagerGlobal;->getWindowView(Landroid/os/IBinder;)Landroid/view/View;
-HSPLandroid/view/WindowManagerGlobal;->initialize()V
-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
-HSPLandroid/view/WindowManagerGlobal;->trimMemory(I)V
-HSPLandroid/view/WindowManagerGlobal;->updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/view/WindowManagerImpl;-><init>(Landroid/content/Context;)V
-HSPLandroid/view/WindowManagerImpl;-><init>(Landroid/content/Context;Landroid/view/Window;Landroid/os/IBinder;)V
-HSPLandroid/view/WindowManagerImpl;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
-HSPLandroid/view/WindowManagerImpl;->applyTokens(Landroid/view/ViewGroup$LayoutParams;)V
-HSPLandroid/view/WindowManagerImpl;->assertWindowContextTypeMatches(I)V
-HSPLandroid/view/WindowManagerImpl;->createLocalWindowManager(Landroid/view/Window;)Landroid/view/WindowManagerImpl;
-HSPLandroid/view/WindowManagerImpl;->createWindowContextWindowManager(Landroid/content/Context;)Landroid/view/WindowManager;
-HSPLandroid/view/WindowManagerImpl;->getCurrentWindowMetrics()Landroid/view/WindowMetrics;
-HSPLandroid/view/WindowManagerImpl;->getDefaultDisplay()Landroid/view/Display;
-HSPLandroid/view/WindowManagerImpl;->getMaximumWindowMetrics()Landroid/view/WindowMetrics;
-HSPLandroid/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+]Landroid/view/WindowManagerGlobal;Landroid/view/WindowManagerGlobal;
-HSPLandroid/view/WindowMetrics;-><init>(Landroid/graphics/Rect;Landroid/view/WindowInsets;)V
-HSPLandroid/view/WindowMetrics;-><init>(Landroid/graphics/Rect;Ljava/util/function/Supplier;F)V
-HSPLandroid/view/WindowMetrics;->getBounds()Landroid/graphics/Rect;
-HSPLandroid/view/WindowMetrics;->getWindowInsets()Landroid/view/WindowInsets;
-HSPLandroid/view/accessibility/AccessibilityInteractionClient;->hasAnyDirectConnection()Z
-HSPLandroid/view/accessibility/AccessibilityManager$1;-><init>(Landroid/view/accessibility/AccessibilityManager;)V
-HSPLandroid/view/accessibility/AccessibilityManager$1;->notifyServicesStateChanged(J)V
-HSPLandroid/view/accessibility/AccessibilityManager$1;->setFocusAppearance(II)V
-HSPLandroid/view/accessibility/AccessibilityManager$1;->setState(I)V
-HSPLandroid/view/accessibility/AccessibilityManager$MyCallback;-><init>(Landroid/view/accessibility/AccessibilityManager;)V
-HSPLandroid/view/accessibility/AccessibilityManager$MyCallback;-><init>(Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager$MyCallback-IA;)V
-HSPLandroid/view/accessibility/AccessibilityManager$MyCallback;->handleMessage(Landroid/os/Message;)Z
-HSPLandroid/view/accessibility/AccessibilityManager;-><init>(Landroid/content/Context;Landroid/view/accessibility/IAccessibilityManager;I)V
-HSPLandroid/view/accessibility/AccessibilityManager;->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;
-HSPLandroid/view/accessibility/AccessibilityManager;->getInstance(Landroid/content/Context;)Landroid/view/accessibility/AccessibilityManager;
-HSPLandroid/view/accessibility/AccessibilityManager;->getRecommendedTimeoutMillis(II)I
-HSPLandroid/view/accessibility/AccessibilityManager;->getServiceLocked()Landroid/view/accessibility/IAccessibilityManager;
-HSPLandroid/view/accessibility/AccessibilityManager;->hasAnyDirectConnection()Z
-HSPLandroid/view/accessibility/AccessibilityManager;->initialFocusAppearanceLocked(Landroid/content/res/Resources;)V
-HSPLandroid/view/accessibility/AccessibilityManager;->isEnabled()Z+]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager;
-HSPLandroid/view/accessibility/AccessibilityManager;->isHighTextContrastEnabled()Z
-HSPLandroid/view/accessibility/AccessibilityManager;->isTouchExplorationEnabled()Z
-HSPLandroid/view/accessibility/AccessibilityManager;->notifyAccessibilityStateChanged()V
-HSPLandroid/view/accessibility/AccessibilityManager;->registerSystemAction(Landroid/app/RemoteAction;I)V
-HSPLandroid/view/accessibility/AccessibilityManager;->removeAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;)Z
-HSPLandroid/view/accessibility/AccessibilityManager;->removeHighTextContrastStateChangeListener(Landroid/view/accessibility/AccessibilityManager$HighTextContrastChangeListener;)V
-HSPLandroid/view/accessibility/AccessibilityManager;->removeTouchExplorationStateChangeListener(Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;)Z
-HSPLandroid/view/accessibility/AccessibilityManager;->setStateLocked(I)V
-HSPLandroid/view/accessibility/AccessibilityManager;->tryConnectToServiceLocked(Landroid/view/accessibility/IAccessibilityManager;)V
-HSPLandroid/view/accessibility/AccessibilityManager;->unregisterSystemAction(I)V
-HSPLandroid/view/accessibility/AccessibilityManager;->updateAccessibilityTracingState(I)V
-HSPLandroid/view/accessibility/AccessibilityManager;->updateFocusAppearanceLocked(II)V
-HSPLandroid/view/accessibility/AccessibilityManager;->updateUiTimeout(J)V
-HSPLandroid/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
-HSPLandroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;->equals(Ljava/lang/Object;)Z
-HSPLandroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;->getId()I
-HSPLandroid/view/accessibility/AccessibilityNodeProvider;-><init>()V
-HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->getTypeface()Landroid/graphics/Typeface;
-HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasBackgroundColor()Z
-HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasEdgeColor()Z
-HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasEdgeType()Z
-HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasForegroundColor()Z
-HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasWindowColor()Z
-HSPLandroid/view/accessibility/CaptioningManager$CaptioningChangeListener;-><init>()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;
-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
-HSPLandroid/view/accessibility/CaptioningManager;->removeCaptioningChangeListener(Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener;)V
-HSPLandroid/view/accessibility/IAccessibilityInteractionConnection$Stub;-><init>()V
-HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->addClient(Landroid/view/accessibility/IAccessibilityManagerClient;I)J
-HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getEnabledAccessibilityServiceList(II)Ljava/util/List;
-HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getFocusColor()I
-HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getFocusStrokeWidth()I
-HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getRecommendedTimeoutMillis()J
-HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->registerSystemAction(Landroid/app/RemoteAction;I)V
-HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->unregisterSystemAction(I)V
-HSPLandroid/view/accessibility/IAccessibilityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/accessibility/IAccessibilityManager;
-HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;-><init>()V
-HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
-HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->getMaxTransactionId()I
-HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->getTransactionName(I)Ljava/lang/String;
-HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/view/accessibility/WeakSparseArray$WeakReferenceWithId;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;I)V
-HSPLandroid/view/accessibility/WeakSparseArray;-><init>()V
-HSPLandroid/view/accessibility/WeakSparseArray;->append(ILjava/lang/Object;)V
-HSPLandroid/view/accessibility/WeakSparseArray;->remove(I)V
-HSPLandroid/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
-HSPLandroid/view/animation/AlphaAnimation;-><init>(FF)V
-HSPLandroid/view/animation/AlphaAnimation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/view/animation/AlphaAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
-HSPLandroid/view/animation/AlphaAnimation;->hasAlpha()Z
-HSPLandroid/view/animation/AlphaAnimation;->willChangeBounds()Z
-HSPLandroid/view/animation/AlphaAnimation;->willChangeTransformationMatrix()Z
-HSPLandroid/view/animation/Animation$1;->run()V
-HSPLandroid/view/animation/Animation$3;->run()V
-HSPLandroid/view/animation/Animation$Description;-><init>()V
-HSPLandroid/view/animation/Animation$Description;->parseValue(Landroid/util/TypedValue;Landroid/content/Context;)Landroid/view/animation/Animation$Description;
-HSPLandroid/view/animation/Animation;-><init>()V
-HSPLandroid/view/animation/Animation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/view/animation/Animation;->cancel()V
-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
-HSPLandroid/view/animation/Animation;->getDuration()J
-HSPLandroid/view/animation/Animation;->getFillAfter()Z
-HSPLandroid/view/animation/Animation;->getInvalidateRegion(IIIILandroid/graphics/RectF;Landroid/view/animation/Transformation;)V
-HSPLandroid/view/animation/Animation;->getScaleFactor()F
-HSPLandroid/view/animation/Animation;->getStartOffset()J
-HSPLandroid/view/animation/Animation;->getTransformation(JLandroid/view/animation/Transformation;)Z
-HSPLandroid/view/animation/Animation;->getTransformation(JLandroid/view/animation/Transformation;F)Z
-HSPLandroid/view/animation/Animation;->getTransformationAt(FLandroid/view/animation/Transformation;)V
-HSPLandroid/view/animation/Animation;->hasAlpha()Z
-HSPLandroid/view/animation/Animation;->hasEnded()Z
-HSPLandroid/view/animation/Animation;->hasStarted()Z
-HSPLandroid/view/animation/Animation;->initialize(IIII)V
-HSPLandroid/view/animation/Animation;->initializeInvalidateRegion(IIII)V
-HSPLandroid/view/animation/Animation;->isFillEnabled()Z
-HSPLandroid/view/animation/Animation;->isInitialized()Z
-HSPLandroid/view/animation/Animation;->reset()V
-HSPLandroid/view/animation/Animation;->resolveSize(IFII)F
-HSPLandroid/view/animation/Animation;->setAnimationListener(Landroid/view/animation/Animation$AnimationListener;)V
-HSPLandroid/view/animation/Animation;->setBackdropColor(I)V
-HSPLandroid/view/animation/Animation;->setBackgroundColor(I)V
-HSPLandroid/view/animation/Animation;->setDetachWallpaper(Z)V
-HSPLandroid/view/animation/Animation;->setDuration(J)V
-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;->setShowBackdrop(Z)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
-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
-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$AnimationState-IA;)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;
-HSPLandroid/view/animation/AnimationUtils;->lockAnimationClock(J)V
-HSPLandroid/view/animation/AnimationUtils;->lockAnimationClock(JJ)V+]Ljava/lang/ThreadLocal;Landroid/view/animation/AnimationUtils$1;
-HSPLandroid/view/animation/AnimationUtils;->unlockAnimationClock()V+]Ljava/lang/ThreadLocal;Landroid/view/animation/AnimationUtils$1;
-HSPLandroid/view/animation/BaseInterpolator;-><init>()V
-HSPLandroid/view/animation/BaseInterpolator;->getChangingConfiguration()I
-HSPLandroid/view/animation/BaseInterpolator;->setChangingConfiguration(I)V
-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
-HSPLandroid/view/animation/OvershootInterpolator;-><init>()V
-HSPLandroid/view/animation/OvershootInterpolator;-><init>(F)V
-HSPLandroid/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;->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+]Landroid/graphics/Path;Landroid/graphics/Path;
-HSPLandroid/view/animation/PathInterpolator;->parseInterpolatorFromTypeArray(Landroid/content/res/TypedArray;)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
-HSPLandroid/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
-HSPLandroid/view/animation/Transformation;->getInsets()Landroid/graphics/Insets;
-HSPLandroid/view/animation/Transformation;->getMatrix()Landroid/graphics/Matrix;
-HSPLandroid/view/animation/Transformation;->getTransformationType()I
-HSPLandroid/view/animation/Transformation;->set(Landroid/view/animation/Transformation;)V
-HSPLandroid/view/animation/Transformation;->setAlpha(F)V
-HSPLandroid/view/animation/Transformation;->setInsets(Landroid/graphics/Insets;)V
-HSPLandroid/view/animation/TranslateAnimation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/view/animation/TranslateAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
-HSPLandroid/view/animation/TranslateAnimation;->initialize(IIII)V
-HSPLandroid/view/autofill/AutofillClientController;-><clinit>()V
-HSPLandroid/view/autofill/AutofillClientController;-><init>(Landroid/app/Activity;)V
-HSPLandroid/view/autofill/AutofillClientController;->autofillClientGetActivityToken()Landroid/os/IBinder;
-HSPLandroid/view/autofill/AutofillClientController;->autofillClientGetComponentName()Landroid/content/ComponentName;
-HSPLandroid/view/autofill/AutofillClientController;->autofillClientIsFillUiShowing()Z
-HSPLandroid/view/autofill/AutofillClientController;->autofillClientRequestHideFillUi()Z
-HSPLandroid/view/autofill/AutofillClientController;->autofillClientResetableStateAvailable()V
-HSPLandroid/view/autofill/AutofillClientController;->autofillClientRunOnUiThread(Ljava/lang/Runnable;)V
-HSPLandroid/view/autofill/AutofillClientController;->enableAutofillCompatibilityIfNeeded()V
-HSPLandroid/view/autofill/AutofillClientController;->getAutofillManager()Landroid/view/autofill/AutofillManager;
-HSPLandroid/view/autofill/AutofillClientController;->getNextAutofillId()I
-HSPLandroid/view/autofill/AutofillClientController;->isDisablingEnterExitEventForAutofill()Z
-HSPLandroid/view/autofill/AutofillClientController;->onActivityAttached(Landroid/app/Application;)V
-HSPLandroid/view/autofill/AutofillClientController;->onActivityCreated(Landroid/os/Bundle;)V
-HSPLandroid/view/autofill/AutofillClientController;->onActivityDestroyed()V
-HSPLandroid/view/autofill/AutofillClientController;->onActivityFinish(Landroid/content/Intent;)V
-HSPLandroid/view/autofill/AutofillClientController;->onActivityPaused()V
-HSPLandroid/view/autofill/AutofillClientController;->onActivityPerformResume(Z)V
-HSPLandroid/view/autofill/AutofillClientController;->onActivityResumed()V
-HSPLandroid/view/autofill/AutofillClientController;->onActivityStarted()V
-HSPLandroid/view/autofill/AutofillClientController;->onActivityStopped(Landroid/content/Intent;Z)V
-HSPLandroid/view/autofill/AutofillClientController;->onSaveInstanceState(Landroid/os/Bundle;)V
-HSPLandroid/view/autofill/AutofillClientController;->onStartActivity(Landroid/content/Intent;Landroid/content/Intent;)V
-HSPLandroid/view/autofill/AutofillFeatureFlags$$ExternalSyntheticLambda0;-><init>()V
-HSPLandroid/view/autofill/AutofillFeatureFlags$$ExternalSyntheticLambda1;-><init>()V
-HSPLandroid/view/autofill/AutofillFeatureFlags$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z
-HSPLandroid/view/autofill/AutofillFeatureFlags;->getDenylistStringFromFlag()Ljava/lang/String;
-HSPLandroid/view/autofill/AutofillFeatureFlags;->getFillDialogEnabledHints()[Ljava/lang/String;
-HSPLandroid/view/autofill/AutofillFeatureFlags;->getNonAutofillableImeActionIdSetFromFlag()Ljava/util/Set;
-HSPLandroid/view/autofill/AutofillFeatureFlags;->isFillDialogEnabled()Z
-HSPLandroid/view/autofill/AutofillFeatureFlags;->isTriggerFillRequestOnUnimportantViewEnabled()Z
-HSPLandroid/view/autofill/AutofillFeatureFlags;->lambda$getFillDialogEnabledHints$1(Ljava/lang/String;)Z
-HSPLandroid/view/autofill/AutofillFeatureFlags;->shouldIncludeAllChildrenViewInAssistStructure()Z
-HSPLandroid/view/autofill/AutofillFeatureFlags;->shouldIncludeAllViewsAutofillTypeNotNoneInAssistStructrue()Z
-HSPLandroid/view/autofill/AutofillId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/autofill/AutofillId;
-HSPLandroid/view/autofill/AutofillId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/autofill/AutofillId;-><init>(I)V
-HSPLandroid/view/autofill/AutofillId;-><init>(IIJI)V
-HSPLandroid/view/autofill/AutofillId;->equals(Ljava/lang/Object;)Z
-HSPLandroid/view/autofill/AutofillId;->getViewId()I
-HSPLandroid/view/autofill/AutofillId;->hasSession()Z
-HSPLandroid/view/autofill/AutofillId;->hashCode()I
-HSPLandroid/view/autofill/AutofillId;->isVirtualInt()Z
-HSPLandroid/view/autofill/AutofillId;->isVirtualLong()Z
-HSPLandroid/view/autofill/AutofillId;->resetSessionId()V
-HSPLandroid/view/autofill/AutofillId;->toString()Ljava/lang/String;
-HSPLandroid/view/autofill/AutofillId;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/autofill/AutofillManager$AugmentedAutofillManagerClient;-><init>(Landroid/view/autofill/AutofillManager;)V
-HSPLandroid/view/autofill/AutofillManager$AugmentedAutofillManagerClient;->getView(Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillId;)Landroid/view/View;
-HSPLandroid/view/autofill/AutofillManager$AugmentedAutofillManagerClient;->getViewCoordinates(Landroid/view/autofill/AutofillId;)Landroid/graphics/Rect;
-HSPLandroid/view/autofill/AutofillManager$AugmentedAutofillManagerClient;->getViewNodeParcelable(Landroid/view/autofill/AutofillId;)Landroid/app/assist/AssistStructure$ViewNodeParcelable;
-HSPLandroid/view/autofill/AutofillManager$AutofillCallback;-><init>()V
-HSPLandroid/view/autofill/AutofillManager$AutofillManagerClient;->getAugmentedAutofillClient(Lcom/android/internal/os/IResultReceiver;)V
-HSPLandroid/view/autofill/AutofillManager$AutofillManagerClient;->lambda$setState$0(Landroid/view/autofill/AutofillManager;I)V
-HSPLandroid/view/autofill/AutofillManager$AutofillManagerClient;->setState(I)V
-HSPLandroid/view/autofill/AutofillManager;->-$$Nest$mpost(Landroid/view/autofill/AutofillManager;Ljava/lang/Runnable;)V
-HSPLandroid/view/autofill/AutofillManager;-><init>(Landroid/content/Context;Landroid/view/autofill/IAutoFillManager;)V
-HSPLandroid/view/autofill/AutofillManager;->cancelLocked()V
-HSPLandroid/view/autofill/AutofillManager;->cancelSessionLocked()V
-HSPLandroid/view/autofill/AutofillManager;->getAugmentedAutofillClient(Lcom/android/internal/os/IResultReceiver;)V
-HSPLandroid/view/autofill/AutofillManager;->getAutofillServiceComponentName()Landroid/content/ComponentName;
-HSPLandroid/view/autofill/AutofillManager;->getClient()Landroid/view/autofill/AutofillManager$AutofillClient;
-HSPLandroid/view/autofill/AutofillManager;->hasAutofillFeature()Z
-HSPLandroid/view/autofill/AutofillManager;->hasFillDialogUiFeature()Z
-HSPLandroid/view/autofill/AutofillManager;->isActiveLocked()Z
-HSPLandroid/view/autofill/AutofillManager;->isDisabledByServiceLocked()Z
-HSPLandroid/view/autofill/AutofillManager;->isEnabled()Z
-HSPLandroid/view/autofill/AutofillManager;->notifyValueChanged(Landroid/view/View;)V
-HSPLandroid/view/autofill/AutofillManager;->notifyViewEntered(Landroid/view/View;I)V
-HSPLandroid/view/autofill/AutofillManager;->notifyViewEnteredForAugmentedAutofill(Landroid/view/View;)V
-HSPLandroid/view/autofill/AutofillManager;->notifyViewEnteredForFillDialog(Landroid/view/View;)V
-HSPLandroid/view/autofill/AutofillManager;->notifyViewExited(Landroid/view/View;)V
-HSPLandroid/view/autofill/AutofillManager;->notifyViewExitedLocked(Landroid/view/View;)V
-HSPLandroid/view/autofill/AutofillManager;->notifyViewVisibilityChangedInternal(Landroid/view/View;IZZ)V
-HSPLandroid/view/autofill/AutofillManager;->onActivityFinishing()V
-HSPLandroid/view/autofill/AutofillManager;->onInvisibleForAutofill(Z)V
-HSPLandroid/view/autofill/AutofillManager;->onSaveInstanceState(Landroid/os/Bundle;)V
-HSPLandroid/view/autofill/AutofillManager;->post(Ljava/lang/Runnable;)V
-HSPLandroid/view/autofill/AutofillManager;->registerCallback(Landroid/view/autofill/AutofillManager$AutofillCallback;)V
-HSPLandroid/view/autofill/AutofillManager;->requestHideFillUi()V
-HSPLandroid/view/autofill/AutofillManager;->requestHideFillUi(Landroid/view/autofill/AutofillId;Z)V
-HSPLandroid/view/autofill/AutofillManager;->resetSessionLocked(Z)V
-HSPLandroid/view/autofill/AutofillManager;->setSessionFinished(ILjava/util/List;)V
-HSPLandroid/view/autofill/AutofillManager;->setState(I)V
-HSPLandroid/view/autofill/AutofillManager;->shouldIgnoreViewEnteredLocked(Landroid/view/autofill/AutofillId;I)Z
-HSPLandroid/view/autofill/AutofillManager;->startAutofillIfNeededLocked(Landroid/view/View;)Z
-HSPLandroid/view/autofill/AutofillManager;->startSessionLocked(Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;I)V
-HSPLandroid/view/autofill/AutofillManager;->tryAddServiceClientIfNeededLocked()Z
-HSPLandroid/view/autofill/AutofillManager;->updateSessionLocked(Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;II)V
-HSPLandroid/view/autofill/AutofillValue$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/autofill/AutofillValue;
-HSPLandroid/view/autofill/AutofillValue$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/autofill/AutofillValue;-><init>(ILjava/lang/Object;)V
-HSPLandroid/view/autofill/AutofillValue;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/autofill/AutofillValue;->forText(Ljava/lang/CharSequence;)Landroid/view/autofill/AutofillValue;
-HSPLandroid/view/autofill/AutofillValue;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/autofill/IAugmentedAutofillManagerClient$Stub;-><init>()V
-HSPLandroid/view/autofill/IAugmentedAutofillManagerClient$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/view/autofill/IAugmentedAutofillManagerClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->addClient(Landroid/view/autofill/IAutoFillManagerClient;Landroid/content/ComponentName;ILcom/android/internal/os/IResultReceiver;)V
-HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->cancelSession(II)V
-HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->getAutofillServiceComponentName(Lcom/android/internal/os/IResultReceiver;)V
-HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->removeClient(Landroid/view/autofill/IAutoFillManagerClient;I)V
-HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->setHasCallback(IIZ)V
-HSPLandroid/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
-HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->updateSession(ILandroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;III)V
-HSPLandroid/view/autofill/IAutoFillManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/autofill/IAutoFillManager;
-HSPLandroid/view/autofill/IAutoFillManagerClient$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/view/autofill/IAutoFillManagerClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/view/contentcapture/ContentCaptureEvent;-><init>(II)V
-HSPLandroid/view/contentcapture/ContentCaptureEvent;-><init>(IIJ)V
-HSPLandroid/view/contentcapture/ContentCaptureEvent;->addAutofillId(Landroid/view/autofill/AutofillId;)Landroid/view/contentcapture/ContentCaptureEvent;
-HSPLandroid/view/contentcapture/ContentCaptureEvent;->getId()Landroid/view/autofill/AutofillId;
-HSPLandroid/view/contentcapture/ContentCaptureEvent;->getIds()Ljava/util/List;
-HSPLandroid/view/contentcapture/ContentCaptureEvent;->getSessionId()I
-HSPLandroid/view/contentcapture/ContentCaptureEvent;->getText()Ljava/lang/CharSequence;
-HSPLandroid/view/contentcapture/ContentCaptureEvent;->getType()I
-HSPLandroid/view/contentcapture/ContentCaptureEvent;->mergeEvent(Landroid/view/contentcapture/ContentCaptureEvent;)V
-HSPLandroid/view/contentcapture/ContentCaptureEvent;->setAutofillId(Landroid/view/autofill/AutofillId;)Landroid/view/contentcapture/ContentCaptureEvent;
-HSPLandroid/view/contentcapture/ContentCaptureEvent;->setBounds(Landroid/graphics/Rect;)Landroid/view/contentcapture/ContentCaptureEvent;
-HSPLandroid/view/contentcapture/ContentCaptureEvent;->setComposingIndex(II)Landroid/view/contentcapture/ContentCaptureEvent;
-HSPLandroid/view/contentcapture/ContentCaptureEvent;->setInsets(Landroid/graphics/Insets;)Landroid/view/contentcapture/ContentCaptureEvent;
-HSPLandroid/view/contentcapture/ContentCaptureEvent;->setSelectionIndex(II)Landroid/view/contentcapture/ContentCaptureEvent;
-HSPLandroid/view/contentcapture/ContentCaptureEvent;->setText(Ljava/lang/CharSequence;)Landroid/view/contentcapture/ContentCaptureEvent;
-HSPLandroid/view/contentcapture/ContentCaptureEvent;->setViewNode(Landroid/view/contentcapture/ViewNode;)Landroid/view/contentcapture/ContentCaptureEvent;
-HSPLandroid/view/contentcapture/ContentCaptureEvent;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/contentcapture/ContentCaptureHelper;->getLoggingLevelAsString(I)Ljava/lang/String;
-HSPLandroid/view/contentcapture/ContentCaptureHelper;->setLoggingLevel(I)V
-HSPLandroid/view/contentcapture/ContentCaptureManager$LocalDataShareAdapterResourceManager;-><init>()V
-HSPLandroid/view/contentcapture/ContentCaptureManager$StrippedContext;-><init>(Landroid/content/Context;)V
-HSPLandroid/view/contentcapture/ContentCaptureManager;-><init>(Landroid/content/Context;Landroid/view/contentcapture/IContentCaptureManager;Landroid/content/ContentCaptureOptions;)V
-HSPLandroid/view/contentcapture/ContentCaptureManager;->isContentCaptureEnabled()Z
-HSPLandroid/view/contentcapture/ContentCaptureManager;->onActivityCreated(Landroid/os/IBinder;Landroid/os/IBinder;Landroid/content/ComponentName;)V
-HSPLandroid/view/contentcapture/ContentCaptureManager;->setFlushViewTreeAppearingEventDisabled(Z)V
-HSPLandroid/view/contentcapture/ContentCaptureManager;->updateWindowAttributes(Landroid/view/WindowManager$LayoutParams;)V
-HSPLandroid/view/contentcapture/ContentCaptureSession;-><init>()V
-HSPLandroid/view/contentcapture/ContentCaptureSession;-><init>(I)V
-HSPLandroid/view/contentcapture/ContentCaptureSession;->destroy()V
-HSPLandroid/view/contentcapture/ContentCaptureSession;->getFlushReasonAsString(I)Ljava/lang/String;
-HSPLandroid/view/contentcapture/ContentCaptureSession;->getId()I
-HSPLandroid/view/contentcapture/ContentCaptureSession;->getRandomSessionId()I
-HSPLandroid/view/contentcapture/ContentCaptureSession;->getStateAsString(I)Ljava/lang/String;
-HSPLandroid/view/contentcapture/ContentCaptureSession;->isContentCaptureEnabled()Z
-HSPLandroid/view/contentcapture/ContentCaptureSession;->newViewStructure(Landroid/view/View;)Landroid/view/ViewStructure;
-HSPLandroid/view/contentcapture/ContentCaptureSession;->notifyViewAppeared(Landroid/view/ViewStructure;)V
-HSPLandroid/view/contentcapture/ContentCaptureSession;->notifyViewTextChanged(Landroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V
-HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;->sendEvents(Landroid/content/pm/ParceledListSlice;ILandroid/content/ContentCaptureOptions;)V
-HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/contentcapture/IContentCaptureDirectManager;
-HSPLandroid/view/contentcapture/IContentCaptureManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/view/contentcapture/IContentCaptureManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/view/contentcapture/IContentCaptureManager$Stub$Proxy;->finishSession(I)V
-HSPLandroid/view/contentcapture/IContentCaptureManager$Stub$Proxy;->registerContentCaptureOptionsCallback(Ljava/lang/String;Landroid/view/contentcapture/IContentCaptureOptionsCallback;)V
-HSPLandroid/view/contentcapture/IContentCaptureManager$Stub$Proxy;->startSession(Landroid/os/IBinder;Landroid/os/IBinder;Landroid/content/ComponentName;IILcom/android/internal/os/IResultReceiver;)V
-HSPLandroid/view/contentcapture/IContentCaptureManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/contentcapture/IContentCaptureManager;
-HSPLandroid/view/contentcapture/IContentCaptureOptionsCallback$Stub;-><init>()V
-HSPLandroid/view/contentcapture/IContentCaptureOptionsCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/view/contentcapture/IContentCaptureOptionsCallback$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
-HSPLandroid/view/contentcapture/IContentCaptureOptionsCallback$Stub;->getMaxTransactionId()I
-HSPLandroid/view/contentcapture/IContentCaptureOptionsCallback$Stub;->getTransactionName(I)Ljava/lang/String;
-HSPLandroid/view/contentcapture/IContentCaptureOptionsCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda10;->run()V
-HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda11;->run()V
-HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda12;->run()V
-HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda1;->run()V
-HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda2;->run()V
-HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda3;->run()V
-HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda4;->run()V
-HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda8;->run()V
-HSPLandroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver$$ExternalSyntheticLambda1;->run()V
-HSPLandroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver;-><init>(Landroid/view/contentcapture/MainContentCaptureSession;)V
-HSPLandroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver;->lambda$send$1(Landroid/view/contentcapture/MainContentCaptureSession;ILandroid/os/IBinder;)V
-HSPLandroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver;->send(ILandroid/os/Bundle;)V
-HSPLandroid/view/contentcapture/MainContentCaptureSession;-><init>(Landroid/view/contentcapture/ContentCaptureManager$StrippedContext;Landroid/view/contentcapture/ContentCaptureManager;Landroid/os/Handler;Landroid/view/contentcapture/IContentCaptureManager;)V
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->clearEvents()Landroid/content/pm/ParceledListSlice;
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->destroySession()V
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->flush(I)V
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->flushIfNeeded(I)V
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->getActivityName()Ljava/lang/String;
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->getDebugState()Ljava/lang/String;
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->getDebugState(I)Ljava/lang/String;
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->hasStarted()Z
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->isContentCaptureEnabled()Z
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->isDisabled()Z
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyWindowBoundsChanged(ILandroid/graphics/Rect;)V
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->onDestroy()V
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->onSessionStarted(ILandroid/os/IBinder;)V
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->scheduleFlush(IZ)V
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->sendEvent(Landroid/view/contentcapture/ContentCaptureEvent;)V
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->sendEvent(Landroid/view/contentcapture/ContentCaptureEvent;Z)V
-HSPLandroid/view/contentcapture/MainContentCaptureSession;->start(Landroid/os/IBinder;Landroid/os/IBinder;Landroid/content/ComponentName;I)V
-HSPLandroid/view/contentcapture/ViewNode$ViewNodeText;-><init>()V
-HSPLandroid/view/contentcapture/ViewNode$ViewNodeText;->isSimple()Z
-HSPLandroid/view/contentcapture/ViewNode$ViewNodeText;->writeToParcel(Landroid/os/Parcel;Z)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;-><init>(Landroid/view/View;)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->getNodeText()Landroid/view/contentcapture/ViewNode$ViewNodeText;
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setAutofillHints([Ljava/lang/String;)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setAutofillType(I)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setAutofillValue(Landroid/view/autofill/AutofillValue;)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setCheckable(Z)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setClassName(Ljava/lang/String;)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setClickable(Z)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setContentDescription(Ljava/lang/CharSequence;)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setDimens(IIIIII)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setEnabled(Z)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setFocusable(Z)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setFocused(Z)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setHint(Ljava/lang/CharSequence;)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setHintIdEntry(Ljava/lang/String;)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setId(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setInputType(I)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setLongClickable(Z)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setMaxTextEms(I)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setMaxTextLength(I)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setMinTextEms(I)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setOpaque(Z)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setReceiveContentMimeTypes([Ljava/lang/String;)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setSelected(Z)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setText(Ljava/lang/CharSequence;II)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setTextIdEntry(Ljava/lang/String;)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setTextLines([I[I)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setTextStyle(FIII)V
-HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setVisibility(I)V
-HSPLandroid/view/contentcapture/ViewNode;->-$$Nest$fputmReceiveContentMimeTypes(Landroid/view/contentcapture/ViewNode;[Ljava/lang/String;)V
-HSPLandroid/view/contentcapture/ViewNode;-><init>()V
-HSPLandroid/view/contentcapture/ViewNode;->writeSelfToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/contentcapture/ViewNode;->writeToParcel(Landroid/os/Parcel;Landroid/view/contentcapture/ViewNode;I)V
-HSPLandroid/view/inputmethod/BaseInputConnection;-><init>(Landroid/view/View;Z)V
-HSPLandroid/view/inputmethod/BaseInputConnection;-><init>(Landroid/view/inputmethod/InputMethodManager;Z)V
-HSPLandroid/view/inputmethod/BaseInputConnection;->beginBatchEdit()Z
-HSPLandroid/view/inputmethod/BaseInputConnection;->closeConnection()V
-HSPLandroid/view/inputmethod/BaseInputConnection;->commitText(Ljava/lang/CharSequence;I)Z
-HSPLandroid/view/inputmethod/BaseInputConnection;->deleteSurroundingText(II)Z
-HSPLandroid/view/inputmethod/BaseInputConnection;->endBatchEdit()Z
-HSPLandroid/view/inputmethod/BaseInputConnection;->endComposingRegionEditInternal()V
-HSPLandroid/view/inputmethod/BaseInputConnection;->ensureDefaultComposingSpans()V
-HSPLandroid/view/inputmethod/BaseInputConnection;->finishComposingText()Z
-HSPLandroid/view/inputmethod/BaseInputConnection;->getEditable()Landroid/text/Editable;
-HSPLandroid/view/inputmethod/BaseInputConnection;->getHandler()Landroid/os/Handler;
-HSPLandroid/view/inputmethod/BaseInputConnection;->getSelectedText(I)Ljava/lang/CharSequence;
-HSPLandroid/view/inputmethod/BaseInputConnection;->getTextAfterCursor(II)Ljava/lang/CharSequence;
-HSPLandroid/view/inputmethod/BaseInputConnection;->getTextBeforeCursor(II)Ljava/lang/CharSequence;
-HSPLandroid/view/inputmethod/BaseInputConnection;->removeComposingSpans(Landroid/text/Spannable;)V
-HSPLandroid/view/inputmethod/BaseInputConnection;->replaceText(Ljava/lang/CharSequence;IZ)V
-HSPLandroid/view/inputmethod/BaseInputConnection;->reportFullscreenMode(Z)Z
-HSPLandroid/view/inputmethod/BaseInputConnection;->sendCurrentText()V
-HSPLandroid/view/inputmethod/BaseInputConnection;->sendKeyEvent(Landroid/view/KeyEvent;)Z
-HSPLandroid/view/inputmethod/BaseInputConnection;->setComposingRegion(II)Z
-HSPLandroid/view/inputmethod/BaseInputConnection;->setComposingSpans(Landroid/text/Spannable;II)V
-HSPLandroid/view/inputmethod/BaseInputConnection;->setComposingText(Ljava/lang/CharSequence;I)Z
-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;->createCopyInternal()Landroid/view/inputmethod/EditorInfo;
-HSPLandroid/view/inputmethod/EditorInfo;->setInitialSurroundingSubText(Ljava/lang/CharSequence;I)V
-HSPLandroid/view/inputmethod/EditorInfo;->setInitialSurroundingText(Ljava/lang/CharSequence;)V
-HSPLandroid/view/inputmethod/EditorInfo;->setInitialToolType(I)V
-HSPLandroid/view/inputmethod/EditorInfo;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/inputmethod/ExtractedTextRequest;-><init>()V
-HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;-><clinit>()V
-HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;->addClient(Lcom/android/internal/inputmethod/IInputMethodClient;Lcom/android/internal/inputmethod/IRemoteInputConnection;I)V
-HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;->getImeTrackerService()Lcom/android/internal/inputmethod/IImeTracker;
-HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;->getService()Lcom/android/internal/view/IInputMethodManager;
-HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;->isAvailable()Z
-HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;->isImeTraceEnabled()Z
-HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;->removeImeSurfaceFromWindowAsync(Landroid/os/IBinder;)V
-HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;->reportPerceptibleAsync(Landroid/os/IBinder;Z)V
-HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;->startInputOrWindowGainedFocus(ILcom/android/internal/inputmethod/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/inputmethod/IRemoteInputConnection;Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;IILandroid/window/ImeOnBackInvokedDispatcher;)Lcom/android/internal/inputmethod/InputBindResult;
-HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;-><clinit>()V
-HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;-><init>(Lcom/android/internal/inputmethod/IInputMethodSession;Landroid/os/Handler;)V
-HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->createOrNull(Lcom/android/internal/inputmethod/IInputMethodSession;)Landroid/view/inputmethod/IInputMethodSessionInvoker;
-HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->finishInput()V
-HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->finishInputInternal()V
-HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->updateSelection(IIIIII)V
-HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->updateSelectionInternal(IIIIII)V
-HSPLandroid/view/inputmethod/ImeTracker$1$$ExternalSyntheticLambda0;-><init>(Landroid/view/inputmethod/ImeTracker$1;)V
-HSPLandroid/view/inputmethod/ImeTracker$1;-><init>()V
-HSPLandroid/view/inputmethod/ImeTracker$1;->onProgress(Landroid/view/inputmethod/ImeTracker$Token;I)V
-HSPLandroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;)V
-HSPLandroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
-HSPLandroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda1;-><init>()V
-HSPLandroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda2;-><init>()V
-HSPLandroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/view/inputmethod/ImeTracker$Debug;-><clinit>()V
-HSPLandroid/view/inputmethod/ImeTracker$Debug;->getFieldMapping(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/Map;
-HSPLandroid/view/inputmethod/ImeTracker$Debug;->getFieldValue(Ljava/lang/reflect/Field;)I
-HSPLandroid/view/inputmethod/ImeTracker$Debug;->lambda$getFieldMapping$0(Ljava/lang/String;Ljava/lang/reflect/Field;)Z
-HSPLandroid/view/inputmethod/ImeTracker$Debug;->originToString(I)Ljava/lang/String;
-HSPLandroid/view/inputmethod/ImeTracker$Debug;->phaseToString(I)Ljava/lang/String;
-HSPLandroid/view/inputmethod/ImeTracker$Token$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/ImeTracker$Token;
-HSPLandroid/view/inputmethod/ImeTracker$Token$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/inputmethod/ImeTracker$Token;->-$$Nest$fgetmTag(Landroid/view/inputmethod/ImeTracker$Token;)Ljava/lang/String;
-HSPLandroid/view/inputmethod/ImeTracker$Token;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/inputmethod/ImeTracker$Token;-><init>(Landroid/os/Parcel;Landroid/view/inputmethod/ImeTracker$Token-IA;)V
-HSPLandroid/view/inputmethod/ImeTracker$Token;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/inputmethod/ImeTracker;-><clinit>()V
-HSPLandroid/view/inputmethod/ImeTracker;->forLogging()Landroid/view/inputmethod/ImeTracker;
-HSPLandroid/view/inputmethod/InlineSuggestionsRequest$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/InlineSuggestionsRequest;
-HSPLandroid/view/inputmethod/InlineSuggestionsRequest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/inputmethod/InlineSuggestionsRequest;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/inputmethod/InlineSuggestionsRequest;->onConstructed()V
-HSPLandroid/view/inputmethod/InlineSuggestionsRequest;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/inputmethod/InputConnectionWrapper;-><init>(Landroid/view/inputmethod/InputConnection;Z)V
-HSPLandroid/view/inputmethod/InputConnectionWrapper;->beginBatchEdit()Z
-HSPLandroid/view/inputmethod/InputConnectionWrapper;->closeConnection()V
-HSPLandroid/view/inputmethod/InputConnectionWrapper;->commitText(Ljava/lang/CharSequence;I)Z
-HSPLandroid/view/inputmethod/InputConnectionWrapper;->deleteSurroundingText(II)Z
-HSPLandroid/view/inputmethod/InputConnectionWrapper;->endBatchEdit()Z
-HSPLandroid/view/inputmethod/InputConnectionWrapper;->finishComposingText()Z
-HSPLandroid/view/inputmethod/InputConnectionWrapper;->getHandler()Landroid/os/Handler;
-HSPLandroid/view/inputmethod/InputConnectionWrapper;->getSelectedText(I)Ljava/lang/CharSequence;
-HSPLandroid/view/inputmethod/InputConnectionWrapper;->getTextAfterCursor(II)Ljava/lang/CharSequence;
-HSPLandroid/view/inputmethod/InputConnectionWrapper;->getTextBeforeCursor(II)Ljava/lang/CharSequence;
-HSPLandroid/view/inputmethod/InputConnectionWrapper;->reportFullscreenMode(Z)Z
-HSPLandroid/view/inputmethod/InputConnectionWrapper;->setComposingRegion(II)Z
-HSPLandroid/view/inputmethod/InputConnectionWrapper;->setComposingText(Ljava/lang/CharSequence;I)Z
-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;->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/InputMethodManager$1;->getReceivingDispatcher()Landroid/window/WindowOnBackInvokedDispatcher;
-HSPLandroid/view/inputmethod/InputMethodManager$2;-><init>(Landroid/view/inputmethod/InputMethodManager;)V
-HSPLandroid/view/inputmethod/InputMethodManager$2;->onBindMethod(Lcom/android/internal/inputmethod/InputBindResult;)V
-HSPLandroid/view/inputmethod/InputMethodManager$2;->onUnbindMethod(II)V
-HSPLandroid/view/inputmethod/InputMethodManager$2;->reportFullscreenMode(Z)V
-HSPLandroid/view/inputmethod/InputMethodManager$2;->setActive(ZZ)V
-HSPLandroid/view/inputmethod/InputMethodManager$BindState;-><init>(Lcom/android/internal/inputmethod/InputBindResult;)V
-HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;-><init>(Landroid/view/inputmethod/InputMethodManager;)V
-HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->onPostWindowGainedFocus(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;)V
-HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->onPreWindowGainedFocus(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->onScheduledCheckFocus(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->onViewDetachedFromWindow(Landroid/view/View;Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->onWindowDismissed(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->setCurrentRootViewLocked(Landroid/view/ViewRootImpl;)V
-HSPLandroid/view/inputmethod/InputMethodManager$H$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/view/inputmethod/InputMethodManager$H;-><init>(Landroid/view/inputmethod/InputMethodManager;Landroid/os/Looper;)V
-HSPLandroid/view/inputmethod/InputMethodManager$H;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/view/inputmethod/InputMethodManager$ImeInputEventSender;->onInputEventFinished(IZ)V
-HSPLandroid/view/inputmethod/InputMethodManager$PendingEvent;->run()V
-HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmFullscreenMode(Landroid/view/inputmethod/InputMethodManager;)Z
-HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmImeDispatcher(Landroid/view/inputmethod/InputMethodManager;)Landroid/window/ImeOnBackInvokedDispatcher;
-HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmImeInsetsConsumer(Landroid/view/inputmethod/InputMethodManager;)Landroid/view/ImeInsetsSourceConsumer;
-HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmNextServedView(Landroid/view/inputmethod/InputMethodManager;)Landroid/view/View;
-HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmRestartOnNextWindowFocus(Landroid/view/inputmethod/InputMethodManager;)Z
-HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmServedView(Landroid/view/inputmethod/InputMethodManager;)Landroid/view/View;
-HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fputmActive(Landroid/view/inputmethod/InputMethodManager;Z)V
-HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fputmFullscreenMode(Landroid/view/inputmethod/InputMethodManager;Z)V
-HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fputmRestartOnNextWindowFocus(Landroid/view/inputmethod/InputMethodManager;Z)V
-HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$mcheckFocusInternalLocked(Landroid/view/inputmethod/InputMethodManager;ZLandroid/view/ViewRootImpl;)Z
-HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$mforAccessibilitySessionsLocked(Landroid/view/inputmethod/InputMethodManager;Ljava/util/function/Consumer;)V
-HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$mgetServedViewLocked(Landroid/view/inputmethod/InputMethodManager;)Landroid/view/View;
-HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$mgetStartInputFlags(Landroid/view/inputmethod/InputMethodManager;Landroid/view/View;I)I
-HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$monViewFocusChangedInternal(Landroid/view/inputmethod/InputMethodManager;Landroid/view/View;Z)V
-HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$mstartInputOnWindowFocusGainInternal(Landroid/view/inputmethod/InputMethodManager;ILandroid/view/View;III)Z
-HSPLandroid/view/inputmethod/InputMethodManager;-><init>(Lcom/android/internal/view/IInputMethodManager;ILandroid/os/Looper;)V
-HSPLandroid/view/inputmethod/InputMethodManager;->areSameInputChannel(Landroid/view/InputChannel;Landroid/view/InputChannel;)Z
-HSPLandroid/view/inputmethod/InputMethodManager;->canStartInput(Landroid/view/View;)Z
-HSPLandroid/view/inputmethod/InputMethodManager;->checkFocus()V
-HSPLandroid/view/inputmethod/InputMethodManager;->checkFocusInternalLocked(ZLandroid/view/ViewRootImpl;)Z
-HSPLandroid/view/inputmethod/InputMethodManager;->clearConnectionLocked()V
-HSPLandroid/view/inputmethod/InputMethodManager;->closeCurrentInput()V
-HSPLandroid/view/inputmethod/InputMethodManager;->createInputConnection(Landroid/view/View;)Landroid/util/Pair;
-HSPLandroid/view/inputmethod/InputMethodManager;->createInstance(ILandroid/os/Looper;)Landroid/view/inputmethod/InputMethodManager;
-HSPLandroid/view/inputmethod/InputMethodManager;->createRealInstance(ILandroid/os/Looper;)Landroid/view/inputmethod/InputMethodManager;
-HSPLandroid/view/inputmethod/InputMethodManager;->dispatchInputEvent(Landroid/view/InputEvent;Ljava/lang/Object;Landroid/view/inputmethod/InputMethodManager$FinishedInputEventCallback;Landroid/os/Handler;)I
-HSPLandroid/view/inputmethod/InputMethodManager;->dispatchKeyEventFromInputMethod(Landroid/view/View;Landroid/view/KeyEvent;)V
-HSPLandroid/view/inputmethod/InputMethodManager;->ensureDefaultInstanceForDefaultDisplayIfNecessary()V
-HSPLandroid/view/inputmethod/InputMethodManager;->finishInputLocked()V
-HSPLandroid/view/inputmethod/InputMethodManager;->finishedInputEvent(IZZ)V
-HSPLandroid/view/inputmethod/InputMethodManager;->flushPendingEventsLocked()V
-HSPLandroid/view/inputmethod/InputMethodManager;->forAccessibilitySessionsLocked(Ljava/util/function/Consumer;)V
-HSPLandroid/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;->getDelegate()Landroid/view/inputmethod/InputMethodManager$DelegateImpl;
-HSPLandroid/view/inputmethod/InputMethodManager;->getEnabledInputMethodList()Ljava/util/List;
-HSPLandroid/view/inputmethod/InputMethodManager;->getEnabledInputMethodSubtypeList(Landroid/view/inputmethod/InputMethodInfo;Z)Ljava/util/List;
-HSPLandroid/view/inputmethod/InputMethodManager;->getFallbackInputMethodManagerIfNecessary(Landroid/view/View;)Landroid/view/inputmethod/InputMethodManager;
-HSPLandroid/view/inputmethod/InputMethodManager;->getServedViewLocked()Landroid/view/View;
-HSPLandroid/view/inputmethod/InputMethodManager;->getStartInputFlags(Landroid/view/View;I)I
-HSPLandroid/view/inputmethod/InputMethodManager;->hasServedByInputMethodLocked(Landroid/view/View;)Z
-HSPLandroid/view/inputmethod/InputMethodManager;->hideSoftInputFromWindow(Landroid/os/IBinder;I)Z
-HSPLandroid/view/inputmethod/InputMethodManager;->hideSoftInputFromWindow(Landroid/os/IBinder;ILandroid/os/ResultReceiver;)Z
-HSPLandroid/view/inputmethod/InputMethodManager;->hideSoftInputFromWindow(Landroid/os/IBinder;ILandroid/os/ResultReceiver;I)Z
-HSPLandroid/view/inputmethod/InputMethodManager;->invalidateInput(Landroid/view/View;)V
-HSPLandroid/view/inputmethod/InputMethodManager;->isActive()Z
-HSPLandroid/view/inputmethod/InputMethodManager;->isActive(Landroid/view/View;)Z
-HSPLandroid/view/inputmethod/InputMethodManager;->isCursorAnchorInfoEnabled()Z
-HSPLandroid/view/inputmethod/InputMethodManager;->isFullscreenMode()Z
-HSPLandroid/view/inputmethod/InputMethodManager;->isImeSessionAvailableLocked()Z
-HSPLandroid/view/inputmethod/InputMethodManager;->isInEditMode()Z
-HSPLandroid/view/inputmethod/InputMethodManager;->isInEditModeInternal()Z
-HSPLandroid/view/inputmethod/InputMethodManager;->isInputMethodSuppressingSpellChecker()Z
-HSPLandroid/view/inputmethod/InputMethodManager;->isSwitchingBetweenEquivalentNonEditableViews(Landroid/view/inputmethod/ViewFocusParameterInfo;IIII)Z
-HSPLandroid/view/inputmethod/InputMethodManager;->onViewFocusChangedInternal(Landroid/view/View;Z)V
-HSPLandroid/view/inputmethod/InputMethodManager;->registerImeConsumer(Landroid/view/ImeInsetsSourceConsumer;)V
-HSPLandroid/view/inputmethod/InputMethodManager;->removeImeSurface(Landroid/os/IBinder;)V
-HSPLandroid/view/inputmethod/InputMethodManager;->reportInputConnectionOpened(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;Landroid/os/Handler;Landroid/view/View;)V
-HSPLandroid/view/inputmethod/InputMethodManager;->reportPerceptible(Landroid/os/IBinder;Z)V
-HSPLandroid/view/inputmethod/InputMethodManager;->restartInput(Landroid/view/View;)V
-HSPLandroid/view/inputmethod/InputMethodManager;->sendInputEventOnMainLooperLocked(Landroid/view/inputmethod/InputMethodManager$PendingEvent;)I
-HSPLandroid/view/inputmethod/InputMethodManager;->showSoftInput(Landroid/view/View;I)Z
-HSPLandroid/view/inputmethod/InputMethodManager;->showSoftInput(Landroid/view/View;ILandroid/os/ResultReceiver;)Z
-HSPLandroid/view/inputmethod/InputMethodManager;->startInputInner(ILandroid/os/IBinder;III)Z
-HSPLandroid/view/inputmethod/InputMethodManager;->startInputOnWindowFocusGainInternal(ILandroid/view/View;III)Z
-HSPLandroid/view/inputmethod/InputMethodManager;->unregisterImeConsumer(Landroid/view/ImeInsetsSourceConsumer;)V
-HSPLandroid/view/inputmethod/InputMethodManager;->updateInputChannelLocked(Landroid/view/InputChannel;)V
-HSPLandroid/view/inputmethod/InputMethodManager;->updateSelection(Landroid/view/View;IIII)V
-HSPLandroid/view/inputmethod/InputMethodManager;->viewClicked(Landroid/view/View;)V
-HSPLandroid/view/inputmethod/InputMethodManagerGlobal;->isImeTraceAvailable()Z
-HSPLandroid/view/inputmethod/InputMethodManagerGlobal;->isImeTraceEnabled()Z
-HSPLandroid/view/inputmethod/InputMethodSubtype$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/InputMethodSubtype;
-HSPLandroid/view/inputmethod/InputMethodSubtype$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/inputmethod/InputMethodSubtype;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/inputmethod/InputMethodSubtype;->getLocale()Ljava/lang/String;
-HSPLandroid/view/inputmethod/InputMethodSubtype;->getMode()Ljava/lang/String;
-HSPLandroid/view/inputmethod/InputMethodSubtype;->hashCode()I
-HSPLandroid/view/inputmethod/InputMethodSubtypeArray;->get(I)Landroid/view/inputmethod/InputMethodSubtype;
-HSPLandroid/view/inputmethod/RemoteInputConnectionImpl$1;-><init>(Landroid/view/inputmethod/RemoteInputConnectionImpl;)V
-HSPLandroid/view/inputmethod/RemoteInputConnectionImpl;-><init>(Landroid/os/Looper;Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/InputMethodManager;Landroid/view/View;)V
-HSPLandroid/view/inputmethod/RemoteInputConnectionImpl;->dispatch(Ljava/lang/Runnable;)V
-HSPLandroid/view/inputmethod/RemoteInputConnectionImpl;->dispatchWithTracing(Ljava/lang/String;Ljava/lang/Runnable;)V
-HSPLandroid/view/inputmethod/RemoteInputConnectionImpl;->finishComposingTextFromImm()V
-HSPLandroid/view/inputmethod/RemoteInputConnectionImpl;->getInputConnection()Landroid/view/inputmethod/InputConnection;
-HSPLandroid/view/inputmethod/RemoteInputConnectionImpl;->isFinished()Z
-HSPLandroid/view/inputmethod/SurroundingText$1;-><init>()V
-HSPLandroid/view/inputmethod/SurroundingText;-><clinit>()V
-HSPLandroid/view/inputmethod/SurroundingText;-><init>(Ljava/lang/CharSequence;III)V
-HSPLandroid/view/inputmethod/SurroundingText;->copyWithParcelableSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
-HSPLandroid/view/inputmethod/SurroundingText;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/inputmethod/ViewFocusParameterInfo;-><init>(Landroid/view/inputmethod/EditorInfo;IIII)V
-HSPLandroid/view/inputmethod/ViewFocusParameterInfo;->sameAs(Landroid/view/inputmethod/EditorInfo;IIII)Z
-HSPLandroid/view/textclassifier/ConversationAction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationAction;
-HSPLandroid/view/textclassifier/ConversationAction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/textclassifier/ConversationAction;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/textclassifier/ConversationAction;->getAction()Landroid/app/RemoteAction;
-HSPLandroid/view/textclassifier/ConversationAction;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/textclassifier/ConversationActions$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions;
-HSPLandroid/view/textclassifier/ConversationActions$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/textclassifier/ConversationActions$Message$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions$Message;
-HSPLandroid/view/textclassifier/ConversationActions$Message$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/textclassifier/ConversationActions$Message;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/textclassifier/ConversationActions$Message;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/textclassifier/ConversationActions$Request$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions$Request;
-HSPLandroid/view/textclassifier/ConversationActions$Request$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/textclassifier/ConversationActions$Request;-><init>(Ljava/util/List;Landroid/view/textclassifier/TextClassifier$EntityConfig;ILjava/util/List;Landroid/os/Bundle;)V
-HSPLandroid/view/textclassifier/ConversationActions$Request;->readFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions$Request;
-HSPLandroid/view/textclassifier/ConversationActions$Request;->setSystemTextClassifierMetadata(Landroid/view/textclassifier/SystemTextClassifierMetadata;)V
-HSPLandroid/view/textclassifier/ConversationActions;-><init>(Ljava/util/List;Ljava/lang/String;)V
-HSPLandroid/view/textclassifier/ConversationActions;->getConversationActions()Ljava/util/List;
-HSPLandroid/view/textclassifier/ConversationActions;->getId()Ljava/lang/String;
-HSPLandroid/view/textclassifier/ConversationActions;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/textclassifier/EntityConfidence$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/EntityConfidence;
-HSPLandroid/view/textclassifier/EntityConfidence$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/textclassifier/EntityConfidence;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/textclassifier/EntityConfidence;->getEntities()Ljava/util/List;
-HSPLandroid/view/textclassifier/EntityConfidence;->resetSortedEntitiesFromMap()V
-HSPLandroid/view/textclassifier/SelectionEvent;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/textclassifier/SystemTextClassifier$BlockingCallback;-><init>(Ljava/lang/String;Landroid/view/textclassifier/TextClassificationConstants;)V
-HSPLandroid/view/textclassifier/SystemTextClassifier$BlockingCallback;->get()Landroid/os/Parcelable;
-HSPLandroid/view/textclassifier/SystemTextClassifier$BlockingCallback;->onSuccess(Landroid/os/Bundle;)V
-HSPLandroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;-><init>(Ljava/lang/String;Landroid/view/textclassifier/TextClassificationConstants;)V
-HSPLandroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;->get()Ljava/lang/Object;
-HSPLandroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;->onSuccess(Ljava/lang/Object;)V
-HSPLandroid/view/textclassifier/SystemTextClassifier;-><init>(Landroid/content/Context;Landroid/view/textclassifier/TextClassificationConstants;Z)V
-HSPLandroid/view/textclassifier/SystemTextClassifier;->initializeRemoteSession(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;)V
-HSPLandroid/view/textclassifier/SystemTextClassifierMetadata$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/SystemTextClassifierMetadata;
-HSPLandroid/view/textclassifier/SystemTextClassifierMetadata$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/textclassifier/SystemTextClassifierMetadata;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/textclassifier/TextClassification$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassification;
-HSPLandroid/view/textclassifier/TextClassification$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/textclassifier/TextClassification$Request;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/textclassifier/TextClassification;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/textclassifier/TextClassificationConstants;-><init>()V
-HSPLandroid/view/textclassifier/TextClassificationConstants;->getSystemTextClassifierApiTimeoutInSecond()J
-HSPLandroid/view/textclassifier/TextClassificationConstants;->isSmartSelectionAnimationEnabled()Z
-HSPLandroid/view/textclassifier/TextClassificationContext$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassificationContext;
-HSPLandroid/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;
-HSPLandroid/view/textclassifier/TextClassificationContext;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLandroid/view/textclassifier/TextClassificationContext;->getPackageName()Ljava/lang/String;
-HSPLandroid/view/textclassifier/TextClassificationContext;->getWidgetType()Ljava/lang/String;
-HSPLandroid/view/textclassifier/TextClassificationContext;->setSystemTextClassifierMetadata(Landroid/view/textclassifier/SystemTextClassifierMetadata;)V
-HSPLandroid/view/textclassifier/TextClassificationManager$$ExternalSyntheticLambda0;-><init>(Landroid/view/textclassifier/TextClassificationManager;)V
-HSPLandroid/view/textclassifier/TextClassificationManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/view/textclassifier/TextClassificationManager;->createTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifier;
-HSPLandroid/view/textclassifier/TextClassificationManager;->getSettings()Landroid/view/textclassifier/TextClassificationConstants;
-HSPLandroid/view/textclassifier/TextClassificationManager;->getSettings(Landroid/content/Context;)Landroid/view/textclassifier/TextClassificationConstants;
-HSPLandroid/view/textclassifier/TextClassificationManager;->getSystemTextClassifier(I)Landroid/view/textclassifier/TextClassifier;
-HSPLandroid/view/textclassifier/TextClassificationManager;->getTextClassifier()Landroid/view/textclassifier/TextClassifier;
-HSPLandroid/view/textclassifier/TextClassificationSession;-><init>(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassifier;)V
-HSPLandroid/view/textclassifier/TextClassificationSession;->checkDestroyedAndRun(Ljava/util/function/Supplier;)Ljava/lang/Object;
-HSPLandroid/view/textclassifier/TextClassificationSession;->isDestroyed()Z
-HSPLandroid/view/textclassifier/TextClassificationSessionId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassificationSessionId;
-HSPLandroid/view/textclassifier/TextClassificationSessionId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/textclassifier/TextClassificationSessionId;-><init>(Ljava/lang/String;Landroid/os/IBinder;)V
-HSPLandroid/view/textclassifier/TextClassifier$EntityConfig$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassifier$EntityConfig;
-HSPLandroid/view/textclassifier/TextClassifier$EntityConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/textclassifier/TextClassifier$EntityConfig;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/textclassifier/TextClassifier$Utils;->checkMainThread()V
-HSPLandroid/view/textclassifier/TextClassifierEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassifierEvent;
-HSPLandroid/view/textclassifier/TextClassifierEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/textclassifier/TextClassifierEvent;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/textclassifier/TextClassifierEvent;->getEventContext()Landroid/view/textclassifier/TextClassificationContext;
-HSPLandroid/view/textclassifier/TextClassifierEvent;->getParcelToken()I
-HSPLandroid/view/textclassifier/TextClassifierEvent;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/textclassifier/TextLinks$Request;-><init>(Ljava/lang/CharSequence;Landroid/os/LocaleList;Landroid/view/textclassifier/TextClassifier$EntityConfig;ZLjava/time/ZonedDateTime;Landroid/os/Bundle;)V
-HSPLandroid/view/textclassifier/TextLinks$Request;->getText()Ljava/lang/CharSequence;
-HSPLandroid/view/textclassifier/TextLinks$Request;->setSystemTextClassifierMetadata(Landroid/view/textclassifier/SystemTextClassifierMetadata;)V
-HSPLandroid/view/textclassifier/TextLinks$Request;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/view/textclassifier/TextLinks;->getLinks()Ljava/util/Collection;
-HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SentenceSuggestionsInfo;
-HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;->newArray(I)[Landroid/view/textservice/SentenceSuggestionsInfo;
-HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;->newArray(I)[Ljava/lang/Object;
-HSPLandroid/view/textservice/SentenceSuggestionsInfo;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/textservice/SpellCheckerInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SpellCheckerInfo;
-HSPLandroid/view/textservice/SpellCheckerInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/textservice/SpellCheckerInfo;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/textservice/SpellCheckerInfo;->getId()Ljava/lang/String;
-HSPLandroid/view/textservice/SpellCheckerInfo;->getSubtypeAt(I)Landroid/view/textservice/SpellCheckerSubtype;
-HSPLandroid/view/textservice/SpellCheckerInfo;->getSubtypeCount()I
-HSPLandroid/view/textservice/SpellCheckerSession$InternalListener;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V
-HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->onGetSentenceSuggestions([Landroid/view/textservice/SentenceSuggestionsInfo;)V
-HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V
-HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processCloseLocked()V
-HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processOrEnqueueTask(Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;)V
-HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processTask(Lcom/android/internal/textservice/ISpellCheckerSession;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;Z)V
-HSPLandroid/view/textservice/SpellCheckerSession;->close()V
-HSPLandroid/view/textservice/SpellCheckerSession;->finalize()V
-HSPLandroid/view/textservice/SpellCheckerSession;->getSentenceSuggestions([Landroid/view/textservice/TextInfo;I)V
-HSPLandroid/view/textservice/SpellCheckerSession;->getSpellCheckerSessionListener()Lcom/android/internal/textservice/ISpellCheckerSessionListener;
-HSPLandroid/view/textservice/SpellCheckerSession;->getTextServicesSessionListener()Lcom/android/internal/textservice/ITextServicesSessionListener;
-HSPLandroid/view/textservice/SpellCheckerSubtype$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SpellCheckerSubtype;
-HSPLandroid/view/textservice/SpellCheckerSubtype$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/textservice/SpellCheckerSubtype;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/textservice/SpellCheckerSubtype;->getLocale()Ljava/lang/String;
-HSPLandroid/view/textservice/SuggestionsInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SuggestionsInfo;
-HSPLandroid/view/textservice/SuggestionsInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/view/textservice/SuggestionsInfo;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/view/textservice/TextInfo;-><init>(Ljava/lang/CharSequence;IIII)V
-HSPLandroid/view/textservice/TextServicesManager;->createInstance(Landroid/content/Context;)Landroid/view/textservice/TextServicesManager;
-HSPLandroid/view/textservice/TextServicesManager;->finishSpellCheckerService(Lcom/android/internal/textservice/ISpellCheckerSessionListener;)V
-HSPLandroid/view/textservice/TextServicesManager;->getCurrentSpellCheckerSubtype(Z)Landroid/view/textservice/SpellCheckerSubtype;
-HSPLandroid/view/textservice/TextServicesManager;->isSpellCheckerEnabled()Z
-HSPLandroid/view/textservice/TextServicesManager;->newSpellCheckerSession(Landroid/os/Bundle;Ljava/util/Locale;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;Z)Landroid/view/textservice/SpellCheckerSession;
-HSPLandroid/view/textservice/TextServicesManager;->parseLanguageFromLocaleString(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/webkit/ConsoleMessage;->message()Ljava/lang/String;
-HSPLandroid/webkit/CookieManager;-><init>()V
-HSPLandroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager;
-HSPLandroid/webkit/CookieSyncManager;->setGetInstanceIsAllowed()V
-HSPLandroid/webkit/GeolocationPermissions;-><init>()V
-HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->getCurrentWebViewPackage()Landroid/content/pm/PackageInfo;
-HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->isMultiProcessEnabled()Z
-HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->waitForAndGetProvider()Landroid/webkit/WebViewProviderResponse;
-HSPLandroid/webkit/IWebViewUpdateService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/webkit/IWebViewUpdateService;
-HSPLandroid/webkit/MimeTypeMap;->getMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/webkit/MimeTypeMap;->getSingleton()Landroid/webkit/MimeTypeMap;
-HSPLandroid/webkit/URLUtil;->isFileUrl(Ljava/lang/String;)Z
-HSPLandroid/webkit/URLUtil;->isHttpUrl(Ljava/lang/String;)Z
-HSPLandroid/webkit/URLUtil;->isHttpsUrl(Ljava/lang/String;)Z
-HSPLandroid/webkit/URLUtil;->isValidUrl(Ljava/lang/String;)Z
-HSPLandroid/webkit/WebChromeClient;-><init>()V
-HSPLandroid/webkit/WebChromeClient;->getVisitedHistory(Landroid/webkit/ValueCallback;)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;-><init>()V
-HSPLandroid/webkit/WebSettings;->getDefaultUserAgent(Landroid/content/Context;)Ljava/lang/String;
-HSPLandroid/webkit/WebStorage;-><init>()V
-HSPLandroid/webkit/WebView$HitTestResult;-><init>()V
-HSPLandroid/webkit/WebView$PrivateAccess;->overScrollBy(IIIIIIIIZ)V
-HSPLandroid/webkit/WebView$PrivateAccess;->setMeasuredDimension(II)V
-HSPLandroid/webkit/WebView$PrivateAccess;->super_getScrollBarStyle()I
-HSPLandroid/webkit/WebView$PrivateAccess;->super_scrollTo(II)V
-HSPLandroid/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;IILjava/util/Map;Z)V
-HSPLandroid/webkit/WebView;->addJavascriptInterface(Ljava/lang/Object;Ljava/lang/String;)V
-HSPLandroid/webkit/WebView;->checkThread()V
-HSPLandroid/webkit/WebView;->computeHorizontalScrollOffset()I
-HSPLandroid/webkit/WebView;->computeHorizontalScrollRange()I
-HSPLandroid/webkit/WebView;->computeScroll()V
-HSPLandroid/webkit/WebView;->computeVerticalScrollExtent()I
-HSPLandroid/webkit/WebView;->computeVerticalScrollOffset()I
-HSPLandroid/webkit/WebView;->computeVerticalScrollRange()I
-HSPLandroid/webkit/WebView;->destroy()V
-HSPLandroid/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;->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
-HSPLandroid/webkit/WebView;->onDetachedFromWindowInternal()V
-HSPLandroid/webkit/WebView;->onDraw(Landroid/graphics/Canvas;)V
-HSPLandroid/webkit/WebView;->onMeasure(II)V
-HSPLandroid/webkit/WebView;->onOverScrolled(IIZZ)V
-HSPLandroid/webkit/WebView;->onSizeChanged(IIII)V
-HSPLandroid/webkit/WebView;->onTouchEvent(Landroid/view/MotionEvent;)Z
-HSPLandroid/webkit/WebView;->onVisibilityChanged(Landroid/view/View;I)V
-HSPLandroid/webkit/WebView;->onWindowFocusChanged(Z)V
-HSPLandroid/webkit/WebView;->onWindowVisibilityChanged(I)V
-HSPLandroid/webkit/WebView;->setBackgroundColor(I)V
-HSPLandroid/webkit/WebView;->setDataDirectorySuffix(Ljava/lang/String;)V
-HSPLandroid/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;->onLoadResource(Landroid/webkit/WebView;Ljava/lang/String;)V
-HSPLandroid/webkit/WebViewClient;->onPageCommitVisible(Landroid/webkit/WebView;Ljava/lang/String;)V
-HSPLandroid/webkit/WebViewClient;->onPageFinished(Landroid/webkit/WebView;Ljava/lang/String;)V
-HSPLandroid/webkit/WebViewClient;->onPageStarted(Landroid/webkit/WebView;Ljava/lang/String;Landroid/graphics/Bitmap;)V
-HSPLandroid/webkit/WebViewClient;->onScaleChanged(Landroid/webkit/WebView;FF)V
-HSPLandroid/webkit/WebViewClient;->shouldInterceptRequest(Landroid/webkit/WebView;Landroid/webkit/WebResourceRequest;)Landroid/webkit/WebResourceResponse;
-HSPLandroid/webkit/WebViewClient;->shouldInterceptRequest(Landroid/webkit/WebView;Ljava/lang/String;)Landroid/webkit/WebResourceResponse;
-HSPLandroid/webkit/WebViewDelegate;->addWebViewAssetPath(Landroid/content/Context;)V
-HSPLandroid/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;->getStartupTimestamps()Landroid/webkit/WebViewFactory$StartupTimestamps;
-HSPLandroid/webkit/WebViewDelegate;->isMultiProcessEnabled()Z
-HSPLandroid/webkit/WebViewFactory$StartupTimestamps;->getWebViewLoadStart()J
-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;->getStartupTimestamps()Landroid/webkit/WebViewFactory$StartupTimestamps;
-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;->prepareWebViewInZygote()V
-HSPLandroid/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;->loadNativeLibrary(Ljava/lang/ClassLoader;Ljava/lang/String;)I
-HSPLandroid/webkit/WebViewLibraryLoader;->reserveAddressSpaceInZygote()V
-HSPLandroid/webkit/WebViewProviderResponse$1;->createFromParcel(Landroid/os/Parcel;)Landroid/webkit/WebViewProviderResponse;
-HSPLandroid/webkit/WebViewProviderResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/widget/AbsListView$3;->run()V
-HSPLandroid/widget/AbsListView$AdapterDataSetObserver;->onChanged()V
-HSPLandroid/widget/AbsListView$DeviceConfigChangeListener;-><init>()V
-HSPLandroid/widget/AbsListView$DeviceConfigChangeListener;-><init>(Landroid/widget/AbsListView$DeviceConfigChangeListener-IA;)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
-HSPLandroid/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
-HSPLandroid/widget/AbsListView;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
-HSPLandroid/widget/AbsListView;->clearChoices()V
-HSPLandroid/widget/AbsListView;->computeVerticalScrollExtent()I
-HSPLandroid/widget/AbsListView;->computeVerticalScrollOffset()I
-HSPLandroid/widget/AbsListView;->computeVerticalScrollRange()I
-HSPLandroid/widget/AbsListView;->dispatchDraw(Landroid/graphics/Canvas;)V
-HSPLandroid/widget/AbsListView;->dispatchSetPressed(Z)V
-HSPLandroid/widget/AbsListView;->draw(Landroid/graphics/Canvas;)V
-HSPLandroid/widget/AbsListView;->drawableStateChanged()V
-HSPLandroid/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
-HSPLandroid/widget/AbsListView;->isVerticalScrollBarHidden()Z
-HSPLandroid/widget/AbsListView;->jumpDrawablesToCurrentState()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
-HSPLandroid/widget/AbsListView;->onRtlPropertiesChanged(I)V
-HSPLandroid/widget/AbsListView;->onSaveInstanceState()Landroid/os/Parcelable;
-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
-HSPLandroid/widget/AbsListView;->reportScrollStateChange(I)V
-HSPLandroid/widget/AbsListView;->requestLayout()V
-HSPLandroid/widget/AbsListView;->resetList()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
-HSPLandroid/widget/AbsListView;->setItemViewLayoutParams(Landroid/view/View;I)V
-HSPLandroid/widget/AbsListView;->setOnScrollListener(Landroid/widget/AbsListView$OnScrollListener;)V
-HSPLandroid/widget/AbsListView;->setScrollingCacheEnabled(Z)V
-HSPLandroid/widget/AbsListView;->setSelectionFromTop(II)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
-HSPLandroid/widget/AbsListView;->setupDeviceConfigProperties()V
-HSPLandroid/widget/AbsListView;->shouldShowSelector()Z
-HSPLandroid/widget/AbsListView;->startScrollIfNeeded(IILandroid/view/MotionEvent;)Z
-HSPLandroid/widget/AbsListView;->touchModeDrawsInPressedState()Z
-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
-HSPLandroid/widget/AbsSeekBar;->drawThumb(Landroid/graphics/Canvas;)V
-HSPLandroid/widget/AbsSeekBar;->drawTickMarks(Landroid/graphics/Canvas;)V
-HSPLandroid/widget/AbsSeekBar;->drawTrack(Landroid/graphics/Canvas;)V
-HSPLandroid/widget/AbsSeekBar;->drawableStateChanged()V
-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
-HSPLandroid/widget/AbsSeekBar;->onVisualProgressChanged(IF)V
-HSPLandroid/widget/AbsSeekBar;->setKeyProgressIncrement(I)V
-HSPLandroid/widget/AbsSeekBar;->setMax(I)V
-HSPLandroid/widget/AbsSeekBar;->setMin(I)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
-HSPLandroid/widget/AbsSeekBar;->setTickMark(Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/widget/AbsSeekBar;->updateGestureExclusionRects()V
-HSPLandroid/widget/AbsSeekBar;->updateThumbAndTrackPos(II)V
-HSPLandroid/widget/AbsSeekBar;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
-HSPLandroid/widget/AbsSpinner;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/widget/AbsSpinner;->getAdapter()Landroid/widget/Adapter;
-HSPLandroid/widget/AbsSpinner;->getAdapter()Landroid/widget/SpinnerAdapter;
-HSPLandroid/widget/AbsSpinner;->getAutofillType()I
-HSPLandroid/widget/AbsSpinner;->requestLayout()V
-HSPLandroid/widget/AbsoluteLayout;->onLayout(ZIIII)V
-HSPLandroid/widget/AbsoluteLayout;->onMeasure(II)V
-HSPLandroid/widget/ActionMenuView;-><init>(Landroid/content/Context;)V
-HSPLandroid/widget/ActionMenuView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/widget/ActionMenuView;->onMeasure(II)V
-HSPLandroid/widget/ActionMenuView;->peekMenu()Lcom/android/internal/view/menu/MenuBuilder;
-HSPLandroid/widget/AdapterView$AdapterDataSetObserver;-><init>(Landroid/widget/AdapterView;)V
-HSPLandroid/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
-HSPLandroid/widget/AdapterView;->dispatchSaveInstanceState(Landroid/util/SparseArray;)V
-HSPLandroid/widget/AdapterView;->getCount()I
-HSPLandroid/widget/AdapterView;->getItemIdAtPosition(I)J
-HSPLandroid/widget/AdapterView;->getSelectedItemId()J
-HSPLandroid/widget/AdapterView;->isInFilterMode()Z
-HSPLandroid/widget/AdapterView;->onProvideStructure(Landroid/view/ViewStructure;II)V
-HSPLandroid/widget/AdapterView;->rememberSyncState()V
-HSPLandroid/widget/AdapterView;->setEmptyView(Landroid/view/View;)V
-HSPLandroid/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;->setOnItemSelectedListener(Landroid/widget/AdapterView$OnItemSelectedListener;)V
-HSPLandroid/widget/AdapterView;->setSelectedPositionInt(I)V
-HSPLandroid/widget/AdapterView;->updateEmptyStatus(Z)V
-HSPLandroid/widget/ArrayAdapter;-><init>(Landroid/content/Context;I)V
-HSPLandroid/widget/ArrayAdapter;-><init>(Landroid/content/Context;IILjava/util/List;)V
-HSPLandroid/widget/ArrayAdapter;-><init>(Landroid/content/Context;IILjava/util/List;Z)V
-HSPLandroid/widget/ArrayAdapter;->clear()V
-HSPLandroid/widget/ArrayAdapter;->getCount()I
-HSPLandroid/widget/ArrayAdapter;->getItem(I)Ljava/lang/Object;
-HSPLandroid/widget/ArrayAdapter;->getItemId(I)J
-HSPLandroid/widget/ArrayAdapter;->notifyDataSetChanged()V
-HSPLandroid/widget/AutoCompleteTextView$DropDownItemClickListener;-><init>(Landroid/widget/AutoCompleteTextView;)V
-HSPLandroid/widget/AutoCompleteTextView$MyWatcher;-><init>(Landroid/widget/AutoCompleteTextView;)V
-HSPLandroid/widget/AutoCompleteTextView$PassThroughClickListener;-><init>(Landroid/widget/AutoCompleteTextView;)V
-HSPLandroid/widget/AutoCompleteTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/widget/AutoCompleteTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IILandroid/content/res/Resources$Theme;)V
-HSPLandroid/widget/AutoCompleteTextView;->setCompletionHint(Ljava/lang/CharSequence;)V
-HSPLandroid/widget/BaseAdapter;-><init>()V
-HSPLandroid/widget/BaseAdapter;->areAllItemsEnabled()Z
-HSPLandroid/widget/BaseAdapter;->getItemViewType(I)I
-HSPLandroid/widget/BaseAdapter;->getViewTypeCount()I
-HSPLandroid/widget/BaseAdapter;->hasStableIds()Z
-HSPLandroid/widget/BaseAdapter;->isEmpty()Z
-HSPLandroid/widget/BaseAdapter;->isEnabled(I)Z
-HSPLandroid/widget/BaseAdapter;->notifyDataSetChanged()V
-HSPLandroid/widget/BaseAdapter;->registerDataSetObserver(Landroid/database/DataSetObserver;)V
-HSPLandroid/widget/BaseAdapter;->unregisterDataSetObserver(Landroid/database/DataSetObserver;)V
-HSPLandroid/widget/Button;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/widget/Button;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroid/widget/Button;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/widget/Button;->getAccessibilityClassName()Ljava/lang/CharSequence;
-HSPLandroid/widget/CheckBox;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroid/widget/CompoundButton$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/widget/CompoundButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroid/widget/CompoundButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/widget/CompoundButton;->applyButtonTint()V
-HSPLandroid/widget/CompoundButton;->drawableHotspotChanged(FF)V
-HSPLandroid/widget/CompoundButton;->drawableStateChanged()V
-HSPLandroid/widget/CompoundButton;->getAutofillType()I
-HSPLandroid/widget/CompoundButton;->getAutofillValue()Landroid/view/autofill/AutofillValue;
-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;->onProvideStructure(Landroid/view/ViewStructure;II)V
-HSPLandroid/widget/CompoundButton;->onResolveDrawables(I)V
-HSPLandroid/widget/CompoundButton;->onSaveInstanceState()Landroid/os/Parcelable;
-HSPLandroid/widget/CompoundButton;->setButtonDrawable(Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/widget/CompoundButton;->setChecked(Z)V
-HSPLandroid/widget/CompoundButton;->setDefaultStateDescription()V
-HSPLandroid/widget/CompoundButton;->setOnCheckedChangeListener(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V
-HSPLandroid/widget/CompoundButton;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
-HSPLandroid/widget/EdgeEffect;-><init>(Landroid/content/Context;)V
-HSPLandroid/widget/EdgeEffect;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/widget/EdgeEffect;->calculateDistanceFromGlowValues(FF)F
-HSPLandroid/widget/EdgeEffect;->dampStretchVector(F)F
-HSPLandroid/widget/EdgeEffect;->draw(Landroid/graphics/Canvas;)Z+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;
-HSPLandroid/widget/EdgeEffect;->finish()V
-HSPLandroid/widget/EdgeEffect;->getCurrentEdgeEffectBehavior()I
-HSPLandroid/widget/EdgeEffect;->getDistance()F
-HSPLandroid/widget/EdgeEffect;->isAtEquilibrium()Z
-HSPLandroid/widget/EdgeEffect;->isFinished()Z
-HSPLandroid/widget/EdgeEffect;->onAbsorb(I)V
-HSPLandroid/widget/EdgeEffect;->onPull(FF)V+]Landroid/graphics/Rect;Landroid/graphics/Rect;
-HSPLandroid/widget/EdgeEffect;->onPullDistance(FF)F
-HSPLandroid/widget/EdgeEffect;->onRelease()V
-HSPLandroid/widget/EdgeEffect;->setSize(II)V
-HSPLandroid/widget/EdgeEffect;->update()V
-HSPLandroid/widget/EdgeEffect;->updateSpring()V
-HSPLandroid/widget/EditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/widget/EditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroid/widget/EditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/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
-HSPLandroid/widget/EditText;->setSelection(I)V
-HSPLandroid/widget/EditText;->setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;)V
-HSPLandroid/widget/EditText;->supportsAutoSizeText()Z
-HSPLandroid/widget/Editor$$ExternalSyntheticLambda2;-><init>(Landroid/widget/Editor;)V
-HSPLandroid/widget/Editor$2;->onDraw()V
-HSPLandroid/widget/Editor$AccessibilitySmartActions;-><init>(Landroid/widget/TextView;)V
-HSPLandroid/widget/Editor$AccessibilitySmartActions;-><init>(Landroid/widget/TextView;Landroid/widget/Editor$AccessibilitySmartActions-IA;)V
-HSPLandroid/widget/Editor$Blink;->cancel()V
-HSPLandroid/widget/Editor$Blink;->run()V
-HSPLandroid/widget/Editor$Blink;->uncancel()V
-HSPLandroid/widget/Editor$CursorAnchorInfoNotifier;->updatePosition(IIZZ)V+]Landroid/view/inputmethod/InputMethodManager;Landroid/view/inputmethod/InputMethodManager;
-HSPLandroid/widget/Editor$EditOperation;-><init>(Landroid/widget/Editor;Ljava/lang/String;ILjava/lang/String;Z)V
-HSPLandroid/widget/Editor$EditOperation;->commit()V
-HSPLandroid/widget/Editor$EditOperation;->forceMergeWith(Landroid/widget/Editor$EditOperation;)V
-HSPLandroid/widget/Editor$EditOperation;->mergeDeleteWith(Landroid/widget/Editor$EditOperation;)Z
-HSPLandroid/widget/Editor$EditOperation;->mergeInsertWith(Landroid/widget/Editor$EditOperation;)Z
-HSPLandroid/widget/Editor$EditOperation;->mergeReplaceWith(Landroid/widget/Editor$EditOperation;)Z
-HSPLandroid/widget/Editor$EditOperation;->mergeWith(Landroid/widget/Editor$EditOperation;)Z
-HSPLandroid/widget/Editor$EditOperation;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/widget/Editor$HandleView;-><init>(Landroid/widget/Editor;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;I)V
-HSPLandroid/widget/Editor$HandleView;->getHorizontal(Landroid/text/Layout;I)F
-HSPLandroid/widget/Editor$HandleView;->hide()V
-HSPLandroid/widget/Editor$HandleView;->invalidate()V
-HSPLandroid/widget/Editor$HandleView;->isAtRtlRun(Landroid/text/Layout;I)Z
-HSPLandroid/widget/Editor$HandleView;->isDragging()Z
-HSPLandroid/widget/Editor$HandleView;->onDraw(Landroid/graphics/Canvas;)V
-HSPLandroid/widget/Editor$HandleView;->onSizeChanged(IIII)V
-HSPLandroid/widget/Editor$HandleView;->positionAtCursorOffset(IZZ)V
-HSPLandroid/widget/Editor$HandleView;->setDrawables(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/widget/Editor$HandleView;->shouldShow()Z
-HSPLandroid/widget/Editor$HandleView;->updateDrawable(Z)V
-HSPLandroid/widget/Editor$HandleView;->updatePosition(IIZZ)V
-HSPLandroid/widget/Editor$InsertionHandleView;-><init>(Landroid/widget/Editor;Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/widget/Editor$InsertionHandleView;->dismiss()V
-HSPLandroid/widget/Editor$InsertionHandleView;->getCurrentCursorOffset()I
-HSPLandroid/widget/Editor$InsertionHandleView;->getCursorHorizontalPosition(Landroid/text/Layout;I)I
-HSPLandroid/widget/Editor$InsertionHandleView;->getCursorOffset()I
-HSPLandroid/widget/Editor$InsertionHandleView;->getHorizontalGravity(Z)I
-HSPLandroid/widget/Editor$InsertionHandleView;->getHotspotX(Landroid/graphics/drawable/Drawable;Z)I
-HSPLandroid/widget/Editor$InsertionHandleView;->isShowing()Z
-HSPLandroid/widget/Editor$InsertionHandleView;->onDetached()V
-HSPLandroid/widget/Editor$InsertionHandleView;->onMeasure(II)V
-HSPLandroid/widget/Editor$InsertionHandleView;->show()V
-HSPLandroid/widget/Editor$InsertionHandleView;->updateDrawable(Z)V
-HSPLandroid/widget/Editor$InsertionHandleView;->updateSelection(I)V
-HSPLandroid/widget/Editor$InsertionPointCursorController;->getHandle()Landroid/widget/Editor$InsertionHandleView;
-HSPLandroid/widget/Editor$InsertionPointCursorController;->hide()V
-HSPLandroid/widget/Editor$InsertionPointCursorController;->invalidateHandle()V
-HSPLandroid/widget/Editor$InsertionPointCursorController;->isActive()Z
-HSPLandroid/widget/Editor$InsertionPointCursorController;->isCursorBeingModified()Z
-HSPLandroid/widget/Editor$InsertionPointCursorController;->onDetached()V
-HSPLandroid/widget/Editor$InsertionPointCursorController;->onTouchEvent(Landroid/view/MotionEvent;)V
-HSPLandroid/widget/Editor$InsertionPointCursorController;->show()V
-HSPLandroid/widget/Editor$PositionListener;->addSubscriber(Landroid/widget/Editor$TextViewPositionListener;Z)V
-HSPLandroid/widget/Editor$PositionListener;->onPreDraw()Z+]Landroid/widget/Editor$TextViewPositionListener;Landroid/widget/Editor$CursorAnchorInfoNotifier;,Landroid/widget/Editor$InsertionHandleView;
-HSPLandroid/widget/Editor$PositionListener;->onScrollChanged()V
-HSPLandroid/widget/Editor$PositionListener;->removeSubscriber(Landroid/widget/Editor$TextViewPositionListener;)V
-HSPLandroid/widget/Editor$PositionListener;->updatePosition()V+]Landroid/widget/TextView;Landroid/widget/EditText;
-HSPLandroid/widget/Editor$ProcessTextIntentActionsHandler;-><init>(Landroid/widget/Editor;)V
-HSPLandroid/widget/Editor$SelectionModifierCursorController;->getMinTouchOffset()I
-HSPLandroid/widget/Editor$SelectionModifierCursorController;->hide()V
-HSPLandroid/widget/Editor$SelectionModifierCursorController;->invalidateHandles()V
-HSPLandroid/widget/Editor$SelectionModifierCursorController;->isCursorBeingModified()Z
-HSPLandroid/widget/Editor$SelectionModifierCursorController;->isDragAcceleratorActive()Z
-HSPLandroid/widget/Editor$SelectionModifierCursorController;->isSelectionStartDragged()Z
-HSPLandroid/widget/Editor$SelectionModifierCursorController;->onDetached()V
-HSPLandroid/widget/Editor$SelectionModifierCursorController;->onTouchEvent(Landroid/view/MotionEvent;)V+]Landroid/widget/EditorTouchState;Landroid/widget/EditorTouchState;]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Landroid/widget/Editor$SelectionModifierCursorController;Landroid/widget/Editor$SelectionModifierCursorController;]Landroid/view/MotionEvent;Landroid/view/MotionEvent;
-HSPLandroid/widget/Editor$SelectionModifierCursorController;->resetDragAcceleratorState()V
-HSPLandroid/widget/Editor$SelectionModifierCursorController;->resetTouchOffsets()V
-HSPLandroid/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+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;
-HSPLandroid/widget/Editor$UndoInputFilter;->beginBatchEdit()V
-HSPLandroid/widget/Editor$UndoInputFilter;->canUndoEdit(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Z
-HSPLandroid/widget/Editor$UndoInputFilter;->endBatchEdit()V
-HSPLandroid/widget/Editor$UndoInputFilter;->filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence;
-HSPLandroid/widget/Editor$UndoInputFilter;->handleEdit(Ljava/lang/CharSequence;IILandroid/text/Spanned;IIZ)V
-HSPLandroid/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;->-$$Nest$fgetmTextView(Landroid/widget/Editor;)Landroid/widget/TextView;
-HSPLandroid/widget/Editor;->-$$Nest$mgetInputMethodManager(Landroid/widget/Editor;)Landroid/view/inputmethod/InputMethodManager;
-HSPLandroid/widget/Editor;-><init>(Landroid/widget/TextView;)V
-HSPLandroid/widget/Editor;->addSpanWatchers(Landroid/text/Spannable;)V
-HSPLandroid/widget/Editor;->adjustInputType(ZZZZ)V
-HSPLandroid/widget/Editor;->beforeSetText()V
-HSPLandroid/widget/Editor;->beginBatchEdit()V
-HSPLandroid/widget/Editor;->clampHorizontalPosition(Landroid/graphics/drawable/Drawable;F)I
-HSPLandroid/widget/Editor;->createInputContentTypeIfNeeded()V
-HSPLandroid/widget/Editor;->createInputMethodStateIfNeeded()V
-HSPLandroid/widget/Editor;->discardTextDisplayLists()V
-HSPLandroid/widget/Editor;->downgradeEasyCorrectionSpans()V
-HSPLandroid/widget/Editor;->drawHardwareAcceleratedInner(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I[I[IIII)I+]Landroid/widget/Editor$TextRenderNode;Landroid/widget/Editor$TextRenderNode;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/text/Layout;Landroid/text/DynamicLayout;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;
-HSPLandroid/widget/Editor;->endBatchEdit()V
-HSPLandroid/widget/Editor;->ensureEndedBatchEdit()V
-HSPLandroid/widget/Editor;->ensureNoSelectionIfNonSelectable()V
-HSPLandroid/widget/Editor;->extractedTextModeWillBeStarted()Z
-HSPLandroid/widget/Editor;->finishBatchEdit(Landroid/widget/Editor$InputMethodState;)V
-HSPLandroid/widget/Editor;->forgetUndoRedo()V
-HSPLandroid/widget/Editor;->getAvailableDisplayListIndex([III)I
-HSPLandroid/widget/Editor;->getDefaultOnReceiveContentListener()Landroid/widget/TextViewOnReceiveContentListener;
-HSPLandroid/widget/Editor;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager;
-HSPLandroid/widget/Editor;->getInsertionController()Landroid/widget/Editor$InsertionPointCursorController;
-HSPLandroid/widget/Editor;->getLastTapPosition()I
-HSPLandroid/widget/Editor;->getPositionListener()Landroid/widget/Editor$PositionListener;
-HSPLandroid/widget/Editor;->getSelectionActionModeHelper()Landroid/widget/SelectionActionModeHelper;
-HSPLandroid/widget/Editor;->getSelectionController()Landroid/widget/Editor$SelectionModifierCursorController;
-HSPLandroid/widget/Editor;->getTextActionMode()Landroid/view/ActionMode;
-HSPLandroid/widget/Editor;->getTextView()Landroid/widget/TextView;
-HSPLandroid/widget/Editor;->hasInsertionController()Z
-HSPLandroid/widget/Editor;->hasSelectionController()Z
-HSPLandroid/widget/Editor;->hideCursorAndSpanControllers()V
-HSPLandroid/widget/Editor;->hideInsertionPointCursorController()V
-HSPLandroid/widget/Editor;->invalidateHandlesAndActionMode()V
-HSPLandroid/widget/Editor;->invalidateTextDisplayList()V
-HSPLandroid/widget/Editor;->invalidateTextDisplayList(Landroid/text/Layout;II)V
-HSPLandroid/widget/Editor;->isCursorInsideEasyCorrectionSpan()Z
-HSPLandroid/widget/Editor;->loadCursorDrawable()V
-HSPLandroid/widget/Editor;->loadHandleDrawables(Z)V
-HSPLandroid/widget/Editor;->makeBlink()V
-HSPLandroid/widget/Editor;->maybeFireScheduledRestartInputForSetText()V
-HSPLandroid/widget/Editor;->onAttachedToWindow()V
-HSPLandroid/widget/Editor;->onDetachedFromWindow()V
-HSPLandroid/widget/Editor;->onDraw(Landroid/graphics/Canvas;Landroid/text/Layout;Ljava/util/List;Ljava/util/List;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
-HSPLandroid/widget/Editor;->onFocusChanged(ZI)V
-HSPLandroid/widget/Editor;->onLocaleChanged()V
-HSPLandroid/widget/Editor;->onScreenStateChanged(I)V
-HSPLandroid/widget/Editor;->onScrollChanged()V
-HSPLandroid/widget/Editor;->onTouchEvent(Landroid/view/MotionEvent;)V+]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/widget/EditorTouchState;Landroid/widget/EditorTouchState;]Landroid/widget/Editor$SelectionModifierCursorController;Landroid/widget/Editor$SelectionModifierCursorController;]Landroid/view/MotionEvent;Landroid/view/MotionEvent;
-HSPLandroid/widget/Editor;->onTouchUpEvent(Landroid/view/MotionEvent;)V
-HSPLandroid/widget/Editor;->onWindowFocusChanged(Z)V
-HSPLandroid/widget/Editor;->prepareCursorControllers()V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/widget/Editor;Landroid/widget/Editor;
-HSPLandroid/widget/Editor;->refreshTextActionMode()V
-HSPLandroid/widget/Editor;->reportExtractedText()Z
-HSPLandroid/widget/Editor;->restoreInstanceState(Landroid/os/ParcelableParcel;)V
-HSPLandroid/widget/Editor;->resumeBlink()V
-HSPLandroid/widget/Editor;->saveInstanceState()Landroid/os/ParcelableParcel;
-HSPLandroid/widget/Editor;->scheduleRestartInputForSetText()V
-HSPLandroid/widget/Editor;->sendOnTextChanged(III)V
-HSPLandroid/widget/Editor;->sendUpdateSelection()V
-HSPLandroid/widget/Editor;->setFrame()V
-HSPLandroid/widget/Editor;->setTransformationMethod(Landroid/text/method/TransformationMethod;)V
-HSPLandroid/widget/Editor;->shouldBlink()Z
-HSPLandroid/widget/Editor;->shouldFilterOutTouchEvent(Landroid/view/MotionEvent;)Z
-HSPLandroid/widget/Editor;->shouldRenderCursor()Z
-HSPLandroid/widget/Editor;->stopTextActionMode()V
-HSPLandroid/widget/Editor;->unregisterOnBackInvokedCallback()V
-HSPLandroid/widget/Editor;->updateCursorPosition()V
-HSPLandroid/widget/Editor;->updateCursorPosition(IIF)V
-HSPLandroid/widget/Editor;->updateFloatingToolbarVisibility(Landroid/view/MotionEvent;)V
-HSPLandroid/widget/Editor;->updateSpellCheckSpans(IIZ)V
-HSPLandroid/widget/EditorTouchState;->getLastDownX()F
-HSPLandroid/widget/EditorTouchState;->getLastDownY()F
-HSPLandroid/widget/EditorTouchState;->isMovedEnoughForDrag()Z
-HSPLandroid/widget/EditorTouchState;->isMultiTap()Z
-HSPLandroid/widget/EditorTouchState;->isMultiTapInSameArea()Z
-HSPLandroid/widget/EditorTouchState;->update(Landroid/view/MotionEvent;Landroid/view/ViewConfiguration;)V+]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Landroid/view/MotionEvent;Landroid/view/MotionEvent;
-HSPLandroid/widget/Filter;-><init>()V
-HSPLandroid/widget/ForwardingListener;-><init>(Landroid/view/View;)V
-HSPLandroid/widget/ForwardingListener;->onViewAttachedToWindow(Landroid/view/View;)V
-HSPLandroid/widget/ForwardingListener;->onViewDetachedFromWindow(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
-HSPLandroid/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;
-HSPLandroid/widget/FrameLayout;->getAccessibilityClassName()Ljava/lang/CharSequence;
-HSPLandroid/widget/FrameLayout;->getPaddingBottomWithForeground()I+]Landroid/widget/FrameLayout;missing_types
-HSPLandroid/widget/FrameLayout;->getPaddingLeftWithForeground()I+]Landroid/widget/FrameLayout;missing_types
-HSPLandroid/widget/FrameLayout;->getPaddingRightWithForeground()I+]Landroid/widget/FrameLayout;missing_types
-HSPLandroid/widget/FrameLayout;->getPaddingTopWithForeground()I+]Landroid/widget/FrameLayout;missing_types
-HSPLandroid/widget/FrameLayout;->layoutChildren(IIIIZ)V+]Landroid/view/View;missing_types]Landroid/widget/FrameLayout;missing_types
-HSPLandroid/widget/FrameLayout;->onLayout(ZIIII)V+]Landroid/widget/FrameLayout;missing_types
-HSPLandroid/widget/FrameLayout;->onMeasure(II)V+]Landroid/widget/FrameLayout;missing_types]Landroid/view/View;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/widget/FrameLayout;->setForegroundGravity(I)V
-HSPLandroid/widget/FrameLayout;->setMeasureAllChildren(Z)V
-HSPLandroid/widget/FrameLayout;->shouldDelayChildPressedState()Z
-HSPLandroid/widget/GridLayout$7$1;->getOffset(Landroid/widget/GridLayout;Landroid/view/View;Landroid/widget/GridLayout$Alignment;IZ)I
-HSPLandroid/widget/GridLayout$7$1;->include(II)V
-HSPLandroid/widget/GridLayout$7$1;->reset()V
-HSPLandroid/widget/GridLayout$7$1;->size(Z)I
-HSPLandroid/widget/GridLayout$7;->getAlignmentValue(Landroid/view/View;II)I
-HSPLandroid/widget/GridLayout$7;->getGravityOffset(Landroid/view/View;I)I
-HSPLandroid/widget/GridLayout$Alignment;->getSizeInCell(Landroid/view/View;II)I
-HSPLandroid/widget/GridLayout$Assoc;->pack()Landroid/widget/GridLayout$PackedMap;
-HSPLandroid/widget/GridLayout$Axis$1;-><init>(Landroid/widget/GridLayout$Axis;[Landroid/widget/GridLayout$Arc;)V
-HSPLandroid/widget/GridLayout$Axis$1;->walk(I)V
-HSPLandroid/widget/GridLayout$Axis;-><init>(Landroid/widget/GridLayout;Z)V
-HSPLandroid/widget/GridLayout$Axis;->calculateMaxIndex()I
-HSPLandroid/widget/GridLayout$Axis;->computeGroupBounds()V
-HSPLandroid/widget/GridLayout$Axis;->computeHasWeights()Z
-HSPLandroid/widget/GridLayout$Axis;->computeLinks(Landroid/widget/GridLayout$PackedMap;Z)V
-HSPLandroid/widget/GridLayout$Axis;->computeLocations([I)V
-HSPLandroid/widget/GridLayout$Axis;->createArcs()[Landroid/widget/GridLayout$Arc;
-HSPLandroid/widget/GridLayout$Axis;->createGroupBounds()Landroid/widget/GridLayout$PackedMap;
-HSPLandroid/widget/GridLayout$Axis;->createLinks(Z)Landroid/widget/GridLayout$PackedMap;
-HSPLandroid/widget/GridLayout$Axis;->getGroupBounds()Landroid/widget/GridLayout$PackedMap;
-HSPLandroid/widget/GridLayout$Axis;->getLocations()[I
-HSPLandroid/widget/GridLayout$Axis;->getMeasure(I)I
-HSPLandroid/widget/GridLayout$Axis;->groupArcsByFirstVertex([Landroid/widget/GridLayout$Arc;)[[Landroid/widget/GridLayout$Arc;
-HSPLandroid/widget/GridLayout$Axis;->include(Ljava/util/List;Landroid/widget/GridLayout$Interval;Landroid/widget/GridLayout$MutableInt;Z)V
-HSPLandroid/widget/GridLayout$Axis;->layout(I)V
-HSPLandroid/widget/GridLayout$Axis;->setCount(I)V
-HSPLandroid/widget/GridLayout$Axis;->solve([Landroid/widget/GridLayout$Arc;[IZ)Z
-HSPLandroid/widget/GridLayout$Bounds;->getOffset(Landroid/widget/GridLayout;Landroid/view/View;Landroid/widget/GridLayout$Alignment;IZ)I
-HSPLandroid/widget/GridLayout$Bounds;->include(II)V
-HSPLandroid/widget/GridLayout$Bounds;->reset()V
-HSPLandroid/widget/GridLayout$Bounds;->size(Z)I
-HSPLandroid/widget/GridLayout$Interval;->equals(Ljava/lang/Object;)Z
-HSPLandroid/widget/GridLayout$LayoutParams;->hashCode()I
-HSPLandroid/widget/GridLayout$PackedMap;->compact([Ljava/lang/Object;[I)[Ljava/lang/Object;
-HSPLandroid/widget/GridLayout$PackedMap;->createIndex([Ljava/lang/Object;)[I
-HSPLandroid/widget/GridLayout$PackedMap;->getValue(I)Ljava/lang/Object;
-HSPLandroid/widget/GridLayout$Spec;->hashCode()I
-HSPLandroid/widget/GridLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/widget/GridLayout;->computeLayoutParamsHashCode()I
-HSPLandroid/widget/GridLayout;->consistencyCheck()V
-HSPLandroid/widget/GridLayout;->getDefaultMargin(Landroid/view/View;Landroid/widget/GridLayout$LayoutParams;ZZ)I
-HSPLandroid/widget/GridLayout;->getLayoutParams(Landroid/view/View;)Landroid/widget/GridLayout$LayoutParams;
-HSPLandroid/widget/GridLayout;->getMargin(Landroid/view/View;ZZ)I
-HSPLandroid/widget/GridLayout;->getMargin1(Landroid/view/View;ZZ)I
-HSPLandroid/widget/GridLayout;->getMeasurement(Landroid/view/View;Z)I
-HSPLandroid/widget/GridLayout;->measureChildrenWithMargins(IIZ)V
-HSPLandroid/widget/GridLayout;->onLayout(ZIIII)V
-HSPLandroid/widget/GridLayout;->onMeasure(II)V
-HSPLandroid/widget/GridLayout;->requestLayout()V
-HSPLandroid/widget/GridLayout;->setAlignmentMode(I)V
-HSPLandroid/widget/GridLayout;->setColumnCount(I)V
-HSPLandroid/widget/GridLayout;->setColumnOrderPreserved(Z)V
-HSPLandroid/widget/GridLayout;->setOrientation(I)V
-HSPLandroid/widget/GridLayout;->setRowCount(I)V
-HSPLandroid/widget/GridLayout;->setRowOrderPreserved(Z)V
-HSPLandroid/widget/GridLayout;->setUseDefaultMargins(Z)V
-HSPLandroid/widget/GridLayout;->validateLayoutParams()V
-HSPLandroid/widget/HorizontalScrollView$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/HorizontalScrollView$SavedState;
-HSPLandroid/widget/HorizontalScrollView$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/widget/HorizontalScrollView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/widget/HorizontalScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/widget/HorizontalScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroid/widget/HorizontalScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;)V
-HSPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;I)V
-HSPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
-HSPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
-HSPLandroid/widget/HorizontalScrollView;->computeScroll()V
-HSPLandroid/widget/HorizontalScrollView;->draw(Landroid/graphics/Canvas;)V
-HSPLandroid/widget/HorizontalScrollView;->getAccessibilityClassName()Ljava/lang/CharSequence;
-HSPLandroid/widget/HorizontalScrollView;->getScrollRange()I
-HSPLandroid/widget/HorizontalScrollView;->inChild(II)Z
-HSPLandroid/widget/HorizontalScrollView;->initScrollView()V
-HSPLandroid/widget/HorizontalScrollView;->measureChildWithMargins(Landroid/view/View;IIII)V
-HSPLandroid/widget/HorizontalScrollView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z
-HSPLandroid/widget/HorizontalScrollView;->onLayout(ZIIII)V
-HSPLandroid/widget/HorizontalScrollView;->onMeasure(II)V
-HSPLandroid/widget/HorizontalScrollView;->onRestoreInstanceState(Landroid/os/Parcelable;)V
-HSPLandroid/widget/HorizontalScrollView;->onSaveInstanceState()Landroid/os/Parcelable;
-HSPLandroid/widget/HorizontalScrollView;->onSizeChanged(IIII)V
-HSPLandroid/widget/HorizontalScrollView;->requestLayout()V
-HSPLandroid/widget/HorizontalScrollView;->scrollTo(II)V
-HSPLandroid/widget/HorizontalScrollView;->setFillViewport(Z)V
-HSPLandroid/widget/HorizontalScrollView;->shouldDelayChildPressedState()Z
-HSPLandroid/widget/ImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/widget/ImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroid/widget/ImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/widget/ImageButton;->getAccessibilityClassName()Ljava/lang/CharSequence;
-HSPLandroid/widget/ImageButton;->onSetAlpha(I)Z
-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+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;
-HSPLandroid/widget/ImageView;->applyAlpha()V
-HSPLandroid/widget/ImageView;->applyColorFilter()V
-HSPLandroid/widget/ImageView;->applyImageTint()V
-HSPLandroid/widget/ImageView;->applyXfermode()V
-HSPLandroid/widget/ImageView;->clearColorFilter()V
-HSPLandroid/widget/ImageView;->configureBounds()V
-HSPLandroid/widget/ImageView;->drawableHotspotChanged(FF)V
-HSPLandroid/widget/ImageView;->drawableStateChanged()V
-HSPLandroid/widget/ImageView;->getAccessibilityClassName()Ljava/lang/CharSequence;
-HSPLandroid/widget/ImageView;->getBaseline()I
-HSPLandroid/widget/ImageView;->getDrawable()Landroid/graphics/drawable/Drawable;
-HSPLandroid/widget/ImageView;->getImageMatrix()Landroid/graphics/Matrix;
-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
-HSPLandroid/widget/ImageView;->isFilledByImage()Z
-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;->scaleTypeToScaleToFit(Landroid/widget/ImageView$ScaleType;)Landroid/graphics/Matrix$ScaleToFit;
-HSPLandroid/widget/ImageView;->setAdjustViewBounds(Z)V
-HSPLandroid/widget/ImageView;->setAlpha(I)V
-HSPLandroid/widget/ImageView;->setColorFilter(I)V
-HSPLandroid/widget/ImageView;->setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V
-HSPLandroid/widget/ImageView;->setColorFilter(Landroid/graphics/ColorFilter;)V
-HSPLandroid/widget/ImageView;->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
-HSPLandroid/widget/ImageView;->setImageMatrix(Landroid/graphics/Matrix;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;
-HSPLandroid/widget/ImageView;->setImageResource(I)V
-HSPLandroid/widget/ImageView;->setImageTintBlendMode(Landroid/graphics/BlendMode;)V
-HSPLandroid/widget/ImageView;->setImageTintList(Landroid/content/res/ColorStateList;)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
-HSPLandroid/widget/LinearLayout$LayoutParams;-><init>(IIF)V
-HSPLandroid/widget/LinearLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/widget/LinearLayout$LayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V
-HSPLandroid/widget/LinearLayout;-><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+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/widget/LinearLayout;Landroid/widget/LinearLayout;
-HSPLandroid/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;
-HSPLandroid/widget/LinearLayout;->getAccessibilityClassName()Ljava/lang/CharSequence;
-HSPLandroid/widget/LinearLayout;->getBaseline()I
-HSPLandroid/widget/LinearLayout;->getChildrenSkipCount(Landroid/view/View;I)I
-HSPLandroid/widget/LinearLayout;->getDividerDrawable()Landroid/graphics/drawable/Drawable;
-HSPLandroid/widget/LinearLayout;->getGravity()I
-HSPLandroid/widget/LinearLayout;->getLocationOffset(Landroid/view/View;)I
-HSPLandroid/widget/LinearLayout;->getNextLocationOffset(Landroid/view/View;)I
-HSPLandroid/widget/LinearLayout;->getOrientation()I
-HSPLandroid/widget/LinearLayout;->getVirtualChildAt(I)Landroid/view/View;+]Landroid/widget/LinearLayout;missing_types
-HSPLandroid/widget/LinearLayout;->getVirtualChildCount()I+]Landroid/widget/LinearLayout;missing_types
-HSPLandroid/widget/LinearLayout;->hasDividerBeforeChildAt(I)Z
-HSPLandroid/widget/LinearLayout;->layoutHorizontal(IIII)V
-HSPLandroid/widget/LinearLayout;->layoutVertical(IIII)V+]Landroid/view/View;missing_types]Landroid/widget/LinearLayout;missing_types
-HSPLandroid/widget/LinearLayout;->measureChildBeforeLayout(Landroid/view/View;IIIII)V+]Landroid/widget/LinearLayout;missing_types
-HSPLandroid/widget/LinearLayout;->measureHorizontal(II)V+]Landroid/view/View;missing_types]Landroid/widget/LinearLayout;Landroid/widget/LinearLayout;
-HSPLandroid/widget/LinearLayout;->measureVertical(II)V+]Landroid/view/View;megamorphic_types]Landroid/widget/LinearLayout;missing_types
-HSPLandroid/widget/LinearLayout;->onDraw(Landroid/graphics/Canvas;)V
-HSPLandroid/widget/LinearLayout;->onLayout(ZIIII)V+]Landroid/widget/LinearLayout;missing_types
-HSPLandroid/widget/LinearLayout;->onMeasure(II)V+]Landroid/widget/LinearLayout;missing_types
-HSPLandroid/widget/LinearLayout;->onRtlPropertiesChanged(I)V
-HSPLandroid/widget/LinearLayout;->setBaselineAligned(Z)V
-HSPLandroid/widget/LinearLayout;->setChildFrame(Landroid/view/View;IIII)V+]Landroid/view/View;missing_types
-HSPLandroid/widget/LinearLayout;->setDividerDrawable(Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/widget/LinearLayout;->setGravity(I)V
-HSPLandroid/widget/LinearLayout;->setOrientation(I)V
-HSPLandroid/widget/LinearLayout;->shouldDelayChildPressedState()Z
-HSPLandroid/widget/ListPopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/widget/ListPopupWindow;->isShowing()Z
-HSPLandroid/widget/ListPopupWindow;->setAdapter(Landroid/widget/ListAdapter;)V
-HSPLandroid/widget/ListPopupWindow;->setAnchorView(Landroid/view/View;)V
-HSPLandroid/widget/ListPopupWindow;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/widget/ListPopupWindow;->setHeight(I)V
-HSPLandroid/widget/ListPopupWindow;->setListSelector(Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/widget/ListPopupWindow;->setModal(Z)V
-HSPLandroid/widget/ListPopupWindow;->setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V
-HSPLandroid/widget/ListPopupWindow;->setPromptPosition(I)V
-HSPLandroid/widget/ListPopupWindow;->setPromptView(Landroid/view/View;)V
-HSPLandroid/widget/ListPopupWindow;->setSoftInputMode(I)V
-HSPLandroid/widget/ListPopupWindow;->setWidth(I)V
-HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/widget/ListView;->adjustViewsUpOrDown()V
-HSPLandroid/widget/ListView;->clearRecycledState(Ljava/util/ArrayList;)V
-HSPLandroid/widget/ListView;->correctTooHigh(I)V
-HSPLandroid/widget/ListView;->dispatchDraw(Landroid/graphics/Canvas;)V
-HSPLandroid/widget/ListView;->drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z
-HSPLandroid/widget/ListView;->fillDown(II)Landroid/view/View;
-HSPLandroid/widget/ListView;->fillFromTop(I)Landroid/view/View;
-HSPLandroid/widget/ListView;->fillSpecific(II)Landroid/view/View;
-HSPLandroid/widget/ListView;->fillUp(II)Landroid/view/View;
-HSPLandroid/widget/ListView;->findMotionRow(I)I
-HSPLandroid/widget/ListView;->findViewInHeadersOrFooters(Ljava/util/ArrayList;I)Landroid/view/View;
-HSPLandroid/widget/ListView;->findViewTraversal(I)Landroid/view/View;
-HSPLandroid/widget/ListView;->getAdapter()Landroid/widget/Adapter;
-HSPLandroid/widget/ListView;->getAdapter()Landroid/widget/ListAdapter;
-HSPLandroid/widget/ListView;->getHeaderViewsCount()I
-HSPLandroid/widget/ListView;->isOpaque()Z
-HSPLandroid/widget/ListView;->layoutChildren()V
-HSPLandroid/widget/ListView;->lookForSelectablePosition(IZ)I
-HSPLandroid/widget/ListView;->makeAndAddView(IIZIZ)Landroid/view/View;
-HSPLandroid/widget/ListView;->measureHeightOfChildren(IIIII)I
-HSPLandroid/widget/ListView;->measureScrapChild(Landroid/view/View;III)V
-HSPLandroid/widget/ListView;->onDetachedFromWindow()V
-HSPLandroid/widget/ListView;->onFinishInflate()V
-HSPLandroid/widget/ListView;->onMeasure(II)V
-HSPLandroid/widget/ListView;->onSizeChanged(IIII)V
-HSPLandroid/widget/ListView;->recycleOnMeasure()Z
-HSPLandroid/widget/ListView;->removeUnusedFixedViews(Ljava/util/List;)V
-HSPLandroid/widget/ListView;->resetList()V
-HSPLandroid/widget/ListView;->setAdapter(Landroid/widget/ListAdapter;)V
-HSPLandroid/widget/ListView;->setCacheColorHint(I)V
-HSPLandroid/widget/ListView;->setDivider(Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/widget/ListView;->setSelection(I)V
-HSPLandroid/widget/ListView;->setupChild(Landroid/view/View;IIZIZZ)V
-HSPLandroid/widget/OverScroller$SplineOverScroller;-><init>(Landroid/content/Context;)V+]Landroid/content/res/Resources;Landroid/content/res/Resources;
-HSPLandroid/widget/OverScroller$SplineOverScroller;->adjustDuration(III)V
-HSPLandroid/widget/OverScroller$SplineOverScroller;->continueWhenFinished()Z
-HSPLandroid/widget/OverScroller$SplineOverScroller;->finish()V
-HSPLandroid/widget/OverScroller$SplineOverScroller;->fling(IIIII)V
-HSPLandroid/widget/OverScroller$SplineOverScroller;->getSplineDeceleration(I)D
-HSPLandroid/widget/OverScroller$SplineOverScroller;->getSplineFlingDistance(I)D
-HSPLandroid/widget/OverScroller$SplineOverScroller;->onEdgeReached()V
-HSPLandroid/widget/OverScroller$SplineOverScroller;->springback(III)Z
-HSPLandroid/widget/OverScroller$SplineOverScroller;->startScroll(III)V
-HSPLandroid/widget/OverScroller$SplineOverScroller;->startSpringback(III)V
-HSPLandroid/widget/OverScroller$SplineOverScroller;->update()Z
-HSPLandroid/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
-HSPLandroid/widget/OverScroller;->fling(IIIIIIII)V
-HSPLandroid/widget/OverScroller;->fling(IIIIIIIIII)V+]Landroid/widget/OverScroller;Landroid/widget/OverScroller;]Landroid/widget/OverScroller$SplineOverScroller;Landroid/widget/OverScroller$SplineOverScroller;
-HSPLandroid/widget/OverScroller;->forceFinished(Z)V
-HSPLandroid/widget/OverScroller;->getCurrVelocity()F
-HSPLandroid/widget/OverScroller;->getCurrX()I
-HSPLandroid/widget/OverScroller;->getCurrY()I
-HSPLandroid/widget/OverScroller;->getFinalX()I
-HSPLandroid/widget/OverScroller;->getFinalY()I
-HSPLandroid/widget/OverScroller;->isFinished()Z
-HSPLandroid/widget/OverScroller;->springBack(IIIIII)Z
-HSPLandroid/widget/OverScroller;->startScroll(IIIII)V
-HSPLandroid/widget/PopupWindow$PopupBackgroundView;->onCreateDrawableState(I)[I
-HSPLandroid/widget/PopupWindow$PopupDecorView;->cancelTransitions()V
-HSPLandroid/widget/PopupWindow$PopupDecorView;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
-HSPLandroid/widget/PopupWindow$PopupDecorView;->onAttachedToWindow()V
-HSPLandroid/widget/PopupWindow$PopupDecorView;->onDetachedFromWindow()V
-HSPLandroid/widget/PopupWindow;->-$$Nest$munregisterBackCallback(Landroid/widget/PopupWindow;Landroid/window/OnBackInvokedDispatcher;)V
-HSPLandroid/widget/PopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroid/widget/PopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/widget/PopupWindow;-><init>(Landroid/view/View;II)V
-HSPLandroid/widget/PopupWindow;-><init>(Landroid/view/View;IIZ)V
-HSPLandroid/widget/PopupWindow;->attachToAnchor(Landroid/view/View;III)V
-HSPLandroid/widget/PopupWindow;->computeFlags(I)I
-HSPLandroid/widget/PopupWindow;->createBackgroundView(Landroid/view/View;)Landroid/widget/PopupWindow$PopupBackgroundView;
-HSPLandroid/widget/PopupWindow;->createDecorView(Landroid/view/View;)Landroid/widget/PopupWindow$PopupDecorView;
-HSPLandroid/widget/PopupWindow;->createPopupLayoutParams(Landroid/os/IBinder;)Landroid/view/WindowManager$LayoutParams;
-HSPLandroid/widget/PopupWindow;->detachFromAnchor()V
-HSPLandroid/widget/PopupWindow;->dismiss()V
-HSPLandroid/widget/PopupWindow;->findDropDownPosition(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;IIIIIZ)Z
-HSPLandroid/widget/PopupWindow;->getAnchor()Landroid/view/View;
-HSPLandroid/widget/PopupWindow;->getAppRootView(Landroid/view/View;)Landroid/view/View;
-HSPLandroid/widget/PopupWindow;->getBackground()Landroid/graphics/drawable/Drawable;
-HSPLandroid/widget/PopupWindow;->getContentView()Landroid/view/View;
-HSPLandroid/widget/PopupWindow;->getDecorViewLayoutParams()Landroid/view/WindowManager$LayoutParams;
-HSPLandroid/widget/PopupWindow;->getHeight()I
-HSPLandroid/widget/PopupWindow;->getTransition(I)Landroid/transition/Transition;
-HSPLandroid/widget/PopupWindow;->getWidth()I
-HSPLandroid/widget/PopupWindow;->hasContentView()Z
-HSPLandroid/widget/PopupWindow;->invokePopup(Landroid/view/WindowManager$LayoutParams;)V
-HSPLandroid/widget/PopupWindow;->isShowing()Z
-HSPLandroid/widget/PopupWindow;->isSplitTouchEnabled()Z
-HSPLandroid/widget/PopupWindow;->preparePopup(Landroid/view/WindowManager$LayoutParams;)V
-HSPLandroid/widget/PopupWindow;->setAttachedInDecor(Z)V
-HSPLandroid/widget/PopupWindow;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/widget/PopupWindow;->setContentView(Landroid/view/View;)V
-HSPLandroid/widget/PopupWindow;->setEnterTransition(Landroid/transition/Transition;)V
-HSPLandroid/widget/PopupWindow;->setExitTransition(Landroid/transition/Transition;)V
-HSPLandroid/widget/PopupWindow;->setFocusable(Z)V
-HSPLandroid/widget/PopupWindow;->setHeight(I)V
-HSPLandroid/widget/PopupWindow;->setInputMethodMode(I)V
-HSPLandroid/widget/PopupWindow;->setOnDismissListener(Landroid/widget/PopupWindow$OnDismissListener;)V
-HSPLandroid/widget/PopupWindow;->setOutsideTouchable(Z)V
-HSPLandroid/widget/PopupWindow;->setSoftInputMode(I)V
-HSPLandroid/widget/PopupWindow;->setTouchInterceptor(Landroid/view/View$OnTouchListener;)V
-HSPLandroid/widget/PopupWindow;->setWidth(I)V
-HSPLandroid/widget/PopupWindow;->setWindowLayoutType(I)V
-HSPLandroid/widget/PopupWindow;->showAsDropDown(Landroid/view/View;III)V
-HSPLandroid/widget/PopupWindow;->showAtLocation(Landroid/os/IBinder;III)V
-HSPLandroid/widget/PopupWindow;->showAtLocation(Landroid/view/View;III)V
-HSPLandroid/widget/PopupWindow;->tryFitHorizontal(Landroid/view/WindowManager$LayoutParams;IIIIIIIZ)Z
-HSPLandroid/widget/PopupWindow;->tryFitVertical(Landroid/view/WindowManager$LayoutParams;IIIIIIIZ)Z
-HSPLandroid/widget/PopupWindow;->unregisterBackCallback(Landroid/window/OnBackInvokedDispatcher;)V
-HSPLandroid/widget/PopupWindow;->update(IIII)V
-HSPLandroid/widget/PopupWindow;->update(IIIIZ)V
-HSPLandroid/widget/PopupWindow;->update(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;)V
-HSPLandroid/widget/PopupWindow;->updateAboveAnchor(Z)V
-HSPLandroid/widget/ProgressBar$2;-><init>(Landroid/widget/ProgressBar;Ljava/lang/String;)V
-HSPLandroid/widget/ProgressBar$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/ProgressBar$SavedState;
-HSPLandroid/widget/ProgressBar$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/widget/ProgressBar$SavedState;->writeToParcel(Landroid/os/Parcel;I)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
-HSPLandroid/widget/ProgressBar;->applyIndeterminateTint()V
-HSPLandroid/widget/ProgressBar;->applyPrimaryProgressTint()V
-HSPLandroid/widget/ProgressBar;->applyProgressBackgroundTint()V
-HSPLandroid/widget/ProgressBar;->applyProgressTints()V
-HSPLandroid/widget/ProgressBar;->doRefreshProgress(IIZZZ)V
-HSPLandroid/widget/ProgressBar;->drawTrack(Landroid/graphics/Canvas;)V
-HSPLandroid/widget/ProgressBar;->drawableHotspotChanged(FF)V
-HSPLandroid/widget/ProgressBar;->drawableStateChanged()V
-HSPLandroid/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+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/AnimatedStateListDrawable;,Landroid/graphics/drawable/GradientDrawable;,Landroid/graphics/drawable/LayerDrawable;,Landroid/graphics/drawable/RippleDrawable;
-HSPLandroid/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
-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
-HSPLandroid/widget/ProgressBar;->setProgressDrawable(Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/widget/ProgressBar;->setProgressInternal(IZZ)Z
-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
-HSPLandroid/widget/RelativeLayout$DependencyGraph$Node;-><init>()V
-HSPLandroid/widget/RelativeLayout$DependencyGraph$Node;->acquire(Landroid/view/View;)Landroid/widget/RelativeLayout$DependencyGraph$Node;
-HSPLandroid/widget/RelativeLayout$DependencyGraph$Node;->release()V
-HSPLandroid/widget/RelativeLayout$DependencyGraph;-><init>()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;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList;
-HSPLandroid/widget/RelativeLayout$DependencyGraph;->getSortedViews([Landroid/view/View;[I)V
-HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fgetmBottom(Landroid/widget/RelativeLayout$LayoutParams;)I
-HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fgetmLeft(Landroid/widget/RelativeLayout$LayoutParams;)I
-HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fgetmRight(Landroid/widget/RelativeLayout$LayoutParams;)I
-HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fgetmTop(Landroid/widget/RelativeLayout$LayoutParams;)I
-HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fputmBottom(Landroid/widget/RelativeLayout$LayoutParams;I)V
-HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fputmTop(Landroid/widget/RelativeLayout$LayoutParams;I)V
-HSPLandroid/widget/RelativeLayout$LayoutParams;-><init>(II)V
-HSPLandroid/widget/RelativeLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;
-HSPLandroid/widget/RelativeLayout$LayoutParams;->addRule(I)V
-HSPLandroid/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
-HSPLandroid/widget/RelativeLayout$LayoutParams;->removeRule(I)V
-HSPLandroid/widget/RelativeLayout$LayoutParams;->resolveLayoutDirection(I)V
-HSPLandroid/widget/RelativeLayout$LayoutParams;->resolveRules(I)V
-HSPLandroid/widget/RelativeLayout$LayoutParams;->shouldResolveLayoutDirection(I)Z
-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+]Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams;
-HSPLandroid/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;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams;
-HSPLandroid/widget/RelativeLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
-HSPLandroid/widget/RelativeLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/RelativeLayout$LayoutParams;
-HSPLandroid/widget/RelativeLayout;->generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/view/ViewGroup$LayoutParams;
-HSPLandroid/widget/RelativeLayout;->getAccessibilityClassName()Ljava/lang/CharSequence;
-HSPLandroid/widget/RelativeLayout;->getBaseline()I
-HSPLandroid/widget/RelativeLayout;->getChildMeasureSpec(IIIIIIII)I
-HSPLandroid/widget/RelativeLayout;->getRelatedView([II)Landroid/view/View;
-HSPLandroid/widget/RelativeLayout;->getRelatedViewBaselineOffset([I)I
-HSPLandroid/widget/RelativeLayout;->getRelatedViewParams([II)Landroid/widget/RelativeLayout$LayoutParams;
-HSPLandroid/widget/RelativeLayout;->initFromAttributes(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/widget/RelativeLayout;->measureChild(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;II)V
-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+]Landroid/widget/RelativeLayout;Landroid/widget/RelativeLayout;]Landroid/view/View;Landroid/widget/TextView;]Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams;
-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;->queryCompatibilityModes(Landroid/content/Context;)V
-HSPLandroid/widget/RelativeLayout;->requestLayout()V
-HSPLandroid/widget/RelativeLayout;->shouldDelayChildPressedState()Z
-HSPLandroid/widget/RelativeLayout;->sortChildren()V+]Landroid/widget/RelativeLayout;Landroid/widget/RelativeLayout;]Landroid/widget/RelativeLayout$DependencyGraph;Landroid/widget/RelativeLayout$DependencyGraph;
-HSPLandroid/widget/RemoteViews$2;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/RemoteViews;
-HSPLandroid/widget/RemoteViews$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/widget/RemoteViews$Action;-><init>()V
-HSPLandroid/widget/RemoteViews$Action;-><init>(Landroid/widget/RemoteViews$Action-IA;)V
-HSPLandroid/widget/RemoteViews$Action;->setHierarchyRootData(Landroid/widget/RemoteViews$HierarchyRootData;)V
-HSPLandroid/widget/RemoteViews$ApplicationInfoCache$$ExternalSyntheticLambda0;-><init>(Landroid/content/pm/ApplicationInfo;)V
-HSPLandroid/widget/RemoteViews$ApplicationInfoCache$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/widget/RemoteViews$ApplicationInfoCache;-><init>()V
-HSPLandroid/widget/RemoteViews$ApplicationInfoCache;->getOrPut(Landroid/content/pm/ApplicationInfo;)Landroid/content/pm/ApplicationInfo;
-HSPLandroid/widget/RemoteViews$ApplicationInfoCache;->lambda$getOrPut$0(Landroid/content/pm/ApplicationInfo;Landroid/util/Pair;)Landroid/content/pm/ApplicationInfo;
-HSPLandroid/widget/RemoteViews$ApplicationInfoCache;->put(Landroid/content/pm/ApplicationInfo;)V
-HSPLandroid/widget/RemoteViews$BitmapCache;-><init>()V
-HSPLandroid/widget/RemoteViews$BitmapCache;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/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
-HSPLandroid/widget/RemoteViews$BitmapReflectionAction;-><init>(Landroid/widget/RemoteViews;Landroid/os/Parcel;)V
-HSPLandroid/widget/RemoteViews$BitmapReflectionAction;->getActionTag()I
-HSPLandroid/widget/RemoteViews$BitmapReflectionAction;->setHierarchyRootData(Landroid/widget/RemoteViews$HierarchyRootData;)V
-HSPLandroid/widget/RemoteViews$BitmapReflectionAction;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/widget/RemoteViews$MethodKey;->equals(Ljava/lang/Object;)Z
-HSPLandroid/widget/RemoteViews$MethodKey;->hashCode()I
-HSPLandroid/widget/RemoteViews$MethodKey;->set(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)V
-HSPLandroid/widget/RemoteViews$ReflectionAction;->getActionTag()I
-HSPLandroid/widget/RemoteViews$ReflectionAction;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/widget/RemoteViews$RemoteResponse;-><init>()V
-HSPLandroid/widget/RemoteViews$RemoteResponse;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/widget/RemoteViews$RemoteResponse;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/widget/RemoteViews$RemoteViewsContextWrapper;->getResources()Landroid/content/res/Resources;
-HSPLandroid/widget/RemoteViews$RemoteViewsContextWrapper;->getTheme()Landroid/content/res/Resources$Theme;
-HSPLandroid/widget/RemoteViews$SetOnClickResponse;->getActionTag()I
-HSPLandroid/widget/RemoteViews$SetOnClickResponse;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/widget/RemoteViews$TextViewSizeAction;->getActionTag()I
-HSPLandroid/widget/RemoteViews$TextViewSizeAction;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/widget/RemoteViews;->-$$Nest$smgetPackageUserKey(Landroid/content/pm/ApplicationInfo;)Landroid/util/Pair;
-HSPLandroid/widget/RemoteViews;-><init>(Landroid/content/pm/ApplicationInfo;I)V
-HSPLandroid/widget/RemoteViews;-><init>(Landroid/os/Parcel;Landroid/widget/RemoteViews$HierarchyRootData;Landroid/content/pm/ApplicationInfo;I)V
-HSPLandroid/widget/RemoteViews;-><init>(Ljava/lang/String;I)V
-HSPLandroid/widget/RemoteViews;->addAction(Landroid/widget/RemoteViews$Action;)V
-HSPLandroid/widget/RemoteViews;->apply(Landroid/content/Context;Landroid/view/ViewGroup;)Landroid/view/View;
-HSPLandroid/widget/RemoteViews;->configureAsChild(Landroid/widget/RemoteViews$HierarchyRootData;)V
-HSPLandroid/widget/RemoteViews;->configureDescendantsAsChildren()V
-HSPLandroid/widget/RemoteViews;->getActionFromParcel(Landroid/os/Parcel;I)Landroid/widget/RemoteViews$Action;
-HSPLandroid/widget/RemoteViews;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
-HSPLandroid/widget/RemoteViews;->getHierarchyRootData()Landroid/widget/RemoteViews$HierarchyRootData;
-HSPLandroid/widget/RemoteViews;->getLayoutId()I
-HSPLandroid/widget/RemoteViews;->getMethod(Landroid/view/View;Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/invoke/MethodHandle;
-HSPLandroid/widget/RemoteViews;->getPackage()Ljava/lang/String;
-HSPLandroid/widget/RemoteViews;->getPackageUserKey(Landroid/content/pm/ApplicationInfo;)Landroid/util/Pair;
-HSPLandroid/widget/RemoteViews;->getRemoteViewsToApply(Landroid/content/Context;)Landroid/widget/RemoteViews;
-HSPLandroid/widget/RemoteViews;->hasFlags(I)Z
-HSPLandroid/widget/RemoteViews;->hasLandscapeAndPortraitLayouts()Z
-HSPLandroid/widget/RemoteViews;->hasSizedRemoteViews()Z
-HSPLandroid/widget/RemoteViews;->readActionsFromParcel(Landroid/os/Parcel;I)V
-HSPLandroid/widget/RemoteViews;->setBitmap(ILjava/lang/String;Landroid/graphics/Bitmap;)V
-HSPLandroid/widget/RemoteViews;->setBoolean(ILjava/lang/String;Z)V
-HSPLandroid/widget/RemoteViews;->setCharSequence(ILjava/lang/String;Ljava/lang/CharSequence;)V
-HSPLandroid/widget/RemoteViews;->setContentDescription(ILjava/lang/CharSequence;)V
-HSPLandroid/widget/RemoteViews;->setImageViewBitmap(ILandroid/graphics/Bitmap;)V
-HSPLandroid/widget/RemoteViews;->setInt(ILjava/lang/String;I)V
-HSPLandroid/widget/RemoteViews;->setOnClickPendingIntent(ILandroid/app/PendingIntent;)V
-HSPLandroid/widget/RemoteViews;->setOnClickResponse(ILandroid/widget/RemoteViews$RemoteResponse;)V
-HSPLandroid/widget/RemoteViews;->setTextColor(II)V
-HSPLandroid/widget/RemoteViews;->setTextViewText(ILjava/lang/CharSequence;)V
-HSPLandroid/widget/RemoteViews;->setViewPadding(IIIII)V
-HSPLandroid/widget/RemoteViews;->setViewVisibility(II)V
-HSPLandroid/widget/RemoteViews;->shouldUseStaticFilter()Z
-HSPLandroid/widget/RemoteViews;->writeActionsToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/widget/RemoteViews;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/widget/RtlSpacingHelper;->getEnd()I
-HSPLandroid/widget/RtlSpacingHelper;->getStart()I
-HSPLandroid/widget/RtlSpacingHelper;->setAbsolute(II)V
-HSPLandroid/widget/RtlSpacingHelper;->setDirection(Z)V
-HSPLandroid/widget/RtlSpacingHelper;->setRelative(II)V
-HSPLandroid/widget/ScrollBarDrawable;-><init>()V
-HSPLandroid/widget/ScrollBarDrawable;->draw(Landroid/graphics/Canvas;)V+]Landroid/widget/ScrollBarDrawable;Landroid/widget/ScrollBarDrawable;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/Rect;Landroid/graphics/Rect;
-HSPLandroid/widget/ScrollBarDrawable;->drawThumb(Landroid/graphics/Canvas;Landroid/graphics/Rect;IIZ)V
-HSPLandroid/widget/ScrollBarDrawable;->getSize(Z)I+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable;
-HSPLandroid/widget/ScrollBarDrawable;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/ScrollBarDrawable;Landroid/widget/ScrollBarDrawable;
-HSPLandroid/widget/ScrollBarDrawable;->isStateful()Z+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable;
-HSPLandroid/widget/ScrollBarDrawable;->mutate()Landroid/widget/ScrollBarDrawable;+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable;
-HSPLandroid/widget/ScrollBarDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
-HSPLandroid/widget/ScrollBarDrawable;->onStateChange([I)Z
-HSPLandroid/widget/ScrollBarDrawable;->propagateCurrentState(Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/ScrollBarDrawable;Landroid/widget/ScrollBarDrawable;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable;
-HSPLandroid/widget/ScrollBarDrawable;->setAlpha(I)V+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable;
-HSPLandroid/widget/ScrollBarDrawable;->setAlwaysDrawVerticalTrack(Z)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
-HSPLandroid/widget/ScrollView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/widget/ScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/widget/ScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroid/widget/ScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)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;->draw(Landroid/graphics/Canvas;)V
-HSPLandroid/widget/ScrollView;->getAccessibilityClassName()Ljava/lang/CharSequence;
-HSPLandroid/widget/ScrollView;->initScrollView()V
-HSPLandroid/widget/ScrollView;->measureChildWithMargins(Landroid/view/View;IIII)V
-HSPLandroid/widget/ScrollView;->onDetachedFromWindow()V
-HSPLandroid/widget/ScrollView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z
-HSPLandroid/widget/ScrollView;->onLayout(ZIIII)V
-HSPLandroid/widget/ScrollView;->onMeasure(II)V
-HSPLandroid/widget/ScrollView;->onSaveInstanceState()Landroid/os/Parcelable;
-HSPLandroid/widget/ScrollView;->onSizeChanged(IIII)V
-HSPLandroid/widget/ScrollView;->requestLayout()V
-HSPLandroid/widget/ScrollView;->scrollTo(II)V
-HSPLandroid/widget/ScrollView;->setFillViewport(Z)V
-HSPLandroid/widget/ScrollView;->shouldDelayChildPressedState()Z
-HSPLandroid/widget/ScrollView;->shouldDisplayEdgeEffects()Z
-HSPLandroid/widget/Scroller$ViscousFluidInterpolator;-><init>()V
-HSPLandroid/widget/Scroller$ViscousFluidInterpolator;->getInterpolation(F)F
-HSPLandroid/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
-HSPLandroid/widget/Scroller;->abortAnimation()V
-HSPLandroid/widget/Scroller;->computeDeceleration(F)F
-HSPLandroid/widget/Scroller;->computeScrollOffset()Z
-HSPLandroid/widget/Scroller;->getCurrX()I
-HSPLandroid/widget/Scroller;->getCurrY()I
-HSPLandroid/widget/Scroller;->isFinished()Z
-HSPLandroid/widget/Scroller;->startScroll(IIIII)V
-HSPLandroid/widget/SeekBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroid/widget/SeekBar;->onProgressRefresh(FZI)V
-HSPLandroid/widget/SeekBar;->setOnSeekBarChangeListener(Landroid/widget/SeekBar$OnSeekBarChangeListener;)V
-HSPLandroid/widget/SelectionActionModeHelper$SelectionTracker;->isSelectionStarted()Z
-HSPLandroid/widget/SelectionActionModeHelper$SelectionTracker;->onTextChanged(IILandroid/view/textclassifier/TextClassification;)V
-HSPLandroid/widget/SelectionActionModeHelper$SelectionTracker;->resetSelection(ILandroid/widget/Editor;)Z
-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/SelectionActionModeHelper;->getText(Landroid/widget/TextView;)Ljava/lang/CharSequence;
-HSPLandroid/widget/SelectionActionModeHelper;->getTextClassificationSettings()Landroid/view/textclassifier/TextClassificationConstants;
-HSPLandroid/widget/SelectionActionModeHelper;->onTextChanged(II)V
-HSPLandroid/widget/SelectionActionModeHelper;->sortSelectionIndices(II)[I
-HSPLandroid/widget/SmartSelectSprite;-><init>(Landroid/content/Context;ILjava/lang/Runnable;)V
-HSPLandroid/widget/Space;-><init>(Landroid/content/Context;)V
-HSPLandroid/widget/Space;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/widget/Space;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroid/widget/Space;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/widget/Space;->draw(Landroid/graphics/Canvas;)V
-HSPLandroid/widget/Space;->getDefaultSize2(II)I
-HSPLandroid/widget/Space;->onMeasure(II)V
-HSPLandroid/widget/SpellChecker$1;->run()V
-HSPLandroid/widget/SpellChecker$SpellParser;->isFinished()Z
-HSPLandroid/widget/SpellChecker$SpellParser;->parse()V
-HSPLandroid/widget/SpellChecker$SpellParser;->stop()V
-HSPLandroid/widget/SpellChecker;-><init>(Landroid/widget/TextView;)V
-HSPLandroid/widget/SpellChecker;->closeSession()V
-HSPLandroid/widget/SpellChecker;->isSessionActive()Z
-HSPLandroid/widget/SpellChecker;->nextSpellCheckSpanIndex()I
-HSPLandroid/widget/SpellChecker;->onGetSentenceSuggestions([Landroid/view/textservice/SentenceSuggestionsInfo;)V
-HSPLandroid/widget/SpellChecker;->onGetSuggestionsInternal(Landroid/view/textservice/SuggestionsInfo;II)Landroid/text/style/SpellCheckSpan;
-HSPLandroid/widget/SpellChecker;->onSpellCheckSpanRemoved(Landroid/text/style/SpellCheckSpan;)V
-HSPLandroid/widget/SpellChecker;->resetSession()V
-HSPLandroid/widget/SpellChecker;->setLocale(Ljava/util/Locale;)V
-HSPLandroid/widget/SpellChecker;->spellCheck()V
-HSPLandroid/widget/SpellChecker;->spellCheck(II)V
-HSPLandroid/widget/SpellChecker;->spellCheck(IIZ)V
-HSPLandroid/widget/Spinner;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
-HSPLandroid/widget/Spinner;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IIILandroid/content/res/Resources$Theme;)V
-HSPLandroid/widget/Spinner;->onDetachedFromWindow()V
-HSPLandroid/widget/Switch;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/widget/Switch;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/widget/Switch;->drawableStateChanged()V
-HSPLandroid/widget/Switch;->getButtonStateDescription()Ljava/lang/CharSequence;
-HSPLandroid/widget/Switch;->jumpDrawablesToCurrentState()V
-HSPLandroid/widget/Switch;->onCreateDrawableState(I)[I
-HSPLandroid/widget/Switch;->setChecked(Z)V
-HSPLandroid/widget/Switch;->setSwitchTextAppearance(Landroid/content/Context;I)V
-HSPLandroid/widget/Switch;->setSwitchTypeface(Landroid/graphics/Typeface;)V
-HSPLandroid/widget/Switch;->setSwitchTypeface(Landroid/graphics/Typeface;I)V
-HSPLandroid/widget/Switch;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
-HSPLandroid/widget/TextView$3;->run()V
-HSPLandroid/widget/TextView$ChangeWatcher;-><init>(Landroid/widget/TextView;)V
-HSPLandroid/widget/TextView$ChangeWatcher;->afterTextChanged(Landroid/text/Editable;)V
-HSPLandroid/widget/TextView$ChangeWatcher;->beforeTextChanged(Ljava/lang/CharSequence;III)V
-HSPLandroid/widget/TextView$ChangeWatcher;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V
-HSPLandroid/widget/TextView$ChangeWatcher;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V
-HSPLandroid/widget/TextView$ChangeWatcher;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V
-HSPLandroid/widget/TextView$ChangeWatcher;->onTextChanged(Ljava/lang/CharSequence;III)V
-HSPLandroid/widget/TextView$Drawables;-><init>(Landroid/content/Context;)V
-HSPLandroid/widget/TextView$Drawables;->applyErrorDrawableIfNeeded(I)V
-HSPLandroid/widget/TextView$Drawables;->hasMetadata()Z
-HSPLandroid/widget/TextView$Drawables;->resolveWithLayoutDirection(I)Z
-HSPLandroid/widget/TextView$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/TextView$SavedState;
-HSPLandroid/widget/TextView$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/widget/TextView$SavedState;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/widget/TextView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/widget/TextView$TextAppearanceAttributes;-><init>()V
-HSPLandroid/widget/TextView$TextAppearanceAttributes;-><init>(Landroid/widget/TextView$TextAppearanceAttributes-IA;)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+]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/text/TextPaint;Landroid/text/TextPaint;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/content/Context;missing_types]Landroid/widget/TextView;missing_types
-HSPLandroid/widget/TextView;->addSearchHighlightPaths()V
-HSPLandroid/widget/TextView;->addTextChangedListener(Landroid/text/TextWatcher;)V
-HSPLandroid/widget/TextView;->applyCompoundDrawableTint()V
-HSPLandroid/widget/TextView;->applySingleLine(ZZZZ)V
-HSPLandroid/widget/TextView;->applyTextAppearance(Landroid/widget/TextView$TextAppearanceAttributes;)V
-HSPLandroid/widget/TextView;->assumeLayout()V
-HSPLandroid/widget/TextView;->autoSizeText()V
-HSPLandroid/widget/TextView;->beginBatchEdit()V
-HSPLandroid/widget/TextView;->bringPointIntoView(I)Z
-HSPLandroid/widget/TextView;->bringPointIntoView(IZ)Z
-HSPLandroid/widget/TextView;->bringTextIntoView()Z
-HSPLandroid/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
-HSPLandroid/widget/TextView;->compressText(F)Z
-HSPLandroid/widget/TextView;->computeHorizontalScrollRange()I
-HSPLandroid/widget/TextView;->computeScroll()V
-HSPLandroid/widget/TextView;->computeVerticalScrollExtent()I+]Landroid/widget/TextView;missing_types
-HSPLandroid/widget/TextView;->computeVerticalScrollRange()I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;
-HSPLandroid/widget/TextView;->convertToLocalHorizontalCoordinate(F)F
-HSPLandroid/widget/TextView;->createEditorIfNeeded()V
-HSPLandroid/widget/TextView;->didTouchFocusSelect()Z
-HSPLandroid/widget/TextView;->doKeyDown(ILandroid/view/KeyEvent;Landroid/view/KeyEvent;)I
-HSPLandroid/widget/TextView;->drawableHotspotChanged(FF)V
-HSPLandroid/widget/TextView;->drawableStateChanged()V
-HSPLandroid/widget/TextView;->endBatchEdit()V
-HSPLandroid/widget/TextView;->findLargestTextSizeWhichFits(Landroid/graphics/RectF;)I
-HSPLandroid/widget/TextView;->fixFocusableAndClickableSettings()V
-HSPLandroid/widget/TextView;->getAccessibilityClassName()Ljava/lang/CharSequence;
-HSPLandroid/widget/TextView;->getAutoSizeStepGranularity()I
-HSPLandroid/widget/TextView;->getAutofillHints()[Ljava/lang/String;
-HSPLandroid/widget/TextView;->getAutofillType()I
-HSPLandroid/widget/TextView;->getAutofillValue()Landroid/view/autofill/AutofillValue;
-HSPLandroid/widget/TextView;->getBaseline()I
-HSPLandroid/widget/TextView;->getBaselineOffset()I
-HSPLandroid/widget/TextView;->getBottomVerticalOffset(Z)I
-HSPLandroid/widget/TextView;->getBoxHeight(Landroid/text/Layout;)I+]Landroid/widget/TextView;Landroid/widget/EditText;,Landroid/widget/Button;
-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+]Landroid/text/Layout;Landroid/text/BoringLayout;]Landroid/widget/TextView;Landroid/widget/TextView;
-HSPLandroid/widget/TextView;->getEditableText()Landroid/text/Editable;
-HSPLandroid/widget/TextView;->getEllipsize()Landroid/text/TextUtils$TruncateAt;
-HSPLandroid/widget/TextView;->getError()Ljava/lang/CharSequence;
-HSPLandroid/widget/TextView;->getExtendedPaddingBottom()I+]Landroid/text/Layout;Landroid/text/StaticLayout;]Landroid/widget/TextView;Landroid/widget/TextView;
-HSPLandroid/widget/TextView;->getExtendedPaddingTop()I+]Landroid/text/Layout;Landroid/text/BoringLayout;,Landroid/text/StaticLayout;,Landroid/text/DynamicLayout;]Landroid/widget/TextView;Landroid/widget/TextView;,Landroid/widget/CheckBox;,Landroid/widget/EditText;,Landroid/widget/Button;
-HSPLandroid/widget/TextView;->getFilters()[Landroid/text/InputFilter;
-HSPLandroid/widget/TextView;->getFocusedRect(Landroid/graphics/Rect;)V
-HSPLandroid/widget/TextView;->getFreezesText()Z
-HSPLandroid/widget/TextView;->getGravity()I
-HSPLandroid/widget/TextView;->getHint()Ljava/lang/CharSequence;
-HSPLandroid/widget/TextView;->getHorizontalOffsetForDrawables()I
-HSPLandroid/widget/TextView;->getHorizontallyScrolling()Z
-HSPLandroid/widget/TextView;->getHyphenationFrequency()I
-HSPLandroid/widget/TextView;->getIncludeFontPadding()Z
-HSPLandroid/widget/TextView;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager;
-HSPLandroid/widget/TextView;->getInputType()I
-HSPLandroid/widget/TextView;->getInterestingRect(Landroid/graphics/Rect;I)V
-HSPLandroid/widget/TextView;->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;
-HSPLandroid/widget/TextView;->getLineAtCoordinate(F)I
-HSPLandroid/widget/TextView;->getLineAtCoordinateUnclamped(F)I
-HSPLandroid/widget/TextView;->getLineCount()I
-HSPLandroid/widget/TextView;->getLineHeight()I
-HSPLandroid/widget/TextView;->getLineSpacingExtra()F
-HSPLandroid/widget/TextView;->getLineSpacingMultiplier()F
-HSPLandroid/widget/TextView;->getMaxEms()I
-HSPLandroid/widget/TextView;->getMaxLines()I
-HSPLandroid/widget/TextView;->getMinEms()I
-HSPLandroid/widget/TextView;->getMinWidth()I
-HSPLandroid/widget/TextView;->getOffsetAtCoordinate(IF)I
-HSPLandroid/widget/TextView;->getOffsetForPosition(FF)I
-HSPLandroid/widget/TextView;->getPaint()Landroid/text/TextPaint;
-HSPLandroid/widget/TextView;->getSelectionEnd()I
-HSPLandroid/widget/TextView;->getSelectionEndTransformed()I
-HSPLandroid/widget/TextView;->getSelectionStart()I+]Landroid/widget/TextView;missing_types
-HSPLandroid/widget/TextView;->getSelectionStartTransformed()I
-HSPLandroid/widget/TextView;->getServiceManagerForUser(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
-HSPLandroid/widget/TextView;->getSpellCheckerLocale()Ljava/util/Locale;
-HSPLandroid/widget/TextView;->getText()Ljava/lang/CharSequence;
-HSPLandroid/widget/TextView;->getTextColors()Landroid/content/res/ColorStateList;
-HSPLandroid/widget/TextView;->getTextCursorDrawable()Landroid/graphics/drawable/Drawable;
-HSPLandroid/widget/TextView;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic;
-HSPLandroid/widget/TextView;->getTextLocale()Ljava/util/Locale;
-HSPLandroid/widget/TextView;->getTextLocales()Landroid/os/LocaleList;
-HSPLandroid/widget/TextView;->getTextSelectHandle()Landroid/graphics/drawable/Drawable;
-HSPLandroid/widget/TextView;->getTextSelectHandleLeft()Landroid/graphics/drawable/Drawable;
-HSPLandroid/widget/TextView;->getTextSelectHandleRight()Landroid/graphics/drawable/Drawable;
-HSPLandroid/widget/TextView;->getTextSize()F
-HSPLandroid/widget/TextView;->getTotalPaddingBottom()I
-HSPLandroid/widget/TextView;->getTotalPaddingLeft()I
-HSPLandroid/widget/TextView;->getTotalPaddingRight()I
-HSPLandroid/widget/TextView;->getTotalPaddingTop()I
-HSPLandroid/widget/TextView;->getTransformationMethod()Landroid/text/method/TransformationMethod;
-HSPLandroid/widget/TextView;->getTypeface()Landroid/graphics/Typeface;
-HSPLandroid/widget/TextView;->getTypefaceStyle()I
-HSPLandroid/widget/TextView;->getUpdatedHighlightPath()Landroid/graphics/Path;
-HSPLandroid/widget/TextView;->getVerticalOffset(Z)I
-HSPLandroid/widget/TextView;->handleBackInTextActionModeIfNeeded(Landroid/view/KeyEvent;)Z
-HSPLandroid/widget/TextView;->handleTextChanged(Ljava/lang/CharSequence;III)V
-HSPLandroid/widget/TextView;->hasGesturePreviewHighlight()Z
-HSPLandroid/widget/TextView;->hasOverlappingRendering()Z
-HSPLandroid/widget/TextView;->hasPasswordTransformationMethod()Z
-HSPLandroid/widget/TextView;->hasSelection()Z
-HSPLandroid/widget/TextView;->hideErrorIfUnchanged()V
-HSPLandroid/widget/TextView;->invalidateCursor()V
-HSPLandroid/widget/TextView;->invalidateCursorPath()V
-HSPLandroid/widget/TextView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/TextView;Landroid/widget/CheckBox;,Landroid/widget/EditText;,Landroid/widget/Button;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/AnimatedStateListDrawable;,Landroid/graphics/drawable/InsetDrawable;,Landroid/graphics/drawable/RippleDrawable;,Landroid/graphics/drawable/LayerDrawable;,Landroid/graphics/drawable/VectorDrawable;
-HSPLandroid/widget/TextView;->invalidateRegion(IIZ)V
-HSPLandroid/widget/TextView;->isAnyPasswordInputType()Z
-HSPLandroid/widget/TextView;->isAutoSizeEnabled()Z
-HSPLandroid/widget/TextView;->isAutofillable()Z
-HSPLandroid/widget/TextView;->isFallbackLineSpacingForStaticLayout()Z
-HSPLandroid/widget/TextView;->isFromPrimePointer(Landroid/view/MotionEvent;Z)Z+]Landroid/view/MotionEvent;Landroid/view/MotionEvent;
-HSPLandroid/widget/TextView;->isInBatchEditMode()Z
-HSPLandroid/widget/TextView;->isInExtractedMode()Z
-HSPLandroid/widget/TextView;->isInputMethodTarget()Z
-HSPLandroid/widget/TextView;->isMarqueeFadeEnabled()Z
-HSPLandroid/widget/TextView;->isMultilineInputType(I)Z
-HSPLandroid/widget/TextView;->isPasswordInputType(I)Z
-HSPLandroid/widget/TextView;->isPositionVisible(FF)Z+]Landroid/view/View;missing_types]Landroid/graphics/Matrix;Landroid/graphics/Matrix;
-HSPLandroid/widget/TextView;->isShowingHint()Z
-HSPLandroid/widget/TextView;->isSuggestionsEnabled()Z
-HSPLandroid/widget/TextView;->isTextAutofillable()Z
-HSPLandroid/widget/TextView;->isTextEditable()Z
-HSPLandroid/widget/TextView;->isTextSelectable()Z
-HSPLandroid/widget/TextView;->isVisibleToAccessibility()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+]Landroid/text/BoringLayout;Landroid/text/BoringLayout;]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/widget/TextView;Landroid/widget/CheckBox;,Landroid/widget/EditText;,Landroid/widget/TextView;,Landroid/widget/Button;
-HSPLandroid/widget/TextView;->makeSingleLayout(ILandroid/text/BoringLayout$Metrics;ILandroid/text/Layout$Alignment;ZLandroid/text/TextUtils$TruncateAt;Z)Landroid/text/Layout;+]Landroid/text/DynamicLayout$Builder;Landroid/text/DynamicLayout$Builder;]Landroid/text/BoringLayout;Landroid/text/BoringLayout;]Landroid/widget/TextView;Landroid/widget/CheckBox;,Landroid/widget/EditText;,Landroid/widget/TextView;]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/text/StaticLayout$Builder;Landroid/text/StaticLayout$Builder;
-HSPLandroid/widget/TextView;->maybeUpdateHighlightPaths()V
-HSPLandroid/widget/TextView;->notifyContentCaptureTextChanged()V
-HSPLandroid/widget/TextView;->notifyListeningManagersAfterTextChanged()V
-HSPLandroid/widget/TextView;->nullLayouts()V
-HSPLandroid/widget/TextView;->onAttachedToWindow()V
-HSPLandroid/widget/TextView;->onBeginBatchEdit()V
-HSPLandroid/widget/TextView;->onCheckIsTextEditor()Z
-HSPLandroid/widget/TextView;->onConfigurationChanged(Landroid/content/res/Configuration;)V
-HSPLandroid/widget/TextView;->onCreateDrawableState(I)[I
-HSPLandroid/widget/TextView;->onCreateInputConnection(Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection;
-HSPLandroid/widget/TextView;->onDetachedFromWindowInternal()V
-HSPLandroid/widget/TextView;->onDraw(Landroid/graphics/Canvas;)V+]Landroid/text/Layout;Landroid/text/BoringLayout;,Landroid/text/StaticLayout;,Landroid/text/DynamicLayout;]Landroid/widget/TextView;missing_types]Landroid/text/TextPaint;Landroid/text/TextPaint;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;]Landroid/widget/Editor;Landroid/widget/Editor;]Ljava/lang/CharSequence;Landroid/text/SpannableStringBuilder;
-HSPLandroid/widget/TextView;->onEditorAction(I)V
-HSPLandroid/widget/TextView;->onEndBatchEdit()V
-HSPLandroid/widget/TextView;->onFocusChanged(ZILandroid/graphics/Rect;)V
-HSPLandroid/widget/TextView;->onInputConnectionClosedInternal()V
-HSPLandroid/widget/TextView;->onInputConnectionOpenedInternal(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;Landroid/os/Handler;)V
-HSPLandroid/widget/TextView;->onKeyDown(ILandroid/view/KeyEvent;)Z
-HSPLandroid/widget/TextView;->onKeyPreIme(ILandroid/view/KeyEvent;)Z
-HSPLandroid/widget/TextView;->onKeyUp(ILandroid/view/KeyEvent;)Z
-HSPLandroid/widget/TextView;->onLayout(ZIIII)V
-HSPLandroid/widget/TextView;->onLocaleChanged()V
-HSPLandroid/widget/TextView;->onMeasure(II)V+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Landroid/widget/TextView;Landroid/widget/CheckBox;,Landroid/widget/EditText;,Landroid/widget/TextView;,Landroid/widget/Button;
-HSPLandroid/widget/TextView;->onPreDraw()Z
-HSPLandroid/widget/TextView;->onProvideStructure(Landroid/view/ViewStructure;II)V
-HSPLandroid/widget/TextView;->onResolveDrawables(I)V
-HSPLandroid/widget/TextView;->onRestoreInstanceState(Landroid/os/Parcelable;)V
-HSPLandroid/widget/TextView;->onRtlPropertiesChanged(I)V
-HSPLandroid/widget/TextView;->onSaveInstanceState()Landroid/os/Parcelable;
-HSPLandroid/widget/TextView;->onScreenStateChanged(I)V
-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;->onVisibilityAggregated(Z)V
-HSPLandroid/widget/TextView;->onVisibilityChanged(Landroid/view/View;I)V
-HSPLandroid/widget/TextView;->onWindowFocusChanged(Z)V
-HSPLandroid/widget/TextView;->originalToTransformed(II)I
-HSPLandroid/widget/TextView;->preloadFontCache()V
-HSPLandroid/widget/TextView;->readTextAppearance(Landroid/content/Context;Landroid/content/res/TypedArray;Landroid/widget/TextView$TextAppearanceAttributes;Z)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Landroid/util/TypedValue;Landroid/util/TypedValue;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/content/Context;missing_types
-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;
-HSPLandroid/widget/TextView;->removeTextChangedListener(Landroid/text/TextWatcher;)V
-HSPLandroid/widget/TextView;->resetErrorChangedFlag()V
-HSPLandroid/widget/TextView;->resetResolvedDrawables()V
-HSPLandroid/widget/TextView;->resolveStyleAndSetTypeface(Landroid/graphics/Typeface;II)V
-HSPLandroid/widget/TextView;->restartMarqueeIfNeeded()V
-HSPLandroid/widget/TextView;->sendAccessibilityEventInternal(I)V
-HSPLandroid/widget/TextView;->sendAfterTextChanged(Landroid/text/Editable;)V
-HSPLandroid/widget/TextView;->sendBeforeTextChanged(Ljava/lang/CharSequence;III)V
-HSPLandroid/widget/TextView;->sendOnTextChanged(Ljava/lang/CharSequence;III)V
-HSPLandroid/widget/TextView;->setAllCaps(Z)V
-HSPLandroid/widget/TextView;->setAutoSizeTextTypeUniformWithPresetSizes([II)V
-HSPLandroid/widget/TextView;->setBreakStrategy(I)V
-HSPLandroid/widget/TextView;->setCompoundDrawablePadding(I)V
-HSPLandroid/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(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
-HSPLandroid/widget/TextView;->setEditableFactory(Landroid/text/Editable$Factory;)V
-HSPLandroid/widget/TextView;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)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;->setFontFeatureSettings(Ljava/lang/String;)V
-HSPLandroid/widget/TextView;->setFrame(IIII)Z
-HSPLandroid/widget/TextView;->setGravity(I)V
-HSPLandroid/widget/TextView;->setHeight(I)V
-HSPLandroid/widget/TextView;->setHighlightColor(I)V
-HSPLandroid/widget/TextView;->setHint(I)V
-HSPLandroid/widget/TextView;->setHint(Ljava/lang/CharSequence;)V
-HSPLandroid/widget/TextView;->setHintInternal(Ljava/lang/CharSequence;)V
-HSPLandroid/widget/TextView;->setHintTextColor(I)V
-HSPLandroid/widget/TextView;->setHintTextColor(Landroid/content/res/ColorStateList;)V
-HSPLandroid/widget/TextView;->setHorizontallyScrolling(Z)V
-HSPLandroid/widget/TextView;->setImeConsumesInput(Z)V
-HSPLandroid/widget/TextView;->setImeOptions(I)V
-HSPLandroid/widget/TextView;->setIncludeFontPadding(Z)V
-HSPLandroid/widget/TextView;->setInputType(I)V
-HSPLandroid/widget/TextView;->setInputType(IZ)V
-HSPLandroid/widget/TextView;->setInputTypeFromEditor()V
-HSPLandroid/widget/TextView;->setInputTypeSingleLine(Z)V
-HSPLandroid/widget/TextView;->setKeyListener(Landroid/text/method/KeyListener;)V
-HSPLandroid/widget/TextView;->setKeyListenerOnly(Landroid/text/method/KeyListener;)V
-HSPLandroid/widget/TextView;->setLetterSpacing(F)V
-HSPLandroid/widget/TextView;->setLineHeight(I)V
-HSPLandroid/widget/TextView;->setLineSpacing(FF)V
-HSPLandroid/widget/TextView;->setLines(I)V
-HSPLandroid/widget/TextView;->setLinkTextColor(Landroid/content/res/ColorStateList;)V
-HSPLandroid/widget/TextView;->setMarqueeRepeatLimit(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
-HSPLandroid/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;->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+]Landroid/text/Editable$Factory;Landroid/text/Editable$Factory;]Landroid/text/method/MovementMethod;Landroid/text/method/ArrowKeyMovementMethod;,Landroid/text/method/ScrollingMovementMethod;]Landroid/text/method/TransformationMethod;Landroid/text/method/SingleLineTransformationMethod;]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/text/InputFilter;Landroid/text/InputFilter$LengthFilter;]Landroid/text/TextPaint;Landroid/text/TextPaint;]Landroid/text/Spanned;Landroid/text/SpannableString;]Landroid/text/Spannable$Factory;Landroid/text/Spannable$Factory;]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannableStringBuilder;,Landroid/text/SpannableString;]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager;]Landroid/text/Spannable;Landroid/text/SpannableStringBuilder;,Landroid/text/SpannableString;
-HSPLandroid/widget/TextView;->setTextAppearance(I)V
-HSPLandroid/widget/TextView;->setTextAppearance(Landroid/content/Context;I)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
-HSPLandroid/widget/TextView;->setTextSize(F)V
-HSPLandroid/widget/TextView;->setTextSize(IF)V
-HSPLandroid/widget/TextView;->setTextSizeInternal(IFZ)V
-HSPLandroid/widget/TextView;->setTransformationMethod(Landroid/text/method/TransformationMethod;)V
-HSPLandroid/widget/TextView;->setTransformationMethodInternal(Landroid/text/method/TransformationMethod;Z)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
-HSPLandroid/widget/TextView;->setupAutoSizeText()Z
-HSPLandroid/widget/TextView;->setupAutoSizeUniformPresetSizesConfiguration()Z
-HSPLandroid/widget/TextView;->shouldAdvanceFocusOnEnter()Z
-HSPLandroid/widget/TextView;->spanChange(Landroid/text/Spanned;Ljava/lang/Object;IIII)V
-HSPLandroid/widget/TextView;->startMarquee()V
-HSPLandroid/widget/TextView;->startStopMarquee(Z)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
-HSPLandroid/widget/TextView;->unregisterForPreDraw()V
-HSPLandroid/widget/TextView;->updateAfterEdit()V
-HSPLandroid/widget/TextView;->updateCursorVisibleInternal()V
-HSPLandroid/widget/TextView;->updateTextColors()V
-HSPLandroid/widget/TextView;->useDynamicLayout()Z
-HSPLandroid/widget/TextView;->validateAndSetAutoSizeTextTypeUniformConfiguration(FFF)V
-HSPLandroid/widget/TextView;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
-HSPLandroid/widget/TextView;->viewClicked(Landroid/view/inputmethod/InputMethodManager;)V
-HSPLandroid/widget/TextView;->viewportToContentHorizontalOffset()I
-HSPLandroid/widget/TextView;->viewportToContentVerticalOffset()I
-HSPLandroid/widget/TextViewOnReceiveContentListener;-><init>()V
-HSPLandroid/widget/TextViewOnReceiveContentListener;->clearInputConnectionInfo()V
-HSPLandroid/widget/TextViewOnReceiveContentListener;->getFallbackMimeTypesForAutofill(Landroid/widget/TextView;)[Ljava/lang/String;
-HSPLandroid/widget/TextViewOnReceiveContentListener;->isUsageOfImeCommitContentEnabled(Landroid/view/View;)Z
-HSPLandroid/widget/TextViewOnReceiveContentListener;->setInputConnectionInfo(Landroid/widget/TextView;Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)V
-HSPLandroid/widget/Toast$CallbackBinder;->getCallbacks()Ljava/util/List;
-HSPLandroid/widget/Toast$CallbackBinder;->onToastHidden()V
-HSPLandroid/widget/Toast$CallbackBinder;->onToastShown()V
-HSPLandroid/widget/Toast$TN;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Binder;Ljava/util/List;Landroid/os/Looper;)V
-HSPLandroid/widget/Toast;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
-HSPLandroid/widget/Toast;->makeText(Landroid/content/Context;Landroid/os/Looper;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
-HSPLandroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
-HSPLandroid/widget/Toast;->show()V
-HSPLandroid/widget/ToastPresenter;-><init>(Landroid/content/Context;Landroid/view/accessibility/IAccessibilityManager;Landroid/app/INotificationManager;Ljava/lang/String;)V
-HSPLandroid/widget/ToastPresenter;->adjustLayoutParams(Landroid/view/WindowManager$LayoutParams;Landroid/os/IBinder;IIIIFFZ)V
-HSPLandroid/widget/ToastPresenter;->createLayoutParams()Landroid/view/WindowManager$LayoutParams;
-HSPLandroid/widget/ToastPresenter;->hide(Landroid/app/ITransientNotificationCallback;)V
-HSPLandroid/widget/ToastPresenter;->show(Landroid/view/View;Landroid/os/IBinder;Landroid/os/IBinder;IIIIFFLandroid/app/ITransientNotificationCallback;Z)V
-HSPLandroid/widget/ToastPresenter;->trySendAccessibilityEvent(Landroid/view/View;Ljava/lang/String;)V
-HSPLandroid/widget/Toolbar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/widget/Toolbar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
-HSPLandroid/widget/Toolbar;->addSystemView(Landroid/view/View;Z)V
-HSPLandroid/widget/Toolbar;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
-HSPLandroid/widget/Toolbar;->ensureNavButtonView()V
-HSPLandroid/widget/Toolbar;->generateDefaultLayoutParams()Landroid/widget/Toolbar$LayoutParams;
-HSPLandroid/widget/Toolbar;->getContentInsetEnd()I
-HSPLandroid/widget/Toolbar;->getContentInsetStart()I
-HSPLandroid/widget/Toolbar;->getCurrentContentInsetEnd()I
-HSPLandroid/widget/Toolbar;->getCurrentContentInsetStart()I
-HSPLandroid/widget/Toolbar;->getNavigationIcon()Landroid/graphics/drawable/Drawable;
-HSPLandroid/widget/Toolbar;->measureChildCollapseMargins(Landroid/view/View;IIII[I)I
-HSPLandroid/widget/Toolbar;->measureChildConstrained(Landroid/view/View;IIIII)V
-HSPLandroid/widget/Toolbar;->onAttachedToWindow()V
-HSPLandroid/widget/Toolbar;->onMeasure(II)V
-HSPLandroid/widget/Toolbar;->onRtlPropertiesChanged(I)V
-HSPLandroid/widget/Toolbar;->setNavigationContentDescription(Ljava/lang/CharSequence;)V
-HSPLandroid/widget/Toolbar;->setNavigationIcon(Landroid/graphics/drawable/Drawable;)V
-HSPLandroid/widget/Toolbar;->setNavigationOnClickListener(Landroid/view/View$OnClickListener;)V
-HSPLandroid/widget/Toolbar;->setPopupTheme(I)V
-HSPLandroid/widget/Toolbar;->setTitle(Ljava/lang/CharSequence;)V
-HSPLandroid/widget/Toolbar;->shouldCollapse()Z
-HSPLandroid/widget/ViewAnimator;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/widget/ViewAnimator;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
-HSPLandroid/widget/ViewAnimator;->initViewAnimator(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLandroid/widget/ViewAnimator;->setAnimateFirstView(Z)V
-HSPLandroid/widget/ViewAnimator;->setDisplayedChild(I)V
-HSPLandroid/widget/ViewAnimator;->showOnly(I)V
-HSPLandroid/widget/ViewAnimator;->showOnly(IZ)V
-HSPLandroid/widget/ViewSwitcher;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
-HSPLandroid/widget/inline/InlinePresentationSpec$1;-><init>()V
-HSPLandroid/widget/inline/InlinePresentationSpec$1;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/inline/InlinePresentationSpec;
-HSPLandroid/widget/inline/InlinePresentationSpec$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/widget/inline/InlinePresentationSpec;-><clinit>()V
-HSPLandroid/widget/inline/InlinePresentationSpec;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/widget/inline/InlinePresentationSpec;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/window/BackProgressAnimator;-><init>()V+]Lcom/android/internal/dynamicanimation/animation/SpringAnimation;Lcom/android/internal/dynamicanimation/animation/SpringAnimation;]Lcom/android/internal/dynamicanimation/animation/SpringForce;Lcom/android/internal/dynamicanimation/animation/SpringForce;
-HSPLandroid/window/ClientWindowFrames$1;-><init>()V
-HSPLandroid/window/ClientWindowFrames$1;->createFromParcel(Landroid/os/Parcel;)Landroid/window/ClientWindowFrames;
-HSPLandroid/window/ClientWindowFrames$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/window/ClientWindowFrames;-><clinit>()V
-HSPLandroid/window/ClientWindowFrames;-><init>()V
-HSPLandroid/window/ClientWindowFrames;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/window/ClientWindowFrames;->readFromParcel(Landroid/os/Parcel;)V
-HSPLandroid/window/ConfigurationHelper;->freeTextLayoutCachesIfNeeded(I)V
-HSPLandroid/window/ConfigurationHelper;->isDifferentDisplay(II)Z
-HSPLandroid/window/ConfigurationHelper;->isDisplayRotationChanged(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Z
-HSPLandroid/window/ConfigurationHelper;->shouldUpdateResources(Landroid/os/IBinder;Landroid/content/res/Configuration;Landroid/content/res/Configuration;Landroid/content/res/Configuration;ZLjava/lang/Boolean;)Z
-HSPLandroid/window/ConfigurationHelper;->shouldUpdateWindowMetricsBounds(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Z
-HSPLandroid/window/IOnBackInvokedCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/window/IOnBackInvokedCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/window/IOnBackInvokedCallback$Stub;-><init>()V
-HSPLandroid/window/IOnBackInvokedCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/window/IOnBackInvokedCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/window/IOnBackInvokedCallback;
-HSPLandroid/window/IOnBackInvokedCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/window/IRemoteTransition$Stub;->asInterface(Landroid/os/IBinder;)Landroid/window/IRemoteTransition;
-HSPLandroid/window/ISurfaceSyncGroup$Stub;-><init>()V
-HSPLandroid/window/ISurfaceSyncGroup$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/window/ITransactionReadyCallback$Stub;-><init>()V
-HSPLandroid/window/ITrustedPresentationListener$Stub;-><init>()V
-HSPLandroid/window/IWindowContainerToken$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/window/IWindowContainerToken$Stub;->asInterface(Landroid/os/IBinder;)Landroid/window/IWindowContainerToken;
-HSPLandroid/window/ImeOnBackInvokedDispatcher$1;-><init>(Landroid/window/ImeOnBackInvokedDispatcher;Landroid/os/Handler;)V
-HSPLandroid/window/ImeOnBackInvokedDispatcher$1;->onReceiveResult(ILandroid/os/Bundle;)V
-HSPLandroid/window/ImeOnBackInvokedDispatcher$ImeOnBackInvokedCallback;->-$$Nest$mgetId(Landroid/window/ImeOnBackInvokedDispatcher$ImeOnBackInvokedCallback;)I
-HSPLandroid/window/ImeOnBackInvokedDispatcher$ImeOnBackInvokedCallback;-><init>(Landroid/window/IOnBackInvokedCallback;II)V
-HSPLandroid/window/ImeOnBackInvokedDispatcher$ImeOnBackInvokedCallback;->getId()I
-HSPLandroid/window/ImeOnBackInvokedDispatcher;->clear()V
-HSPLandroid/window/ImeOnBackInvokedDispatcher;->switchRootView(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;)V
-HSPLandroid/window/ImeOnBackInvokedDispatcher;->unregisterReceivedCallback(ILandroid/window/OnBackInvokedDispatcher;)V
-HSPLandroid/window/ImeOnBackInvokedDispatcher;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/window/OnBackInvokedCallbackInfo$1;-><init>()V
-HSPLandroid/window/OnBackInvokedCallbackInfo;-><clinit>()V
-HSPLandroid/window/OnBackInvokedCallbackInfo;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/window/ProxyOnBackInvokedDispatcher$$ExternalSyntheticLambda0;-><init>(Landroid/window/OnBackInvokedCallback;)V
-HSPLandroid/window/ProxyOnBackInvokedDispatcher;->clearCallbacksOnDispatcher()V
-HSPLandroid/window/ProxyOnBackInvokedDispatcher;->registerOnBackInvokedCallback(ILandroid/window/OnBackInvokedCallback;)V
-HSPLandroid/window/ProxyOnBackInvokedDispatcher;->setActualDispatcher(Landroid/window/OnBackInvokedDispatcher;)V
-HSPLandroid/window/ProxyOnBackInvokedDispatcher;->transferCallbacksToDispatcher()V
-HSPLandroid/window/ProxyOnBackInvokedDispatcher;->unregisterOnBackInvokedCallback(Landroid/window/OnBackInvokedCallback;)V
-HSPLandroid/window/SizeConfigurationBuckets$1;-><init>()V
-HSPLandroid/window/SizeConfigurationBuckets;-><clinit>()V
-HSPLandroid/window/SizeConfigurationBuckets;-><init>([Landroid/content/res/Configuration;)V
-HSPLandroid/window/SizeConfigurationBuckets;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-HSPLandroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V
-HSPLandroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V
-HSPLandroid/window/SurfaceSyncGroup$2;-><init>(Landroid/window/SurfaceSyncGroup;Z)V
-HSPLandroid/window/SurfaceSyncGroup$2;->onTransactionReady(Landroid/view/SurfaceControl$Transaction;)V
-HSPLandroid/window/SurfaceSyncGroup$ISurfaceSyncGroupImpl;->getSurfaceSyncGroup()Landroid/window/SurfaceSyncGroup;
-HSPLandroid/window/SurfaceSyncGroup;->-$$Nest$fgetmLock(Landroid/window/SurfaceSyncGroup;)Ljava/lang/Object;
-HSPLandroid/window/SurfaceSyncGroup;->-$$Nest$fgetmPendingSyncs(Landroid/window/SurfaceSyncGroup;)Landroid/util/ArraySet;
-HSPLandroid/window/SurfaceSyncGroup;->-$$Nest$fgetmTransaction(Landroid/window/SurfaceSyncGroup;)Landroid/view/SurfaceControl$Transaction;
-HSPLandroid/window/SurfaceSyncGroup;->-$$Nest$mcheckIfSyncIsComplete(Landroid/window/SurfaceSyncGroup;)V
-HSPLandroid/window/SurfaceSyncGroup;-><clinit>()V
-HSPLandroid/window/SurfaceSyncGroup;-><init>(Ljava/lang/String;)V
-HSPLandroid/window/SurfaceSyncGroup;-><init>(Ljava/lang/String;Ljava/util/function/Consumer;)V
-HSPLandroid/window/SurfaceSyncGroup;->add(Landroid/window/ISurfaceSyncGroup;ZLjava/lang/Runnable;)Z
-HSPLandroid/window/SurfaceSyncGroup;->addLocalSync(Landroid/window/ISurfaceSyncGroup;Z)Z
-HSPLandroid/window/SurfaceSyncGroup;->addSyncCompleteCallback(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)V
-HSPLandroid/window/SurfaceSyncGroup;->addTimeout()V
-HSPLandroid/window/SurfaceSyncGroup;->checkIfSyncIsComplete()V
-HSPLandroid/window/SurfaceSyncGroup;->createTransactionReadyCallback(Z)Landroid/window/ITransactionReadyCallback;
-HSPLandroid/window/SurfaceSyncGroup;->getSurfaceSyncGroup(Landroid/window/ISurfaceSyncGroup;)Landroid/window/SurfaceSyncGroup;
-HSPLandroid/window/SurfaceSyncGroup;->invokeSyncCompleteCallbacks()V
-HSPLandroid/window/SurfaceSyncGroup;->isLocalBinder(Landroid/os/IBinder;)Z
-HSPLandroid/window/SurfaceSyncGroup;->lambda$invokeSyncCompleteCallbacks$2(Landroid/util/Pair;)V
-HSPLandroid/window/SurfaceSyncGroup;->lambda$new$0(Landroid/view/SurfaceControl$Transaction;)V
-HSPLandroid/window/SurfaceSyncGroup;->lambda$new$1(Ljava/util/function/Consumer;Landroid/view/SurfaceControl$Transaction;)V
-HSPLandroid/window/SurfaceSyncGroup;->lambda$setTransactionCallbackFromParent$5(Landroid/window/ITransactionReadyCallback;Ljava/util/function/Consumer;Landroid/view/SurfaceControl$Transaction;)V
-HSPLandroid/window/SurfaceSyncGroup;->markSyncReady()V
-HSPLandroid/window/SurfaceSyncGroup;->setTransactionCallbackFromParent(Landroid/window/ISurfaceSyncGroup;Landroid/window/ITransactionReadyCallback;)V
-HSPLandroid/window/TaskAppearedInfo;-><init>(Landroid/app/ActivityManager$RunningTaskInfo;Landroid/view/SurfaceControl;)V
-HSPLandroid/window/TaskSnapshot;->getAppearance()I
-HSPLandroid/window/TaskSnapshot;->getColorSpace()Landroid/graphics/ColorSpace;
-HSPLandroid/window/TaskSnapshot;->getContentInsets()Landroid/graphics/Rect;
-HSPLandroid/window/TaskSnapshot;->getHardwareBuffer()Landroid/hardware/HardwareBuffer;
-HSPLandroid/window/TaskSnapshot;->getId()J
-HSPLandroid/window/TaskSnapshot;->getOrientation()I
-HSPLandroid/window/TaskSnapshot;->getRotation()I
-HSPLandroid/window/TaskSnapshot;->getTaskSize()Landroid/graphics/Point;
-HSPLandroid/window/TaskSnapshot;->getWindowingMode()I
-HSPLandroid/window/TaskSnapshot;->isRealSnapshot()Z
-HSPLandroid/window/TaskSnapshot;->isTranslucent()Z
-HSPLandroid/window/WindowContainerToken$1;->createFromParcel(Landroid/os/Parcel;)Landroid/window/WindowContainerToken;
-HSPLandroid/window/WindowContainerToken$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/window/WindowContainerToken;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/window/WindowContainerToken;->asBinder()Landroid/os/IBinder;
-HSPLandroid/window/WindowContext;-><init>(Landroid/content/Context;ILandroid/os/Bundle;)V
-HSPLandroid/window/WindowContext;->attachToDisplayArea()V
-HSPLandroid/window/WindowContext;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V
-HSPLandroid/window/WindowContext;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
-HSPLandroid/window/WindowContext;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V
-HSPLandroid/window/WindowContextController;-><init>(Landroid/window/WindowTokenClient;)V
-HSPLandroid/window/WindowContextController;->attachToDisplayArea(IILandroid/os/Bundle;)V
-HSPLandroid/window/WindowMetricsController$$ExternalSyntheticLambda0;-><init>(Landroid/window/WindowMetricsController;Landroid/os/IBinder;Landroid/graphics/Rect;ZI)V
-HSPLandroid/window/WindowMetricsController$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
-HSPLandroid/window/WindowMetricsController;-><init>(Landroid/content/Context;)V
-HSPLandroid/window/WindowMetricsController;->getWindowInsetsFromServerForDisplay(ILandroid/os/IBinder;Landroid/graphics/Rect;ZI)Landroid/view/WindowInsets;
-HSPLandroid/window/WindowMetricsController;->getWindowMetricsInternal(Z)Landroid/view/WindowMetrics;
-HSPLandroid/window/WindowMetricsController;->lambda$getWindowMetricsInternal$0(Landroid/os/IBinder;Landroid/graphics/Rect;ZI)Landroid/view/WindowInsets;
-HSPLandroid/window/WindowOnBackInvokedDispatcher$Checker;->-$$Nest$mgetContext(Landroid/window/WindowOnBackInvokedDispatcher$Checker;)Landroid/content/Context;
-HSPLandroid/window/WindowOnBackInvokedDispatcher$Checker;-><init>(Landroid/content/Context;)V
-HSPLandroid/window/WindowOnBackInvokedDispatcher$Checker;->checkApplicationCallbackRegistration(ILandroid/window/OnBackInvokedCallback;)Z
-HSPLandroid/window/WindowOnBackInvokedDispatcher$Checker;->getContext()Landroid/content/Context;
-HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda0;-><init>(Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper;)V
-HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda0;->run()V
-HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda2;->run()V
-HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda3;->run()V
-HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$CallbackRef;-><init>(Landroid/window/OnBackInvokedCallback;Z)V
-HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper;->getBackAnimationCallback()Landroid/window/OnBackAnimationCallback;
-HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper;->onBackCancelled()V
-HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper;->onBackInvoked()V
-HSPLandroid/window/WindowOnBackInvokedDispatcher;-><clinit>()V
-HSPLandroid/window/WindowOnBackInvokedDispatcher;-><init>(Landroid/content/Context;)V
-HSPLandroid/window/WindowOnBackInvokedDispatcher;->attachToWindow(Landroid/view/IWindowSession;Landroid/view/IWindow;)V
-HSPLandroid/window/WindowOnBackInvokedDispatcher;->clear()V
-HSPLandroid/window/WindowOnBackInvokedDispatcher;->detachFromWindow()V
-HSPLandroid/window/WindowOnBackInvokedDispatcher;->getTopCallback()Landroid/window/OnBackInvokedCallback;
-HSPLandroid/window/WindowOnBackInvokedDispatcher;->hasImeOnBackInvokedDispatcher()Z
-HSPLandroid/window/WindowOnBackInvokedDispatcher;->isOnBackInvokedCallbackEnabled()Z
-HSPLandroid/window/WindowOnBackInvokedDispatcher;->isOnBackInvokedCallbackEnabled(Landroid/content/Context;)Z
-HSPLandroid/window/WindowOnBackInvokedDispatcher;->registerOnBackInvokedCallback(ILandroid/window/OnBackInvokedCallback;)V
-HSPLandroid/window/WindowOnBackInvokedDispatcher;->registerOnBackInvokedCallbackUnchecked(Landroid/window/OnBackInvokedCallback;I)V
-HSPLandroid/window/WindowOnBackInvokedDispatcher;->setTopOnBackInvokedCallback(Landroid/window/OnBackInvokedCallback;)V
-HSPLandroid/window/WindowOnBackInvokedDispatcher;->unregisterOnBackInvokedCallback(Landroid/window/OnBackInvokedCallback;)V
-HSPLandroid/window/WindowOnBackInvokedDispatcher;->updateContext(Landroid/content/Context;)V
-HSPLandroid/window/WindowOrganizer;-><init>()V
-HSPLandroid/window/WindowTokenClient;-><clinit>()V
-HSPLandroid/window/WindowTokenClient;-><init>()V
-HSPLandroid/window/WindowTokenClient;->attachContext(Landroid/content/Context;)V
-HSPLandroid/window/WindowTokenClient;->onConfigurationChanged(Landroid/content/res/Configuration;I)V
-HSPLandroid/window/WindowTokenClient;->onConfigurationChanged(Landroid/content/res/Configuration;IZ)V
-HSPLcom/android/i18n/phonenumbers/CountryCodeToRegionCodeMap;->getCountryCodeToRegionCodeMap()Ljava/util/Map;
-HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->buildNationalNumberForParsing(Ljava/lang/String;Ljava/lang/StringBuilder;)V
-HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->checkRegionForParsing(Ljava/lang/CharSequence;Ljava/lang/String;)Z
-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;
-HSPLcom/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;->getMetadataForRegionOrCallingCode(ILjava/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;->getNumberDescByType(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
-HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getNumberTypeHelper(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;+]Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;]Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberUtil;
-HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForCountryCode(I)Ljava/lang/String;
-HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Ljava/lang/String;
-HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForNumberFromRegionList(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/util/List;)Ljava/lang/String;+]Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberUtil;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;
-HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->hasFormattingPatternForNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Z
-HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isNumberMatchingDesc(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Z+]Ljava/lang/String;Ljava/lang/String;]Lcom/android/i18n/phonenumbers/internal/MatcherApi;Lcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;]Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;]Ljava/util/List;Ljava/util/ArrayList;
-HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isValidNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Z
-HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isValidNumberForRegion(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/lang/String;)Z
-HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isValidRegionCode(Ljava/lang/String;)Z
-HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isViablePhoneNumber(Ljava/lang/CharSequence;)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;->normalizeDiallableCharsOnly(Ljava/lang/CharSequence;)Ljava/lang/String;
-HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalizeDigits(Ljava/lang/CharSequence;Z)Ljava/lang/StringBuilder;
-HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalizeDigitsOnly(Ljava/lang/CharSequence;)Ljava/lang/String;
-HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalizeHelper(Ljava/lang/CharSequence;Ljava/util/Map;Z)Ljava/lang/String;
-HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parse(Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
-HSPLcom/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;->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$ValidationResult;
-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;-><init>()V
-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;->getLeadingDigitsPatternCount()I
-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;->readExternal(Ljava/io/ObjectInput;)V
-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
-HSPLcom/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;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getIntlNumberFormatList()Ljava/util/List;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getLeadingDigits()Ljava/lang/String;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getMobile()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getNationalPrefixForParsing()Ljava/lang/String;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getNationalPrefixTransformRule()Ljava/lang/String;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getNumberFormatList()Ljava/util/List;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getPager()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getPersonalNumber()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getPremiumRate()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getSameMobileAndFixedLinePattern()Z
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getSharedCost()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getTollFree()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getUan()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getVoicemail()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getVoip()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasLeadingDigits()Z
-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;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setLeadingDigits(Ljava/lang/String;)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;
-HSPLcom/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;->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;-><init>()V
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection;->getMetadataList()Ljava/util/List;
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection;->readExternal(Ljava/io/ObjectInput;)V
-HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;-><init>()V
-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;-><init>()V
-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;->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;->setNationalNumber(J)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;->match(Ljava/lang/CharSequence;Ljava/util/regex/Pattern;Z)Z+]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern;
-HSPLcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;->matchNationalNumber(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;Z)Z+]Ljava/lang/String;Ljava/lang/String;]Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;]Lcom/android/i18n/phonenumbers/internal/RegexCache;Lcom/android/i18n/phonenumbers/internal/RegexCache;
-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;-><init>(I)V
-HSPLcom/android/i18n/phonenumbers/internal/RegexCache;->getPatternForRegex(Ljava/lang/String;)Ljava/util/regex/Pattern;
-HSPLcom/android/i18n/system/AppSpecializationHooks;->handleCompatChangesBeforeBindingApplication()V
-HSPLcom/android/i18n/system/ZygoteHooks;->handleCompatChangesBeforeBindingApplication()V
-HSPLcom/android/i18n/system/ZygoteHooks;->onEndPreload()V
-HSPLcom/android/i18n/timezone/WallTime;->checked32BitAdd(JI)I
-HSPLcom/android/i18n/timezone/WallTime;->copyFieldsFromCalendar()V
-HSPLcom/android/i18n/timezone/WallTime;->getGmtOffset()I
-HSPLcom/android/i18n/timezone/WallTime;->getHour()I
-HSPLcom/android/i18n/timezone/WallTime;->getIsDst()I
-HSPLcom/android/i18n/timezone/WallTime;->getMinute()I
-HSPLcom/android/i18n/timezone/WallTime;->getMonth()I
-HSPLcom/android/i18n/timezone/WallTime;->getMonthDay()I
-HSPLcom/android/i18n/timezone/WallTime;->getSecond()I
-HSPLcom/android/i18n/timezone/WallTime;->getWeekDay()I
-HSPLcom/android/i18n/timezone/WallTime;->getYear()I
-HSPLcom/android/i18n/timezone/WallTime;->getYearDay()I
-HSPLcom/android/i18n/timezone/WallTime;->localtime(ILcom/android/i18n/timezone/ZoneInfoData;)V
-HSPLcom/android/i18n/timezone/WallTime;->setGmtOffset(I)V
-HSPLcom/android/i18n/timezone/WallTime;->setHour(I)V
-HSPLcom/android/i18n/timezone/WallTime;->setIsDst(I)V
-HSPLcom/android/i18n/timezone/WallTime;->setMinute(I)V
-HSPLcom/android/i18n/timezone/WallTime;->setMonth(I)V
-HSPLcom/android/i18n/timezone/WallTime;->setMonthDay(I)V
-HSPLcom/android/i18n/timezone/WallTime;->setSecond(I)V
-HSPLcom/android/i18n/timezone/WallTime;->setWeekDay(I)V
-HSPLcom/android/i18n/timezone/WallTime;->setYear(I)V
-HSPLcom/android/i18n/timezone/WallTime;->setYearDay(I)V
-HSPLcom/android/i18n/timezone/ZoneInfoData;-><init>(Lcom/android/i18n/timezone/ZoneInfoData;)V
-HSPLcom/android/i18n/timezone/ZoneInfoData;-><init>(Lcom/android/i18n/timezone/ZoneInfoData;I)V
-HSPLcom/android/i18n/timezone/ZoneInfoData;-><init>(Ljava/lang/String;[J[B[I[B)V
-HSPLcom/android/i18n/timezone/ZoneInfoData;->checkTzifVersionAcceptable(Ljava/lang/String;B)V
-HSPLcom/android/i18n/timezone/ZoneInfoData;->findOffsetIndexForTimeInMilliseconds(J)I
-HSPLcom/android/i18n/timezone/ZoneInfoData;->findOffsetIndexForTimeInSeconds(J)I
-HSPLcom/android/i18n/timezone/ZoneInfoData;->findTransitionIndex(J)I
-HSPLcom/android/i18n/timezone/ZoneInfoData;->getID()Ljava/lang/String;
-HSPLcom/android/i18n/timezone/ZoneInfoData;->getLatestDstSavingsMillis(J)Ljava/lang/Integer;
-HSPLcom/android/i18n/timezone/ZoneInfoData;->getOffset(J)I
-HSPLcom/android/i18n/timezone/ZoneInfoData;->getOffsetsByUtcTime(J[I)I+]Lcom/android/i18n/timezone/ZoneInfoData;Lcom/android/i18n/timezone/ZoneInfoData;
-HSPLcom/android/i18n/timezone/ZoneInfoData;->getRawOffset()I
-HSPLcom/android/i18n/timezone/ZoneInfoData;->getTransitions()[J
-HSPLcom/android/i18n/timezone/ZoneInfoData;->hashCode()I
-HSPLcom/android/i18n/timezone/ZoneInfoData;->isInDaylightTime(J)Z
-HSPLcom/android/i18n/timezone/ZoneInfoData;->read64BitData(Ljava/lang/String;Lcom/android/i18n/timezone/internal/BufferIterator;)Lcom/android/i18n/timezone/ZoneInfoData;
-HSPLcom/android/i18n/timezone/ZoneInfoData;->readTimeZone(Ljava/lang/String;Lcom/android/i18n/timezone/internal/BufferIterator;)Lcom/android/i18n/timezone/ZoneInfoData;
-HSPLcom/android/i18n/timezone/ZoneInfoData;->roundDownMillisToSeconds(J)J
-HSPLcom/android/i18n/timezone/ZoneInfoData;->roundUpMillisToSeconds(J)J
-HSPLcom/android/i18n/timezone/ZoneInfoData;->skipOver32BitData(Ljava/lang/String;Lcom/android/i18n/timezone/internal/BufferIterator;)V
-HSPLcom/android/i18n/timezone/ZoneInfoDb$1;->create(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/i18n/timezone/ZoneInfoDb$1;->create(Ljava/lang/String;)Lcom/android/i18n/timezone/ZoneInfoData;
-HSPLcom/android/i18n/timezone/ZoneInfoDb;->checkNotClosed()V
-HSPLcom/android/i18n/timezone/ZoneInfoDb;->close()V
-HSPLcom/android/i18n/timezone/ZoneInfoDb;->finalize()V
-HSPLcom/android/i18n/timezone/ZoneInfoDb;->getAvailableIDs()[Ljava/lang/String;
-HSPLcom/android/i18n/timezone/ZoneInfoDb;->getBufferIterator(Ljava/lang/String;)Lcom/android/i18n/timezone/internal/BufferIterator;
-HSPLcom/android/i18n/timezone/ZoneInfoDb;->getInstance()Lcom/android/i18n/timezone/ZoneInfoDb;
-HSPLcom/android/i18n/timezone/ZoneInfoDb;->makeZoneInfoData(Ljava/lang/String;)Lcom/android/i18n/timezone/ZoneInfoData;
-HSPLcom/android/i18n/timezone/ZoneInfoDb;->makeZoneInfoDataUncached(Ljava/lang/String;)Lcom/android/i18n/timezone/ZoneInfoData;
-HSPLcom/android/i18n/timezone/internal/BasicLruCache$CacheMap;->removeEldestEntry(Ljava/util/Map$Entry;)Z
-HSPLcom/android/i18n/timezone/internal/BasicLruCache;->evictAll()V
-HSPLcom/android/i18n/timezone/internal/BasicLruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/i18n/timezone/internal/BufferIterator;-><init>()V
-HSPLcom/android/i18n/timezone/internal/Memory;->peekInt(JZ)I
-HSPLcom/android/i18n/timezone/internal/MemoryMappedFile;->bigEndianIterator()Lcom/android/i18n/timezone/internal/BufferIterator;
-HSPLcom/android/i18n/timezone/internal/MemoryMappedFile;->checkNotClosed()V
-HSPLcom/android/i18n/timezone/internal/NioBufferIterator;-><init>(Lcom/android/i18n/timezone/internal/MemoryMappedFile;JIZ)V
-HSPLcom/android/i18n/timezone/internal/NioBufferIterator;->checkArrayBounds(III)V
-HSPLcom/android/i18n/timezone/internal/NioBufferIterator;->checkReadBounds(III)V
-HSPLcom/android/i18n/timezone/internal/NioBufferIterator;->readByte()B
-HSPLcom/android/i18n/timezone/internal/NioBufferIterator;->readByteArray([BII)V
-HSPLcom/android/i18n/timezone/internal/NioBufferIterator;->readInt()I
-HSPLcom/android/i18n/timezone/internal/NioBufferIterator;->readLongArray([JII)V
-HSPLcom/android/i18n/timezone/internal/NioBufferIterator;->skip(I)V
-HSPLcom/android/icu/charset/CharsetDecoderICU;-><init>(Ljava/nio/charset/Charset;FJ)V
-HSPLcom/android/icu/charset/CharsetDecoderICU;->decodeLoop(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;
-HSPLcom/android/icu/charset/CharsetDecoderICU;->getArray(Ljava/nio/ByteBuffer;)I+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;
-HSPLcom/android/icu/charset/CharsetDecoderICU;->getArray(Ljava/nio/CharBuffer;)I+]Ljava/nio/CharBuffer;Ljava/nio/HeapCharBuffer;
-HSPLcom/android/icu/charset/CharsetDecoderICU;->implFlush(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;+]Lcom/android/icu/charset/CharsetDecoderICU;Lcom/android/icu/charset/CharsetDecoderICU;
-HSPLcom/android/icu/charset/CharsetDecoderICU;->implOnMalformedInput(Ljava/nio/charset/CodingErrorAction;)V
-HSPLcom/android/icu/charset/CharsetDecoderICU;->implOnUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)V
-HSPLcom/android/icu/charset/CharsetDecoderICU;->implReplaceWith(Ljava/lang/String;)V
-HSPLcom/android/icu/charset/CharsetDecoderICU;->implReset()V
-HSPLcom/android/icu/charset/CharsetDecoderICU;->newInstance(Ljava/nio/charset/Charset;Ljava/lang/String;)Lcom/android/icu/charset/CharsetDecoderICU;
-HSPLcom/android/icu/charset/CharsetDecoderICU;->setPosition(Ljava/nio/ByteBuffer;)V
-HSPLcom/android/icu/charset/CharsetDecoderICU;->setPosition(Ljava/nio/CharBuffer;)V
-HSPLcom/android/icu/charset/CharsetDecoderICU;->updateCallback()V
-HSPLcom/android/icu/charset/CharsetEncoderICU;-><init>(Ljava/nio/charset/Charset;FF[BJ)V
-HSPLcom/android/icu/charset/CharsetEncoderICU;->encodeLoop(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;+]Ljava/nio/CharBuffer;Ljava/nio/HeapCharBuffer;
-HSPLcom/android/icu/charset/CharsetEncoderICU;->getArray(Ljava/nio/ByteBuffer;)I+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;
-HSPLcom/android/icu/charset/CharsetEncoderICU;->getArray(Ljava/nio/CharBuffer;)I+]Ljava/nio/CharBuffer;Ljava/nio/HeapCharBuffer;
-HSPLcom/android/icu/charset/CharsetEncoderICU;->implFlush(Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;
-HSPLcom/android/icu/charset/CharsetEncoderICU;->implOnMalformedInput(Ljava/nio/charset/CodingErrorAction;)V
-HSPLcom/android/icu/charset/CharsetEncoderICU;->implOnUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)V
-HSPLcom/android/icu/charset/CharsetEncoderICU;->implReset()V
-HSPLcom/android/icu/charset/CharsetEncoderICU;->makeReplacement(Ljava/lang/String;J)[B
-HSPLcom/android/icu/charset/CharsetEncoderICU;->newInstance(Ljava/nio/charset/Charset;Ljava/lang/String;)Lcom/android/icu/charset/CharsetEncoderICU;
-HSPLcom/android/icu/charset/CharsetEncoderICU;->setPosition(Ljava/nio/ByteBuffer;)V+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;
-HSPLcom/android/icu/charset/CharsetEncoderICU;->setPosition(Ljava/nio/CharBuffer;)V
-HSPLcom/android/icu/charset/CharsetEncoderICU;->updateCallback()V
-HSPLcom/android/icu/charset/CharsetFactory;->create(Ljava/lang/String;)Ljava/nio/charset/Charset;
-HSPLcom/android/icu/charset/CharsetICU;-><init>(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
-HSPLcom/android/icu/charset/CharsetICU;->newDecoder()Ljava/nio/charset/CharsetDecoder;
-HSPLcom/android/icu/charset/CharsetICU;->newEncoder()Ljava/nio/charset/CharsetEncoder;
-HSPLcom/android/icu/charset/NativeConverter;->U_FAILURE(I)Z
-HSPLcom/android/icu/charset/NativeConverter;->registerConverter(Ljava/lang/Object;J)V
-HSPLcom/android/icu/charset/NativeConverter;->setCallbackDecode(JLjava/nio/charset/CharsetDecoder;)V
-HSPLcom/android/icu/charset/NativeConverter;->setCallbackEncode(JLjava/nio/charset/CharsetEncoder;)V
-HSPLcom/android/icu/charset/NativeConverter;->translateCodingErrorAction(Ljava/nio/charset/CodingErrorAction;)I
-HSPLcom/android/icu/text/CompatibleDecimalFormatFactory;->create(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;)Landroid/icu/text/DecimalFormat;
-HSPLcom/android/icu/text/ExtendedDecimalFormatSymbols;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)V
-HSPLcom/android/icu/text/ExtendedDecimalFormatSymbols;->getInstance(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)Lcom/android/icu/text/ExtendedDecimalFormatSymbols;
-HSPLcom/android/icu/text/ExtendedDecimalFormatSymbols;->getLocalizedPatternSeparator()Ljava/lang/String;
-HSPLcom/android/icu/text/ExtendedIDNA;->convertIDNToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer;
-HSPLcom/android/icu/text/ExtendedTimeZoneNames;-><clinit>()V
-HSPLcom/android/icu/text/ExtendedTimeZoneNames;-><init>(Landroid/icu/util/ULocale;)V
-HSPLcom/android/icu/text/ExtendedTimeZoneNames;->getInstance(Landroid/icu/util/ULocale;)Lcom/android/icu/text/ExtendedTimeZoneNames;
-HSPLcom/android/icu/text/ExtendedTimeZoneNames;->getTimeZoneNames()Landroid/icu/text/TimeZoneNames;
-HSPLcom/android/icu/util/CaseMapperNative;->toLowerCase(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
-HSPLcom/android/icu/util/ExtendedCalendar;-><init>(Landroid/icu/util/ULocale;)V
-HSPLcom/android/icu/util/ExtendedCalendar;->getDateTimePattern(II)Ljava/lang/String;
-HSPLcom/android/icu/util/ExtendedCalendar;->getInstance(Landroid/icu/util/ULocale;)Lcom/android/icu/util/ExtendedCalendar;
-HSPLcom/android/icu/util/ExtendedTimeZone;-><init>(Ljava/lang/String;)V
-HSPLcom/android/icu/util/ExtendedTimeZone;->clearDefaultTimeZone()V
-HSPLcom/android/icu/util/ExtendedTimeZone;->createZoneOffsetTransitionRule(Landroid/icu/util/AnnualTimeZoneRule;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)Ljava/time/zone/ZoneOffsetTransitionRule;
-HSPLcom/android/icu/util/ExtendedTimeZone;->createZoneRules()Ljava/time/zone/ZoneRules;
-HSPLcom/android/icu/util/ExtendedTimeZone;->dayOfWeek(Landroid/icu/util/DateTimeRule;)Ljava/time/DayOfWeek;
-HSPLcom/android/icu/util/ExtendedTimeZone;->fullOffset(Landroid/icu/util/TimeZoneRule;)Ljava/time/ZoneOffset;
-HSPLcom/android/icu/util/ExtendedTimeZone;->getInstance(Ljava/lang/String;)Lcom/android/icu/util/ExtendedTimeZone;
-HSPLcom/android/icu/util/ExtendedTimeZone;->localDateTime(JLjava/time/ZoneOffset;)Ljava/time/LocalDateTime;
-HSPLcom/android/icu/util/ExtendedTimeZone;->standardOffset(Landroid/icu/util/TimeZoneRule;)Ljava/time/ZoneOffset;
-HSPLcom/android/icu/util/ExtendedTimeZone;->timeDefinition(Landroid/icu/util/AnnualTimeZoneRule;)Ljava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;
-HSPLcom/android/icu/util/ExtendedTimeZone;->toOffset(I)Ljava/time/ZoneOffset;
-HSPLcom/android/icu/util/ExtendedTimeZone;->utcStartTime(JLandroid/icu/util/TimeArrayTimeZoneRule;)J
-HSPLcom/android/icu/util/LocaleNative;->getDisplayCountry(Ljava/util/Locale;Ljava/util/Locale;)Ljava/lang/String;
-HSPLcom/android/icu/util/LocaleNative;->getDisplayLanguage(Ljava/util/Locale;Ljava/util/Locale;)Ljava/lang/String;
-HSPLcom/android/icu/util/LocaleNative;->setDefault(Ljava/lang/String;)V
-HSPLcom/android/icu/util/regex/MatcherNative;-><init>(Lcom/android/icu/util/regex/PatternNative;)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry;]Lcom/android/icu/util/regex/PatternNative;Lcom/android/icu/util/regex/PatternNative;
-HSPLcom/android/icu/util/regex/MatcherNative;->create(Lcom/android/icu/util/regex/PatternNative;)Lcom/android/icu/util/regex/MatcherNative;
-HSPLcom/android/icu/util/regex/MatcherNative;->find(I[I)Z
-HSPLcom/android/icu/util/regex/MatcherNative;->findNext([I)Z
-HSPLcom/android/icu/util/regex/MatcherNative;->groupCount()I
-HSPLcom/android/icu/util/regex/MatcherNative;->hitEnd()Z
-HSPLcom/android/icu/util/regex/MatcherNative;->lookingAt([I)Z
-HSPLcom/android/icu/util/regex/MatcherNative;->matches([I)Z
-HSPLcom/android/icu/util/regex/MatcherNative;->requireEnd()Z
-HSPLcom/android/icu/util/regex/MatcherNative;->setInput(Ljava/lang/String;II)V
-HSPLcom/android/icu/util/regex/MatcherNative;->useAnchoringBounds(Z)V
-HSPLcom/android/icu/util/regex/MatcherNative;->useTransparentBounds(Z)V
-HSPLcom/android/icu/util/regex/PatternNative;-><init>(Ljava/lang/String;I)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry;
-HSPLcom/android/icu/util/regex/PatternNative;->create(Ljava/lang/String;I)Lcom/android/icu/util/regex/PatternNative;
-HSPLcom/android/icu/util/regex/PatternNative;->openMatcher()J
-HSPLcom/android/internal/app/AlertController;-><init>(Landroid/content/Context;Landroid/content/DialogInterface;Landroid/view/Window;)V
-HSPLcom/android/internal/app/AlertController;->create(Landroid/content/Context;Landroid/content/DialogInterface;Landroid/view/Window;)Lcom/android/internal/app/AlertController;
-HSPLcom/android/internal/app/AlertController;->installContent()V
-HSPLcom/android/internal/app/AlertController;->resolvePanel(Landroid/view/View;Landroid/view/View;)Landroid/view/ViewGroup;
-HSPLcom/android/internal/app/AlertController;->setBackground(Landroid/content/res/TypedArray;Landroid/view/View;Landroid/view/View;Landroid/view/View;Landroid/view/View;ZZZ)V
-HSPLcom/android/internal/app/AlertController;->setupButtons(Landroid/view/ViewGroup;)V
-HSPLcom/android/internal/app/AlertController;->setupContent(Landroid/view/ViewGroup;)V
-HSPLcom/android/internal/app/AlertController;->setupCustomContent(Landroid/view/ViewGroup;)V
-HSPLcom/android/internal/app/AlertController;->setupTitle(Landroid/view/ViewGroup;)V
-HSPLcom/android/internal/app/AlertController;->setupView()V
-HSPLcom/android/internal/app/AssistUtils;-><init>(Landroid/content/Context;)V
-HSPLcom/android/internal/app/AssistUtils;->getAssistComponentForUser(I)Landroid/content/ComponentName;
-HSPLcom/android/internal/app/IAppOpsActiveCallback$Stub;-><init>()V
-HSPLcom/android/internal/app/IAppOpsActiveCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/app/IAppOpsAsyncNotedCallback$Stub;-><init>()V
-HSPLcom/android/internal/app/IAppOpsAsyncNotedCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/app/IAppOpsAsyncNotedCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLcom/android/internal/app/IAppOpsCallback$Stub;-><init>()V
-HSPLcom/android/internal/app/IAppOpsCallback$Stub;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkOperation(IILjava/lang/String;)I
-HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkPackage(ILjava/lang/String;)I
-HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->extractAsyncOps(Ljava/lang/String;)Ljava/util/List;
-HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->getPackagesForOps([I)Ljava/util/List;
-HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->noteOperation(IILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;Z)Landroid/app/SyncNotedAppOp;
-HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->reportRuntimeAppOpAccessMessageAndGetConfig(Ljava/lang/String;Landroid/app/SyncNotedAppOp;Ljava/lang/String;)Lcom/android/internal/app/MessageSamplingConfig;
-HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->shouldCollectNotes(I)Z
-HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->startWatchingActive([ILcom/android/internal/app/IAppOpsActiveCallback;)V
-HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->startWatchingAsyncNoted(Ljava/lang/String;Lcom/android/internal/app/IAppOpsAsyncNotedCallback;)V
-HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->startWatchingModeWithFlags(ILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V
-HSPLcom/android/internal/app/IAppOpsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsService;
-HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->isCharging()Z
-HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->takeUidSnapshot(I)Landroid/os/health/HealthStatsParceler;
-HSPLcom/android/internal/app/IBatteryStats$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IBatteryStats;
-HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->notifyActivityEventChanged(Landroid/os/IBinder;I)V
-HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractionManagerService;
-HSPLcom/android/internal/app/IVoiceInteractor$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractor;
-HSPLcom/android/internal/app/MessageSamplingConfig$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/app/MessageSamplingConfig;
-HSPLcom/android/internal/app/MessageSamplingConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLcom/android/internal/app/MessageSamplingConfig;-><init>(Landroid/os/Parcel;)V
-HSPLcom/android/internal/app/MessageSamplingConfig;->getAcceptableLeftDistance()I
-HSPLcom/android/internal/app/MessageSamplingConfig;->getExpirationTimeSinceBootMillis()J
-HSPLcom/android/internal/app/MessageSamplingConfig;->getSampledOpCode()I
-HSPLcom/android/internal/app/ProcessMap;->get(Ljava/lang/String;I)Ljava/lang/Object;
-HSPLcom/android/internal/app/procstats/AssociationState$SourceState;->getAssociationState()Lcom/android/internal/app/procstats/AssociationState;
-HSPLcom/android/internal/app/procstats/AssociationState$SourceState;->startActive(J)V
-HSPLcom/android/internal/app/procstats/AssociationState$SourceState;->trackProcState(IIJ)V
-HSPLcom/android/internal/app/procstats/AssociationState;->getProcess()Lcom/android/internal/app/procstats/ProcessState;
-HSPLcom/android/internal/app/procstats/ProcessState;->getCombinedState()I
-HSPLcom/android/internal/app/procstats/ProcessStats;->splitAndParseNumbers(Ljava/lang/String;)[I
-HSPLcom/android/internal/app/procstats/ProcessStats;->updateTrackingAssociationsLocked(IJ)V
-HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->assertConsistency()V
-HSPLcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-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;->notifyProviderInheritance([Landroid/content/ComponentName;)V
-HSPLcom/android/internal/appwidget/IAppWidgetService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/appwidget/IAppWidgetService;
-HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->getMainColor()I
-HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->supportsDarkText()Z
-HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;-><init>(JI)V
-HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Lcom/android/internal/compat/ChangeReporter$ChangeReport;
-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+]Ljava/util/Map;Ljava/util/HashMap;]Ljava/util/Set;Ljava/util/HashSet;
-HSPLcom/android/internal/compat/ChangeReporter;->markAsReported(ILcom/android/internal/compat/ChangeReporter$ChangeReport;)V+]Ljava/util/Map;Ljava/util/HashMap;]Ljava/util/Set;Ljava/util/HashSet;
-HSPLcom/android/internal/compat/ChangeReporter;->reportChange(IJI)V+]Lcom/android/internal/compat/ChangeReporter;Lcom/android/internal/compat/ChangeReporter;
-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/IPlatformCompat$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/compat/IPlatformCompat;
-HSPLcom/android/internal/content/PackageMonitor;-><init>()V
-HSPLcom/android/internal/content/ReferrerIntent$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/content/ReferrerIntent;
-HSPLcom/android/internal/content/ReferrerIntent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLcom/android/internal/display/BrightnessSynchronizer;-><clinit>()V
-HSPLcom/android/internal/display/BrightnessSynchronizer;->floatEquals(FF)Z
-HSPLcom/android/internal/dynamicanimation/animation/DynamicAnimation;-><init>(Ljava/lang/Object;Landroid/util/FloatProperty;)V
-HSPLcom/android/internal/dynamicanimation/animation/SpringForce;-><init>()V
-HSPLcom/android/internal/graphics/ColorUtils;->HSLToColor([F)I
-HSPLcom/android/internal/graphics/ColorUtils;->RGBToHSL(III[F)V
-HSPLcom/android/internal/graphics/ColorUtils;->colorToHSL(I[F)V
-HSPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;-><init>()V
-HSPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;->getFrameTime()J
-HSPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V
-HSPLcom/android/internal/graphics/cam/Cam;-><init>(FFFFFFFFF)V
-HSPLcom/android/internal/graphics/cam/Cam;->fromInt(I)Lcom/android/internal/graphics/cam/Cam;
-HSPLcom/android/internal/graphics/cam/Cam;->fromIntInFrame(ILcom/android/internal/graphics/cam/Frame;)Lcom/android/internal/graphics/cam/Cam;
-HSPLcom/android/internal/graphics/cam/Cam;->getChroma()F
-HSPLcom/android/internal/graphics/cam/Cam;->getHue()F
-HSPLcom/android/internal/graphics/cam/CamUtils;-><clinit>()V
-HSPLcom/android/internal/graphics/cam/CamUtils;->linearized(I)F
-HSPLcom/android/internal/graphics/cam/CamUtils;->xyzFromInt(I)[F
-HSPLcom/android/internal/graphics/cam/Frame;-><clinit>()V
-HSPLcom/android/internal/graphics/cam/Frame;-><init>(FFFFFF[FFFF)V
-HSPLcom/android/internal/graphics/cam/Frame;->getAw()F
-HSPLcom/android/internal/graphics/cam/Frame;->getC()F
-HSPLcom/android/internal/graphics/cam/Frame;->getFl()F
-HSPLcom/android/internal/graphics/cam/Frame;->getFlRoot()F
-HSPLcom/android/internal/graphics/cam/Frame;->getN()F
-HSPLcom/android/internal/graphics/cam/Frame;->getNbb()F
-HSPLcom/android/internal/graphics/cam/Frame;->getNc()F
-HSPLcom/android/internal/graphics/cam/Frame;->getNcb()F
-HSPLcom/android/internal/graphics/cam/Frame;->getRgbD()[F
-HSPLcom/android/internal/graphics/cam/Frame;->getZ()F
-HSPLcom/android/internal/graphics/cam/Frame;->make([FFFFZ)Lcom/android/internal/graphics/cam/Frame;
-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-IA;)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
-HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->start()V
-HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->stop()V
-HSPLcom/android/internal/graphics/drawable/BackgroundBlurDrawable$Aggregator;-><init>(Landroid/view/ViewRootImpl;)V
-HSPLcom/android/internal/graphics/drawable/BackgroundBlurDrawable$Aggregator;->hasRegions()Z
-HSPLcom/android/internal/graphics/drawable/BackgroundBlurDrawable$Aggregator;->hasUpdates()Z
-HSPLcom/android/internal/infra/AndroidFuture$1;->complete(Lcom/android/internal/infra/AndroidFuture;)V
-HSPLcom/android/internal/infra/AndroidFuture$2;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/infra/AndroidFuture;
-HSPLcom/android/internal/infra/AndroidFuture$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLcom/android/internal/infra/AndroidFuture;-><init>()V
-HSPLcom/android/internal/infra/AndroidFuture;-><init>(Landroid/os/Parcel;)V
-HSPLcom/android/internal/infra/AndroidFuture;->cancelTimeout()Lcom/android/internal/infra/AndroidFuture;
-HSPLcom/android/internal/infra/AndroidFuture;->complete(Ljava/lang/Object;)Z
-HSPLcom/android/internal/infra/AndroidFuture;->getMainHandler()Landroid/os/Handler;
-HSPLcom/android/internal/infra/AndroidFuture;->onCompleted(Ljava/lang/Object;Ljava/lang/Throwable;)V
-HSPLcom/android/internal/infra/AndroidFuture;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLcom/android/internal/infra/IAndroidFuture$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/infra/IAndroidFuture$Stub$Proxy;->complete(Lcom/android/internal/infra/AndroidFuture;)V
-HSPLcom/android/internal/infra/IAndroidFuture$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLcom/android/internal/inputmethod/EditableInputConnection;-><init>(Landroid/widget/TextView;)V
-HSPLcom/android/internal/inputmethod/EditableInputConnection;->beginBatchEdit()Z
-HSPLcom/android/internal/inputmethod/EditableInputConnection;->closeConnection()V
-HSPLcom/android/internal/inputmethod/EditableInputConnection;->commitText(Ljava/lang/CharSequence;I)Z
-HSPLcom/android/internal/inputmethod/EditableInputConnection;->endBatchEdit()Z
-HSPLcom/android/internal/inputmethod/EditableInputConnection;->endComposingRegionEditInternal()V
-HSPLcom/android/internal/inputmethod/EditableInputConnection;->getEditable()Landroid/text/Editable;
-HSPLcom/android/internal/inputmethod/EditableInputConnection;->setImeConsumesInput(Z)Z
-HSPLcom/android/internal/inputmethod/IImeTracker$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLcom/android/internal/inputmethod/IImeTracker$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/inputmethod/IImeTracker$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/inputmethod/IImeTracker;
-HSPLcom/android/internal/inputmethod/IInputMethodClient$Stub;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/inputmethod/IInputMethodClient$Stub;->getMaxTransactionId()I
-HSPLcom/android/internal/inputmethod/IInputMethodClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;->finishInput()V
-HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;->updateSelection(IIIIII)V
-HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/inputmethod/IInputMethodSession;
-HSPLcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection$Stub;-><init>()V
-HSPLcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection$Stub;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/inputmethod/IRemoteInputConnection$Stub;-><init>()V
-HSPLcom/android/internal/inputmethod/IRemoteInputConnection$Stub;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/inputmethod/IRemoteInputConnection$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLcom/android/internal/inputmethod/ImeTracing;-><clinit>()V
-HSPLcom/android/internal/inputmethod/ImeTracing;-><init>()V
-HSPLcom/android/internal/inputmethod/ImeTracing;->getInstance()Lcom/android/internal/inputmethod/ImeTracing;
-HSPLcom/android/internal/inputmethod/ImeTracing;->isEnabled()Z
-HSPLcom/android/internal/inputmethod/ImeTracing;->isSystemProcess()Z
-HSPLcom/android/internal/inputmethod/ImeTracingClientImpl;-><init>()V
-HSPLcom/android/internal/inputmethod/ImeTracingClientImpl;->triggerClientDump(Ljava/lang/String;Landroid/view/inputmethod/InputMethodManager;[B)V
-HSPLcom/android/internal/inputmethod/InputBindResult$1;-><init>()V
-HSPLcom/android/internal/inputmethod/InputBindResult$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/inputmethod/InputBindResult;
-HSPLcom/android/internal/inputmethod/InputBindResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLcom/android/internal/inputmethod/InputBindResult;-><clinit>()V
-HSPLcom/android/internal/inputmethod/InputBindResult;-><init>(Landroid/os/Parcel;)V
-HSPLcom/android/internal/inputmethod/InputBindResult;-><init>(Landroid/os/Parcel;Lcom/android/internal/inputmethod/InputBindResult-IA;)V
-HSPLcom/android/internal/inputmethod/InputBindResult;->error(I)Lcom/android/internal/inputmethod/InputBindResult;
-HSPLcom/android/internal/inputmethod/InputConnectionCommandHeader$1;-><init>()V
-HSPLcom/android/internal/inputmethod/InputConnectionCommandHeader$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/inputmethod/InputConnectionCommandHeader;
-HSPLcom/android/internal/inputmethod/InputConnectionCommandHeader$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLcom/android/internal/inputmethod/InputConnectionCommandHeader;-><clinit>()V
-HSPLcom/android/internal/inputmethod/InputConnectionCommandHeader;-><init>(I)V
-HSPLcom/android/internal/inputmethod/InputMethodDebug;->softInputDisplayReasonToString(I)Ljava/lang/String;
-HSPLcom/android/internal/inputmethod/SubtypeLocaleUtils;->constructLocaleFromString(Ljava/lang/String;)Ljava/util/Locale;
-HSPLcom/android/internal/jank/FrameTracker$FrameMetricsWrapper;-><init>()V
-HSPLcom/android/internal/jank/FrameTracker$FrameMetricsWrapper;->getMetric(I)J
-HSPLcom/android/internal/jank/FrameTracker$FrameMetricsWrapper;->getTiming()[J
-HSPLcom/android/internal/jank/FrameTracker$ThreadedRendererWrapper;-><init>(Landroid/view/ThreadedRenderer;)V
-HSPLcom/android/internal/jank/FrameTracker$ThreadedRendererWrapper;->addObserver(Landroid/graphics/HardwareRendererObserver;)V
-HSPLcom/android/internal/jank/FrameTracker$ThreadedRendererWrapper;->removeObserver(Landroid/graphics/HardwareRendererObserver;)V
-HSPLcom/android/internal/jank/FrameTracker;->begin()V
-HSPLcom/android/internal/jank/FrameTracker;->onFrameMetricsAvailable(I)V
-HSPLcom/android/internal/jank/InteractionJankMonitor$InstanceHolder;-><clinit>()V
-HSPLcom/android/internal/jank/InteractionJankMonitor;->-$$Nest$sfgetDEFAULT_WORKER_NAME()Ljava/lang/String;
-HSPLcom/android/internal/jank/InteractionJankMonitor;-><clinit>()V
-HSPLcom/android/internal/jank/InteractionJankMonitor;-><init>(Landroid/os/HandlerThread;)V
-HSPLcom/android/internal/jank/InteractionJankMonitor;->cancel(I)Z
-HSPLcom/android/internal/jank/InteractionJankMonitor;->end(I)Z
-HSPLcom/android/internal/jank/InteractionJankMonitor;->getInstance()Lcom/android/internal/jank/InteractionJankMonitor;
-HSPLcom/android/internal/jank/InteractionJankMonitor;->postEventLogToWorkerThread(Lcom/android/internal/jank/InteractionJankMonitor$TimeFunction;)V
-HSPLcom/android/internal/listeners/ListenerExecutor$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Object;Ljava/util/function/Supplier;Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;Lcom/android/internal/listeners/ListenerExecutor$FailureCallback;)V
-HSPLcom/android/internal/listeners/ListenerExecutor$$ExternalSyntheticLambda0;->run()V
-HSPLcom/android/internal/listeners/ListenerExecutor$ListenerOperation;->onComplete(Z)V
-HSPLcom/android/internal/listeners/ListenerExecutor$ListenerOperation;->onPostExecute(Z)V
-HSPLcom/android/internal/listeners/ListenerExecutor$ListenerOperation;->onPreExecute()V
-HSPLcom/android/internal/listeners/ListenerExecutor;->executeSafely(Ljava/util/concurrent/Executor;Ljava/util/function/Supplier;Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;)V
-HSPLcom/android/internal/listeners/ListenerExecutor;->executeSafely(Ljava/util/concurrent/Executor;Ljava/util/function/Supplier;Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;Lcom/android/internal/listeners/ListenerExecutor$FailureCallback;)V
-HSPLcom/android/internal/listeners/ListenerExecutor;->lambda$executeSafely$0(Ljava/lang/Object;Ljava/util/function/Supplier;Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;Lcom/android/internal/listeners/ListenerExecutor$FailureCallback;)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
-HSPLcom/android/internal/logging/AndroidHandler;->getAndroidLevel(Ljava/util/logging/Level;)I
-HSPLcom/android/internal/logging/AndroidHandler;->loggerNameToTag(Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/internal/logging/AndroidHandler;->publish(Ljava/util/logging/LogRecord;)V
-HSPLcom/android/internal/logging/EventLogTags;->writeSysuiMultiAction([Ljava/lang/Object;)V
-HSPLcom/android/internal/logging/InstanceId$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/logging/InstanceId;
-HSPLcom/android/internal/logging/InstanceId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLcom/android/internal/logging/InstanceId;-><init>(I)V
-HSPLcom/android/internal/logging/InstanceId;->getId()I
-HSPLcom/android/internal/logging/InstanceIdSequence;-><init>(I)V
-HSPLcom/android/internal/logging/InstanceIdSequence;->newInstanceId()Lcom/android/internal/logging/InstanceId;
-HSPLcom/android/internal/logging/InstanceIdSequence;->newInstanceIdInternal(I)Lcom/android/internal/logging/InstanceId;
-HSPLcom/android/internal/logging/MetricsLogger;-><init>()V
-HSPLcom/android/internal/logging/MetricsLogger;->action(II)V
-HSPLcom/android/internal/logging/MetricsLogger;->action(Landroid/content/Context;II)V
-HSPLcom/android/internal/logging/MetricsLogger;->action(Landroid/metrics/LogMaker;)V
-HSPLcom/android/internal/logging/MetricsLogger;->count(Landroid/content/Context;Ljava/lang/String;I)V
-HSPLcom/android/internal/logging/MetricsLogger;->count(Ljava/lang/String;I)V
-HSPLcom/android/internal/logging/MetricsLogger;->getLogger()Lcom/android/internal/logging/MetricsLogger;
-HSPLcom/android/internal/logging/MetricsLogger;->hidden(I)V
-HSPLcom/android/internal/logging/MetricsLogger;->histogram(Ljava/lang/String;I)V
-HSPLcom/android/internal/logging/MetricsLogger;->saveLog(Landroid/metrics/LogMaker;)V
-HSPLcom/android/internal/logging/MetricsLogger;->visible(I)V
-HSPLcom/android/internal/logging/MetricsLogger;->write(Landroid/metrics/LogMaker;)V
-HSPLcom/android/internal/logging/UiEventLoggerImpl;-><init>()V
-HSPLcom/android/internal/logging/UiEventLoggerImpl;->log(Lcom/android/internal/logging/UiEventLogger$UiEventEnum;)V
-HSPLcom/android/internal/logging/UiEventLoggerImpl;->log(Lcom/android/internal/logging/UiEventLogger$UiEventEnum;ILjava/lang/String;)V
-HSPLcom/android/internal/logging/UiEventLoggerImpl;->logWithInstanceId(Lcom/android/internal/logging/UiEventLogger$UiEventEnum;ILjava/lang/String;Lcom/android/internal/logging/InstanceId;)V
-HSPLcom/android/internal/net/NetworkUtilsInternal;-><clinit>()V
-HSPLcom/android/internal/os/AndroidPrintStream;-><init>(ILjava/lang/String;)V
-HSPLcom/android/internal/os/AndroidPrintStream;->log(Ljava/lang/String;)V
-HSPLcom/android/internal/os/BackgroundThread;-><init>()V
-HSPLcom/android/internal/os/BackgroundThread;->ensureThreadLocked()V
-HSPLcom/android/internal/os/BackgroundThread;->getExecutor()Ljava/util/concurrent/Executor;
-HSPLcom/android/internal/os/BackgroundThread;->getHandler()Landroid/os/Handler;
-HSPLcom/android/internal/os/BinderCallsStats$SettingsObserver;-><init>(Landroid/content/Context;Lcom/android/internal/os/BinderCallsStats;)V
-HSPLcom/android/internal/os/BinderCallsStats$SettingsObserver;->configureLatencyObserver(Landroid/util/KeyValueListParser;Lcom/android/internal/os/BinderLatencyObserver;)V
-HSPLcom/android/internal/os/BinderCallsStats$SettingsObserver;->onChange()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;
-HSPLcom/android/internal/os/BinderCallsStats;->canCollect()Z
-HSPLcom/android/internal/os/BinderCallsStats;->getElapsedRealtimeMicro()J
-HSPLcom/android/internal/os/BinderCallsStats;->getNativeTid()I
-HSPLcom/android/internal/os/BinderCallsStats;->noteBinderThreadNativeIds()V
-HSPLcom/android/internal/os/BinderCallsStats;->noteNativeThreadId()V
-HSPLcom/android/internal/os/BinderCallsStats;->processCallEnded(Lcom/android/internal/os/BinderInternal$CallSession;III)V
-HSPLcom/android/internal/os/BinderCallsStats;->shouldRecordDetailedData()Z
-HSPLcom/android/internal/os/BinderDeathDispatcher;->linkToDeath(Landroid/os/IInterface;Landroid/os/IBinder$DeathRecipient;)I
-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
-HSPLcom/android/internal/os/BinderInternal;->forceBinderGc()V
-HSPLcom/android/internal/os/BinderInternal;->forceGc(Ljava/lang/String;)V
-HSPLcom/android/internal/os/BinderLatencyBuckets;-><init>(IIF)V
-HSPLcom/android/internal/os/BinderLatencyBuckets;->sampleToBucket(I)I
-HSPLcom/android/internal/os/BinderLatencyObserver$1;-><init>(Lcom/android/internal/os/BinderLatencyObserver;)V
-HSPLcom/android/internal/os/BinderLatencyObserver$Injector;-><init>()V
-HSPLcom/android/internal/os/BinderLatencyObserver$Injector;->getHandler()Landroid/os/Handler;
-HSPLcom/android/internal/os/BinderLatencyObserver$Injector;->getRandomGenerator()Ljava/util/Random;
-HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;-><init>(Ljava/lang/Class;I)V
-HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->create(Ljava/lang/Class;I)Lcom/android/internal/os/BinderLatencyObserver$LatencyDims;
-HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->equals(Ljava/lang/Object;)Z
-HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->getBinderClass()Ljava/lang/Class;
-HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->getTransactionCode()I
-HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->hashCode()I
-HSPLcom/android/internal/os/BinderLatencyObserver;-><init>(Lcom/android/internal/os/BinderLatencyObserver$Injector;I)V
-HSPLcom/android/internal/os/BinderLatencyObserver;->callEnded(Lcom/android/internal/os/BinderInternal$CallSession;)V
-HSPLcom/android/internal/os/BinderLatencyObserver;->getElapsedRealtimeMicro()J
-HSPLcom/android/internal/os/BinderLatencyObserver;->noteLatencyDelayed()V
-HSPLcom/android/internal/os/BinderLatencyObserver;->reset()V
-HSPLcom/android/internal/os/BinderLatencyObserver;->setHistogramBucketsParams(IIF)V
-HSPLcom/android/internal/os/BinderLatencyObserver;->setPushInterval(I)V
-HSPLcom/android/internal/os/BinderLatencyObserver;->setSamplingInterval(I)V
-HSPLcom/android/internal/os/BinderLatencyObserver;->setShardingModulo(I)V
-HSPLcom/android/internal/os/BinderLatencyObserver;->shouldCollect(Lcom/android/internal/os/BinderLatencyObserver$LatencyDims;)Z
-HSPLcom/android/internal/os/BinderLatencyObserver;->shouldKeepSample()Z
-HSPLcom/android/internal/os/CachedDeviceState$Readonly;->isCharging()Z
-HSPLcom/android/internal/os/ClassLoaderFactory;->createClassLoader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;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/util/List;Ljava/util/List;Ljava/util/List;)Ljava/lang/ClassLoader;
-HSPLcom/android/internal/os/ClassLoaderFactory;->isPathClassLoaderName(Ljava/lang/String;)Z
-HSPLcom/android/internal/os/HandlerCaller$MyHandler;-><init>(Lcom/android/internal/os/HandlerCaller;Landroid/os/Looper;Z)V
-HSPLcom/android/internal/os/HandlerCaller$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;->obtainMessage(I)Landroid/os/Message;
-HSPLcom/android/internal/os/HandlerCaller;->obtainMessageI(II)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/HandlerCaller;->obtainMessageOO(ILjava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
-HSPLcom/android/internal/os/IDropBoxManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IDropBoxManagerService;
-HSPLcom/android/internal/os/IResultReceiver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLcom/android/internal/os/IResultReceiver$Stub$Proxy;->send(ILandroid/os/Bundle;)V
-HSPLcom/android/internal/os/IResultReceiver$Stub;-><init>()V
-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;
-HSPLcom/android/internal/os/IResultReceiver$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
-HSPLcom/android/internal/os/IResultReceiver$Stub;->getMaxTransactionId()I
-HSPLcom/android/internal/os/IResultReceiver$Stub;->getTransactionName(I)Ljava/lang/String;
-HSPLcom/android/internal/os/IResultReceiver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;->nextLine()Ljava/nio/CharBuffer;
-HSPLcom/android/internal/os/KernelCpuProcStringReader;->asLongs(Ljava/nio/CharBuffer;[J)I
-HSPLcom/android/internal/os/KernelCpuProcStringReader;->isNumber(C)Z
-HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;->copyToCurTimes()V
-HSPLcom/android/internal/os/LoggingPrintStream$1;-><init>()V
-HSPLcom/android/internal/os/LoggingPrintStream;-><init>()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
-HSPLcom/android/internal/os/LooperStats;->deviceStateAllowsCollection()Z
-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/ProcStatsUtil;->readTerminatedProcFile(Ljava/lang/String;B)Ljava/lang/String;
-HSPLcom/android/internal/os/ProcTimeInStateReader;->initializeTimeInStateFormat(Ljava/nio/file/Path;)V
-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;->collectStats(Ljava/lang/String;IZ[ILjava/util/ArrayList;)[I
-HSPLcom/android/internal/os/ProcessCpuTracker;->getName(Lcom/android/internal/os/ProcessCpuTracker$Stats;Ljava/lang/String;)V
-HSPLcom/android/internal/os/ProcessCpuTracker;->onMeasureProcessName(Ljava/lang/String;)I
-HSPLcom/android/internal/os/RuntimeInit$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
-HSPLcom/android/internal/os/RuntimeInit$$ExternalSyntheticLambda1;-><init>()V
-HSPLcom/android/internal/os/RuntimeInit$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
-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
-HSPLcom/android/internal/os/RuntimeInit$LoggingHandler;-><init>()V
-HSPLcom/android/internal/os/RuntimeInit$LoggingHandler;-><init>(Lcom/android/internal/os/RuntimeInit$LoggingHandler-IA;)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[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;
-HSPLcom/android/internal/os/RuntimeInit;->getDefaultUserAgent()Ljava/lang/String;
-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
-HSPLcom/android/internal/os/SafeZipPathValidatorCallback;-><init>()V
-HSPLcom/android/internal/os/SafeZipPathValidatorCallback;->onZipEntryAccess(Ljava/lang/String;)V
-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/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;->containsInetGid([I)Z
-HSPLcom/android/internal/os/Zygote;->createManagedSocketFromInitSocket(Ljava/lang/String;)Landroid/net/LocalServerSocket;
-HSPLcom/android/internal/os/Zygote;->forkAndSpecialize(II[II[[IILjava/lang/String;Ljava/lang/String;[I[IZLjava/lang/String;Ljava/lang/String;Z[Ljava/lang/String;[Ljava/lang/String;ZZZ)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;->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;->minChildUid(Landroid/net/Credentials;)I
-HSPLcom/android/internal/os/Zygote;->setAppProcessName(Lcom/android/internal/os/ZygoteArguments;Ljava/lang/String;)V
-HSPLcom/android/internal/os/ZygoteArguments;-><init>(Lcom/android/internal/os/ZygoteCommandBuffer;I)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;->getInstance(Lcom/android/internal/os/ZygoteCommandBuffer;)Lcom/android/internal/os/ZygoteArguments;
-HSPLcom/android/internal/os/ZygoteArguments;->parseArgs(Lcom/android/internal/os/ZygoteCommandBuffer;I)V
-HSPLcom/android/internal/os/ZygoteCommandBuffer;-><init>(Landroid/net/LocalSocket;)V
-HSPLcom/android/internal/os/ZygoteCommandBuffer;-><init>([Ljava/lang/String;)V
-HSPLcom/android/internal/os/ZygoteCommandBuffer;->close()V
-HSPLcom/android/internal/os/ZygoteCommandBuffer;->getCount()I
-HSPLcom/android/internal/os/ZygoteCommandBuffer;->nextArg()Ljava/lang/String;
-HSPLcom/android/internal/os/ZygoteCommandBuffer;->setCommand([Ljava/lang/String;)V
-HSPLcom/android/internal/os/ZygoteConfig;->getDeviceConfig(Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/internal/os/ZygoteConfig;->getInt(Ljava/lang/String;I)I
-HSPLcom/android/internal/os/ZygoteConnection$$ExternalSyntheticLambda0;-><init>(II)V
-HSPLcom/android/internal/os/ZygoteConnection$$ExternalSyntheticLambda0;->run()V
-HSPLcom/android/internal/os/ZygoteConnection$$ExternalSyntheticLambda1;->run()V
-HSPLcom/android/internal/os/ZygoteConnection;-><init>(Landroid/net/LocalSocket;Ljava/lang/String;)V
-HSPLcom/android/internal/os/ZygoteConnection;->canPreloadApp()Z
-HSPLcom/android/internal/os/ZygoteConnection;->closeSocket()V
-HSPLcom/android/internal/os/ZygoteConnection;->getFileDescriptor()Ljava/io/FileDescriptor;
-HSPLcom/android/internal/os/ZygoteConnection;->handleAbiListQuery()V
-HSPLcom/android/internal/os/ZygoteConnection;->handleApiDenylistExemptions(Lcom/android/internal/os/ZygoteServer;[Ljava/lang/String;)Ljava/lang/Runnable;
-HSPLcom/android/internal/os/ZygoteConnection;->handleBootCompleted()V
-HSPLcom/android/internal/os/ZygoteConnection;->handleChildProc(Lcom/android/internal/os/ZygoteArguments;Ljava/io/FileDescriptor;Z)Ljava/lang/Runnable;
-HSPLcom/android/internal/os/ZygoteConnection;->handleHiddenApiAccessLogSampleRate(Lcom/android/internal/os/ZygoteServer;II)Ljava/lang/Runnable;
-HSPLcom/android/internal/os/ZygoteConnection;->handleParentProc(ILjava/io/FileDescriptor;)V
-HSPLcom/android/internal/os/ZygoteConnection;->isClosedByPeer()Z
-HSPLcom/android/internal/os/ZygoteConnection;->lambda$handleApiDenylistExemptions$0([Ljava/lang/String;)V
-HSPLcom/android/internal/os/ZygoteConnection;->lambda$handleHiddenApiAccessLogSampleRate$1(II)V
-HSPLcom/android/internal/os/ZygoteConnection;->processCommand(Lcom/android/internal/os/ZygoteServer;Z)Ljava/lang/Runnable;
-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;->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;->isExperimentEnabled(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;->posixCapabilitiesAsBits([I)J
-HSPLcom/android/internal/os/ZygoteInit;->preload(Landroid/util/TimingsTraceLog;)V
-HSPLcom/android/internal/os/ZygoteInit;->preloadClasses()V
-HSPLcom/android/internal/os/ZygoteInit;->preloadSharedLibraries()V
-HSPLcom/android/internal/os/ZygoteInit;->preloadTextResources()V
-HSPLcom/android/internal/os/ZygoteInit;->setApiDenylistExemptions([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;->warmUpJcaProviders()V
-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
-HSPLcom/android/internal/os/ZygoteServer;->createNewConnection(Landroid/net/LocalSocket;Ljava/lang/String;)Lcom/android/internal/os/ZygoteConnection;
-HSPLcom/android/internal/os/ZygoteServer;->fetchUsapPoolPolicyProps()V
-HSPLcom/android/internal/os/ZygoteServer;->fetchUsapPoolPolicyPropsWithMinInterval()V
-HSPLcom/android/internal/os/ZygoteServer;->getZygoteSocketFileDescriptor()Ljava/io/FileDescriptor;
-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
-HSPLcom/android/internal/policy/DecorContext;-><init>(Landroid/content/Context;Lcom/android/internal/policy/PhoneWindow;)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;+]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference;
-HSPLcom/android/internal/policy/DecorContext;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
-HSPLcom/android/internal/policy/DecorContext;->isUiContext()Z
-HSPLcom/android/internal/policy/DecorContext;->setPhoneWindow(Lcom/android/internal/policy/PhoneWindow;)V
-HSPLcom/android/internal/policy/DecorView$$ExternalSyntheticLambda0;-><init>(Lcom/android/internal/policy/DecorView;)V
-HSPLcom/android/internal/policy/DecorView$2;->getPadding(Landroid/graphics/Rect;)Z
-HSPLcom/android/internal/policy/DecorView$3;-><init>(Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView$ColorViewState;)V
-HSPLcom/android/internal/policy/DecorView$3;->run()V
-HSPLcom/android/internal/policy/DecorView$ColorViewAttributes;->isPresent(ZIZ)Z
-HSPLcom/android/internal/policy/DecorView$ColorViewAttributes;->isVisible(ZIIZ)Z
-HSPLcom/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;->calculateNavigationBarColor(I)I+]Lcom/android/internal/policy/PhoneWindow;Lcom/android/internal/policy/PhoneWindow;
-HSPLcom/android/internal/policy/DecorView;->calculateStatusBarColor(I)I+]Lcom/android/internal/policy/PhoneWindow;Lcom/android/internal/policy/PhoneWindow;
-HSPLcom/android/internal/policy/DecorView;->createDecorCaptionView(Landroid/view/LayoutInflater;)Lcom/android/internal/widget/DecorCaptionView;
-HSPLcom/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;->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
-HSPLcom/android/internal/policy/DecorView;->gatherTransparentRegion(Landroid/graphics/Region;)Z
-HSPLcom/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;
-HSPLcom/android/internal/policy/DecorView;->getCaptionHeight()I
-HSPLcom/android/internal/policy/DecorView;->getCaptionInsetsHeight()I
-HSPLcom/android/internal/policy/DecorView;->getNavBarSize(III)I
-HSPLcom/android/internal/policy/DecorView;->getResources()Landroid/content/res/Resources;+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView;]Landroid/content/Context;Landroid/view/ContextThemeWrapper;,Lcom/android/internal/policy/DecorContext;
-HSPLcom/android/internal/policy/DecorView;->getTitleSuffix(Landroid/view/WindowManager$LayoutParams;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Ljava/lang/CharSequence;Ljava/lang/String;
-HSPLcom/android/internal/policy/DecorView;->getWindowInsetsController()Landroid/view/WindowInsetsController;+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView;
-HSPLcom/android/internal/policy/DecorView;->initializeElevation()V
-HSPLcom/android/internal/policy/DecorView;->isNavBarToLeftEdge(II)Z
-HSPLcom/android/internal/policy/DecorView;->isNavBarToRightEdge(II)Z
-HSPLcom/android/internal/policy/DecorView;->isResizing()Z
-HSPLcom/android/internal/policy/DecorView;->isShowingCaption()Z
-HSPLcom/android/internal/policy/DecorView;->onApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
-HSPLcom/android/internal/policy/DecorView;->onAttachedToWindow()V
-HSPLcom/android/internal/policy/DecorView;->onCloseSystemDialogs(Ljava/lang/String;)V
-HSPLcom/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+]Lcom/android/internal/widget/BackgroundFallback;Lcom/android/internal/widget/BackgroundFallback;
-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+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView;]Landroid/content/Context;Landroid/view/ContextThemeWrapper;,Lcom/android/internal/policy/DecorContext;]Landroid/content/res/Resources;Landroid/content/res/Resources;
-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;->onSystemBarAppearanceChanged(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
-HSPLcom/android/internal/policy/DecorView;->providePendingInsetsController()Landroid/view/PendingInsetsController;
-HSPLcom/android/internal/policy/DecorView;->releaseThreadedRenderer()V
-HSPLcom/android/internal/policy/DecorView;->removeBackgroundBlurDrawable()V
-HSPLcom/android/internal/policy/DecorView;->sendAccessibilityEvent(I)V
-HSPLcom/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+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/ColorDrawable;
-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
-HSPLcom/android/internal/policy/DecorView;->superDispatchKeyEvent(Landroid/view/KeyEvent;)Z
-HSPLcom/android/internal/policy/DecorView;->superDispatchTouchEvent(Landroid/view/MotionEvent;)Z
-HSPLcom/android/internal/policy/DecorView;->updateBackgroundBlurRadius()V
-HSPLcom/android/internal/policy/DecorView;->updateBackgroundDrawable()V+]Landroid/graphics/Insets;Landroid/graphics/Insets;
-HSPLcom/android/internal/policy/DecorView;->updateColorViewInt(Lcom/android/internal/policy/DecorView$ColorViewState;IIIZZIZZI)V+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView;]Lcom/android/internal/policy/PhoneWindow;Lcom/android/internal/policy/PhoneWindow;]Landroid/view/View;Landroid/view/View;]Landroid/view/ViewPropertyAnimator;Landroid/view/ViewPropertyAnimator;]Lcom/android/internal/policy/DecorView$ColorViewAttributes;Lcom/android/internal/policy/DecorView$ColorViewAttributes;
-HSPLcom/android/internal/policy/DecorView;->updateColorViewTranslations()V
-HSPLcom/android/internal/policy/DecorView;->updateColorViews(Landroid/view/WindowInsets;Z)Landroid/view/WindowInsets;+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView;]Lcom/android/internal/policy/PhoneWindow;Lcom/android/internal/policy/PhoneWindow;]Landroid/view/ViewGroup;Landroid/widget/LinearLayout;]Landroid/view/WindowInsetsController;Landroid/view/InsetsController;,Landroid/view/PendingInsetsController;]Landroid/view/WindowInsets;Landroid/view/WindowInsets;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
-HSPLcom/android/internal/policy/DecorView;->updateDecorCaptionStatus(Landroid/content/res/Configuration;)V
-HSPLcom/android/internal/policy/DecorView;->updateElevation()V+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;
-HSPLcom/android/internal/policy/DecorView;->updateLogTag(Landroid/view/WindowManager$LayoutParams;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;
-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/GestureNavigationSettingsObserver$1;-><init>(Lcom/android/internal/policy/GestureNavigationSettingsObserver;)V
-HSPLcom/android/internal/policy/GestureNavigationSettingsObserver;-><init>(Landroid/os/Handler;Landroid/content/Context;Ljava/lang/Runnable;)V
-HSPLcom/android/internal/policy/GestureNavigationSettingsObserver;->areNavigationButtonForcedVisible()Z
-HSPLcom/android/internal/policy/GestureNavigationSettingsObserver;->getLeftSensitivity(Landroid/content/res/Resources;)I
-HSPLcom/android/internal/policy/GestureNavigationSettingsObserver;->getRightSensitivity(Landroid/content/res/Resources;)I
-HSPLcom/android/internal/policy/IKeyguardLockedStateListener$Stub;-><init>()V
-HSPLcom/android/internal/policy/PhoneFallbackEventHandler;-><init>(Landroid/content/Context;)V
-HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z
-HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->getAudioManager()Landroid/media/AudioManager;
-HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->onKeyDown(ILandroid/view/KeyEvent;)Z
-HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->onKeyUp(ILandroid/view/KeyEvent;)Z
-HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->preDispatchKeyEvent(Landroid/view/KeyEvent;)V
-HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->setView(Landroid/view/View;)V
-HSPLcom/android/internal/policy/PhoneLayoutInflater;-><init>(Landroid/content/Context;)V
-HSPLcom/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;
-HSPLcom/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;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState;-><init>(I)V
-HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState;->onSaveInstanceState()Landroid/os/Parcelable;
-HSPLcom/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;->alwaysReadCloseOnTouchAttr()V
-HSPLcom/android/internal/policy/PhoneWindow;->applyDecorFitsSystemWindows()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+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView;
-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
-HSPLcom/android/internal/policy/PhoneWindow;->getOnBackInvokedDispatcher()Landroid/window/OnBackInvokedDispatcher;
-HSPLcom/android/internal/policy/PhoneWindow;->getPanelState(IZ)Lcom/android/internal/policy/PhoneWindow$PanelFeatureState;
-HSPLcom/android/internal/policy/PhoneWindow;->getPanelState(IZLcom/android/internal/policy/PhoneWindow$PanelFeatureState;)Lcom/android/internal/policy/PhoneWindow$PanelFeatureState;
-HSPLcom/android/internal/policy/PhoneWindow;->getTransition(Landroid/transition/Transition;Landroid/transition/Transition;I)Landroid/transition/Transition;
-HSPLcom/android/internal/policy/PhoneWindow;->getViewRootImplOrNull()Landroid/view/ViewRootImpl;
-HSPLcom/android/internal/policy/PhoneWindow;->getVolumeControlStream()I
-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;->lambda$static$0(Landroid/view/View;Landroid/view/WindowInsets;)Landroid/util/Pair;
-HSPLcom/android/internal/policy/PhoneWindow;->onActive()V
-HSPLcom/android/internal/policy/PhoneWindow;->onConfigurationChanged(Landroid/content/res/Configuration;)V
-HSPLcom/android/internal/policy/PhoneWindow;->onDestroy()V
-HSPLcom/android/internal/policy/PhoneWindow;->onKeyDown(IILandroid/view/KeyEvent;)Z
-HSPLcom/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;
-HSPLcom/android/internal/policy/PhoneWindow;->requestFeature(I)Z
-HSPLcom/android/internal/policy/PhoneWindow;->restoreHierarchyState(Landroid/os/Bundle;)V
-HSPLcom/android/internal/policy/PhoneWindow;->saveHierarchyState()Landroid/os/Bundle;
-HSPLcom/android/internal/policy/PhoneWindow;->setAttributes(Landroid/view/WindowManager$LayoutParams;)V+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView;
-HSPLcom/android/internal/policy/PhoneWindow;->setBackgroundBlurRadius(I)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
-HSPLcom/android/internal/policy/PhoneWindow;->setDecorFitsSystemWindows(Z)V
-HSPLcom/android/internal/policy/PhoneWindow;->setDefaultWindowFormat(I)V
-HSPLcom/android/internal/policy/PhoneWindow;->setNavigationBarColor(I)V
-HSPLcom/android/internal/policy/PhoneWindow;->setNavigationBarContrastEnforced(Z)V
-HSPLcom/android/internal/policy/PhoneWindow;->setNavigationBarDividerColor(I)V
-HSPLcom/android/internal/policy/PhoneWindow;->setStatusBarColor(I)V
-HSPLcom/android/internal/policy/PhoneWindow;->setTheme(I)V
-HSPLcom/android/internal/policy/PhoneWindow;->setTitle(Ljava/lang/CharSequence;)V
-HSPLcom/android/internal/policy/PhoneWindow;->setTitle(Ljava/lang/CharSequence;Z)V
-HSPLcom/android/internal/policy/PhoneWindow;->setTitleColor(I)V
-HSPLcom/android/internal/policy/PhoneWindow;->setVolumeControlStream(I)V
-HSPLcom/android/internal/policy/PhoneWindow;->superDispatchKeyEvent(Landroid/view/KeyEvent;)Z
-HSPLcom/android/internal/policy/PhoneWindow;->superDispatchTouchEvent(Landroid/view/MotionEvent;)Z
-HSPLcom/android/internal/policy/ScreenDecorationsUtils;->supportsRoundedCornersOnWindows(Landroid/content/res/Resources;)Z
-HSPLcom/android/internal/statusbar/IStatusBarService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/statusbar/IStatusBarService;
-HSPLcom/android/internal/statusbar/NotificationVisibility;->recycle()V
-HSPLcom/android/internal/telecom/ClientTransactionalServiceRepository;-><clinit>()V
-HSPLcom/android/internal/telecom/ClientTransactionalServiceRepository;-><init>()V
-HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallState()I
-HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallStateUsingPackage(Ljava/lang/String;Ljava/lang/String;)I
-HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCurrentTtyMode(Ljava/lang/String;Ljava/lang/String;)I
-HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->isInCall(Ljava/lang/String;Ljava/lang/String;)Z
-HSPLcom/android/internal/telecom/ITelecomService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/ITelecomService;
-HSPLcom/android/internal/telecom/IVideoProvider$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/IVideoProvider;
-HSPLcom/android/internal/telephony/CarrierAppUtils$AssociatedAppInfo;-><init>(Landroid/content/pm/ApplicationInfo;I)V
-HSPLcom/android/internal/telephony/CarrierAppUtils;->disableCarrierAppsUntilPrivileged(Ljava/lang/String;Landroid/telephony/TelephonyManager;Landroid/content/ContentResolver;ILjava/util/Set;Ljava/util/Map;Landroid/content/Context;)V
-HSPLcom/android/internal/telephony/CarrierAppUtils;->getApplicationInfoIfSystemApp(ILjava/lang/String;Landroid/content/Context;)Landroid/content/pm/ApplicationInfo;
-HSPLcom/android/internal/telephony/CarrierAppUtils;->getContentResolverForUser(Landroid/content/Context;I)Landroid/content/ContentResolver;
-HSPLcom/android/internal/telephony/CarrierAppUtils;->getDefaultCarrierAppCandidatesHelper(ILjava/util/Set;Landroid/content/Context;)Ljava/util/List;
-HSPLcom/android/internal/telephony/CarrierAppUtils;->getDefaultCarrierAssociatedAppsHelper(ILjava/util/Map;Landroid/content/Context;)Ljava/util/Map;
-HSPLcom/android/internal/telephony/CarrierAppUtils;->isUpdatedSystemApp(Landroid/content/pm/ApplicationInfo;)Z
-HSPLcom/android/internal/telephony/CellBroadcastUtils;->getDefaultCellBroadcastReceiverPackageName(Landroid/content/Context;)Ljava/lang/String;
-HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;->getConfigForSubIdWithFeature(ILjava/lang/String;Ljava/lang/String;)Landroid/os/PersistableBundle;
-HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ICarrierConfigLoader;
-HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;-><init>()V
-HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->getMaxTransactionId()I
-HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;-><init>()V
-HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
-HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->getMaxTransactionId()I
-HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->getTransactionName(I)Ljava/lang/String;
-HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getGroupIdLevel1ForSubscriber(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getIccSerialNumberForSubscriber(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/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;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IPhoneSubInfo;
-HSPLcom/android/internal/telephony/ISms$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/telephony/ISub$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-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;->getActiveSubInfoCountMax()I
-HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubscriptionInfo(ILjava/lang/String;Ljava/lang/String;)Landroid/telephony/SubscriptionInfo;
-HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubscriptionInfoForSimSlotIndex(ILjava/lang/String;Ljava/lang/String;)Landroid/telephony/SubscriptionInfo;
-HSPLcom/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;->getDefaultSubIdAsUser(I)I
-HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultVoiceSubId()I
-HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getPhoneId(I)I
-HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getSlotIndex(I)I
-HSPLcom/android/internal/telephony/ISub$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ISub;
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-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;->getCardIdForDefaultEuicc(ILjava/lang/String;)I
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCarrierPrivilegeStatus(I)I
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDataNetworkTypeForSubscriber(ILjava/lang/String;Ljava/lang/String;)I
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDeviceIdWithFeature(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getImeiForSlot(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getLine1NumberForDisplay(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getMeidForSlot(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkCountryIsoForPhone(I)Ljava/lang/String;
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkTypeForSubscriber(ILjava/lang/String;Ljava/lang/String;)I
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSignalStrength(I)Landroid/telephony/SignalStrength;
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSimStateForSlotIndex(I)I
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSubscriptionCarrierId(I)I
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSubscriptionSpecificCarrierId(I)I
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getVoiceNetworkTypeForSubscriber(ILjava/lang/String;Ljava/lang/String;)I
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->isDataEnabledForReason(II)Z
-HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->isEmergencyNumber(Ljava/lang/String;Z)Z
-HSPLcom/android/internal/telephony/ITelephony$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ITelephony;
-HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;-><init>(Landroid/os/IBinder;)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;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->listenWithEventList(ZZILjava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;[IZ)V
-HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ITelephonyRegistry;
-HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->-$$Nest$fgetmSmsReceiverClass(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;)Ljava/lang/String;
-HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;-><init>(Ljava/lang/String;I)V
-HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->isComplete()Z
-HSPLcom/android/internal/telephony/SmsApplication;->getApplication(Landroid/content/Context;ZI)Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;
-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;
-HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsApplication(Landroid/content/Context;Z)Landroid/content/ComponentName;
-HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsApplicationAsUser(Landroid/content/Context;ZLandroid/os/UserHandle;)Landroid/content/ComponentName;
-HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsPackage(Landroid/content/Context;I)Ljava/lang/String;
-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;->checkCallingOrSelfReadPhoneState(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
-HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfUseIccAuthWithDeviceIdentifier(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
-HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCarrierPrivilegeForSubId(Landroid/content/Context;I)Z
-HSPLcom/android/internal/telephony/TelephonyPermissions;->checkReadPhoneState(Landroid/content/Context;IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
-HSPLcom/android/internal/telephony/TelephonyPermissions;->getCarrierPrivilegeStatus(Landroid/content/Context;II)I
-HSPLcom/android/internal/telephony/TelephonyPermissions;->reportAccessDeniedToReadIdentifiers(Landroid/content/Context;IIILjava/lang/String;Ljava/lang/String;)Z
-HSPLcom/android/internal/telephony/uicc/IccUtils;->bytesToHexString([B)Ljava/lang/String;
-HSPLcom/android/internal/telephony/util/HandlerExecutor;-><init>(Landroid/os/Handler;)V
-HSPLcom/android/internal/telephony/util/HandlerExecutor;->execute(Ljava/lang/Runnable;)V
-HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->onClose()V
-HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->onGetSentenceSuggestionsMultiple([Landroid/view/textservice/TextInfo;I)V
-HSPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->finishSpellCheckerService(ILcom/android/internal/textservice/ISpellCheckerSessionListener;)V
-HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getCurrentSpellChecker(ILjava/lang/String;)Landroid/view/textservice/SpellCheckerInfo;
-HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getCurrentSpellCheckerSubtype(IZ)Landroid/view/textservice/SpellCheckerSubtype;
-HSPLcom/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;I)V
-HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->isSpellCheckerEnabled(I)Z
-HSPLcom/android/internal/textservice/ITextServicesSessionListener$Stub;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/textservice/ITextServicesSessionListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;ILjava/lang/String;J)V
-HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;ILjava/lang/String;JLjava/lang/String;J)V
-HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/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/AnnotationValidations;->validate(Ljava/lang/Class;Ljava/lang/annotation/Annotation;I)V
-HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Ljava/lang/annotation/Annotation;J)V
-HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Ljava/lang/annotation/Annotation;Ljava/lang/Object;)V
-HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Ljava/lang/annotation/Annotation;Ljava/lang/Object;[Ljava/lang/Object;)V
-HSPLcom/android/internal/util/ArrayUtils;->appendElement(Ljava/lang/Class;[Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
-HSPLcom/android/internal/util/ArrayUtils;->appendElement(Ljava/lang/Class;[Ljava/lang/Object;Ljava/lang/Object;Z)[Ljava/lang/Object;
-HSPLcom/android/internal/util/ArrayUtils;->appendInt([IIZ)[I
-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;->containsAny([Ljava/lang/Object;[Ljava/lang/Object;)Z
-HSPLcom/android/internal/util/ArrayUtils;->convertToIntArray(Ljava/util/List;)[I
-HSPLcom/android/internal/util/ArrayUtils;->deepToString(Ljava/lang/Object;)Ljava/lang/String;
-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;+]Ljava/lang/Object;Ljava/lang/Class;]Ljava/lang/Class;Ljava/lang/Class;
-HSPLcom/android/internal/util/ArrayUtils;->emptyIfNull([Ljava/lang/Object;Ljava/lang/Class;)[Ljava/lang/Object;
-HSPLcom/android/internal/util/ArrayUtils;->filter([Ljava/lang/Object;Ljava/util/function/IntFunction;Ljava/util/function/Predicate;)[Ljava/lang/Object;
-HSPLcom/android/internal/util/ArrayUtils;->getOrNull([Ljava/lang/Object;I)Ljava/lang/Object;
-HSPLcom/android/internal/util/ArrayUtils;->indexOf([Ljava/lang/Object;Ljava/lang/Object;)I
-HSPLcom/android/internal/util/ArrayUtils;->isEmpty(Ljava/util/Collection;)Z
-HSPLcom/android/internal/util/ArrayUtils;->isEmpty([I)Z
-HSPLcom/android/internal/util/ArrayUtils;->isEmpty([Ljava/lang/Object;)Z
-HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedArray(Ljava/lang/Class;I)[Ljava/lang/Object;+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime;
-HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedBooleanArray(I)[Z
-HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedByteArray(I)[B
-HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedCharArray(I)[C+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime;
-HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedFloatArray(I)[F
-HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedIntArray(I)[I+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime;
-HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedLongArray(I)[J
-HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedObjectArray(I)[Ljava/lang/Object;+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime;
-HSPLcom/android/internal/util/ArrayUtils;->remove(Ljava/util/ArrayList;Ljava/lang/Object;)Ljava/util/ArrayList;
-HSPLcom/android/internal/util/ArrayUtils;->removeElement(Ljava/lang/Class;[Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
-HSPLcom/android/internal/util/ArrayUtils;->size([Ljava/lang/Object;)I
-HSPLcom/android/internal/util/ArrayUtils;->throwsIfOutOfBounds(III)V
-HSPLcom/android/internal/util/ArrayUtils;->unstableRemoveIf(Ljava/util/ArrayList;Ljava/util/function/Predicate;)I
-HSPLcom/android/internal/util/AsyncChannel;-><init>()V
-HSPLcom/android/internal/util/AsyncChannel;->connected(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)V
-HSPLcom/android/internal/util/AsyncChannel;->sendMessage(Landroid/os/Message;)V
-HSPLcom/android/internal/util/BitUtils;->packBits([I)J
-HSPLcom/android/internal/util/BitUtils;->unpackBits(J)[I
-HSPLcom/android/internal/util/CollectionUtils;->add(Ljava/util/List;Ljava/lang/Object;)Ljava/util/List;
-HSPLcom/android/internal/util/CollectionUtils;->emptyIfNull(Ljava/util/Set;)Ljava/util/Set;
-HSPLcom/android/internal/util/CollectionUtils;->firstOrNull(Ljava/util/List;)Ljava/lang/Object;
-HSPLcom/android/internal/util/CollectionUtils;->isEmpty(Ljava/util/Collection;)Z
-HSPLcom/android/internal/util/CollectionUtils;->size(Ljava/util/Collection;)I
-HSPLcom/android/internal/util/CollectionUtils;->size(Ljava/util/Map;)I
-HSPLcom/android/internal/util/ConcurrentUtils$DirectExecutor;->execute(Ljava/lang/Runnable;)V
-HSPLcom/android/internal/util/ExponentiallyBucketedHistogram;-><init>(I)V
-HSPLcom/android/internal/util/ExponentiallyBucketedHistogram;->add(I)V
-HSPLcom/android/internal/util/ExponentiallyBucketedHistogram;->log(Ljava/lang/String;Ljava/lang/CharSequence;)V
-HSPLcom/android/internal/util/FastMath;->round(F)I
-HSPLcom/android/internal/util/FastPrintWriter$DummyWriter;-><init>()V
-HSPLcom/android/internal/util/FastPrintWriter$DummyWriter;-><init>(Lcom/android/internal/util/FastPrintWriter$DummyWriter-IA;)V
-HSPLcom/android/internal/util/FastPrintWriter;-><init>(Ljava/io/OutputStream;)V
-HSPLcom/android/internal/util/FastPrintWriter;-><init>(Ljava/io/OutputStream;ZI)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
-HSPLcom/android/internal/util/FastPrintWriter;->appendLocked([CII)V
-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
-HSPLcom/android/internal/util/FastPrintWriter;->println()V
-HSPLcom/android/internal/util/FastPrintWriter;->write(I)V
-HSPLcom/android/internal/util/FastPrintWriter;->write(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;
-HSPLcom/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(C)V
-HSPLcom/android/internal/util/FastXmlSerializer;->append(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;
-HSPLcom/android/internal/util/FastXmlSerializer;->append(Ljava/lang/String;II)V+]Ljava/lang/String;Ljava/lang/String;]Lcom/android/internal/util/FastXmlSerializer;Lcom/android/internal/util/FastXmlSerializer;
-HSPLcom/android/internal/util/FastXmlSerializer;->appendIndent(I)V+]Ljava/lang/String;Ljava/lang/String;
-HSPLcom/android/internal/util/FastXmlSerializer;->attribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
-HSPLcom/android/internal/util/FastXmlSerializer;->endDocument()V
-HSPLcom/android/internal/util/FastXmlSerializer;->endTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
-HSPLcom/android/internal/util/FastXmlSerializer;->escapeAndAppendString(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;
-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
-HSPLcom/android/internal/util/FastXmlSerializer;->startDocument(Ljava/lang/String;Ljava/lang/Boolean;)V
-HSPLcom/android/internal/util/FastXmlSerializer;->startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
-HSPLcom/android/internal/util/FastXmlSerializer;->text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
-HSPLcom/android/internal/util/FrameworkStatsLog;->write(III)V
-HSPLcom/android/internal/util/FrameworkStatsLog;->write(IIII)V
-HSPLcom/android/internal/util/FrameworkStatsLog;->write(IIILjava/lang/String;I)V
-HSPLcom/android/internal/util/FrameworkStatsLog;->write(IIJII)V
-HSPLcom/android/internal/util/FrameworkStatsLog;->write(IILjava/lang/String;IZ)V
-HSPLcom/android/internal/util/FrameworkStatsLog;->write(ILjava/lang/String;I)V
-HSPLcom/android/internal/util/FrameworkStatsLog;->write(ILjava/lang/String;IIF)V
-HSPLcom/android/internal/util/GrowingArrayUtils;->append([III)[I
-HSPLcom/android/internal/util/GrowingArrayUtils;->append([JIJ)[J
-HSPLcom/android/internal/util/GrowingArrayUtils;->append([Ljava/lang/Object;ILjava/lang/Object;)[Ljava/lang/Object;+]Ljava/lang/Object;missing_types]Ljava/lang/Class;Ljava/lang/Class;
-HSPLcom/android/internal/util/GrowingArrayUtils;->append([ZIZ)[Z
-HSPLcom/android/internal/util/GrowingArrayUtils;->growSize(I)I
-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;+]Ljava/lang/Object;[Ljava/lang/Object;]Ljava/lang/Class;Ljava/lang/Class;
-HSPLcom/android/internal/util/GrowingArrayUtils;->insert([ZIIZ)[Z
-HSPLcom/android/internal/util/IndentingPrintWriter;->decreaseIndent()Lcom/android/internal/util/IndentingPrintWriter;
-HSPLcom/android/internal/util/IndentingPrintWriter;->increaseIndent()Lcom/android/internal/util/IndentingPrintWriter;
-HSPLcom/android/internal/util/IndentingPrintWriter;->printPair(Ljava/lang/String;Ljava/lang/Object;)Lcom/android/internal/util/IndentingPrintWriter;
-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/LatencyTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/internal/util/LatencyTracker;I)V
-HSPLcom/android/internal/util/LatencyTracker$Session;-><init>(ILjava/lang/String;)V
-HSPLcom/android/internal/util/LatencyTracker$Session;->begin(Ljava/lang/Runnable;)V
-HSPLcom/android/internal/util/LatencyTracker$Session;->traceName()Ljava/lang/String;
-HSPLcom/android/internal/util/LatencyTracker;->-$$Nest$smgetTraceNameOfAction(ILjava/lang/String;)Ljava/lang/String;
-HSPLcom/android/internal/util/LatencyTracker;-><init>()V
-HSPLcom/android/internal/util/LatencyTracker;->getInstance(Landroid/content/Context;)Lcom/android/internal/util/LatencyTracker;
-HSPLcom/android/internal/util/LatencyTracker;->getNameOfAction(I)Ljava/lang/String;
-HSPLcom/android/internal/util/LatencyTracker;->getTraceNameOfAction(ILjava/lang/String;)Ljava/lang/String;
-HSPLcom/android/internal/util/LatencyTracker;->isEnabled()Z
-HSPLcom/android/internal/util/LatencyTracker;->logAction(II)V
-HSPLcom/android/internal/util/LatencyTracker;->onActionEnd(I)V
-HSPLcom/android/internal/util/LatencyTracker;->onActionStart(ILjava/lang/String;)V
-HSPLcom/android/internal/util/LatencyTracker;->updateProperties(Landroid/provider/DeviceConfig$Properties;)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;->ensureCapacity(I)V
-HSPLcom/android/internal/util/LineBreakBufferedWriter;->flush()V
-HSPLcom/android/internal/util/LineBreakBufferedWriter;->println()V
-HSPLcom/android/internal/util/LineBreakBufferedWriter;->write(Ljava/lang/String;II)V+]Ljava/lang/String;Ljava/lang/String;
-HSPLcom/android/internal/util/LineBreakBufferedWriter;->writeBuffer(I)V
-HSPLcom/android/internal/util/MemInfoReader;-><init>()V
-HSPLcom/android/internal/util/MemInfoReader;->getTotalSize()J
-HSPLcom/android/internal/util/MemInfoReader;->readMemInfo()V
-HSPLcom/android/internal/util/MessageUtils;->findMessageNames([Ljava/lang/Class;[Ljava/lang/String;)Landroid/util/SparseArray;
-HSPLcom/android/internal/util/NotificationMessagingUtil;->isImportantMessaging(Landroid/service/notification/StatusBarNotification;I)Z
-HSPLcom/android/internal/util/Parcelling$BuiltIn$ForBoolean;-><init>()V
-HSPLcom/android/internal/util/Parcelling$BuiltIn$ForBoolean;->parcel(Ljava/lang/Boolean;Landroid/os/Parcel;I)V
-HSPLcom/android/internal/util/Parcelling$BuiltIn$ForBoolean;->unparcel(Landroid/os/Parcel;)Ljava/lang/Boolean;
-HSPLcom/android/internal/util/Parcelling$BuiltIn$ForInternedString;-><init>()V
-HSPLcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringArray;-><init>()V
-HSPLcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringList;-><init>()V
-HSPLcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringValueMap;-><init>()V
-HSPLcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;-><init>()V
-HSPLcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;->parcel(Ljava/util/Set;Landroid/os/Parcel;I)V
-HSPLcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;->unparcel(Landroid/os/Parcel;)Ljava/util/Set;
-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/Preconditions;->checkArgument(Z)V
-HSPLcom/android/internal/util/Preconditions;->checkArgument(ZLjava/lang/Object;)V
-HSPLcom/android/internal/util/Preconditions;->checkArgument(ZLjava/lang/String;[Ljava/lang/Object;)V
-HSPLcom/android/internal/util/Preconditions;->checkArgumentInRange(FFFLjava/lang/String;)F
-HSPLcom/android/internal/util/Preconditions;->checkArgumentInRange(IIILjava/lang/String;)I
-HSPLcom/android/internal/util/Preconditions;->checkArgumentInRange(JJJLjava/lang/String;)J
-HSPLcom/android/internal/util/Preconditions;->checkArgumentNonnegative(I)I
-HSPLcom/android/internal/util/Preconditions;->checkArgumentNonnegative(ILjava/lang/String;)I
-HSPLcom/android/internal/util/Preconditions;->checkArgumentNonnegative(J)J
-HSPLcom/android/internal/util/Preconditions;->checkArgumentNonnegative(JLjava/lang/String;)J
-HSPLcom/android/internal/util/Preconditions;->checkArgumentPositive(ILjava/lang/String;)I
-HSPLcom/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;
-HSPLcom/android/internal/util/Preconditions;->checkNotNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-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/ProcFileReader;->finishLine()V
-HSPLcom/android/internal/util/ScreenshotHelper;-><init>(Landroid/content/Context;)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/State;->enter()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
-HSPLcom/android/internal/util/StateMachine$LogRecords;->logOnlyTransitions()Z
-HSPLcom/android/internal/util/StateMachine$SmHandler;-><init>(Landroid/os/Looper;Lcom/android/internal/util/StateMachine;)V
-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
-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;->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;
-HSPLcom/android/internal/util/StateMachine$SmHandler;->setInitialState(Lcom/android/internal/util/State;)V
-HSPLcom/android/internal/util/StateMachine$SmHandler;->setupInitialStateStack()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;->initStateMachine(Ljava/lang/String;Landroid/os/Looper;)V
-HSPLcom/android/internal/util/StateMachine;->recordLogRec(Landroid/os/Message;)Z
-HSPLcom/android/internal/util/StateMachine;->setInitialState(Lcom/android/internal/util/State;)V
-HSPLcom/android/internal/util/StateMachine;->start()V
-HSPLcom/android/internal/util/StringPool;-><init>()V
-HSPLcom/android/internal/util/StringPool;->get([CII)Ljava/lang/String;
-HSPLcom/android/internal/util/SyncResultReceiver;-><init>(I)V
-HSPLcom/android/internal/util/SyncResultReceiver;->getIntResult()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/TraceBuffer$ProtoOutputStreamProvider;-><init>()V
-HSPLcom/android/internal/util/TraceBuffer;-><init>(ILcom/android/internal/util/TraceBuffer$ProtoProvider;Ljava/util/function/Consumer;)V
-HSPLcom/android/internal/util/TraceBuffer;->resetBuffer()V
-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/XmlPullParserWrapper;-><init>(Lorg/xmlpull/v1/XmlPullParser;)V
-HSPLcom/android/internal/util/XmlPullParserWrapper;->getAttributeCount()I
-HSPLcom/android/internal/util/XmlPullParserWrapper;->getAttributeName(I)Ljava/lang/String;
-HSPLcom/android/internal/util/XmlPullParserWrapper;->getAttributeValue(I)Ljava/lang/String;
-HSPLcom/android/internal/util/XmlPullParserWrapper;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/internal/util/XmlPullParserWrapper;->getEventType()I
-HSPLcom/android/internal/util/XmlPullParserWrapper;->getName()Ljava/lang/String;
-HSPLcom/android/internal/util/XmlPullParserWrapper;->getText()Ljava/lang/String;
-HSPLcom/android/internal/util/XmlPullParserWrapper;->next()I
-HSPLcom/android/internal/util/XmlPullParserWrapper;->setInput(Ljava/io/InputStream;Ljava/lang/String;)V
-HSPLcom/android/internal/util/XmlSerializerWrapper;-><init>(Lorg/xmlpull/v1/XmlSerializer;)V
-HSPLcom/android/internal/util/XmlSerializerWrapper;->attribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
-HSPLcom/android/internal/util/XmlSerializerWrapper;->endDocument()V
-HSPLcom/android/internal/util/XmlSerializerWrapper;->endTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
-HSPLcom/android/internal/util/XmlSerializerWrapper;->setFeature(Ljava/lang/String;Z)V
-HSPLcom/android/internal/util/XmlSerializerWrapper;->setOutput(Ljava/io/OutputStream;Ljava/lang/String;)V
-HSPLcom/android/internal/util/XmlSerializerWrapper;->startDocument(Ljava/lang/String;Ljava/lang/Boolean;)V
-HSPLcom/android/internal/util/XmlSerializerWrapper;->startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
-HSPLcom/android/internal/util/XmlSerializerWrapper;->text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
-HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;-><init>(Lorg/xmlpull/v1/XmlPullParser;)V
-HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;->getAttributeBoolean(I)Z
-HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;->getAttributeFloat(I)F
-HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;->getAttributeInt(I)I
-HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;->getAttributeLong(I)J
-HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;-><init>(Lorg/xmlpull/v1/XmlSerializer;)V
-HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;->attributeBoolean(Ljava/lang/String;Ljava/lang/String;Z)Lorg/xmlpull/v1/XmlSerializer;
-HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;->attributeFloat(Ljava/lang/String;Ljava/lang/String;F)Lorg/xmlpull/v1/XmlSerializer;
-HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;->attributeInt(Ljava/lang/String;Ljava/lang/String;I)Lorg/xmlpull/v1/XmlSerializer;
-HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;->attributeLong(Ljava/lang/String;Ljava/lang/String;J)Lorg/xmlpull/v1/XmlSerializer;
-HSPLcom/android/internal/util/XmlUtils;->beginDocument(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)V
-HSPLcom/android/internal/util/XmlUtils;->makeTyped(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/modules/utils/TypedXmlPullParser;
-HSPLcom/android/internal/util/XmlUtils;->makeTyped(Lorg/xmlpull/v1/XmlSerializer;)Lcom/android/modules/utils/TypedXmlSerializer;
-HSPLcom/android/internal/util/XmlUtils;->nextElement(Lorg/xmlpull/v1/XmlPullParser;)V
-HSPLcom/android/internal/util/XmlUtils;->nextElementWithin(Lorg/xmlpull/v1/XmlPullParser;I)Z
-HSPLcom/android/internal/util/XmlUtils;->readBooleanAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
-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;->readThisMapXml(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;)Ljava/util/HashMap;+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Object;Ljava/lang/String;]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;
-HSPLcom/android/internal/util/XmlUtils;->readThisPrimitiveValueXml(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)Ljava/lang/Object;+]Ljava/lang/Object;Ljava/lang/String;]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;
-HSPLcom/android/internal/util/XmlUtils;->readThisSetXml(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;Z)Ljava/util/HashSet;
-HSPLcom/android/internal/util/XmlUtils;->readThisValueXml(Lcom/android/modules/utils/TypedXmlPullParser;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;Z)Ljava/lang/Object;+]Ljava/lang/Object;Ljava/lang/String;]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/internal/util/XmlUtils$ReadMapCallback;Landroid/os/PersistableBundle$MyReadMapCallback;
-HSPLcom/android/internal/util/XmlUtils;->readValueXml(Lcom/android/modules/utils/TypedXmlPullParser;[Ljava/lang/String;)Ljava/lang/Object;
-HSPLcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
-HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)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;Lcom/android/modules/utils/TypedXmlSerializer;)V
-HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Ljava/lang/String;Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V
-HSPLcom/android/internal/util/XmlUtils;->writeSetXml(Ljava/util/Set;Ljava/lang/String;Lcom/android/modules/utils/TypedXmlSerializer;)V
-HSPLcom/android/internal/util/XmlUtils;->writeValueXml(Ljava/lang/Object;Ljava/lang/String;Lcom/android/modules/utils/TypedXmlSerializer;)V
-HSPLcom/android/internal/util/XmlUtils;->writeValueXml(Ljava/lang/Object;Ljava/lang/String;Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V+]Ljava/lang/Integer;Ljava/lang/Integer;]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;]Ljava/lang/Object;Ljava/lang/String;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Ljava/lang/Long;Ljava/lang/Long;]Ljava/lang/Float;Ljava/lang/Float;
-HSPLcom/android/internal/util/function/pooled/OmniFunction;->run()V
-HSPLcom/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;
-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;
-HSPLcom/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;->obtainRunnable(Lcom/android/internal/util/function/TriConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledRunnable;
-HSPLcom/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
-HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->-$$Nest$smunmask(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;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledLambda;
-HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->checkNotRecycled()V
-HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->doInvoke()Ljava/lang/Object;
-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
-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;
-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;->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
-HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->unmask(II)I
-HSPLcom/android/internal/view/AppearanceRegion;->equals(Ljava/lang/Object;)Z
-HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->addClient(Lcom/android/internal/inputmethod/IInputMethodClient;Lcom/android/internal/inputmethod/IRemoteInputConnection;I)V
-HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getEnabledInputMethodList(I)Ljava/util/List;
-HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getImeTrackerService()Lcom/android/internal/inputmethod/IImeTracker;
-HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->isImeTraceEnabled()Z
-HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->removeImeSurfaceFromWindowAsync(Landroid/os/IBinder;)V
-HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->reportPerceptibleAsync(Landroid/os/IBinder;Z)V
-HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->startInputOrWindowGainedFocus(ILcom/android/internal/inputmethod/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/inputmethod/IRemoteInputConnection;Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;IILandroid/window/ImeOnBackInvokedDispatcher;)Lcom/android/internal/inputmethod/InputBindResult;
-HSPLcom/android/internal/view/IInputMethodManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodManager;
-HSPLcom/android/internal/view/RotationPolicy;->isRotationLockToggleVisible(Landroid/content/Context;)Z
-HSPLcom/android/internal/view/RotationPolicy;->isRotationSupported(Landroid/content/Context;)Z
-HSPLcom/android/internal/view/SurfaceCallbackHelper$1;-><init>(Lcom/android/internal/view/SurfaceCallbackHelper;)V
-HSPLcom/android/internal/view/SurfaceCallbackHelper$1;->run()V
-HSPLcom/android/internal/view/SurfaceCallbackHelper;-><init>(Ljava/lang/Runnable;)V
-HSPLcom/android/internal/view/SurfaceCallbackHelper;->dispatchSurfaceRedrawNeededAsync(Landroid/view/SurfaceHolder;[Landroid/view/SurfaceHolder$Callback;)V
-HSPLcom/android/internal/view/menu/MenuBuilder;-><init>(Landroid/content/Context;)V
-HSPLcom/android/internal/view/menu/MenuBuilder;->add(IIILjava/lang/CharSequence;)Landroid/view/MenuItem;
-HSPLcom/android/internal/view/menu/MenuBuilder;->addInternal(IIILjava/lang/CharSequence;)Landroid/view/MenuItem;
-HSPLcom/android/internal/view/menu/MenuBuilder;->close(Z)V
-HSPLcom/android/internal/view/menu/MenuBuilder;->dispatchPresenterUpdate(Z)V
-HSPLcom/android/internal/view/menu/MenuBuilder;->findItem(I)Landroid/view/MenuItem;
-HSPLcom/android/internal/view/menu/MenuBuilder;->getVisibleItems()Ljava/util/ArrayList;
-HSPLcom/android/internal/view/menu/MenuBuilder;->hasVisibleItems()Z
-HSPLcom/android/internal/view/menu/MenuBuilder;->onItemActionRequestChanged(Lcom/android/internal/view/menu/MenuItemImpl;)V
-HSPLcom/android/internal/view/menu/MenuBuilder;->onItemsChanged(Z)V
-HSPLcom/android/internal/view/menu/MenuBuilder;->setCallback(Lcom/android/internal/view/menu/MenuBuilder$Callback;)V
-HSPLcom/android/internal/view/menu/MenuBuilder;->size()I
-HSPLcom/android/internal/view/menu/MenuItemImpl;-><init>(Lcom/android/internal/view/menu/MenuBuilder;IIIILjava/lang/CharSequence;I)V
-HSPLcom/android/internal/view/menu/MenuItemImpl;->getContentDescription()Ljava/lang/CharSequence;
-HSPLcom/android/internal/view/menu/MenuItemImpl;->getIcon()Landroid/graphics/drawable/Drawable;
-HSPLcom/android/internal/view/menu/MenuItemImpl;->getItemId()I
-HSPLcom/android/internal/view/menu/MenuItemImpl;->getTitle()Ljava/lang/CharSequence;
-HSPLcom/android/internal/view/menu/MenuItemImpl;->hasSubMenu()Z
-HSPLcom/android/internal/view/menu/MenuItemImpl;->isEnabled()Z
-HSPLcom/android/internal/view/menu/MenuItemImpl;->isVisible()Z
-HSPLcom/android/internal/view/menu/MenuItemImpl;->requiresActionButton()Z
-HSPLcom/android/internal/view/menu/MenuItemImpl;->setCheckable(Z)Landroid/view/MenuItem;
-HSPLcom/android/internal/view/menu/MenuItemImpl;->setChecked(Z)Landroid/view/MenuItem;
-HSPLcom/android/internal/view/menu/MenuItemImpl;->setShowAsAction(I)V
-HSPLcom/android/internal/view/menu/MenuItemImpl;->setVisible(Z)Landroid/view/MenuItem;
-HSPLcom/android/internal/widget/AlertDialogLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLcom/android/internal/widget/AlertDialogLayout;->forceUniformWidth(II)V
-HSPLcom/android/internal/widget/AlertDialogLayout;->onLayout(ZIIII)V
-HSPLcom/android/internal/widget/AlertDialogLayout;->onMeasure(II)V
-HSPLcom/android/internal/widget/AlertDialogLayout;->setChildFrame(Landroid/view/View;IIII)V
-HSPLcom/android/internal/widget/AlertDialogLayout;->tryOnMeasure(II)Z
-HSPLcom/android/internal/widget/BackgroundFallback;-><init>()V
-HSPLcom/android/internal/widget/BackgroundFallback;->draw(Landroid/view/ViewGroup;Landroid/view/ViewGroup;Landroid/graphics/Canvas;Landroid/view/View;Landroid/view/View;Landroid/view/View;)V+]Lcom/android/internal/widget/BackgroundFallback;Lcom/android/internal/widget/BackgroundFallback;
-HSPLcom/android/internal/widget/BackgroundFallback;->hasFallback()Z
-HSPLcom/android/internal/widget/BackgroundFallback;->setDrawable(Landroid/graphics/drawable/Drawable;)V
-HSPLcom/android/internal/widget/ButtonBarLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLcom/android/internal/widget/DialogTitle;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getBoolean(Ljava/lang/String;ZI)Z
-HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getCredentialType(I)I
-HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
-HSPLcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
-HSPLcom/android/internal/widget/LockPatternUtils$1;-><init>(Lcom/android/internal/widget/LockPatternUtils;)V
-HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$1;->onIsNonStrongBiometricAllowedChanged(ZI)V
-HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$1;->onStrongAuthRequiredChanged(II)V
-HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$H;->handleMessage(Landroid/os/Message;)V
-HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->getStrongAuthForUser(I)I
-HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->handleIsNonStrongBiometricAllowedChanged(ZI)V
-HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->handleStrongAuthRequiredChanged(II)V
-HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->isNonStrongBiometricAllowedAfterIdleTimeout(I)Z
-HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->onIsNonStrongBiometricAllowedChanged(I)V
-HSPLcom/android/internal/widget/LockPatternUtils;-><init>(Landroid/content/Context;)V
-HSPLcom/android/internal/widget/LockPatternUtils;-><init>(Landroid/content/Context;Lcom/android/internal/widget/ILockSettings;)V+]Landroid/content/Context;Landroid/app/ContextImpl;,Landroid/app/ReceiverRestrictedContext;
-HSPLcom/android/internal/widget/LockPatternUtils;->credentialTypeToPasswordQuality(I)I
-HSPLcom/android/internal/widget/LockPatternUtils;->getBoolean(Ljava/lang/String;ZI)Z
-HSPLcom/android/internal/widget/LockPatternUtils;->getCredentialTypeForUser(I)I
-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;
-HSPLcom/android/internal/widget/LockPatternUtils;->getPowerButtonInstantlyLocks(I)Z
-HSPLcom/android/internal/widget/LockPatternUtils;->getString(Ljava/lang/String;I)Ljava/lang/String;
-HSPLcom/android/internal/widget/LockPatternUtils;->hasSeparateChallenge(I)Z
-HSPLcom/android/internal/widget/LockPatternUtils;->isManagedProfile(I)Z
-HSPLcom/android/internal/widget/LockPatternUtils;->isOwnerInfoEnabled(I)Z
-HSPLcom/android/internal/widget/LockPatternUtils;->isSecure(I)Z
-HSPLcom/android/internal/widget/LockPatternUtils;->isSeparateProfileChallengeEnabled(I)Z
-HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeBoolean(Ljava/lang/String;Ljava/lang/String;)Z+]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;
-HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeFloat(Ljava/lang/String;Ljava/lang/String;)F
-HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeIndex(Ljava/lang/String;Ljava/lang/String;)I+]Ljava/lang/Object;Ljava/lang/String;]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;
-HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeIndexOrThrow(Ljava/lang/String;Ljava/lang/String;)I+]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;
-HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeInt(Ljava/lang/String;Ljava/lang/String;)I+]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;
-HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeLong(Ljava/lang/String;Ljava/lang/String;)J+]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;
-HSPLcom/android/net/module/util/LinkPropertiesUtils;->isIdenticalAddresses(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)Z
-HSPLcom/android/net/module/util/LinkPropertiesUtils;->isIdenticalDnses(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)Z
-HSPLcom/android/net/module/util/LinkPropertiesUtils;->isIdenticalHttpProxy(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)Z
-HSPLcom/android/net/module/util/LinkPropertiesUtils;->isIdenticalInterfaceName(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)Z
-HSPLcom/android/net/module/util/LinkPropertiesUtils;->isIdenticalRoutes(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)Z
-HSPLcom/android/net/module/util/MacAddressUtils;->isMacAddress([B)Z
-HSPLcom/android/net/module/util/MacAddressUtils;->longAddrFromByteAddr([B)J
-HSPLcom/android/net/module/util/NetUtils;->maskRawAddress([BI)V
-HSPLcom/android/net/module/util/NetworkCapabilitiesUtils;-><clinit>()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;
-HSPLcom/android/okhttp/Address;->getConnectionSpecs()Ljava/util/List;
-HSPLcom/android/okhttp/Address;->getDns()Lcom/android/okhttp/Dns;
-HSPLcom/android/okhttp/Address;->getHostnameVerifier()Ljavax/net/ssl/HostnameVerifier;
-HSPLcom/android/okhttp/Address;->getProtocols()Ljava/util/List;
-HSPLcom/android/okhttp/Address;->getProxy()Ljava/net/Proxy;
-HSPLcom/android/okhttp/Address;->getProxySelector()Ljava/net/ProxySelector;
-HSPLcom/android/okhttp/Address;->getSocketFactory()Ljavax/net/SocketFactory;
-HSPLcom/android/okhttp/Address;->getSslSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
-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/CacheControl;-><init>(ZZIIZZZIIZZLjava/lang/String;)V
-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
-HSPLcom/android/okhttp/ConfigAwareConnectionPool$1;->onNetworkConfigurationChanged()V
-HSPLcom/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
-HSPLcom/android/okhttp/ConnectionPool$1;->run()V
-HSPLcom/android/okhttp/ConnectionPool;-><init>(IJ)V
-HSPLcom/android/okhttp/ConnectionPool;-><init>(IJLjava/util/concurrent/TimeUnit;)V
-HSPLcom/android/okhttp/ConnectionPool;->cleanup(J)J
-HSPLcom/android/okhttp/ConnectionPool;->connectionBecameIdle(Lcom/android/okhttp/internal/io/RealConnection;)Z
-HSPLcom/android/okhttp/ConnectionPool;->get(Lcom/android/okhttp/Address;Lcom/android/okhttp/internal/http/StreamAllocation;)Lcom/android/okhttp/internal/io/RealConnection;
-HSPLcom/android/okhttp/ConnectionPool;->pruneAndGetAllocationCount(Lcom/android/okhttp/internal/io/RealConnection;J)I
-HSPLcom/android/okhttp/ConnectionPool;->put(Lcom/android/okhttp/internal/io/RealConnection;)V
-HSPLcom/android/okhttp/ConnectionSpec$Builder;-><init>(Lcom/android/okhttp/ConnectionSpec;)V
-HSPLcom/android/okhttp/ConnectionSpec$Builder;->access$000(Lcom/android/okhttp/ConnectionSpec$Builder;)Z
-HSPLcom/android/okhttp/ConnectionSpec$Builder;->access$100(Lcom/android/okhttp/ConnectionSpec$Builder;)[Ljava/lang/String;
-HSPLcom/android/okhttp/ConnectionSpec$Builder;->access$200(Lcom/android/okhttp/ConnectionSpec$Builder;)[Ljava/lang/String;
-HSPLcom/android/okhttp/ConnectionSpec$Builder;->access$300(Lcom/android/okhttp/ConnectionSpec$Builder;)Z
-HSPLcom/android/okhttp/ConnectionSpec$Builder;->build()Lcom/android/okhttp/ConnectionSpec;
-HSPLcom/android/okhttp/ConnectionSpec$Builder;->cipherSuites([Ljava/lang/String;)Lcom/android/okhttp/ConnectionSpec$Builder;
-HSPLcom/android/okhttp/ConnectionSpec$Builder;->tlsVersions([Ljava/lang/String;)Lcom/android/okhttp/ConnectionSpec$Builder;
-HSPLcom/android/okhttp/ConnectionSpec;-><init>(Lcom/android/okhttp/ConnectionSpec$Builder;)V
-HSPLcom/android/okhttp/ConnectionSpec;-><init>(Lcom/android/okhttp/ConnectionSpec$Builder;Lcom/android/okhttp/ConnectionSpec$1;)V
-HSPLcom/android/okhttp/ConnectionSpec;->access$400(Lcom/android/okhttp/ConnectionSpec;)Z
-HSPLcom/android/okhttp/ConnectionSpec;->access$500(Lcom/android/okhttp/ConnectionSpec;)[Ljava/lang/String;
-HSPLcom/android/okhttp/ConnectionSpec;->access$600(Lcom/android/okhttp/ConnectionSpec;)[Ljava/lang/String;
-HSPLcom/android/okhttp/ConnectionSpec;->access$700(Lcom/android/okhttp/ConnectionSpec;)Z
-HSPLcom/android/okhttp/ConnectionSpec;->apply(Ljavax/net/ssl/SSLSocket;Z)V
-HSPLcom/android/okhttp/ConnectionSpec;->equals(Ljava/lang/Object;)Z
-HSPLcom/android/okhttp/ConnectionSpec;->hashCode()I
-HSPLcom/android/okhttp/ConnectionSpec;->isCompatible(Ljavax/net/ssl/SSLSocket;)Z
-HSPLcom/android/okhttp/ConnectionSpec;->supportedSpec(Ljavax/net/ssl/SSLSocket;Z)Lcom/android/okhttp/ConnectionSpec;
-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
-HSPLcom/android/okhttp/Handshake;->get(Ljavax/net/ssl/SSLSession;)Lcom/android/okhttp/Handshake;
-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;
-HSPLcom/android/okhttp/Headers$Builder;->addLenient(Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
-HSPLcom/android/okhttp/Headers$Builder;->addLenient(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
-HSPLcom/android/okhttp/Headers$Builder;->build()Lcom/android/okhttp/Headers;
-HSPLcom/android/okhttp/Headers$Builder;->checkNameAndValue(Ljava/lang/String;Ljava/lang/String;)V
-HSPLcom/android/okhttp/Headers$Builder;->get(Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/okhttp/Headers$Builder;->removeAll(Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
-HSPLcom/android/okhttp/Headers$Builder;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
-HSPLcom/android/okhttp/Headers;-><init>(Lcom/android/okhttp/Headers$Builder;)V
-HSPLcom/android/okhttp/Headers;-><init>(Lcom/android/okhttp/Headers$Builder;Lcom/android/okhttp/Headers$1;)V
-HSPLcom/android/okhttp/Headers;->get(Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/okhttp/Headers;->get([Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-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;
-HSPLcom/android/okhttp/HttpUrl$Builder;->canonicalizeHost(Ljava/lang/String;II)Ljava/lang/String;
-HSPLcom/android/okhttp/HttpUrl$Builder;->containsInvalidHostnameAsciiCodes(Ljava/lang/String;)Z
-HSPLcom/android/okhttp/HttpUrl$Builder;->domainToAscii(Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/okhttp/HttpUrl$Builder;->effectivePort()I
-HSPLcom/android/okhttp/HttpUrl$Builder;->encodedQuery(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-HSPLcom/android/okhttp/HttpUrl$Builder;->host(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-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
-HSPLcom/android/okhttp/HttpUrl$Builder;->reencodeForUri()Lcom/android/okhttp/HttpUrl$Builder;
-HSPLcom/android/okhttp/HttpUrl$Builder;->resolvePath(Ljava/lang/String;II)V
-HSPLcom/android/okhttp/HttpUrl$Builder;->scheme(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-HSPLcom/android/okhttp/HttpUrl$Builder;->schemeDelimiterOffset(Ljava/lang/String;II)I
-HSPLcom/android/okhttp/HttpUrl$Builder;->skipLeadingAsciiWhitespace(Ljava/lang/String;II)I
-HSPLcom/android/okhttp/HttpUrl$Builder;->skipTrailingAsciiWhitespace(Ljava/lang/String;II)I
-HSPLcom/android/okhttp/HttpUrl$Builder;->slashCount(Ljava/lang/String;II)I
-HSPLcom/android/okhttp/HttpUrl$Builder;->toString()Ljava/lang/String;
-HSPLcom/android/okhttp/HttpUrl;-><init>(Lcom/android/okhttp/HttpUrl$Builder;)V
-HSPLcom/android/okhttp/HttpUrl;-><init>(Lcom/android/okhttp/HttpUrl$Builder;Lcom/android/okhttp/HttpUrl$1;)V
-HSPLcom/android/okhttp/HttpUrl;->access$200(Ljava/lang/String;IILjava/lang/String;)I
-HSPLcom/android/okhttp/HttpUrl;->canonicalize(Ljava/lang/String;IILjava/lang/String;ZZZZ)Ljava/lang/String;
-HSPLcom/android/okhttp/HttpUrl;->canonicalize(Ljava/lang/String;Ljava/lang/String;ZZZZ)Ljava/lang/String;
-HSPLcom/android/okhttp/HttpUrl;->decodeHexDigit(C)I
-HSPLcom/android/okhttp/HttpUrl;->defaultPort(Ljava/lang/String;)I
-HSPLcom/android/okhttp/HttpUrl;->delimiterOffset(Ljava/lang/String;IILjava/lang/String;)I
-HSPLcom/android/okhttp/HttpUrl;->encodedFragment()Ljava/lang/String;
-HSPLcom/android/okhttp/HttpUrl;->encodedPassword()Ljava/lang/String;
-HSPLcom/android/okhttp/HttpUrl;->encodedPath()Ljava/lang/String;
-HSPLcom/android/okhttp/HttpUrl;->encodedPathSegments()Ljava/util/List;
-HSPLcom/android/okhttp/HttpUrl;->encodedQuery()Ljava/lang/String;
-HSPLcom/android/okhttp/HttpUrl;->encodedUsername()Ljava/lang/String;
-HSPLcom/android/okhttp/HttpUrl;->equals(Ljava/lang/Object;)Z
-HSPLcom/android/okhttp/HttpUrl;->getChecked(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl;
-HSPLcom/android/okhttp/HttpUrl;->hashCode()I
-HSPLcom/android/okhttp/HttpUrl;->host()Ljava/lang/String;
-HSPLcom/android/okhttp/HttpUrl;->isHttps()Z
-HSPLcom/android/okhttp/HttpUrl;->namesAndValuesToQueryString(Ljava/lang/StringBuilder;Ljava/util/List;)V
-HSPLcom/android/okhttp/HttpUrl;->newBuilder()Lcom/android/okhttp/HttpUrl$Builder;
-HSPLcom/android/okhttp/HttpUrl;->pathSegmentsToString(Ljava/lang/StringBuilder;Ljava/util/List;)V
-HSPLcom/android/okhttp/HttpUrl;->percentDecode(Lcom/android/okhttp/okio/Buffer;Ljava/lang/String;IIZ)V
-HSPLcom/android/okhttp/HttpUrl;->percentDecode(Ljava/lang/String;IIZ)Ljava/lang/String;
-HSPLcom/android/okhttp/HttpUrl;->percentDecode(Ljava/lang/String;Z)Ljava/lang/String;
-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;
-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;->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
-HSPLcom/android/okhttp/OkHttpClient$1;->connectionBecameIdle(Lcom/android/okhttp/ConnectionPool;Lcom/android/okhttp/internal/io/RealConnection;)Z
-HSPLcom/android/okhttp/OkHttpClient$1;->get(Lcom/android/okhttp/ConnectionPool;Lcom/android/okhttp/Address;Lcom/android/okhttp/internal/http/StreamAllocation;)Lcom/android/okhttp/internal/io/RealConnection;
-HSPLcom/android/okhttp/OkHttpClient$1;->getHttpUrlChecked(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl;
-HSPLcom/android/okhttp/OkHttpClient$1;->internalCache(Lcom/android/okhttp/OkHttpClient;)Lcom/android/okhttp/internal/InternalCache;
-HSPLcom/android/okhttp/OkHttpClient$1;->put(Lcom/android/okhttp/ConnectionPool;Lcom/android/okhttp/internal/io/RealConnection;)V
-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
-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;
-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;
-HSPLcom/android/okhttp/OkHttpClient;->getProxySelector()Ljava/net/ProxySelector;
-HSPLcom/android/okhttp/OkHttpClient;->getReadTimeout()I
-HSPLcom/android/okhttp/OkHttpClient;->getRetryOnConnectionFailure()Z
-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;
-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;
-HSPLcom/android/okhttp/OkHttpClient;->setConnectionSpecs(Ljava/util/List;)Lcom/android/okhttp/OkHttpClient;
-HSPLcom/android/okhttp/OkHttpClient;->setDns(Lcom/android/okhttp/Dns;)Lcom/android/okhttp/OkHttpClient;
-HSPLcom/android/okhttp/OkHttpClient;->setFollowRedirects(Z)V
-HSPLcom/android/okhttp/OkHttpClient;->setFollowSslRedirects(Z)Lcom/android/okhttp/OkHttpClient;
-HSPLcom/android/okhttp/OkHttpClient;->setHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)Lcom/android/okhttp/OkHttpClient;
-HSPLcom/android/okhttp/OkHttpClient;->setProtocols(Ljava/util/List;)Lcom/android/okhttp/OkHttpClient;
-HSPLcom/android/okhttp/OkHttpClient;->setProxy(Ljava/net/Proxy;)Lcom/android/okhttp/OkHttpClient;
-HSPLcom/android/okhttp/OkHttpClient;->setReadTimeout(JLjava/util/concurrent/TimeUnit;)V
-HSPLcom/android/okhttp/OkHttpClient;->setSocketFactory(Ljavax/net/SocketFactory;)Lcom/android/okhttp/OkHttpClient;
-HSPLcom/android/okhttp/OkHttpClient;->setSslSocketFactory(Ljavax/net/ssl/SSLSocketFactory;)Lcom/android/okhttp/OkHttpClient;
-HSPLcom/android/okhttp/OkHttpClient;->setWriteTimeout(JLjava/util/concurrent/TimeUnit;)V
-HSPLcom/android/okhttp/OkUrlFactories;->open(Lcom/android/okhttp/OkUrlFactory;Ljava/net/URL;Ljava/net/Proxy;)Ljava/net/HttpURLConnection;
-HSPLcom/android/okhttp/OkUrlFactories;->setUrlFilter(Lcom/android/okhttp/OkUrlFactory;Lcom/android/okhttp/internal/URLFilter;)V
-HSPLcom/android/okhttp/OkUrlFactory;-><init>(Lcom/android/okhttp/OkHttpClient;)V
-HSPLcom/android/okhttp/OkUrlFactory;->client()Lcom/android/okhttp/OkHttpClient;
-HSPLcom/android/okhttp/OkUrlFactory;->open(Ljava/net/URL;)Ljava/net/HttpURLConnection;
-HSPLcom/android/okhttp/OkUrlFactory;->open(Ljava/net/URL;Ljava/net/Proxy;)Ljava/net/HttpURLConnection;
-HSPLcom/android/okhttp/OkUrlFactory;->setUrlFilter(Lcom/android/okhttp/internal/URLFilter;)V
-HSPLcom/android/okhttp/Protocol;->get(Ljava/lang/String;)Lcom/android/okhttp/Protocol;
-HSPLcom/android/okhttp/Protocol;->toString()Ljava/lang/String;
-HSPLcom/android/okhttp/Request$Builder;-><init>()V
-HSPLcom/android/okhttp/Request$Builder;-><init>(Lcom/android/okhttp/Request;)V
-HSPLcom/android/okhttp/Request$Builder;-><init>(Lcom/android/okhttp/Request;Lcom/android/okhttp/Request$1;)V
-HSPLcom/android/okhttp/Request$Builder;->access$000(Lcom/android/okhttp/Request$Builder;)Lcom/android/okhttp/HttpUrl;
-HSPLcom/android/okhttp/Request$Builder;->access$100(Lcom/android/okhttp/Request$Builder;)Ljava/lang/String;
-HSPLcom/android/okhttp/Request$Builder;->access$200(Lcom/android/okhttp/Request$Builder;)Lcom/android/okhttp/Headers$Builder;
-HSPLcom/android/okhttp/Request$Builder;->access$300(Lcom/android/okhttp/Request$Builder;)Lcom/android/okhttp/RequestBody;
-HSPLcom/android/okhttp/Request$Builder;->access$400(Lcom/android/okhttp/Request$Builder;)Ljava/lang/Object;
-HSPLcom/android/okhttp/Request$Builder;->addHeader(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Request$Builder;
-HSPLcom/android/okhttp/Request$Builder;->build()Lcom/android/okhttp/Request;
-HSPLcom/android/okhttp/Request$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Request$Builder;
-HSPLcom/android/okhttp/Request$Builder;->method(Ljava/lang/String;Lcom/android/okhttp/RequestBody;)Lcom/android/okhttp/Request$Builder;
-HSPLcom/android/okhttp/Request$Builder;->url(Lcom/android/okhttp/HttpUrl;)Lcom/android/okhttp/Request$Builder;
-HSPLcom/android/okhttp/Request;-><init>(Lcom/android/okhttp/Request$Builder;)V
-HSPLcom/android/okhttp/Request;-><init>(Lcom/android/okhttp/Request$Builder;Lcom/android/okhttp/Request$1;)V
-HSPLcom/android/okhttp/Request;->access$1000(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Headers;
-HSPLcom/android/okhttp/Request;->access$600(Lcom/android/okhttp/Request;)Lcom/android/okhttp/HttpUrl;
-HSPLcom/android/okhttp/Request;->access$700(Lcom/android/okhttp/Request;)Ljava/lang/String;
-HSPLcom/android/okhttp/Request;->access$800(Lcom/android/okhttp/Request;)Lcom/android/okhttp/RequestBody;
-HSPLcom/android/okhttp/Request;->access$900(Lcom/android/okhttp/Request;)Ljava/lang/Object;
-HSPLcom/android/okhttp/Request;->cacheControl()Lcom/android/okhttp/CacheControl;
-HSPLcom/android/okhttp/Request;->header(Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/okhttp/Request;->headers()Lcom/android/okhttp/Headers;
-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;->url()Ljava/net/URL;
-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
-HSPLcom/android/okhttp/Response$Builder;->access$000(Lcom/android/okhttp/Response$Builder;)Lcom/android/okhttp/Request;
-HSPLcom/android/okhttp/Response$Builder;->access$100(Lcom/android/okhttp/Response$Builder;)Lcom/android/okhttp/Protocol;
-HSPLcom/android/okhttp/Response$Builder;->access$200(Lcom/android/okhttp/Response$Builder;)I
-HSPLcom/android/okhttp/Response$Builder;->access$300(Lcom/android/okhttp/Response$Builder;)Ljava/lang/String;
-HSPLcom/android/okhttp/Response$Builder;->access$400(Lcom/android/okhttp/Response$Builder;)Lcom/android/okhttp/Handshake;
-HSPLcom/android/okhttp/Response$Builder;->access$500(Lcom/android/okhttp/Response$Builder;)Lcom/android/okhttp/Headers$Builder;
-HSPLcom/android/okhttp/Response$Builder;->access$600(Lcom/android/okhttp/Response$Builder;)Lcom/android/okhttp/ResponseBody;
-HSPLcom/android/okhttp/Response$Builder;->access$700(Lcom/android/okhttp/Response$Builder;)Lcom/android/okhttp/Response;
-HSPLcom/android/okhttp/Response$Builder;->access$800(Lcom/android/okhttp/Response$Builder;)Lcom/android/okhttp/Response;
-HSPLcom/android/okhttp/Response$Builder;->access$900(Lcom/android/okhttp/Response$Builder;)Lcom/android/okhttp/Response;
-HSPLcom/android/okhttp/Response$Builder;->body(Lcom/android/okhttp/ResponseBody;)Lcom/android/okhttp/Response$Builder;
-HSPLcom/android/okhttp/Response$Builder;->build()Lcom/android/okhttp/Response;
-HSPLcom/android/okhttp/Response$Builder;->cacheResponse(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response$Builder;
-HSPLcom/android/okhttp/Response$Builder;->checkSupportResponse(Ljava/lang/String;Lcom/android/okhttp/Response;)V
-HSPLcom/android/okhttp/Response$Builder;->code(I)Lcom/android/okhttp/Response$Builder;
-HSPLcom/android/okhttp/Response$Builder;->handshake(Lcom/android/okhttp/Handshake;)Lcom/android/okhttp/Response$Builder;
-HSPLcom/android/okhttp/Response$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Response$Builder;
-HSPLcom/android/okhttp/Response$Builder;->headers(Lcom/android/okhttp/Headers;)Lcom/android/okhttp/Response$Builder;
-HSPLcom/android/okhttp/Response$Builder;->message(Ljava/lang/String;)Lcom/android/okhttp/Response$Builder;
-HSPLcom/android/okhttp/Response$Builder;->networkResponse(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response$Builder;
-HSPLcom/android/okhttp/Response$Builder;->priorResponse(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response$Builder;
-HSPLcom/android/okhttp/Response$Builder;->protocol(Lcom/android/okhttp/Protocol;)Lcom/android/okhttp/Response$Builder;
-HSPLcom/android/okhttp/Response$Builder;->request(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Response$Builder;
-HSPLcom/android/okhttp/Response;-><init>(Lcom/android/okhttp/Response$Builder;)V
-HSPLcom/android/okhttp/Response;-><init>(Lcom/android/okhttp/Response$Builder;Lcom/android/okhttp/Response$1;)V
-HSPLcom/android/okhttp/Response;->access$1100(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Request;
-HSPLcom/android/okhttp/Response;->access$1200(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Protocol;
-HSPLcom/android/okhttp/Response;->access$1300(Lcom/android/okhttp/Response;)I
-HSPLcom/android/okhttp/Response;->access$1400(Lcom/android/okhttp/Response;)Ljava/lang/String;
-HSPLcom/android/okhttp/Response;->access$1500(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Handshake;
-HSPLcom/android/okhttp/Response;->access$1600(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Headers;
-HSPLcom/android/okhttp/Response;->access$1700(Lcom/android/okhttp/Response;)Lcom/android/okhttp/ResponseBody;
-HSPLcom/android/okhttp/Response;->access$1800(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
-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;
-HSPLcom/android/okhttp/Response;->cacheResponse()Lcom/android/okhttp/Response;
-HSPLcom/android/okhttp/Response;->code()I
-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;
-HSPLcom/android/okhttp/Response;->message()Ljava/lang/String;
-HSPLcom/android/okhttp/Response;->networkResponse()Lcom/android/okhttp/Response;
-HSPLcom/android/okhttp/Response;->newBuilder()Lcom/android/okhttp/Response$Builder;
-HSPLcom/android/okhttp/Response;->protocol()Lcom/android/okhttp/Protocol;
-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
-HSPLcom/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;
-HSPLcom/android/okhttp/Route;->hashCode()I
-HSPLcom/android/okhttp/Route;->requiresTunnel()Z
-HSPLcom/android/okhttp/internal/ConnectionSpecSelector;-><init>(Ljava/util/List;)V
-HSPLcom/android/okhttp/internal/ConnectionSpecSelector;->configureSecureSocket(Ljavax/net/ssl/SSLSocket;)Lcom/android/okhttp/ConnectionSpec;
-HSPLcom/android/okhttp/internal/ConnectionSpecSelector;->connectionFailed(Ljava/io/IOException;)Z
-HSPLcom/android/okhttp/internal/ConnectionSpecSelector;->isFallbackPossible(Ljavax/net/ssl/SSLSocket;)Z
-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;
-HSPLcom/android/okhttp/internal/OptionalMethod;->invokeOptional(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/okhttp/internal/OptionalMethod;->invokeOptionalWithoutCheckedException(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/okhttp/internal/OptionalMethod;->invokeWithoutCheckedException(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
-HSPLcom/android/okhttp/internal/OptionalMethod;->isSupported(Ljava/lang/Object;)Z
-HSPLcom/android/okhttp/internal/Platform;->afterHandshake(Ljavax/net/ssl/SSLSocket;)V
-HSPLcom/android/okhttp/internal/Platform;->concatLengthPrefixed(Ljava/util/List;)[B
-HSPLcom/android/okhttp/internal/Platform;->configureTlsExtensions(Ljavax/net/ssl/SSLSocket;Ljava/lang/String;Ljava/util/List;)V
-HSPLcom/android/okhttp/internal/Platform;->connectSocket(Ljava/net/Socket;Ljava/net/InetSocketAddress;I)V
-HSPLcom/android/okhttp/internal/Platform;->get()Lcom/android/okhttp/internal/Platform;
-HSPLcom/android/okhttp/internal/Platform;->getProtocolIds(Ljava/util/List;)[Ljava/lang/String;
-HSPLcom/android/okhttp/internal/Platform;->getSelectedProtocol(Ljavax/net/ssl/SSLSocket;)Ljava/lang/String;
-HSPLcom/android/okhttp/internal/Platform;->isPlatformSocket(Ljavax/net/ssl/SSLSocket;)Z
-HSPLcom/android/okhttp/internal/RouteDatabase;-><init>()V
-HSPLcom/android/okhttp/internal/RouteDatabase;->connected(Lcom/android/okhttp/Route;)V
-HSPLcom/android/okhttp/internal/RouteDatabase;->failed(Lcom/android/okhttp/Route;)V
-HSPLcom/android/okhttp/internal/RouteDatabase;->shouldPostpone(Lcom/android/okhttp/Route;)Z
-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
-HSPLcom/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;
-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;
-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
-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
-HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSource;->readChunkSize()V
-HSPLcom/android/okhttp/internal/http/Http1xStream$FixedLengthSink;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;J)V
-HSPLcom/android/okhttp/internal/http/Http1xStream$FixedLengthSink;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;JLcom/android/okhttp/internal/http/Http1xStream$1;)V
-HSPLcom/android/okhttp/internal/http/Http1xStream$FixedLengthSink;->close()V
-HSPLcom/android/okhttp/internal/http/Http1xStream$FixedLengthSink;->flush()V
-HSPLcom/android/okhttp/internal/http/Http1xStream$FixedLengthSink;->write(Lcom/android/okhttp/okio/Buffer;J)V
-HSPLcom/android/okhttp/internal/http/Http1xStream$FixedLengthSource;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;J)V
-HSPLcom/android/okhttp/internal/http/Http1xStream$FixedLengthSource;->close()V
-HSPLcom/android/okhttp/internal/http/Http1xStream$FixedLengthSource;->read(Lcom/android/okhttp/okio/Buffer;J)J
-HSPLcom/android/okhttp/internal/http/Http1xStream;-><init>(Lcom/android/okhttp/internal/http/StreamAllocation;Lcom/android/okhttp/okio/BufferedSource;Lcom/android/okhttp/okio/BufferedSink;)V
-HSPLcom/android/okhttp/internal/http/Http1xStream;->access$300(Lcom/android/okhttp/internal/http/Http1xStream;)Lcom/android/okhttp/okio/BufferedSink;
-HSPLcom/android/okhttp/internal/http/Http1xStream;->access$400(Lcom/android/okhttp/internal/http/Http1xStream;Lcom/android/okhttp/okio/ForwardingTimeout;)V
-HSPLcom/android/okhttp/internal/http/Http1xStream;->access$500(Lcom/android/okhttp/internal/http/Http1xStream;)I
-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;->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;
-HSPLcom/android/okhttp/internal/http/Http1xStream;->readResponseHeaders()Lcom/android/okhttp/Response$Builder;
-HSPLcom/android/okhttp/internal/http/Http1xStream;->setHttpEngine(Lcom/android/okhttp/internal/http/HttpEngine;)V
-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/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
-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
-HSPLcom/android/okhttp/internal/http/HttpEngine;->hasResponse()Z
-HSPLcom/android/okhttp/internal/http/HttpEngine;->maybeCache()V
-HSPLcom/android/okhttp/internal/http/HttpEngine;->networkRequest(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Request;
-HSPLcom/android/okhttp/internal/http/HttpEngine;->permitsRequestBody(Lcom/android/okhttp/Request;)Z
-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
-HSPLcom/android/okhttp/internal/http/HttpEngine;->recover(Lcom/android/okhttp/internal/http/RouteException;)Lcom/android/okhttp/internal/http/HttpEngine;
-HSPLcom/android/okhttp/internal/http/HttpEngine;->recover(Ljava/io/IOException;)Lcom/android/okhttp/internal/http/HttpEngine;
-HSPLcom/android/okhttp/internal/http/HttpEngine;->recover(Ljava/io/IOException;Lcom/android/okhttp/okio/Sink;)Lcom/android/okhttp/internal/http/HttpEngine;
-HSPLcom/android/okhttp/internal/http/HttpEngine;->releaseStreamAllocation()V
-HSPLcom/android/okhttp/internal/http/HttpEngine;->sendRequest()V
-HSPLcom/android/okhttp/internal/http/HttpEngine;->stripBody(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
-HSPLcom/android/okhttp/internal/http/HttpEngine;->unzip(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
-HSPLcom/android/okhttp/internal/http/HttpEngine;->writingRequestHeaders()V
-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;->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
-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;
-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;
-HSPLcom/android/okhttp/internal/http/RequestLine;->includeAuthorityInRequestLine(Lcom/android/okhttp/Request;Ljava/net/Proxy$Type;)Z
-HSPLcom/android/okhttp/internal/http/RequestLine;->requestPath(Lcom/android/okhttp/HttpUrl;)Ljava/lang/String;
-HSPLcom/android/okhttp/internal/http/RetryableSink;-><init>()V
-HSPLcom/android/okhttp/internal/http/RetryableSink;-><init>(I)V
-HSPLcom/android/okhttp/internal/http/RetryableSink;->close()V
-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
-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
-HSPLcom/android/okhttp/internal/http/RouteSelector;->connectFailed(Lcom/android/okhttp/Route;Ljava/io/IOException;)V
-HSPLcom/android/okhttp/internal/http/RouteSelector;->hasNext()Z
-HSPLcom/android/okhttp/internal/http/RouteSelector;->hasNextInetSocketAddress()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;
-HSPLcom/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
-HSPLcom/android/okhttp/internal/http/StatusLine;-><init>(Lcom/android/okhttp/Protocol;ILjava/lang/String;)V
-HSPLcom/android/okhttp/internal/http/StatusLine;->get(Lcom/android/okhttp/Response;)Lcom/android/okhttp/internal/http/StatusLine;
-HSPLcom/android/okhttp/internal/http/StatusLine;->parse(Ljava/lang/String;)Lcom/android/okhttp/internal/http/StatusLine;
-HSPLcom/android/okhttp/internal/http/StatusLine;->toString()Ljava/lang/String;
-HSPLcom/android/okhttp/internal/http/StreamAllocation;-><init>(Lcom/android/okhttp/ConnectionPool;Lcom/android/okhttp/Address;)V
-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;
-HSPLcom/android/okhttp/internal/http/StreamAllocation;->connectionFailed()V
-HSPLcom/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;
-HSPLcom/android/okhttp/internal/http/StreamAllocation;->isRecoverable(Lcom/android/okhttp/internal/http/RouteException;)Z
-HSPLcom/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
-HSPLcom/android/okhttp/internal/http/StreamAllocation;->recover(Lcom/android/okhttp/internal/http/RouteException;)Z
-HSPLcom/android/okhttp/internal/http/StreamAllocation;->recover(Ljava/io/IOException;Lcom/android/okhttp/okio/Sink;)Z
-HSPLcom/android/okhttp/internal/http/StreamAllocation;->release()V
-HSPLcom/android/okhttp/internal/http/StreamAllocation;->release(Lcom/android/okhttp/internal/io/RealConnection;)V
-HSPLcom/android/okhttp/internal/http/StreamAllocation;->routeDatabase()Lcom/android/okhttp/internal/RouteDatabase;
-HSPLcom/android/okhttp/internal/http/StreamAllocation;->streamFinished(Lcom/android/okhttp/internal/http/HttpStream;)V
-HSPLcom/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
-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;
-HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getHeaderField(Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getHeaderFields()Ljava/util/Map;
-HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getInputStream()Ljava/io/InputStream;
-HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getOutputStream()Ljava/io/OutputStream;
-HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getRequestMethod()Ljava/lang/String;
-HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getRequestProperties()Ljava/util/Map;
-HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getRequestProperty(Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getResponseCode()I
-HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getResponseMessage()Ljava/lang/String;
-HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getURL()Ljava/net/URL;
-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;->setInstanceFollowRedirects(Z)V
-HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setReadTimeout(I)V
-HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setRequestMethod(Ljava/lang/String;)V
-HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
-HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setUseCaches(Z)V
-HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;-><init>(Ljava/net/URL;Lcom/android/okhttp/OkHttpClient;)V
-HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;-><init>(Ljava/net/URL;Lcom/android/okhttp/OkHttpClient;Lcom/android/okhttp/internal/URLFilter;)V
-HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->addRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
-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;
-HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getHeaderField(Ljava/lang/String;)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;
-HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getOutputStream()Ljava/io/OutputStream;
-HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getRequestProperties()Ljava/util/Map;
-HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getRequestProperty(Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getResponse()Lcom/android/okhttp/internal/http/HttpEngine;
-HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getResponseCode()I
-HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getResponseMessage()Ljava/lang/String;
-HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->initHttpEngine()V
-HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->newHttpEngine(Ljava/lang/String;Lcom/android/okhttp/internal/http/StreamAllocation;Lcom/android/okhttp/internal/http/RetryableSink;Lcom/android/okhttp/Response;)Lcom/android/okhttp/internal/http/HttpEngine;
-HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->responseSourceHeader(Lcom/android/okhttp/Response;)Ljava/lang/String;
-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;->setInstanceFollowRedirects(Z)V
-HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setReadTimeout(I)V
-HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setRequestMethod(Ljava/lang/String;)V
-HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
-HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;-><init>(Lcom/android/okhttp/internal/huc/HttpURLConnectionImpl;)V
-HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;-><init>(Ljava/net/URL;Lcom/android/okhttp/OkHttpClient;Lcom/android/okhttp/internal/URLFilter;)V
-HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->addRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
-HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->connect()V
-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;
-HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getHeaderField(Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getHeaderFields()Ljava/util/Map;
-HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getInputStream()Ljava/io/InputStream;
-HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getOutputStream()Ljava/io/OutputStream;
-HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getRequestMethod()Ljava/lang/String;
-HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getRequestProperties()Ljava/util/Map;
-HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getRequestProperty(Ljava/lang/String;)Ljava/lang/String;
-HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getResponseCode()I
-HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getResponseMessage()Ljava/lang/String;
-HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getURL()Ljava/net/URL;
-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
-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
-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
-HSPLcom/android/okhttp/internal/io/RealConnection;->getHandshake()Lcom/android/okhttp/Handshake;
-HSPLcom/android/okhttp/internal/io/RealConnection;->getRoute()Lcom/android/okhttp/Route;
-HSPLcom/android/okhttp/internal/io/RealConnection;->getSocket()Ljava/net/Socket;
-HSPLcom/android/okhttp/internal/io/RealConnection;->isHealthy(Z)Z
-HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->getSubjectAltNames(Ljava/security/cert/X509Certificate;I)Ljava/util/List;
-HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->isPrintableAscii(Ljava/lang/String;)Z
-HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->verify(Ljava/lang/String;Ljava/security/cert/X509Certificate;)Z
-HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->verify(Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z
-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
-HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory$DnsAdapter;-><init>(Lcom/android/okhttp/internalandroidapi/Dns;)V
-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;-><init>()V
-HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;->internalOpenConnection(Ljava/net/URL;Ljavax/net/SocketFactory;Ljava/net/Proxy;)Ljava/net/URLConnection;
-HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;->openConnection(Ljava/net/URL;Ljavax/net/SocketFactory;Ljava/net/Proxy;)Ljava/net/URLConnection;
-HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;->setDns(Lcom/android/okhttp/internalandroidapi/Dns;)V
-HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;->setNewConnectionPool(IJLjava/util/concurrent/TimeUnit;)V
-HSPLcom/android/okhttp/okio/AsyncTimeout$1;-><init>(Lcom/android/okhttp/okio/AsyncTimeout;Lcom/android/okhttp/okio/Sink;)V
-HSPLcom/android/okhttp/okio/AsyncTimeout$1;->flush()V
-HSPLcom/android/okhttp/okio/AsyncTimeout$1;->timeout()Lcom/android/okhttp/okio/Timeout;
-HSPLcom/android/okhttp/okio/AsyncTimeout$1;->write(Lcom/android/okhttp/okio/Buffer;J)V
-HSPLcom/android/okhttp/okio/AsyncTimeout$2;-><init>(Lcom/android/okhttp/okio/AsyncTimeout;Lcom/android/okhttp/okio/Source;)V
-HSPLcom/android/okhttp/okio/AsyncTimeout$2;->read(Lcom/android/okhttp/okio/Buffer;J)J
-HSPLcom/android/okhttp/okio/AsyncTimeout$2;->timeout()Lcom/android/okhttp/okio/Timeout;
-HSPLcom/android/okhttp/okio/AsyncTimeout$Watchdog;-><init>()V
-HSPLcom/android/okhttp/okio/AsyncTimeout$Watchdog;->run()V
-HSPLcom/android/okhttp/okio/AsyncTimeout;-><init>()V
-HSPLcom/android/okhttp/okio/AsyncTimeout;->access$000()Lcom/android/okhttp/okio/AsyncTimeout;
-HSPLcom/android/okhttp/okio/AsyncTimeout;->awaitTimeout()Lcom/android/okhttp/okio/AsyncTimeout;
-HSPLcom/android/okhttp/okio/AsyncTimeout;->cancelScheduledTimeout(Lcom/android/okhttp/okio/AsyncTimeout;)Z
-HSPLcom/android/okhttp/okio/AsyncTimeout;->enter()V
-HSPLcom/android/okhttp/okio/AsyncTimeout;->exit()Z
-HSPLcom/android/okhttp/okio/AsyncTimeout;->exit(Ljava/io/IOException;)Ljava/io/IOException;
-HSPLcom/android/okhttp/okio/AsyncTimeout;->exit(Z)V
-HSPLcom/android/okhttp/okio/AsyncTimeout;->remainingNanos(J)J
-HSPLcom/android/okhttp/okio/AsyncTimeout;->scheduleTimeout(Lcom/android/okhttp/okio/AsyncTimeout;JZ)V
-HSPLcom/android/okhttp/okio/AsyncTimeout;->sink(Lcom/android/okhttp/okio/Sink;)Lcom/android/okhttp/okio/Sink;
-HSPLcom/android/okhttp/okio/AsyncTimeout;->source(Lcom/android/okhttp/okio/Source;)Lcom/android/okhttp/okio/Source;
-HSPLcom/android/okhttp/okio/Buffer;-><init>()V
-HSPLcom/android/okhttp/okio/Buffer;->clear()V
-HSPLcom/android/okhttp/okio/Buffer;->completeSegmentByteCount()J
-HSPLcom/android/okhttp/okio/Buffer;->copyTo(Lcom/android/okhttp/okio/Buffer;JJ)Lcom/android/okhttp/okio/Buffer;
-HSPLcom/android/okhttp/okio/Buffer;->exhausted()Z
-HSPLcom/android/okhttp/okio/Buffer;->getByte(J)B
-HSPLcom/android/okhttp/okio/Buffer;->indexOf(BJ)J
-HSPLcom/android/okhttp/okio/Buffer;->read(Lcom/android/okhttp/okio/Buffer;J)J
-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
-HSPLcom/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
-HSPLcom/android/okhttp/okio/Buffer;->readIntLe()I
-HSPLcom/android/okhttp/okio/Buffer;->readShort()S
-HSPLcom/android/okhttp/okio/Buffer;->readString(JLjava/nio/charset/Charset;)Ljava/lang/String;
-HSPLcom/android/okhttp/okio/Buffer;->readUtf8()Ljava/lang/String;
-HSPLcom/android/okhttp/okio/Buffer;->readUtf8(J)Ljava/lang/String;
-HSPLcom/android/okhttp/okio/Buffer;->readUtf8Line(J)Ljava/lang/String;
-HSPLcom/android/okhttp/okio/Buffer;->size()J
-HSPLcom/android/okhttp/okio/Buffer;->skip(J)V
-HSPLcom/android/okhttp/okio/Buffer;->writableSegment(I)Lcom/android/okhttp/okio/Segment;
-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;
-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;
-HSPLcom/android/okhttp/okio/ByteString;-><init>([B)V
-HSPLcom/android/okhttp/okio/ByteString;->hex()Ljava/lang/String;
-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;
-HSPLcom/android/okhttp/okio/ForwardingTimeout;->delegate()Lcom/android/okhttp/okio/Timeout;
-HSPLcom/android/okhttp/okio/ForwardingTimeout;->hasDeadline()Z
-HSPLcom/android/okhttp/okio/ForwardingTimeout;->setDelegate(Lcom/android/okhttp/okio/Timeout;)Lcom/android/okhttp/okio/ForwardingTimeout;
-HSPLcom/android/okhttp/okio/GzipSource;-><init>(Lcom/android/okhttp/okio/Source;)V
-HSPLcom/android/okhttp/okio/GzipSource;->checkEqual(Ljava/lang/String;II)V
-HSPLcom/android/okhttp/okio/GzipSource;->close()V
-HSPLcom/android/okhttp/okio/GzipSource;->consumeHeader()V
-HSPLcom/android/okhttp/okio/GzipSource;->consumeTrailer()V
-HSPLcom/android/okhttp/okio/GzipSource;->read(Lcom/android/okhttp/okio/Buffer;J)J
-HSPLcom/android/okhttp/okio/GzipSource;->updateCrc(Lcom/android/okhttp/okio/Buffer;JJ)V
-HSPLcom/android/okhttp/okio/InflaterSource;-><init>(Lcom/android/okhttp/okio/BufferedSource;Ljava/util/zip/Inflater;)V
-HSPLcom/android/okhttp/okio/InflaterSource;->close()V
-HSPLcom/android/okhttp/okio/InflaterSource;->read(Lcom/android/okhttp/okio/Buffer;J)J
-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
-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
-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
-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;
-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;
-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;
-HSPLcom/android/okhttp/okio/RealBufferedSink$1;-><init>(Lcom/android/okhttp/okio/RealBufferedSink;)V
-HSPLcom/android/okhttp/okio/RealBufferedSink$1;->close()V
-HSPLcom/android/okhttp/okio/RealBufferedSink$1;->flush()V
-HSPLcom/android/okhttp/okio/RealBufferedSink$1;->write([BII)V
-HSPLcom/android/okhttp/okio/RealBufferedSink;-><init>(Lcom/android/okhttp/okio/Sink;)V
-HSPLcom/android/okhttp/okio/RealBufferedSink;-><init>(Lcom/android/okhttp/okio/Sink;Lcom/android/okhttp/okio/Buffer;)V
-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
-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
-HSPLcom/android/okhttp/okio/RealBufferedSource$1;->close()V
-HSPLcom/android/okhttp/okio/RealBufferedSource$1;->read()I
-HSPLcom/android/okhttp/okio/RealBufferedSource$1;->read([BII)I
-HSPLcom/android/okhttp/okio/RealBufferedSource;-><init>(Lcom/android/okhttp/okio/Source;)V
-HSPLcom/android/okhttp/okio/RealBufferedSource;-><init>(Lcom/android/okhttp/okio/Source;Lcom/android/okhttp/okio/Buffer;)V
-HSPLcom/android/okhttp/okio/RealBufferedSource;->access$000(Lcom/android/okhttp/okio/RealBufferedSource;)Z
-HSPLcom/android/okhttp/okio/RealBufferedSource;->buffer()Lcom/android/okhttp/okio/Buffer;
-HSPLcom/android/okhttp/okio/RealBufferedSource;->close()V
-HSPLcom/android/okhttp/okio/RealBufferedSource;->exhausted()Z
-HSPLcom/android/okhttp/okio/RealBufferedSource;->indexOf(B)J
-HSPLcom/android/okhttp/okio/RealBufferedSource;->indexOf(BJ)J
-HSPLcom/android/okhttp/okio/RealBufferedSource;->inputStream()Ljava/io/InputStream;
-HSPLcom/android/okhttp/okio/RealBufferedSource;->read(Lcom/android/okhttp/okio/Buffer;J)J
-HSPLcom/android/okhttp/okio/RealBufferedSource;->readHexadecimalUnsignedLong()J
-HSPLcom/android/okhttp/okio/RealBufferedSource;->readIntLe()I
-HSPLcom/android/okhttp/okio/RealBufferedSource;->readShort()S
-HSPLcom/android/okhttp/okio/RealBufferedSource;->readUtf8LineStrict()Ljava/lang/String;
-HSPLcom/android/okhttp/okio/RealBufferedSource;->request(J)Z
-HSPLcom/android/okhttp/okio/RealBufferedSource;->require(J)V
-HSPLcom/android/okhttp/okio/RealBufferedSource;->skip(J)V
-HSPLcom/android/okhttp/okio/RealBufferedSource;->timeout()Lcom/android/okhttp/okio/Timeout;
-HSPLcom/android/okhttp/okio/Segment;-><init>()V
-HSPLcom/android/okhttp/okio/Segment;-><init>(Lcom/android/okhttp/okio/Segment;)V
-HSPLcom/android/okhttp/okio/Segment;-><init>([BII)V
-HSPLcom/android/okhttp/okio/Segment;->compact()V
-HSPLcom/android/okhttp/okio/Segment;->pop()Lcom/android/okhttp/okio/Segment;
-HSPLcom/android/okhttp/okio/Segment;->push(Lcom/android/okhttp/okio/Segment;)Lcom/android/okhttp/okio/Segment;
-HSPLcom/android/okhttp/okio/Segment;->split(I)Lcom/android/okhttp/okio/Segment;
-HSPLcom/android/okhttp/okio/Segment;->writeTo(Lcom/android/okhttp/okio/Segment;I)V
-HSPLcom/android/okhttp/okio/SegmentPool;->recycle(Lcom/android/okhttp/okio/Segment;)V
-HSPLcom/android/okhttp/okio/SegmentPool;->take()Lcom/android/okhttp/okio/Segment;
-HSPLcom/android/okhttp/okio/Timeout;-><init>()V
-HSPLcom/android/okhttp/okio/Timeout;->clearDeadline()Lcom/android/okhttp/okio/Timeout;
-HSPLcom/android/okhttp/okio/Timeout;->clearTimeout()Lcom/android/okhttp/okio/Timeout;
-HSPLcom/android/okhttp/okio/Timeout;->deadlineNanoTime()J
-HSPLcom/android/okhttp/okio/Timeout;->deadlineNanoTime(J)Lcom/android/okhttp/okio/Timeout;
-HSPLcom/android/okhttp/okio/Timeout;->hasDeadline()Z
-HSPLcom/android/okhttp/okio/Timeout;->throwIfReached()V
-HSPLcom/android/okhttp/okio/Timeout;->timeout(JLjava/util/concurrent/TimeUnit;)Lcom/android/okhttp/okio/Timeout;
-HSPLcom/android/okhttp/okio/Timeout;->timeoutNanos()J
-HSPLcom/android/okhttp/okio/Util;->checkOffsetAndCount(JJJ)V
-HSPLcom/android/okhttp/okio/Util;->reverseBytesInt(I)I
-HSPLcom/android/org/bouncycastle/asn1/ASN1BitString;-><init>([BI)V
-HSPLcom/android/org/bouncycastle/asn1/ASN1EncodableVector;-><init>()V
-HSPLcom/android/org/bouncycastle/asn1/ASN1EncodableVector;-><init>(I)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;
-HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;-><init>(Ljava/io/InputStream;)V
-HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;-><init>(Ljava/io/InputStream;IZ)V
-HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;-><init>([B)V
-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;
-HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->getBuffer(Lcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;[[B)[B
-HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->readLength(Ljava/io/InputStream;IZ)I
-HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->readObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
-HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->readVector(Lcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;)Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;
-HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;-><init>(Ljava/math/BigInteger;)V
-HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;Z)V
-HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->encodedLength()I
-HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/ASN1Integer;
-HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->getValue()Ljava/math/BigInteger;
-HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->isMalformed([B)Z
-HSPLcom/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>([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;Z)V
-HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->encodedLength()I
-HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->getBody()[B
-HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->hashCode()I
-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
-HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->write(I)V
-HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->write([BII)V
-HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->writeEncoded(ZI[B)V
-HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->writeLength(I)V
-HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->writeObject(Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
-HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->equals(Lcom/android/org/bouncycastle/asn1/ASN1Primitive;)Z
-HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->fromByteArray([B)Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
-HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
-HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->toDERObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
-HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence$1;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)V
-HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence$1;->nextElement()Ljava/lang/Object;
-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;->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/DERBitString;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/DERBitString;
-HSPLcom/android/org/bouncycastle/asn1/DERNull;->encodedLength()I
-HSPLcom/android/org/bouncycastle/asn1/DEROutputStream;->getDERSubStream()Lcom/android/org/bouncycastle/asn1/DEROutputStream;
-HSPLcom/android/org/bouncycastle/asn1/DERSequence;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;Z)V
-HSPLcom/android/org/bouncycastle/asn1/DERSequence;->encodedLength()I
-HSPLcom/android/org/bouncycastle/asn1/DERSequence;->getBodyLength()I
-HSPLcom/android/org/bouncycastle/asn1/DERSequence;->toDERObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
-HSPLcom/android/org/bouncycastle/asn1/DLFactory;-><clinit>()V
-HSPLcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;->read()I
-HSPLcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;->read([BII)I
-HSPLcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;->toByteArray()[B
-HSPLcom/android/org/bouncycastle/asn1/StreamUtil;->calculateBodyLength(I)I
-HSPLcom/android/org/bouncycastle/asn1/StreamUtil;->findLimit(Ljava/io/InputStream;)I
-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;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
-HSPLcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
-HSPLcom/android/org/bouncycastle/crypto/BufferedBlockCipher;->reset()V
-HSPLcom/android/org/bouncycastle/crypto/CryptoServicesRegistrar;->getSecureRandom()Ljava/security/SecureRandom;
-HSPLcom/android/org/bouncycastle/crypto/PBEParametersGenerator;->PKCS12PasswordToBytes([C)[B
-HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA1;-><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/engines/AESEngine;-><init>()V
-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;->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/engines/DESEngine;-><clinit>()V
-HSPLcom/android/org/bouncycastle/crypto/engines/DESEngine;-><init>()V
-HSPLcom/android/org/bouncycastle/crypto/engines/DESEngine;->generateWorkingKey(Z[B)[I
-HSPLcom/android/org/bouncycastle/crypto/generators/PKCS12ParametersGenerator;->generateDerivedKey(II)[B
-HSPLcom/android/org/bouncycastle/crypto/macs/HMac;-><clinit>()V
-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([BII)V
-HSPLcom/android/org/bouncycastle/crypto/modes/CBCBlockCipher;-><init>(Lcom/android/org/bouncycastle/crypto/BlockCipher;)V
-HSPLcom/android/org/bouncycastle/crypto/modes/CBCBlockCipher;->getBlockSize()I
-HSPLcom/android/org/bouncycastle/crypto/modes/CBCBlockCipher;->init(ZLcom/android/org/bouncycastle/crypto/CipherParameters;)V
-HSPLcom/android/org/bouncycastle/crypto/modes/CBCBlockCipher;->reset()V
-HSPLcom/android/org/bouncycastle/crypto/paddings/PKCS7Padding;->init(Ljava/security/SecureRandom;)V
-HSPLcom/android/org/bouncycastle/crypto/paddings/PKCS7Padding;->padCount([B)I
-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/params/AsymmetricKeyParameter;-><init>(Z)V
-HSPLcom/android/org/bouncycastle/crypto/params/DSAKeyParameters;-><init>(ZLcom/android/org/bouncycastle/crypto/params/DSAParameters;)V
-HSPLcom/android/org/bouncycastle/crypto/params/DSAParameters;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
-HSPLcom/android/org/bouncycastle/crypto/params/DSAPublicKeyParameters;-><init>(Ljava/math/BigInteger;Lcom/android/org/bouncycastle/crypto/params/DSAParameters;)V
-HSPLcom/android/org/bouncycastle/crypto/params/KeyParameter;-><init>([B)V
-HSPLcom/android/org/bouncycastle/crypto/params/ParametersWithIV;-><init>(Lcom/android/org/bouncycastle/crypto/CipherParameters;[BII)V
-HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/DSA$Mappings;->configure(Lcom/android/org/bouncycastle/jcajce/provider/config/ConfigurableProvider;)V
-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;->readObject(Ljava/io/ObjectInputStream;)V
-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/keystore/bc/BcKeyStoreSpi$Std;-><init>()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/security/cert/Certificate;)V
-HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;-><init>(I)V
-HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineAliases()Ljava/util/Enumeration;
-HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineGetCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate;
-HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineLoad(Ljava/io/InputStream;[C)V
-HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineSetCertificateEntry(Ljava/lang/String;Ljava/security/cert/Certificate;)V
-HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineSize()I
-HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/AES$ECB;-><init>()V
-HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/PBES2AlgorithmParameters$Mappings;->configure(Lcom/android/org/bouncycastle/jcajce/provider/config/ConfigurableProvider;)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;->getEncoded()[B
-HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey;->isDestroyed()Z
-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;->doFinal([BI)I
-HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->getOutputSize(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;->engineDoFinal([BII)[B
-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/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
-HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseWrapCipher;-><init>()V
-HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util;->convertPassword(ILjavax/crypto/spec/PBEKeySpec;)[B
-HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util;->makePBEGenerator(II)Lcom/android/org/bouncycastle/crypto/PBEParametersGenerator;
-HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util;->makePBEMacParameters(Ljavax/crypto/spec/PBEKeySpec;III)Lcom/android/org/bouncycastle/crypto/CipherParameters;
-HSPLcom/android/org/bouncycastle/jcajce/util/BCJcaJceHelper;-><init>()V
-HSPLcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider;->addAlgorithm(Ljava/lang/String;Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/lang/String;)V
-HSPLcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider;->addAlgorithm(Ljava/lang/String;Ljava/lang/String;)V
-HSPLcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider;->addAttributes(Ljava/lang/String;Ljava/util/Map;)V
-HSPLcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider;->loadAlgorithms([Ljava/lang/String;Ljava/lang/String;)V
-HSPLcom/android/org/bouncycastle/jce/provider/CertStoreCollectionSpi;-><init>(Ljava/security/cert/CertStoreParameters;)V
-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/BigIntegers;-><clinit>()V
-HSPLcom/android/org/bouncycastle/util/Integers;->valueOf(I)Ljava/lang/Integer;
-HSPLcom/android/org/bouncycastle/util/Pack;->littleEndianToInt([BI)I
-HSPLcom/android/org/bouncycastle/util/Properties$1;->run()Ljava/lang/Object;
-HSPLcom/android/org/bouncycastle/util/Properties;->isOverrideSet(Ljava/lang/String;)Z
-HSPLcom/android/org/bouncycastle/util/Strings;->toUpperCase(Ljava/lang/String;)Ljava/lang/String;
-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;->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;->getText()Ljava/lang/String;
-HSPLcom/android/org/kxml2/io/KXmlParser;->keepNamespaceAttributes()V
-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;->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;->append(C)V
-HSPLcom/android/org/kxml2/io/KXmlSerializer;->append(Ljava/lang/String;)V
-HSPLcom/android/org/kxml2/io/KXmlSerializer;->append(Ljava/lang/String;II)V
-HSPLcom/android/org/kxml2/io/KXmlSerializer;->attribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
-HSPLcom/android/org/kxml2/io/KXmlSerializer;->check(Z)V
-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
-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
-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;
-HSPLcom/android/org/kxml2/io/KXmlSerializer;->writeEscaped(Ljava/lang/String;I)V
-HSPLcom/android/server/LocalServices;->getService(Ljava/lang/Class;)Ljava/lang/Object;
-HSPLcom/android/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I
-HSPLcom/android/telephony/Rlog;->e(Ljava/lang/String;Ljava/lang/String;)I
-HSPLcom/android/telephony/Rlog;->log(ILjava/lang/String;Ljava/lang/String;)I
-HSPLcom/android/telephony/Rlog;->pii(ZLjava/lang/Object;)Ljava/lang/String;
-HSPLcom/android/telephony/Rlog;->w(Ljava/lang/String;Ljava/lang/String;)I
-HSPLcom/android/text/flags/FeatureFlagsImpl;-><init>()V
-HSPLcom/android/text/flags/Flags;-><clinit>()V
-HSPLcom/android/window/flags/FeatureFlagsImpl;-><init>()V
-HSPLcom/android/window/flags/FeatureFlagsImpl;->bundleClientTransactionFlag()Z
-HSPLcom/android/window/flags/Flags;-><clinit>()V
-HSPLcom/android/window/flags/Flags;->bundleClientTransactionFlag()Z+]Lcom/android/window/flags/FeatureFlags;Lcom/android/window/flags/FeatureFlagsImpl;
-HSPLcom/google/android/collect/Lists;->newArrayList()Ljava/util/ArrayList;
-HSPLcom/google/android/collect/Lists;->newArrayList([Ljava/lang/Object;)Ljava/util/ArrayList;
-HSPLcom/google/android/collect/Maps;->newHashMap()Ljava/util/HashMap;
-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;->eglGetDisplay(Ljava/lang/Object;)Ljavax/microedition/khronos/egl/EGLDisplay;
-HSPLcom/google/android/gles_jni/EGLSurfaceImpl;-><init>(J)V
-HSPLdalvik/system/AppSpecializationHooks;->handleCompatChangesBeforeBindingApplication()V
-HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;)V
-HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;)V
-HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;)V
-HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;Z)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;
-HSPLdalvik/system/BaseDexClassLoader;->findResource(Ljava/lang/String;)Ljava/net/URL;
-HSPLdalvik/system/BaseDexClassLoader;->findResources(Ljava/lang/String;)Ljava/util/Enumeration;
-HSPLdalvik/system/BaseDexClassLoader;->getLdLibraryPath()Ljava/lang/String;
-HSPLdalvik/system/BaseDexClassLoader;->getPackage(Ljava/lang/String;)Ljava/lang/Package;
-HSPLdalvik/system/BaseDexClassLoader;->reportClassLoaderChain()V
-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
-HSPLdalvik/system/BlockGuard$1;->onUnbufferedIO()V
-HSPLdalvik/system/BlockGuard$1;->onWriteToDisk()V
-HSPLdalvik/system/BlockGuard$2;->onPathAccess(Ljava/lang/String;)V
-HSPLdalvik/system/BlockGuard$3;->initialValue()Ldalvik/system/BlockGuard$Policy;
-HSPLdalvik/system/BlockGuard$3;->initialValue()Ljava/lang/Object;
-HSPLdalvik/system/BlockGuard;->getThreadPolicy()Ldalvik/system/BlockGuard$Policy;
-HSPLdalvik/system/BlockGuard;->getVmPolicy()Ldalvik/system/BlockGuard$VmPolicy;
-HSPLdalvik/system/BlockGuard;->setThreadPolicy(Ldalvik/system/BlockGuard$Policy;)V
-HSPLdalvik/system/BlockGuard;->setVmPolicy(Ldalvik/system/BlockGuard$VmPolicy;)V
-HSPLdalvik/system/CloseGuard;-><init>()V
-HSPLdalvik/system/CloseGuard;->close()V
-HSPLdalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard;
-HSPLdalvik/system/CloseGuard;->getReporter()Ldalvik/system/CloseGuard$Reporter;
-HSPLdalvik/system/CloseGuard;->open(Ljava/lang/String;)V
-HSPLdalvik/system/CloseGuard;->openWithCallSite(Ljava/lang/String;Ljava/lang/String;)V
-HSPLdalvik/system/CloseGuard;->setEnabled(Z)V
-HSPLdalvik/system/CloseGuard;->setReporter(Ldalvik/system/CloseGuard$Reporter;)V
-HSPLdalvik/system/CloseGuard;->warnIfOpen()V
-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
-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;->defineClass(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/Object;Ldalvik/system/DexFile;Ljava/util/List;)Ljava/lang/Class;
-HSPLdalvik/system/DexFile;->finalize()V
-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;->verifyInBackground(Ljava/lang/ClassLoader;)V
-HSPLdalvik/system/DexPathList$Element;->-$$Nest$fgetdexFile(Ldalvik/system/DexPathList$Element;)Ldalvik/system/DexFile;
-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;->findClass(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/List;)Ljava/lang/Class;
-HSPLdalvik/system/DexPathList$Element;->findResource(Ljava/lang/String;)Ljava/net/URL;
-HSPLdalvik/system/DexPathList$Element;->maybeInit()V
-HSPLdalvik/system/DexPathList$Element;->toString()Ljava/lang/String;
-HSPLdalvik/system/DexPathList$NativeLibraryElement;-><init>(Ljava/io/File;)V
-HSPLdalvik/system/DexPathList$NativeLibraryElement;-><init>(Ljava/io/File;Ljava/lang/String;)V
-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;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;
-HSPLdalvik/system/DexPathList;->findLibrary(Ljava/lang/String;)Ljava/lang/String;
-HSPLdalvik/system/DexPathList;->findResource(Ljava/lang/String;)Ljava/net/URL;
-HSPLdalvik/system/DexPathList;->findResources(Ljava/lang/String;)Ljava/util/Enumeration;
-HSPLdalvik/system/DexPathList;->getAllNativeLibraryDirectories()Ljava/util/List;
-HSPLdalvik/system/DexPathList;->getNativeLibraryDirectories()Ljava/util/List;
-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;->maybeRunBackgroundVerification(Ljava/lang/ClassLoader;)V
-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/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
-HSPLdalvik/system/PathClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;)V
-HSPLdalvik/system/RuntimeHooks;->getTimeZoneIdSupplier()Ljava/util/function/Supplier;
-HSPLdalvik/system/RuntimeHooks;->setTimeZoneIdSupplier(Ljava/util/function/Supplier;)V
-HSPLdalvik/system/RuntimeHooks;->setUncaughtExceptionPreHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V
-HSPLdalvik/system/SocketTagger;-><init>()V
-HSPLdalvik/system/SocketTagger;->get()Ldalvik/system/SocketTagger;
-HSPLdalvik/system/SocketTagger;->set(Ldalvik/system/SocketTagger;)V
-HSPLdalvik/system/SocketTagger;->tag(Ljava/net/Socket;)V
-HSPLdalvik/system/SocketTagger;->untag(Ljava/net/Socket;)V
-HSPLdalvik/system/VMRuntime$SdkVersionContainer;->-$$Nest$sfgetsdkVersion()I
-HSPLdalvik/system/VMRuntime;->getInstructionSet(Ljava/lang/String;)Ljava/lang/String;
-HSPLdalvik/system/VMRuntime;->getRuntime()Ldalvik/system/VMRuntime;
-HSPLdalvik/system/VMRuntime;->getSdkVersion()I
-HSPLdalvik/system/VMRuntime;->getTargetSdkVersion()I
-HSPLdalvik/system/VMRuntime;->hiddenApiUsed(ILjava/lang/String;Ljava/lang/String;IZ)V
-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;->setTargetSdkVersion(I)V
-HSPLdalvik/system/ZipPathValidator$Callback;->onZipEntryAccess(Ljava/lang/String;)V
-HSPLdalvik/system/ZipPathValidator;->clearCallback()V
-HSPLdalvik/system/ZipPathValidator;->getInstance()Ldalvik/system/ZipPathValidator$Callback;
-HSPLdalvik/system/ZipPathValidator;->isClear()Z
-HSPLdalvik/system/ZipPathValidator;->setCallback(Ldalvik/system/ZipPathValidator$Callback;)V
-HSPLdalvik/system/ZygoteHooks;->cleanLocaleCaches()V
-HSPLdalvik/system/ZygoteHooks;->gcAndFinalize()V
-HSPLdalvik/system/ZygoteHooks;->isIndefiniteThreadSuspensionSafe()Z
-HSPLdalvik/system/ZygoteHooks;->onEndPreload()V
-HSPLdalvik/system/ZygoteHooks;->postForkChild(IZZLjava/lang/String;)V
-HSPLdalvik/system/ZygoteHooks;->postForkCommon()V
-HSPLdalvik/system/ZygoteHooks;->preFork()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
-HSPLjava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;)V
-HSPLjava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;I)V
-HSPLjava/io/BufferedInputStream;->available()I
-HSPLjava/io/BufferedInputStream;->close()V
-HSPLjava/io/BufferedInputStream;->fill()V
-HSPLjava/io/BufferedInputStream;->getBufIfOpen()[B
-HSPLjava/io/BufferedInputStream;->getInIfOpen()Ljava/io/InputStream;
-HSPLjava/io/BufferedInputStream;->mark(I)V
-HSPLjava/io/BufferedInputStream;->markSupported()Z
-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
-HSPLjava/io/BufferedOutputStream;->flushBuffer()V
-HSPLjava/io/BufferedOutputStream;->write(I)V
-HSPLjava/io/BufferedOutputStream;->write([BII)V
-HSPLjava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
-HSPLjava/io/BufferedReader;-><init>(Ljava/io/Reader;I)V
-HSPLjava/io/BufferedReader;->close()V
-HSPLjava/io/BufferedReader;->ensureOpen()V
-HSPLjava/io/BufferedReader;->fill()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;
-HSPLjava/io/BufferedWriter;-><init>(Ljava/io/Writer;)V
-HSPLjava/io/BufferedWriter;-><init>(Ljava/io/Writer;I)V
-HSPLjava/io/BufferedWriter;->close()V
-HSPLjava/io/BufferedWriter;->ensureOpen()V
-HSPLjava/io/BufferedWriter;->flush()V
-HSPLjava/io/BufferedWriter;->flushBuffer()V
-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
-HSPLjava/io/ByteArrayInputStream;->close()V
-HSPLjava/io/ByteArrayInputStream;->mark(I)V
-HSPLjava/io/ByteArrayInputStream;->markSupported()Z
-HSPLjava/io/ByteArrayInputStream;->read()I
-HSPLjava/io/ByteArrayInputStream;->read([BII)I
-HSPLjava/io/ByteArrayInputStream;->reset()V
-HSPLjava/io/ByteArrayInputStream;->skip(J)J
-HSPLjava/io/ByteArrayOutputStream;-><init>()V
-HSPLjava/io/ByteArrayOutputStream;-><init>(I)V
-HSPLjava/io/ByteArrayOutputStream;->close()V
-HSPLjava/io/ByteArrayOutputStream;->ensureCapacity(I)V
-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
-HSPLjava/io/CharArrayWriter;->toString()Ljava/lang/String;
-HSPLjava/io/CharArrayWriter;->write(I)V
-HSPLjava/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;->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;->write(I)V
-HSPLjava/io/DataOutputStream;->write([BII)V
-HSPLjava/io/DataOutputStream;->writeBoolean(Z)V
-HSPLjava/io/DataOutputStream;->writeByte(I)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/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
-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;->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;)Ljava/io/File;
-HSPLjava/io/File;->delete()Z
-HSPLjava/io/File;->equals(Ljava/lang/Object;)Z
-HSPLjava/io/File;->exists()Z
-HSPLjava/io/File;->getAbsoluteFile()Ljava/io/File;
-HSPLjava/io/File;->getAbsolutePath()Ljava/lang/String;
-HSPLjava/io/File;->getCanonicalFile()Ljava/io/File;
-HSPLjava/io/File;->getCanonicalPath()Ljava/lang/String;
-HSPLjava/io/File;->getFreeSpace()J
-HSPLjava/io/File;->getName()Ljava/lang/String;
-HSPLjava/io/File;->getParent()Ljava/lang/String;
-HSPLjava/io/File;->getParentFile()Ljava/io/File;
-HSPLjava/io/File;->getPath()Ljava/lang/String;
-HSPLjava/io/File;->getPrefixLength()I
-HSPLjava/io/File;->getTotalSpace()J
-HSPLjava/io/File;->getUsableSpace()J
-HSPLjava/io/File;->hashCode()I
-HSPLjava/io/File;->isAbsolute()Z
-HSPLjava/io/File;->isDirectory()Z
-HSPLjava/io/File;->isFile()Z
-HSPLjava/io/File;->isInvalid()Z
-HSPLjava/io/File;->lastModified()J
-HSPLjava/io/File;->length()J
-HSPLjava/io/File;->list()[Ljava/lang/String;
-HSPLjava/io/File;->list(Ljava/io/FilenameFilter;)[Ljava/lang/String;
-HSPLjava/io/File;->listFiles()[Ljava/io/File;
-HSPLjava/io/File;->listFiles(Ljava/io/FileFilter;)[Ljava/io/File;
-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(Z)Z
-HSPLjava/io/File;->setExecutable(ZZ)Z
-HSPLjava/io/File;->setLastModified(J)Z
-HSPLjava/io/File;->setReadable(Z)Z
-HSPLjava/io/File;->setReadable(ZZ)Z
-HSPLjava/io/File;->setWritable(Z)Z
-HSPLjava/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;
-HSPLjava/io/File;->toURI()Ljava/net/URI;
-HSPLjava/io/FileDescriptor$1;->set(Ljava/io/FileDescriptor;I)V
-HSPLjava/io/FileDescriptor;-><init>()V
-HSPLjava/io/FileDescriptor;->cloneForFork()V
-HSPLjava/io/FileDescriptor;->getInt$()I
-HSPLjava/io/FileDescriptor;->getOwnerId$()J
-HSPLjava/io/FileDescriptor;->isSocket$()Z
-HSPLjava/io/FileDescriptor;->release$()Ljava/io/FileDescriptor;
-HSPLjava/io/FileDescriptor;->setInt$(I)V
-HSPLjava/io/FileDescriptor;->setOwnerId$(J)V
-HSPLjava/io/FileDescriptor;->valid()Z
-HSPLjava/io/FileInputStream;-><init>(Ljava/io/File;)V
-HSPLjava/io/FileInputStream;-><init>(Ljava/io/FileDescriptor;)V
-HSPLjava/io/FileInputStream;-><init>(Ljava/io/FileDescriptor;Z)V
-HSPLjava/io/FileInputStream;-><init>(Ljava/lang/String;)V
-HSPLjava/io/FileInputStream;->available()I
-HSPLjava/io/FileInputStream;->close()V
-HSPLjava/io/FileInputStream;->finalize()V
-HSPLjava/io/FileInputStream;->getChannel()Ljava/nio/channels/FileChannel;
-HSPLjava/io/FileInputStream;->getFD()Ljava/io/FileDescriptor;
-HSPLjava/io/FileInputStream;->read()I
-HSPLjava/io/FileInputStream;->read([B)I
-HSPLjava/io/FileInputStream;->read([BII)I
-HSPLjava/io/FileInputStream;->skip(J)J
-HSPLjava/io/FileNotFoundException;-><init>(Ljava/lang/String;)V
-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;
-HSPLjava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor;
-HSPLjava/io/FileOutputStream;->write(I)V
-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
-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
-HSPLjava/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
-HSPLjava/io/ObjectInputStream$BlockDataInputStream;->currentBlockRemaining()I
-HSPLjava/io/ObjectInputStream$BlockDataInputStream;->getBlockDataMode()Z
-HSPLjava/io/ObjectInputStream$BlockDataInputStream;->peek()I
-HSPLjava/io/ObjectInputStream$BlockDataInputStream;->peekByte()B
-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
-HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readBoolean()Z
-HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readByte()B
-HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readFloat()F
-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;
-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$GetField;-><init>()V
-HSPLjava/io/ObjectInputStream$GetFieldImpl;-><init>(Ljava/io/ObjectInputStream;Ljava/io/ObjectStreamClass;)V
-HSPLjava/io/ObjectInputStream$GetFieldImpl;->get(Ljava/lang/String;D)D
-HSPLjava/io/ObjectInputStream$GetFieldImpl;->get(Ljava/lang/String;I)I
-HSPLjava/io/ObjectInputStream$GetFieldImpl;->get(Ljava/lang/String;J)J
-HSPLjava/io/ObjectInputStream$GetFieldImpl;->get(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/io/ObjectInputStream$GetFieldImpl;->get(Ljava/lang/String;Z)Z
-HSPLjava/io/ObjectInputStream$GetFieldImpl;->getFieldOffset(Ljava/lang/String;Ljava/lang/Class;)I
-HSPLjava/io/ObjectInputStream$GetFieldImpl;->readFields()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
-HSPLjava/io/ObjectInputStream$HandleTable;->finish(I)V
-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
-HSPLjava/io/ObjectInputStream$PeekInputStream;->peek()I
-HSPLjava/io/ObjectInputStream$PeekInputStream;->read()I
-HSPLjava/io/ObjectInputStream$PeekInputStream;->read([BII)I
-HSPLjava/io/ObjectInputStream$PeekInputStream;->readFully([BII)V
-HSPLjava/io/ObjectInputStream$ValidationList;-><init>()V
-HSPLjava/io/ObjectInputStream$ValidationList;->clear()V
-HSPLjava/io/ObjectInputStream$ValidationList;->doCallbacks()V
-HSPLjava/io/ObjectInputStream;-><init>(Ljava/io/InputStream;)V
-HSPLjava/io/ObjectInputStream;->checkResolve(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/io/ObjectInputStream;->clear()V
-HSPLjava/io/ObjectInputStream;->close()V
-HSPLjava/io/ObjectInputStream;->defaultReadFields(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
-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;
-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;->readFields()Ljava/io/ObjectInputStream$GetField;
-HSPLjava/io/ObjectInputStream;->readFloat()F
-HSPLjava/io/ObjectInputStream;->readHandle(Z)Ljava/lang/Object;
-HSPLjava/io/ObjectInputStream;->readInt()I
-HSPLjava/io/ObjectInputStream;->readLong()J
-HSPLjava/io/ObjectInputStream;->readNonProxyDesc(Z)Ljava/io/ObjectStreamClass;
-HSPLjava/io/ObjectInputStream;->readNull()Ljava/lang/Object;
-HSPLjava/io/ObjectInputStream;->readObject()Ljava/lang/Object;
-HSPLjava/io/ObjectInputStream;->readObject0(Z)Ljava/lang/Object;
-HSPLjava/io/ObjectInputStream;->readOrdinaryObject(Z)Ljava/lang/Object;
-HSPLjava/io/ObjectInputStream;->readSerialData(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
-HSPLjava/io/ObjectInputStream;->readShort()S
-HSPLjava/io/ObjectInputStream;->readStreamHeader()V
-HSPLjava/io/ObjectInputStream;->readString(Z)Ljava/lang/String;
-HSPLjava/io/ObjectInputStream;->readTypeString()Ljava/lang/String;
-HSPLjava/io/ObjectInputStream;->readUTF()Ljava/lang/String;
-HSPLjava/io/ObjectInputStream;->resolveClass(Ljava/io/ObjectStreamClass;)Ljava/lang/Class;
-HSPLjava/io/ObjectInputStream;->skipCustomData()V
-HSPLjava/io/ObjectInputStream;->verifySubclass()V
-HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;-><init>(Ljava/io/OutputStream;)V
-HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->close()V
-HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->drain()V
-HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->flush()V
-HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->getUTFLength(Ljava/lang/String;)J
-HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->setBlockDataMode(Z)Z
-HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->warnIfClosed()V
-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
-HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeFloat(F)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$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$PutField;-><init>()V
-HSPLjava/io/ObjectOutputStream$PutFieldImpl;-><init>(Ljava/io/ObjectOutputStream;Ljava/io/ObjectStreamClass;)V
-HSPLjava/io/ObjectOutputStream$PutFieldImpl;->getFieldOffset(Ljava/lang/String;Ljava/lang/Class;)I
-HSPLjava/io/ObjectOutputStream$PutFieldImpl;->put(Ljava/lang/String;D)V
-HSPLjava/io/ObjectOutputStream$PutFieldImpl;->put(Ljava/lang/String;I)V
-HSPLjava/io/ObjectOutputStream$PutFieldImpl;->put(Ljava/lang/String;J)V
-HSPLjava/io/ObjectOutputStream$PutFieldImpl;->put(Ljava/lang/String;Ljava/lang/Object;)V
-HSPLjava/io/ObjectOutputStream$PutFieldImpl;->put(Ljava/lang/String;Z)V
-HSPLjava/io/ObjectOutputStream$PutFieldImpl;->writeFields()V
-HSPLjava/io/ObjectOutputStream$ReplaceTable;-><init>(IF)V
-HSPLjava/io/ObjectOutputStream$ReplaceTable;->assign(Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLjava/io/ObjectOutputStream$ReplaceTable;->lookup(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/io/ObjectOutputStream;-><init>(Ljava/io/OutputStream;)V
-HSPLjava/io/ObjectOutputStream;->annotateClass(Ljava/lang/Class;)V
-HSPLjava/io/ObjectOutputStream;->close()V
-HSPLjava/io/ObjectOutputStream;->defaultWriteFields(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
-HSPLjava/io/ObjectOutputStream;->defaultWriteObject()V
-HSPLjava/io/ObjectOutputStream;->flush()V
-HSPLjava/io/ObjectOutputStream;->isCustomSubclass()Z
-HSPLjava/io/ObjectOutputStream;->putFields()Ljava/io/ObjectOutputStream$PutField;
-HSPLjava/io/ObjectOutputStream;->verifySubclass()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
-HSPLjava/io/ObjectOutputStream;->writeFields()V
-HSPLjava/io/ObjectOutputStream;->writeFloat(F)V
-HSPLjava/io/ObjectOutputStream;->writeHandle(I)V
-HSPLjava/io/ObjectOutputStream;->writeInt(I)V
-HSPLjava/io/ObjectOutputStream;->writeLong(J)V
-HSPLjava/io/ObjectOutputStream;->writeNonProxyDesc(Ljava/io/ObjectStreamClass;Z)V
-HSPLjava/io/ObjectOutputStream;->writeNull()V
-HSPLjava/io/ObjectOutputStream;->writeObject(Ljava/lang/Object;)V
-HSPLjava/io/ObjectOutputStream;->writeObject0(Ljava/lang/Object;Z)V
-HSPLjava/io/ObjectOutputStream;->writeOrdinaryObject(Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V
-HSPLjava/io/ObjectOutputStream;->writeSerialData(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
-HSPLjava/io/ObjectOutputStream;->writeShort(I)V
-HSPLjava/io/ObjectOutputStream;->writeStreamHeader()V
-HSPLjava/io/ObjectOutputStream;->writeString(Ljava/lang/String;Z)V
-HSPLjava/io/ObjectOutputStream;->writeTypeString(Ljava/lang/String;)V
-HSPLjava/io/ObjectOutputStream;->writeUTF(Ljava/lang/String;)V
-HSPLjava/io/ObjectStreamClass$1;-><init>(Ljava/io/ObjectStreamClass;)V
-HSPLjava/io/ObjectStreamClass$1;->run()Ljava/lang/Long;
-HSPLjava/io/ObjectStreamClass$1;->run()Ljava/lang/Object;
-HSPLjava/io/ObjectStreamClass$2;-><init>(Ljava/io/ObjectStreamClass;Ljava/lang/Class;)V
-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;->-$$Nest$sfgetlocalDescsQueue()Ljava/lang/ref/ReferenceQueue;
-HSPLjava/io/ObjectStreamClass$Caches;->-$$Nest$sfgetreflectorsQueue()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$EntryFuture-IA;)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
-HSPLjava/io/ObjectStreamClass$FieldReflector;->getFields()[Ljava/io/ObjectStreamField;
-HSPLjava/io/ObjectStreamClass$FieldReflector;->getObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V
-HSPLjava/io/ObjectStreamClass$FieldReflector;->getPrimFieldValues(Ljava/lang/Object;[B)V
-HSPLjava/io/ObjectStreamClass$FieldReflector;->setObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V
-HSPLjava/io/ObjectStreamClass$FieldReflector;->setPrimFieldValues(Ljava/lang/Object;[B)V
-HSPLjava/io/ObjectStreamClass$FieldReflectorKey;-><init>(Ljava/lang/Class;[Ljava/io/ObjectStreamField;Ljava/lang/ref/ReferenceQueue;)V
-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
-HSPLjava/io/ObjectStreamClass;->-$$Nest$fgetexternalizable(Ljava/io/ObjectStreamClass;)Z
-HSPLjava/io/ObjectStreamClass;->-$$Nest$fgetisEnum(Ljava/io/ObjectStreamClass;)Z
-HSPLjava/io/ObjectStreamClass;->-$$Nest$fgetwriteObjectMethod(Ljava/io/ObjectStreamClass;)Ljava/lang/reflect/Method;
-HSPLjava/io/ObjectStreamClass;->-$$Nest$fputcons(Ljava/io/ObjectStreamClass;Ljava/lang/reflect/Constructor;)V
-HSPLjava/io/ObjectStreamClass;->-$$Nest$fputfields(Ljava/io/ObjectStreamClass;[Ljava/io/ObjectStreamField;)V
-HSPLjava/io/ObjectStreamClass;->-$$Nest$fputhasWriteObjectData(Ljava/io/ObjectStreamClass;Z)V
-HSPLjava/io/ObjectStreamClass;->-$$Nest$fputreadObjectMethod(Ljava/io/ObjectStreamClass;Ljava/lang/reflect/Method;)V
-HSPLjava/io/ObjectStreamClass;->-$$Nest$fputreadObjectNoDataMethod(Ljava/io/ObjectStreamClass;Ljava/lang/reflect/Method;)V
-HSPLjava/io/ObjectStreamClass;->-$$Nest$fputreadResolveMethod(Ljava/io/ObjectStreamClass;Ljava/lang/reflect/Method;)V
-HSPLjava/io/ObjectStreamClass;->-$$Nest$fputsuid(Ljava/io/ObjectStreamClass;Ljava/lang/Long;)V
-HSPLjava/io/ObjectStreamClass;->-$$Nest$fputwriteObjectMethod(Ljava/io/ObjectStreamClass;Ljava/lang/reflect/Method;)V
-HSPLjava/io/ObjectStreamClass;->-$$Nest$fputwriteReplaceMethod(Ljava/io/ObjectStreamClass;Ljava/lang/reflect/Method;)V
-HSPLjava/io/ObjectStreamClass;->-$$Nest$mcomputeFieldOffsets(Ljava/io/ObjectStreamClass;)V
-HSPLjava/io/ObjectStreamClass;->-$$Nest$smgetDeclaredSUID(Ljava/lang/Class;)Ljava/lang/Long;
-HSPLjava/io/ObjectStreamClass;->-$$Nest$smgetInheritableMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;
-HSPLjava/io/ObjectStreamClass;->-$$Nest$smgetPrivateMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;
-HSPLjava/io/ObjectStreamClass;->-$$Nest$smgetSerialFields(Ljava/lang/Class;)[Ljava/io/ObjectStreamField;
-HSPLjava/io/ObjectStreamClass;->-$$Nest$smgetSerializableConstructor(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
-HSPLjava/io/ObjectStreamClass;-><init>()V
-HSPLjava/io/ObjectStreamClass;-><init>(Ljava/lang/Class;)V
-HSPLjava/io/ObjectStreamClass;->checkDefaultSerialize()V
-HSPLjava/io/ObjectStreamClass;->checkDeserialize()V
-HSPLjava/io/ObjectStreamClass;->checkSerialize()V
-HSPLjava/io/ObjectStreamClass;->classNamesEqual(Ljava/lang/String;Ljava/lang/String;)Z
-HSPLjava/io/ObjectStreamClass;->computeDefaultSUID(Ljava/lang/Class;)J
-HSPLjava/io/ObjectStreamClass;->computeFieldOffsets()V
-HSPLjava/io/ObjectStreamClass;->forClass()Ljava/lang/Class;
-HSPLjava/io/ObjectStreamClass;->getClassDataLayout()[Ljava/io/ObjectStreamClass$ClassDataSlot;
-HSPLjava/io/ObjectStreamClass;->getClassDataLayout0()[Ljava/io/ObjectStreamClass$ClassDataSlot;
-HSPLjava/io/ObjectStreamClass;->getClassSignature(Ljava/lang/Class;)Ljava/lang/String;
-HSPLjava/io/ObjectStreamClass;->getDeclaredSUID(Ljava/lang/Class;)Ljava/lang/Long;
-HSPLjava/io/ObjectStreamClass;->getDeclaredSerialFields(Ljava/lang/Class;)[Ljava/io/ObjectStreamField;
-HSPLjava/io/ObjectStreamClass;->getDefaultSerialFields(Ljava/lang/Class;)[Ljava/io/ObjectStreamField;
-HSPLjava/io/ObjectStreamClass;->getField(Ljava/lang/String;Ljava/lang/Class;)Ljava/io/ObjectStreamField;
-HSPLjava/io/ObjectStreamClass;->getFields(Z)[Ljava/io/ObjectStreamField;
-HSPLjava/io/ObjectStreamClass;->getInheritableMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;
-HSPLjava/io/ObjectStreamClass;->getMethodSignature([Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/String;
-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;
-HSPLjava/io/ObjectStreamClass;->getReflector([Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamClass;)Ljava/io/ObjectStreamClass$FieldReflector;
-HSPLjava/io/ObjectStreamClass;->getResolveException()Ljava/lang/ClassNotFoundException;
-HSPLjava/io/ObjectStreamClass;->getSerialFields(Ljava/lang/Class;)[Ljava/io/ObjectStreamField;
-HSPLjava/io/ObjectStreamClass;->getSerialVersionUID()J
-HSPLjava/io/ObjectStreamClass;->getSerializableConstructor(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
-HSPLjava/io/ObjectStreamClass;->getSuperDesc()Ljava/io/ObjectStreamClass;
-HSPLjava/io/ObjectStreamClass;->getVariantFor(Ljava/lang/Class;)Ljava/io/ObjectStreamClass;
-HSPLjava/io/ObjectStreamClass;->hasReadObjectMethod()Z
-HSPLjava/io/ObjectStreamClass;->hasReadResolveMethod()Z
-HSPLjava/io/ObjectStreamClass;->hasWriteObjectData()Z
-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;->isRecord()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
-HSPLjava/io/ObjectStreamClass;->setObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V
-HSPLjava/io/ObjectStreamClass;->setPrimFieldValues(Ljava/lang/Object;[B)V
-HSPLjava/io/ObjectStreamClass;->writeNonProxy(Ljava/io/ObjectOutputStream;)V
-HSPLjava/io/ObjectStreamField;-><init>(Ljava/lang/String;Ljava/lang/Class;)V
-HSPLjava/io/ObjectStreamField;-><init>(Ljava/lang/String;Ljava/lang/Class;Z)V
-HSPLjava/io/ObjectStreamField;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V
-HSPLjava/io/ObjectStreamField;-><init>(Ljava/lang/reflect/Field;ZZ)V
-HSPLjava/io/ObjectStreamField;->appendClassSignature(Ljava/lang/StringBuilder;Ljava/lang/Class;)Ljava/lang/StringBuilder;
-HSPLjava/io/ObjectStreamField;->compareTo(Ljava/lang/Object;)I
-HSPLjava/io/ObjectStreamField;->getClassSignature(Ljava/lang/Class;)Ljava/lang/String;
-HSPLjava/io/ObjectStreamField;->getField()Ljava/lang/reflect/Field;
-HSPLjava/io/ObjectStreamField;->getName()Ljava/lang/String;
-HSPLjava/io/ObjectStreamField;->getOffset()I
-HSPLjava/io/ObjectStreamField;->getPrimitiveSignature(Ljava/lang/Class;)Ljava/lang/String;
-HSPLjava/io/ObjectStreamField;->getSignature()Ljava/lang/String;
-HSPLjava/io/ObjectStreamField;->getType()Ljava/lang/Class;
-HSPLjava/io/ObjectStreamField;->getTypeCode()C
-HSPLjava/io/ObjectStreamField;->getTypeString()Ljava/lang/String;
-HSPLjava/io/ObjectStreamField;->isPrimitive()Z
-HSPLjava/io/ObjectStreamField;->isUnshared()Z
-HSPLjava/io/ObjectStreamField;->setOffset(I)V
-HSPLjava/io/OutputStream;-><init>()V
-HSPLjava/io/OutputStream;->close()V
-HSPLjava/io/OutputStream;->flush()V
-HSPLjava/io/OutputStream;->write([B)V
-HSPLjava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;)V
-HSPLjava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;Ljava/lang/String;)V
-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;->write(I)V
-HSPLjava/io/OutputStreamWriter;->write(Ljava/lang/String;II)V
-HSPLjava/io/OutputStreamWriter;->write([CII)V
-HSPLjava/io/PrintStream;-><init>(Ljava/io/OutputStream;)V
-HSPLjava/io/PrintStream;-><init>(Ljava/io/OutputStream;Z)V
-HSPLjava/io/PrintStream;-><init>(ZLjava/io/OutputStream;)V
-HSPLjava/io/PrintStream;->close()V
-HSPLjava/io/PrintStream;->ensureOpen()V
-HSPLjava/io/PrintStream;->flush()V
-HSPLjava/io/PrintStream;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
-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
-HSPLjava/io/PrintWriter;->append(C)Ljava/io/PrintWriter;
-HSPLjava/io/PrintWriter;->append(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
-HSPLjava/io/PrintWriter;->append(Ljava/lang/CharSequence;)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;
-HSPLjava/io/PrintWriter;->newLine()V
-HSPLjava/io/PrintWriter;->print(C)V
-HSPLjava/io/PrintWriter;->print(I)V
-HSPLjava/io/PrintWriter;->print(J)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
-HSPLjava/io/PrintWriter;->println(I)V
-HSPLjava/io/PrintWriter;->println(Ljava/lang/Object;)V
-HSPLjava/io/PrintWriter;->println(Ljava/lang/String;)V
-HSPLjava/io/PrintWriter;->write(I)V
-HSPLjava/io/PrintWriter;->write(Ljava/lang/String;)V
-HSPLjava/io/PrintWriter;->write(Ljava/lang/String;II)V
-HSPLjava/io/PrintWriter;->write([CII)V
-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/io/File;Ljava/lang/String;Z)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;->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
-HSPLjava/io/RandomAccessFile;->writeBytes([BII)V
-HSPLjava/io/RandomAccessFile;->writeInt(I)V
-HSPLjava/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
-HSPLjava/io/SequenceInputStream;->close()V
-HSPLjava/io/SequenceInputStream;->nextStream()V
-HSPLjava/io/SequenceInputStream;->read()I
-HSPLjava/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
-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;->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/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;->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
-HSPLjava/io/UnixFileSystem;->hashCode(Ljava/io/File;)I
-HSPLjava/io/UnixFileSystem;->isAbsolute(Ljava/io/File;)Z
-HSPLjava/io/UnixFileSystem;->list(Ljava/io/File;)[Ljava/lang/String;
-HSPLjava/io/UnixFileSystem;->normalize(Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/io/UnixFileSystem;->prefixLength(Ljava/lang/String;)I
-HSPLjava/io/UnixFileSystem;->rename(Ljava/io/File;Ljava/io/File;)Z
-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
-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/lang/AbstractStringBuilder;-><init>(I)V
-HSPLjava/lang/AbstractStringBuilder;->append(C)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/AbstractStringBuilder;->append(D)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/AbstractStringBuilder;->append(F)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/AbstractStringBuilder;->append(I)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/AbstractStringBuilder;->append(J)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/AbstractStringBuilder;->append(Ljava/lang/AbstractStringBuilder;)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/AbstractStringBuilder;->append(Ljava/lang/CharSequence;)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/AbstractStringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/lang/AbstractStringBuilder;
-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;
-HSPLjava/lang/AbstractStringBuilder;->append([CII)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/AbstractStringBuilder;->appendChars(Ljava/lang/CharSequence;II)V
-HSPLjava/lang/AbstractStringBuilder;->appendChars([CII)V
-HSPLjava/lang/AbstractStringBuilder;->appendCodePoint(I)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/AbstractStringBuilder;->appendNull()Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/AbstractStringBuilder;->charAt(I)C
-HSPLjava/lang/AbstractStringBuilder;->checkRange(III)V
-HSPLjava/lang/AbstractStringBuilder;->checkRangeSIOOBE(III)V
-HSPLjava/lang/AbstractStringBuilder;->codePointAt(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;->getBytes([BIB)V
-HSPLjava/lang/AbstractStringBuilder;->getChars(II[CI)V
-HSPLjava/lang/AbstractStringBuilder;->getCoder()B
-HSPLjava/lang/AbstractStringBuilder;->indexOf(Ljava/lang/String;)I
-HSPLjava/lang/AbstractStringBuilder;->indexOf(Ljava/lang/String;I)I
-HSPLjava/lang/AbstractStringBuilder;->inflate()V
-HSPLjava/lang/AbstractStringBuilder;->insert(IC)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/AbstractStringBuilder;->insert(II)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/AbstractStringBuilder;->insert(ILjava/lang/String;)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/AbstractStringBuilder;->isLatin1()Z
-HSPLjava/lang/AbstractStringBuilder;->lastIndexOf(Ljava/lang/String;I)I
-HSPLjava/lang/AbstractStringBuilder;->length()I
-HSPLjava/lang/AbstractStringBuilder;->newCapacity(I)I
-HSPLjava/lang/AbstractStringBuilder;->putStringAt(ILjava/lang/String;)V
-HSPLjava/lang/AbstractStringBuilder;->replace(IILjava/lang/String;)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/AbstractStringBuilder;->reverse()Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/AbstractStringBuilder;->setCharAt(IC)V
-HSPLjava/lang/AbstractStringBuilder;->setLength(I)V
-HSPLjava/lang/AbstractStringBuilder;->shift(II)V
-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/ArrayIndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
-HSPLjava/lang/Boolean;-><init>(Z)V
-HSPLjava/lang/Boolean;->booleanValue()Z
-HSPLjava/lang/Boolean;->compare(ZZ)I
-HSPLjava/lang/Boolean;->compareTo(Ljava/lang/Boolean;)I
-HSPLjava/lang/Boolean;->compareTo(Ljava/lang/Object;)I
-HSPLjava/lang/Boolean;->equals(Ljava/lang/Object;)Z
-HSPLjava/lang/Boolean;->getBoolean(Ljava/lang/String;)Z
-HSPLjava/lang/Boolean;->hashCode()I
-HSPLjava/lang/Boolean;->hashCode(Z)I
-HSPLjava/lang/Boolean;->parseBoolean(Ljava/lang/String;)Z
-HSPLjava/lang/Boolean;->toString()Ljava/lang/String;
-HSPLjava/lang/Boolean;->toString(Z)Ljava/lang/String;
-HSPLjava/lang/Boolean;->valueOf(Ljava/lang/String;)Ljava/lang/Boolean;
-HSPLjava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
-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;->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;->equals(Ljava/lang/Object;)Z
-HSPLjava/lang/Byte;->hashCode()I
-HSPLjava/lang/Byte;->hashCode(B)I
-HSPLjava/lang/Byte;->parseByte(Ljava/lang/String;I)B
-HSPLjava/lang/Byte;->toString()Ljava/lang/String;
-HSPLjava/lang/Byte;->toString(B)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$UnicodeBlock;->of(I)Ljava/lang/Character$UnicodeBlock;
-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;->codePointCount(Ljava/lang/CharSequence;II)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
-HSPLjava/lang/Character;->getNumericValue(C)I
-HSPLjava/lang/Character;->getNumericValue(I)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
-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
-HSPLjava/lang/Character;->isLowerCase(C)Z
-HSPLjava/lang/Character;->isLowerCase(I)Z
-HSPLjava/lang/Character;->isSpaceChar(C)Z
-HSPLjava/lang/Character;->isSpaceChar(I)Z
-HSPLjava/lang/Character;->isSupplementaryCodePoint(I)Z
-HSPLjava/lang/Character;->isSurrogate(C)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;->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;->toUpperCase(C)C
-HSPLjava/lang/Character;->toUpperCase(I)I
-HSPLjava/lang/Character;->valueOf(C)Ljava/lang/Character;
-HSPLjava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class;
-HSPLjava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/lang/Class;->classNameImpliesTopLevel()Z
-HSPLjava/lang/Class;->desiredAssertionStatus()Z
-HSPLjava/lang/Class;->findInterfaceMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
-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;->getCanonicalName()Ljava/lang/String;
-HSPLjava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
-HSPLjava/lang/Class;->getComponentType()Ljava/lang/Class;
-HSPLjava/lang/Class;->getConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
-HSPLjava/lang/Class;->getConstructor0([Ljava/lang/Class;I)Ljava/lang/reflect/Constructor;
-HSPLjava/lang/Class;->getConstructors()[Ljava/lang/reflect/Constructor;
-HSPLjava/lang/Class;->getDeclaredConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
-HSPLjava/lang/Class;->getDeclaredConstructors()[Ljava/lang/reflect/Constructor;
-HSPLjava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
-HSPLjava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
-HSPLjava/lang/Class;->getEnclosingConstructor()Ljava/lang/reflect/Constructor;
-HSPLjava/lang/Class;->getEnclosingMethod()Ljava/lang/reflect/Method;
-HSPLjava/lang/Class;->getEnumConstants()[Ljava/lang/Object;
-HSPLjava/lang/Class;->getEnumConstantsShared()[Ljava/lang/Object;
-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;
-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;
-HSPLjava/lang/Class;->getMethods()[Ljava/lang/reflect/Method;
-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
-HSPLjava/lang/Class;->getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream;
-HSPLjava/lang/Class;->getSignatureAttribute()Ljava/lang/String;
-HSPLjava/lang/Class;->getSimpleName()Ljava/lang/String;
-HSPLjava/lang/Class;->getSuperclass()Ljava/lang/Class;
-HSPLjava/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
-HSPLjava/lang/Class;->isArray()Z
-HSPLjava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
-HSPLjava/lang/Class;->isEnum()Z
-HSPLjava/lang/Class;->isInstance(Ljava/lang/Object;)Z
-HSPLjava/lang/Class;->isInterface()Z
-HSPLjava/lang/Class;->isLocalClass()Z
-HSPLjava/lang/Class;->isLocalOrAnonymousClass()Z
-HSPLjava/lang/Class;->isMemberClass()Z
-HSPLjava/lang/Class;->isPrimitive()Z
-HSPLjava/lang/Class;->isProxy()Z
-HSPLjava/lang/Class;->resolveName(Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/lang/Class;->toString()Ljava/lang/String;
-HSPLjava/lang/ClassCastException;-><init>(Ljava/lang/String;)V
-HSPLjava/lang/ClassLoader;-><init>()V
-HSPLjava/lang/ClassLoader;-><init>(Ljava/lang/ClassLoader;)V
-HSPLjava/lang/ClassLoader;-><init>(Ljava/lang/Void;Ljava/lang/String;Ljava/lang/ClassLoader;)V
-HSPLjava/lang/ClassLoader;->checkCreateClassLoader()Ljava/lang/Void;
-HSPLjava/lang/ClassLoader;->checkCreateClassLoader(Ljava/lang/String;)Ljava/lang/Void;
-HSPLjava/lang/ClassLoader;->definePackage(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/Package;
-HSPLjava/lang/ClassLoader;->findLoadedClass(Ljava/lang/String;)Ljava/lang/Class;
-HSPLjava/lang/ClassLoader;->getClassLoader(Ljava/lang/Class;)Ljava/lang/ClassLoader;
-HSPLjava/lang/ClassLoader;->getPackage(Ljava/lang/String;)Ljava/lang/Package;
-HSPLjava/lang/ClassLoader;->getParent()Ljava/lang/ClassLoader;
-HSPLjava/lang/ClassLoader;->getResource(Ljava/lang/String;)Ljava/net/URL;
-HSPLjava/lang/ClassLoader;->getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream;
-HSPLjava/lang/ClassLoader;->getResources(Ljava/lang/String;)Ljava/util/Enumeration;
-HSPLjava/lang/ClassLoader;->getSystemClassLoader()Ljava/lang/ClassLoader;
-HSPLjava/lang/ClassLoader;->loadClass(Ljava/lang/String;)Ljava/lang/Class;
-HSPLjava/lang/ClassLoader;->loadClass(Ljava/lang/String;Z)Ljava/lang/Class;
-HSPLjava/lang/ClassNotFoundException;-><init>(Ljava/lang/String;)V
-HSPLjava/lang/ClassNotFoundException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-HSPLjava/lang/Daemons$Daemon;->interrupt(Ljava/lang/Thread;)V
-HSPLjava/lang/Daemons$Daemon;->isRunning()Z
-HSPLjava/lang/Daemons$Daemon;->run()V
-HSPLjava/lang/Daemons$Daemon;->start()V
-HSPLjava/lang/Daemons$Daemon;->startInternal()V
-HSPLjava/lang/Daemons$Daemon;->stop()V
-HSPLjava/lang/Daemons$FinalizerDaemon;->-$$Nest$fgetprogressCounter(Ljava/lang/Daemons$FinalizerDaemon;)Ljava/util/concurrent/atomic/AtomicInteger;
-HSPLjava/lang/Daemons$FinalizerDaemon;->-$$Nest$sfgetINSTANCE()Ljava/lang/Daemons$FinalizerDaemon;
-HSPLjava/lang/Daemons$FinalizerDaemon;->doFinalize(Ljava/lang/ref/FinalizerReference;)V
-HSPLjava/lang/Daemons$FinalizerDaemon;->processReference(Ljava/lang/Object;)V
-HSPLjava/lang/Daemons$FinalizerDaemon;->runInternal()V
-HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->-$$Nest$mmonitoringNeeded(Ljava/lang/Daemons$FinalizerWatchdogDaemon;I)V
-HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->-$$Nest$mmonitoringNotNeeded(Ljava/lang/Daemons$FinalizerWatchdogDaemon;I)V
-HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->-$$Nest$sfgetINSTANCE()Ljava/lang/Daemons$FinalizerWatchdogDaemon;
-HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->isActive(I)Z
-HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->monitoringNeeded(I)V
-HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->monitoringNotNeeded(I)V
-HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->resetTimeouts()V
-HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->runInternal()V
-HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->sleepForNanos(J)Z
-HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->sleepUntilNeeded()Z
-HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->waitForProgress()Ljava/util/concurrent/TimeoutException;
-HSPLjava/lang/Daemons$HeapTaskDaemon;->interrupt(Ljava/lang/Thread;)V
-HSPLjava/lang/Daemons$HeapTaskDaemon;->runInternal()V
-HSPLjava/lang/Daemons$ReferenceQueueDaemon;->-$$Nest$fgetprogressCounter(Ljava/lang/Daemons$ReferenceQueueDaemon;)Ljava/util/concurrent/atomic/AtomicInteger;
-HSPLjava/lang/Daemons$ReferenceQueueDaemon;->-$$Nest$sfgetINSTANCE()Ljava/lang/Daemons$ReferenceQueueDaemon;
-HSPLjava/lang/Daemons$ReferenceQueueDaemon;->runInternal()V
-HSPLjava/lang/Daemons;->-$$Nest$sfgetpostZygoteFork()Z
-HSPLjava/lang/Daemons;->-$$Nest$sfgetzygoteStartLatch()Ljava/util/concurrent/CountDownLatch;
-HSPLjava/lang/Daemons;->start()V
-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
-HSPLjava/lang/Double;->hashCode()I
-HSPLjava/lang/Double;->hashCode(D)I
-HSPLjava/lang/Double;->intValue()I
-HSPLjava/lang/Double;->isInfinite(D)Z
-HSPLjava/lang/Double;->isNaN()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;
-HSPLjava/lang/Double;->valueOf(D)Ljava/lang/Double;
-HSPLjava/lang/Double;->valueOf(Ljava/lang/String;)Ljava/lang/Double;
-HSPLjava/lang/Enum$1;->create(Ljava/lang/Class;)[Ljava/lang/Object;
-HSPLjava/lang/Enum$1;->create(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/lang/Enum;->-$$Nest$smenumValues(Ljava/lang/Class;)[Ljava/lang/Object;
-HSPLjava/lang/Enum;-><init>(Ljava/lang/String;I)V
-HSPLjava/lang/Enum;->compareTo(Ljava/lang/Enum;)I
-HSPLjava/lang/Enum;->compareTo(Ljava/lang/Object;)I
-HSPLjava/lang/Enum;->enumValues(Ljava/lang/Class;)[Ljava/lang/Object;
-HSPLjava/lang/Enum;->equals(Ljava/lang/Object;)Z
-HSPLjava/lang/Enum;->getDeclaringClass()Ljava/lang/Class;
-HSPLjava/lang/Enum;->getSharedConstants(Ljava/lang/Class;)[Ljava/lang/Enum;
-HSPLjava/lang/Enum;->hashCode()I
-HSPLjava/lang/Enum;->name()Ljava/lang/String;
-HSPLjava/lang/Enum;->ordinal()I
-HSPLjava/lang/Enum;->toString()Ljava/lang/String;
-HSPLjava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
-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
-HSPLjava/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
-HSPLjava/lang/Float;->intValue()I
-HSPLjava/lang/Float;->isFinite(F)Z
-HSPLjava/lang/Float;->isInfinite(F)Z
-HSPLjava/lang/Float;->isNaN(F)Z
-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;
-HSPLjava/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
-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/IncompatibleClassChangeError;-><init>(Ljava/lang/String;)V
-HSPLjava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)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;
-HSPLjava/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;->divideUnsigned(II)I
-HSPLjava/lang/Integer;->doubleValue()D
-HSPLjava/lang/Integer;->equals(Ljava/lang/Object;)Z
-HSPLjava/lang/Integer;->floatValue()F
-HSPLjava/lang/Integer;->formatUnsignedInt(II[BII)V
-HSPLjava/lang/Integer;->getChars(II[B)I
-HSPLjava/lang/Integer;->getChars(II[C)I
-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
-HSPLjava/lang/Integer;->hashCode(I)I
-HSPLjava/lang/Integer;->highestOneBit(I)I
-HSPLjava/lang/Integer;->intValue()I
-HSPLjava/lang/Integer;->longValue()J
-HSPLjava/lang/Integer;->lowestOneBit(I)I
-HSPLjava/lang/Integer;->max(II)I
-HSPLjava/lang/Integer;->min(II)I
-HSPLjava/lang/Integer;->numberOfLeadingZeros(I)I
-HSPLjava/lang/Integer;->numberOfTrailingZeros(I)I
-HSPLjava/lang/Integer;->parseInt(Ljava/lang/String;)I
-HSPLjava/lang/Integer;->parseInt(Ljava/lang/String;I)I
-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;
-HSPLjava/lang/Integer;->toString(II)Ljava/lang/String;
-HSPLjava/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
-HSPLjava/lang/Iterable;->forEach(Ljava/util/function/Consumer;)V+]Ljava/lang/Iterable;megamorphic_types]Ljava/util/Iterator;megamorphic_types]Ljava/util/function/Consumer;missing_types
-HSPLjava/lang/LinkageError;-><init>(Ljava/lang/String;)V
-HSPLjava/lang/Long;-><init>(J)V
-HSPLjava/lang/Long;->bitCount(J)I
-HSPLjava/lang/Long;->compare(JJ)I
-HSPLjava/lang/Long;->compareTo(Ljava/lang/Long;)I
-HSPLjava/lang/Long;->compareTo(Ljava/lang/Object;)I
-HSPLjava/lang/Long;->compareUnsigned(JJ)I
-HSPLjava/lang/Long;->decode(Ljava/lang/String;)Ljava/lang/Long;
-HSPLjava/lang/Long;->divideUnsigned(JJ)J
-HSPLjava/lang/Long;->doubleValue()D
-HSPLjava/lang/Long;->equals(Ljava/lang/Object;)Z
-HSPLjava/lang/Long;->formatUnsignedLong0(JI[BII)V
-HSPLjava/lang/Long;->getChars(JI[B)I
-HSPLjava/lang/Long;->getChars(JI[C)I
-HSPLjava/lang/Long;->getLong(Ljava/lang/String;J)Ljava/lang/Long;
-HSPLjava/lang/Long;->getLong(Ljava/lang/String;Ljava/lang/Long;)Ljava/lang/Long;
-HSPLjava/lang/Long;->hashCode()I
-HSPLjava/lang/Long;->hashCode(J)I
-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;->numberOfLeadingZeros(J)I
-HSPLjava/lang/Long;->numberOfTrailingZeros(J)I
-HSPLjava/lang/Long;->parseLong(Ljava/lang/CharSequence;III)J
-HSPLjava/lang/Long;->parseLong(Ljava/lang/String;)J
-HSPLjava/lang/Long;->parseLong(Ljava/lang/String;I)J
-HSPLjava/lang/Long;->reverse(J)J
-HSPLjava/lang/Long;->reverseBytes(J)J
-HSPLjava/lang/Long;->rotateLeft(JI)J
-HSPLjava/lang/Long;->rotateRight(JI)J
-HSPLjava/lang/Long;->signum(J)I
-HSPLjava/lang/Long;->stringSize(J)I
-HSPLjava/lang/Long;->sum(JJ)J
-HSPLjava/lang/Long;->toHexString(J)Ljava/lang/String;
-HSPLjava/lang/Long;->toString()Ljava/lang/String;
-HSPLjava/lang/Long;->toString(J)Ljava/lang/String;
-HSPLjava/lang/Long;->toString(JI)Ljava/lang/String;
-HSPLjava/lang/Long;->toUnsignedString0(JI)Ljava/lang/String;
-HSPLjava/lang/Long;->valueOf(J)Ljava/lang/Long;
-HSPLjava/lang/Long;->valueOf(Ljava/lang/String;)Ljava/lang/Long;
-HSPLjava/lang/Long;->valueOf(Ljava/lang/String;I)Ljava/lang/Long;
-HSPLjava/lang/Math;->abs(D)D
-HSPLjava/lang/Math;->abs(F)F
-HSPLjava/lang/Math;->abs(I)I
-HSPLjava/lang/Math;->abs(J)J
-HSPLjava/lang/Math;->addExact(JJ)J
-HSPLjava/lang/Math;->copySign(DD)D
-HSPLjava/lang/Math;->copySign(FF)F
-HSPLjava/lang/Math;->floorDiv(II)I
-HSPLjava/lang/Math;->floorDiv(JI)J
-HSPLjava/lang/Math;->floorDiv(JJ)J
-HSPLjava/lang/Math;->floorMod(II)I
-HSPLjava/lang/Math;->floorMod(JI)I
-HSPLjava/lang/Math;->floorMod(JJ)J
-HSPLjava/lang/Math;->fma(DDD)D
-HSPLjava/lang/Math;->fma(FFF)F
-HSPLjava/lang/Math;->getExponent(D)I
-HSPLjava/lang/Math;->getExponent(F)I
-HSPLjava/lang/Math;->max(DD)D
-HSPLjava/lang/Math;->max(FF)F
-HSPLjava/lang/Math;->max(II)I
-HSPLjava/lang/Math;->max(JJ)J
-HSPLjava/lang/Math;->min(DD)D
-HSPLjava/lang/Math;->min(FF)F
-HSPLjava/lang/Math;->min(II)I
-HSPLjava/lang/Math;->min(JJ)J
-HSPLjava/lang/Math;->multiplyExact(II)I
-HSPLjava/lang/Math;->multiplyExact(JI)J
-HSPLjava/lang/Math;->multiplyExact(JJ)J
-HSPLjava/lang/Math;->multiplyHigh(JJ)J
-HSPLjava/lang/Math;->nextAfter(DD)D
-HSPLjava/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
-HSPLjava/lang/Math;->scalb(FI)F
-HSPLjava/lang/Math;->setRandomSeedInternal(J)V
-HSPLjava/lang/Math;->signum(F)F
-HSPLjava/lang/Math;->subtractExact(JJ)J
-HSPLjava/lang/Math;->toDegrees(D)D
-HSPLjava/lang/Math;->toIntExact(J)I
-HSPLjava/lang/Math;->toRadians(D)D
-HSPLjava/lang/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
-HSPLjava/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;I)Ljava/lang/NumberFormatException;
-HSPLjava/lang/Object;-><init>()V
-HSPLjava/lang/Object;->clone()Ljava/lang/Object;
-HSPLjava/lang/Object;->equals(Ljava/lang/Object;)Z
-HSPLjava/lang/Object;->finalize()V
-HSPLjava/lang/Object;->getClass()Ljava/lang/Class;
-HSPLjava/lang/Object;->hashCode()I
-HSPLjava/lang/Object;->identityHashCode(Ljava/lang/Object;)I
-HSPLjava/lang/Object;->toString()Ljava/lang/String;
-HSPLjava/lang/Object;->wait()V
-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
-HSPLjava/lang/ProcessBuilder$NullInputStream;->available()I
-HSPLjava/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;->start()Ljava/lang/Process;
-HSPLjava/lang/ProcessEnvironment;->toEnvironmentBlock(Ljava/util/Map;[I)[B
-HSPLjava/lang/ProcessImpl;->start([Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;[Ljava/lang/ProcessBuilder$Redirect;Z)Ljava/lang/Process;
-HSPLjava/lang/ProcessImpl;->toCString(Ljava/lang/String;)[B
-HSPLjava/lang/ReflectiveOperationException;-><init>(Ljava/lang/String;)V
-HSPLjava/lang/ReflectiveOperationException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-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;
-HSPLjava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
-HSPLjava/lang/Runtime;->load0(Ljava/lang/Class;Ljava/lang/String;)V
-HSPLjava/lang/Runtime;->loadLibrary0(Ljava/lang/Class;Ljava/lang/String;)V
-HSPLjava/lang/Runtime;->loadLibrary0(Ljava/lang/ClassLoader;Ljava/lang/Class;Ljava/lang/String;)V
-HSPLjava/lang/Runtime;->nativeLoad(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/String;
-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
-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;->hashCode()I
-HSPLjava/lang/Short;->hashCode(S)I
-HSPLjava/lang/Short;->parseShort(Ljava/lang/String;I)S
-HSPLjava/lang/Short;->reverseBytes(S)S
-HSPLjava/lang/Short;->shortValue()S
-HSPLjava/lang/Short;->toUnsignedInt(S)I
-HSPLjava/lang/Short;->valueOf(Ljava/lang/String;)Ljava/lang/Short;
-HSPLjava/lang/Short;->valueOf(Ljava/lang/String;I)Ljava/lang/Short;
-HSPLjava/lang/Short;->valueOf(S)Ljava/lang/Short;
-HSPLjava/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;
-HSPLjava/lang/StackTraceElement;->getLineNumber()I
-HSPLjava/lang/StackTraceElement;->getMethodName()Ljava/lang/String;
-HSPLjava/lang/StackTraceElement;->hashCode()I
-HSPLjava/lang/StackTraceElement;->isNativeMethod()Z
-HSPLjava/lang/StackTraceElement;->toString()Ljava/lang/String;
-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;->checkBoundsBeginEnd(III)V
-HSPLjava/lang/String;->checkBoundsOffCount(III)V
-HSPLjava/lang/String;->checkIndex(II)V
-HSPLjava/lang/String;->checkOffset(II)V
-HSPLjava/lang/String;->codePointAt(I)I
-HSPLjava/lang/String;->codePointCount(II)I
-HSPLjava/lang/String;->coder()B
-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
-HSPLjava/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
-HSPLjava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
-HSPLjava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
-HSPLjava/lang/String;->getBytes()[B
-HSPLjava/lang/String;->getBytes(Ljava/lang/String;)[B
-HSPLjava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B
-HSPLjava/lang/String;->getBytes([BIB)V
-HSPLjava/lang/String;->getChars(II[CI)V
-HSPLjava/lang/String;->getChars([CI)V
-HSPLjava/lang/String;->hashCode()I
-HSPLjava/lang/String;->indexOf(I)I
-HSPLjava/lang/String;->indexOf(II)I
-HSPLjava/lang/String;->indexOf(Ljava/lang/String;)I
-HSPLjava/lang/String;->indexOf(Ljava/lang/String;I)I
-HSPLjava/lang/String;->indexOf(Ljava/lang/String;Ljava/lang/String;I)I
-HSPLjava/lang/String;->indexOf([BBILjava/lang/String;I)I
-HSPLjava/lang/String;->isEmpty()Z
-HSPLjava/lang/String;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
-HSPLjava/lang/String;->join(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/String;
-HSPLjava/lang/String;->lastIndexOf(I)I
-HSPLjava/lang/String;->lastIndexOf(II)I
-HSPLjava/lang/String;->lastIndexOf(Ljava/lang/String;)I
-HSPLjava/lang/String;->lastIndexOf(Ljava/lang/String;I)I
-HSPLjava/lang/String;->lastIndexOf(Ljava/lang/String;Ljava/lang/String;I)I
-HSPLjava/lang/String;->lastIndexOf([BBILjava/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;->regionMatches(ILjava/lang/String;II)Z
-HSPLjava/lang/String;->regionMatches(ZILjava/lang/String;II)Z
-HSPLjava/lang/String;->replace(CC)Ljava/lang/String;
-HSPLjava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
-HSPLjava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
-HSPLjava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String;
-HSPLjava/lang/String;->startsWith(Ljava/lang/String;)Z
-HSPLjava/lang/String;->startsWith(Ljava/lang/String;I)Z
-HSPLjava/lang/String;->subSequence(II)Ljava/lang/CharSequence;
-HSPLjava/lang/String;->substring(I)Ljava/lang/String;
-HSPLjava/lang/String;->substring(II)Ljava/lang/String;
-HSPLjava/lang/String;->toLowerCase()Ljava/lang/String;
-HSPLjava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;
-HSPLjava/lang/String;->toString()Ljava/lang/String;
-HSPLjava/lang/String;->toUpperCase()Ljava/lang/String;
-HSPLjava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String;
-HSPLjava/lang/String;->trim()Ljava/lang/String;
-HSPLjava/lang/String;->valueOf(C)Ljava/lang/String;
-HSPLjava/lang/String;->valueOf(D)Ljava/lang/String;
-HSPLjava/lang/String;->valueOf(F)Ljava/lang/String;
-HSPLjava/lang/String;->valueOf(I)Ljava/lang/String;
-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/StringBuffer;-><init>()V
-HSPLjava/lang/StringBuffer;-><init>(I)V
-HSPLjava/lang/StringBuffer;-><init>(Ljava/lang/String;)V
-HSPLjava/lang/StringBuffer;->append(C)Ljava/lang/StringBuffer;
-HSPLjava/lang/StringBuffer;->append(I)Ljava/lang/StringBuffer;
-HSPLjava/lang/StringBuffer;->append(J)Ljava/lang/StringBuffer;
-HSPLjava/lang/StringBuffer;->append(Ljava/lang/AbstractStringBuilder;)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/StringBuffer;->append(Ljava/lang/AbstractStringBuilder;)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/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;
-HSPLjava/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
-HSPLjava/lang/StringBuffer;->getBytes([BIB)V
-HSPLjava/lang/StringBuffer;->getChars(II[CI)V
-HSPLjava/lang/StringBuffer;->length()I
-HSPLjava/lang/StringBuffer;->setLength(I)V
-HSPLjava/lang/StringBuffer;->toString()Ljava/lang/String;
-HSPLjava/lang/StringBuilder;-><init>()V
-HSPLjava/lang/StringBuilder;-><init>(I)V
-HSPLjava/lang/StringBuilder;-><init>(Ljava/lang/CharSequence;)V
-HSPLjava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
-HSPLjava/lang/StringBuilder;->append(C)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/StringBuilder;->append(C)Ljava/lang/Appendable;
-HSPLjava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
-HSPLjava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
-HSPLjava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
-HSPLjava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
-HSPLjava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
-HSPLjava/lang/StringBuilder;->append(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
-HSPLjava/lang/StringBuilder;->append(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
-HSPLjava/lang/StringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/StringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/lang/Appendable;
-HSPLjava/lang/StringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
-HSPLjava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
-HSPLjava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;
-HSPLjava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
-HSPLjava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
-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;->delete(II)Ljava/lang/StringBuilder;
-HSPLjava/lang/StringBuilder;->deleteCharAt(I)Ljava/lang/StringBuilder;
-HSPLjava/lang/StringBuilder;->ensureCapacity(I)V
-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;
-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;->reverse()Ljava/lang/StringBuilder;
-HSPLjava/lang/StringBuilder;->setCharAt(IC)V
-HSPLjava/lang/StringBuilder;->setLength(I)V
-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;
-HSPLjava/lang/StringFactory;->newStringFromBytes([BLjava/lang/String;)Ljava/lang/String;
-HSPLjava/lang/StringFactory;->newStringFromBytes([BLjava/nio/charset/Charset;)Ljava/lang/String;
-HSPLjava/lang/StringFactory;->newStringFromChars([C)Ljava/lang/String;
-HSPLjava/lang/StringFactory;->newStringFromChars([CII)Ljava/lang/String;
-HSPLjava/lang/StringLatin1;->canEncode(I)Z
-HSPLjava/lang/StringLatin1;->indexOf([BILjava/lang/String;II)I
-HSPLjava/lang/StringLatin1;->inflate([BI[BII)V
-HSPLjava/lang/StringLatin1;->lastIndexOf([BILjava/lang/String;II)I
-HSPLjava/lang/StringLatin1;->newString([BII)Ljava/lang/String;
-HSPLjava/lang/StringUTF16;->checkBoundsBeginEnd(II[B)V
-HSPLjava/lang/StringUTF16;->checkBoundsOffCount(II[B)V
-HSPLjava/lang/StringUTF16;->checkIndex(I[B)V
-HSPLjava/lang/StringUTF16;->getChar([BI)C
-HSPLjava/lang/StringUTF16;->getChars(II[B)I
-HSPLjava/lang/StringUTF16;->getChars([BII[CI)V
-HSPLjava/lang/StringUTF16;->inflate([BI[BII)V
-HSPLjava/lang/StringUTF16;->length([B)I
-HSPLjava/lang/StringUTF16;->newBytesFor(I)[B
-HSPLjava/lang/StringUTF16;->newString([BII)Ljava/lang/String;
-HSPLjava/lang/StringUTF16;->putChar([BII)V
-HSPLjava/lang/StringUTF16;->putCharSB([BII)V
-HSPLjava/lang/System$PropertiesWithNonOverrideableDefaults;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-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
-HSPLjava/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
-HSPLjava/lang/System;->arraycopy([ZI[ZII)V
-HSPLjava/lang/System;->checkKey(Ljava/lang/String;)V
-HSPLjava/lang/System;->clearProperty(Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/lang/System;->gc()V
-HSPLjava/lang/System;->getProperties()Ljava/util/Properties;
-HSPLjava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/lang/System;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/lang/System;->getSecurityManager()Ljava/lang/SecurityManager;
-HSPLjava/lang/System;->getenv(Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/lang/System;->identityHashCode(Ljava/lang/Object;)I
-HSPLjava/lang/System;->lineSeparator()Ljava/lang/String;
-HSPLjava/lang/System;->load(Ljava/lang/String;)V
-HSPLjava/lang/System;->loadLibrary(Ljava/lang/String;)V
-HSPLjava/lang/System;->logE(Ljava/lang/String;)V
-HSPLjava/lang/System;->logW(Ljava/lang/String;)V
-HSPLjava/lang/System;->runFinalization()V
-HSPLjava/lang/System;->setErr(Ljava/io/PrintStream;)V
-HSPLjava/lang/System;->setOut(Ljava/io/PrintStream;)V
-HSPLjava/lang/System;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/lang/Thread$State;->values()[Ljava/lang/Thread$State;
-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;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/Runnable;Ljava/lang/String;JLjava/security/AccessControlContext;Z)V
-HSPLjava/lang/Thread;-><init>(Ljava/lang/ThreadGroup;Ljava/lang/String;)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
-HSPLjava/lang/Thread;->getContextClassLoader()Ljava/lang/ClassLoader;
-HSPLjava/lang/Thread;->getDefaultUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler;
-HSPLjava/lang/Thread;->getId()J
-HSPLjava/lang/Thread;->getName()Ljava/lang/String;
-HSPLjava/lang/Thread;->getPriority()I
-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;->init2(Ljava/lang/Thread;Z)V
-HSPLjava/lang/Thread;->interrupt()V
-HSPLjava/lang/Thread;->isAlive()Z
-HSPLjava/lang/Thread;->isDaemon()Z
-HSPLjava/lang/Thread;->join()V
-HSPLjava/lang/Thread;->join(J)V
-HSPLjava/lang/Thread;->nextThreadID()J
-HSPLjava/lang/Thread;->nextThreadNum()I
-HSPLjava/lang/Thread;->onSpinWait()V
-HSPLjava/lang/Thread;->run()V
-HSPLjava/lang/Thread;->setContextClassLoader(Ljava/lang/ClassLoader;)V
-HSPLjava/lang/Thread;->setDaemon(Z)V
-HSPLjava/lang/Thread;->setDefaultUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V
-HSPLjava/lang/Thread;->setName(Ljava/lang/String;)V
-HSPLjava/lang/Thread;->setPriority(I)V
-HSPLjava/lang/Thread;->setSystemDaemon(Z)V
-HSPLjava/lang/Thread;->setUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V
-HSPLjava/lang/Thread;->setUncaughtExceptionPreHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V
-HSPLjava/lang/Thread;->sleep(J)V
-HSPLjava/lang/Thread;->sleep(JI)V
-HSPLjava/lang/Thread;->start()V
-HSPLjava/lang/Thread;->toString()Ljava/lang/String;
-HSPLjava/lang/ThreadGroup;-><init>(Ljava/lang/ThreadGroup;Ljava/lang/String;)V
-HSPLjava/lang/ThreadGroup;-><init>(Ljava/lang/Void;Ljava/lang/ThreadGroup;Ljava/lang/String;)V
-HSPLjava/lang/ThreadGroup;->activeCount()I
-HSPLjava/lang/ThreadGroup;->activeGroupCount()I
-HSPLjava/lang/ThreadGroup;->add(Ljava/lang/Thread;)V
-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;
-HSPLjava/lang/ThreadGroup;->enumerate([Ljava/lang/Thread;)I
-HSPLjava/lang/ThreadGroup;->enumerate([Ljava/lang/Thread;IZ)I
-HSPLjava/lang/ThreadGroup;->enumerate([Ljava/lang/ThreadGroup;)I
-HSPLjava/lang/ThreadGroup;->enumerate([Ljava/lang/ThreadGroup;IZ)I
-HSPLjava/lang/ThreadGroup;->getMaxPriority()I
-HSPLjava/lang/ThreadGroup;->getName()Ljava/lang/String;
-HSPLjava/lang/ThreadGroup;->remove(Ljava/lang/Thread;)V
-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;->-$$Nest$mgetEntry(Ljava/lang/ThreadLocal$ThreadLocalMap;Ljava/lang/ThreadLocal;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
-HSPLjava/lang/ThreadLocal$ThreadLocalMap;->-$$Nest$mremove(Ljava/lang/ThreadLocal$ThreadLocalMap;Ljava/lang/ThreadLocal;)V
-HSPLjava/lang/ThreadLocal$ThreadLocalMap;->-$$Nest$mset(Ljava/lang/ThreadLocal$ThreadLocalMap;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;Ljava/lang/Object;)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
-HSPLjava/lang/ThreadLocal$ThreadLocalMap;->prevIndex(II)I
-HSPLjava/lang/ThreadLocal$ThreadLocalMap;->rehash()V
-HSPLjava/lang/ThreadLocal$ThreadLocalMap;->remove(Ljava/lang/ThreadLocal;)V
-HSPLjava/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;->-$$Nest$fgetthreadLocalHashCode(Ljava/lang/ThreadLocal;)I
-HSPLjava/lang/ThreadLocal;-><init>()V
-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;
-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$PrintStreamOrWriter-IA;)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
-HSPLjava/lang/Throwable;-><init>()V
-HSPLjava/lang/Throwable;-><init>(Ljava/lang/String;)V
-HSPLjava/lang/Throwable;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-HSPLjava/lang/Throwable;-><init>(Ljava/lang/String;Ljava/lang/Throwable;ZZ)V
-HSPLjava/lang/Throwable;-><init>(Ljava/lang/Throwable;)V
-HSPLjava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V
-HSPLjava/lang/Throwable;->fillInStackTrace()Ljava/lang/Throwable;
-HSPLjava/lang/Throwable;->getCause()Ljava/lang/Throwable;
-HSPLjava/lang/Throwable;->getLocalizedMessage()Ljava/lang/String;
-HSPLjava/lang/Throwable;->getMessage()Ljava/lang/String;
-HSPLjava/lang/Throwable;->getOurStackTrace()[Ljava/lang/StackTraceElement;
-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;
-HSPLjava/lang/UNIXProcess$3;-><init>(Ljava/lang/UNIXProcess;)V
-HSPLjava/lang/UNIXProcess$3;->run()V
-HSPLjava/lang/UNIXProcess$ProcessPipeInputStream;-><init>(I)V
-HSPLjava/lang/UNIXProcess$ProcessPipeInputStream;->drainInputStream(Ljava/io/InputStream;)[B
-HSPLjava/lang/UNIXProcess$ProcessPipeInputStream;->processExited()V
-HSPLjava/lang/UNIXProcess$ProcessPipeOutputStream;-><init>(I)V
-HSPLjava/lang/UNIXProcess$ProcessPipeOutputStream;->processExited()V
-HSPLjava/lang/UNIXProcess$ProcessReaperThreadFactory;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
-HSPLjava/lang/UNIXProcess;-><init>([B[BI[BI[B[IZ)V
-HSPLjava/lang/UNIXProcess;->destroy()V
-HSPLjava/lang/UNIXProcess;->exitValue()I
-HSPLjava/lang/UNIXProcess;->getErrorStream()Ljava/io/InputStream;
-HSPLjava/lang/UNIXProcess;->getInputStream()Ljava/io/InputStream;
-HSPLjava/lang/UNIXProcess;->initStreams([I)V
-HSPLjava/lang/UNIXProcess;->newFileDescriptor(I)Ljava/io/FileDescriptor;
-HSPLjava/lang/UNIXProcess;->processExited(I)V
-HSPLjava/lang/UNIXProcess;->waitFor()I
-HSPLjava/lang/UnsatisfiedLinkError;-><init>(Ljava/lang/String;)V
-HSPLjava/lang/UnsupportedOperationException;-><init>()V
-HSPLjava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
-HPLjava/lang/VMClassLoader;->createBootClassPathUrlHandlers()[Llibcore/io/ClassPathURLStreamHandler;
-HSPLjava/lang/VMClassLoader;->getResource(Ljava/lang/String;)Ljava/net/URL;
-HSPLjava/lang/VMClassLoader;->getResources(Ljava/lang/String;)Ljava/util/List;
-HSPLjava/lang/invoke/FieldVarHandle;-><init>(Ljava/lang/reflect/Field;Ljava/lang/Class;)V
-HSPLjava/lang/invoke/FieldVarHandle;->create(Ljava/lang/reflect/Field;)Ljava/lang/invoke/FieldVarHandle;
-HSPLjava/lang/invoke/MethodHandle;-><init>(JILjava/lang/invoke/MethodType;)V
-HSPLjava/lang/invoke/MethodHandleImpl;-><init>(JILjava/lang/invoke/MethodType;)V
-HSPLjava/lang/invoke/MethodHandles$Lookup;-><init>(Ljava/lang/Class;)V
-HSPLjava/lang/invoke/MethodHandles$Lookup;-><init>(Ljava/lang/Class;I)V
-HSPLjava/lang/invoke/MethodHandles$Lookup;->checkAccess(Ljava/lang/Class;Ljava/lang/Class;ILjava/lang/String;)V
-HSPLjava/lang/invoke/MethodHandles$Lookup;->checkUnprivilegedlookupClass(Ljava/lang/Class;I)V
-HSPLjava/lang/invoke/MethodHandles$Lookup;->commonFieldChecks(Ljava/lang/reflect/Field;Ljava/lang/Class;Ljava/lang/Class;ZZ)V
-HSPLjava/lang/invoke/MethodHandles$Lookup;->createMethodHandle(Ljava/lang/reflect/Method;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
-HSPLjava/lang/invoke/MethodHandles$Lookup;->findFieldOfType(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Field;
-HSPLjava/lang/invoke/MethodHandles$Lookup;->findVarHandle(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
-HSPLjava/lang/invoke/MethodHandles$Lookup;->unreflect(Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
-HSPLjava/lang/invoke/MethodHandles;->lookup()Ljava/lang/invoke/MethodHandles$Lookup;
-HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;-><init>(Ljava/lang/Object;)V
-HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
-HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;->equals(Ljava/lang/Object;)Z
-HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;->hashCode()I
-HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet;->add(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet;->expungeStaleElements()V
-HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/lang/invoke/MethodType;-><init>(Ljava/lang/Class;[Ljava/lang/Class;Z)V
-HSPLjava/lang/invoke/MethodType;-><init>([Ljava/lang/Class;Ljava/lang/Class;)V
-HSPLjava/lang/invoke/MethodType;->checkPtype(Ljava/lang/Class;)V
-HSPLjava/lang/invoke/MethodType;->checkPtypes([Ljava/lang/Class;)I
-HSPLjava/lang/invoke/MethodType;->checkRtype(Ljava/lang/Class;)V
-HSPLjava/lang/invoke/MethodType;->checkSlotCount(I)V
-HSPLjava/lang/invoke/MethodType;->equals(Ljava/lang/Object;)Z
-HSPLjava/lang/invoke/MethodType;->equals(Ljava/lang/invoke/MethodType;)Z
-HSPLjava/lang/invoke/MethodType;->form()Ljava/lang/invoke/MethodTypeForm;
-HSPLjava/lang/invoke/MethodType;->genericMethodType(I)Ljava/lang/invoke/MethodType;
-HSPLjava/lang/invoke/MethodType;->genericMethodType(IZ)Ljava/lang/invoke/MethodType;
-HSPLjava/lang/invoke/MethodType;->hashCode()I
-HSPLjava/lang/invoke/MethodType;->insertParameterTypes(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
-HSPLjava/lang/invoke/MethodType;->makeImpl(Ljava/lang/Class;[Ljava/lang/Class;Z)Ljava/lang/invoke/MethodType;
-HSPLjava/lang/invoke/MethodType;->methodType(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
-HSPLjava/lang/invoke/MethodType;->parameterSlotCount()I
-HSPLjava/lang/invoke/MethodType;->ptypes()[Ljava/lang/Class;
-HSPLjava/lang/invoke/MethodType;->returnType()Ljava/lang/Class;
-HSPLjava/lang/invoke/MethodTypeForm;-><init>(Ljava/lang/invoke/MethodType;)V
-HSPLjava/lang/invoke/MethodTypeForm;->canonicalize(Ljava/lang/Class;I)Ljava/lang/Class;
-HSPLjava/lang/invoke/MethodTypeForm;->canonicalize(Ljava/lang/invoke/MethodType;II)Ljava/lang/invoke/MethodType;
-HSPLjava/lang/invoke/MethodTypeForm;->canonicalizeAll([Ljava/lang/Class;I)[Ljava/lang/Class;
-HSPLjava/lang/invoke/MethodTypeForm;->findForm(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodTypeForm;
-HSPLjava/lang/invoke/MethodTypeForm;->pack(IIII)J
-HSPLjava/lang/invoke/MethodTypeForm;->parameterSlotCount()I
-HSPLjava/lang/invoke/MethodTypeForm;->unpack(JI)C
-HSPLjava/lang/invoke/VarHandle;-><init>(Ljava/lang/Class;ZLjava/lang/Class;)V
-HSPLjava/lang/invoke/VarHandle;->acquireFence()V
-HSPLjava/lang/invoke/VarHandle;->alignedAccessModesBitMask(Ljava/lang/Class;Z)I
-HSPLjava/lang/invoke/VarHandle;->fullFence()V
-HSPLjava/lang/invoke/VarHandle;->loadLoadFence()V
-HSPLjava/lang/invoke/VarHandle;->releaseFence()V
-HSPLjava/lang/invoke/VarHandle;->storeStoreFence()V
-HSPLjava/lang/ref/Cleaner$1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/lang/ref/Cleaner$1;->apply(Ljava/lang/ref/Cleaner;)Ljdk/internal/ref/CleanerImpl;
-HSPLjava/lang/ref/Cleaner;->register(Ljava/lang/Object;Ljava/lang/Runnable;)Ljava/lang/ref/Cleaner$Cleanable;
-HSPLjava/lang/ref/FinalizerReference$Sentinel;-><init>()V
-HSPLjava/lang/ref/FinalizerReference$Sentinel;-><init>(Ljava/lang/ref/FinalizerReference$Sentinel-IA;)V
-HSPLjava/lang/ref/FinalizerReference$Sentinel;->awaitFinalization(J)V
-HSPLjava/lang/ref/FinalizerReference$Sentinel;->finalize()V
-HSPLjava/lang/ref/FinalizerReference;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
-HSPLjava/lang/ref/FinalizerReference;->add(Ljava/lang/Object;)V
-HSPLjava/lang/ref/FinalizerReference;->clear()V
-HSPLjava/lang/ref/FinalizerReference;->enqueueSentinelReference(Ljava/lang/ref/FinalizerReference$Sentinel;)Z
-HSPLjava/lang/ref/FinalizerReference;->finalizeAllEnqueued(J)V
-HSPLjava/lang/ref/FinalizerReference;->get()Ljava/lang/Object;
-HSPLjava/lang/ref/FinalizerReference;->remove(Ljava/lang/ref/FinalizerReference;)V
-HSPLjava/lang/ref/PhantomReference;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
-HSPLjava/lang/ref/Reference$SinkHolder;->-$$Nest$sfgetfinalize_count()I
-HSPLjava/lang/ref/Reference;-><init>(Ljava/lang/Object;)V
-HSPLjava/lang/ref/Reference;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
-HSPLjava/lang/ref/Reference;->clear()V
-HSPLjava/lang/ref/Reference;->get()Ljava/lang/Object;
-HSPLjava/lang/ref/Reference;->reachabilityFence(Ljava/lang/Object;)V
-HSPLjava/lang/ref/Reference;->refersTo(Ljava/lang/Object;)Z
-HSPLjava/lang/ref/ReferenceQueue;-><init>()V
-HSPLjava/lang/ref/ReferenceQueue;->add(Ljava/lang/ref/Reference;)V
-HSPLjava/lang/ref/ReferenceQueue;->enqueueLocked(Ljava/lang/ref/Reference;)Z
-HSPLjava/lang/ref/ReferenceQueue;->enqueuePending(Ljava/lang/ref/Reference;Ljava/util/concurrent/atomic/AtomicInteger;)V
-HSPLjava/lang/ref/ReferenceQueue;->poll()Ljava/lang/ref/Reference;
-HSPLjava/lang/ref/ReferenceQueue;->reallyPollLocked()Ljava/lang/ref/Reference;
-HSPLjava/lang/ref/ReferenceQueue;->remove()Ljava/lang/ref/Reference;
-HSPLjava/lang/ref/ReferenceQueue;->remove(J)Ljava/lang/ref/Reference;
-HSPLjava/lang/ref/SoftReference;-><init>(Ljava/lang/Object;)V
-HSPLjava/lang/ref/SoftReference;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
-HSPLjava/lang/ref/SoftReference;->get()Ljava/lang/Object;
-HSPLjava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
-HSPLjava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
-HSPLjava/lang/reflect/AccessibleObject;-><init>()V
-HSPLjava/lang/reflect/AccessibleObject;->getAnnotations()[Ljava/lang/annotation/Annotation;
-HSPLjava/lang/reflect/AccessibleObject;->isAccessible()Z
-HSPLjava/lang/reflect/AccessibleObject;->setAccessible(Z)V
-HSPLjava/lang/reflect/AccessibleObject;->setAccessible0(Ljava/lang/reflect/AccessibleObject;Z)V
-HSPLjava/lang/reflect/Array;->get(Ljava/lang/Object;I)Ljava/lang/Object;
-HSPLjava/lang/reflect/Array;->getLength(Ljava/lang/Object;)I
-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;->setInt(Ljava/lang/Object;II)V
-HSPLjava/lang/reflect/Constructor;-><init>(Ljava/lang/Class;Ljava/lang/Class;)V
-HSPLjava/lang/reflect/Constructor;->getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;
-HSPLjava/lang/reflect/Constructor;->getDeclaringClass()Ljava/lang/Class;
-HSPLjava/lang/reflect/Constructor;->getGenericParameterTypes()[Ljava/lang/reflect/Type;
-HSPLjava/lang/reflect/Constructor;->getModifiers()I
-HSPLjava/lang/reflect/Constructor;->getName()Ljava/lang/String;
-HSPLjava/lang/reflect/Constructor;->getParameterAnnotations()[[Ljava/lang/annotation/Annotation;
-HSPLjava/lang/reflect/Constructor;->getParameterTypes()[Ljava/lang/Class;
-HSPLjava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/lang/reflect/Constructor;->serializationCopy(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
-HSPLjava/lang/reflect/Executable$GenericInfo;-><init>(Llibcore/reflect/ListOfTypes;Llibcore/reflect/ListOfTypes;Ljava/lang/reflect/Type;[Ljava/lang/reflect/TypeVariable;)V
-HSPLjava/lang/reflect/Executable;-><init>()V
-HSPLjava/lang/reflect/Executable;->equalNameAndParametersInternal(Ljava/lang/reflect/Method;)Z
-HSPLjava/lang/reflect/Executable;->equalParamTypes([Ljava/lang/Class;[Ljava/lang/Class;)Z
-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;
-HSPLjava/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;
-HSPLjava/lang/reflect/Executable;->getMethodOrConstructorGenericInfoInternal()Ljava/lang/reflect/Executable$GenericInfo;
-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
-HSPLjava/lang/reflect/Executable;->isVarArgs()Z
-HSPLjava/lang/reflect/Executable;->printModifiersIfNonzero(Ljava/lang/StringBuilder;IZ)V
-HSPLjava/lang/reflect/Executable;->separateWithCommas([Ljava/lang/Class;Ljava/lang/StringBuilder;)V
-HSPLjava/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;
-HSPLjava/lang/reflect/Field;->getModifiers()I
-HSPLjava/lang/reflect/Field;->getName()Ljava/lang/String;
-HSPLjava/lang/reflect/Field;->getOffset()I
-HSPLjava/lang/reflect/Field;->getSignatureAttribute()Ljava/lang/String;
-HSPLjava/lang/reflect/Field;->getType()Ljava/lang/Class;
-HSPLjava/lang/reflect/Field;->hashCode()I
-HSPLjava/lang/reflect/Field;->isAnnotationPresent(Ljava/lang/Class;)Z
-HSPLjava/lang/reflect/Field;->isEnumConstant()Z
-HSPLjava/lang/reflect/Field;->isSynthetic()Z
-HSPLjava/lang/reflect/InvocationTargetException;-><init>(Ljava/lang/Throwable;)V
-HSPLjava/lang/reflect/InvocationTargetException;->getCause()Ljava/lang/Throwable;
-HSPLjava/lang/reflect/Method$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-HSPLjava/lang/reflect/Method$1;->compare(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)I
-HSPLjava/lang/reflect/Method;->equalNameAndParameters(Ljava/lang/reflect/Method;)Z
-HSPLjava/lang/reflect/Method;->equals(Ljava/lang/Object;)Z
-HSPLjava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
-HSPLjava/lang/reflect/Method;->getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;
-HSPLjava/lang/reflect/Method;->getDeclaringClass()Ljava/lang/Class;
-HSPLjava/lang/reflect/Method;->getGenericParameterTypes()[Ljava/lang/reflect/Type;
-HSPLjava/lang/reflect/Method;->getGenericReturnType()Ljava/lang/reflect/Type;
-HSPLjava/lang/reflect/Method;->getModifiers()I
-HSPLjava/lang/reflect/Method;->getName()Ljava/lang/String;
-HSPLjava/lang/reflect/Method;->getParameterAnnotations()[[Ljava/lang/annotation/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
-HSPLjava/lang/reflect/Method;->isVarArgs()Z
-HSPLjava/lang/reflect/Method;->specificToStringHeader(Ljava/lang/StringBuilder;)V
-HSPLjava/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
-HSPLjava/lang/reflect/Modifier;->isPrivate(I)Z
-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
-HSPLjava/lang/reflect/Modifier;->methodModifiers()I
-HSPLjava/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
-HSPLjava/lang/reflect/Proxy$Key1;->equals(Ljava/lang/Object;)Z
-HSPLjava/lang/reflect/Proxy$Key1;->hashCode()I
-HSPLjava/lang/reflect/Proxy$KeyFactory;->apply(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Object;
-HSPLjava/lang/reflect/Proxy$KeyFactory;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/lang/reflect/Proxy$ProxyClassFactory;->apply(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class;
-HSPLjava/lang/reflect/Proxy$ProxyClassFactory;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/lang/reflect/Proxy;->-$$Nest$sfgetORDER_BY_SIGNATURE_AND_SUBTYPE()Ljava/util/Comparator;
-HSPLjava/lang/reflect/Proxy;->-$$Nest$smdeduplicateAndGetExceptions(Ljava/util/List;)Ljava/util/List;
-HSPLjava/lang/reflect/Proxy;->-$$Nest$smgenerateProxy(Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/ClassLoader;[Ljava/lang/reflect/Method;[[Ljava/lang/Class;)Ljava/lang/Class;
-HSPLjava/lang/reflect/Proxy;->-$$Nest$smgetMethods([Ljava/lang/Class;)Ljava/util/List;
-HSPLjava/lang/reflect/Proxy;->-$$Nest$smvalidateReturnTypes(Ljava/util/List;)V
-HSPLjava/lang/reflect/Proxy;->deduplicateAndGetExceptions(Ljava/util/List;)Ljava/util/List;
-HSPLjava/lang/reflect/Proxy;->getMethods([Ljava/lang/Class;)Ljava/util/List;
-HSPLjava/lang/reflect/Proxy;->getMethodsRecursive([Ljava/lang/Class;Ljava/util/List;)V
-HSPLjava/lang/reflect/Proxy;->getProxyClass0(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class;
-HSPLjava/lang/reflect/Proxy;->intersectExceptions([Ljava/lang/Class;[Ljava/lang/Class;)[Ljava/lang/Class;
-HSPLjava/lang/reflect/Proxy;->invoke(Ljava/lang/reflect/Proxy;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/lang/reflect/Proxy;->isProxyClass(Ljava/lang/Class;)Z
-HSPLjava/lang/reflect/Proxy;->newProxyInstance(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;
-HSPLjava/lang/reflect/Proxy;->validateReturnTypes(Ljava/util/List;)V
-HSPLjava/lang/reflect/WeakCache$CacheKey;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
-HSPLjava/lang/reflect/WeakCache$CacheKey;->equals(Ljava/lang/Object;)Z
-HSPLjava/lang/reflect/WeakCache$CacheKey;->hashCode()I
-HSPLjava/lang/reflect/WeakCache$CacheKey;->valueOf(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)Ljava/lang/Object;
-HSPLjava/lang/reflect/WeakCache$CacheValue;-><init>(Ljava/lang/Object;)V
-HSPLjava/lang/reflect/WeakCache$CacheValue;->hashCode()I
-HSPLjava/lang/reflect/WeakCache$Factory;-><init>(Ljava/lang/reflect/WeakCache;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentMap;)V
-HSPLjava/lang/reflect/WeakCache$Factory;->get()Ljava/lang/Object;
-HSPLjava/lang/reflect/WeakCache;->-$$Nest$fgetreverseMap(Ljava/lang/reflect/WeakCache;)Ljava/util/concurrent/ConcurrentMap;
-HSPLjava/lang/reflect/WeakCache;->-$$Nest$fgetvalueFactory(Ljava/lang/reflect/WeakCache;)Ljava/util/function/BiFunction;
-HSPLjava/lang/reflect/WeakCache;->expungeStaleEntries()V
-HSPLjava/lang/reflect/WeakCache;->get(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/math/BigDecimal;-><init>(I)V
-HSPLjava/math/BigDecimal;-><init>(J)V
-HSPLjava/math/BigDecimal;-><init>(Ljava/lang/String;)V
-HSPLjava/math/BigDecimal;-><init>(Ljava/math/BigInteger;)V
-HSPLjava/math/BigDecimal;-><init>(Ljava/math/BigInteger;JII)V
-HSPLjava/math/BigDecimal;-><init>([CII)V
-HSPLjava/math/BigDecimal;-><init>([CIILjava/math/MathContext;)V
-HSPLjava/math/BigDecimal;->add(JIJI)Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->add(JJ)J
-HSPLjava/math/BigDecimal;->add(JJI)Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->add(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->checkScale(J)I
-HSPLjava/math/BigDecimal;->checkScale(JJ)I
-HSPLjava/math/BigDecimal;->commonNeedIncrement(IIIZ)Z
-HSPLjava/math/BigDecimal;->compactValFor(Ljava/math/BigInteger;)J
-HSPLjava/math/BigDecimal;->compareTo(Ljava/math/BigDecimal;)I
-HSPLjava/math/BigDecimal;->createAndStripZerosToMatchScale(JIJ)Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->divide(JIJIII)Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->divide(Ljava/math/BigDecimal;II)Ljava/math/BigDecimal;
-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;->divideAndRound(JJIII)Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->getValueString(ILjava/lang/String;I)Ljava/lang/String;
-HSPLjava/math/BigDecimal;->inflated()Ljava/math/BigInteger;
-HSPLjava/math/BigDecimal;->layoutChars(Z)Ljava/lang/String;
-HSPLjava/math/BigDecimal;->longCompareMagnitude(JJ)I
-HSPLjava/math/BigDecimal;->longMultiplyPowerTen(JI)J
-HSPLjava/math/BigDecimal;->longValueExact()J
-HSPLjava/math/BigDecimal;->movePointLeft(I)Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->movePointRight(I)Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->multiply(JJ)J
-HSPLjava/math/BigDecimal;->multiply(JJI)Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->multiply(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->needIncrement(JIIJJ)Z
-HSPLjava/math/BigDecimal;->scale()I
-HSPLjava/math/BigDecimal;->scaleByPowerOfTen(I)Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->setScale(II)Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->setScale(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->signum()I
-HSPLjava/math/BigDecimal;->stripTrailingZeros()Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->subtract(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->toBigInteger()Ljava/math/BigInteger;
-HSPLjava/math/BigDecimal;->toBigIntegerExact()Ljava/math/BigInteger;
-HSPLjava/math/BigDecimal;->toPlainString()Ljava/lang/String;
-HSPLjava/math/BigDecimal;->toString()Ljava/lang/String;
-HSPLjava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->valueOf(JI)Ljava/math/BigDecimal;
-HSPLjava/math/BigDecimal;->zeroValueOf(I)Ljava/math/BigDecimal;
-HSPLjava/math/BigInteger$UnsafeHolder;-><clinit>()V
-HSPLjava/math/BigInteger;-><init>(I[B)V
-HSPLjava/math/BigInteger;-><init>(I[BII)V
-HSPLjava/math/BigInteger;-><init>(I[I)V
-HSPLjava/math/BigInteger;-><init>(J)V
-HSPLjava/math/BigInteger;-><init>(Ljava/lang/String;)V
-HSPLjava/math/BigInteger;-><init>(Ljava/lang/String;I)V
-HSPLjava/math/BigInteger;-><init>([B)V
-HSPLjava/math/BigInteger;-><init>([BII)V
-HSPLjava/math/BigInteger;-><init>([II)V
-HSPLjava/math/BigInteger;->abs()Ljava/math/BigInteger;
-HSPLjava/math/BigInteger;->add(Ljava/math/BigInteger;)Ljava/math/BigInteger;
-HSPLjava/math/BigInteger;->add([I[I)[I
-HSPLjava/math/BigInteger;->bigEndInts2NewBN([IZ)J
-HSPLjava/math/BigInteger;->bitLength()I
-HSPLjava/math/BigInteger;->bitLengthForInt(I)I
-HSPLjava/math/BigInteger;->bn2BigEndInts(J)[I
-HSPLjava/math/BigInteger;->compareMagnitude(Ljava/math/BigInteger;)I
-HSPLjava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I
-HSPLjava/math/BigInteger;->destructiveMulAdd([III)V
-HSPLjava/math/BigInteger;->divideAndRemainder(Ljava/math/BigInteger;)[Ljava/math/BigInteger;
-HSPLjava/math/BigInteger;->divideAndRemainderKnuth(Ljava/math/BigInteger;)[Ljava/math/BigInteger;
-HSPLjava/math/BigInteger;->equals(Ljava/lang/Object;)Z
-HSPLjava/math/BigInteger;->firstNonzeroIntNum()I
-HSPLjava/math/BigInteger;->getInt(I)I
-HSPLjava/math/BigInteger;->getLowestSetBit()I
-HSPLjava/math/BigInteger;->hashCode()I
-HSPLjava/math/BigInteger;->implMultiplyToLen([II[II[I)[I
-HSPLjava/math/BigInteger;->intValue()I
-HSPLjava/math/BigInteger;->longValue()J
-HSPLjava/math/BigInteger;->mod(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;->multiply(Ljava/math/BigInteger;Z)Ljava/math/BigInteger;
-HSPLjava/math/BigInteger;->multiplyByInt([III)Ljava/math/BigInteger;
-HSPLjava/math/BigInteger;->multiplyToLen([II[II[I)[I
-HSPLjava/math/BigInteger;->padWithZeros(Ljava/lang/StringBuilder;I)V
-HSPLjava/math/BigInteger;->pow(I)Ljava/math/BigInteger;
-HSPLjava/math/BigInteger;->readObject(Ljava/io/ObjectInputStream;)V
-HSPLjava/math/BigInteger;->remainder(Ljava/math/BigInteger;)Ljava/math/BigInteger;
-HSPLjava/math/BigInteger;->remainderKnuth(Ljava/math/BigInteger;)Ljava/math/BigInteger;
-HSPLjava/math/BigInteger;->reverse([I)[I
-HSPLjava/math/BigInteger;->shiftLeft(I)Ljava/math/BigInteger;
-HSPLjava/math/BigInteger;->shiftLeft([II)[I
-HSPLjava/math/BigInteger;->shiftRight(I)Ljava/math/BigInteger;
-HSPLjava/math/BigInteger;->shiftRightImpl(I)Ljava/math/BigInteger;
-HSPLjava/math/BigInteger;->signInt()I
-HSPLjava/math/BigInteger;->signum()I
-HSPLjava/math/BigInteger;->smallToString(ILjava/lang/StringBuilder;I)V
-HSPLjava/math/BigInteger;->stripLeadingZeroBytes([BII)[I
-HSPLjava/math/BigInteger;->stripLeadingZeroInts([I)[I
-HSPLjava/math/BigInteger;->subtract(Ljava/math/BigInteger;)Ljava/math/BigInteger;
-HSPLjava/math/BigInteger;->subtract([I[I)[I
-HSPLjava/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;->toString(Ljava/math/BigInteger;Ljava/lang/StringBuilder;II)V
-HSPLjava/math/BigInteger;->trustedStripLeadingZeroInts([I)[I
-HSPLjava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;
-HSPLjava/math/MathContext;->equals(Ljava/lang/Object;)Z
-HSPLjava/math/MathContext;->getPrecision()I
-HSPLjava/math/MathContext;->getRoundingMode()Ljava/math/RoundingMode;
-HSPLjava/math/MutableBigInteger;-><clinit>()V
-HSPLjava/math/MutableBigInteger;-><init>()V
-HSPLjava/math/MutableBigInteger;-><init>(I)V
-HSPLjava/math/MutableBigInteger;-><init>(Ljava/math/MutableBigInteger;)V
-HSPLjava/math/MutableBigInteger;-><init>([I)V
-HSPLjava/math/MutableBigInteger;->clear()V
-HSPLjava/math/MutableBigInteger;->compare(Ljava/math/MutableBigInteger;)I
-HSPLjava/math/MutableBigInteger;->copyAndShift([III[III)V
-HSPLjava/math/MutableBigInteger;->divWord(JI)J
-HSPLjava/math/MutableBigInteger;->divide(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
-HSPLjava/math/MutableBigInteger;->divide(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;Z)Ljava/math/MutableBigInteger;
-HSPLjava/math/MutableBigInteger;->divideKnuth(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
-HSPLjava/math/MutableBigInteger;->divideKnuth(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;Z)Ljava/math/MutableBigInteger;
-HSPLjava/math/MutableBigInteger;->divideMagnitude(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;Z)Ljava/math/MutableBigInteger;
-HSPLjava/math/MutableBigInteger;->divideOneWord(ILjava/math/MutableBigInteger;)I
-HSPLjava/math/MutableBigInteger;->getLowestSetBit()I
-HSPLjava/math/MutableBigInteger;->getMagnitudeArray()[I
-HSPLjava/math/MutableBigInteger;->mulsub([I[IIII)I
-HSPLjava/math/MutableBigInteger;->normalize()V
-HSPLjava/math/MutableBigInteger;->primitiveLeftShift(I)V
-HSPLjava/math/MutableBigInteger;->rightShift(I)V
-HSPLjava/math/MutableBigInteger;->toBigInteger(I)Ljava/math/BigInteger;
-HSPLjava/math/MutableBigInteger;->unsignedLongCompare(JJ)Z
-HSPLjava/math/RoundingMode;->valueOf(I)Ljava/math/RoundingMode;
-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;->create()V
-HSPLjava/net/AbstractPlainDatagramSocketImpl;->finalize()V
-HSPLjava/net/AbstractPlainDatagramSocketImpl;->isClosed()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;
-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
-HSPLjava/net/AbstractPlainSocketImpl;->create(Z)V
-HSPLjava/net/AbstractPlainSocketImpl;->doConnect(Ljava/net/InetAddress;II)V
-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
-HSPLjava/net/AbstractPlainSocketImpl;->isConnectionResetPending()Z
-HSPLjava/net/AbstractPlainSocketImpl;->listen(I)V
-HSPLjava/net/AbstractPlainSocketImpl;->releaseFD()V
-HSPLjava/net/AbstractPlainSocketImpl;->setOption(ILjava/lang/Object;)V
-HSPLjava/net/AbstractPlainSocketImpl;->socketClose()V
-HSPLjava/net/AbstractPlainSocketImpl;->socketPreClose()V
-HSPLjava/net/AddressCache$AddressCacheEntry;-><init>(Ljava/lang/Object;)V
-HSPLjava/net/AddressCache$AddressCacheKey;-><init>(Ljava/lang/String;I)V
-HSPLjava/net/AddressCache$AddressCacheKey;->equals(Ljava/lang/Object;)Z
-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
-HSPLjava/net/AddressCache;->putUnknownHost(Ljava/lang/String;ILjava/lang/String;)V
-HSPLjava/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/CookieManager$CookiePathComparator;-><init>()V
-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;->shouldAcceptInternal(Ljava/net/URI;Ljava/net/HttpCookie;)Z
-HSPLjava/net/CookieManager;->sortByPath(Ljava/util/List;)Ljava/util/List;
-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
-HSPLjava/net/DatagramPacket;-><init>([BILjava/net/InetAddress;I)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
-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;->createImpl()V
-HSPLjava/net/DatagramSocket;->getImpl()Ljava/net/DatagramSocketImpl;
-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;->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;->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;->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;->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;->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;->setSecure(Z)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;
-HSPLjava/net/HttpURLConnection;-><init>(Ljava/net/URL;)V
-HSPLjava/net/HttpURLConnection;->getFollowRedirects()Z
-HSPLjava/net/HttpURLConnection;->getRequestMethod()Ljava/lang/String;
-HSPLjava/net/HttpURLConnection;->setChunkedStreamingMode(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;
-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
-HSPLjava/net/Inet4Address;->isLinkLocalAddress()Z
-HSPLjava/net/Inet4Address;->isLoopbackAddress()Z
-HSPLjava/net/Inet4Address;->isMulticastAddress()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$Inet6AddressHolder-IA;)V
-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
-HSPLjava/net/Inet6Address$Inet6AddressHolder;->isLinkLocalAddress()Z
-HSPLjava/net/Inet6Address$Inet6AddressHolder;->isLoopbackAddress()Z
-HSPLjava/net/Inet6Address$Inet6AddressHolder;->isMulticastAddress()Z
-HSPLjava/net/Inet6Address$Inet6AddressHolder;->setAddr([B)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;->getByAddress(Ljava/lang/String;[BI)Ljava/net/Inet6Address;
-HSPLjava/net/Inet6Address;->getHostAddress()Ljava/lang/String;
-HSPLjava/net/Inet6Address;->getScopeId()I
-HSPLjava/net/Inet6Address;->hashCode()I
-HSPLjava/net/Inet6Address;->isAnyLocalAddress()Z
-HSPLjava/net/Inet6Address;->isLinkLocalAddress()Z
-HSPLjava/net/Inet6Address;->isLoopbackAddress()Z
-HSPLjava/net/Inet6Address;->isMulticastAddress()Z
-HSPLjava/net/Inet6AddressImpl;->clearAddressCache()V
-HSPLjava/net/Inet6AddressImpl;->lookupAllHostAddr(Ljava/lang/String;I)[Ljava/net/InetAddress;
-HSPLjava/net/Inet6AddressImpl;->lookupHostByName(Ljava/lang/String;I)[Ljava/net/InetAddress;
-HSPLjava/net/InetAddress$InetAddressHolder;-><init>()V
-HSPLjava/net/InetAddress$InetAddressHolder;->getAddress()I
-HSPLjava/net/InetAddress$InetAddressHolder;->getHostName()Ljava/lang/String;
-HSPLjava/net/InetAddress$InetAddressHolder;->init(Ljava/lang/String;I)V
-HSPLjava/net/InetAddress;-><init>()V
-HSPLjava/net/InetAddress;->clearDnsCache()V
-HSPLjava/net/InetAddress;->getAllByName(Ljava/lang/String;)[Ljava/net/InetAddress;
-HSPLjava/net/InetAddress;->getAllByNameOnNet(Ljava/lang/String;I)[Ljava/net/InetAddress;
-HSPLjava/net/InetAddress;->getByAddress(Ljava/lang/String;[B)Ljava/net/InetAddress;
-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;
-HSPLjava/net/InetAddress;->getHostName()Ljava/lang/String;
-HSPLjava/net/InetAddress;->holder()Ljava/net/InetAddress$InetAddressHolder;
-HSPLjava/net/InetAddress;->toString()Ljava/lang/String;
-HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;-><init>(Ljava/lang/String;Ljava/net/InetAddress;I)V
-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
-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
-HSPLjava/net/JarURLConnection;-><init>(Ljava/net/URL;)V
-HSPLjava/net/JarURLConnection;->getEntryName()Ljava/lang/String;
-HSPLjava/net/JarURLConnection;->parseSpecs(Ljava/net/URL;)V
-HSPLjava/net/MulticastSocket;-><init>(Ljava/net/SocketAddress;)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;->getAll()[Ljava/net/NetworkInterface;
-HSPLjava/net/NetworkInterface;->getByName(Ljava/lang/String;)Ljava/net/NetworkInterface;
-HSPLjava/net/NetworkInterface;->getFlags()I
-HSPLjava/net/NetworkInterface;->getHardwareAddress()[B
-HSPLjava/net/NetworkInterface;->getIndex()I
-HSPLjava/net/NetworkInterface;->getInetAddresses()Ljava/util/Enumeration;
-HSPLjava/net/NetworkInterface;->getName()Ljava/lang/String;
-HSPLjava/net/NetworkInterface;->getNetworkInterfaces()Ljava/util/Enumeration;
-HSPLjava/net/NetworkInterface;->isLoopback()Z
-HSPLjava/net/NetworkInterface;->isUp()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;->datagramSocketClose()V
-HSPLjava/net/PlainDatagramSocketImpl;->datagramSocketCreate()V
-HSPLjava/net/PlainDatagramSocketImpl;->doRecv(Ljava/net/DatagramPacket;I)V
-HSPLjava/net/PlainDatagramSocketImpl;->receive0(Ljava/net/DatagramPacket;)V
-HSPLjava/net/PlainDatagramSocketImpl;->send(Ljava/net/DatagramPacket;)V
-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
-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/Proxy$Type;->values()[Ljava/net/Proxy$Type;
-HSPLjava/net/Proxy;->address()Ljava/net/SocketAddress;
-HSPLjava/net/Proxy;->equals(Ljava/lang/Object;)Z
-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;->getDefault()Ljava/net/ResponseCache;
-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/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;
-HSPLjava/net/Socket$3;-><init>(Ljava/net/Socket;)V
-HSPLjava/net/Socket$3;->run()Ljava/io/OutputStream;
-HSPLjava/net/Socket$3;->run()Ljava/lang/Object;
-HSPLjava/net/Socket;-><init>()V
-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
-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
-HSPLjava/net/Socket;->createImpl(Z)V
-HSPLjava/net/Socket;->getFileDescriptor$()Ljava/io/FileDescriptor;
-HSPLjava/net/Socket;->getImpl()Ljava/net/SocketImpl;
-HSPLjava/net/Socket;->getInetAddress()Ljava/net/InetAddress;
-HSPLjava/net/Socket;->getInputStream()Ljava/io/InputStream;
-HSPLjava/net/Socket;->getLocalAddress()Ljava/net/InetAddress;
-HSPLjava/net/Socket;->getLocalPort()I
-HSPLjava/net/Socket;->getLocalSocketAddress()Ljava/net/SocketAddress;
-HSPLjava/net/Socket;->getOutputStream()Ljava/io/OutputStream;
-HSPLjava/net/Socket;->getPort()I
-HSPLjava/net/Socket;->getRemoteSocketAddress()Ljava/net/SocketAddress;
-HSPLjava/net/Socket;->getReuseAddress()Z
-HSPLjava/net/Socket;->getSoTimeout()I
-HSPLjava/net/Socket;->isBound()Z
-HSPLjava/net/Socket;->isClosed()Z
-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;
-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/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
-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
-HSPLjava/net/SocketOutputStream;->finalize()V
-HSPLjava/net/SocketOutputStream;->socketWrite([BII)V
-HSPLjava/net/SocketOutputStream;->write([BII)V
-HSPLjava/net/SocketTimeoutException;-><init>(Ljava/lang/String;)V
-HSPLjava/net/SocksSocketImpl;-><init>()V
-HSPLjava/net/SocksSocketImpl;->close()V
-HSPLjava/net/SocksSocketImpl;->connect(Ljava/net/SocketAddress;I)V
-HSPLjava/net/SocksSocketImpl;->getInetAddress()Ljava/net/InetAddress;
-HSPLjava/net/SocksSocketImpl;->getLocalPort()I
-HSPLjava/net/SocksSocketImpl;->getPort()I
-HSPLjava/net/SocksSocketImpl;->remainingMillis(J)I
-HSPLjava/net/URI$Parser;-><init>(Ljava/net/URI;Ljava/lang/String;)V
-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
-HSPLjava/net/URI$Parser;->parse(Z)V
-HSPLjava/net/URI$Parser;->parseAuthority(II)I
-HSPLjava/net/URI$Parser;->parseHierarchical(II)I
-HSPLjava/net/URI$Parser;->parseHostname(II)I
-HSPLjava/net/URI$Parser;->parseIPv4Address(II)I
-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;->-$$Nest$fputpath(Ljava/net/URI;Ljava/lang/String;)V
-HSPLjava/net/URI;->-$$Nest$fputscheme(Ljava/net/URI;Ljava/lang/String;)V
-HSPLjava/net/URI;->-$$Nest$fputschemeSpecificPart(Ljava/net/URI;Ljava/lang/String;)V
-HSPLjava/net/URI;->-$$Nest$fputstring(Ljava/net/URI;Ljava/lang/String;)V
-HSPLjava/net/URI;->-$$Nest$sfgetH_ALPHA()J
-HSPLjava/net/URI;->-$$Nest$sfgetH_PATH()J
-HSPLjava/net/URI;->-$$Nest$sfgetH_SCHEME()J
-HSPLjava/net/URI;->-$$Nest$sfgetL_PATH()J
-HSPLjava/net/URI;->-$$Nest$sfgetL_SCHEME()J
-HSPLjava/net/URI;->-$$Nest$smmatch(CJJ)Z
-HSPLjava/net/URI;-><init>(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
-HSPLjava/net/URI;->appendAuthority(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
-HSPLjava/net/URI;->appendEscape(Ljava/lang/StringBuffer;B)V
-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;->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;
-HSPLjava/net/URI;->getRawFragment()Ljava/lang/String;
-HSPLjava/net/URI;->getRawPath()Ljava/lang/String;
-HSPLjava/net/URI;->getRawQuery()Ljava/lang/String;
-HSPLjava/net/URI;->getScheme()Ljava/lang/String;
-HSPLjava/net/URI;->getUserInfo()Ljava/lang/String;
-HSPLjava/net/URI;->hash(ILjava/lang/String;)I
-HSPLjava/net/URI;->hashCode()I
-HSPLjava/net/URI;->hashIgnoringCase(ILjava/lang/String;)I
-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;
-HSPLjava/net/URI;->toURL()Ljava/net/URL;
-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/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;->getFile()Ljava/lang/String;
-HSPLjava/net/URL;->getHost()Ljava/lang/String;
-HSPLjava/net/URL;->getPath()Ljava/lang/String;
-HSPLjava/net/URL;->getPort()I
-HSPLjava/net/URL;->getProtocol()Ljava/lang/String;
-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;->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;->toExternalForm()Ljava/lang/String;
-HSPLjava/net/URL;->toString()Ljava/lang/String;
-HSPLjava/net/URLConnection;-><init>(Ljava/net/URL;)V
-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;->getReadTimeout()I
-HSPLjava/net/URLConnection;->getURL()Ljava/net/URL;
-HSPLjava/net/URLConnection;->getUseCaches()Z
-HSPLjava/net/URLConnection;->setDefaultUseCaches(Z)V
-HSPLjava/net/URLConnection;->setDoInput(Z)V
-HSPLjava/net/URLConnection;->setDoOutput(Z)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;->decode(Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/lang/String;
-HSPLjava/net/URLDecoder;->isValidHexChar(C)Z
-HSPLjava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/lang/String;
-HSPLjava/net/URLStreamHandler;-><init>()V
-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;
-HSPLjava/net/UnknownHostException;-><init>(Ljava/lang/String;)V
-HSPLjava/nio/Bits;->char0(C)B
-HSPLjava/nio/Bits;->char1(C)B
-HSPLjava/nio/Bits;->getFloat(Ljava/nio/ByteBuffer;IZ)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
-HSPLjava/nio/Bits;->getIntL(Ljava/nio/ByteBuffer;I)I
-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
-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
-HSPLjava/nio/Bits;->int2(I)B
-HSPLjava/nio/Bits;->int3(I)B
-HSPLjava/nio/Bits;->long0(J)B
-HSPLjava/nio/Bits;->long1(J)B
-HSPLjava/nio/Bits;->long2(J)B
-HSPLjava/nio/Bits;->long3(J)B
-HSPLjava/nio/Bits;->long4(J)B
-HSPLjava/nio/Bits;->long5(J)B
-HSPLjava/nio/Bits;->long6(J)B
-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;->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
-HSPLjava/nio/Bits;->putFloat(Ljava/nio/ByteBuffer;IFZ)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
-HSPLjava/nio/Bits;->putLong(Ljava/nio/ByteBuffer;IJZ)V
-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/Buffer;-><init>(IIIII)V
-HSPLjava/nio/Buffer;->capacity()I
-HSPLjava/nio/Buffer;->checkBounds(III)V
-HSPLjava/nio/Buffer;->checkIndex(I)I
-HSPLjava/nio/Buffer;->checkIndex(II)I
-HSPLjava/nio/Buffer;->checkScope()V
-HSPLjava/nio/Buffer;->clear()Ljava/nio/Buffer;
-HSPLjava/nio/Buffer;->discardMark()V
-HSPLjava/nio/Buffer;->flip()Ljava/nio/Buffer;
-HSPLjava/nio/Buffer;->hasRemaining()Z
-HSPLjava/nio/Buffer;->limit()I
-HSPLjava/nio/Buffer;->limit(I)Ljava/nio/Buffer;
-HSPLjava/nio/Buffer;->mark()Ljava/nio/Buffer;
-HSPLjava/nio/Buffer;->markValue()I
-HSPLjava/nio/Buffer;->nextGetIndex()I
-HSPLjava/nio/Buffer;->nextGetIndex(I)I
-HSPLjava/nio/Buffer;->nextPutIndex()I
-HSPLjava/nio/Buffer;->nextPutIndex(I)I
-HSPLjava/nio/Buffer;->position()I
-HSPLjava/nio/Buffer;->position(I)Ljava/nio/Buffer;
-HSPLjava/nio/Buffer;->remaining()I
-HSPLjava/nio/Buffer;->reset()Ljava/nio/Buffer;
-HSPLjava/nio/Buffer;->rewind()Ljava/nio/Buffer;
-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;
-HSPLjava/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(Ljava/lang/Object;)Z
-HSPLjava/nio/ByteBuffer;->flip()Ljava/nio/Buffer;
-HSPLjava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer;
-HSPLjava/nio/ByteBuffer;->hasArray()Z
-HSPLjava/nio/ByteBuffer;->hashCode()I
-HSPLjava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;
-HSPLjava/nio/ByteBuffer;->mark()Ljava/nio/Buffer;
-HSPLjava/nio/ByteBuffer;->order()Ljava/nio/ByteOrder;
-HSPLjava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
-HSPLjava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
-HSPLjava/nio/ByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
-HSPLjava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer;
-HSPLjava/nio/ByteBuffer;->putBuffer(ILjava/nio/ByteBuffer;II)V+]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer;,Ljava/nio/HeapByteBuffer;
-HSPLjava/nio/ByteBuffer;->reset()Ljava/nio/Buffer;
-HSPLjava/nio/ByteBuffer;->rewind()Ljava/nio/Buffer;
-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
-HSPLjava/nio/ByteBufferAsCharBuffer;->duplicate()Ljava/nio/CharBuffer;
-HSPLjava/nio/ByteBufferAsCharBuffer;->get(I)C
-HSPLjava/nio/ByteBufferAsCharBuffer;->get([CII)Ljava/nio/CharBuffer;
-HSPLjava/nio/ByteBufferAsCharBuffer;->isDirect()Z
-HSPLjava/nio/ByteBufferAsCharBuffer;->ix(I)I
-HSPLjava/nio/ByteBufferAsCharBuffer;->subSequence(II)Ljava/lang/CharSequence;
-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(IF)Ljava/nio/FloatBuffer;
-HSPLjava/nio/ByteBufferAsFloatBuffer;->put([FII)Ljava/nio/FloatBuffer;
-HSPLjava/nio/ByteBufferAsIntBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V
-HSPLjava/nio/ByteBufferAsIntBuffer;->get([III)Ljava/nio/IntBuffer;
-HSPLjava/nio/ByteBufferAsIntBuffer;->ix(I)I
-HSPLjava/nio/ByteBufferAsIntBuffer;->put(I)Ljava/nio/IntBuffer;
-HSPLjava/nio/ByteBufferAsIntBuffer;->put(II)Ljava/nio/IntBuffer;
-HSPLjava/nio/ByteBufferAsIntBuffer;->put([III)Ljava/nio/IntBuffer;
-HSPLjava/nio/ByteBufferAsLongBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V
-HSPLjava/nio/ByteBufferAsLongBuffer;->get([JII)Ljava/nio/LongBuffer;
-HSPLjava/nio/ByteBufferAsLongBuffer;->ix(I)I
-HSPLjava/nio/ByteBufferAsShortBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V
-HSPLjava/nio/ByteBufferAsShortBuffer;->get([SII)Ljava/nio/ShortBuffer;
-HSPLjava/nio/ByteBufferAsShortBuffer;->ix(I)I
-HSPLjava/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
-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;
-HSPLjava/nio/CharBuffer;->hasArray()Z
-HSPLjava/nio/CharBuffer;->length()I
-HSPLjava/nio/CharBuffer;->limit(I)Ljava/nio/Buffer;
-HSPLjava/nio/CharBuffer;->position(I)Ljava/nio/Buffer;
-HSPLjava/nio/CharBuffer;->toString()Ljava/lang/String;
-HSPLjava/nio/CharBuffer;->wrap(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer;
-HSPLjava/nio/CharBuffer;->wrap(Ljava/lang/CharSequence;II)Ljava/nio/CharBuffer;
-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
-HSPLjava/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
-HSPLjava/nio/DirectByteBuffer;-><init>(Ljava/nio/DirectByteBuffer$MemoryRef;IIIIIZ)V
-HSPLjava/nio/DirectByteBuffer;->address()J
-HSPLjava/nio/DirectByteBuffer;->asCharBuffer()Ljava/nio/CharBuffer;
-HSPLjava/nio/DirectByteBuffer;->asFloatBuffer()Ljava/nio/FloatBuffer;
-HSPLjava/nio/DirectByteBuffer;->asIntBuffer()Ljava/nio/IntBuffer;
-HSPLjava/nio/DirectByteBuffer;->asReadOnlyBuffer()Ljava/nio/ByteBuffer;
-HSPLjava/nio/DirectByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;
-HSPLjava/nio/DirectByteBuffer;->cleaner()Lsun/misc/Cleaner;
-HSPLjava/nio/DirectByteBuffer;->duplicate()Ljava/nio/ByteBuffer;
-HSPLjava/nio/DirectByteBuffer;->duplicate()Ljava/nio/MappedByteBuffer;
-HSPLjava/nio/DirectByteBuffer;->get()B
-HSPLjava/nio/DirectByteBuffer;->get(I)B
-HSPLjava/nio/DirectByteBuffer;->get(J)B
-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
-HSPLjava/nio/DirectByteBuffer;->getInt()I
-HSPLjava/nio/DirectByteBuffer;->getInt(I)I
-HSPLjava/nio/DirectByteBuffer;->getInt(J)I
-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
-HSPLjava/nio/DirectByteBuffer;->getUnchecked(I[III)V
-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(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/DirectByteBuffer;->slice()Ljava/nio/MappedByteBuffer;
-HSPLjava/nio/FloatBuffer;-><init>(IIII)V
-HSPLjava/nio/FloatBuffer;-><init>(IIII[FI)V
-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
-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;->asIntBuffer()Ljava/nio/IntBuffer;
-HSPLjava/nio/HeapByteBuffer;->asLongBuffer()Ljava/nio/LongBuffer;
-HSPLjava/nio/HeapByteBuffer;->asReadOnlyBuffer()Ljava/nio/ByteBuffer;
-HSPLjava/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;->getFloat()F
-HSPLjava/nio/HeapByteBuffer;->getFloat(I)F
-HSPLjava/nio/HeapByteBuffer;->getInt()I
-HSPLjava/nio/HeapByteBuffer;->getInt(I)I
-HSPLjava/nio/HeapByteBuffer;->getLong()J
-HSPLjava/nio/HeapByteBuffer;->getLong(I)J
-HSPLjava/nio/HeapByteBuffer;->getShort()S
-HSPLjava/nio/HeapByteBuffer;->getShort(I)S
-HSPLjava/nio/HeapByteBuffer;->getUnchecked(I[III)V
-HSPLjava/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(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
-HSPLjava/nio/HeapByteBuffer;->put([BII)Ljava/nio/ByteBuffer;
-HSPLjava/nio/HeapByteBuffer;->putChar(C)Ljava/nio/ByteBuffer;
-HSPLjava/nio/HeapByteBuffer;->putFloat(F)Ljava/nio/ByteBuffer;
-HSPLjava/nio/HeapByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;
-HSPLjava/nio/HeapByteBuffer;->putInt(II)Ljava/nio/ByteBuffer;
-HSPLjava/nio/HeapByteBuffer;->putLong(IJ)Ljava/nio/ByteBuffer;
-HSPLjava/nio/HeapByteBuffer;->putLong(J)Ljava/nio/ByteBuffer;
-HSPLjava/nio/HeapByteBuffer;->putShort(IS)Ljava/nio/ByteBuffer;
-HSPLjava/nio/HeapByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;
-HSPLjava/nio/HeapByteBuffer;->slice()Ljava/nio/ByteBuffer;
-HSPLjava/nio/HeapByteBuffer;->throwIfReadOnly()V
-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(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;->throwIfReadOnly()V
-HSPLjava/nio/HeapCharBuffer;->toString(II)Ljava/lang/String;
-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;->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;
-HSPLjava/nio/LongBuffer;-><init>(IIII)V
-HSPLjava/nio/LongBuffer;-><init>(IIII[JI)V
-HSPLjava/nio/LongBuffer;->get([J)Ljava/nio/LongBuffer;
-HSPLjava/nio/LongBuffer;->limit(I)Ljava/nio/Buffer;
-HSPLjava/nio/LongBuffer;->position(I)Ljava/nio/Buffer;
-HSPLjava/nio/MappedByteBuffer;-><init>(IIII)V
-HSPLjava/nio/MappedByteBuffer;-><init>(IIIILjava/io/FileDescriptor;Z)V
-HSPLjava/nio/MappedByteBuffer;-><init>(IIII[BI)V
-HSPLjava/nio/MappedByteBuffer;->checkMapped()V
-HSPLjava/nio/MappedByteBuffer;->clear()Ljava/nio/Buffer;
-HSPLjava/nio/MappedByteBuffer;->flip()Ljava/nio/Buffer;
-HSPLjava/nio/MappedByteBuffer;->limit(I)Ljava/nio/Buffer;
-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/MappedByteBuffer;->position(I)Ljava/nio/Buffer;
-HSPLjava/nio/MappedByteBuffer;->rewind()Ljava/nio/Buffer;
-HSPLjava/nio/NIOAccess;->getBaseArray(Ljava/nio/Buffer;)Ljava/lang/Object;
-HSPLjava/nio/NIOAccess;->getBaseArrayOffset(Ljava/nio/Buffer;)I
-HSPLjava/nio/NioUtils;->freeDirectBuffer(Ljava/nio/ByteBuffer;)V
-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;
-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$WritableByteChannelImpl;-><init>(Ljava/io/OutputStream;)V
-HSPLjava/nio/channels/Channels$WritableByteChannelImpl;->write(Ljava/nio/ByteBuffer;)I
-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
-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;
-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;->implCloseChannel()V
-HSPLjava/nio/channels/spi/AbstractSelectableChannel;->isBlocking()Z
-HSPLjava/nio/channels/spi/AbstractSelectableChannel;->isRegistered()Z
-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
-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
-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;->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;->cache(Ljava/lang/String;Ljava/nio/charset/Charset;)V
-HSPLjava/nio/charset/Charset;->checkName(Ljava/lang/String;)V
-HSPLjava/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;
-HSPLjava/nio/charset/Charset;->isSupported(Ljava/lang/String;)Z
-HSPLjava/nio/charset/Charset;->lookup(Ljava/lang/String;)Ljava/nio/charset/Charset;
-HSPLjava/nio/charset/Charset;->lookup2(Ljava/lang/String;)Ljava/nio/charset/Charset;
-HSPLjava/nio/charset/Charset;->name()Ljava/lang/String;
-HSPLjava/nio/charset/CharsetDecoder;-><init>(Ljava/nio/charset/Charset;FF)V
-HSPLjava/nio/charset/CharsetDecoder;-><init>(Ljava/nio/charset/Charset;FFLjava/lang/String;)V
-HSPLjava/nio/charset/CharsetDecoder;->averageCharsPerByte()F
-HSPLjava/nio/charset/CharsetDecoder;->charset()Ljava/nio/charset/Charset;
-HSPLjava/nio/charset/CharsetDecoder;->decode(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;
-HSPLjava/nio/charset/CharsetDecoder;->decode(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;
-HSPLjava/nio/charset/CharsetDecoder;->flush(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
-HSPLjava/nio/charset/CharsetDecoder;->implFlush(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
-HSPLjava/nio/charset/CharsetDecoder;->implOnMalformedInput(Ljava/nio/charset/CodingErrorAction;)V
-HSPLjava/nio/charset/CharsetDecoder;->implOnUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)V
-HSPLjava/nio/charset/CharsetDecoder;->implReset()V
-HSPLjava/nio/charset/CharsetDecoder;->malformedInputAction()Ljava/nio/charset/CodingErrorAction;
-HSPLjava/nio/charset/CharsetDecoder;->maxCharsPerByte()F
-HSPLjava/nio/charset/CharsetDecoder;->onMalformedInput(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
-HSPLjava/nio/charset/CharsetDecoder;->onUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
-HSPLjava/nio/charset/CharsetDecoder;->replaceWith(Ljava/lang/String;)Ljava/nio/charset/CharsetDecoder;
-HSPLjava/nio/charset/CharsetDecoder;->replacement()Ljava/lang/String;
-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)V
-HSPLjava/nio/charset/CharsetEncoder;-><init>(Ljava/nio/charset/Charset;FF[B)V
-HSPLjava/nio/charset/CharsetEncoder;-><init>(Ljava/nio/charset/Charset;FF[BZ)V
-HSPLjava/nio/charset/CharsetEncoder;->averageBytesPerChar()F
-HSPLjava/nio/charset/CharsetEncoder;->canEncode(Ljava/lang/CharSequence;)Z
-HSPLjava/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;
-HSPLjava/nio/charset/CharsetEncoder;->flush(Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;
-HSPLjava/nio/charset/CharsetEncoder;->implFlush(Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;
-HSPLjava/nio/charset/CharsetEncoder;->implOnMalformedInput(Ljava/nio/charset/CodingErrorAction;)V
-HSPLjava/nio/charset/CharsetEncoder;->implOnUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)V
-HSPLjava/nio/charset/CharsetEncoder;->implReplaceWith([B)V
-HSPLjava/nio/charset/CharsetEncoder;->malformedInputAction()Ljava/nio/charset/CodingErrorAction;
-HSPLjava/nio/charset/CharsetEncoder;->maxBytesPerChar()F
-HSPLjava/nio/charset/CharsetEncoder;->onMalformedInput(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetEncoder;
-HSPLjava/nio/charset/CharsetEncoder;->onUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetEncoder;
-HSPLjava/nio/charset/CharsetEncoder;->replaceWith([B)Ljava/nio/charset/CharsetEncoder;
-HSPLjava/nio/charset/CharsetEncoder;->replacement()[B
-HSPLjava/nio/charset/CharsetEncoder;->reset()Ljava/nio/charset/CharsetEncoder;
-HSPLjava/nio/charset/CharsetEncoder;->unmappableCharacterAction()Ljava/nio/charset/CodingErrorAction;
-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/FileSystems;->getDefault()Ljava/nio/file/FileSystem;
-HSPLjava/nio/file/Files$AcceptAllFilter;->accept(Ljava/lang/Object;)Z
-HSPLjava/nio/file/Files$AcceptAllFilter;->accept(Ljava/nio/file/Path;)Z
-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
-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;
-HSPLjava/nio/file/Files;->newInputStream(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream;
-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/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
-HSPLjava/nio/file/attribute/FileTime;->append(Ljava/lang/StringBuilder;II)Ljava/lang/StringBuilder;
-HSPLjava/nio/file/attribute/FileTime;->compareTo(Ljava/nio/file/attribute/FileTime;)I
-HSPLjava/nio/file/attribute/FileTime;->equals(Ljava/lang/Object;)Z
-HSPLjava/nio/file/attribute/FileTime;->from(JLjava/util/concurrent/TimeUnit;)Ljava/nio/file/attribute/FileTime;
-HSPLjava/nio/file/attribute/FileTime;->toMillis()J
-HSPLjava/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;
-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/DigestInputStream;-><init>(Ljava/io/InputStream;Ljava/security/MessageDigest;)V
-HSPLjava/security/DigestInputStream;->read([BII)I
-HSPLjava/security/DigestInputStream;->setMessageDigest(Ljava/security/MessageDigest;)V
-HSPLjava/security/GeneralSecurityException;-><init>(Ljava/lang/String;)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;->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;-><init>(Ljava/lang/String;)V
-HSPLjava/security/KeyPairGenerator;->getInstance(Lsun/security/jca/GetInstance$Instance;Ljava/lang/String;)Ljava/security/KeyPairGenerator;
-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;
-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
-HSPLjava/security/KeyStore;->getCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate;
-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;->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
-HSPLjava/security/KeyStore;->setCertificateEntry(Ljava/lang/String;Ljava/security/cert/Certificate;)V
-HSPLjava/security/KeyStore;->size()I
-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/io/InputStream;Ljava/security/KeyStore$LoadStoreParameter;)V
-HSPLjava/security/KeyStoreSpi;->engineLoad(Ljava/security/KeyStore$LoadStoreParameter;)V
-HSPLjava/security/MessageDigest$Delegate;-><init>(Ljava/security/MessageDigestSpi;Ljava/lang/String;)V
-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
-HSPLjava/security/MessageDigest;->digest()[B
-HSPLjava/security/MessageDigest;->digest([B)[B
-HSPLjava/security/MessageDigest;->digest([BII)I
-HSPLjava/security/MessageDigest;->getDigestLength()I
-HSPLjava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;
-HSPLjava/security/MessageDigest;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/MessageDigest;
-HSPLjava/security/MessageDigest;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/MessageDigest;
-HSPLjava/security/MessageDigest;->isEqual([B[B)Z
-HSPLjava/security/MessageDigest;->reset()V
-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;->-$$Nest$fputalgorithm(Ljava/security/Provider$Service;Ljava/lang/String;)V
-HSPLjava/security/Provider$Service;->-$$Nest$fputclassName(Ljava/security/Provider$Service;Ljava/lang/String;)V
-HSPLjava/security/Provider$Service;->-$$Nest$fputtype(Ljava/security/Provider$Service;Ljava/lang/String;)V
-HSPLjava/security/Provider$Service;->-$$Nest$maddAlias(Ljava/security/Provider$Service;Ljava/lang/String;)V
-HSPLjava/security/Provider$Service;->-$$Nest$misValid(Ljava/security/Provider$Service;)Z
-HSPLjava/security/Provider$Service;-><init>(Ljava/security/Provider;)V
-HSPLjava/security/Provider$Service;-><init>(Ljava/security/Provider;Ljava/security/Provider$Service-IA;)V
-HSPLjava/security/Provider$Service;->addAlias(Ljava/lang/String;)V
-HSPLjava/security/Provider$Service;->addAttribute(Ljava/lang/String;Ljava/lang/String;)V
-HSPLjava/security/Provider$Service;->getAlgorithm()Ljava/lang/String;
-HSPLjava/security/Provider$Service;->getAttribute(Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/security/Provider$Service;->getClassName()Ljava/lang/String;
-HSPLjava/security/Provider$Service;->getDefaultConstructor()Ljava/lang/reflect/Constructor;
-HSPLjava/security/Provider$Service;->getImplClass()Ljava/lang/Class;
-HSPLjava/security/Provider$Service;->getKeyClass(Ljava/lang/String;)Ljava/lang/Class;
-HSPLjava/security/Provider$Service;->getProvider()Ljava/security/Provider;
-HSPLjava/security/Provider$Service;->getType()Ljava/lang/String;
-HSPLjava/security/Provider$Service;->hasKeyAttributes()Z
-HSPLjava/security/Provider$Service;->isValid()Z
-HSPLjava/security/Provider$Service;->newInstance(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/security/Provider$Service;->newInstanceOf()Ljava/lang/Object;
-HSPLjava/security/Provider$Service;->newInstanceUtil(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/security/Provider$Service;->supportsKeyClass(Ljava/security/Key;)Z
-HSPLjava/security/Provider$Service;->supportsKeyFormat(Ljava/security/Key;)Z
-HSPLjava/security/Provider$Service;->supportsParameter(Ljava/lang/Object;)Z
-HSPLjava/security/Provider$ServiceKey;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V
-HSPLjava/security/Provider$ServiceKey;-><init>(Ljava/lang/String;Ljava/lang/String;ZLjava/security/Provider$ServiceKey-IA;)V
-HSPLjava/security/Provider$ServiceKey;->equals(Ljava/lang/Object;)Z
-HSPLjava/security/Provider$ServiceKey;->hashCode()I
-HSPLjava/security/Provider$ServiceKey;->matches(Ljava/lang/String;Ljava/lang/String;)Z
-HSPLjava/security/Provider$UString;-><init>(Ljava/lang/String;)V
-HSPLjava/security/Provider$UString;->equals(Ljava/lang/Object;)Z
-HSPLjava/security/Provider$UString;->hashCode()I
-HSPLjava/security/Provider;->-$$Nest$sfgetEMPTY()[Ljava/lang/Object;
-HSPLjava/security/Provider;->-$$Nest$sfgetknownEngines()Ljava/util/Map;
-HSPLjava/security/Provider;-><init>(Ljava/lang/String;DLjava/lang/String;)V
-HSPLjava/security/Provider;->check(Ljava/lang/String;)V
-HSPLjava/security/Provider;->checkInitialized()V
-HSPLjava/security/Provider;->checkLegacy(Ljava/lang/Object;)Z
-HSPLjava/security/Provider;->ensureLegacyParsed()V
-HSPLjava/security/Provider;->getEngineName(Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/security/Provider;->getName()Ljava/lang/String;
-HSPLjava/security/Provider;->getProperty(Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/security/Provider;->getService(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Provider$Service;
-HSPLjava/security/Provider;->getServices()Ljava/util/Set;
-HSPLjava/security/Provider;->getTypeAndAlgorithm(Ljava/lang/String;)[Ljava/lang/String;
-HSPLjava/security/Provider;->implPut(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/security/Provider;->parseLegacyPut(Ljava/lang/String;Ljava/lang/String;)V
-HSPLjava/security/Provider;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/security/Provider;->putId()V
-HSPLjava/security/Provider;->removeInvalidServices(Ljava/util/Map;)V
-HSPLjava/security/Provider;->warmUpServiceProvision()V
-HSPLjava/security/SecureRandom;-><init>()V
-HSPLjava/security/SecureRandom;-><init>(Ljava/security/SecureRandomSpi;Ljava/security/Provider;Ljava/lang/String;)V
-HSPLjava/security/SecureRandom;->getDefaultPRNG(Z[B)V
-HSPLjava/security/SecureRandom;->getInstance(Ljava/lang/String;)Ljava/security/SecureRandom;
-HSPLjava/security/SecureRandom;->getPrngAlgorithm()Ljava/lang/String;
-HSPLjava/security/SecureRandom;->getProvider()Ljava/security/Provider;
-HSPLjava/security/SecureRandom;->getThreadSafe()Z
-HSPLjava/security/SecureRandom;->next(I)I
-HSPLjava/security/SecureRandom;->nextBytes([B)V
-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;
-HSPLjava/security/Security;->getSpiClass(Ljava/lang/String;)Ljava/lang/Class;
-HSPLjava/security/Security;->getVersion()I
-HSPLjava/security/Security;->increaseVersion()V
-HSPLjava/security/Security;->insertProviderAt(Ljava/security/Provider;I)I
-HSPLjava/security/Security;->invalidateSMCache(Ljava/lang/String;)V
-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
-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
-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;->getInstance(Ljava/lang/String;)Ljava/security/Signature;
-HSPLjava/security/Signature;->initSign(Ljava/security/PrivateKey;)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
-HSPLjava/security/SignatureSpi;-><init>()V
-HSPLjava/security/SignatureSpi;->engineUpdate(Ljava/nio/ByteBuffer;)V
-HSPLjava/security/cert/CertPath;-><init>(Ljava/lang/String;)V
-HSPLjava/security/cert/CertPath;->getType()Ljava/lang/String;
-HSPLjava/security/cert/CertPathValidator;-><init>(Ljava/security/cert/CertPathValidatorSpi;Ljava/security/Provider;Ljava/lang/String;)V
-HSPLjava/security/cert/CertPathValidator;->getInstance(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
-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
-HSPLjava/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
-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/CertificateFactorySpi;-><init>()V
-HSPLjava/security/cert/CollectionCertStoreParameters;-><init>(Ljava/util/Collection;)V
-HSPLjava/security/cert/CollectionCertStoreParameters;->clone()Ljava/lang/Object;
-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
-HSPLjava/security/cert/PKIXParameters;-><init>(Ljava/util/Set;)V
-HSPLjava/security/cert/PKIXParameters;->addCertPathChecker(Ljava/security/cert/PKIXCertPathChecker;)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
-HSPLjava/security/cert/PKIXParameters;->getSigProvider()Ljava/lang/String;
-HSPLjava/security/cert/PKIXParameters;->getTargetCertConstraints()Ljava/security/cert/CertSelector;
-HSPLjava/security/cert/PKIXParameters;->getTrustAnchors()Ljava/util/Set;
-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;->setRevocationEnabled(Z)V
-HSPLjava/security/cert/PKIXParameters;->setTrustAnchors(Ljava/util/Set;)V
-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
-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
-HSPLjava/security/cert/X509CertSelector;->matchExtendedKeyUsage(Ljava/security/cert/X509Certificate;)Z
-HSPLjava/security/cert/X509CertSelector;->matchKeyUsage(Ljava/security/cert/X509Certificate;)Z
-HSPLjava/security/cert/X509CertSelector;->matchNameConstraints(Ljava/security/cert/X509Certificate;)Z
-HSPLjava/security/cert/X509CertSelector;->matchPathToNames(Ljava/security/cert/X509Certificate;)Z
-HSPLjava/security/cert/X509CertSelector;->matchPolicy(Ljava/security/cert/X509Certificate;)Z
-HSPLjava/security/cert/X509CertSelector;->matchPrivateKeyValid(Ljava/security/cert/X509Certificate;)Z
-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
-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;
-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;->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/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;->getField()Ljava/security/spec/ECField;
-HSPLjava/security/spec/EncodedKeySpec;-><init>([B)V
-HSPLjava/security/spec/EncodedKeySpec;->getEncoded()[B
-HSPLjava/security/spec/PKCS8EncodedKeySpec;-><init>([B)V
-HSPLjava/security/spec/PKCS8EncodedKeySpec;->getEncoded()[B
-HSPLjava/security/spec/X509EncodedKeySpec;-><init>([B)V
-HSPLjava/security/spec/X509EncodedKeySpec;->getEncoded()[B
-HSPLjava/text/AttributedCharacterIterator$Attribute;->equals(Ljava/lang/Object;)Z
-HSPLjava/text/BreakIterator;-><init>()V
-HSPLjava/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
-HSPLjava/text/CalendarBuilder;->set(II)Ljava/text/CalendarBuilder;
-HSPLjava/text/CollationKey;-><init>(Ljava/lang/String;)V
-HSPLjava/text/Collator;-><init>()V
-HSPLjava/text/Collator;-><init>(Landroid/icu/text/Collator;)V
-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;->getDateInstance(ILjava/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(ILjava/util/Locale;)Ljava/text/DateFormat;
-HSPLjava/text/DateFormat;->getTimeZone()Ljava/util/TimeZone;
-HSPLjava/text/DateFormat;->parse(Ljava/lang/String;)Ljava/util/Date;
-HSPLjava/text/DateFormat;->set24HourTimePref(Ljava/lang/Boolean;)V
-HSPLjava/text/DateFormat;->setCalendar(Ljava/util/Calendar;)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;->clone()Ljava/lang/Object;
-HSPLjava/text/DateFormatSymbols;->copyMembers(Ljava/text/DateFormatSymbols;Ljava/text/DateFormatSymbols;)V
-HSPLjava/text/DateFormatSymbols;->getAmPmStrings()[Ljava/lang/String;
-HSPLjava/text/DateFormatSymbols;->getCachedInstance(Ljava/util/Locale;)Ljava/text/DateFormatSymbols;
-HSPLjava/text/DateFormatSymbols;->getInstance(Ljava/util/Locale;)Ljava/text/DateFormatSymbols;
-HSPLjava/text/DateFormatSymbols;->getInstanceRef(Ljava/util/Locale;)Ljava/text/DateFormatSymbols;
-HSPLjava/text/DateFormatSymbols;->getMonths()[Ljava/lang/String;
-HSPLjava/text/DateFormatSymbols;->getShortMonths()[Ljava/lang/String;
-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
-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;
-HSPLjava/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;->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;->isParseBigDecimal()Z
-HSPLjava/text/DecimalFormat;->isParseIntegerOnly()Z
-HSPLjava/text/DecimalFormat;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Number;
-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;
-HSPLjava/text/DecimalFormat;->updateFieldsFromIcu()V
-HSPLjava/text/DecimalFormatSymbols;-><init>(Ljava/util/Locale;)V
-HSPLjava/text/DecimalFormatSymbols;->clone()Ljava/lang/Object;
-HSPLjava/text/DecimalFormatSymbols;->findNonFormatChar(Ljava/lang/String;C)C
-HSPLjava/text/DecimalFormatSymbols;->fromIcuInstance(Landroid/icu/text/DecimalFormatSymbols;)Ljava/text/DecimalFormatSymbols;
-HSPLjava/text/DecimalFormatSymbols;->getCurrency()Ljava/util/Currency;
-HSPLjava/text/DecimalFormatSymbols;->getDecimalSeparator()C
-HSPLjava/text/DecimalFormatSymbols;->getGroupingSeparator()C
-HSPLjava/text/DecimalFormatSymbols;->getIcuDecimalFormatSymbols()Landroid/icu/text/DecimalFormatSymbols;
-HSPLjava/text/DecimalFormatSymbols;->getInfinity()Ljava/lang/String;
-HSPLjava/text/DecimalFormatSymbols;->getInstance(Ljava/util/Locale;)Ljava/text/DecimalFormatSymbols;
-HSPLjava/text/DecimalFormatSymbols;->getNaN()Ljava/lang/String;
-HSPLjava/text/DecimalFormatSymbols;->getZeroDigit()C
-HSPLjava/text/DecimalFormatSymbols;->initialize(Ljava/util/Locale;)V
-HSPLjava/text/DecimalFormatSymbols;->initializeCurrency(Ljava/util/Locale;)V
-HSPLjava/text/DecimalFormatSymbols;->maybeStripMarkers(Ljava/lang/String;C)C
-HSPLjava/text/DecimalFormatSymbols;->setCurrency(Ljava/util/Currency;)V
-HSPLjava/text/DecimalFormatSymbols;->setCurrencySymbol(Ljava/lang/String;)V
-HSPLjava/text/DecimalFormatSymbols;->setDecimalSeparator(C)V
-HSPLjava/text/DecimalFormatSymbols;->setDigit(C)V
-HSPLjava/text/DecimalFormatSymbols;->setExponentSeparator(Ljava/lang/String;)V
-HSPLjava/text/DecimalFormatSymbols;->setGroupingSeparator(C)V
-HSPLjava/text/DecimalFormatSymbols;->setInfinity(Ljava/lang/String;)V
-HSPLjava/text/DecimalFormatSymbols;->setInternationalCurrencySymbol(Ljava/lang/String;)V
-HSPLjava/text/DecimalFormatSymbols;->setMinusSign(C)V
-HSPLjava/text/DecimalFormatSymbols;->setMonetaryDecimalSeparator(C)V
-HSPLjava/text/DecimalFormatSymbols;->setMonetaryGroupingSeparator(C)V
-HSPLjava/text/DecimalFormatSymbols;->setNaN(Ljava/lang/String;)V
-HSPLjava/text/DecimalFormatSymbols;->setPatternSeparator(C)V
-HSPLjava/text/DecimalFormatSymbols;->setPerMill(C)V
-HSPLjava/text/DecimalFormatSymbols;->setPercent(C)V
-HSPLjava/text/DecimalFormatSymbols;->setZeroDigit(C)V
-HSPLjava/text/DontCareFieldPosition$1;->formatted(ILjava/text/Format$Field;Ljava/lang/Object;IILjava/lang/StringBuffer;)V
-HSPLjava/text/DontCareFieldPosition;->getFieldDelegate()Ljava/text/Format$FieldDelegate;
-HSPLjava/text/FieldPosition$Delegate;-><init>(Ljava/text/FieldPosition;)V
-HSPLjava/text/FieldPosition$Delegate;->formatted(ILjava/text/Format$Field;Ljava/lang/Object;IILjava/lang/StringBuffer;)V
-HSPLjava/text/FieldPosition;-><init>(I)V
-HSPLjava/text/FieldPosition;->getBeginIndex()I
-HSPLjava/text/FieldPosition;->getEndIndex()I
-HSPLjava/text/FieldPosition;->getField()I
-HSPLjava/text/FieldPosition;->getFieldAttribute()Ljava/text/Format$Field;
-HSPLjava/text/FieldPosition;->getFieldDelegate()Ljava/text/Format$FieldDelegate;
-HSPLjava/text/FieldPosition;->matchesField(Ljava/text/Format$Field;I)Z
-HSPLjava/text/FieldPosition;->setBeginIndex(I)V
-HSPLjava/text/FieldPosition;->setEndIndex(I)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/IcuIteratorWrapper;->checkOffset(ILjava/text/CharacterIterator;)V
-HSPLjava/text/IcuIteratorWrapper;->following(I)I
-HSPLjava/text/IcuIteratorWrapper;->getText()Ljava/text/CharacterIterator;
-HSPLjava/text/IcuIteratorWrapper;->isBoundary(I)Z
-HSPLjava/text/IcuIteratorWrapper;->next()I
-HSPLjava/text/IcuIteratorWrapper;->preceding(I)I
-HSPLjava/text/IcuIteratorWrapper;->setText(Ljava/lang/String;)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;
-HSPLjava/text/MessageFormat;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
-HSPLjava/text/MessageFormat;->makeFormat(II[Ljava/lang/StringBuilder;)V
-HSPLjava/text/MessageFormat;->subformat([Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer;
-HSPLjava/text/Normalizer$Form$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
-HSPLjava/text/Normalizer$Form$$ExternalSyntheticLambda2;->get()Ljava/lang/Object;
-HSPLjava/text/Normalizer$Form$$ExternalSyntheticLambda3;->get()Ljava/lang/Object;
-HSPLjava/text/Normalizer;->normalize(Ljava/lang/CharSequence;Ljava/text/Normalizer$Form;)Ljava/lang/String;
-HSPLjava/text/NumberFormat;-><init>()V
-HSPLjava/text/NumberFormat;->clone()Ljava/lang/Object;
-HSPLjava/text/NumberFormat;->format(D)Ljava/lang/String;
-HSPLjava/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;Ljava/text/NumberFormat$Style;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;->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
-HSPLjava/text/ParsePosition;->getErrorIndex()I
-HSPLjava/text/ParsePosition;->getIndex()I
-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
-HSPLjava/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;->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;->getExtendedTimeZoneNames()Lcom/android/icu/text/ExtendedTimeZoneNames;
-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;->shouldObeyCount(II)Z
-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
-HSPLjava/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/text/StringCharacterIterator;->current()C
-HSPLjava/text/StringCharacterIterator;->first()C
-HSPLjava/text/StringCharacterIterator;->getBeginIndex()I
-HSPLjava/text/StringCharacterIterator;->getEndIndex()I
-HSPLjava/text/StringCharacterIterator;->getIndex()I
-HSPLjava/text/StringCharacterIterator;->next()C
-HSPLjava/text/StringCharacterIterator;->previous()C
-HSPLjava/text/StringCharacterIterator;->setIndex(I)C
-HSPLjava/time/Clock$SystemClock;-><init>(Ljava/time/ZoneId;)V
-HSPLjava/time/Clock$SystemClock;->getZone()Ljava/time/ZoneId;
-HSPLjava/time/Clock$SystemClock;->instant()Ljava/time/Instant;
-HSPLjava/time/Clock$SystemClock;->millis()J
-HSPLjava/time/Clock;-><init>()V
-HSPLjava/time/Clock;->currentInstant()Ljava/time/Instant;
-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/Duration;-><init>(JI)V
-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;->getSeconds()J
-HSPLjava/time/Duration;->isNegative()Z
-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;
-HSPLjava/time/Duration;->toMillis()J
-HSPLjava/time/Duration;->toNanos()J
-HSPLjava/time/Instant;-><init>(JI)V
-HSPLjava/time/Instant;->atOffset(Ljava/time/ZoneOffset;)Ljava/time/OffsetDateTime;
-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;
-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;->isSupported(Ljava/time/temporal/TemporalField;)Z
-HSPLjava/time/Instant;->minus(JLjava/time/temporal/TemporalUnit;)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;
-HSPLjava/time/Instant;->plus(JJ)Ljava/time/Instant;
-HSPLjava/time/Instant;->plus(JLjava/time/temporal/TemporalUnit;)Ljava/time/Instant;
-HSPLjava/time/Instant;->plusMillis(J)Ljava/time/Instant;
-HSPLjava/time/Instant;->plusSeconds(J)Ljava/time/Instant;
-HSPLjava/time/Instant;->toEpochMilli()J
-HSPLjava/time/Instant;->toString()Ljava/lang/String;
-HSPLjava/time/Instant;->until(Ljava/time/temporal/Temporal;Ljava/time/temporal/TemporalUnit;)J
-HSPLjava/time/LocalDate;-><init>(III)V
-HSPLjava/time/LocalDate;->atTime(Ljava/time/LocalTime;)Ljava/time/LocalDateTime;
-HSPLjava/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;->getChronology()Ljava/time/chrono/Chronology;
-HSPLjava/time/LocalDate;->getChronology()Ljava/time/chrono/IsoChronology;
-HSPLjava/time/LocalDate;->getDayOfMonth()I
-HSPLjava/time/LocalDate;->getDayOfWeek()Ljava/time/DayOfWeek;
-HSPLjava/time/LocalDate;->getLong(Ljava/time/temporal/TemporalField;)J
-HSPLjava/time/LocalDate;->getMonthValue()I
-HSPLjava/time/LocalDate;->getYear()I
-HSPLjava/time/LocalDate;->isLeapYear()Z
-HSPLjava/time/LocalDate;->isSupported(Ljava/time/temporal/TemporalField;)Z
-HSPLjava/time/LocalDate;->lengthOfMonth()I
-HSPLjava/time/LocalDate;->minus(JLjava/time/temporal/TemporalUnit;)Ljava/time/LocalDate;
-HSPLjava/time/LocalDate;->minus(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
-HSPLjava/time/LocalDate;->of(III)Ljava/time/LocalDate;
-HSPLjava/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;->plusDays(J)Ljava/time/LocalDate;
-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
-HSPLjava/time/LocalDateTime;->atOffset(Ljava/time/ZoneOffset;)Ljava/time/OffsetDateTime;
-HSPLjava/time/LocalDateTime;->atZone(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
-HSPLjava/time/LocalDateTime;->atZone(Ljava/time/ZoneId;)Ljava/time/chrono/ChronoZonedDateTime;
-HSPLjava/time/LocalDateTime;->compareTo0(Ljava/time/LocalDateTime;)I
-HSPLjava/time/LocalDateTime;->format(Ljava/time/format/DateTimeFormatter;)Ljava/lang/String;
-HSPLjava/time/LocalDateTime;->getDayOfMonth()I
-HSPLjava/time/LocalDateTime;->getHour()I
-HSPLjava/time/LocalDateTime;->getLong(Ljava/time/temporal/TemporalField;)J
-HSPLjava/time/LocalDateTime;->getMinute()I
-HSPLjava/time/LocalDateTime;->getMonthValue()I
-HSPLjava/time/LocalDateTime;->getNano()I
-HSPLjava/time/LocalDateTime;->getSecond()I
-HSPLjava/time/LocalDateTime;->getYear()I
-HSPLjava/time/LocalDateTime;->isAfter(Ljava/time/chrono/ChronoLocalDateTime;)Z
-HSPLjava/time/LocalDateTime;->isBefore(Ljava/time/chrono/ChronoLocalDateTime;)Z
-HSPLjava/time/LocalDateTime;->isSupported(Ljava/time/temporal/TemporalField;)Z
-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;
-HSPLjava/time/LocalDateTime;->ofEpochSecond(JILjava/time/ZoneOffset;)Ljava/time/LocalDateTime;
-HSPLjava/time/LocalDateTime;->ofInstant(Ljava/time/Instant;Ljava/time/ZoneId;)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;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
-HSPLjava/time/LocalDateTime;->toLocalDate()Ljava/time/LocalDate;
-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;
-HSPLjava/time/LocalTime$1;-><clinit>()V
-HSPLjava/time/LocalTime;-><init>(IIII)V
-HSPLjava/time/LocalTime;->create(IIII)Ljava/time/LocalTime;
-HSPLjava/time/LocalTime;->get0(Ljava/time/temporal/TemporalField;)I
-HSPLjava/time/LocalTime;->getHour()I
-HSPLjava/time/LocalTime;->getLong(Ljava/time/temporal/TemporalField;)J
-HSPLjava/time/LocalTime;->getMinute()I
-HSPLjava/time/LocalTime;->getNano()I
-HSPLjava/time/LocalTime;->getSecond()I
-HSPLjava/time/LocalTime;->isSupported(Ljava/time/temporal/TemporalField;)Z
-HSPLjava/time/LocalTime;->of(IIII)Ljava/time/LocalTime;
-HSPLjava/time/LocalTime;->ofNanoOfDay(J)Ljava/time/LocalTime;
-HSPLjava/time/LocalTime;->ofSecondOfDay(J)Ljava/time/LocalTime;
-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;->length(Z)I
-HSPLjava/time/Month;->maxLength()I
-HSPLjava/time/Month;->of(I)Ljava/time/Month;
-HSPLjava/time/Month;->plus(J)Ljava/time/Month;
-HSPLjava/time/Month;->values()[Ljava/time/Month;
-HSPLjava/time/OffsetDateTime;-><clinit>()V
-HSPLjava/time/OffsetDateTime;-><init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;)V
-HSPLjava/time/OffsetDateTime;->getYear()I
-HSPLjava/time/OffsetDateTime;->of(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;)Ljava/time/OffsetDateTime;
-HSPLjava/time/OffsetDateTime;->ofInstant(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/OffsetDateTime;
-HSPLjava/time/OffsetDateTime;->toLocalDateTime()Ljava/time/LocalDateTime;
-HSPLjava/time/Period;->isZero()Z
-HSPLjava/time/ZoneId;-><init>()V
-HSPLjava/time/ZoneId;->equals(Ljava/lang/Object;)Z
-HSPLjava/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;->equals(Ljava/lang/Object;)Z
-HSPLjava/time/ZoneOffset;->getId()Ljava/lang/String;
-HSPLjava/time/ZoneOffset;->getRules()Ljava/time/zone/ZoneRules;
-HSPLjava/time/ZoneOffset;->getTotalSeconds()I
-HSPLjava/time/ZoneOffset;->ofTotalSeconds(I)Ljava/time/ZoneOffset;
-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;
-HSPLjava/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;
-HSPLjava/time/ZonedDateTime;->from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZonedDateTime;
-HSPLjava/time/ZonedDateTime;->getLong(Ljava/time/temporal/TemporalField;)J
-HSPLjava/time/ZonedDateTime;->getOffset()Ljava/time/ZoneOffset;
-HSPLjava/time/ZonedDateTime;->getZone()Ljava/time/ZoneId;
-HSPLjava/time/ZonedDateTime;->now(Ljava/time/Clock;)Ljava/time/ZonedDateTime;
-HSPLjava/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;
-HSPLjava/time/ZonedDateTime;->ofLocal(Ljava/time/LocalDateTime;Ljava/time/ZoneId;Ljava/time/ZoneOffset;)Ljava/time/ZonedDateTime;
-HSPLjava/time/ZonedDateTime;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
-HSPLjava/time/ZonedDateTime;->toLocalDate()Ljava/time/LocalDate;
-HSPLjava/time/ZonedDateTime;->toLocalDate()Ljava/time/chrono/ChronoLocalDate;
-HSPLjava/time/ZonedDateTime;->toLocalTime()Ljava/time/LocalTime;
-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;
-HSPLjava/time/chrono/ChronoLocalDate;->isSupported(Ljava/time/temporal/TemporalField;)Z
-HSPLjava/time/chrono/ChronoLocalDateTime;->getChronology()Ljava/time/chrono/Chronology;
-HSPLjava/time/chrono/ChronoLocalDateTime;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
-HSPLjava/time/chrono/ChronoLocalDateTime;->toEpochSecond(Ljava/time/ZoneOffset;)J+]Ljava/time/chrono/ChronoLocalDateTime;Ljava/time/LocalDateTime;]Ljava/time/chrono/ChronoLocalDate;Ljava/time/LocalDate;
-HSPLjava/time/chrono/ChronoZonedDateTime;->getChronology()Ljava/time/chrono/Chronology;+]Ljava/time/chrono/ChronoZonedDateTime;Ljava/time/ZonedDateTime;]Ljava/time/chrono/ChronoLocalDate;Ljava/time/LocalDate;
-HSPLjava/time/chrono/ChronoZonedDateTime;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
-HSPLjava/time/chrono/ChronoZonedDateTime;->toEpochSecond()J+]Ljava/time/chrono/ChronoZonedDateTime;Ljava/time/ZonedDateTime;]Ljava/time/chrono/ChronoLocalDate;Ljava/time/LocalDate;
-HSPLjava/time/chrono/ChronoZonedDateTime;->toInstant()Ljava/time/Instant;+]Ljava/time/chrono/ChronoZonedDateTime;Ljava/time/ZonedDateTime;
-HSPLjava/time/chrono/IsoChronology;->isLeapYear(J)Z
-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;
-HSPLjava/time/format/DateTimeFormatter;-><init>(Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;Ljava/util/Locale;Ljava/time/format/DecimalStyle;Ljava/time/format/ResolverStyle;Ljava/util/Set;Ljava/time/chrono/Chronology;Ljava/time/ZoneId;)V
-HSPLjava/time/format/DateTimeFormatter;->format(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/String;
-HSPLjava/time/format/DateTimeFormatter;->formatTo(Ljava/time/temporal/TemporalAccessor;Ljava/lang/Appendable;)V
-HSPLjava/time/format/DateTimeFormatter;->getChronology()Ljava/time/chrono/Chronology;
-HSPLjava/time/format/DateTimeFormatter;->getDecimalStyle()Ljava/time/format/DecimalStyle;
-HSPLjava/time/format/DateTimeFormatter;->getZone()Ljava/time/ZoneId;
-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;
-HSPLjava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;-><init>(C)V
-HSPLjava/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
-HSPLjava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;-><init>(Ljava/util/List;Z)V
-HSPLjava/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
-HSPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IIZ)V
-HSPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->convertFromFraction(Ljava/math/BigDecimal;)J
-HSPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->convertToFraction(J)Ljava/math/BigDecimal;
-HSPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-HSPLjava/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
-HSPLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IILjava/time/format/SignStyle;)V
-HSPLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-HSPLjava/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
-HSPLjava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-HSPLjava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-HSPLjava/time/format/DateTimeFormatterBuilder$SettingsParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-HSPLjava/time/format/DateTimeFormatterBuilder$SettingsParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-HSPLjava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
-HSPLjava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->getTree(Ljava/time/format/DateTimeParseContext;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
-HSPLjava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-HSPLjava/time/format/DateTimeFormatterBuilder;-><init>()V
-HSPLjava/time/format/DateTimeFormatterBuilder;->appendFraction(Ljava/time/temporal/TemporalField;IIZ)Ljava/time/format/DateTimeFormatterBuilder;
-HSPLjava/time/format/DateTimeFormatterBuilder;->appendInternal(Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;)I
-HSPLjava/time/format/DateTimeFormatterBuilder;->appendLiteral(C)Ljava/time/format/DateTimeFormatterBuilder;
-HSPLjava/time/format/DateTimeFormatterBuilder;->appendValue(Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;)Ljava/time/format/DateTimeFormatterBuilder;
-HSPLjava/time/format/DateTimeFormatterBuilder;->appendValue(Ljava/time/temporal/TemporalField;I)Ljava/time/format/DateTimeFormatterBuilder;
-HSPLjava/time/format/DateTimeFormatterBuilder;->optionalEnd()Ljava/time/format/DateTimeFormatterBuilder;
-HSPLjava/time/format/DateTimeFormatterBuilder;->toFormatter()Ljava/time/format/DateTimeFormatter;
-HSPLjava/time/format/DateTimeFormatterBuilder;->toFormatter(Ljava/util/Locale;)Ljava/time/format/DateTimeFormatter;
-HSPLjava/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
-HSPLjava/time/format/DateTimeParseContext;->charEquals(CC)Z
-HSPLjava/time/format/DateTimeParseContext;->currentParsed()Ljava/time/format/Parsed;
-HSPLjava/time/format/DateTimeParseContext;->endOptional(Z)V
-HSPLjava/time/format/DateTimeParseContext;->getDecimalStyle()Ljava/time/format/DecimalStyle;
-HSPLjava/time/format/DateTimeParseContext;->getEffectiveChronology()Ljava/time/chrono/Chronology;
-HSPLjava/time/format/DateTimeParseContext;->isCaseSensitive()Z
-HSPLjava/time/format/DateTimeParseContext;->isStrict()Z
-HSPLjava/time/format/DateTimeParseContext;->setCaseSensitive(Z)V
-HSPLjava/time/format/DateTimeParseContext;->setParsed(Ljava/time/ZoneId;)V
-HSPLjava/time/format/DateTimeParseContext;->setParsedField(Ljava/time/temporal/TemporalField;JII)I
-HSPLjava/time/format/DateTimeParseContext;->startOptional()V
-HSPLjava/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
-HSPLjava/time/format/DateTimePrintContext;->adjust(Ljava/time/temporal/TemporalAccessor;Ljava/time/format/DateTimeFormatter;)Ljava/time/temporal/TemporalAccessor;
-HSPLjava/time/format/DateTimePrintContext;->getDecimalStyle()Ljava/time/format/DecimalStyle;
-HSPLjava/time/format/DateTimePrintContext;->getValue(Ljava/time/temporal/TemporalField;)Ljava/lang/Long;
-HSPLjava/time/format/DateTimeTextProvider$LocaleStore;-><init>(Ljava/util/Map;)V
-HSPLjava/time/format/DecimalStyle;->convertNumberToI18N(Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/time/format/DecimalStyle;->convertToDigit(C)I
-HSPLjava/time/format/DecimalStyle;->getDecimalSeparator()C
-HSPLjava/time/format/DecimalStyle;->getNegativeSign()C
-HSPLjava/time/format/DecimalStyle;->getPositiveSign()C
-HSPLjava/time/format/DecimalStyle;->getZeroDigit()C
-HSPLjava/time/format/Parsed;-><init>()V
-HSPLjava/time/format/Parsed;->copy()Ljava/time/format/Parsed;
-HSPLjava/time/format/Parsed;->crossCheck()V
-HSPLjava/time/format/Parsed;->crossCheck(Ljava/time/temporal/TemporalAccessor;)V
-HSPLjava/time/format/Parsed;->getLong(Ljava/time/temporal/TemporalField;)J
-HSPLjava/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
-HSPLjava/time/format/Parsed;->resolveTime(JJJJ)V
-HSPLjava/time/format/Parsed;->resolveTimeFields()V
-HSPLjava/time/format/Parsed;->resolveTimeLenient()V
-HSPLjava/time/format/Parsed;->updateCheckConflict(Ljava/time/LocalTime;Ljava/time/Period;)V
-HSPLjava/time/format/Parsed;->updateCheckConflict(Ljava/time/chrono/ChronoLocalDate;)V
-HSPLjava/time/format/SignStyle;->values()[Ljava/time/format/SignStyle;
-HSPLjava/time/temporal/ChronoField;->checkValidIntValue(J)I
-HSPLjava/time/temporal/ChronoField;->checkValidValue(J)J
-HSPLjava/time/temporal/ChronoField;->isDateBased()Z
-HSPLjava/time/temporal/ChronoField;->isTimeBased()Z
-HSPLjava/time/temporal/ChronoField;->range()Ljava/time/temporal/ValueRange;
-HSPLjava/time/temporal/ChronoField;->values()[Ljava/time/temporal/ChronoField;
-HSPLjava/time/temporal/ChronoUnit;->getDuration()Ljava/time/Duration;
-HSPLjava/time/temporal/ChronoUnit;->values()[Ljava/time/temporal/ChronoUnit;
-HSPLjava/time/temporal/TemporalAccessor;->get(Ljava/time/temporal/TemporalField;)I+]Ljava/time/temporal/TemporalAccessor;Ljava/time/format/Parsed;
-HSPLjava/time/temporal/TemporalAccessor;->range(Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange;+]Ljava/time/temporal/TemporalAccessor;Ljava/time/format/Parsed;
-HSPLjava/time/temporal/TemporalAdjusters$$ExternalSyntheticLambda11;-><init>(I)V
-HSPLjava/time/temporal/TemporalAdjusters$$ExternalSyntheticLambda11;->adjustInto(Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
-HSPLjava/time/temporal/TemporalAdjusters$$ExternalSyntheticLambda1;->adjustInto(Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
-HSPLjava/time/temporal/TemporalAdjusters;->lambda$nextOrSame$10(ILjava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
-HSPLjava/time/temporal/TemporalAdjusters;->lambda$previousOrSame$12(ILjava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
-HSPLjava/time/temporal/TemporalAdjusters;->nextOrSame(Ljava/time/DayOfWeek;)Ljava/time/temporal/TemporalAdjuster;
-HSPLjava/time/temporal/TemporalAdjusters;->previousOrSame(Ljava/time/DayOfWeek;)Ljava/time/temporal/TemporalAdjuster;
-HSPLjava/time/temporal/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;
-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;
-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
-HSPLjava/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
-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;->provideRules(Ljava/lang/String;Z)Ljava/time/zone/ZoneRules;
-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
-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;->of(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)Ljava/time/zone/ZoneOffsetTransition;
-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;->getOffsetAfter()Ljava/time/ZoneOffset;
-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;
-HSPLjava/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;->findOffsetInfo(Ljava/time/LocalDateTime;Ljava/time/zone/ZoneOffsetTransition;)Ljava/lang/Object;
-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;
-HSPLjava/time/zone/ZoneRules;->getOffsetInfo(Ljava/time/LocalDateTime;)Ljava/lang/Object;
-HSPLjava/time/zone/ZoneRules;->getValidOffsets(Ljava/time/LocalDateTime;)Ljava/util/List;
-HSPLjava/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;
-HSPLjava/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;
-HSPLjava/util/AbstractCollection;-><init>()V
-HSPLjava/util/AbstractCollection;->addAll(Ljava/util/Collection;)Z
-HSPLjava/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
-HSPLjava/util/AbstractCollection;->remove(Ljava/lang/Object;)Z
-HSPLjava/util/AbstractCollection;->removeAll(Ljava/util/Collection;)Z
-HSPLjava/util/AbstractCollection;->retainAll(Ljava/util/Collection;)Z
-HSPLjava/util/AbstractCollection;->toArray()[Ljava/lang/Object;
-HSPLjava/util/AbstractCollection;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
-HSPLjava/util/AbstractCollection;->toString()Ljava/lang/String;
-HSPLjava/util/AbstractList$Itr;-><init>(Ljava/util/AbstractList;)V
-HSPLjava/util/AbstractList$Itr;-><init>(Ljava/util/AbstractList;Ljava/util/AbstractList$Itr-IA;)V
-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;
-HSPLjava/util/AbstractList$ListItr;->previousIndex()I
-HSPLjava/util/AbstractList$RandomAccessSpliterator;-><init>(Ljava/util/List;)V
-HSPLjava/util/AbstractList$RandomAccessSpliterator;->characteristics()I
-HSPLjava/util/AbstractList$RandomAccessSpliterator;->checkAbstractListModCount(Ljava/util/AbstractList;I)V
-HSPLjava/util/AbstractList$RandomAccessSpliterator;->estimateSize()J
-HSPLjava/util/AbstractList$RandomAccessSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-HSPLjava/util/AbstractList$RandomAccessSpliterator;->get(Ljava/util/List;I)Ljava/lang/Object;
-HSPLjava/util/AbstractList$RandomAccessSpliterator;->getFence()I
-HSPLjava/util/AbstractList$RandomAccessSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-HSPLjava/util/AbstractList$RandomAccessSubList;-><init>(Ljava/util/AbstractList;II)V
-HSPLjava/util/AbstractList$SubList$1;-><init>(Ljava/util/AbstractList$SubList;I)V
-HSPLjava/util/AbstractList$SubList$1;->hasNext()Z
-HSPLjava/util/AbstractList$SubList$1;->next()Ljava/lang/Object;
-HSPLjava/util/AbstractList$SubList$1;->nextIndex()I
-HSPLjava/util/AbstractList$SubList;-><init>(Ljava/util/AbstractList;II)V
-HSPLjava/util/AbstractList$SubList;->checkForComodification()V
-HSPLjava/util/AbstractList$SubList;->get(I)Ljava/lang/Object;
-HSPLjava/util/AbstractList$SubList;->iterator()Ljava/util/Iterator;
-HSPLjava/util/AbstractList$SubList;->listIterator(I)Ljava/util/ListIterator;
-HSPLjava/util/AbstractList$SubList;->rangeCheckForAdd(I)V
-HSPLjava/util/AbstractList$SubList;->size()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
-HSPLjava/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;
-HSPLjava/util/AbstractList;->subListRangeCheck(III)V
-HSPLjava/util/AbstractMap$2$1;-><init>(Ljava/util/AbstractMap$2;)V
-HSPLjava/util/AbstractMap$2$1;->hasNext()Z
-HSPLjava/util/AbstractMap$2$1;->next()Ljava/lang/Object;
-HSPLjava/util/AbstractMap$2;-><init>(Ljava/util/AbstractMap;)V
-HSPLjava/util/AbstractMap$2;->iterator()Ljava/util/Iterator;
-HSPLjava/util/AbstractMap$SimpleEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLjava/util/AbstractMap$SimpleEntry;->getKey()Ljava/lang/Object;
-HSPLjava/util/AbstractMap$SimpleEntry;->getValue()Ljava/lang/Object;
-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;->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;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/AbstractMap;->hashCode()I
-HSPLjava/util/AbstractMap;->isEmpty()Z
-HSPLjava/util/AbstractMap;->putAll(Ljava/util/Map;)V
-HSPLjava/util/AbstractMap;->size()I
-HSPLjava/util/AbstractMap;->toString()Ljava/lang/String;
-HSPLjava/util/AbstractMap;->values()Ljava/util/Collection;
-HSPLjava/util/AbstractQueue;-><init>()V
-HSPLjava/util/AbstractQueue;->add(Ljava/lang/Object;)Z
-HSPLjava/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;
-HSPLjava/util/AbstractSet;-><init>()V
-HSPLjava/util/AbstractSet;->equals(Ljava/lang/Object;)Z
-HSPLjava/util/AbstractSet;->hashCode()I
-HSPLjava/util/AbstractSet;->removeAll(Ljava/util/Collection;)Z
-HSPLjava/util/ArrayDeque$$ExternalSyntheticLambda1;-><init>(Ljava/util/ArrayDeque;)V
-HSPLjava/util/ArrayDeque$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V
-HSPLjava/util/ArrayDeque$DeqIterator;-><init>(Ljava/util/ArrayDeque;)V
-HSPLjava/util/ArrayDeque$DeqIterator;->hasNext()Z
-HSPLjava/util/ArrayDeque$DeqIterator;->next()Ljava/lang/Object;
-HSPLjava/util/ArrayDeque$DeqIterator;->postDelete(Z)V
-HSPLjava/util/ArrayDeque$DeqIterator;->remove()V
-HSPLjava/util/ArrayDeque$DescendingIterator;-><init>(Ljava/util/ArrayDeque;)V
-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;->addAll(Ljava/util/Collection;)Z
-HSPLjava/util/ArrayDeque;->addFirst(Ljava/lang/Object;)V
-HSPLjava/util/ArrayDeque;->addLast(Ljava/lang/Object;)V
-HSPLjava/util/ArrayDeque;->checkInvariants()V
-HSPLjava/util/ArrayDeque;->circularClear([Ljava/lang/Object;II)V
-HSPLjava/util/ArrayDeque;->clear()V
-HSPLjava/util/ArrayDeque;->contains(Ljava/lang/Object;)Z
-HSPLjava/util/ArrayDeque;->copyElements(Ljava/util/Collection;)V
-HSPLjava/util/ArrayDeque;->dec(II)I
-HSPLjava/util/ArrayDeque;->delete(I)Z
-HSPLjava/util/ArrayDeque;->descendingIterator()Ljava/util/Iterator;
-HSPLjava/util/ArrayDeque;->elementAt([Ljava/lang/Object;I)Ljava/lang/Object;
-HSPLjava/util/ArrayDeque;->forEach(Ljava/util/function/Consumer;)V
-HSPLjava/util/ArrayDeque;->getFirst()Ljava/lang/Object;
-HSPLjava/util/ArrayDeque;->getLast()Ljava/lang/Object;
-HSPLjava/util/ArrayDeque;->grow(I)V
-HSPLjava/util/ArrayDeque;->inc(II)I
-HSPLjava/util/ArrayDeque;->isEmpty()Z
-HSPLjava/util/ArrayDeque;->iterator()Ljava/util/Iterator;
-HSPLjava/util/ArrayDeque;->offer(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;
-HSPLjava/util/ArrayDeque;->peekLast()Ljava/lang/Object;
-HSPLjava/util/ArrayDeque;->poll()Ljava/lang/Object;
-HSPLjava/util/ArrayDeque;->pollFirst()Ljava/lang/Object;
-HSPLjava/util/ArrayDeque;->pollLast()Ljava/lang/Object;
-HSPLjava/util/ArrayDeque;->pop()Ljava/lang/Object;
-HSPLjava/util/ArrayDeque;->push(Ljava/lang/Object;)V
-HSPLjava/util/ArrayDeque;->remove()Ljava/lang/Object;
-HSPLjava/util/ArrayDeque;->remove(Ljava/lang/Object;)Z
-HSPLjava/util/ArrayDeque;->removeFirst()Ljava/lang/Object;
-HSPLjava/util/ArrayDeque;->removeFirstOccurrence(Ljava/lang/Object;)Z
-HSPLjava/util/ArrayDeque;->removeLast()Ljava/lang/Object;
-HSPLjava/util/ArrayDeque;->size()I
-HSPLjava/util/ArrayDeque;->sub(III)I
-HSPLjava/util/ArrayDeque;->toArray()[Ljava/lang/Object;
-HSPLjava/util/ArrayDeque;->toArray(Ljava/lang/Class;)[Ljava/lang/Object;
-HSPLjava/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
-HSPLjava/util/ArrayList$ArrayListSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
-HSPLjava/util/ArrayList$ArrayListSpliterator;->getFence()I
-HSPLjava/util/ArrayList$ArrayListSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-HSPLjava/util/ArrayList$Itr;-><init>(Ljava/util/ArrayList;)V
-HSPLjava/util/ArrayList$Itr;->checkForComodification()V
-HSPLjava/util/ArrayList$Itr;->hasNext()Z
-HSPLjava/util/ArrayList$Itr;->next()Ljava/lang/Object;
-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;I)V
-HSPLjava/util/ArrayList$SubList$1;->checkForComodification()V
-HSPLjava/util/ArrayList$SubList$1;->hasNext()Z
-HSPLjava/util/ArrayList$SubList$1;->next()Ljava/lang/Object;
-HSPLjava/util/ArrayList$SubList;->-$$Nest$fgetoffset(Ljava/util/ArrayList$SubList;)I
-HSPLjava/util/ArrayList$SubList;->-$$Nest$fgetroot(Ljava/util/ArrayList$SubList;)Ljava/util/ArrayList;
-HSPLjava/util/ArrayList$SubList;->-$$Nest$fgetsize(Ljava/util/ArrayList$SubList;)I
-HSPLjava/util/ArrayList$SubList;-><init>(Ljava/util/ArrayList;II)V
-HSPLjava/util/ArrayList$SubList;->checkForComodification()V
-HSPLjava/util/ArrayList$SubList;->get(I)Ljava/lang/Object;
-HSPLjava/util/ArrayList$SubList;->iterator()Ljava/util/Iterator;
-HSPLjava/util/ArrayList$SubList;->listIterator(I)Ljava/util/ListIterator;
-HSPLjava/util/ArrayList$SubList;->rangeCheckForAdd(I)V
-HSPLjava/util/ArrayList$SubList;->removeRange(II)V
-HSPLjava/util/ArrayList$SubList;->size()I
-HSPLjava/util/ArrayList$SubList;->subList(II)Ljava/util/List;
-HSPLjava/util/ArrayList$SubList;->toArray()[Ljava/lang/Object;
-HSPLjava/util/ArrayList$SubList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
-HSPLjava/util/ArrayList;->-$$Nest$fgetsize(Ljava/util/ArrayList;)I
-HSPLjava/util/ArrayList;-><init>()V
-HSPLjava/util/ArrayList;-><init>(I)V
-HSPLjava/util/ArrayList;-><init>(Ljava/util/Collection;)V
-HSPLjava/util/ArrayList;->add(ILjava/lang/Object;)V
-HSPLjava/util/ArrayList;->add(Ljava/lang/Object;)Z
-HSPLjava/util/ArrayList;->add(Ljava/lang/Object;[Ljava/lang/Object;I)V
-HSPLjava/util/ArrayList;->addAll(ILjava/util/Collection;)Z
-HSPLjava/util/ArrayList;->addAll(Ljava/util/Collection;)Z
-HSPLjava/util/ArrayList;->batchRemove(Ljava/util/Collection;ZII)Z
-HSPLjava/util/ArrayList;->checkForComodification(I)V
-HSPLjava/util/ArrayList;->clear()V
-HSPLjava/util/ArrayList;->clone()Ljava/lang/Object;
-HSPLjava/util/ArrayList;->contains(Ljava/lang/Object;)Z
-HSPLjava/util/ArrayList;->elementAt([Ljava/lang/Object;I)Ljava/lang/Object;
-HSPLjava/util/ArrayList;->elementData(I)Ljava/lang/Object;
-HSPLjava/util/ArrayList;->ensureCapacity(I)V
-HSPLjava/util/ArrayList;->equals(Ljava/lang/Object;)Z
-HSPLjava/util/ArrayList;->equalsArrayList(Ljava/util/ArrayList;)Z
-HSPLjava/util/ArrayList;->equalsRange(Ljava/util/List;II)Z
-HSPLjava/util/ArrayList;->fastRemove([Ljava/lang/Object;I)V
-HSPLjava/util/ArrayList;->forEach(Ljava/util/function/Consumer;)V
-HSPLjava/util/ArrayList;->get(I)Ljava/lang/Object;
-HSPLjava/util/ArrayList;->grow()[Ljava/lang/Object;
-HSPLjava/util/ArrayList;->grow(I)[Ljava/lang/Object;
-HSPLjava/util/ArrayList;->hashCode()I
-HSPLjava/util/ArrayList;->hashCodeRange(II)I
-HSPLjava/util/ArrayList;->indexOf(Ljava/lang/Object;)I
-HSPLjava/util/ArrayList;->indexOfRange(Ljava/lang/Object;II)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;->rangeCheckForAdd(I)V
-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
-HSPLjava/util/ArrayList;->removeIf(Ljava/util/function/Predicate;II)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;->shiftTailOverGap([Ljava/lang/Object;II)V
-HSPLjava/util/ArrayList;->size()I
-HSPLjava/util/ArrayList;->sort(Ljava/util/Comparator;)V
-HSPLjava/util/ArrayList;->spliterator()Ljava/util/Spliterator;
-HSPLjava/util/ArrayList;->subList(II)Ljava/util/List;
-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$ArrayItr;-><init>([Ljava/lang/Object;)V
-HSPLjava/util/Arrays$ArrayItr;->hasNext()Z
-HSPLjava/util/Arrays$ArrayItr;->next()Ljava/lang/Object;
-HSPLjava/util/Arrays$ArrayList;-><init>([Ljava/lang/Object;)V
-HSPLjava/util/Arrays$ArrayList;->contains(Ljava/lang/Object;)Z
-HSPLjava/util/Arrays$ArrayList;->forEach(Ljava/util/function/Consumer;)V
-HSPLjava/util/Arrays$ArrayList;->get(I)Ljava/lang/Object;
-HSPLjava/util/Arrays$ArrayList;->indexOf(Ljava/lang/Object;)I
-HSPLjava/util/Arrays$ArrayList;->iterator()Ljava/util/Iterator;
-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
-HSPLjava/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$ArrayList;->toArrayPreserveComponentType()[Ljava/lang/Object;+][Ljava/lang/Object;missing_types
-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
-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
-HSPLjava/util/Arrays;->binarySearch0([IIII)I
-HSPLjava/util/Arrays;->binarySearch0([JIIJ)I
-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;
-HSPLjava/util/Arrays;->copyOf([ZI)[Z
-HSPLjava/util/Arrays;->copyOfRange([BII)[B
-HSPLjava/util/Arrays;->copyOfRange([CII)[C
-HSPLjava/util/Arrays;->copyOfRange([III)[I
-HSPLjava/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
-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
-HSPLjava/util/Arrays;->fill([II)V
-HSPLjava/util/Arrays;->fill([IIII)V
-HSPLjava/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([ZZ)V
-HSPLjava/util/Arrays;->hashCode([B)I
-HSPLjava/util/Arrays;->hashCode([F)I
-HSPLjava/util/Arrays;->hashCode([I)I
-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
-HSPLjava/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;
-HSPLjava/util/Arrays;->toString([B)Ljava/lang/String;
-HSPLjava/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/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;->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
-HSPLjava/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
-HSPLjava/util/BitSet;->clone()Ljava/lang/Object;
-HSPLjava/util/BitSet;->ensureCapacity(I)V
-HSPLjava/util/BitSet;->equals(Ljava/lang/Object;)Z
-HSPLjava/util/BitSet;->expandTo(I)V
-HSPLjava/util/BitSet;->flip(II)V
-HSPLjava/util/BitSet;->get(I)Z
-HSPLjava/util/BitSet;->initWords(I)V
-HSPLjava/util/BitSet;->isEmpty()Z
-HSPLjava/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
-HSPLjava/util/BitSet;->set(IIZ)V
-HSPLjava/util/BitSet;->set(IZ)V
-HSPLjava/util/BitSet;->size()I
-HSPLjava/util/BitSet;->toString()Ljava/lang/String;
-HSPLjava/util/BitSet;->trimToSize()V
-HSPLjava/util/BitSet;->valueOf(Ljava/nio/ByteBuffer;)Ljava/util/BitSet;
-HSPLjava/util/BitSet;->valueOf([J)Ljava/util/BitSet;
-HSPLjava/util/BitSet;->wordIndex(I)I
-HSPLjava/util/Calendar;-><init>()V
-HSPLjava/util/Calendar;-><init>(Ljava/util/TimeZone;Ljava/util/Locale;)V
-HSPLjava/util/Calendar;->aggregateStamp(II)I
-HSPLjava/util/Calendar;->before(Ljava/lang/Object;)Z
-HSPLjava/util/Calendar;->clear()V
-HSPLjava/util/Calendar;->clone()Ljava/lang/Object;
-HSPLjava/util/Calendar;->compareTo(J)I
-HSPLjava/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;->defaultTimeZone(Ljava/util/Locale;)Ljava/util/TimeZone;
-HSPLjava/util/Calendar;->get(I)I
-HSPLjava/util/Calendar;->getFirstDayOfWeek()I
-HSPLjava/util/Calendar;->getInstance()Ljava/util/Calendar;
-HSPLjava/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;
-HSPLjava/util/Calendar;->getMillisOf(Ljava/util/Calendar;)J
-HSPLjava/util/Calendar;->getMinimalDaysInFirstWeek()I
-HSPLjava/util/Calendar;->getSetStateFields()I
-HSPLjava/util/Calendar;->getTime()Ljava/util/Date;
-HSPLjava/util/Calendar;->getTimeInMillis()J
-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;->isFullyNormalized()Z
-HSPLjava/util/Calendar;->isLenient()Z
-HSPLjava/util/Calendar;->isPartiallyNormalized()Z
-HSPLjava/util/Calendar;->isSet(I)Z
-HSPLjava/util/Calendar;->selectFields()I
-HSPLjava/util/Calendar;->set(II)V
-HSPLjava/util/Calendar;->set(III)V
-HSPLjava/util/Calendar;->set(IIIIII)V
-HSPLjava/util/Calendar;->setFieldsComputed(I)V
-HSPLjava/util/Calendar;->setFieldsNormalized(I)V
-HSPLjava/util/Calendar;->setLenient(Z)V
-HSPLjava/util/Calendar;->setTime(Ljava/util/Date;)V
-HSPLjava/util/Calendar;->setTimeInMillis(J)V
-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+]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;,Landroid/util/MapCollections$EntrySet;,Ljava/util/LinkedHashMap$LinkedEntrySet;,Ljava/util/LinkedList;,Landroid/util/MapCollections$KeySet;,Ljava/util/HashSet;,Ljava/util/LinkedHashMap$LinkedValues;,Ljava/util/LinkedHashSet;,Ljava/util/HashMap$EntrySet;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Landroid/util/MapCollections$MapIterator;,Ljava/util/LinkedList$ListItr;,Ljava/util/LinkedHashMap$LinkedEntryIterator;,Ljava/util/HashMap$KeyIterator;,Ljava/util/LinkedHashMap$LinkedValueIterator;,Ljava/util/LinkedHashMap$LinkedKeyIterator;,Ljava/util/HashMap$EntryIterator;
-HSPLjava/util/Collection;->spliterator()Ljava/util/Spliterator;
-HSPLjava/util/Collection;->stream()Ljava/util/stream/Stream;+]Ljava/util/Collection;megamorphic_types
-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;
-HSPLjava/util/Collections$EmptyList;->readResolve()Ljava/lang/Object;
-HSPLjava/util/Collections$EmptyList;->size()I
-HSPLjava/util/Collections$EmptyList;->sort(Ljava/util/Comparator;)V
-HSPLjava/util/Collections$EmptyList;->spliterator()Ljava/util/Spliterator;
-HSPLjava/util/Collections$EmptyList;->toArray()[Ljava/lang/Object;
-HSPLjava/util/Collections$EmptyList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
-HSPLjava/util/Collections$EmptyMap;->containsKey(Ljava/lang/Object;)Z
-HSPLjava/util/Collections$EmptyMap;->entrySet()Ljava/util/Set;
-HSPLjava/util/Collections$EmptyMap;->equals(Ljava/lang/Object;)Z
-HSPLjava/util/Collections$EmptyMap;->get(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
-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
-HSPLjava/util/Collections$ReverseComparator;->compare(Ljava/lang/Comparable;Ljava/lang/Comparable;)I
-HSPLjava/util/Collections$ReverseComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-HSPLjava/util/Collections$SetFromMap;-><init>(Ljava/util/Map;)V
-HSPLjava/util/Collections$SetFromMap;->add(Ljava/lang/Object;)Z
-HSPLjava/util/Collections$SetFromMap;->clear()V
-HSPLjava/util/Collections$SetFromMap;->contains(Ljava/lang/Object;)Z
-HSPLjava/util/Collections$SetFromMap;->forEach(Ljava/util/function/Consumer;)V
-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
-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;->hashCode()I
-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;
-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;->forEach(Ljava/util/function/Consumer;)V
-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
-HSPLjava/util/Collections$SynchronizedCollection;->toArray()[Ljava/lang/Object;
-HSPLjava/util/Collections$SynchronizedCollection;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
-HSPLjava/util/Collections$SynchronizedCollection;->toString()Ljava/lang/String;
-HSPLjava/util/Collections$SynchronizedList;-><init>(Ljava/util/List;)V
-HSPLjava/util/Collections$SynchronizedList;->get(I)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;
-HSPLjava/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;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-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
-HSPLjava/util/Collections$SynchronizedSet;->equals(Ljava/lang/Object;)Z
-HSPLjava/util/Collections$UnmodifiableCollection$1;-><init>(Ljava/util/Collections$UnmodifiableCollection;)V
-HSPLjava/util/Collections$UnmodifiableCollection$1;->hasNext()Z
-HSPLjava/util/Collections$UnmodifiableCollection$1;->next()Ljava/lang/Object;
-HSPLjava/util/Collections$UnmodifiableCollection;-><init>(Ljava/util/Collection;)V
-HSPLjava/util/Collections$UnmodifiableCollection;->contains(Ljava/lang/Object;)Z
-HSPLjava/util/Collections$UnmodifiableCollection;->containsAll(Ljava/util/Collection;)Z
-HSPLjava/util/Collections$UnmodifiableCollection;->forEach(Ljava/util/function/Consumer;)V
-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;
-HSPLjava/util/Collections$UnmodifiableList$1;-><init>(Ljava/util/Collections$UnmodifiableList;I)V
-HSPLjava/util/Collections$UnmodifiableList$1;->hasNext()Z
-HSPLjava/util/Collections$UnmodifiableList$1;->next()Ljava/lang/Object;
-HSPLjava/util/Collections$UnmodifiableList$1;->nextIndex()I
-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
-HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1;->hasNext()Z
-HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1;->next()Ljava/lang/Object;
-HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1;->next()Ljava/util/Map$Entry;
-HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry;-><init>(Ljava/util/Map$Entry;)V
-HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry;->getKey()Ljava/lang/Object;
-HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry;->getValue()Ljava/lang/Object;
-HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;-><init>(Ljava/util/Set;)V
-HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;->iterator()Ljava/util/Iterator;
-HSPLjava/util/Collections$UnmodifiableMap;-><init>(Ljava/util/Map;)V
-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;->forEach(Ljava/util/function/BiConsumer;)V
-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$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
-HSPLjava/util/Collections;->binarySearch(Ljava/util/List;Ljava/lang/Object;)I
-HSPLjava/util/Collections;->binarySearch(Ljava/util/List;Ljava/lang/Object;Ljava/util/Comparator;)I
-HSPLjava/util/Collections;->disjoint(Ljava/util/Collection;Ljava/util/Collection;)Z
-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;
-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;
-HSPLjava/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;
-HSPLjava/util/Collections;->rotate(Ljava/util/List;I)V
-HSPLjava/util/Collections;->rotate1(Ljava/util/List;I)V
-HSPLjava/util/Collections;->shuffle(Ljava/util/List;)V
-HSPLjava/util/Collections;->shuffle(Ljava/util/List;Ljava/util/Random;)V
-HSPLjava/util/Collections;->shuffle(Ljava/util/List;Ljava/util/random/RandomGenerator;)V+]Ljava/util/random/RandomGenerator;Ljava/util/Random;]Ljava/util/List;missing_types
-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;
-HSPLjava/util/Collections;->singletonMap(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
-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;->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;
-HSPLjava/util/Collections;->unmodifiableSet(Ljava/util/Set;)Ljava/util/Set;
-HSPLjava/util/Collections;->unmodifiableSortedMap(Ljava/util/SortedMap;)Ljava/util/SortedMap;
-HSPLjava/util/Collections;->unmodifiableSortedSet(Ljava/util/SortedSet;)Ljava/util/SortedSet;
-HSPLjava/util/ComparableTimSort;-><init>([Ljava/lang/Object;[Ljava/lang/Object;II)V
-HSPLjava/util/ComparableTimSort;->binarySort([Ljava/lang/Object;III)V
-HSPLjava/util/ComparableTimSort;->countRunAndMakeAscending([Ljava/lang/Object;II)I
-HSPLjava/util/ComparableTimSort;->ensureCapacity(I)[Ljava/lang/Object;
-HSPLjava/util/ComparableTimSort;->gallopLeft(Ljava/lang/Comparable;[Ljava/lang/Object;III)I
-HSPLjava/util/ComparableTimSort;->gallopRight(Ljava/lang/Comparable;[Ljava/lang/Object;III)I
-HSPLjava/util/ComparableTimSort;->mergeAt(I)V
-HSPLjava/util/ComparableTimSort;->mergeCollapse()V
-HSPLjava/util/ComparableTimSort;->mergeForceCollapse()V
-HSPLjava/util/ComparableTimSort;->mergeHi(IIII)V
-HSPLjava/util/ComparableTimSort;->mergeLo(IIII)V
-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
-HSPLjava/util/Comparator$$ExternalSyntheticLambda1;-><init>(Ljava/util/Comparator;Ljava/util/Comparator;)V
-HSPLjava/util/Comparator$$ExternalSyntheticLambda1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-HSPLjava/util/Comparator$$ExternalSyntheticLambda3;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-HSPLjava/util/Comparator$$ExternalSyntheticLambda4;-><init>(Ljava/util/function/ToLongFunction;)V
-HSPLjava/util/Comparator$$ExternalSyntheticLambda5;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-HSPLjava/util/Comparator;->comparing(Ljava/util/function/Function;)Ljava/util/Comparator;
-HSPLjava/util/Comparator;->comparingInt(Ljava/util/function/ToIntFunction;)Ljava/util/Comparator;
-HSPLjava/util/Comparator;->comparingLong(Ljava/util/function/ToLongFunction;)Ljava/util/Comparator;
-HSPLjava/util/Comparator;->lambda$comparing$77a9974f$1(Ljava/util/function/Function;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
-HSPLjava/util/Comparator;->naturalOrder()Ljava/util/Comparator;
-HSPLjava/util/Comparator;->nullsFirst(Ljava/util/Comparator;)Ljava/util/Comparator;
-HSPLjava/util/Comparator;->reversed()Ljava/util/Comparator;
-HSPLjava/util/Comparator;->thenComparing(Ljava/util/Comparator;)Ljava/util/Comparator;
-HSPLjava/util/Comparator;->thenComparing(Ljava/util/function/Function;)Ljava/util/Comparator;+]Ljava/util/Comparator;Ljava/util/Comparator$$ExternalSyntheticLambda3;
-HSPLjava/util/Comparators$NaturalOrderComparator;->compare(Ljava/lang/Comparable;Ljava/lang/Comparable;)I
-HSPLjava/util/Comparators$NaturalOrderComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-HSPLjava/util/Comparators$NullComparator;-><init>(ZLjava/util/Comparator;)V
-HSPLjava/util/Comparators$NullComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-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;
-HSPLjava/util/Currency;->getInstance(Ljava/util/Locale;)Ljava/util/Currency;
-HSPLjava/util/Currency;->getSymbol(Ljava/util/Locale;)Ljava/lang/String;
-HSPLjava/util/Date;-><init>()V
-HSPLjava/util/Date;-><init>(J)V
-HSPLjava/util/Date;->after(Ljava/util/Date;)Z
-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
-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;->setTime(J)V
-HSPLjava/util/Date;->toInstant()Ljava/time/Instant;
-HSPLjava/util/Date;->toString()Ljava/lang/String;
-HSPLjava/util/Dictionary;-><init>()V
-HSPLjava/util/DualPivotQuicksort;->insertionSort([CII)V
-HSPLjava/util/DualPivotQuicksort;->insertionSort([FII)V
-HSPLjava/util/DualPivotQuicksort;->insertionSort([III)V
-HSPLjava/util/DualPivotQuicksort;->insertionSort([JII)V
-HSPLjava/util/DualPivotQuicksort;->sort(Ljava/util/DualPivotQuicksort$Sorter;[FIII)V
-HSPLjava/util/DualPivotQuicksort;->sort(Ljava/util/DualPivotQuicksort$Sorter;[IIII)V
-HSPLjava/util/DualPivotQuicksort;->sort(Ljava/util/DualPivotQuicksort$Sorter;[JIII)V
-HSPLjava/util/DualPivotQuicksort;->sort([CIII)V
-HSPLjava/util/DualPivotQuicksort;->sort([FIII)V
-HSPLjava/util/DualPivotQuicksort;->sort([IIII)V
-HSPLjava/util/DualPivotQuicksort;->sort([JIII)V
-HSPLjava/util/DualPivotQuicksort;->tryMergeRuns(Ljava/util/DualPivotQuicksort$Sorter;[III)Z
-HSPLjava/util/DualPivotQuicksort;->tryMergeRuns(Ljava/util/DualPivotQuicksort$Sorter;[JII)Z
-HSPLjava/util/EnumMap$EntryIterator$Entry;-><init>(Ljava/util/EnumMap$EntryIterator;I)V
-HSPLjava/util/EnumMap$EntryIterator$Entry;->checkIndexForEntryUse()V
-HSPLjava/util/EnumMap$EntryIterator$Entry;->getKey()Ljava/lang/Enum;
-HSPLjava/util/EnumMap$EntryIterator$Entry;->getKey()Ljava/lang/Object;
-HSPLjava/util/EnumMap$EntryIterator$Entry;->getValue()Ljava/lang/Object;
-HSPLjava/util/EnumMap$EntryIterator;-><init>(Ljava/util/EnumMap;)V
-HSPLjava/util/EnumMap$EntryIterator;->next()Ljava/lang/Object;
-HSPLjava/util/EnumMap$EntryIterator;->next()Ljava/util/Map$Entry;
-HSPLjava/util/EnumMap$EntrySet;-><init>(Ljava/util/EnumMap;)V
-HSPLjava/util/EnumMap$EntrySet;->iterator()Ljava/util/Iterator;
-HSPLjava/util/EnumMap$EntrySet;->size()I
-HSPLjava/util/EnumMap$EnumMapIterator;-><init>(Ljava/util/EnumMap;)V
-HSPLjava/util/EnumMap$EnumMapIterator;->hasNext()Z
-HSPLjava/util/EnumMap$KeyIterator;-><init>(Ljava/util/EnumMap;)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;->iterator()Ljava/util/Iterator;
-HSPLjava/util/EnumMap$KeySet;->size()I
-HSPLjava/util/EnumMap$ValueIterator;-><init>(Ljava/util/EnumMap;)V
-HSPLjava/util/EnumMap$ValueIterator;->next()Ljava/lang/Object;
-HSPLjava/util/EnumMap$Values;-><init>(Ljava/util/EnumMap;)V
-HSPLjava/util/EnumMap$Values;->iterator()Ljava/util/Iterator;
-HSPLjava/util/EnumMap$Values;->size()I
-HSPLjava/util/EnumMap;->-$$Nest$fgetsize(Ljava/util/EnumMap;)I
-HSPLjava/util/EnumMap;-><init>(Ljava/lang/Class;)V
-HSPLjava/util/EnumMap;-><init>(Ljava/util/Map;)V
-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;
-HSPLjava/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;
-HSPLjava/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;
-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;
-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
-HSPLjava/util/Formatter$Conversion;->isFloat(C)Z
-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
-HSPLjava/util/Formatter$DateTime;->isValid(C)Z
-HSPLjava/util/Formatter$FixedString;-><init>(Ljava/util/Formatter;Ljava/lang/String;II)V
-HSPLjava/util/Formatter$FixedString;->index()I
-HSPLjava/util/Formatter$FixedString;->print(Ljava/lang/Object;Ljava/util/Locale;)V
-HSPLjava/util/Formatter$Flags;->-$$Nest$madd(Ljava/util/Formatter$Flags;Ljava/util/Formatter$Flags;)Ljava/util/Formatter$Flags;
-HSPLjava/util/Formatter$Flags;-><init>(I)V
-HSPLjava/util/Formatter$Flags;->add(Ljava/util/Formatter$Flags;)Ljava/util/Formatter$Flags;
-HSPLjava/util/Formatter$Flags;->contains(Ljava/util/Formatter$Flags;)Z
-HSPLjava/util/Formatter$Flags;->parse(C)Ljava/util/Formatter$Flags;
-HSPLjava/util/Formatter$Flags;->parse(Ljava/lang/String;II)Ljava/util/Formatter$Flags;
-HSPLjava/util/Formatter$Flags;->valueOf()I
-HSPLjava/util/Formatter$FormatSpecifier;-><init>(Ljava/util/Formatter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLjava/util/Formatter$FormatSpecifier;->addZeros(Ljava/lang/StringBuilder;I)V
-HSPLjava/util/Formatter$FormatSpecifier;->adjustWidth(ILjava/util/Formatter$Flags;Z)I
-HSPLjava/util/Formatter$FormatSpecifier;->appendJustified(Ljava/lang/Appendable;Ljava/lang/CharSequence;)V+]Ljava/util/Formatter$Flags;Ljava/util/Formatter$Flags;]Ljava/lang/CharSequence;Ljava/lang/String;,Ljava/lang/StringBuilder;]Ljava/lang/Appendable;megamorphic_types
-HSPLjava/util/Formatter$FormatSpecifier;->checkBadFlags([Ljava/util/Formatter$Flags;)V
-HSPLjava/util/Formatter$FormatSpecifier;->checkCharacter()V
-HSPLjava/util/Formatter$FormatSpecifier;->checkDateTime()V
-HSPLjava/util/Formatter$FormatSpecifier;->checkFloat()V
-HSPLjava/util/Formatter$FormatSpecifier;->checkGeneral()V
-HSPLjava/util/Formatter$FormatSpecifier;->checkInteger()V
-HSPLjava/util/Formatter$FormatSpecifier;->checkNumeric()V
-HSPLjava/util/Formatter$FormatSpecifier;->checkText()V
-HSPLjava/util/Formatter$FormatSpecifier;->conversion(C)V
-HSPLjava/util/Formatter$FormatSpecifier;->getZero(Ljava/util/Locale;)C
-HSPLjava/util/Formatter$FormatSpecifier;->index()I
-HSPLjava/util/Formatter$FormatSpecifier;->index(Ljava/lang/String;)V
-HSPLjava/util/Formatter$FormatSpecifier;->leadingSign(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
-HSPLjava/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;Ljava/lang/CharSequence;ILjava/util/Formatter$Flags;ILjava/util/Locale;)Ljava/lang/StringBuilder;
-HSPLjava/util/Formatter$FormatSpecifier;->precision(Ljava/lang/String;)V
-HSPLjava/util/Formatter$FormatSpecifier;->print(BLjava/util/Locale;)V
-HSPLjava/util/Formatter$FormatSpecifier;->print(DLjava/util/Locale;)V
-HSPLjava/util/Formatter$FormatSpecifier;->print(FLjava/util/Locale;)V
-HSPLjava/util/Formatter$FormatSpecifier;->print(ILjava/util/Locale;)V
-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;Ljava/util/Locale;)V
-HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/lang/StringBuilder;DLjava/util/Locale;Ljava/util/Formatter$Flags;CIZ)V
-HSPLjava/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
-HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/util/Calendar;CLjava/util/Locale;)V
-HSPLjava/util/Formatter$FormatSpecifier;->printBoolean(Ljava/lang/Object;Ljava/util/Locale;)V
-HSPLjava/util/Formatter$FormatSpecifier;->printCharacter(Ljava/lang/Object;Ljava/util/Locale;)V
-HSPLjava/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
-HSPLjava/util/Formatter$FormatSpecifier;->trailingSign(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
-HSPLjava/util/Formatter$FormatSpecifier;->trailingZeros(Ljava/lang/StringBuilder;I)V
-HSPLjava/util/Formatter$FormatSpecifier;->width(Ljava/lang/String;)V
-HSPLjava/util/Formatter$FormatSpecifierParser;-><init>(Ljava/util/Formatter;Ljava/lang/String;I)V
-HSPLjava/util/Formatter$FormatSpecifierParser;->advance()C
-HSPLjava/util/Formatter$FormatSpecifierParser;->back(I)V
-HSPLjava/util/Formatter$FormatSpecifierParser;->getEndIdx()I
-HSPLjava/util/Formatter$FormatSpecifierParser;->getFormatSpecifier()Ljava/util/Formatter$FormatSpecifier;
-HSPLjava/util/Formatter$FormatSpecifierParser;->isEnd()Z
-HSPLjava/util/Formatter$FormatSpecifierParser;->nextInt()Ljava/lang/String;
-HSPLjava/util/Formatter$FormatSpecifierParser;->nextIsInt()Z
-HSPLjava/util/Formatter$FormatSpecifierParser;->peek()C
-HSPLjava/util/Formatter;->-$$Nest$fgeta(Ljava/util/Formatter;)Ljava/lang/Appendable;
-HSPLjava/util/Formatter;->-$$Nest$smisStrictValidationEnabled()Z
-HSPLjava/util/Formatter;-><init>()V
-HSPLjava/util/Formatter;-><init>(Ljava/lang/Appendable;)V
-HSPLjava/util/Formatter;-><init>(Ljava/lang/Appendable;Ljava/util/Locale;)V
-HSPLjava/util/Formatter;-><init>(Ljava/util/Locale;)V
-HSPLjava/util/Formatter;-><init>(Ljava/util/Locale;Ljava/lang/Appendable;)V
-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;->isStrictValidationEnabled()Z
-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/List;
-HSPLjava/util/Formatter;->toString()Ljava/lang/String;
-HSPLjava/util/Formatter;->zero()C+]Llibcore/icu/DecimalFormatData;Llibcore/icu/DecimalFormatData;
-HSPLjava/util/GregorianCalendar;-><init>()V
-HSPLjava/util/GregorianCalendar;-><init>(IIIIII)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;
-HSPLjava/util/GregorianCalendar;->computeFields()V
-HSPLjava/util/GregorianCalendar;->computeFields(II)I
-HSPLjava/util/GregorianCalendar;->computeTime()V
-HSPLjava/util/GregorianCalendar;->getActualMaximum(I)I
-HSPLjava/util/GregorianCalendar;->getCalendarDate(J)Lsun/util/calendar/BaseCalendar$Date;
-HSPLjava/util/GregorianCalendar;->getCurrentFixedDate()J
-HSPLjava/util/GregorianCalendar;->getFixedDate(Lsun/util/calendar/BaseCalendar;II)J
-HSPLjava/util/GregorianCalendar;->getGregorianCutoverDate()Lsun/util/calendar/BaseCalendar$Date;
-HSPLjava/util/GregorianCalendar;->getJulianCalendarSystem()Lsun/util/calendar/BaseCalendar;
-HSPLjava/util/GregorianCalendar;->getLeastMaximum(I)I
-HSPLjava/util/GregorianCalendar;->getMaximum(I)I
-HSPLjava/util/GregorianCalendar;->getMinimum(I)I
-HSPLjava/util/GregorianCalendar;->getNormalizedCalendar()Ljava/util/GregorianCalendar;
-HSPLjava/util/GregorianCalendar;->getTimeZone()Ljava/util/TimeZone;
-HSPLjava/util/GregorianCalendar;->getWeekNumber(JJ)I
-HSPLjava/util/GregorianCalendar;->internalGetEra()I
-HSPLjava/util/GregorianCalendar;->isCutoverYear(I)Z
-HSPLjava/util/GregorianCalendar;->isLeapYear(I)Z
-HSPLjava/util/GregorianCalendar;->monthLength(I)I
-HSPLjava/util/GregorianCalendar;->monthLength(II)I
-HSPLjava/util/GregorianCalendar;->pinDayOfMonth()V
-HSPLjava/util/GregorianCalendar;->setGregorianChange(J)V
-HSPLjava/util/GregorianCalendar;->setGregorianChange(Ljava/util/Date;)V
-HSPLjava/util/GregorianCalendar;->setTimeZone(Ljava/util/TimeZone;)V
-HSPLjava/util/HashMap$EntryIterator;-><init>(Ljava/util/HashMap;)V
-HSPLjava/util/HashMap$EntryIterator;->next()Ljava/lang/Object;
-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
-HSPLjava/util/HashMap$EntrySet;->spliterator()Ljava/util/Spliterator;
-HSPLjava/util/HashMap$EntrySpliterator;-><init>(Ljava/util/HashMap;IIII)V
-HSPLjava/util/HashMap$EntrySpliterator;->characteristics()I
-HSPLjava/util/HashMap$HashIterator;-><init>(Ljava/util/HashMap;)V
-HSPLjava/util/HashMap$HashIterator;->hasNext()Z
-HSPLjava/util/HashMap$HashIterator;->nextNode()Ljava/util/HashMap$Node;
-HSPLjava/util/HashMap$HashIterator;->remove()V
-HSPLjava/util/HashMap$HashMapSpliterator;-><init>(Ljava/util/HashMap;IIII)V
-HSPLjava/util/HashMap$HashMapSpliterator;->estimateSize()J
-HSPLjava/util/HashMap$HashMapSpliterator;->getFence()I
-HSPLjava/util/HashMap$KeyIterator;-><init>(Ljava/util/HashMap;)V
-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;->forEach(Ljava/util/function/Consumer;)V
-HSPLjava/util/HashMap$KeySet;->iterator()Ljava/util/Iterator;
-HSPLjava/util/HashMap$KeySet;->remove(Ljava/lang/Object;)Z
-HSPLjava/util/HashMap$KeySet;->size()I
-HSPLjava/util/HashMap$KeySet;->toArray()[Ljava/lang/Object;
-HSPLjava/util/HashMap$KeySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
-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;->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;
-HSPLjava/util/HashMap$TreeNode;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V
-HSPLjava/util/HashMap$TreeNode;->balanceInsertion(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
-HSPLjava/util/HashMap$TreeNode;->find(ILjava/lang/Object;Ljava/lang/Class;)Ljava/util/HashMap$TreeNode;
-HSPLjava/util/HashMap$TreeNode;->getTreeNode(ILjava/lang/Object;)Ljava/util/HashMap$TreeNode;
-HSPLjava/util/HashMap$TreeNode;->moveRootToFront([Ljava/util/HashMap$Node;Ljava/util/HashMap$TreeNode;)V
-HSPLjava/util/HashMap$TreeNode;->putTreeVal(Ljava/util/HashMap;[Ljava/util/HashMap$Node;ILjava/lang/Object;Ljava/lang/Object;)Ljava/util/HashMap$TreeNode;
-HSPLjava/util/HashMap$TreeNode;->rotateLeft(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
-HSPLjava/util/HashMap$TreeNode;->rotateRight(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
-HSPLjava/util/HashMap$TreeNode;->split(Ljava/util/HashMap;[Ljava/util/HashMap$Node;II)V
-HSPLjava/util/HashMap$TreeNode;->treeify([Ljava/util/HashMap$Node;)V
-HSPLjava/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
-HSPLjava/util/HashMap$ValueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-HSPLjava/util/HashMap$Values;-><init>(Ljava/util/HashMap;)V
-HSPLjava/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;
-HSPLjava/util/HashMap$Values;->toArray()[Ljava/lang/Object;
-HSPLjava/util/HashMap$Values;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
-HSPLjava/util/HashMap;-><init>()V
-HSPLjava/util/HashMap;-><init>(I)V
-HSPLjava/util/HashMap;-><init>(IF)V
-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;->calculateHashMapCapacity(I)I
-HSPLjava/util/HashMap;->capacity()I
-HSPLjava/util/HashMap;->clear()V
-HSPLjava/util/HashMap;->clone()Ljava/lang/Object;
-HSPLjava/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(Ljava/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;->keysToArray([Ljava/lang/Object;)[Ljava/lang/Object;
-HSPLjava/util/HashMap;->loadFactor()F
-HSPLjava/util/HashMap;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
-HSPLjava/util/HashMap;->newHashMap(I)Ljava/util/HashMap;
-HSPLjava/util/HashMap;->newNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
-HSPLjava/util/HashMap;->newTreeNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode;
-HSPLjava/util/HashMap;->prepareArray([Ljava/lang/Object;)[Ljava/lang/Object;
-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;
-HSPLjava/util/HashMap;->replacementNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
-HSPLjava/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
-HSPLjava/util/HashMap;->treeifyBin([Ljava/util/HashMap$Node;I)V
-HSPLjava/util/HashMap;->values()Ljava/util/Collection;
-HSPLjava/util/HashMap;->valuesToArray([Ljava/lang/Object;)[Ljava/lang/Object;
-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
-HSPLjava/util/HashSet;-><init>(IFZ)V
-HSPLjava/util/HashSet;-><init>(Ljava/util/Collection;)V
-HSPLjava/util/HashSet;->add(Ljava/lang/Object;)Z
-HSPLjava/util/HashSet;->clear()V
-HSPLjava/util/HashSet;->clone()Ljava/lang/Object;
-HSPLjava/util/HashSet;->contains(Ljava/lang/Object;)Z
-HSPLjava/util/HashSet;->isEmpty()Z
-HSPLjava/util/HashSet;->iterator()Ljava/util/Iterator;
-HSPLjava/util/HashSet;->readObject(Ljava/io/ObjectInputStream;)V
-HSPLjava/util/HashSet;->remove(Ljava/lang/Object;)Z
-HSPLjava/util/HashSet;->size()I
-HSPLjava/util/HashSet;->spliterator()Ljava/util/Spliterator;
-HSPLjava/util/HashSet;->toArray()[Ljava/lang/Object;+]Ljava/util/HashMap;Ljava/util/HashMap;,Ljava/util/LinkedHashMap;
-HSPLjava/util/HashSet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;+]Ljava/util/HashMap;Ljava/util/HashMap;,Ljava/util/LinkedHashMap;
-HSPLjava/util/HashSet;->writeObject(Ljava/io/ObjectOutputStream;)V
-HSPLjava/util/Hashtable$EntrySet;-><init>(Ljava/util/Hashtable;)V
-HSPLjava/util/Hashtable$EntrySet;->iterator()Ljava/util/Iterator;
-HSPLjava/util/Hashtable$Enumerator;-><init>(Ljava/util/Hashtable;IZ)V
-HSPLjava/util/Hashtable$Enumerator;->hasMoreElements()Z
-HSPLjava/util/Hashtable$Enumerator;->hasNext()Z
-HSPLjava/util/Hashtable$Enumerator;->next()Ljava/lang/Object;
-HSPLjava/util/Hashtable$Enumerator;->nextElement()Ljava/lang/Object;
-HSPLjava/util/Hashtable$HashtableEntry;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/Hashtable$HashtableEntry;)V
-HSPLjava/util/Hashtable$HashtableEntry;->clone()Ljava/lang/Object;
-HSPLjava/util/Hashtable$HashtableEntry;->getKey()Ljava/lang/Object;
-HSPLjava/util/Hashtable$HashtableEntry;->getValue()Ljava/lang/Object;
-HSPLjava/util/Hashtable$KeySet;-><init>(Ljava/util/Hashtable;)V
-HSPLjava/util/Hashtable$KeySet;->iterator()Ljava/util/Iterator;
-HSPLjava/util/Hashtable$KeySet;->size()I
-HSPLjava/util/Hashtable$ValueCollection;-><init>(Ljava/util/Hashtable;)V
-HSPLjava/util/Hashtable$ValueCollection;->iterator()Ljava/util/Iterator;
-HSPLjava/util/Hashtable$ValueCollection;->size()I
-HSPLjava/util/Hashtable;->-$$Nest$fgetmodCount(Ljava/util/Hashtable;)I
-HSPLjava/util/Hashtable;->-$$Nest$fgettable(Ljava/util/Hashtable;)[Ljava/util/Hashtable$HashtableEntry;
-HSPLjava/util/Hashtable;-><init>()V
-HSPLjava/util/Hashtable;-><init>(I)V
-HSPLjava/util/Hashtable;-><init>(IF)V
-HSPLjava/util/Hashtable;->addEntry(ILjava/lang/Object;Ljava/lang/Object;I)V
-HSPLjava/util/Hashtable;->clear()V
-HSPLjava/util/Hashtable;->clone()Ljava/lang/Object;
-HSPLjava/util/Hashtable;->containsKey(Ljava/lang/Object;)Z
-HSPLjava/util/Hashtable;->entrySet()Ljava/util/Set;
-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
-HSPLjava/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
-HSPLjava/util/Hashtable;->remove(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/Hashtable;->remove(Ljava/lang/Object;Ljava/lang/Object;)Z
-HSPLjava/util/Hashtable;->size()I
-HSPLjava/util/Hashtable;->values()Ljava/util/Collection;
-HSPLjava/util/IdentityHashMap$EntryIterator$Entry;-><init>(Ljava/util/IdentityHashMap$EntryIterator;I)V
-HSPLjava/util/IdentityHashMap$EntryIterator$Entry;->checkIndexForEntryUse()V
-HSPLjava/util/IdentityHashMap$EntryIterator$Entry;->getKey()Ljava/lang/Object;
-HSPLjava/util/IdentityHashMap$EntryIterator$Entry;->getValue()Ljava/lang/Object;
-HSPLjava/util/IdentityHashMap$EntryIterator;-><init>(Ljava/util/IdentityHashMap;)V
-HSPLjava/util/IdentityHashMap$EntryIterator;->next()Ljava/lang/Object;
-HSPLjava/util/IdentityHashMap$EntryIterator;->next()Ljava/util/Map$Entry;
-HSPLjava/util/IdentityHashMap$EntrySet;-><init>(Ljava/util/IdentityHashMap;)V
-HSPLjava/util/IdentityHashMap$EntrySet;->iterator()Ljava/util/Iterator;
-HSPLjava/util/IdentityHashMap$EntrySet;->size()I
-HSPLjava/util/IdentityHashMap$IdentityHashMapIterator;-><init>(Ljava/util/IdentityHashMap;)V
-HSPLjava/util/IdentityHashMap$IdentityHashMapIterator;->hasNext()Z
-HSPLjava/util/IdentityHashMap$IdentityHashMapIterator;->nextIndex()I
-HSPLjava/util/IdentityHashMap$KeyIterator;-><init>(Ljava/util/IdentityHashMap;)V
-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$KeySet-IA;)V
-HSPLjava/util/IdentityHashMap$KeySet;->iterator()Ljava/util/Iterator;
-HSPLjava/util/IdentityHashMap$KeySet;->size()I
-HSPLjava/util/IdentityHashMap$ValueIterator;-><init>(Ljava/util/IdentityHashMap;)V
-HSPLjava/util/IdentityHashMap$ValueIterator;->next()Ljava/lang/Object;
-HSPLjava/util/IdentityHashMap$Values;-><init>(Ljava/util/IdentityHashMap;)V
-HSPLjava/util/IdentityHashMap$Values;->iterator()Ljava/util/Iterator;
-HSPLjava/util/IdentityHashMap;-><init>()V
-HSPLjava/util/IdentityHashMap;-><init>(I)V
-HSPLjava/util/IdentityHashMap;->capacity(I)I
-HSPLjava/util/IdentityHashMap;->clear()V
-HSPLjava/util/IdentityHashMap;->closeDeletion(I)V
-HSPLjava/util/IdentityHashMap;->containsKey(Ljava/lang/Object;)Z
-HSPLjava/util/IdentityHashMap;->entrySet()Ljava/util/Set;
-HSPLjava/util/IdentityHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/IdentityHashMap;->hash(Ljava/lang/Object;I)I
-HSPLjava/util/IdentityHashMap;->init(I)V
-HSPLjava/util/IdentityHashMap;->isEmpty()Z
-HSPLjava/util/IdentityHashMap;->keySet()Ljava/util/Set;
-HSPLjava/util/IdentityHashMap;->maskNull(Ljava/lang/Object;)Ljava/lang/Object;
-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/ImmutableCollections$AbstractImmutableCollection;-><init>()V
-HSPLjava/util/ImmutableCollections$AbstractImmutableList;-><init>()V
-HSPLjava/util/ImmutableCollections$AbstractImmutableList;->iterator()Ljava/util/Iterator;
-HSPLjava/util/ImmutableCollections$AbstractImmutableMap;-><init>()V
-HSPLjava/util/ImmutableCollections$AbstractImmutableSet;-><init>()V
-HSPLjava/util/ImmutableCollections$Access$1;-><init>()V
-HSPLjava/util/ImmutableCollections$Access$1;->listFromTrustedArray([Ljava/lang/Object;)Ljava/util/List;
-HSPLjava/util/ImmutableCollections$Access;-><clinit>()V
-HSPLjava/util/ImmutableCollections$List12;-><init>(Ljava/lang/Object;)V
-HSPLjava/util/ImmutableCollections$List12;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLjava/util/ImmutableCollections$List12;->get(I)Ljava/lang/Object;
-HSPLjava/util/ImmutableCollections$List12;->size()I
-HSPLjava/util/ImmutableCollections$ListItr;-><init>(Ljava/util/List;I)V
-HSPLjava/util/ImmutableCollections$ListItr;->hasNext()Z
-HSPLjava/util/ImmutableCollections$ListItr;->next()Ljava/lang/Object;
-HSPLjava/util/ImmutableCollections$ListN;-><init>([Ljava/lang/Object;Z)V
-HSPLjava/util/ImmutableCollections$ListN;-><init>([Ljava/lang/Object;ZLjava/util/ImmutableCollections$ListN-IA;)V
-HSPLjava/util/ImmutableCollections$ListN;->get(I)Ljava/lang/Object;
-HSPLjava/util/ImmutableCollections$ListN;->size()I
-HSPLjava/util/ImmutableCollections$Map1;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLjava/util/ImmutableCollections$Map1;->entrySet()Ljava/util/Set;
-HSPLjava/util/ImmutableCollections$MapN;-><init>([Ljava/lang/Object;)V
-HSPLjava/util/ImmutableCollections$MapN;->containsKey(Ljava/lang/Object;)Z
-HSPLjava/util/ImmutableCollections$MapN;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/ImmutableCollections$MapN;->probe(Ljava/lang/Object;)I
-HSPLjava/util/ImmutableCollections$SetN;-><init>([Ljava/lang/Object;)V
-HSPLjava/util/ImmutableCollections$SetN;->contains(Ljava/lang/Object;)Z
-HSPLjava/util/ImmutableCollections$SetN;->probe(Ljava/lang/Object;)I
-HSPLjava/util/ImmutableCollections;-><clinit>()V
-HSPLjava/util/ImmutableCollections;->listCopy(Ljava/util/Collection;)Ljava/util/List;
-HSPLjava/util/ImmutableCollections;->listFromTrustedArray([Ljava/lang/Object;)Ljava/util/List;
-HSPLjava/util/Iterator;->forEachRemaining(Ljava/util/function/Consumer;)V+]Ljava/util/function/Consumer;megamorphic_types]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/AbstractMap$2$1;,Ljava/util/AbstractList$Itr;,Ljava/util/LinkedHashMap$LinkedValueIterator;
-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;-><init>(Ljava/lang/Class;[Ljava/lang/Enum;)V
-HSPLjava/util/JumboEnumSet;->add(Ljava/lang/Enum;)Z
-HSPLjava/util/JumboEnumSet;->add(Ljava/lang/Object;)Z
-HSPLjava/util/JumboEnumSet;->addAll()V
-HSPLjava/util/JumboEnumSet;->contains(Ljava/lang/Object;)Z
-HSPLjava/util/JumboEnumSet;->iterator()Ljava/util/Iterator;
-HSPLjava/util/JumboEnumSet;->size()I
-HSPLjava/util/KeyValueHolder;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLjava/util/KeyValueHolder;->getKey()Ljava/lang/Object;
-HSPLjava/util/KeyValueHolder;->getValue()Ljava/lang/Object;
-HSPLjava/util/LinkedHashMap$Entry;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V
-HSPLjava/util/LinkedHashMap$LinkedEntryIterator;-><init>(Ljava/util/LinkedHashMap;Z)V
-HSPLjava/util/LinkedHashMap$LinkedEntryIterator;->next()Ljava/lang/Object;
-HSPLjava/util/LinkedHashMap$LinkedEntryIterator;->next()Ljava/util/Map$Entry;
-HSPLjava/util/LinkedHashMap$LinkedEntrySet;-><init>(Ljava/util/LinkedHashMap;Z)V
-HSPLjava/util/LinkedHashMap$LinkedEntrySet;->iterator()Ljava/util/Iterator;
-HSPLjava/util/LinkedHashMap$LinkedEntrySet;->size()I
-HSPLjava/util/LinkedHashMap$LinkedHashIterator;-><init>(Ljava/util/LinkedHashMap;Z)V
-HSPLjava/util/LinkedHashMap$LinkedHashIterator;->hasNext()Z
-HSPLjava/util/LinkedHashMap$LinkedHashIterator;->nextNode()Ljava/util/LinkedHashMap$Entry;
-HSPLjava/util/LinkedHashMap$LinkedHashIterator;->remove()V
-HSPLjava/util/LinkedHashMap$LinkedKeyIterator;->next()Ljava/lang/Object;
-HSPLjava/util/LinkedHashMap$LinkedKeySet;-><init>(Ljava/util/LinkedHashMap;Z)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$LinkedKeySet;->toArray()[Ljava/lang/Object;
-HSPLjava/util/LinkedHashMap$LinkedValueIterator;-><init>(Ljava/util/LinkedHashMap;Z)V
-HSPLjava/util/LinkedHashMap$LinkedValueIterator;->next()Ljava/lang/Object;
-HSPLjava/util/LinkedHashMap$LinkedValues;-><init>(Ljava/util/LinkedHashMap;Z)V
-HSPLjava/util/LinkedHashMap$LinkedValues;->iterator()Ljava/util/Iterator;
-HSPLjava/util/LinkedHashMap$LinkedValues;->size()I
-HSPLjava/util/LinkedHashMap$LinkedValues;->toArray()[Ljava/lang/Object;
-HSPLjava/util/LinkedHashMap;-><init>()V
-HSPLjava/util/LinkedHashMap;-><init>(I)V
-HSPLjava/util/LinkedHashMap;-><init>(IF)V
-HSPLjava/util/LinkedHashMap;-><init>(IFZ)V
-HSPLjava/util/LinkedHashMap;-><init>(Ljava/util/Map;)V
-HSPLjava/util/LinkedHashMap;->afterNodeAccess(Ljava/util/HashMap$Node;)V
-HSPLjava/util/LinkedHashMap;->afterNodeInsertion(Z)V
-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;
-HSPLjava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/LinkedHashMap;->keySet()Ljava/util/Set;
-HSPLjava/util/LinkedHashMap;->keysToArray([Ljava/lang/Object;)[Ljava/lang/Object;
-HSPLjava/util/LinkedHashMap;->keysToArray([Ljava/lang/Object;Z)[Ljava/lang/Object;
-HSPLjava/util/LinkedHashMap;->linkNodeAtEnd(Ljava/util/LinkedHashMap$Entry;)V
-HSPLjava/util/LinkedHashMap;->newNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
-HSPLjava/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
-HSPLjava/util/LinkedHashMap;->replacementTreeNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode;
-HSPLjava/util/LinkedHashMap;->sequencedEntrySet()Ljava/util/SequencedSet;
-HSPLjava/util/LinkedHashMap;->sequencedKeySet()Ljava/util/SequencedSet;
-HSPLjava/util/LinkedHashMap;->sequencedValues()Ljava/util/SequencedCollection;
-HSPLjava/util/LinkedHashMap;->values()Ljava/util/Collection;
-HSPLjava/util/LinkedHashMap;->valuesToArray([Ljava/lang/Object;Z)[Ljava/lang/Object;
-HSPLjava/util/LinkedHashSet;-><init>()V
-HSPLjava/util/LinkedHashSet;-><init>(I)V
-HSPLjava/util/LinkedHashSet;-><init>(Ljava/util/Collection;)V
-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
-HSPLjava/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
-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;->contains(Ljava/lang/Object;)Z
-HSPLjava/util/LinkedList;->descendingIterator()Ljava/util/Iterator;
-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
-HSPLjava/util/LinkedList;->peek()Ljava/lang/Object;
-HSPLjava/util/LinkedList;->peekFirst()Ljava/lang/Object;
-HSPLjava/util/LinkedList;->peekLast()Ljava/lang/Object;
-HSPLjava/util/LinkedList;->poll()Ljava/lang/Object;
-HSPLjava/util/LinkedList;->pollFirst()Ljava/lang/Object;
-HSPLjava/util/LinkedList;->pollLast()Ljava/lang/Object;
-HSPLjava/util/LinkedList;->pop()Ljava/lang/Object;
-HSPLjava/util/LinkedList;->push(Ljava/lang/Object;)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;->set(ILjava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/LinkedList;->size()I
-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;
-HSPLjava/util/List;->copyOf(Ljava/util/Collection;)Ljava/util/List;
-HSPLjava/util/List;->of()Ljava/util/List;
-HSPLjava/util/List;->of(Ljava/lang/Object;)Ljava/util/List;
-HSPLjava/util/List;->of(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;
-HSPLjava/util/List;->of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;
-HSPLjava/util/List;->of([Ljava/lang/Object;)Ljava/util/List;
-HSPLjava/util/List;->sort(Ljava/util/Comparator;)V+]Ljava/util/ListIterator;Ljava/util/ArrayList$SubList$1;,Ljava/util/LinkedList$ListItr;]Ljava/util/List;Ljava/util/ArrayList$SubList;,Ljava/util/LinkedList;
-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;->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;->-$$Nest$sfgetLOCALECACHE()Ljava/util/Locale$Cache;
-HSPLjava/util/Locale$Cache;->createObject(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/Locale$Cache;->createObject(Ljava/lang/Object;)Ljava/util/Locale;
-HSPLjava/util/Locale$LocaleKey;->-$$Nest$fgetbase(Ljava/util/Locale$LocaleKey;)Lsun/util/locale/BaseLocale;
-HSPLjava/util/Locale$LocaleKey;->-$$Nest$fgetexts(Ljava/util/Locale$LocaleKey;)Lsun/util/locale/LocaleExtensions;
-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$LocaleKey-IA;)V
-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-IA;)V
-HSPLjava/util/Locale;->cleanCache()V
-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;
-HSPLjava/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;
-HSPLjava/util/Locale;->getExtensionKeys()Ljava/util/Set;
-HSPLjava/util/Locale;->getISO3Country()Ljava/lang/String;
-HSPLjava/util/Locale;->getISO3Language()Ljava/lang/String;
-HSPLjava/util/Locale;->getISOLanguages()[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;
-HSPLjava/util/Locale;->getScript()Ljava/lang/String;
-HSPLjava/util/Locale;->getUnicodeLocaleType(Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/util/Locale;->getVariant()Ljava/lang/String;
-HSPLjava/util/Locale;->hasExtensions()Z
-HSPLjava/util/Locale;->hashCode()I
-HSPLjava/util/Locale;->isUnicodeExtensionKey(Ljava/lang/String;)Z
-HSPLjava/util/Locale;->isValidBcp47Alpha(Ljava/lang/String;II)Z
-HSPLjava/util/Locale;->normalizeAndValidateLanguage(Ljava/lang/String;Z)Ljava/lang/String;
-HSPLjava/util/Locale;->normalizeAndValidateRegion(Ljava/lang/String;Z)Ljava/lang/String;
-HSPLjava/util/Locale;->readObject(Ljava/io/ObjectInputStream;)V
-HSPLjava/util/Locale;->readResolve()Ljava/lang/Object;
-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/Locale;->writeObject(Ljava/io/ObjectOutputStream;)V
-HSPLjava/util/Map;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;+]Ljava/util/Map;Landroid/util/ArrayMap;]Ljava/util/function/Function;missing_types
-HSPLjava/util/Map;->entry(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map$Entry;
-HSPLjava/util/Map;->forEach(Ljava/util/function/BiConsumer;)V+]Ljava/util/Map$Entry;Ljava/util/KeyValueHolder;]Ljava/util/Map;Ljava/util/ImmutableCollections$MapN;]Ljava/util/Iterator;Ljava/util/ImmutableCollections$MapN$MapNIterator;]Ljava/util/Set;Ljava/util/ImmutableCollections$MapN$1;
-HSPLjava/util/Map;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/Map;Landroid/util/ArrayMap;
-HSPLjava/util/Map;->of(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
-HSPLjava/util/Map;->ofEntries([Ljava/util/Map$Entry;)Ljava/util/Map;
-HSPLjava/util/MissingResourceException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLjava/util/NoSuchElementException;-><init>()V
-HSPLjava/util/NoSuchElementException;-><init>(Ljava/lang/String;)V
-HSPLjava/util/Objects;->checkFromIndexSize(III)I
-HSPLjava/util/Objects;->checkFromToIndex(III)I
-HSPLjava/util/Objects;->checkIndex(II)I
-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;->requireNonNullElse(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/Objects;->toString(Ljava/lang/Object;)Ljava/lang/String;
-HSPLjava/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
-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;
-HSPLjava/util/Optional;->orElseGet(Ljava/util/function/Supplier;)Ljava/lang/Object;
-HSPLjava/util/OptionalDouble;-><clinit>()V
-HSPLjava/util/OptionalDouble;-><init>()V
-HSPLjava/util/OptionalDouble;-><init>(D)V
-HSPLjava/util/OptionalDouble;->of(D)Ljava/util/OptionalDouble;
-HSPLjava/util/OptionalDouble;->orElseGet(Ljava/util/function/DoubleSupplier;)D
-HSPLjava/util/OptionalInt;-><init>(I)V
-HSPLjava/util/OptionalInt;->empty()Ljava/util/OptionalInt;
-HSPLjava/util/OptionalInt;->isPresent()Z
-HSPLjava/util/OptionalInt;->of(I)Ljava/util/OptionalInt;
-HSPLjava/util/PriorityQueue$Itr;-><init>(Ljava/util/PriorityQueue;)V
-HSPLjava/util/PriorityQueue$Itr;->hasNext()Z
-HSPLjava/util/PriorityQueue$Itr;->next()Ljava/lang/Object;
-HSPLjava/util/PriorityQueue$Itr;->remove()V
-HSPLjava/util/PriorityQueue;-><init>()V
-HSPLjava/util/PriorityQueue;-><init>(ILjava/util/Comparator;)V
-HSPLjava/util/PriorityQueue;-><init>(Ljava/util/Comparator;)V
-HSPLjava/util/PriorityQueue;-><init>(Ljava/util/PriorityQueue;)V
-HSPLjava/util/PriorityQueue;->add(Ljava/lang/Object;)Z
-HSPLjava/util/PriorityQueue;->clear()V
-HSPLjava/util/PriorityQueue;->comparator()Ljava/util/Comparator;
-HSPLjava/util/PriorityQueue;->contains(Ljava/lang/Object;)Z
-HSPLjava/util/PriorityQueue;->grow(I)V
-HSPLjava/util/PriorityQueue;->indexOf(Ljava/lang/Object;)I
-HSPLjava/util/PriorityQueue;->initFromPriorityQueue(Ljava/util/PriorityQueue;)V
-HSPLjava/util/PriorityQueue;->iterator()Ljava/util/Iterator;
-HSPLjava/util/PriorityQueue;->offer(Ljava/lang/Object;)Z
-HSPLjava/util/PriorityQueue;->peek()Ljava/lang/Object;
-HSPLjava/util/PriorityQueue;->poll()Ljava/lang/Object;
-HSPLjava/util/PriorityQueue;->remove(Ljava/lang/Object;)Z
-HSPLjava/util/PriorityQueue;->removeAt(I)Ljava/lang/Object;
-HSPLjava/util/PriorityQueue;->siftDown(ILjava/lang/Object;)V
-HSPLjava/util/PriorityQueue;->siftDownComparable(ILjava/lang/Object;[Ljava/lang/Object;I)V
-HSPLjava/util/PriorityQueue;->siftDownUsingComparator(ILjava/lang/Object;[Ljava/lang/Object;ILjava/util/Comparator;)V
-HSPLjava/util/PriorityQueue;->siftUp(ILjava/lang/Object;)V
-HSPLjava/util/PriorityQueue;->size()I
-HSPLjava/util/PriorityQueue;->toArray()[Ljava/lang/Object;
-HSPLjava/util/PriorityQueue;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
-HSPLjava/util/Properties$LineReader;->readLine()I
-HSPLjava/util/Properties;-><init>()V
-HSPLjava/util/Properties;-><init>(Ljava/util/Properties;)V
-HSPLjava/util/Properties;-><init>(Ljava/util/Properties;I)V
-HSPLjava/util/Properties;->containsKey(Ljava/lang/Object;)Z
-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([CIILjava/lang/StringBuilder;)Ljava/lang/String;
-HSPLjava/util/Properties;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/Properties;->saveConvert(Ljava/lang/String;ZZ)Ljava/lang/String;
-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
-HSPLjava/util/Properties;->writeComments(Ljava/io/BufferedWriter;Ljava/lang/String;)V
-HSPLjava/util/PropertyResourceBundle;-><init>(Ljava/io/Reader;)V
-HSPLjava/util/Random;-><init>()V
-HSPLjava/util/Random;-><init>(J)V
-HSPLjava/util/Random;->initialScramble(J)J
-HSPLjava/util/Random;->next(I)I
-HSPLjava/util/Random;->nextBoolean()Z
-HSPLjava/util/Random;->nextBytes([B)V
-HSPLjava/util/Random;->nextDouble()D
-HSPLjava/util/Random;->nextFloat()F
-HSPLjava/util/Random;->nextGaussian()D
-HSPLjava/util/Random;->nextInt()I
-HSPLjava/util/Random;->nextInt(I)I
-HSPLjava/util/Random;->nextLong()J
-HSPLjava/util/Random;->readObject(Ljava/io/ObjectInputStream;)V
-HSPLjava/util/Random;->resetSeed(J)V
-HSPLjava/util/Random;->seedUniquifier()J
-HSPLjava/util/Random;->setSeed(J)V
-HSPLjava/util/Random;->writeObject(Ljava/io/ObjectOutputStream;)V
-HSPLjava/util/RegularEnumSet$EnumSetIterator;-><init>(Ljava/util/RegularEnumSet;)V
-HSPLjava/util/RegularEnumSet$EnumSetIterator;->hasNext()Z
-HSPLjava/util/RegularEnumSet$EnumSetIterator;->next()Ljava/lang/Enum;
-HSPLjava/util/RegularEnumSet$EnumSetIterator;->next()Ljava/lang/Object;
-HSPLjava/util/RegularEnumSet;-><init>(Ljava/lang/Class;[Ljava/lang/Enum;)V
-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
-HSPLjava/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
-HSPLjava/util/RegularEnumSet;->equals(Ljava/lang/Object;)Z
-HSPLjava/util/RegularEnumSet;->isEmpty()Z
-HSPLjava/util/RegularEnumSet;->iterator()Ljava/util/Iterator;
-HSPLjava/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;->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;
-HSPLjava/util/ResourceBundle$CacheKey;->getName()Ljava/lang/String;
-HSPLjava/util/ResourceBundle$CacheKey;->hashCode()I
-HSPLjava/util/ResourceBundle$CacheKey;->setFormat(Ljava/lang/String;)V
-HSPLjava/util/ResourceBundle$CacheKey;->setLocale(Ljava/util/Locale;)Ljava/util/ResourceBundle$CacheKey;
-HSPLjava/util/ResourceBundle$Control$1;->run()Ljava/io/InputStream;
-HSPLjava/util/ResourceBundle$Control$1;->run()Ljava/lang/Object;
-HSPLjava/util/ResourceBundle$Control$CandidateListCache;->createObject(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/ResourceBundle$Control$CandidateListCache;->createObject(Lsun/util/locale/BaseLocale;)Ljava/util/List;
-HSPLjava/util/ResourceBundle$Control$CandidateListCache;->getDefaultList(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
-HSPLjava/util/ResourceBundle$Control;->getCandidateLocales(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/List;
-HSPLjava/util/ResourceBundle$Control;->getFallbackLocale(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/Locale;
-HSPLjava/util/ResourceBundle$Control;->getFormats(Ljava/lang/String;)Ljava/util/List;
-HSPLjava/util/ResourceBundle$Control;->getTimeToLive(Ljava/lang/String;Ljava/util/Locale;)J
-HSPLjava/util/ResourceBundle$Control;->newBundle(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/util/ResourceBundle;
-HSPLjava/util/ResourceBundle$Control;->toBundleName(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
-HSPLjava/util/ResourceBundle$Control;->toResourceName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/util/ResourceBundle$Control;->toResourceName0(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/util/ResourceBundle;-><init>()V
-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/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;->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
-HSPLjava/util/ResourceBundle;->loadBundle(Ljava/util/ResourceBundle$CacheKey;Ljava/util/List;Ljava/util/ResourceBundle$Control;Z)Ljava/util/ResourceBundle;
-HSPLjava/util/ResourceBundle;->putBundleInCache(Ljava/util/ResourceBundle$CacheKey;Ljava/util/ResourceBundle;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;
-HSPLjava/util/ResourceBundle;->setExpirationTime(Ljava/util/ResourceBundle$CacheKey;Ljava/util/ResourceBundle$Control;)V
-HSPLjava/util/ResourceBundle;->setParent(Ljava/util/ResourceBundle;)V
-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;->clearCaches()V
-HSPLjava/util/Scanner;->close()V
-HSPLjava/util/Scanner;->ensureOpen()V
-HSPLjava/util/Scanner;->getCompleteTokenInBuffer(Ljava/util/regex/Pattern;)Ljava/lang/String;
-HSPLjava/util/Scanner;->hasNext()Z
-HSPLjava/util/Scanner;->hasTokenInBuffer()Z
-HSPLjava/util/Scanner;->makeReadable(Ljava/io/InputStream;Ljava/nio/charset/Charset;)Ljava/lang/Readable;
-HSPLjava/util/Scanner;->makeSpace()Z
-HSPLjava/util/Scanner;->next()Ljava/lang/String;
-HSPLjava/util/Scanner;->readInput()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;->iterator()Ljava/util/Iterator;
-HSPLjava/util/ServiceLoader;->load(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;
-HSPLjava/util/ServiceLoader;->reload()V
-HSPLjava/util/Set;->of(Ljava/lang/Object;)Ljava/util/Set;
-HSPLjava/util/Set;->of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
-HSPLjava/util/Set;->of([Ljava/lang/Object;)Ljava/util/Set;
-HSPLjava/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+]Ljava/util/Spliterator$OfInt;Ljava/util/Spliterators$IntArraySpliterator;,Ljava/util/Spliterators$EmptySpliterator$OfInt;,Ljava/util/stream/Streams$RangeIntSpliterator;,Ljava/lang/StringUTF16$CodePointsSpliteratorForString;
-HSPLjava/util/Spliterator;->getExactSizeIfKnown()J+]Ljava/util/Spliterator;megamorphic_types
-HSPLjava/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$EmptySpliterator$OfInt;->forEachRemaining(Ljava/util/function/IntConsumer;)V
-HSPLjava/util/Spliterators$EmptySpliterator$OfRef;->forEachRemaining(Ljava/util/function/Consumer;)V
-HSPLjava/util/Spliterators$EmptySpliterator$OfRef;->tryAdvance(Ljava/util/function/Consumer;)Z
-HSPLjava/util/Spliterators$EmptySpliterator;->characteristics()I
-HSPLjava/util/Spliterators$EmptySpliterator;->estimateSize()J
-HSPLjava/util/Spliterators$EmptySpliterator;->forEachRemaining(Ljava/lang/Object;)V
-HSPLjava/util/Spliterators$EmptySpliterator;->tryAdvance(Ljava/lang/Object;)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$IntArraySpliterator;->tryAdvance(Ljava/util/function/IntConsumer;)Z
-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
-HSPLjava/util/Spliterators$IteratorSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-HSPLjava/util/Spliterators;->checkFromToBounds(III)V
-HSPLjava/util/Spliterators;->emptyIntSpliterator()Ljava/util/Spliterator$OfInt;
-HSPLjava/util/Spliterators;->emptySpliterator()Ljava/util/Spliterator;
-HSPLjava/util/Spliterators;->spliterator(Ljava/util/Collection;I)Ljava/util/Spliterator;
-HSPLjava/util/Spliterators;->spliterator([IIII)Ljava/util/Spliterator$OfInt;
-HSPLjava/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
-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;
-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;->compactElts()V
-HSPLjava/util/StringJoiner;->getChars(Ljava/lang/String;[CI)I
-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
-HSPLjava/util/StringTokenizer;->setMaxDelimCodePoint()V
-HSPLjava/util/StringTokenizer;->skipDelimiters(I)I
-HSPLjava/util/TaskQueue;-><init>()V
-HSPLjava/util/TaskQueue;->add(Ljava/util/TimerTask;)V
-HSPLjava/util/TaskQueue;->clear()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
-HSPLjava/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
-HSPLjava/util/TimSort;->ensureCapacity(I)[Ljava/lang/Object;
-HSPLjava/util/TimSort;->gallopLeft(Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)I
-HSPLjava/util/TimSort;->gallopRight(Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)I
-HSPLjava/util/TimSort;->mergeAt(I)V
-HSPLjava/util/TimSort;->mergeCollapse()V
-HSPLjava/util/TimSort;->mergeForceCollapse()V
-HSPLjava/util/TimSort;->mergeHi(IIII)V
-HSPLjava/util/TimSort;->mergeLo(IIII)V
-HSPLjava/util/TimSort;->minRunLength(I)I
-HSPLjava/util/TimSort;->pushRun(II)V
-HSPLjava/util/TimSort;->reverseRange([Ljava/lang/Object;II)V
-HSPLjava/util/TimSort;->sort([Ljava/lang/Object;IILjava/util/Comparator;[Ljava/lang/Object;II)V
-HSPLjava/util/TimeZone;-><init>()V
-HSPLjava/util/TimeZone;->appendNumber(Ljava/lang/StringBuilder;II)V
-HSPLjava/util/TimeZone;->clone()Ljava/lang/Object;
-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;
-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;
-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;-><init>()V
-HSPLjava/util/Timer;-><init>(Ljava/lang/String;)V
-HSPLjava/util/Timer;-><init>(Ljava/lang/String;Z)V
-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
-HSPLjava/util/TreeMap$AscendingSubMap$AscendingEntrySetView;->iterator()Ljava/util/Iterator;
-HSPLjava/util/TreeMap$AscendingSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V
-HSPLjava/util/TreeMap$AscendingSubMap;->entrySet()Ljava/util/Set;
-HSPLjava/util/TreeMap$AscendingSubMap;->keyIterator()Ljava/util/Iterator;
-HSPLjava/util/TreeMap$DescendingSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V
-HSPLjava/util/TreeMap$DescendingSubMap;->keyIterator()Ljava/util/Iterator;
-HSPLjava/util/TreeMap$DescendingSubMap;->subLowest()Ljava/util/TreeMap$TreeMapEntry;
-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
-HSPLjava/util/TreeMap$KeySet;->isEmpty()Z
-HSPLjava/util/TreeMap$KeySet;->iterator()Ljava/util/Iterator;
-HSPLjava/util/TreeMap$KeySet;->size()I
-HSPLjava/util/TreeMap$NavigableSubMap$DescendingSubMapKeyIterator;-><init>(Ljava/util/TreeMap$NavigableSubMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V
-HSPLjava/util/TreeMap$NavigableSubMap$DescendingSubMapKeyIterator;->next()Ljava/lang/Object;
-HSPLjava/util/TreeMap$NavigableSubMap$EntrySetView;-><init>(Ljava/util/TreeMap$NavigableSubMap;)V
-HSPLjava/util/TreeMap$NavigableSubMap$EntrySetView;->isEmpty()Z
-HSPLjava/util/TreeMap$NavigableSubMap$EntrySetView;->size()I
-HSPLjava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;-><init>(Ljava/util/TreeMap$NavigableSubMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V
-HSPLjava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;->next()Ljava/lang/Object;
-HSPLjava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;->next()Ljava/util/Map$Entry;
-HSPLjava/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;
-HSPLjava/util/TreeMap$NavigableSubMap$SubMapIterator;->prevEntry()Ljava/util/TreeMap$TreeMapEntry;
-HSPLjava/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;
-HSPLjava/util/TreeMap$NavigableSubMap;->absHighest()Ljava/util/TreeMap$TreeMapEntry;
-HSPLjava/util/TreeMap$NavigableSubMap;->absLowFence()Ljava/util/TreeMap$TreeMapEntry;
-HSPLjava/util/TreeMap$NavigableSubMap;->absLowest()Ljava/util/TreeMap$TreeMapEntry;
-HSPLjava/util/TreeMap$NavigableSubMap;->firstKey()Ljava/lang/Object;
-HSPLjava/util/TreeMap$NavigableSubMap;->inRange(Ljava/lang/Object;)Z
-HSPLjava/util/TreeMap$NavigableSubMap;->isEmpty()Z
-HSPLjava/util/TreeMap$NavigableSubMap;->navigableKeySet()Ljava/util/NavigableSet;
-HSPLjava/util/TreeMap$NavigableSubMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/TreeMap$NavigableSubMap;->size()I
-HSPLjava/util/TreeMap$NavigableSubMap;->tooHigh(Ljava/lang/Object;)Z
-HSPLjava/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;
-HSPLjava/util/TreeMap$TreeMapEntry;->setValue(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/TreeMap$ValueIterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;)V
-HSPLjava/util/TreeMap$ValueIterator;->next()Ljava/lang/Object;
-HSPLjava/util/TreeMap$Values;-><init>(Ljava/util/TreeMap;)V
-HSPLjava/util/TreeMap$Values;->iterator()Ljava/util/Iterator;
-HSPLjava/util/TreeMap$Values;->size()I
-HSPLjava/util/TreeMap;->-$$Nest$fgetmodCount(Ljava/util/TreeMap;)I
-HSPLjava/util/TreeMap;-><init>()V
-HSPLjava/util/TreeMap;-><init>(Ljava/util/Comparator;)V
-HSPLjava/util/TreeMap;-><init>(Ljava/util/Map;)V
-HSPLjava/util/TreeMap;->addAllForTreeSet(Ljava/util/SortedSet;Ljava/lang/Object;)V
-HSPLjava/util/TreeMap;->addEntry(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/TreeMap$TreeMapEntry;Z)V
-HSPLjava/util/TreeMap;->addEntryToEmptyMap(Ljava/lang/Object;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;
-HSPLjava/util/TreeMap;->ceilingKey(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/TreeMap;->clear()V
-HSPLjava/util/TreeMap;->clone()Ljava/lang/Object;
-HSPLjava/util/TreeMap;->colorOf(Ljava/util/TreeMap$TreeMapEntry;)Z
-HSPLjava/util/TreeMap;->comparator()Ljava/util/Comparator;
-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
-HSPLjava/util/TreeMap;->descendingKeySet()Ljava/util/NavigableSet;
-HSPLjava/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;
-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;->floorEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;
-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;
-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;
-HSPLjava/util/TreeMap;->getLowerEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
-HSPLjava/util/TreeMap;->headMap(Ljava/lang/Object;Z)Ljava/util/NavigableMap;
-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;
-HSPLjava/util/TreeMap;->lastKey()Ljava/lang/Object;
-HSPLjava/util/TreeMap;->leftOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
-HSPLjava/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;
-HSPLjava/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;->put(Ljava/lang/Object;Ljava/lang/Object;Z)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
-HSPLjava/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;
-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
-HSPLjava/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
-HSPLjava/util/TreeSet;->descendingSet()Ljava/util/NavigableSet;
-HSPLjava/util/TreeSet;->first()Ljava/lang/Object;
-HSPLjava/util/TreeSet;->floor(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;->remove(Ljava/lang/Object;)Z
-HSPLjava/util/TreeSet;->size()I
-HSPLjava/util/TreeSet;->subSet(Ljava/lang/Object;ZLjava/lang/Object;Z)Ljava/util/NavigableSet;
-HSPLjava/util/TreeSet;->tailSet(Ljava/lang/Object;Z)Ljava/util/NavigableSet;
-HSPLjava/util/UUID;-><init>(JJ)V
-HSPLjava/util/UUID;-><init>([B)V
-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;->fromStringCurrentJava(Ljava/lang/String;)Ljava/util/UUID;
-HSPLjava/util/UUID;->fromStringJava8(Ljava/lang/String;)Ljava/util/UUID;
-HSPLjava/util/UUID;->getLeastSignificantBits()J
-HSPLjava/util/UUID;->getMostSignificantBits()J
-HSPLjava/util/UUID;->hashCode()I
-HSPLjava/util/UUID;->nameUUIDFromBytes([B)Ljava/util/UUID;
-HSPLjava/util/UUID;->parse4Nibbles(Ljava/lang/String;I)J
-HSPLjava/util/UUID;->randomUUID()Ljava/util/UUID;
-HSPLjava/util/UUID;->toString()Ljava/lang/String;
-HSPLjava/util/Vector$1;-><init>(Ljava/util/Vector;)V
-HSPLjava/util/Vector$1;->hasMoreElements()Z
-HSPLjava/util/Vector$1;->nextElement()Ljava/lang/Object;
-HSPLjava/util/Vector$Itr;-><init>(Ljava/util/Vector;)V
-HSPLjava/util/Vector$Itr;->checkForComodification()V
-HSPLjava/util/Vector$Itr;->hasNext()Z
-HSPLjava/util/Vector$Itr;->next()Ljava/lang/Object;
-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;->add(Ljava/lang/Object;[Ljava/lang/Object;I)V
-HSPLjava/util/Vector;->addElement(Ljava/lang/Object;)V
-HSPLjava/util/Vector;->clear()V
-HSPLjava/util/Vector;->contains(Ljava/lang/Object;)Z
-HSPLjava/util/Vector;->copyInto([Ljava/lang/Object;)V
-HSPLjava/util/Vector;->elementAt(I)Ljava/lang/Object;
-HSPLjava/util/Vector;->elementData(I)Ljava/lang/Object;
-HSPLjava/util/Vector;->elements()Ljava/util/Enumeration;
-HSPLjava/util/Vector;->get(I)Ljava/lang/Object;
-HSPLjava/util/Vector;->indexOf(Ljava/lang/Object;)I
-HSPLjava/util/Vector;->indexOf(Ljava/lang/Object;I)I
-HSPLjava/util/Vector;->isEmpty()Z
-HSPLjava/util/Vector;->iterator()Ljava/util/Iterator;
-HSPLjava/util/Vector;->removeAllElements()V
-HSPLjava/util/Vector;->removeElement(Ljava/lang/Object;)Z
-HSPLjava/util/Vector;->removeElementAt(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;->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;->iterator()Ljava/util/Iterator;
-HSPLjava/util/WeakHashMap$HashIterator;-><init>(Ljava/util/WeakHashMap;)V
-HSPLjava/util/WeakHashMap$HashIterator;->hasNext()Z
-HSPLjava/util/WeakHashMap$HashIterator;->nextEntry()Ljava/util/WeakHashMap$Entry;
-HSPLjava/util/WeakHashMap$KeyIterator;-><init>(Ljava/util/WeakHashMap;)V
-HSPLjava/util/WeakHashMap$KeyIterator;-><init>(Ljava/util/WeakHashMap;Ljava/util/WeakHashMap$KeyIterator-IA;)V
-HSPLjava/util/WeakHashMap$KeyIterator;->next()Ljava/lang/Object;
-HSPLjava/util/WeakHashMap$KeySet;-><init>(Ljava/util/WeakHashMap;)V
-HSPLjava/util/WeakHashMap$KeySet;-><init>(Ljava/util/WeakHashMap;Ljava/util/WeakHashMap$KeySet-IA;)V
-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;->next()Ljava/lang/Object;
-HSPLjava/util/WeakHashMap$Values;-><init>(Ljava/util/WeakHashMap;)V
-HSPLjava/util/WeakHashMap$Values;->iterator()Ljava/util/Iterator;
-HSPLjava/util/WeakHashMap;-><init>()V
-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;->entrySet()Ljava/util/Set;
-HSPLjava/util/WeakHashMap;->expungeStaleEntries()V
-HSPLjava/util/WeakHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/WeakHashMap;->getEntry(Ljava/lang/Object;)Ljava/util/WeakHashMap$Entry;
-HSPLjava/util/WeakHashMap;->getTable()[Ljava/util/WeakHashMap$Entry;
-HSPLjava/util/WeakHashMap;->hash(Ljava/lang/Object;)I
-HSPLjava/util/WeakHashMap;->indexFor(II)I
-HSPLjava/util/WeakHashMap;->isEmpty()Z
-HSPLjava/util/WeakHashMap;->keySet()Ljava/util/Set;
-HSPLjava/util/WeakHashMap;->maskNull(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/WeakHashMap;->matchesKey(Ljava/util/WeakHashMap$Entry;Ljava/lang/Object;)Z
-HSPLjava/util/WeakHashMap;->newTable(I)[Ljava/util/WeakHashMap$Entry;
-HSPLjava/util/WeakHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/WeakHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/WeakHashMap;->resize(I)V
-HSPLjava/util/WeakHashMap;->size()I
-HSPLjava/util/WeakHashMap;->transfer([Ljava/util/WeakHashMap$Entry;[Ljava/util/WeakHashMap$Entry;)V
-HSPLjava/util/WeakHashMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/WeakHashMap;->values()Ljava/util/Collection;
-HSPLjava/util/concurrent/AbstractExecutorService;-><init>()V
-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;->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;->offer(Ljava/lang/Object;)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
-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
-HSPLjava/util/concurrent/CompletableFuture$AsyncRun;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;)V
-HSPLjava/util/concurrent/CompletableFuture$AsyncRun;->run()V
-HSPLjava/util/concurrent/CompletableFuture$AsyncSupply;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Supplier;)V
-HSPLjava/util/concurrent/CompletableFuture$AsyncSupply;->run()V
-HSPLjava/util/concurrent/CompletableFuture$Completion;-><init>()V
-HSPLjava/util/concurrent/CompletableFuture$Signaller;-><init>(ZJJ)V
-HSPLjava/util/concurrent/CompletableFuture$Signaller;->block()Z
-HSPLjava/util/concurrent/CompletableFuture$Signaller;->isReleasable()Z
-HSPLjava/util/concurrent/CompletableFuture$Signaller;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-HSPLjava/util/concurrent/CompletableFuture;-><init>()V
-HSPLjava/util/concurrent/CompletableFuture;->asyncRunStage(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)Ljava/util/concurrent/CompletableFuture;
-HSPLjava/util/concurrent/CompletableFuture;->asyncSupplyStage(Ljava/util/concurrent/Executor;Ljava/util/function/Supplier;)Ljava/util/concurrent/CompletableFuture;
-HSPLjava/util/concurrent/CompletableFuture;->complete(Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/CompletableFuture;->completeNull()Z
-HSPLjava/util/concurrent/CompletableFuture;->completeValue(Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/CompletableFuture;->get()Ljava/lang/Object;
-HSPLjava/util/concurrent/CompletableFuture;->get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
-HSPLjava/util/concurrent/CompletableFuture;->internalComplete(Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/CompletableFuture;->isDone()Z
-HSPLjava/util/concurrent/CompletableFuture;->join()Ljava/lang/Object;
-HSPLjava/util/concurrent/CompletableFuture;->postComplete()V
-HSPLjava/util/concurrent/CompletableFuture;->reportGet(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/concurrent/CompletableFuture;->reportJoin(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/concurrent/CompletableFuture;->runAsync(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
-HSPLjava/util/concurrent/CompletableFuture;->screenExecutor(Ljava/util/concurrent/Executor;)Ljava/util/concurrent/Executor;
-HSPLjava/util/concurrent/CompletableFuture;->supplyAsync(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
-HSPLjava/util/concurrent/CompletableFuture;->timedGet(J)Ljava/lang/Object;
-HSPLjava/util/concurrent/CompletableFuture;->tryPushStack(Ljava/util/concurrent/CompletableFuture$Completion;)Z
-HSPLjava/util/concurrent/CompletableFuture;->waitingGet(Z)Ljava/lang/Object;
-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;
-HSPLjava/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;
-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;->iterator()Ljava/util/Iterator;
-HSPLjava/util/concurrent/ConcurrentHashMap$KeySetView;->spliterator()Ljava/util/Spliterator;
-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;)V
-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;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node;
-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
-HSPLjava/util/concurrent/ConcurrentHashMap$ValuesView;->iterator()Ljava/util/Iterator;
-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;
-HSPLjava/util/concurrent/ConcurrentHashMap;->forEach(Ljava/util/function/BiConsumer;)V
-HSPLjava/util/concurrent/ConcurrentHashMap;->fullAddCount(JZ)V
-HSPLjava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/concurrent/ConcurrentHashMap;->getOrDefault(Ljava/lang/Object;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;->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
-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
-HSPLjava/util/concurrent/ConcurrentHashMap;->setTabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;ILjava/util/concurrent/ConcurrentHashMap$Node;)V
-HSPLjava/util/concurrent/ConcurrentHashMap;->size()I
-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
-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;
-HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;-><init>()V
-HSPLjava/util/concurrent/ConcurrentLinkedDeque;-><init>()V
-HSPLjava/util/concurrent/ConcurrentLinkedDeque;->add(Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/ConcurrentLinkedDeque;->first()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-HSPLjava/util/concurrent/ConcurrentLinkedDeque;->isEmpty()Z
-HSPLjava/util/concurrent/ConcurrentLinkedDeque;->linkLast(Ljava/lang/Object;)V
-HSPLjava/util/concurrent/ConcurrentLinkedDeque;->nextTerminator()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-HSPLjava/util/concurrent/ConcurrentLinkedDeque;->offerLast(Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/ConcurrentLinkedDeque;->peekFirst()Ljava/lang/Object;
-HSPLjava/util/concurrent/ConcurrentLinkedDeque;->poll()Ljava/lang/Object;
-HSPLjava/util/concurrent/ConcurrentLinkedDeque;->pollFirst()Ljava/lang/Object;
-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$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z
-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;
-HSPLjava/util/concurrent/ConcurrentLinkedQueue$Node;-><init>()V
-HSPLjava/util/concurrent/ConcurrentLinkedQueue$Node;-><init>(Ljava/lang/Object;)V
-HSPLjava/util/concurrent/ConcurrentLinkedQueue$Node;->casItem(Ljava/lang/Object;Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/ConcurrentLinkedQueue;-><init>()V
-HSPLjava/util/concurrent/ConcurrentLinkedQueue;->add(Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/ConcurrentLinkedQueue;->bulkRemove(Ljava/util/function/Predicate;)Z
-HSPLjava/util/concurrent/ConcurrentLinkedQueue;->clear()V
-HSPLjava/util/concurrent/ConcurrentLinkedQueue;->contains(Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/ConcurrentLinkedQueue;->first()Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
-HSPLjava/util/concurrent/ConcurrentLinkedQueue;->isEmpty()Z
-HSPLjava/util/concurrent/ConcurrentLinkedQueue;->iterator()Ljava/util/Iterator;
-HSPLjava/util/concurrent/ConcurrentLinkedQueue;->lambda$clear$2(Ljava/lang/Object;)Z
-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;->toArrayInternal([Ljava/lang/Object;)[Ljava/lang/Object;
-HSPLjava/util/concurrent/ConcurrentLinkedQueue;->updateHead(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)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$Iter;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap;)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;-><init>()V
-HSPLjava/util/concurrent/ConcurrentSkipListMap;->addIndices(Ljava/util/concurrent/ConcurrentSkipListMap$Index;ILjava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/Comparator;)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;->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;->tryReduceLevel()V
-HSPLjava/util/concurrent/ConcurrentSkipListMap;->unlinkNode(Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/util/concurrent/ConcurrentSkipListMap$Node;)V
-HSPLjava/util/concurrent/ConcurrentSkipListSet;-><init>()V
-HSPLjava/util/concurrent/ConcurrentSkipListSet;->add(Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda2;-><init>(Ljava/util/Collection;)V
-HSPLjava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)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;
-HSPLjava/util/concurrent/CopyOnWriteArrayList;-><init>()V
-HSPLjava/util/concurrent/CopyOnWriteArrayList;-><init>(Ljava/util/Collection;)V
-HSPLjava/util/concurrent/CopyOnWriteArrayList;-><init>([Ljava/lang/Object;)V
-HSPLjava/util/concurrent/CopyOnWriteArrayList;->add(ILjava/lang/Object;)V
-HSPLjava/util/concurrent/CopyOnWriteArrayList;->add(Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/CopyOnWriteArrayList;->addAll(Ljava/util/Collection;)Z
-HSPLjava/util/concurrent/CopyOnWriteArrayList;->addAllAbsent(Ljava/util/Collection;)I
-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;->bulkRemove(Ljava/util/function/Predicate;)Z
-HSPLjava/util/concurrent/CopyOnWriteArrayList;->bulkRemove(Ljava/util/function/Predicate;II)Z
-HSPLjava/util/concurrent/CopyOnWriteArrayList;->clear()V
-HSPLjava/util/concurrent/CopyOnWriteArrayList;->contains(Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/CopyOnWriteArrayList;->elementAt([Ljava/lang/Object;I)Ljava/lang/Object;
-HSPLjava/util/concurrent/CopyOnWriteArrayList;->get(I)Ljava/lang/Object;
-HSPLjava/util/concurrent/CopyOnWriteArrayList;->getArray()[Ljava/lang/Object;
-HSPLjava/util/concurrent/CopyOnWriteArrayList;->indexOf(Ljava/lang/Object;)I
-HSPLjava/util/concurrent/CopyOnWriteArrayList;->indexOfRange(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;->lambda$removeAll$0(Ljava/util/Collection;Ljava/lang/Object;)Z
-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
-HSPLjava/util/concurrent/CopyOnWriteArrayList;->toArray()[Ljava/lang/Object;
-HSPLjava/util/concurrent/CopyOnWriteArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
-HSPLjava/util/concurrent/CopyOnWriteArrayList;->toString()Ljava/lang/String;
-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;->contains(Ljava/lang/Object;)Z
-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;->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
-HSPLjava/util/concurrent/CountDownLatch$Sync;->tryReleaseShared(I)Z
-HSPLjava/util/concurrent/CountDownLatch;-><init>(I)V
-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/util/concurrent/Delayed;)Z
-HSPLjava/util/concurrent/DelayQueue;->offer(Ljava/util/concurrent/Delayed;)Z
-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
-HSPLjava/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;->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;
-HSPLjava/util/concurrent/Executors;->newCachedThreadPool(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
-HSPLjava/util/concurrent/Executors;->newFixedThreadPool(I)Ljava/util/concurrent/ExecutorService;
-HSPLjava/util/concurrent/Executors;->newFixedThreadPool(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
-HSPLjava/util/concurrent/Executors;->newScheduledThreadPool(I)Ljava/util/concurrent/ScheduledExecutorService;
-HSPLjava/util/concurrent/Executors;->newScheduledThreadPool(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
-HSPLjava/util/concurrent/Executors;->newSingleThreadExecutor()Ljava/util/concurrent/ExecutorService;
-HSPLjava/util/concurrent/Executors;->newSingleThreadExecutor(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
-HSPLjava/util/concurrent/Executors;->newSingleThreadScheduledExecutor()Ljava/util/concurrent/ScheduledExecutorService;
-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;->managedBlock(Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;)V
-HSPLjava/util/concurrent/ForkJoinPool;->unmanagedBlock(Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;)V
-HSPLjava/util/concurrent/ForkJoinTask;-><init>()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
-HSPLjava/util/concurrent/FutureTask;->awaitDone(ZJ)I
-HSPLjava/util/concurrent/FutureTask;->cancel(Z)Z
-HSPLjava/util/concurrent/FutureTask;->done()V
-HSPLjava/util/concurrent/FutureTask;->finishCompletion()V
-HSPLjava/util/concurrent/FutureTask;->get()Ljava/lang/Object;
-HSPLjava/util/concurrent/FutureTask;->get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
-HSPLjava/util/concurrent/FutureTask;->handlePossibleCancellationInterrupt(I)V
-HSPLjava/util/concurrent/FutureTask;->isCancelled()Z
-HSPLjava/util/concurrent/FutureTask;->isDone()Z
-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
-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
-HSPLjava/util/concurrent/LinkedBlockingDeque;->addFirst(Ljava/lang/Object;)V
-HSPLjava/util/concurrent/LinkedBlockingDeque;->addLast(Ljava/lang/Object;)V
-HSPLjava/util/concurrent/LinkedBlockingDeque;->iterator()Ljava/util/Iterator;
-HSPLjava/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
-HSPLjava/util/concurrent/LinkedBlockingDeque;->offerFirst(Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/LinkedBlockingDeque;->offerLast(Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/LinkedBlockingDeque;->peekFirst()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;
-HSPLjava/util/concurrent/LinkedBlockingDeque;->size()I
-HSPLjava/util/concurrent/LinkedBlockingDeque;->take()Ljava/lang/Object;
-HSPLjava/util/concurrent/LinkedBlockingDeque;->takeFirst()Ljava/lang/Object;
-HSPLjava/util/concurrent/LinkedBlockingDeque;->unlinkFirst()Ljava/lang/Object;
-HSPLjava/util/concurrent/LinkedBlockingQueue$Node;-><init>(Ljava/lang/Object;)V
-HSPLjava/util/concurrent/LinkedBlockingQueue;-><init>()V
-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;->offer(Ljava/lang/Object;)Z
-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;->signalNotEmpty()V
-HSPLjava/util/concurrent/LinkedBlockingQueue;->signalNotFull()V
-HSPLjava/util/concurrent/LinkedBlockingQueue;->size()I
-HSPLjava/util/concurrent/LinkedBlockingQueue;->take()Ljava/lang/Object;
-HSPLjava/util/concurrent/PriorityBlockingQueue;-><init>()V
-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;
-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;
-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
-HSPLjava/util/concurrent/PriorityBlockingQueue;->siftDownComparable(ILjava/lang/Object;[Ljava/lang/Object;I)V
-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
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->drainTo(Ljava/util/Collection;)I
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->drainTo(Ljava/util/Collection;I)I
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->finishPoll(Ljava/util/concurrent/RunnableScheduledFuture;)Ljava/util/concurrent/RunnableScheduledFuture;
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->grow()V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->indexOf(Ljava/lang/Object;)I
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->isEmpty()Z
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->iterator()Ljava/util/Iterator;
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->offer(Ljava/lang/Runnable;)Z
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/RunnableScheduledFuture;
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->remove(Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->setIndex(Ljava/util/concurrent/RunnableScheduledFuture;I)V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->siftDown(ILjava/util/concurrent/RunnableScheduledFuture;)V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->siftUp(ILjava/util/concurrent/RunnableScheduledFuture;)V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->size()I
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->take()Ljava/lang/Object;
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->take()Ljava/util/concurrent/RunnableScheduledFuture;
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->toArray()[Ljava/lang/Object;
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;-><init>(Ljava/util/concurrent/ScheduledThreadPoolExecutor;Ljava/lang/Runnable;Ljava/lang/Object;JJ)V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;-><init>(Ljava/util/concurrent/ScheduledThreadPoolExecutor;Ljava/lang/Runnable;Ljava/lang/Object;JJJ)V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;-><init>(Ljava/util/concurrent/ScheduledThreadPoolExecutor;Ljava/util/concurrent/Callable;JJ)V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->cancel(Z)Z
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->compareTo(Ljava/lang/Object;)I
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->compareTo(Ljava/util/concurrent/Delayed;)I
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->getDelay(Ljava/util/concurrent/TimeUnit;)J
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->isPeriodic()Z
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->run()V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->setNextRunTime()V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;-><init>(I)V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;-><init>(ILjava/util/concurrent/ThreadFactory;)V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;-><init>(ILjava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->canRunInCurrentRunState(Ljava/util/concurrent/RunnableScheduledFuture;)Z
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->decorateTask(Ljava/lang/Runnable;Ljava/util/concurrent/RunnableScheduledFuture;)Ljava/util/concurrent/RunnableScheduledFuture;
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->decorateTask(Ljava/util/concurrent/Callable;Ljava/util/concurrent/RunnableScheduledFuture;)Ljava/util/concurrent/RunnableScheduledFuture;
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->delayedExecute(Ljava/util/concurrent/RunnableScheduledFuture;)V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->execute(Ljava/lang/Runnable;)V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->getContinueExistingPeriodicTasksAfterShutdownPolicy()Z
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->getExecuteExistingDelayedTasksAfterShutdownPolicy()Z
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->onShutdown()V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->reExecutePeriodic(Ljava/util/concurrent/RunnableScheduledFuture;)V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->schedule(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->scheduleAtFixedRate(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->scheduleWithFixedDelay(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->setRemoveOnCancelPolicy(Z)V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->shutdown()V
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->shutdownNow()Ljava/util/List;
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->submit(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->triggerTime(J)J
-HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->triggerTime(JLjava/util/concurrent/TimeUnit;)J
-HSPLjava/util/concurrent/Semaphore$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(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;->block()Z
-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;->forgetWaiter()V
-HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;->isCancelled()Z
-HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;->isReleasable()Z
-HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;->tryMatch(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
-HSPLjava/util/concurrent/SynchronousQueue$TransferStack;-><init>()V
-HSPLjava/util/concurrent/SynchronousQueue$TransferStack;->casHead(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
-HSPLjava/util/concurrent/SynchronousQueue$TransferStack;->clean(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)V
-HSPLjava/util/concurrent/SynchronousQueue$TransferStack;->isFulfilling(I)Z
-HSPLjava/util/concurrent/SynchronousQueue$TransferStack;->snode(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/lang/Object;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;I)Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
-HSPLjava/util/concurrent/SynchronousQueue$TransferStack;->transfer(Ljava/lang/Object;ZJ)Ljava/lang/Object;
-HSPLjava/util/concurrent/SynchronousQueue$Transferer;-><init>()V
-HSPLjava/util/concurrent/SynchronousQueue;-><init>()V
-HSPLjava/util/concurrent/SynchronousQueue;-><init>(Z)V
-HSPLjava/util/concurrent/SynchronousQueue;->isEmpty()Z
-HSPLjava/util/concurrent/SynchronousQueue;->offer(Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/SynchronousQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
-HSPLjava/util/concurrent/SynchronousQueue;->size()I
-HSPLjava/util/concurrent/SynchronousQueue;->take()Ljava/lang/Object;
-HSPLjava/util/concurrent/ThreadLocalRandom;-><clinit>()V
-HSPLjava/util/concurrent/ThreadLocalRandom;-><init>()V
-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;->nextInt()I
-HSPLjava/util/concurrent/ThreadLocalRandom;->nextSecondarySeed()I
-HSPLjava/util/concurrent/ThreadLocalRandom;->nextSeed()J
-HSPLjava/util/concurrent/ThreadLocalRandom;->setSeed(J)V
-HSPLjava/util/concurrent/ThreadPoolExecutor$DiscardPolicy;-><init>()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
-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
-HSPLjava/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
-HSPLjava/util/concurrent/ThreadPoolExecutor;->compareAndIncrementWorkerCount(I)Z
-HSPLjava/util/concurrent/ThreadPoolExecutor;->ctlOf(II)I
-HSPLjava/util/concurrent/ThreadPoolExecutor;->decrementWorkerCount()V
-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;->getCorePoolSize()I
-HSPLjava/util/concurrent/ThreadPoolExecutor;->getMaximumPoolSize()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;->getThreadFactory()Ljava/util/concurrent/ThreadFactory;
-HSPLjava/util/concurrent/ThreadPoolExecutor;->interruptIdleWorkers()V
-HSPLjava/util/concurrent/ThreadPoolExecutor;->interruptIdleWorkers(Z)V
-HSPLjava/util/concurrent/ThreadPoolExecutor;->interruptWorkers()V
-HSPLjava/util/concurrent/ThreadPoolExecutor;->isRunning(I)Z
-HSPLjava/util/concurrent/ThreadPoolExecutor;->isShutdown()Z
-HSPLjava/util/concurrent/ThreadPoolExecutor;->isTerminated()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
-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
-HSPLjava/util/concurrent/ThreadPoolExecutor;->setThreadFactory(Ljava/util/concurrent/ThreadFactory;)V
-HSPLjava/util/concurrent/ThreadPoolExecutor;->shutdown()V
-HSPLjava/util/concurrent/ThreadPoolExecutor;->shutdownNow()Ljava/util/List;
-HSPLjava/util/concurrent/ThreadPoolExecutor;->terminated()V
-HSPLjava/util/concurrent/ThreadPoolExecutor;->toString()Ljava/lang/String;
-HSPLjava/util/concurrent/ThreadPoolExecutor;->tryTerminate()V
-HSPLjava/util/concurrent/ThreadPoolExecutor;->workerCountOf(I)I
-HSPLjava/util/concurrent/TimeUnit;->convert(JLjava/util/concurrent/TimeUnit;)J
-HSPLjava/util/concurrent/TimeUnit;->cvt(JJJ)J
-HSPLjava/util/concurrent/TimeUnit;->sleep(J)V
-HSPLjava/util/concurrent/TimeUnit;->toDays(J)J
-HSPLjava/util/concurrent/TimeUnit;->toHours(J)J
-HSPLjava/util/concurrent/TimeUnit;->toMicros(J)J
-HSPLjava/util/concurrent/TimeUnit;->toMillis(J)J
-HSPLjava/util/concurrent/TimeUnit;->toMinutes(J)J
-HSPLjava/util/concurrent/TimeUnit;->toNanos(J)J
-HSPLjava/util/concurrent/TimeUnit;->toSeconds(J)J
-HSPLjava/util/concurrent/TimeUnit;->values()[Ljava/util/concurrent/TimeUnit;
-HSPLjava/util/concurrent/TimeoutException;-><init>()V
-HSPLjava/util/concurrent/TimeoutException;-><init>(Ljava/lang/String;)V
-HSPLjava/util/concurrent/atomic/AtomicBoolean;-><init>()V
-HSPLjava/util/concurrent/atomic/AtomicBoolean;-><init>(Z)V
-HSPLjava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z
-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
-HSPLjava/util/concurrent/atomic/AtomicInteger;->compareAndSet(II)Z
-HSPLjava/util/concurrent/atomic/AtomicInteger;->decrementAndGet()I
-HSPLjava/util/concurrent/atomic/AtomicInteger;->get()I
-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;->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;->weakCompareAndSetVolatile(II)Z
-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;->getAndIncrement(Ljava/lang/Object;)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;
-HSPLjava/util/concurrent/atomic/AtomicLong;-><init>()V
-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
-HSPLjava/util/concurrent/atomic/AtomicLong;->get()J
-HSPLjava/util/concurrent/atomic/AtomicLong;->getAndAdd(J)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
-HSPLjava/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
-HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater;-><init>()V
-HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
-HSPLjava/util/concurrent/atomic/AtomicReference;-><init>()V
-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;
-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/AtomicReference;->updateAndGet(Ljava/util/function/UnaryOperator;)Ljava/lang/Object;
-HSPLjava/util/concurrent/atomic/AtomicReference;->weakCompareAndSetVolatile(Ljava/lang/Object;Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/atomic/AtomicReferenceArray;-><init>(I)V
-HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->compareAndSet(ILjava/lang/Object;Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
-HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->getAcquire(I)Ljava/lang/Object;
-HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->getAndSet(ILjava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->lazySet(ILjava/lang/Object;)V
-HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->length()I
-HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->set(ILjava/lang/Object;)V
-HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->setRelease(ILjava/lang/Object;)V
-HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;-><init>(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
-HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->accessCheck(Ljava/lang/Object;)V
-HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
-HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->get(Ljava/lang/Object;)Ljava/lang/Object;
-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
-HSPLjava/util/concurrent/atomic/Striped64$Cell;-><clinit>()V
-HSPLjava/util/concurrent/atomic/Striped64$Cell;-><init>(J)V
-HSPLjava/util/concurrent/atomic/Striped64$Cell;->cas(JJ)Z
-HSPLjava/util/concurrent/atomic/Striped64;-><init>()V
-HSPLjava/util/concurrent/atomic/Striped64;->casBase(JJ)Z
-HSPLjava/util/concurrent/atomic/Striped64;->casCellsBusy()Z
-HSPLjava/util/concurrent/atomic/Striped64;->getProbe()I
-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
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;-><init>()V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;->block()Z
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;->isReleasable()Z
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;-><init>(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;)V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->await()V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->awaitNanos(J)J
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->canReacquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;)Z
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->doSignal(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;Z)V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->enableWait(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;)I
-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;->signal()V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->signalAll()V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->unlinkCancelledWaiters(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;)V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ExclusiveNode;-><init>()V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;-><init>()V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->clearStatus()V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->getAndUnsetStatus(I)I
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->setPrevRelaxed(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->setStatusRelaxed(I)V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$SharedNode;-><init>()V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->-$$Nest$sfgetU()Ljdk/internal/misc/Unsafe;
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;-><init>()V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->acquire(I)V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->acquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;IZZZJ)I
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->acquireInterruptibly(I)V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->acquireShared(I)V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->acquireSharedInterruptibly(I)V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->apparentlyFirstQueuedIsExclusive()Z
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->casTail(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->cleanQueue()V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->compareAndSetState(II)Z
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->enqueue(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->getFirstQueuedThread()Ljava/lang/Thread;
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->getState()I
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->hasQueuedPredecessors()Z
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->hasQueuedThreads()Z
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->hasWaiters(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;)Z
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->isEnqueued(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;->release(I)Z
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->releaseShared(I)Z
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->setState(I)V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->signalNext(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->signalNextIfShared(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->tryAcquireNanos(IJ)Z
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->tryAcquireSharedNanos(IJ)Z
-HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->tryInitializeHead()V
-HSPLjava/util/concurrent/locks/LockSupport;->park()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;->setBlocker(Ljava/lang/Thread;Ljava/lang/Object;)V
-HSPLjava/util/concurrent/locks/LockSupport;->setCurrentBlocker(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;->initialTryLock()Z
-HSPLjava/util/concurrent/locks/ReentrantLock$FairSync;->tryAcquire(I)Z
-HSPLjava/util/concurrent/locks/ReentrantLock$NonfairSync;-><init>()V
-HSPLjava/util/concurrent/locks/ReentrantLock$NonfairSync;->initialTryLock()Z
-HSPLjava/util/concurrent/locks/ReentrantLock$NonfairSync;->tryAcquire(I)Z
-HSPLjava/util/concurrent/locks/ReentrantLock$Sync;-><init>()V
-HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->isHeldExclusively()Z
-HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->lock()V
-HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->lockInterruptibly()V
-HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->newCondition()Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;
-HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->tryLock()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;->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
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;->writerShouldBlock()Z
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;-><init>()V
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;->readerShouldBlock()Z
-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;->unlock()V
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter;-><init>()V
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter;-><init>()V
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter;->initialValue()Ljava/lang/Object;
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter;->initialValue()Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter;
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;-><init>()V
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->exclusiveCount(I)I
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->fullTryAcquireShared(Ljava/lang/Thread;)I
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->getReadHoldCount()I
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->getReadLockCount()I
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->isHeldExclusively()Z
-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
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryRelease(I)Z
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryReleaseShared(I)Z
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;-><init>(Ljava/util/concurrent/locks/ReentrantReadWriteLock;)V
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->lock()V
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->unlock()V
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;-><init>()V
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;-><init>(Z)V
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;->getReadHoldCount()I
-HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
-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;
-HSPLjava/util/function/BinaryOperator$$ExternalSyntheticLambda0;-><init>(Ljava/util/Comparator;)V
-HSPLjava/util/function/BinaryOperator;->maxBy(Ljava/util/Comparator;)Ljava/util/function/BinaryOperator;
-HSPLjava/util/function/DoubleUnaryOperator$$ExternalSyntheticLambda1;->applyAsDouble(D)D
-HSPLjava/util/function/DoubleUnaryOperator;->andThen(Ljava/util/function/DoubleUnaryOperator;)Ljava/util/function/DoubleUnaryOperator;
-HSPLjava/util/function/Function$$ExternalSyntheticLambda0;-><init>()V
-HSPLjava/util/function/Function$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/function/Function$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/function/Function$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/function/Function;->identity()Ljava/util/function/Function;
-HSPLjava/util/function/Function;->lambda$identity$2(Ljava/lang/Object;)Ljava/lang/Object;
-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;->hash(Ljava/lang/String;)I
-HSPLjava/util/jar/Attributes$Name;->hashCode()I
-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/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;->read(Ljava/util/jar/Manifest$FastInputStream;[BLjava/lang/String;I)I
-HSPLjava/util/jar/Attributes;->size()I
-HSPLjava/util/jar/JarEntry;-><init>(Ljava/lang/String;)V
-HSPLjava/util/jar/JarEntry;-><init>(Ljava/util/zip/ZipEntry;)V
-HSPLjava/util/jar/JarFile$JarFileEntry;-><init>(Ljava/util/jar/JarFile;Ljava/lang/String;)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/io/File;ZZI)V
-HSPLjava/util/jar/JarFile;-><init>(Ljava/lang/String;)V
-HSPLjava/util/jar/JarFile;-><init>(Ljava/lang/String;ZZ)V
-HSPLjava/util/jar/JarFile;->entryFor(Ljava/lang/String;)Ljava/util/jar/JarEntry;
-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;->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/ConsoleHandler;->close()V
-HSPLjava/util/logging/ErrorManager;-><init>()V
-HSPLjava/util/logging/FileHandler$1;-><init>(Ljava/util/logging/FileHandler;)V
-HSPLjava/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$InitializationErrorManager-IA;)V
-HSPLjava/util/logging/FileHandler$MeteredStream;-><init>(Ljava/util/logging/FileHandler;Ljava/io/OutputStream;I)V
-HSPLjava/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;->-$$Nest$mrotate(Ljava/util/logging/FileHandler;)V
-HSPLjava/util/logging/FileHandler;-><clinit>()V
-HSPLjava/util/logging/FileHandler;-><init>(Ljava/lang/String;IIZ)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
-HSPLjava/util/logging/FileHandler;->rotate()V
-HSPLjava/util/logging/Formatter;-><init>()V
-HSPLjava/util/logging/Formatter;->getHead(Ljava/util/logging/Handler;)Ljava/lang/String;
-HSPLjava/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;->equals(Ljava/lang/Object;)Z
-HSPLjava/util/logging/Level;->intValue()I
-HSPLjava/util/logging/LogManager$5;-><init>(Ljava/util/logging/LogManager;Ljava/lang/String;Ljava/util/logging/Logger;)V
-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
-HSPLjava/util/logging/LogManager$LogNode;->walkAndSetParent(Ljava/util/logging/Logger;)V
-HSPLjava/util/logging/LogManager$LoggerContext$1;-><init>(Ljava/util/logging/LogManager$LoggerContext;Ljava/util/logging/Logger;Ljava/util/logging/LogManager;Ljava/lang/String;)V
-HSPLjava/util/logging/LogManager$LoggerContext$1;->run()Ljava/lang/Object;
-HSPLjava/util/logging/LogManager$LoggerContext$1;->run()Ljava/lang/Void;
-HSPLjava/util/logging/LogManager$LoggerContext;->addLocalLogger(Ljava/util/logging/Logger;)Z
-HSPLjava/util/logging/LogManager$LoggerContext;->addLocalLogger(Ljava/util/logging/Logger;Z)Z
-HSPLjava/util/logging/LogManager$LoggerContext;->ensureAllDefaultLoggers(Ljava/util/logging/Logger;)V
-HSPLjava/util/logging/LogManager$LoggerContext;->ensureDefaultLogger(Ljava/util/logging/Logger;)V
-HSPLjava/util/logging/LogManager$LoggerContext;->ensureInitialized()V
-HSPLjava/util/logging/LogManager$LoggerContext;->findLogger(Ljava/lang/String;)Ljava/util/logging/Logger;
-HSPLjava/util/logging/LogManager$LoggerContext;->getGlobalLogger()Ljava/util/logging/Logger;
-HSPLjava/util/logging/LogManager$LoggerContext;->getLoggerNames()Ljava/util/Enumeration;
-HSPLjava/util/logging/LogManager$LoggerContext;->getNode(Ljava/lang/String;)Ljava/util/logging/LogManager$LogNode;
-HSPLjava/util/logging/LogManager$LoggerContext;->getOwner()Ljava/util/logging/LogManager;
-HSPLjava/util/logging/LogManager$LoggerContext;->getRootLogger()Ljava/util/logging/Logger;
-HSPLjava/util/logging/LogManager$LoggerContext;->processParentHandlers(Ljava/util/logging/Logger;Ljava/lang/String;)V
-HSPLjava/util/logging/LogManager$LoggerContext;->removeLoggerRef(Ljava/lang/String;Ljava/util/logging/LogManager$LoggerWeakRef;)V
-HSPLjava/util/logging/LogManager$LoggerContext;->requiresDefaultLoggers()Z
-HSPLjava/util/logging/LogManager$LoggerWeakRef;-><init>(Ljava/util/logging/LogManager;Ljava/util/logging/Logger;)V
-HSPLjava/util/logging/LogManager$LoggerWeakRef;->dispose()V
-HSPLjava/util/logging/LogManager$LoggerWeakRef;->setNode(Ljava/util/logging/LogManager$LogNode;)V
-HSPLjava/util/logging/LogManager$LoggerWeakRef;->setParentRef(Ljava/lang/ref/WeakReference;)V
-HSPLjava/util/logging/LogManager$RootLogger;->accessCheckedHandlers()[Ljava/util/logging/Handler;
-HSPLjava/util/logging/LogManager$RootLogger;->addHandler(Ljava/util/logging/Handler;)V
-HSPLjava/util/logging/LogManager$RootLogger;->removeHandler(Ljava/util/logging/Handler;)V
-HSPLjava/util/logging/LogManager$SystemLoggerContext;->demandLogger(Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger;
-HSPLjava/util/logging/LogManager;->-$$Nest$fgetloggerRefQueue(Ljava/util/logging/LogManager;)Ljava/lang/ref/ReferenceQueue;
-HSPLjava/util/logging/LogManager;->-$$Nest$fgetrootLogger(Ljava/util/logging/LogManager;)Ljava/util/logging/Logger;
-HSPLjava/util/logging/LogManager;->-$$Nest$minitializeGlobalHandlers(Ljava/util/logging/LogManager;)V
-HSPLjava/util/logging/LogManager;->-$$Nest$mparseClassNames(Ljava/util/logging/LogManager;Ljava/lang/String;)[Ljava/lang/String;
-HSPLjava/util/logging/LogManager;->-$$Nest$sfgetmanager()Ljava/util/logging/LogManager;
-HSPLjava/util/logging/LogManager;->-$$Nest$smdoSetParent(Ljava/util/logging/Logger;Ljava/util/logging/Logger;)V
-HSPLjava/util/logging/LogManager;->addLogger(Ljava/util/logging/Logger;)Z
-HSPLjava/util/logging/LogManager;->checkPermission()V
-HSPLjava/util/logging/LogManager;->contexts()Ljava/util/List;
-HSPLjava/util/logging/LogManager;->demandLogger(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Ljava/util/logging/Logger;
-HSPLjava/util/logging/LogManager;->demandSystemLogger(Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger;
-HSPLjava/util/logging/LogManager;->doSetParent(Ljava/util/logging/Logger;Ljava/util/logging/Logger;)V
-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
-HSPLjava/util/logging/LogManager;->loadLoggerHandlers(Ljava/util/logging/Logger;Ljava/lang/String;Ljava/lang/String;)V
-HSPLjava/util/logging/LogManager;->parseClassNames(Ljava/lang/String;)[Ljava/lang/String;
-HSPLjava/util/logging/LogManager;->reset()V
-HSPLjava/util/logging/LogManager;->resetLogger(Ljava/util/logging/Logger;)V
-HSPLjava/util/logging/LogRecord;-><init>(Ljava/util/logging/Level;Ljava/lang/String;)V
-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;->getThrown()Ljava/lang/Throwable;
-HSPLjava/util/logging/LogRecord;->setLoggerName(Ljava/lang/String;)V
-HSPLjava/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
-HSPLjava/util/logging/Logger$1;-><init>(Ljava/util/Locale;)V
-HSPLjava/util/logging/Logger$1;->run()Ljava/lang/Object;
-HSPLjava/util/logging/Logger$1;->run()Ljava/util/ResourceBundle;
-HSPLjava/util/logging/Logger$LoggerBundle;->get(Ljava/lang/String;Ljava/util/ResourceBundle;)Ljava/util/logging/Logger$LoggerBundle;
-HSPLjava/util/logging/Logger$LoggerBundle;->isSystemBundle()Z
-HSPLjava/util/logging/Logger;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;Ljava/util/logging/LogManager;Z)V
-HSPLjava/util/logging/Logger;->accessCheckedHandlers()[Ljava/util/logging/Handler;
-HSPLjava/util/logging/Logger;->addHandler(Ljava/util/logging/Handler;)V
-HSPLjava/util/logging/Logger;->checkPermission()V
-HSPLjava/util/logging/Logger;->demandLogger(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Ljava/util/logging/Logger;
-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;->getCallersClassLoader()Ljava/lang/ClassLoader;
-HSPLjava/util/logging/Logger;->getEffectiveLoggerBundle()Ljava/util/logging/Logger$LoggerBundle;
-HSPLjava/util/logging/Logger;->getHandlers()[Ljava/util/logging/Handler;
-HSPLjava/util/logging/Logger;->getLogger(Ljava/lang/String;)Ljava/util/logging/Logger;
-HSPLjava/util/logging/Logger;->getName()Ljava/lang/String;
-HSPLjava/util/logging/Logger;->getParent()Ljava/util/logging/Logger;
-HSPLjava/util/logging/Logger;->getPlatformLogger(Ljava/lang/String;)Ljava/util/logging/Logger;
-HSPLjava/util/logging/Logger;->getResourceBundle()Ljava/util/ResourceBundle;
-HSPLjava/util/logging/Logger;->getResourceBundleName()Ljava/lang/String;
-HSPLjava/util/logging/Logger;->getUseParentHandlers()Z
-HSPLjava/util/logging/Logger;->info(Ljava/lang/String;)V
-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/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
-HSPLjava/util/logging/Logger;->logp(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
-HSPLjava/util/logging/Logger;->removeChildLogger(Ljava/util/logging/LogManager$LoggerWeakRef;)V
-HSPLjava/util/logging/Logger;->removeHandler(Ljava/util/logging/Handler;)V
-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/LoggingProxyImpl;->getLogger(Ljava/lang/String;)Ljava/lang/Object;
-HSPLjava/util/logging/LoggingProxyImpl;->getProperty(Ljava/lang/String;)Ljava/lang/String;
-HSPLjava/util/logging/SimpleFormatter;-><clinit>()V
-HSPLjava/util/logging/SimpleFormatter;-><init>()V
-HSPLjava/util/logging/StreamHandler;-><init>()V
-HSPLjava/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/StringBuilder;Ljava/lang/String;)V
-HSPLjava/util/regex/Matcher;->appendExpandedReplacement(Ljava/lang/String;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
-HSPLjava/util/regex/Matcher;->appendReplacement(Ljava/lang/StringBuffer;Ljava/lang/String;)Ljava/util/regex/Matcher;
-HSPLjava/util/regex/Matcher;->appendReplacement(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/util/regex/Matcher;
-HSPLjava/util/regex/Matcher;->appendReplacementInternal(Ljava/lang/StringBuilder;Ljava/lang/String;)V
-HSPLjava/util/regex/Matcher;->appendTail(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;
-HSPLjava/util/regex/Matcher;->appendTail(Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
-HSPLjava/util/regex/Matcher;->end()I
-HSPLjava/util/regex/Matcher;->end(I)I
-HSPLjava/util/regex/Matcher;->ensureMatch()V
-HSPLjava/util/regex/Matcher;->find()Z
-HSPLjava/util/regex/Matcher;->find(I)Z
-HSPLjava/util/regex/Matcher;->getSubSequence(II)Ljava/lang/CharSequence;
-HSPLjava/util/regex/Matcher;->getTextLength()I
-HSPLjava/util/regex/Matcher;->group()Ljava/lang/String;
-HSPLjava/util/regex/Matcher;->group(I)Ljava/lang/String;
-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;->region(II)Ljava/util/regex/Matcher;
-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;->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;->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;
-HSPLjava/util/regex/Pattern;-><init>(Ljava/lang/String;I)V
-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;
-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/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;->evaluate(Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
-HSPLjava/util/stream/AbstractPipeline;->evaluate(Ljava/util/stream/TerminalOp;)Ljava/lang/Object;
-HSPLjava/util/stream/AbstractPipeline;->evaluateToArrayNode(Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
-HSPLjava/util/stream/AbstractPipeline;->exactOutputSizeIfKnown(Ljava/util/Spliterator;)J
-HSPLjava/util/stream/AbstractPipeline;->getStreamAndOpFlags()I
-HSPLjava/util/stream/AbstractPipeline;->isParallel()Z
-HSPLjava/util/stream/AbstractPipeline;->onClose(Ljava/lang/Runnable;)Ljava/util/stream/BaseStream;
-HSPLjava/util/stream/AbstractPipeline;->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
-HSPLjava/util/stream/AbstractSpinedBuffer;->count()J
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda0;-><init>()V
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda20;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda25;-><init>()V
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda25;->get()Ljava/lang/Object;
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda26;-><init>()V
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda26;->accept(Ljava/lang/Object;Ljava/lang/Object;)V+]Ljava/util/List;Ljava/util/ArrayList;
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda27;-><init>()V
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda28;-><init>()V
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda28;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda42;-><init>()V
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda65;->get()Ljava/lang/Object;
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda72;->get()Ljava/lang/Object;
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda74;-><init>()V
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda75;-><init>()V
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda75;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda76;-><init>()V
-HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda87;-><init>()V
-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;
-HSPLjava/util/stream/Collectors$CollectorImpl;->characteristics()Ljava/util/Set;
-HSPLjava/util/stream/Collectors$CollectorImpl;->combiner()Ljava/util/function/BinaryOperator;
-HSPLjava/util/stream/Collectors$CollectorImpl;->finisher()Ljava/util/function/Function;
-HSPLjava/util/stream/Collectors$CollectorImpl;->supplier()Ljava/util/function/Supplier;
-HSPLjava/util/stream/Collectors;->-$$Nest$smcastingIdentity()Ljava/util/function/Function;
-HSPLjava/util/stream/Collectors;->castingIdentity()Ljava/util/function/Function;
-HSPLjava/util/stream/Collectors;->groupingBy(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;->groupingBy(Ljava/util/function/Function;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;
-HSPLjava/util/stream/Collectors;->lambda$joining$11(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
-HSPLjava/util/stream/Collectors;->lambda$toUnmodifiableList$6(Ljava/util/ArrayList;)Ljava/util/List;+]Ljdk/internal/access/JavaUtilCollectionAccess;Ljava/util/ImmutableCollections$Access$1;
-HSPLjava/util/stream/Collectors;->lambda$uniqKeysMapAccumulator$1(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/Map;Ljava/lang/Object;)V
-HSPLjava/util/stream/Collectors;->mapMerger(Ljava/util/function/BinaryOperator;)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;
-HSPLjava/util/stream/Collectors;->toSet()Ljava/util/stream/Collector;
-HSPLjava/util/stream/Collectors;->toUnmodifiableList()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
-HSPLjava/util/stream/DistinctOps$1$2;->begin(J)V
-HSPLjava/util/stream/DistinctOps$1$2;->end()V
-HSPLjava/util/stream/DistinctOps$1;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
-HSPLjava/util/stream/DistinctOps$1;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-HSPLjava/util/stream/DistinctOps;->makeRef(Ljava/util/stream/AbstractPipeline;)Ljava/util/stream/ReferencePipeline;
-HSPLjava/util/stream/DoublePipeline$StatelessOp;-><clinit>()V
-HSPLjava/util/stream/DoublePipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
-HSPLjava/util/stream/DoublePipeline$StatelessOp;->opIsStateful()Z
-HSPLjava/util/stream/DoublePipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
-HSPLjava/util/stream/DoublePipeline;->max()Ljava/util/OptionalDouble;
-HSPLjava/util/stream/DoublePipeline;->reduce(Ljava/util/function/DoubleBinaryOperator;)Ljava/util/OptionalDouble;
-HSPLjava/util/stream/FindOps$FindOp;-><init>(ZLjava/util/stream/StreamShape;Ljava/lang/Object;Ljava/util/function/Predicate;Ljava/util/function/Supplier;)V
-HSPLjava/util/stream/FindOps$FindOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object;
-HSPLjava/util/stream/FindOps$FindOp;->getOpFlags()I
-HSPLjava/util/stream/FindOps$FindSink$OfRef;-><init>()V
-HSPLjava/util/stream/FindOps$FindSink$OfRef;->get()Ljava/lang/Object;
-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
-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$$ExternalSyntheticLambda12;->apply(I)Ljava/lang/Object;
-HSPLjava/util/stream/IntPipeline$$ExternalSyntheticLambda7;-><init>()V
-HSPLjava/util/stream/IntPipeline$$ExternalSyntheticLambda8;-><init>()V
-HSPLjava/util/stream/IntPipeline$1$1;-><init>(Ljava/util/stream/IntPipeline$1;Ljava/util/stream/Sink;)V
-HSPLjava/util/stream/IntPipeline$1$1;->accept(I)V+]Ljava/util/function/IntFunction;megamorphic_types]Ljava/util/stream/Sink;megamorphic_types
-HSPLjava/util/stream/IntPipeline$1;-><init>(Ljava/util/stream/IntPipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/IntFunction;)V
-HSPLjava/util/stream/IntPipeline$1;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-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;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-HSPLjava/util/stream/IntPipeline$9;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-HSPLjava/util/stream/IntPipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V
-HSPLjava/util/stream/IntPipeline$Head;->forEach(Ljava/util/function/IntConsumer;)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;->-$$Nest$smadapt(Ljava/util/Spliterator;)Ljava/util/Spliterator$OfInt;
-HSPLjava/util/stream/IntPipeline;-><init>(Ljava/util/Spliterator;IZ)V
-HSPLjava/util/stream/IntPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
-HSPLjava/util/stream/IntPipeline;->adapt(Ljava/util/Spliterator;)Ljava/util/Spliterator$OfInt;
-HSPLjava/util/stream/IntPipeline;->adapt(Ljava/util/stream/Sink;)Ljava/util/function/IntConsumer;
-HSPLjava/util/stream/IntPipeline;->allMatch(Ljava/util/function/IntPredicate;)Z
-HSPLjava/util/stream/IntPipeline;->boxed()Ljava/util/stream/Stream;
-HSPLjava/util/stream/IntPipeline;->distinct()Ljava/util/stream/IntStream;
-HSPLjava/util/stream/IntPipeline;->filter(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;
-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;->mapToObj(Ljava/util/function/IntFunction;I)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
-HSPLjava/util/stream/IntStream;->empty()Ljava/util/stream/IntStream;
-HSPLjava/util/stream/IntStream;->of([I)Ljava/util/stream/IntStream;
-HSPLjava/util/stream/IntStream;->range(II)Ljava/util/stream/IntStream;
-HSPLjava/util/stream/IntStream;->rangeClosed(II)Ljava/util/stream/IntStream;
-HSPLjava/util/stream/LongPipeline$$ExternalSyntheticLambda4;-><init>()V
-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
-HSPLjava/util/stream/MatchOps$$ExternalSyntheticLambda0;->get()Ljava/lang/Object;
-HSPLjava/util/stream/MatchOps$$ExternalSyntheticLambda1;->get()Ljava/lang/Object;
-HSPLjava/util/stream/MatchOps$$ExternalSyntheticLambda3;->get()Ljava/lang/Object;
-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$2MatchSink;-><init>(Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/IntPredicate;)V
-HSPLjava/util/stream/MatchOps$2MatchSink;->accept(I)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;->-$$Nest$fgetshortCircuitResult(Ljava/util/stream/MatchOps$MatchKind;)Z
-HSPLjava/util/stream/MatchOps$MatchKind;->-$$Nest$fgetstopOnPredicateMatches(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$makeInt$1(Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/IntPredicate;)Ljava/util/stream/MatchOps$BooleanTerminalSink;
-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;->makeInt(Ljava/util/function/IntPredicate;Ljava/util/stream/MatchOps$MatchKind;)Ljava/util/stream/TerminalOp;
-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
-HSPLjava/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$SpinedNodeBuilder;-><clinit>()V
-HSPLjava/util/stream/Nodes$SpinedNodeBuilder;-><init>()V
-HSPLjava/util/stream/Nodes$SpinedNodeBuilder;->asArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
-HSPLjava/util/stream/Nodes$SpinedNodeBuilder;->begin(J)V
-HSPLjava/util/stream/Nodes$SpinedNodeBuilder;->build()Ljava/util/stream/Node;
-HSPLjava/util/stream/Nodes$SpinedNodeBuilder;->copyInto([Ljava/lang/Object;I)V
-HSPLjava/util/stream/Nodes$SpinedNodeBuilder;->end()V
-HSPLjava/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(J)Ljava/util/stream/Node$Builder$OfInt;
-HSPLjava/util/stream/PipelineHelper;-><init>()V
-HSPLjava/util/stream/ReduceOps$12;->makeSink()Ljava/util/stream/ReduceOps$AccumulatingSink;
-HSPLjava/util/stream/ReduceOps$12ReducingSink;-><init>(Ljava/util/function/DoubleBinaryOperator;)V
-HSPLjava/util/stream/ReduceOps$12ReducingSink;->accept(D)V
-HSPLjava/util/stream/ReduceOps$12ReducingSink;->begin(J)V
-HSPLjava/util/stream/ReduceOps$12ReducingSink;->get()Ljava/lang/Object;
-HSPLjava/util/stream/ReduceOps$12ReducingSink;->get()Ljava/util/OptionalDouble;
-HSPLjava/util/stream/ReduceOps$2;-><init>(Ljava/util/stream/StreamShape;Ljava/util/function/BinaryOperator;)V
-HSPLjava/util/stream/ReduceOps$2;->makeSink()Ljava/util/stream/ReduceOps$2ReducingSink;
-HSPLjava/util/stream/ReduceOps$2;->makeSink()Ljava/util/stream/ReduceOps$AccumulatingSink;
-HSPLjava/util/stream/ReduceOps$2ReducingSink;-><init>(Ljava/util/function/BinaryOperator;)V
-HSPLjava/util/stream/ReduceOps$2ReducingSink;->accept(Ljava/lang/Object;)V
-HSPLjava/util/stream/ReduceOps$2ReducingSink;->begin(J)V
-HSPLjava/util/stream/ReduceOps$2ReducingSink;->get()Ljava/lang/Object;
-HSPLjava/util/stream/ReduceOps$2ReducingSink;->get()Ljava/util/Optional;
-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;
-HSPLjava/util/stream/ReduceOps$3;->makeSink()Ljava/util/stream/ReduceOps$AccumulatingSink;
-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;->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;->makeSink()Ljava/util/stream/ReduceOps$AccumulatingSink;
-HSPLjava/util/stream/ReduceOps$8ReducingSink;-><init>(JLjava/util/function/LongBinaryOperator;)V
-HSPLjava/util/stream/ReduceOps$8ReducingSink;->accept(J)V
-HSPLjava/util/stream/ReduceOps$8ReducingSink;->begin(J)V
-HSPLjava/util/stream/ReduceOps$8ReducingSink;->get()Ljava/lang/Long;
-HSPLjava/util/stream/ReduceOps$8ReducingSink;->get()Ljava/lang/Object;
-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;->makeDouble(Ljava/util/function/DoubleBinaryOperator;)Ljava/util/stream/TerminalOp;
-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;
-HSPLjava/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$15$1;-><init>(Ljava/util/stream/ReferencePipeline$15;Ljava/util/stream/Sink;)V
-HSPLjava/util/stream/ReferencePipeline$15$1;->accept(Ljava/lang/Object;)V+]Ljava/util/stream/Sink;Ljava/util/stream/ReduceOps$3ReducingSink;]Ljava/util/function/Consumer;Landroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda2;
-HSPLjava/util/stream/ReferencePipeline$15;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/Consumer;)V
-HSPLjava/util/stream/ReferencePipeline$15;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-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
-HSPLjava/util/stream/ReferencePipeline$2$1;->begin(J)V
-HSPLjava/util/stream/ReferencePipeline$2;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/Predicate;)V
-HSPLjava/util/stream/ReferencePipeline$2;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-HSPLjava/util/stream/ReferencePipeline$3$1;-><init>(Ljava/util/stream/ReferencePipeline$3;Ljava/util/stream/Sink;)V
-HSPLjava/util/stream/ReferencePipeline$3$1;->accept(Ljava/lang/Object;)V
-HSPLjava/util/stream/ReferencePipeline$3;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/Function;)V
-HSPLjava/util/stream/ReferencePipeline$3;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-HSPLjava/util/stream/ReferencePipeline$4$1;-><init>(Ljava/util/stream/ReferencePipeline$4;Ljava/util/stream/Sink;)V
-HSPLjava/util/stream/ReferencePipeline$4$1;->accept(Ljava/lang/Object;)V
-HSPLjava/util/stream/ReferencePipeline$4;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/ToIntFunction;)V
-HSPLjava/util/stream/ReferencePipeline$4;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-HSPLjava/util/stream/ReferencePipeline$5$1;-><init>(Ljava/util/stream/ReferencePipeline$5;Ljava/util/stream/Sink;)V
-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$6$1;-><init>(Ljava/util/stream/ReferencePipeline$6;Ljava/util/stream/Sink;)V
-HSPLjava/util/stream/ReferencePipeline$6$1;->accept(Ljava/lang/Object;)V
-HSPLjava/util/stream/ReferencePipeline$6;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/ToDoubleFunction;)V
-HSPLjava/util/stream/ReferencePipeline$6;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-HSPLjava/util/stream/ReferencePipeline$7$1;-><init>(Ljava/util/stream/ReferencePipeline$7;Ljava/util/stream/Sink;)V
-HSPLjava/util/stream/ReferencePipeline$7$1;->accept(Ljava/lang/Object;)V
-HSPLjava/util/stream/ReferencePipeline$7$1;->begin(J)V
-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$7;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-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
-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
-HSPLjava/util/stream/ReferencePipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)Z
-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;->mapToDouble(Ljava/util/function/ToDoubleFunction;)Ljava/util/stream/DoubleStream;
-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;
-HSPLjava/util/stream/ReferencePipeline;->max(Ljava/util/Comparator;)Ljava/util/Optional;
-HSPLjava/util/stream/ReferencePipeline;->noneMatch(Ljava/util/function/Predicate;)Z
-HSPLjava/util/stream/ReferencePipeline;->peek(Ljava/util/function/Consumer;)Ljava/util/stream/Stream;
-HSPLjava/util/stream/ReferencePipeline;->reduce(Ljava/util/function/BinaryOperator;)Ljava/util/Optional;
-HSPLjava/util/stream/ReferencePipeline;->sorted()Ljava/util/stream/Stream;
-HSPLjava/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
-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;->end()V
-HSPLjava/util/stream/SortedOps$AbstractRefSortingSink;-><init>(Ljava/util/stream/Sink;Ljava/util/Comparator;)V
-HSPLjava/util/stream/SortedOps$OfRef;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/Comparator;)V
-HSPLjava/util/stream/SortedOps$OfRef;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-HSPLjava/util/stream/SortedOps$RefSortingSink$$ExternalSyntheticLambda0;-><init>(Ljava/util/stream/Sink;)V
-HSPLjava/util/stream/SortedOps$RefSortingSink$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V
-HSPLjava/util/stream/SortedOps$RefSortingSink;-><init>(Ljava/util/stream/Sink;Ljava/util/Comparator;)V
-HSPLjava/util/stream/SortedOps$RefSortingSink;->accept(Ljava/lang/Object;)V
-HSPLjava/util/stream/SortedOps$RefSortingSink;->begin(J)V
-HSPLjava/util/stream/SortedOps$RefSortingSink;->end()V
-HSPLjava/util/stream/SortedOps$SizedRefSortingSink;-><init>(Ljava/util/stream/Sink;Ljava/util/Comparator;)V
-HSPLjava/util/stream/SortedOps$SizedRefSortingSink;->accept(Ljava/lang/Object;)V
-HSPLjava/util/stream/SortedOps$SizedRefSortingSink;->begin(J)V
-HSPLjava/util/stream/SortedOps$SizedRefSortingSink;->end()V
-HSPLjava/util/stream/SortedOps;->makeRef(Ljava/util/stream/AbstractPipeline;Ljava/util/Comparator;)Ljava/util/stream/Stream;
-HSPLjava/util/stream/SpinedBuffer;-><init>()V
-HSPLjava/util/stream/SpinedBuffer;->accept(Ljava/lang/Object;)V
-HSPLjava/util/stream/SpinedBuffer;->asArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
-HSPLjava/util/stream/SpinedBuffer;->capacity()J
-HSPLjava/util/stream/SpinedBuffer;->clear()V
-HSPLjava/util/stream/SpinedBuffer;->copyInto([Ljava/lang/Object;I)V
-HSPLjava/util/stream/SpinedBuffer;->count()J
-HSPLjava/util/stream/SpinedBuffer;->ensureCapacity(J)V
-HSPLjava/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;->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/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
-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
-HSPLjava/util/stream/Streams$RangeIntSpliterator;-><init>(III)V
-HSPLjava/util/stream/Streams$RangeIntSpliterator;-><init>(IIZ)V
-HSPLjava/util/stream/Streams$RangeIntSpliterator;->characteristics()I
-HSPLjava/util/stream/Streams$RangeIntSpliterator;->estimateSize()J
-HSPLjava/util/stream/Streams$RangeIntSpliterator;->forEachRemaining(Ljava/util/function/IntConsumer;)V
-HSPLjava/util/stream/Streams$RangeIntSpliterator;->getComparator()Ljava/util/Comparator;
-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;->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/CRC32;->updateByteBuffer(IJII)I
-HSPLjava/util/zip/CRC32;->updateBytes(I[BII)I
-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$DeflaterZStreamRef;-><init>(Ljava/util/zip/Deflater;J)V
-HSPLjava/util/zip/Deflater$DeflaterZStreamRef;-><init>(Ljava/util/zip/Deflater;JLjava/util/zip/Deflater$DeflaterZStreamRef-IA;)V
-HSPLjava/util/zip/Deflater$DeflaterZStreamRef;->address()J
-HSPLjava/util/zip/Deflater$DeflaterZStreamRef;->clean()V+]Ljava/lang/ref/Cleaner$Cleanable;Ljdk/internal/ref/CleanerImpl$PhantomCleanableRef;
-HSPLjava/util/zip/Deflater$DeflaterZStreamRef;->run()V
-HSPLjava/util/zip/Deflater;->-$$Nest$smend(J)V
-HSPLjava/util/zip/Deflater;-><init>()V
-HSPLjava/util/zip/Deflater;-><init>(IZ)V
-HSPLjava/util/zip/Deflater;->deflate([BII)I
-HSPLjava/util/zip/Deflater;->deflate([BIII)I
-HSPLjava/util/zip/Deflater;->end()V
-HSPLjava/util/zip/Deflater;->ensureOpen()V
-HSPLjava/util/zip/Deflater;->finish()V
-HSPLjava/util/zip/Deflater;->finished()Z
-HSPLjava/util/zip/Deflater;->getBytesRead()J
-HSPLjava/util/zip/Deflater;->getTotalIn()I
-HSPLjava/util/zip/Deflater;->needsInput()Z
-HSPLjava/util/zip/Deflater;->reset()V
-HSPLjava/util/zip/Deflater;->setInput([BII)V
-HSPLjava/util/zip/Deflater;->setLevel(I)V
-HSPLjava/util/zip/DeflaterOutputStream;-><init>(Ljava/io/OutputStream;)V
-HSPLjava/util/zip/DeflaterOutputStream;-><init>(Ljava/io/OutputStream;Ljava/util/zip/Deflater;)V
-HSPLjava/util/zip/DeflaterOutputStream;-><init>(Ljava/io/OutputStream;Ljava/util/zip/Deflater;IZ)V
-HSPLjava/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
-HSPLjava/util/zip/GZIPInputStream;-><init>(Ljava/io/InputStream;)V
-HSPLjava/util/zip/GZIPInputStream;-><init>(Ljava/io/InputStream;I)V
-HSPLjava/util/zip/GZIPInputStream;->close()V
-HSPLjava/util/zip/GZIPInputStream;->ensureOpen()V
-HSPLjava/util/zip/GZIPInputStream;->read([BII)I
-HSPLjava/util/zip/GZIPInputStream;->readHeader(Ljava/io/InputStream;)I
-HSPLjava/util/zip/GZIPInputStream;->readTrailer()Z
-HSPLjava/util/zip/GZIPInputStream;->readUByte(Ljava/io/InputStream;)I
-HSPLjava/util/zip/GZIPInputStream;->readUInt(Ljava/io/InputStream;)J
-HSPLjava/util/zip/GZIPInputStream;->readUShort(Ljava/io/InputStream;)I
-HSPLjava/util/zip/GZIPInputStream;->skipBytes(Ljava/io/InputStream;I)V
-HSPLjava/util/zip/GZIPOutputStream;-><init>(Ljava/io/OutputStream;)V
-HSPLjava/util/zip/GZIPOutputStream;-><init>(Ljava/io/OutputStream;IZ)V
-HSPLjava/util/zip/GZIPOutputStream;->finish()V
-HSPLjava/util/zip/GZIPOutputStream;->write([BII)V
-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$InflaterZStreamRef;->address()J
-HSPLjava/util/zip/Inflater$InflaterZStreamRef;->clean()V+]Ljava/lang/ref/Cleaner$Cleanable;Ljdk/internal/ref/CleanerImpl$PhantomCleanableRef;
-HSPLjava/util/zip/Inflater$InflaterZStreamRef;->run()V
-HSPLjava/util/zip/Inflater;->-$$Nest$smend(J)V
-HSPLjava/util/zip/Inflater;-><init>()V
-HSPLjava/util/zip/Inflater;-><init>(Z)V
-HSPLjava/util/zip/Inflater;->end()V
-HSPLjava/util/zip/Inflater;->ensureOpen()V
-HSPLjava/util/zip/Inflater;->finished()Z
-HSPLjava/util/zip/Inflater;->getBytesRead()J
-HSPLjava/util/zip/Inflater;->getBytesWritten()J
-HSPLjava/util/zip/Inflater;->getRemaining()I
-HSPLjava/util/zip/Inflater;->getTotalOut()I
-HSPLjava/util/zip/Inflater;->inflate([BII)I
-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
-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;-><init>(Ljava/io/InputStream;Ljava/util/zip/Inflater;IZ)V
-HSPLjava/util/zip/InflaterInputStream;->available()I
-HSPLjava/util/zip/InflaterInputStream;->close()V
-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
-HSPLjava/util/zip/ZipCoder$UTF8ZipCoder;->checkedHash([BII)I
-HSPLjava/util/zip/ZipCoder$UTF8ZipCoder;->hasTrailingSlash([BI)Z
-HSPLjava/util/zip/ZipCoder$UTF8ZipCoder;->isUTF8()Z
-HSPLjava/util/zip/ZipCoder$UTF8ZipCoder;->toString([BII)Ljava/lang/String;
-HSPLjava/util/zip/ZipCoder;-><init>(Ljava/nio/charset/Charset;)V
-HSPLjava/util/zip/ZipCoder;->decoder()Ljava/nio/charset/CharsetDecoder;
-HSPLjava/util/zip/ZipCoder;->encoder()Ljava/nio/charset/CharsetEncoder;
-HSPLjava/util/zip/ZipCoder;->get(Ljava/nio/charset/Charset;)Ljava/util/zip/ZipCoder;
-HSPLjava/util/zip/ZipCoder;->getBytes(Ljava/lang/String;)[B
-HSPLjava/util/zip/ZipCoder;->isUTF8()Z
-HSPLjava/util/zip/ZipCoder;->toString([BI)Ljava/lang/String;
-HSPLjava/util/zip/ZipEntry;-><init>()V
-HSPLjava/util/zip/ZipEntry;-><init>(Ljava/lang/String;)V
-HSPLjava/util/zip/ZipEntry;-><init>(Ljava/util/zip/ZipEntry;)V
-HSPLjava/util/zip/ZipEntry;->getCompressedSize()J
-HSPLjava/util/zip/ZipEntry;->getCrc()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([BZZ)V
-HSPLjava/util/zip/ZipFile$CleanableResource;-><init>(Ljava/util/zip/ZipFile;Ljava/util/zip/ZipCoder;Ljava/io/File;IZ)V
-HSPLjava/util/zip/ZipFile$CleanableResource;->clean()V+]Ljava/lang/ref/Cleaner$Cleanable;Ljdk/internal/ref/CleanerImpl$PhantomCleanableRef;
-HSPLjava/util/zip/ZipFile$CleanableResource;->getInflater()Ljava/util/zip/Inflater;+]Ljava/util/Deque;Ljava/util/ArrayDeque;
-HSPLjava/util/zip/ZipFile$CleanableResource;->releaseInflater(Ljava/util/zip/Inflater;)V+]Ljava/util/Deque;Ljava/util/ArrayDeque;]Ljava/util/zip/Inflater;Ljava/util/zip/Inflater;
-HSPLjava/util/zip/ZipFile$CleanableResource;->run()V+]Ljava/util/Deque;Ljava/util/ArrayDeque;]Ljava/util/Set;Ljava/util/Collections$SetFromMap;]Ljava/util/zip/Inflater;Ljava/util/zip/Inflater;
-HSPLjava/util/zip/ZipFile$InflaterCleanupAction;->run()V+]Ljava/util/zip/ZipFile$CleanableResource;Ljava/util/zip/ZipFile$CleanableResource;
-HSPLjava/util/zip/ZipFile$Source$End;-><init>()V
-HSPLjava/util/zip/ZipFile$Source$End;-><init>(Ljava/util/zip/ZipFile$Source$End-IA;)V
-HSPLjava/util/zip/ZipFile$Source$Key;-><init>(Ljava/io/File;Ljava/nio/file/attribute/BasicFileAttributes;Ljava/util/zip/ZipCoder;Z)V
-HSPLjava/util/zip/ZipFile$Source$Key;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Lsun/nio/fs/UnixFileKey;]Ljava/nio/file/attribute/BasicFileAttributes;Lsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;
-HSPLjava/util/zip/ZipFile$Source$Key;->hashCode()I
-HSPLjava/util/zip/ZipFile$Source;->-$$Nest$fgetlocpos(Ljava/util/zip/ZipFile$Source;)J
-HSPLjava/util/zip/ZipFile$Source;->-$$Nest$mgetEntryPos(Ljava/util/zip/ZipFile$Source;Ljava/lang/String;Z)I
-HSPLjava/util/zip/ZipFile$Source;->-$$Nest$mreadAt(Ljava/util/zip/ZipFile$Source;[BIIJ)I
-HSPLjava/util/zip/ZipFile$Source;->-$$Nest$mreadFullyAt(Ljava/util/zip/ZipFile$Source;[BIIJ)I
-HSPLjava/util/zip/ZipFile$Source;-><init>(Ljava/util/zip/ZipFile$Source$Key;ZLjava/util/zip/ZipCoder;)V
-HSPLjava/util/zip/ZipFile$Source;->checkAndAddEntry(II)I
-HSPLjava/util/zip/ZipFile$Source;->close()V+]Ljava/io/RandomAccessFile;Ljava/io/RandomAccessFile;
-HSPLjava/util/zip/ZipFile$Source;->findEND()Ljava/util/zip/ZipFile$Source$End;
-HSPLjava/util/zip/ZipFile$Source;->get(Ljava/io/File;ZLjava/util/zip/ZipCoder;Z)Ljava/util/zip/ZipFile$Source;
-HSPLjava/util/zip/ZipFile$Source;->getEntryPos(Ljava/lang/String;Z)I
-HSPLjava/util/zip/ZipFile$Source;->getMetaVersion(II)I
-HSPLjava/util/zip/ZipFile$Source;->initCEN(I)V
-HSPLjava/util/zip/ZipFile$Source;->isManifestName(II)Z
-HSPLjava/util/zip/ZipFile$Source;->isMetaName([BII)Z
-HSPLjava/util/zip/ZipFile$Source;->isSignatureRelated(II)Z
-HSPLjava/util/zip/ZipFile$Source;->nextEntryPos(III)I
-HSPLjava/util/zip/ZipFile$Source;->readAt([BIIJ)I+]Ljava/io/RandomAccessFile;Ljava/io/RandomAccessFile;
-HSPLjava/util/zip/ZipFile$Source;->readFullyAt([BIIJ)I
-HSPLjava/util/zip/ZipFile$Source;->release(Ljava/util/zip/ZipFile$Source;)V+]Ljava/util/HashMap;Ljava/util/HashMap;
-HSPLjava/util/zip/ZipFile$Source;->zipCoderForPos(I)Ljava/util/zip/ZipCoder;
-HSPLjava/util/zip/ZipFile$ZipEntryIterator;->hasMoreElements()Z
-HSPLjava/util/zip/ZipFile$ZipEntryIterator;->hasNext()Z
-HSPLjava/util/zip/ZipFile$ZipEntryIterator;->next()Ljava/util/zip/ZipEntry;
-HSPLjava/util/zip/ZipFile$ZipEntryIterator;->nextElement()Ljava/lang/Object;
-HSPLjava/util/zip/ZipFile$ZipEntryIterator;->nextElement()Ljava/util/zip/ZipEntry;
-HSPLjava/util/zip/ZipFile$ZipFileInflaterInputStream;->available()I
-HSPLjava/util/zip/ZipFile$ZipFileInflaterInputStream;->close()V
-HSPLjava/util/zip/ZipFile$ZipFileInflaterInputStream;->fill()V
-HSPLjava/util/zip/ZipFile$ZipFileInputStream;-><init>(Ljava/util/zip/ZipFile;[BI)V
-HSPLjava/util/zip/ZipFile$ZipFileInputStream;->available()I
-HSPLjava/util/zip/ZipFile$ZipFileInputStream;->close()V
-HSPLjava/util/zip/ZipFile$ZipFileInputStream;->initDataOffset()J
-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;->-$$Nest$fgetres(Ljava/util/zip/ZipFile;)Ljava/util/zip/ZipFile$CleanableResource;
-HSPLjava/util/zip/ZipFile;->-$$Nest$mensureOpen(Ljava/util/zip/ZipFile;)V
-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/io/File;ILjava/nio/charset/Charset;Z)V
-HSPLjava/util/zip/ZipFile;-><init>(Ljava/io/File;IZ)V
-HSPLjava/util/zip/ZipFile;-><init>(Ljava/lang/String;)V
-HSPLjava/util/zip/ZipFile;->close()V
-HSPLjava/util/zip/ZipFile;->ensureOpen()V
-HSPLjava/util/zip/ZipFile;->ensureOpenOrZipException()V
-HSPLjava/util/zip/ZipFile;->entries()Ljava/util/Enumeration;
-HSPLjava/util/zip/ZipFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
-HSPLjava/util/zip/ZipFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
-HSPLjava/util/zip/ZipFile;->getZipEntry(Ljava/lang/String;I)Ljava/util/zip/ZipEntry;
-HSPLjava/util/zip/ZipInputStream;-><init>(Ljava/io/InputStream;)V
-HSPLjava/util/zip/ZipInputStream;-><init>(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
-HSPLjava/util/zip/ZipInputStream;->close()V
-HSPLjava/util/zip/ZipInputStream;->closeEntry()V
-HSPLjava/util/zip/ZipInputStream;->createZipEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
-HSPLjava/util/zip/ZipInputStream;->ensureOpen()V
-HSPLjava/util/zip/ZipInputStream;->getNextEntry()Ljava/util/zip/ZipEntry;
-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;
-HSPLjava/util/zip/ZipUtils;->CENFLG([BI)I
-HSPLjava/util/zip/ZipUtils;->CENLEN([BI)J
-HSPLjava/util/zip/ZipUtils;->CENOFF([BI)J
-HSPLjava/util/zip/ZipUtils;->CENSIZ([BI)J
-HSPLjava/util/zip/ZipUtils;->ENDCOM([B)I
-HSPLjava/util/zip/ZipUtils;->ENDOFF([B)J
-HSPLjava/util/zip/ZipUtils;->ENDSIZ([B)J
-HSPLjava/util/zip/ZipUtils;->ENDTOT([B)I
-HSPLjava/util/zip/ZipUtils;->GETSIG([B)J
-HSPLjava/util/zip/ZipUtils;->LG([BI)J
-HSPLjava/util/zip/ZipUtils;->LOCEXT([B)I
-HSPLjava/util/zip/ZipUtils;->LOCNAM([B)I
-HSPLjava/util/zip/ZipUtils;->LOCSIG([B)J
-HSPLjava/util/zip/ZipUtils;->SH([BI)I
-HSPLjava/util/zip/ZipUtils;->get16([BI)I
-HSPLjava/util/zip/ZipUtils;->get32([BI)J
-HSPLjava/util/zip/ZipUtils;->unixTimeToFileTime(J)Ljava/nio/file/attribute/FileTime;
-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
-HSPLjavax/crypto/Cipher$SpiAndProviderUpdater;->setCipherSpiImplAndProvider(Ljavax/crypto/CipherSpi;Ljava/security/Provider;)V
-HSPLjavax/crypto/Cipher$SpiAndProviderUpdater;->updateAndGetSpiAndProvider(Ljavax/crypto/Cipher$InitParams;Ljavax/crypto/CipherSpi;Ljava/security/Provider;)Ljavax/crypto/Cipher$CipherSpiAndProvider;
-HSPLjavax/crypto/Cipher$Transform;-><init>(Ljava/lang/String;Ljavax/crypto/Cipher$NeedToSet;)V
-HSPLjavax/crypto/Cipher;-><init>(Ljavax/crypto/CipherSpi;Ljava/security/Provider;Ljava/lang/String;[Ljava/lang/String;)V
-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()[B
-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
-HSPLjavax/crypto/Cipher;->getIV()[B
-HSPLjavax/crypto/Cipher;->getInstance(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;
-HSPLjavax/crypto/Cipher;->unwrap([BLjava/lang/String;I)Ljava/security/Key;
-HSPLjavax/crypto/Cipher;->update([BII[BI)I
-HSPLjavax/crypto/Cipher;->updateAAD([B)V
-HSPLjavax/crypto/Cipher;->updateAAD([BII)V
-HSPLjavax/crypto/Cipher;->updateProviderIfNeeded()V
-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
-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;->canUseProvider(Ljava/security/Provider;)Z
-HSPLjavax/crypto/JceSecurity;->getCodeBase(Ljava/lang/Class;)Ljava/net/URL;
-HSPLjavax/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
-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;
-HSPLjavax/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
-HSPLjavax/crypto/Mac;->doFinal()[B
-HSPLjavax/crypto/Mac;->doFinal([B)[B
-HSPLjavax/crypto/Mac;->doFinal([BI)V
-HSPLjavax/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
-HSPLjavax/crypto/Mac;->update(B)V
-HSPLjavax/crypto/Mac;->update([B)V
-HSPLjavax/crypto/Mac;->update([BII)V
-HSPLjavax/crypto/MacSpi;-><init>()V
-HSPLjavax/crypto/SecretKeyFactory;-><init>(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;
-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/PBEKeySpec;-><init>([C[BII)V
-HSPLjavax/crypto/spec/PBEKeySpec;->getIterationCount()I
-HSPLjavax/crypto/spec/PBEKeySpec;->getKeyLength()I
-HSPLjavax/crypto/spec/PBEKeySpec;->getPassword()[C
-HSPLjavax/crypto/spec/PBEKeySpec;->getSalt()[B
-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/microedition/khronos/egl/EGLSurface;-><init>()V
-HSPLjavax/net/DefaultSocketFactory;-><init>()V
-HSPLjavax/net/DefaultSocketFactory;->createSocket()Ljava/net/Socket;
-HSPLjavax/net/DefaultSocketFactory;->createSocket(Ljava/net/InetAddress;I)Ljava/net/Socket;
-HSPLjavax/net/ServerSocketFactory;-><init>()V
-HSPLjavax/net/SocketFactory;-><init>()V
-HSPLjavax/net/SocketFactory;->getDefault()Ljavax/net/SocketFactory;
-HSPLjavax/net/ssl/ExtendedSSLSession;-><init>()V
-HSPLjavax/net/ssl/HttpsURLConnection$NoPreloadHolder;-><clinit>()V
-HSPLjavax/net/ssl/HttpsURLConnection;-><init>(Ljava/net/URL;)V
-HSPLjavax/net/ssl/HttpsURLConnection;->getDefaultHostnameVerifier()Ljavax/net/ssl/HostnameVerifier;
-HSPLjavax/net/ssl/HttpsURLConnection;->getDefaultSSLSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
-HSPLjavax/net/ssl/HttpsURLConnection;->setDefaultHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)V
-HSPLjavax/net/ssl/HttpsURLConnection;->setDefaultSSLSocketFactory(Ljavax/net/ssl/SSLSocketFactory;)V
-HSPLjavax/net/ssl/KeyManagerFactory$1;-><init>()V
-HSPLjavax/net/ssl/KeyManagerFactory$1;->run()Ljava/lang/Object;
-HSPLjavax/net/ssl/KeyManagerFactory$1;->run()Ljava/lang/String;
-HSPLjavax/net/ssl/KeyManagerFactory;-><init>(Ljavax/net/ssl/KeyManagerFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V
-HSPLjavax/net/ssl/KeyManagerFactory;->getDefaultAlgorithm()Ljava/lang/String;
-HSPLjavax/net/ssl/KeyManagerFactory;->getInstance(Ljava/lang/String;)Ljavax/net/ssl/KeyManagerFactory;
-HSPLjavax/net/ssl/KeyManagerFactory;->getKeyManagers()[Ljavax/net/ssl/KeyManager;
-HSPLjavax/net/ssl/KeyManagerFactory;->init(Ljava/security/KeyStore;[C)V
-HSPLjavax/net/ssl/KeyManagerFactorySpi;-><init>()V
-HSPLjavax/net/ssl/SNIHostName;-><init>(Ljava/lang/String;)V
-HSPLjavax/net/ssl/SNIHostName;->checkHostName()V
-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
-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/security/Provider;)Ljavax/net/ssl/SSLContext;
-HSPLjavax/net/ssl/SSLContext;->getServerSocketFactory()Ljavax/net/ssl/SSLServerSocketFactory;
-HSPLjavax/net/ssl/SSLContext;->getSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
-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
-HSPLjavax/net/ssl/SSLEngine;-><init>()V
-HSPLjavax/net/ssl/SSLEngine;->getSSLParameters()Ljavax/net/ssl/SSLParameters;
-HSPLjavax/net/ssl/SSLEngine;->setSSLParameters(Ljavax/net/ssl/SSLParameters;)V
-HSPLjavax/net/ssl/SSLEngine;->wrap([Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
-HSPLjavax/net/ssl/SSLEngineResult$HandshakeStatus;->values()[Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
-HSPLjavax/net/ssl/SSLEngineResult$Status;->values()[Ljavax/net/ssl/SSLEngineResult$Status;
-HSPLjavax/net/ssl/SSLEngineResult;-><init>(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
-HSPLjavax/net/ssl/SSLEngineResult;->bytesConsumed()I
-HSPLjavax/net/ssl/SSLEngineResult;->bytesProduced()I
-HSPLjavax/net/ssl/SSLEngineResult;->getHandshakeStatus()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
-HSPLjavax/net/ssl/SSLEngineResult;->getStatus()Ljavax/net/ssl/SSLEngineResult$Status;
-HSPLjavax/net/ssl/SSLException;-><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;
-HSPLjavax/net/ssl/SSLParameters;->getCipherSuites()[Ljava/lang/String;
-HSPLjavax/net/ssl/SSLParameters;->getEndpointIdentificationAlgorithm()Ljava/lang/String;
-HSPLjavax/net/ssl/SSLParameters;->getNeedClientAuth()Z
-HSPLjavax/net/ssl/SSLParameters;->getProtocols()[Ljava/lang/String;
-HSPLjavax/net/ssl/SSLParameters;->getServerNames()Ljava/util/List;
-HSPLjavax/net/ssl/SSLParameters;->getUseCipherSuitesOrder()Z
-HSPLjavax/net/ssl/SSLParameters;->getWantClientAuth()Z
-HSPLjavax/net/ssl/SSLParameters;->setApplicationProtocols([Ljava/lang/String;)V
-HSPLjavax/net/ssl/SSLParameters;->setCipherSuites([Ljava/lang/String;)V
-HSPLjavax/net/ssl/SSLParameters;->setEndpointIdentificationAlgorithm(Ljava/lang/String;)V
-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
-HSPLjavax/net/ssl/SSLServerSocketFactory;-><init>()V
-HSPLjavax/net/ssl/SSLServerSocketFactory;->getDefault()Ljavax/net/ServerSocketFactory;
-HSPLjavax/net/ssl/SSLServerSocketFactory;->log(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
-HSPLjavax/net/ssl/SSLSocketFactory$1;-><init>(Ljava/lang/String;)V
-HSPLjavax/net/ssl/SSLSocketFactory$1;->run()Ljava/lang/Object;
-HSPLjavax/net/ssl/SSLSocketFactory$1;->run()Ljava/lang/String;
-HSPLjavax/net/ssl/SSLSocketFactory;-><init>()V
-HSPLjavax/net/ssl/SSLSocketFactory;->getDefault()Ljavax/net/SocketFactory;
-HSPLjavax/net/ssl/SSLSocketFactory;->getSecurityProperty(Ljava/lang/String;)Ljava/lang/String;
-HSPLjavax/net/ssl/SSLSocketFactory;->log(Ljava/lang/String;)V
-HSPLjavax/net/ssl/TrustManagerFactory$1;-><init>()V
-HSPLjavax/net/ssl/TrustManagerFactory$1;->run()Ljava/lang/Object;
-HSPLjavax/net/ssl/TrustManagerFactory$1;->run()Ljava/lang/String;
-HSPLjavax/net/ssl/TrustManagerFactory;-><init>(Ljavax/net/ssl/TrustManagerFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V
-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
-HSPLjavax/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
-HSPLjavax/security/auth/x500/X500Principal;-><init>(Ljava/lang/String;Ljava/util/Map;)V
-HSPLjavax/security/auth/x500/X500Principal;-><init>(Lsun/security/x509/X500Name;)V
-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
-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/SAXParserFactory;-><init>()V
-HSPLjavax/xml/parsers/SAXParserFactory;->newInstance()Ljavax/xml/parsers/SAXParserFactory;
-HSPLjdk/internal/access/SharedSecrets;->getJavaUtilCollectionAccess()Ljdk/internal/access/JavaUtilCollectionAccess;
-HSPLjdk/internal/access/SharedSecrets;->setJavaUtilCollectionAccess(Ljdk/internal/access/JavaUtilCollectionAccess;)V
-HSPLjdk/internal/math/FDBigInteger;-><init>(J[CII)V
-HSPLjdk/internal/math/FDBigInteger;-><init>([II)V
-HSPLjdk/internal/math/FDBigInteger;->add(Ljdk/internal/math/FDBigInteger;)Ljdk/internal/math/FDBigInteger;
-HSPLjdk/internal/math/FDBigInteger;->addAndCmp(Ljdk/internal/math/FDBigInteger;Ljdk/internal/math/FDBigInteger;)I
-HSPLjdk/internal/math/FDBigInteger;->big5pow(I)Ljdk/internal/math/FDBigInteger;
-HSPLjdk/internal/math/FDBigInteger;->checkZeroTail([II)I
-HSPLjdk/internal/math/FDBigInteger;->cmp(Ljdk/internal/math/FDBigInteger;)I
-HSPLjdk/internal/math/FDBigInteger;->cmpPow52(II)I
-HSPLjdk/internal/math/FDBigInteger;->getNormalizationBias()I
-HSPLjdk/internal/math/FDBigInteger;->leftInplaceSub(Ljdk/internal/math/FDBigInteger;)Ljdk/internal/math/FDBigInteger;
-HSPLjdk/internal/math/FDBigInteger;->leftShift(I)Ljdk/internal/math/FDBigInteger;
-HSPLjdk/internal/math/FDBigInteger;->leftShift([II[IIII)V
-HSPLjdk/internal/math/FDBigInteger;->makeImmutable()V
-HSPLjdk/internal/math/FDBigInteger;->mult([IIII[I)V
-HSPLjdk/internal/math/FDBigInteger;->mult([III[I)V
-HSPLjdk/internal/math/FDBigInteger;->multAddMe(II)V
-HSPLjdk/internal/math/FDBigInteger;->multAndCarryBy10([II[I)I
-HSPLjdk/internal/math/FDBigInteger;->multBy10()Ljdk/internal/math/FDBigInteger;
-HSPLjdk/internal/math/FDBigInteger;->multByPow52(II)Ljdk/internal/math/FDBigInteger;
-HSPLjdk/internal/math/FDBigInteger;->multDiffMe(JLjdk/internal/math/FDBigInteger;)J
-HSPLjdk/internal/math/FDBigInteger;->quoRemIteration(Ljdk/internal/math/FDBigInteger;)I
-HSPLjdk/internal/math/FDBigInteger;->rightInplaceSub(Ljdk/internal/math/FDBigInteger;)Ljdk/internal/math/FDBigInteger;
-HSPLjdk/internal/math/FDBigInteger;->size()I
-HSPLjdk/internal/math/FDBigInteger;->trimLeadingZeros()V
-HSPLjdk/internal/math/FDBigInteger;->valueOfMulPow52(JII)Ljdk/internal/math/FDBigInteger;
-HSPLjdk/internal/math/FDBigInteger;->valueOfPow2(I)Ljdk/internal/math/FDBigInteger;
-HSPLjdk/internal/math/FDBigInteger;->valueOfPow52(II)Ljdk/internal/math/FDBigInteger;
-HSPLjdk/internal/math/FloatingDecimal$1;->initialValue()Ljava/lang/Object;
-HSPLjdk/internal/math/FloatingDecimal$1;->initialValue()Ljdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;
-HSPLjdk/internal/math/FloatingDecimal$ASCIIToBinaryBuffer;-><init>(ZI[CI)V
-HSPLjdk/internal/math/FloatingDecimal$ASCIIToBinaryBuffer;->doubleValue()D
-HSPLjdk/internal/math/FloatingDecimal$ASCIIToBinaryBuffer;->floatValue()F
-HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->-$$Nest$mdtoa(Ljdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;IJIZ)V
-HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->-$$Nest$msetSign(Ljdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;Z)V
-HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;-><init>()V
-HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->appendTo(Ljava/lang/Appendable;)V
-HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->developLongDigits(IJI)V
-HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->dtoa(IJIZ)V
-HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->estimateDecExp(JI)I
-HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->getChars([C)I
-HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->getDecimalExponent()I
-HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->getDigits([C)I
-HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->isExceptional()Z
-HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->isNegative()Z
-HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->roundup()V
-HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->setSign(Z)V
-HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->toJavaFormatString()Ljava/lang/String;
-HSPLjdk/internal/math/FloatingDecimal$PreparedASCIIToBinaryBuffer;->doubleValue()D
-HSPLjdk/internal/math/FloatingDecimal$PreparedASCIIToBinaryBuffer;->floatValue()F
-HSPLjdk/internal/math/FloatingDecimal;->appendTo(FLjava/lang/Appendable;)V
-HSPLjdk/internal/math/FloatingDecimal;->getBinaryToASCIIBuffer()Ljdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;
-HSPLjdk/internal/math/FloatingDecimal;->getBinaryToASCIIConverter(D)Ljdk/internal/math/FloatingDecimal$BinaryToASCIIConverter;
-HSPLjdk/internal/math/FloatingDecimal;->getBinaryToASCIIConverter(DZ)Ljdk/internal/math/FloatingDecimal$BinaryToASCIIConverter;
-HSPLjdk/internal/math/FloatingDecimal;->getBinaryToASCIIConverter(F)Ljdk/internal/math/FloatingDecimal$BinaryToASCIIConverter;
-HSPLjdk/internal/math/FloatingDecimal;->parseDouble(Ljava/lang/String;)D
-HSPLjdk/internal/math/FloatingDecimal;->parseFloat(Ljava/lang/String;)F
-HSPLjdk/internal/math/FloatingDecimal;->readJavaFormatString(Ljava/lang/String;)Ljdk/internal/math/FloatingDecimal$ASCIIToBinaryConverter;
-HSPLjdk/internal/math/FloatingDecimal;->toJavaFormatString(D)Ljava/lang/String;
-HSPLjdk/internal/math/FloatingDecimal;->toJavaFormatString(F)Ljava/lang/String;
-HSPLjdk/internal/math/FormattedFloatingDecimal$1;-><init>()V
-HSPLjdk/internal/math/FormattedFloatingDecimal$1;->initialValue()Ljava/lang/Object;
-HSPLjdk/internal/math/FormattedFloatingDecimal$Form;-><clinit>()V
-HSPLjdk/internal/math/FormattedFloatingDecimal$Form;-><init>(Ljava/lang/String;I)V
-HSPLjdk/internal/math/FormattedFloatingDecimal$Form;->values()[Ljdk/internal/math/FormattedFloatingDecimal$Form;
-HSPLjdk/internal/math/FormattedFloatingDecimal;-><clinit>()V
-HSPLjdk/internal/math/FormattedFloatingDecimal;-><init>(ILjdk/internal/math/FormattedFloatingDecimal$Form;Ljdk/internal/math/FloatingDecimal$BinaryToASCIIConverter;)V
-HSPLjdk/internal/math/FormattedFloatingDecimal;->applyPrecision(I[CII)I
-HSPLjdk/internal/math/FormattedFloatingDecimal;->create(ZI)[C
-HSPLjdk/internal/math/FormattedFloatingDecimal;->fillDecimal(I[CIIZ)V
-HSPLjdk/internal/math/FormattedFloatingDecimal;->getBuffer()[C
-HSPLjdk/internal/math/FormattedFloatingDecimal;->getExponent()[C
-HSPLjdk/internal/math/FormattedFloatingDecimal;->getExponentRounded()I
-HSPLjdk/internal/math/FormattedFloatingDecimal;->getMantissa()[C
-HSPLjdk/internal/math/FormattedFloatingDecimal;->valueOf(DILjdk/internal/math/FormattedFloatingDecimal$Form;)Ljdk/internal/math/FormattedFloatingDecimal;
-HSPLjdk/internal/misc/Unsafe;->compareAndSetObject(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
-HSPLjdk/internal/misc/Unsafe;->getAndAddInt(Ljava/lang/Object;JI)I
-HSPLjdk/internal/misc/Unsafe;->getAndAddLong(Ljava/lang/Object;JJ)J
-HSPLjdk/internal/misc/Unsafe;->getAndBitwiseAndInt(Ljava/lang/Object;JI)I
-HSPLjdk/internal/misc/Unsafe;->getAndSetInt(Ljava/lang/Object;JI)I
-HSPLjdk/internal/misc/Unsafe;->getAndSetLong(Ljava/lang/Object;JJ)J
-HSPLjdk/internal/misc/Unsafe;->getAndSetObject(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;
-HSPLjdk/internal/misc/Unsafe;->getAndSetReference(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;
-HSPLjdk/internal/misc/Unsafe;->getIntAcquire(Ljava/lang/Object;J)I
-HSPLjdk/internal/misc/Unsafe;->getIntUnaligned(Ljava/lang/Object;J)I
-HSPLjdk/internal/misc/Unsafe;->getLongAcquire(Ljava/lang/Object;J)J
-HSPLjdk/internal/misc/Unsafe;->getLongUnaligned(Ljava/lang/Object;J)J
-HSPLjdk/internal/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object;
-HSPLjdk/internal/misc/Unsafe;->getObjectAcquire(Ljava/lang/Object;J)Ljava/lang/Object;
-HSPLjdk/internal/misc/Unsafe;->getObjectVolatile(Ljava/lang/Object;J)Ljava/lang/Object;
-HSPLjdk/internal/misc/Unsafe;->getReferenceAcquire(Ljava/lang/Object;J)Ljava/lang/Object;
-HSPLjdk/internal/misc/Unsafe;->getUnsafe()Ljdk/internal/misc/Unsafe;
-HSPLjdk/internal/misc/Unsafe;->makeLong(II)J
-HSPLjdk/internal/misc/Unsafe;->objectFieldOffset(Ljava/lang/Class;Ljava/lang/String;)J
-HSPLjdk/internal/misc/Unsafe;->objectFieldOffset(Ljava/lang/reflect/Field;)J
-HSPLjdk/internal/misc/Unsafe;->pickPos(II)I
-HSPLjdk/internal/misc/Unsafe;->putIntOpaque(Ljava/lang/Object;JI)V
-HSPLjdk/internal/misc/Unsafe;->putIntRelease(Ljava/lang/Object;JI)V
-HSPLjdk/internal/misc/Unsafe;->putLongRelease(Ljava/lang/Object;JJ)V
-HSPLjdk/internal/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V
-HSPLjdk/internal/misc/Unsafe;->putObjectRelease(Ljava/lang/Object;JLjava/lang/Object;)V
-HSPLjdk/internal/misc/Unsafe;->putObjectVolatile(Ljava/lang/Object;JLjava/lang/Object;)V
-HSPLjdk/internal/misc/Unsafe;->putReferenceOpaque(Ljava/lang/Object;JLjava/lang/Object;)V
-HSPLjdk/internal/misc/Unsafe;->putReferenceRelease(Ljava/lang/Object;JLjava/lang/Object;)V
-HSPLjdk/internal/misc/Unsafe;->toUnsignedLong(I)J
-HSPLjdk/internal/misc/Unsafe;->weakCompareAndSetInt(Ljava/lang/Object;JII)Z
-HSPLjdk/internal/misc/Unsafe;->weakCompareAndSetReference(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
-HSPLjdk/internal/misc/VM;->getSavedProperty(Ljava/lang/String;)Ljava/lang/String;
-HSPLjdk/internal/ref/CleanerFactory;->cleaner()Ljava/lang/ref/Cleaner;
-HSPLjdk/internal/ref/CleanerImpl$PhantomCleanableRef;-><init>(Ljava/lang/Object;Ljava/lang/ref/Cleaner;Ljava/lang/Runnable;)V
-HSPLjdk/internal/ref/CleanerImpl$PhantomCleanableRef;->performCleanup()V+]Ljava/lang/Runnable;megamorphic_types
-HSPLjdk/internal/ref/CleanerImpl;->getCleanerImpl(Ljava/lang/ref/Cleaner;)Ljdk/internal/ref/CleanerImpl;
-HSPLjdk/internal/ref/PhantomCleanable;-><init>(Ljava/lang/Object;Ljava/lang/ref/Cleaner;)V
-HSPLjdk/internal/ref/PhantomCleanable;->clean()V+]Ljdk/internal/ref/PhantomCleanable;Ljdk/internal/ref/CleanerImpl$PhantomCleanableRef;
-HSPLjdk/internal/ref/PhantomCleanable;->insert()V
-HSPLjdk/internal/ref/PhantomCleanable;->remove()Z
-HSPLjdk/internal/reflect/Reflection;->getCallerClass()Ljava/lang/Class;
-HSPLjdk/internal/util/ArraysSupport;->mismatch([B[BI)I
-HSPLjdk/internal/util/ArraysSupport;->mismatch([FI[FII)I
-HSPLjdk/internal/util/ArraysSupport;->mismatch([I[II)I
-HSPLjdk/internal/util/ArraysSupport;->mismatch([J[JI)I
-HSPLjdk/internal/util/ArraysSupport;->mismatch([Z[ZI)I
-HSPLjdk/internal/util/ArraysSupport;->newLength(III)I
-HSPLjdk/internal/util/ArraysSupport;->vectorizedMismatch(Ljava/lang/Object;JLjava/lang/Object;JII)I
-HSPLjdk/internal/util/Preconditions;->checkFromIndexSize(IIILjava/util/function/BiFunction;)I
-HSPLjdk/internal/util/Preconditions;->checkIndex(IILjava/util/function/BiFunction;)I
-HSPLjdk/internal/util/random/RandomSupport;-><clinit>()V
-HSPLjdk/internal/util/random/RandomSupport;->mixMurmur64(J)J
-HSPLjdk/internal/util/random/RandomSupport;->secureRandomSeedRequested()Z
-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;->addMimeMapping(Ljava/lang/String;Ljava/util/List;)Llibcore/content/type/MimeMap$Builder;
-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$MemoizingSupplier;->get()Ljava/lang/Object;
-HSPLlibcore/content/type/MimeMap;-><init>(Ljava/util/Map;Ljava/util/Map;)V
-HSPLlibcore/content/type/MimeMap;->checkValidExtension(Ljava/lang/String;)V
-HSPLlibcore/content/type/MimeMap;->checkValidMimeType(Ljava/lang/String;)V
-HSPLlibcore/content/type/MimeMap;->getDefault()Llibcore/content/type/MimeMap;
-HSPLlibcore/content/type/MimeMap;->guessMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String;
-HSPLlibcore/content/type/MimeMap;->isValidMimeTypeOrExtension(Ljava/lang/String;)Z
-HSPLlibcore/content/type/MimeMap;->toLowerCase(Ljava/lang/String;)Ljava/lang/String;
-HSPLlibcore/icu/CollationKeyICU;-><init>(Ljava/lang/String;Landroid/icu/text/CollationKey;)V
-HSPLlibcore/icu/CollationKeyICU;->toByteArray()[B
-HSPLlibcore/icu/DecimalFormatData;-><init>(Ljava/util/Locale;)V
-HSPLlibcore/icu/DecimalFormatData;->getCurrencyPattern()Ljava/lang/String;
-HSPLlibcore/icu/DecimalFormatData;->getDecimalSeparator()C
-HSPLlibcore/icu/DecimalFormatData;->getExponentSeparator()Ljava/lang/String;
-HSPLlibcore/icu/DecimalFormatData;->getGroupingSeparator()C
-HSPLlibcore/icu/DecimalFormatData;->getInfinity()Ljava/lang/String;
-HSPLlibcore/icu/DecimalFormatData;->getInstance(Ljava/util/Locale;)Llibcore/icu/DecimalFormatData;
-HSPLlibcore/icu/DecimalFormatData;->getMinusSign()Ljava/lang/String;
-HSPLlibcore/icu/DecimalFormatData;->getMonetaryDecimalSeparator()Ljava/lang/String;
-HSPLlibcore/icu/DecimalFormatData;->getMonetaryGroupSeparator()Ljava/lang/String;
-HSPLlibcore/icu/DecimalFormatData;->getNaN()Ljava/lang/String;
-HSPLlibcore/icu/DecimalFormatData;->getNumberPattern()Ljava/lang/String;
-HSPLlibcore/icu/DecimalFormatData;->getPatternSeparator()C
-HSPLlibcore/icu/DecimalFormatData;->getPerMill()Ljava/lang/String;
-HSPLlibcore/icu/DecimalFormatData;->getPercent()Ljava/lang/String;
-HSPLlibcore/icu/DecimalFormatData;->getPercentPattern()Ljava/lang/String;
-HSPLlibcore/icu/DecimalFormatData;->getZeroDigit()C
-HSPLlibcore/icu/DecimalFormatData;->loadPatternSeparator(Ljava/util/Locale;)C
-HSPLlibcore/icu/ICU;->getAvailableLocales()[Ljava/util/Locale;
-HSPLlibcore/icu/ICU;->getBestDateTimePattern(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
-HSPLlibcore/icu/ICU;->getCurrencyCode(Ljava/lang/String;)Ljava/lang/String;
-HSPLlibcore/icu/ICU;->getExtendedCalendar(Ljava/util/Locale;Ljava/lang/String;)Lcom/android/icu/util/ExtendedCalendar;
-HSPLlibcore/icu/ICU;->getISOLanguages()[Ljava/lang/String;
-HSPLlibcore/icu/ICU;->isIsoCountry(Ljava/lang/String;)Z
-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/ICU;->setDefaultLocale(Ljava/lang/String;)V
-HSPLlibcore/icu/ICU;->transformIcuDateTimePattern(Ljava/lang/String;)Ljava/lang/String;
-HSPLlibcore/icu/ICU;->transformIcuDateTimePattern_forJavaText(Ljava/lang/String;)Ljava/lang/String;
-HSPLlibcore/icu/LocaleData;->get(Ljava/util/Locale;)Llibcore/icu/LocaleData;
-HSPLlibcore/icu/LocaleData;->getCompatibleLocaleForBug159514442(Ljava/util/Locale;)Ljava/util/Locale;
-HSPLlibcore/icu/LocaleData;->initLocaleData(Ljava/util/Locale;)Llibcore/icu/LocaleData;
-HSPLlibcore/icu/LocaleData;->initializeCalendarData(Ljava/util/Locale;)V
-HSPLlibcore/icu/LocaleData;->initializeDateFormatData(Ljava/util/Locale;)V
-HSPLlibcore/icu/LocaleData;->mapInvalidAndNullLocales(Ljava/util/Locale;)Ljava/util/Locale;
-HSPLlibcore/icu/SimpleDateFormatData;->getDateFormat(I)Ljava/lang/String;
-HSPLlibcore/icu/SimpleDateFormatData;->getInstance(Ljava/util/Locale;)Llibcore/icu/SimpleDateFormatData;
-HSPLlibcore/icu/SimpleDateFormatData;->getTimeFormat(I)Ljava/lang/String;
-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;->close(Ljava/io/FileDescriptor;)V
-HSPLlibcore/io/BlockGuardOs;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
-HSPLlibcore/io/BlockGuardOs;->fdatasync(Ljava/io/FileDescriptor;)V
-HSPLlibcore/io/BlockGuardOs;->fstat(Ljava/io/FileDescriptor;)Landroid/system/StructStat;
-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;->isNonBlockingFile(Ljava/io/FileDescriptor;)Z
-HSPLlibcore/io/BlockGuardOs;->isUdpSocket(Ljava/io/FileDescriptor;)Z
-HSPLlibcore/io/BlockGuardOs;->isUnixDomain(I)Z
-HSPLlibcore/io/BlockGuardOs;->isUnixSocket(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
-HSPLlibcore/io/BlockGuardOs;->pread(Ljava/io/FileDescriptor;[BIIJ)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
-HSPLlibcore/io/BlockGuardOs;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/InetAddress;I)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;->tagSocket(Ljava/io/FileDescriptor;)Ljava/io/FileDescriptor;
-HSPLlibcore/io/BlockGuardOs;->write(Ljava/io/FileDescriptor;[BII)I
-HSPLlibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection$1;-><init>(Llibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection;Ljava/io/InputStream;)V
-HSPLlibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection$1;->close()V
-HSPLlibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection;-><init>(Llibcore/io/ClassPathURLStreamHandler;Ljava/net/URL;)V
-HSPLlibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection;->connect()V
-HSPLlibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection;->getInputStream()Ljava/io/InputStream;
-HSPLlibcore/io/ClassPathURLStreamHandler;-><init>(Ljava/lang/String;)V
-HSPLlibcore/io/ClassPathURLStreamHandler;-><init>(Ljava/lang/String;Z)V
-HSPLlibcore/io/ClassPathURLStreamHandler;->getEntryUrlOrNull(Ljava/lang/String;)Ljava/net/URL;
-HSPLlibcore/io/ClassPathURLStreamHandler;->isEntryStored(Ljava/lang/String;)Z
-HSPLlibcore/io/ClassPathURLStreamHandler;->openConnection(Ljava/net/URL;)Ljava/net/URLConnection;
-HSPLlibcore/io/ForwardingOs;-><init>(Llibcore/io/Os;)V
-HSPLlibcore/io/ForwardingOs;->accept(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)Ljava/io/FileDescriptor;
-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;->close(Ljava/io/FileDescriptor;)V
-HSPLlibcore/io/ForwardingOs;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
-HSPLlibcore/io/ForwardingOs;->dup2(Ljava/io/FileDescriptor;I)Ljava/io/FileDescriptor;
-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;
-HSPLlibcore/io/ForwardingOs;->ftruncate(Ljava/io/FileDescriptor;J)V
-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;->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;I)I
-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;->mmap(JJIILjava/io/FileDescriptor;J)J
-HSPLlibcore/io/ForwardingOs;->open(Ljava/lang/String;II)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;->pread(Ljava/io/FileDescriptor;[BIIJ)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
-HSPLlibcore/io/ForwardingOs;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/InetAddress;I)I
-HSPLlibcore/io/ForwardingOs;->setenv(Ljava/lang/String;Ljava/lang/String;Z)V
-HSPLlibcore/io/ForwardingOs;->setpgid(II)V
-HSPLlibcore/io/ForwardingOs;->setregid(II)V
-HSPLlibcore/io/ForwardingOs;->setreuid(II)V
-HSPLlibcore/io/ForwardingOs;->setsockoptInt(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;
-HSPLlibcore/io/ForwardingOs;->socketpair(IIILjava/io/FileDescriptor;Ljava/io/FileDescriptor;)V
-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;
-HSPLlibcore/io/ForwardingOs;->sysconf(I)J
-HSPLlibcore/io/ForwardingOs;->write(Ljava/io/FileDescriptor;[BII)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;II)V
-HSPLlibcore/io/IoBridge;->connectErrno(Ljava/io/FileDescriptor;Ljava/net/InetAddress;II)V
-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
-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;
-HSPLlibcore/io/IoBridge;->write(Ljava/io/FileDescriptor;[BII)V
-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;->acquireRawFd(Ljava/io/FileDescriptor;)I
-HSPLlibcore/io/IoUtils;->canOpenReadOnly(Ljava/lang/String;)Z
-HSPLlibcore/io/IoUtils;->close(Ljava/io/FileDescriptor;)V
-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;->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;
-HSPLlibcore/io/Linux;->pread(Ljava/io/FileDescriptor;[BIIJ)I
-HSPLlibcore/io/Linux;->read(Ljava/io/FileDescriptor;[BII)I
-HSPLlibcore/io/Linux;->recvfrom(Ljava/io/FileDescriptor;[BIIILjava/net/InetSocketAddress;)I
-HSPLlibcore/io/Linux;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/InetAddress;I)I
-HSPLlibcore/io/Linux;->write(Ljava/io/FileDescriptor;[BII)I
-HSPLlibcore/io/Memory;->peekInt(JZ)I
-HSPLlibcore/io/Memory;->peekInt([BILjava/nio/ByteOrder;)I
-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/Memory;->pokeShort(JSZ)V
-HSPLlibcore/io/Os;->compareAndSetDefault(Llibcore/io/Os;Llibcore/io/Os;)Z
-HSPLlibcore/io/Os;->getDefault()Llibcore/io/Os;
-HSPLlibcore/net/InetAddressUtils;->parseNumericAddress(Ljava/lang/String;)Ljava/net/InetAddress;
-HSPLlibcore/net/InetAddressUtils;->parseNumericAddressNoThrow(Ljava/lang/String;)Ljava/net/InetAddress;
-HSPLlibcore/net/InetAddressUtils;->parseNumericAddressNoThrowStripOptionalBrackets(Ljava/lang/String;)Ljava/net/InetAddress;
-HSPLlibcore/net/NetworkSecurityPolicy;-><init>()V
-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
-HSPLlibcore/net/event/NetworkEventDispatcher;->dispatchNetworkConfigurationChange()V
-HSPLlibcore/net/event/NetworkEventDispatcher;->getInstance()Llibcore/net/event/NetworkEventDispatcher;
-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/net/http/HttpURLConnectionFactory;-><init>()V
-HSPLlibcore/net/http/HttpURLConnectionFactory;->createInstance()Llibcore/net/http/HttpURLConnectionFactory;
-HSPLlibcore/net/http/HttpURLConnectionFactory;->openConnection(Ljava/net/URL;Ljavax/net/SocketFactory;Ljava/net/Proxy;)Ljava/net/URLConnection;
-HSPLlibcore/net/http/HttpURLConnectionFactory;->setDns(Llibcore/net/http/Dns;)V
-HSPLlibcore/net/http/HttpURLConnectionFactory;->setNewConnectionPool(IJLjava/util/concurrent/TimeUnit;)V
-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;->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;->getGenericComponentType()Ljava/lang/reflect/Type;
-HSPLlibcore/reflect/GenericSignatureParser;-><init>(Ljava/lang/ClassLoader;)V
-HSPLlibcore/reflect/GenericSignatureParser;->expect(C)V
-HSPLlibcore/reflect/GenericSignatureParser;->isStopSymbol(C)Z
-HSPLlibcore/reflect/GenericSignatureParser;->parseClassSignature()V
-HSPLlibcore/reflect/GenericSignatureParser;->parseClassTypeSignature()Ljava/lang/reflect/Type;
-HSPLlibcore/reflect/GenericSignatureParser;->parseFieldTypeSignature()Ljava/lang/reflect/Type;
-HSPLlibcore/reflect/GenericSignatureParser;->parseForClass(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;)V
-HSPLlibcore/reflect/GenericSignatureParser;->parseForConstructor(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;[Ljava/lang/Class;)V
-HSPLlibcore/reflect/GenericSignatureParser;->parseForField(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;)V
-HSPLlibcore/reflect/GenericSignatureParser;->parseForMethod(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;[Ljava/lang/Class;)V
-HSPLlibcore/reflect/GenericSignatureParser;->parseFormalTypeParameter()Llibcore/reflect/TypeVariableImpl;
-HSPLlibcore/reflect/GenericSignatureParser;->parseMethodTypeSignature([Ljava/lang/Class;)V
-HSPLlibcore/reflect/GenericSignatureParser;->parseOptFormalTypeParameters()V
-HSPLlibcore/reflect/GenericSignatureParser;->parseOptTypeArguments()Llibcore/reflect/ListOfTypes;
-HSPLlibcore/reflect/GenericSignatureParser;->parseReturnType()Ljava/lang/reflect/Type;
-HSPLlibcore/reflect/GenericSignatureParser;->parseTypeArgument()Ljava/lang/reflect/Type;
-HSPLlibcore/reflect/GenericSignatureParser;->parseTypeSignature()Ljava/lang/reflect/Type;
-HSPLlibcore/reflect/GenericSignatureParser;->parseTypeVariableSignature()Llibcore/reflect/TypeVariableImpl;
-HSPLlibcore/reflect/GenericSignatureParser;->scanIdentifier()V
-HSPLlibcore/reflect/GenericSignatureParser;->scanSymbol()V
-HSPLlibcore/reflect/GenericSignatureParser;->setInput(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;)V
-HSPLlibcore/reflect/ListOfTypes;-><init>(I)V
-HSPLlibcore/reflect/ListOfTypes;-><init>([Ljava/lang/reflect/Type;)V
-HSPLlibcore/reflect/ListOfTypes;->add(Ljava/lang/reflect/Type;)V
-HSPLlibcore/reflect/ListOfTypes;->getResolvedTypes()[Ljava/lang/reflect/Type;
-HSPLlibcore/reflect/ListOfTypes;->length()I
-HSPLlibcore/reflect/ListOfTypes;->resolveTypes(Ljava/util/List;)[Ljava/lang/reflect/Type;
-HSPLlibcore/reflect/ListOfVariables;-><init>()V
-HSPLlibcore/reflect/ListOfVariables;->add(Ljava/lang/reflect/TypeVariable;)V
-HSPLlibcore/reflect/ListOfVariables;->getArray()[Ljava/lang/reflect/TypeVariable;
-HSPLlibcore/reflect/ParameterizedTypeImpl;-><init>(Llibcore/reflect/ParameterizedTypeImpl;Ljava/lang/String;Llibcore/reflect/ListOfTypes;Ljava/lang/ClassLoader;)V
-HSPLlibcore/reflect/ParameterizedTypeImpl;->equals(Ljava/lang/Object;)Z
-HSPLlibcore/reflect/ParameterizedTypeImpl;->getActualTypeArguments()[Ljava/lang/reflect/Type;
-HSPLlibcore/reflect/ParameterizedTypeImpl;->getOwnerType()Ljava/lang/reflect/Type;
-HSPLlibcore/reflect/ParameterizedTypeImpl;->getRawType()Ljava/lang/Class;
-HSPLlibcore/reflect/ParameterizedTypeImpl;->getRawType()Ljava/lang/reflect/Type;
-HSPLlibcore/reflect/ParameterizedTypeImpl;->getResolvedType()Ljava/lang/reflect/Type;
-HSPLlibcore/reflect/TypeVariableImpl;-><init>(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;)V
-HSPLlibcore/reflect/TypeVariableImpl;-><init>(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;Llibcore/reflect/ListOfTypes;)V
-HSPLlibcore/reflect/TypeVariableImpl;->equals(Ljava/lang/Object;)Z
-HSPLlibcore/reflect/TypeVariableImpl;->findFormalVar(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;)Ljava/lang/reflect/TypeVariable;
-HSPLlibcore/reflect/TypeVariableImpl;->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;->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/util/ArrayUtils;->throwsIfOutOfBounds(III)V
-HSPLlibcore/util/BasicLruCache;->create(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLlibcore/util/BasicLruCache;->entryEvicted(Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLlibcore/util/BasicLruCache;->evictAll()V
-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
-HSPLlibcore/util/FP16;->ceil(S)S
-HSPLlibcore/util/FP16;->compare(SS)I
-HSPLlibcore/util/FP16;->floor(S)S
-HSPLlibcore/util/FP16;->greater(SS)Z
-HSPLlibcore/util/FP16;->greaterEquals(SS)Z
-HSPLlibcore/util/FP16;->less(SS)Z
-HSPLlibcore/util/FP16;->lessEquals(SS)Z
-HSPLlibcore/util/FP16;->max(SS)S
-HSPLlibcore/util/FP16;->min(SS)S
-HSPLlibcore/util/FP16;->rint(S)S
-HSPLlibcore/util/FP16;->toFloat(S)F
-HSPLlibcore/util/FP16;->toHalf(F)S
-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
-HSPLlibcore/util/NativeAllocationRegistry;->-$$Nest$fgetfreeFunction(Llibcore/util/NativeAllocationRegistry;)J
-HSPLlibcore/util/NativeAllocationRegistry;->-$$Nest$fgetsize(Llibcore/util/NativeAllocationRegistry;)J
-HSPLlibcore/util/NativeAllocationRegistry;->-$$Nest$smregisterNativeFree(J)V
-HSPLlibcore/util/NativeAllocationRegistry;-><init>(Ljava/lang/ClassLoader;JJZ)V
-HSPLlibcore/util/NativeAllocationRegistry;->createMalloced(Ljava/lang/ClassLoader;J)Llibcore/util/NativeAllocationRegistry;
-HSPLlibcore/util/NativeAllocationRegistry;->createMalloced(Ljava/lang/ClassLoader;JJ)Llibcore/util/NativeAllocationRegistry;
-HSPLlibcore/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
-HSPLlibcore/util/SneakyThrow;->sneakyThrow(Ljava/lang/Throwable;)V
-HSPLlibcore/util/SneakyThrow;->sneakyThrow_(Ljava/lang/Throwable;)V
-HSPLlibcore/util/XmlObjectFactory;->newXmlPullParser()Lorg/xmlpull/v1/XmlPullParser;
-HSPLlibcore/util/ZoneInfo;-><init>(Lcom/android/i18n/timezone/ZoneInfoData;IZ)V
-HSPLlibcore/util/ZoneInfo;->clone()Ljava/lang/Object;
-HSPLlibcore/util/ZoneInfo;->createZoneInfo(Lcom/android/i18n/timezone/ZoneInfoData;)Llibcore/util/ZoneInfo;
-HSPLlibcore/util/ZoneInfo;->createZoneInfo(Lcom/android/i18n/timezone/ZoneInfoData;J)Llibcore/util/ZoneInfo;
-HSPLlibcore/util/ZoneInfo;->getDSTSavings()I
-HSPLlibcore/util/ZoneInfo;->getOffset(J)I
-HSPLlibcore/util/ZoneInfo;->getOffsetsByUtcTime(J[I)I
-HSPLlibcore/util/ZoneInfo;->getRawOffset()I
-HSPLlibcore/util/ZoneInfo;->hasSameRules(Ljava/util/TimeZone;)Z
-HSPLlibcore/util/ZoneInfo;->hashCode()I
-HSPLlibcore/util/ZoneInfo;->inDaylightTime(Ljava/util/Date;)Z
-HSPLorg/apache/harmony/dalvik/ddmc/Chunk;-><init>(ILjava/nio/ByteBuffer;)V
-HSPLorg/apache/harmony/dalvik/ddmc/Chunk;-><init>(I[BII)V
-HSPLorg/apache/harmony/dalvik/ddmc/ChunkHandler;->type(Ljava/lang/String;)I
-HSPLorg/apache/harmony/dalvik/ddmc/DdmServer;->broadcast(I)V
-HSPLorg/apache/harmony/dalvik/ddmc/DdmServer;->dispatch(I[BII)Lorg/apache/harmony/dalvik/ddmc/Chunk;
-HSPLorg/apache/harmony/dalvik/ddmc/DdmServer;->sendChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)V
-HSPLorg/apache/harmony/xml/ExpatAttributes;-><init>()V
-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$CurrentAttributes-IA;)V
-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$ExpatLocator-IA;)V
-HSPLorg/apache/harmony/xml/ExpatParser;-><init>(Ljava/lang/String;Lorg/apache/harmony/xml/ExpatReader;ZLjava/lang/String;Ljava/lang/String;)V
-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;->finalize()V
-HSPLorg/apache/harmony/xml/ExpatParser;->finish()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/ExpatReader;-><init>()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/AttrImpl;->setValue(Ljava/lang/String;)V
-HSPLorg/apache/harmony/xml/dom/CharacterDataImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;Ljava/lang/String;)V
-HSPLorg/apache/harmony/xml/dom/CharacterDataImpl;->getData()Ljava/lang/String;
-HSPLorg/apache/harmony/xml/dom/CharacterDataImpl;->getNodeValue()Ljava/lang/String;
-HSPLorg/apache/harmony/xml/dom/CharacterDataImpl;->setData(Ljava/lang/String;)V
-HSPLorg/apache/harmony/xml/dom/DOMImplementationImpl;-><init>()V
-HSPLorg/apache/harmony/xml/dom/DOMImplementationImpl;->getInstance()Lorg/apache/harmony/xml/dom/DOMImplementationImpl;
-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;->createElement(Ljava/lang/String;)Lorg/apache/harmony/xml/dom/ElementImpl;
-HSPLorg/apache/harmony/xml/dom/DocumentImpl;->getDocumentElement()Lorg/w3c/dom/Element;
-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/DocumentImpl;->setDocumentURI(Ljava/lang/String;)V
-HSPLorg/apache/harmony/xml/dom/ElementImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;Ljava/lang/String;)V
-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/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;->getFirstChild()Lorg/w3c/dom/Node;
-HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getLastChild()Lorg/w3c/dom/Node;
-HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getTextContent()Ljava/lang/String;
-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;->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;->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;->getTextContent()Ljava/lang/String;
-HSPLorg/apache/harmony/xml/dom/NodeImpl;->setName(Lorg/apache/harmony/xml/dom/NodeImpl;Ljava/lang/String;)V
-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;
-HSPLorg/apache/harmony/xml/dom/TextImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;Ljava/lang/String;)V
-HSPLorg/apache/harmony/xml/dom/TextImpl;->getNodeType()S
-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;->appendText(Lorg/apache/harmony/xml/dom/DocumentImpl;Lorg/w3c/dom/Node;ILjava/lang/String;)V
-HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->parse(Lcom/android/org/kxml2/io/KXmlParser;Lorg/apache/harmony/xml/dom/DocumentImpl;Lorg/w3c/dom/Node;I)V
-HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->parse(Lorg/xml/sax/InputSource;)Lorg/w3c/dom/Document;
-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
-HSPLorg/apache/http/conn/ssl/SSLSocketFactory;-><init>(Ljavax/net/ssl/SSLSocketFactory;)V
-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
-HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->setAttributes(Lorg/xml/sax/Attributes;)V
-HSPLorg/ccil/cowan/tagsoup/Element;-><init>(Lorg/ccil/cowan/tagsoup/ElementType;Z)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;
-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;->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;
-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
-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;->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;->truthValue(Z)Ljava/lang/Boolean;
-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/String;)V
-HSPLorg/json/JSONArray;-><init>(Ljava/util/Collection;)V
-HSPLorg/json/JSONArray;-><init>(Lorg/json/JSONTokener;)V
-HSPLorg/json/JSONArray;->get(I)Ljava/lang/Object;
-HSPLorg/json/JSONArray;->getInt(I)I
-HSPLorg/json/JSONArray;->getJSONArray(I)Lorg/json/JSONArray;
-HSPLorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject;
-HSPLorg/json/JSONArray;->getString(I)Ljava/lang/String;
-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(J)Lorg/json/JSONArray;
-HSPLorg/json/JSONArray;->put(Ljava/lang/Object;)Lorg/json/JSONArray;
-HSPLorg/json/JSONArray;->toString()Ljava/lang/String;
-HSPLorg/json/JSONArray;->writeTo(Lorg/json/JSONStringer;)V
-HSPLorg/json/JSONException;-><init>(Ljava/lang/String;)V
-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/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
-HSPLorg/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;
-HSPLorg/json/JSONObject;->getLong(Ljava/lang/String;)J
-HSPLorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
-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;->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)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;
-HSPLorg/json/JSONObject;->optJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;
-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;
-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
-HSPLorg/json/JSONStringer;->close(Lorg/json/JSONStringer$Scope;Lorg/json/JSONStringer$Scope;Ljava/lang/String;)Lorg/json/JSONStringer;
-HSPLorg/json/JSONStringer;->endArray()Lorg/json/JSONStringer;
-HSPLorg/json/JSONStringer;->endObject()Lorg/json/JSONStringer;
-HSPLorg/json/JSONStringer;->key(Ljava/lang/String;)Lorg/json/JSONStringer;
-HSPLorg/json/JSONStringer;->newline()V
-HSPLorg/json/JSONStringer;->object()Lorg/json/JSONStringer;
-HSPLorg/json/JSONStringer;->open(Lorg/json/JSONStringer$Scope;Ljava/lang/String;)Lorg/json/JSONStringer;
-HSPLorg/json/JSONStringer;->peek()Lorg/json/JSONStringer$Scope;
-HSPLorg/json/JSONStringer;->replaceTop(Lorg/json/JSONStringer$Scope;)V
-HSPLorg/json/JSONStringer;->string(Ljava/lang/String;)V
-HSPLorg/json/JSONStringer;->toString()Ljava/lang/String;
-HSPLorg/json/JSONStringer;->value(Ljava/lang/Object;)Lorg/json/JSONStringer;
-HSPLorg/json/JSONTokener;-><init>(Ljava/lang/String;)V
-HSPLorg/json/JSONTokener;->nextCleanInternal()I
-HSPLorg/json/JSONTokener;->nextString(C)Ljava/lang/String;
-HSPLorg/json/JSONTokener;->nextToInternal(Ljava/lang/String;)Ljava/lang/String;
-HSPLorg/json/JSONTokener;->nextValue()Ljava/lang/Object;
-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;->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/helpers/DefaultHandler;-><init>()V
-HSPLorg/xml/sax/helpers/DefaultHandler;->setDocumentLocator(Lorg/xml/sax/Locator;)V
-HSPLorg/xmlpull/v1/XmlPullParserFactory;-><init>()V
-HSPLorg/xmlpull/v1/XmlPullParserFactory;->getParserInstance()Lorg/xmlpull/v1/XmlPullParser;
-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
-HSPLsun/invoke/util/VerifyAccess;->isClassAccessible(Ljava/lang/Class;Ljava/lang/Class;I)Z
-HSPLsun/invoke/util/VerifyAccess;->isMemberAccessible(Ljava/lang/Class;Ljava/lang/Class;ILjava/lang/Class;I)Z
-HSPLsun/invoke/util/VerifyAccess;->isSamePackage(Ljava/lang/Class;Ljava/lang/Class;)Z
-HSPLsun/invoke/util/Wrapper;->findPrimitiveType(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
-HSPLsun/invoke/util/Wrapper;->forPrimitiveType(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
-HSPLsun/invoke/util/Wrapper;->hashPrim(Ljava/lang/Class;)I
-HSPLsun/invoke/util/Wrapper;->isDoubleWord()Z
-HSPLsun/invoke/util/Wrapper;->isIntegral()Z
-HSPLsun/invoke/util/Wrapper;->isNumeric()Z
-HSPLsun/invoke/util/Wrapper;->isSingleWord()Z
-HSPLsun/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
-HSPLsun/misc/ASCIICaseInsensitiveComparator;->lowerCaseHashCode(Ljava/lang/String;)I
-HSPLsun/misc/ASCIICaseInsensitiveComparator;->toLower(I)I
-HSPLsun/misc/Cleaner;-><init>(Ljava/lang/Object;Ljava/lang/Runnable;)V
-HSPLsun/misc/Cleaner;->add(Lsun/misc/Cleaner;)Lsun/misc/Cleaner;
-HSPLsun/misc/Cleaner;->checkCleanerQueueEmpty()V
-HSPLsun/misc/Cleaner;->clean()V
-HSPLsun/misc/Cleaner;->create(Ljava/lang/Object;Ljava/lang/Runnable;)Lsun/misc/Cleaner;
-HSPLsun/misc/Cleaner;->isCleanerQueue(Ljava/lang/ref/ReferenceQueue;)Z
-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/IOUtils;->readFully(Ljava/io/InputStream;IZ)[B
-HSPLsun/misc/LRUCache;-><init>(I)V
-HSPLsun/misc/LRUCache;->forName(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLsun/misc/LRUCache;->moveToFront([Ljava/lang/Object;I)V
-HSPLsun/misc/Unsafe;->arrayBaseOffset(Ljava/lang/Class;)I
-HSPLsun/misc/Unsafe;->arrayIndexScale(Ljava/lang/Class;)I
-HSPLsun/misc/Unsafe;->getAndAddInt(Ljava/lang/Object;JI)I
-HSPLsun/misc/Unsafe;->getAndAddLong(Ljava/lang/Object;JJ)J
-HSPLsun/misc/Unsafe;->getAndSetInt(Ljava/lang/Object;JI)I
-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
-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;->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;
-HSPLsun/net/spi/DefaultProxySelector;->select(Ljava/net/URI;)Ljava/util/List;
-HSPLsun/net/util/IPAddressUtil;->convertFromIPv4MappedAddress([B)[B
-HSPLsun/net/util/IPAddressUtil;->isIPv4MappedAddress([B)Z
-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
-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
-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$Unmapper-IA;)V
-HSPLsun/nio/ch/FileChannelImpl$Unmapper;->run()V
-HSPLsun/nio/ch/FileChannelImpl;-><init>(Ljava/io/FileDescriptor;Ljava/lang/String;ZZLjava/lang/Object;)V
-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;
-HSPLsun/nio/ch/FileChannelImpl;->map(Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer;
-HSPLsun/nio/ch/FileChannelImpl;->open(Ljava/io/FileDescriptor;Ljava/lang/String;ZZLjava/lang/Object;)Ljava/nio/channels/FileChannel;
-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;->release(Lsun/nio/ch/FileLockImpl;)V
-HSPLsun/nio/ch/FileChannelImpl;->size()J
-HSPLsun/nio/ch/FileChannelImpl;->tryLock(JJZ)Ljava/nio/channels/FileLock;
-HSPLsun/nio/ch/FileChannelImpl;->write(Ljava/nio/ByteBuffer;)I
-HSPLsun/nio/ch/FileDescriptorHolderSocketImpl;-><init>(Ljava/io/FileDescriptor;)V
-HSPLsun/nio/ch/FileDispatcher;-><init>()V
-HSPLsun/nio/ch/FileDispatcherImpl;-><init>()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;->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
-HSPLsun/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;
-HSPLsun/nio/ch/FileKey;->hashCode()I
-HSPLsun/nio/ch/FileLockImpl;-><init>(Ljava/nio/channels/FileChannel;JJZ)V
-HSPLsun/nio/ch/FileLockImpl;->invalidate()V
-HSPLsun/nio/ch/FileLockImpl;->isValid()Z
-HSPLsun/nio/ch/FileLockImpl;->release()V
-HSPLsun/nio/ch/FileLockTable;-><init>()V
-HSPLsun/nio/ch/FileLockTable;->newSharedFileLockTable(Ljava/nio/channels/Channel;Ljava/io/FileDescriptor;)Lsun/nio/ch/FileLockTable;
-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
-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;
-HSPLsun/nio/ch/Net;->socket(Ljava/net/ProtocolFamily;Z)Ljava/io/FileDescriptor;
-HSPLsun/nio/ch/Net;->socket(Z)Ljava/io/FileDescriptor;
-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
-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
-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
-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
-HSPLsun/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;-><init>(Lsun/nio/ch/SocketChannelImpl;)V
-HSPLsun/nio/ch/SocketAdaptor;->create(Lsun/nio/ch/SocketChannelImpl;)Ljava/net/Socket;
-HSPLsun/nio/ch/SocketAdaptor;->getInetAddress()Ljava/net/InetAddress;
-HSPLsun/nio/ch/SocketAdaptor;->isClosed()Z
-HSPLsun/nio/ch/SocketAdaptor;->isConnected()Z
-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
-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;->kill()V
-HSPLsun/nio/ch/SocketChannelImpl;->readerCleanup()V
-HSPLsun/nio/ch/SocketChannelImpl;->remoteAddress()Ljava/net/SocketAddress;
-HSPLsun/nio/ch/SocketChannelImpl;->socket()Ljava/net/Socket;
-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
-HSPLsun/nio/ch/SocketDispatcher;->close(Ljava/io/FileDescriptor;)V
-HSPLsun/nio/ch/SocketDispatcher;->preClose(Ljava/io/FileDescriptor;)V
-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
-HSPLsun/nio/ch/Util$BufferCache;-><init>()V
-HSPLsun/nio/ch/Util$BufferCache;->get(I)Ljava/nio/ByteBuffer;
-HSPLsun/nio/ch/Util$BufferCache;->isEmpty()Z
-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;->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
-HSPLsun/nio/cs/StreamEncoder;-><init>(Ljava/io/OutputStream;Ljava/lang/Object;Ljava/nio/charset/CharsetEncoder;)V
-HSPLsun/nio/cs/StreamEncoder;->close()V
-HSPLsun/nio/cs/StreamEncoder;->ensureOpen()V
-HSPLsun/nio/cs/StreamEncoder;->flush()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;
-HSPLsun/nio/cs/StreamEncoder;->implClose()V
-HSPLsun/nio/cs/StreamEncoder;->implFlush()V
-HSPLsun/nio/cs/StreamEncoder;->implFlushBuffer()V
-HSPLsun/nio/cs/StreamEncoder;->implWrite(Ljava/nio/CharBuffer;)V+]Ljava/nio/charset/CoderResult;Ljava/nio/charset/CoderResult;
-HSPLsun/nio/cs/StreamEncoder;->implWrite([CII)V
-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
-HSPLsun/nio/cs/ThreadLocalCoders$1;->create(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLsun/nio/cs/ThreadLocalCoders$1;->hasName(Ljava/lang/Object;Ljava/lang/Object;)Z
-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
-HSPLsun/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;->toFile()Ljava/io/File;
-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;->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;
-HSPLsun/nio/fs/NativeBuffers;->copyCStringToNativeBuffer([BLsun/nio/fs/NativeBuffer;)V
-HSPLsun/nio/fs/NativeBuffers;->getNativeBufferFromCache(I)Lsun/nio/fs/NativeBuffer;
-HSPLsun/nio/fs/NativeBuffers;->releaseNativeBuffer(Lsun/nio/fs/NativeBuffer;)V
-HSPLsun/nio/fs/UnixChannelFactory$1;-><clinit>()V
-HSPLsun/nio/fs/UnixChannelFactory$Flags;-><init>()V
-HSPLsun/nio/fs/UnixChannelFactory$Flags;->toFlags(Ljava/util/Set;)Lsun/nio/fs/UnixChannelFactory$Flags;
-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$UnixDirectoryIterator;-><init>(Lsun/nio/fs/UnixDirectoryStream;Ljava/nio/file/DirectoryStream;)V
-HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;->hasNext()Z
-HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;->isSelfOrParent([B)Z
-HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;->next()Ljava/lang/Object;
-HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;->next()Ljava/nio/file/Path;
-HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;->readNextEntry()Ljava/nio/file/Path;
-HSPLsun/nio/fs/UnixDirectoryStream;->-$$Nest$fgetdp(Lsun/nio/fs/UnixDirectoryStream;)J
-HSPLsun/nio/fs/UnixDirectoryStream;-><init>(Lsun/nio/fs/UnixPath;JLjava/nio/file/DirectoryStream$Filter;)V
-HSPLsun/nio/fs/UnixDirectoryStream;->close()V
-HSPLsun/nio/fs/UnixDirectoryStream;->closeImpl()Z
-HSPLsun/nio/fs/UnixDirectoryStream;->finalize()V
-HSPLsun/nio/fs/UnixDirectoryStream;->isOpen()Z
-HSPLsun/nio/fs/UnixDirectoryStream;->iterator(Ljava/nio/file/DirectoryStream;)Ljava/util/Iterator;
-HSPLsun/nio/fs/UnixDirectoryStream;->readLock()Ljava/util/concurrent/locks/Lock;
-HSPLsun/nio/fs/UnixDirectoryStream;->writeLock()Ljava/util/concurrent/locks/Lock;
-HSPLsun/nio/fs/UnixException;-><init>(I)V
-HSPLsun/nio/fs/UnixException;->errno()I
-HSPLsun/nio/fs/UnixException;->fillInStackTrace()Ljava/lang/Throwable;
-HSPLsun/nio/fs/UnixException;->rethrowAsIOException(Lsun/nio/fs/UnixPath;)V
-HSPLsun/nio/fs/UnixException;->rethrowAsIOException(Lsun/nio/fs/UnixPath;Lsun/nio/fs/UnixPath;)V
-HSPLsun/nio/fs/UnixException;->translateToIOException(Ljava/lang/String;Ljava/lang/String;)Ljava/io/IOException;
-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
-HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->creationTime()Ljava/nio/file/attribute/FileTime;
-HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->fileKey()Ljava/lang/Object;+]Lsun/nio/fs/UnixFileAttributes;Lsun/nio/fs/UnixFileAttributes;
-HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->isDirectory()Z
-HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->isRegularFile()Z
-HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->isSymbolicLink()Z
-HSPLsun/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;
-HSPLsun/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;
-HSPLsun/nio/fs/UnixFileAttributes;->isDirectory()Z
-HSPLsun/nio/fs/UnixFileAttributes;->isRegularFile()Z
-HSPLsun/nio/fs/UnixFileAttributes;->isSymbolicLink()Z
-HSPLsun/nio/fs/UnixFileAttributes;->lastAccessTime()Ljava/nio/file/attribute/FileTime;
-HSPLsun/nio/fs/UnixFileAttributes;->lastModifiedTime()Ljava/nio/file/attribute/FileTime;
-HSPLsun/nio/fs/UnixFileAttributes;->size()J
-HSPLsun/nio/fs/UnixFileAttributes;->toFileTime(JJ)Ljava/nio/file/attribute/FileTime;
-HSPLsun/nio/fs/UnixFileKey;-><init>(JJ)V
-HSPLsun/nio/fs/UnixFileKey;->equals(Ljava/lang/Object;)Z
-HSPLsun/nio/fs/UnixFileModeAttribute;->toUnixMode(I[Ljava/nio/file/attribute/FileAttribute;)I
-HSPLsun/nio/fs/UnixFileSystem;->getPath(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
-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;
-HSPLsun/nio/fs/UnixFileSystemProvider;->getFileAttributeView(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/FileAttributeView;
-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
-HSPLsun/nio/fs/UnixNativeDispatcher;->copyToNativeBuffer(Lsun/nio/fs/UnixPath;)Lsun/nio/fs/NativeBuffer;
-HSPLsun/nio/fs/UnixNativeDispatcher;->lstat(Lsun/nio/fs/UnixPath;Lsun/nio/fs/UnixFileAttributes;)V
-HSPLsun/nio/fs/UnixNativeDispatcher;->open(Lsun/nio/fs/UnixPath;II)I
-HSPLsun/nio/fs/UnixNativeDispatcher;->openatSupported()Z
-HSPLsun/nio/fs/UnixNativeDispatcher;->stat(Lsun/nio/fs/UnixPath;Lsun/nio/fs/UnixFileAttributes;)V
-HSPLsun/nio/fs/UnixPath;-><init>(Lsun/nio/fs/UnixFileSystem;Ljava/lang/String;)V
-HSPLsun/nio/fs/UnixPath;-><init>(Lsun/nio/fs/UnixFileSystem;[B)V
-HSPLsun/nio/fs/UnixPath;->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
-HSPLsun/nio/fs/UnixPath;->getFileSystem()Ljava/nio/file/FileSystem;
-HSPLsun/nio/fs/UnixPath;->getFileSystem()Lsun/nio/fs/UnixFileSystem;
-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;->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/UnixSecureDirectoryStream;->close()V
-HSPLsun/nio/fs/UnixSecureDirectoryStream;->finalize()V
-HSPLsun/nio/fs/UnixSecureDirectoryStream;->iterator()Ljava/util/Iterator;
-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;
-HSPLsun/reflect/Reflection;->ensureMemberAccess(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;I)V
-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;->ensureMemberAccess(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;I)V
-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;
-HSPLsun/security/jca/GetInstance$Instance;-><init>(Ljava/security/Provider;Ljava/lang/Object;)V
-HSPLsun/security/jca/GetInstance$Instance;-><init>(Ljava/security/Provider;Ljava/lang/Object;Lsun/security/jca/GetInstance$Instance-IA;)V
-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;
-HSPLsun/security/jca/JCAUtil;->getSecureRandom()Ljava/security/SecureRandom;
-HSPLsun/security/jca/ProviderConfig;-><init>(Ljava/lang/String;)V
-HSPLsun/security/jca/ProviderConfig;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-HSPLsun/security/jca/ProviderConfig;-><init>(Ljava/security/Provider;)V
-HSPLsun/security/jca/ProviderConfig;->equals(Ljava/lang/Object;)Z
-HSPLsun/security/jca/ProviderConfig;->expand(Ljava/lang/String;)Ljava/lang/String;
-HSPLsun/security/jca/ProviderConfig;->getProvider()Ljava/security/Provider;
-HSPLsun/security/jca/ProviderList$3;-><init>(Lsun/security/jca/ProviderList;)V
-HSPLsun/security/jca/ProviderList$3;->get(I)Ljava/lang/Object;
-HSPLsun/security/jca/ProviderList$3;->get(I)Ljava/security/Provider;
-HSPLsun/security/jca/ProviderList$3;->size()I
-HSPLsun/security/jca/ProviderList$ServiceList$1;-><init>(Lsun/security/jca/ProviderList$ServiceList;)V
-HSPLsun/security/jca/ProviderList$ServiceList$1;->hasNext()Z
-HSPLsun/security/jca/ProviderList$ServiceList$1;->next()Ljava/lang/Object;
-HSPLsun/security/jca/ProviderList$ServiceList$1;->next()Ljava/security/Provider$Service;
-HSPLsun/security/jca/ProviderList$ServiceList;->-$$Nest$mtryGet(Lsun/security/jca/ProviderList$ServiceList;I)Ljava/security/Provider$Service;
-HSPLsun/security/jca/ProviderList$ServiceList;-><init>(Lsun/security/jca/ProviderList;Ljava/lang/String;Ljava/lang/String;)V
-HSPLsun/security/jca/ProviderList$ServiceList;->addService(Ljava/security/Provider$Service;)V
-HSPLsun/security/jca/ProviderList$ServiceList;->iterator()Ljava/util/Iterator;
-HSPLsun/security/jca/ProviderList$ServiceList;->tryGet(I)Ljava/security/Provider$Service;
-HSPLsun/security/jca/ProviderList;->-$$Nest$fgetconfigs(Lsun/security/jca/ProviderList;)[Lsun/security/jca/ProviderConfig;
-HSPLsun/security/jca/ProviderList;-><init>([Lsun/security/jca/ProviderConfig;Z)V
-HSPLsun/security/jca/ProviderList;->getIndex(Ljava/lang/String;)I
-HSPLsun/security/jca/ProviderList;->getJarList([Ljava/lang/String;)Lsun/security/jca/ProviderList;
-HSPLsun/security/jca/ProviderList;->getProvider(I)Ljava/security/Provider;
-HSPLsun/security/jca/ProviderList;->getProvider(Ljava/lang/String;)Ljava/security/Provider;
-HSPLsun/security/jca/ProviderList;->getProviderConfig(Ljava/lang/String;)Lsun/security/jca/ProviderConfig;
-HSPLsun/security/jca/ProviderList;->getService(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Provider$Service;
-HSPLsun/security/jca/ProviderList;->getServices(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
-HSPLsun/security/jca/ProviderList;->insertAt(Lsun/security/jca/ProviderList;Ljava/security/Provider;I)Lsun/security/jca/ProviderList;
-HSPLsun/security/jca/ProviderList;->loadAll()I
-HSPLsun/security/jca/ProviderList;->providers()Ljava/util/List;
-HSPLsun/security/jca/ProviderList;->removeInvalid()Lsun/security/jca/ProviderList;
-HSPLsun/security/jca/ProviderList;->toArray()[Ljava/security/Provider;
-HSPLsun/security/jca/Providers;->beginThreadProviderList(Lsun/security/jca/ProviderList;)Lsun/security/jca/ProviderList;
-HSPLsun/security/jca/Providers;->checkBouncyCastleDeprecation(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HSPLsun/security/jca/Providers;->checkBouncyCastleDeprecation(Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;)V
-HSPLsun/security/jca/Providers;->endThreadProviderList(Lsun/security/jca/ProviderList;)V
-HSPLsun/security/jca/Providers;->getFullProviderList()Lsun/security/jca/ProviderList;
-HSPLsun/security/jca/Providers;->getProviderList()Lsun/security/jca/ProviderList;
-HSPLsun/security/jca/Providers;->getSystemProviderList()Lsun/security/jca/ProviderList;
-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$WrappedX509Certificate;-><init>(Ljava/security/cert/X509Certificate;)V
-HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->getIssuerDN()Ljava/security/Principal;
-HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->getKeyUsage()[Z
-HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->getPublicKey()Ljava/security/PublicKey;
-HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->getSerialNumber()Ljava/math/BigInteger;
-HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->getSubjectDN()Ljava/security/Principal;
-HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->getTBSCertificate()[B
-HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->hasUnsupportedCriticalExtension()Z
-HSPLsun/security/pkcs/PKCS7;-><init>([B)V
-HSPLsun/security/pkcs/PKCS7;->getCertificate(Ljava/math/BigInteger;Lsun/security/x509/X500Name;)Ljava/security/cert/X509Certificate;
-HSPLsun/security/pkcs/PKCS7;->getCertificates()[Ljava/security/cert/X509Certificate;
-HSPLsun/security/pkcs/PKCS7;->getContentInfo()Lsun/security/pkcs/ContentInfo;
-HSPLsun/security/pkcs/PKCS7;->parse(Lsun/security/util/DerInputStream;)V
-HSPLsun/security/pkcs/PKCS7;->parse(Lsun/security/util/DerInputStream;Z)V
-HSPLsun/security/pkcs/PKCS7;->parseSignedData(Lsun/security/util/DerValue;)V
-HSPLsun/security/pkcs/PKCS7;->populateCertIssuerNames()V
-HSPLsun/security/pkcs/PKCS7;->verify(Lsun/security/pkcs/SignerInfo;[B)Lsun/security/pkcs/SignerInfo;
-HSPLsun/security/pkcs/PKCS7;->verify([B)[Lsun/security/pkcs/SignerInfo;
-HSPLsun/security/pkcs/SignerInfo;-><init>(Lsun/security/util/DerInputStream;)V
-HSPLsun/security/pkcs/SignerInfo;-><init>(Lsun/security/util/DerInputStream;Z)V
-HSPLsun/security/pkcs/SignerInfo;->getCertificate(Lsun/security/pkcs/PKCS7;)Ljava/security/cert/X509Certificate;
-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
-HSPLsun/security/provider/X509Factory;->getFromCache(Lsun/security/util/Cache;[B)Ljava/lang/Object;
-HSPLsun/security/provider/X509Factory;->intern(Ljava/security/cert/X509Certificate;)Lsun/security/x509/X509CertImpl;
-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
-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
-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;
-HSPLsun/security/provider/certpath/BasicChecker;->init(Z)V
-HSPLsun/security/provider/certpath/BasicChecker;->updateState(Ljava/security/cert/X509Certificate;)V
-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
-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
-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
-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$SingleResponse;-><init>(Lsun/security/util/DerValue;)V
-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
-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
-HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->initialPolicies()Ljava/util/Set;
-HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->policyMappingInhibited()Z
-HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->policyQualifiersRejected()Z
-HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->revocationEnabled()Z
-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;
-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;
-HSPLsun/security/provider/certpath/PKIXMasterCertPathValidator;->validate(Ljava/security/cert/CertPath;Ljava/util/List;Ljava/util/List;)V
-HSPLsun/security/provider/certpath/PolicyChecker;-><init>(Ljava/util/Set;IZZZZLsun/security/provider/certpath/PolicyNodeImpl;)V
-HSPLsun/security/provider/certpath/PolicyChecker;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
-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
-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
-HSPLsun/security/provider/certpath/PolicyChecker;->processParents(IZZLsun/security/provider/certpath/PolicyNodeImpl;Ljava/lang/String;Ljava/util/Set;Z)Z
-HSPLsun/security/provider/certpath/PolicyChecker;->processPolicies(ILjava/util/Set;IIIZLsun/security/provider/certpath/PolicyNodeImpl;Lsun/security/x509/X509CertImpl;Z)Lsun/security/provider/certpath/PolicyNodeImpl;
-HSPLsun/security/provider/certpath/PolicyChecker;->processPolicyMappings(Lsun/security/x509/X509CertImpl;IILsun/security/provider/certpath/PolicyNodeImpl;ZLjava/util/Set;)Lsun/security/provider/certpath/PolicyNodeImpl;
-HSPLsun/security/provider/certpath/PolicyNodeImpl;-><init>(Lsun/security/provider/certpath/PolicyNodeImpl;Ljava/lang/String;Ljava/util/Set;ZLjava/util/Set;Z)V
-HSPLsun/security/provider/certpath/PolicyNodeImpl;-><init>(Lsun/security/provider/certpath/PolicyNodeImpl;Lsun/security/provider/certpath/PolicyNodeImpl;)V
-HSPLsun/security/provider/certpath/PolicyNodeImpl;->addChild(Lsun/security/provider/certpath/PolicyNodeImpl;)V
-HSPLsun/security/provider/certpath/PolicyNodeImpl;->copyTree()Lsun/security/provider/certpath/PolicyNodeImpl;
-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$RevocationProperties;-><init>()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
-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;
-HSPLsun/security/util/AlgorithmDecomposer;->decomposeOneHash(Ljava/lang/String;)Ljava/util/Set;
-HSPLsun/security/util/AlgorithmDecomposer;->hasLoop(Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;)V
-HSPLsun/security/util/BitArray;-><init>(I[B)V
-HSPLsun/security/util/BitArray;-><init>(I[BI)V
-HSPLsun/security/util/BitArray;->get(I)Z
-HSPLsun/security/util/BitArray;->length()I
-HSPLsun/security/util/BitArray;->position(I)I
-HSPLsun/security/util/BitArray;->subscript(I)I
-HSPLsun/security/util/BitArray;->toBooleanArray()[Z
-HSPLsun/security/util/BitArray;->toByteArray()[B
-HSPLsun/security/util/Cache$EqualByteArray;-><init>([B)V
-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;
-HSPLsun/security/util/DerIndefLenConverter;->isIndefinite(I)Z
-HSPLsun/security/util/DerIndefLenConverter;->isLongForm(I)Z
-HSPLsun/security/util/DerInputBuffer;-><init>([B)V
-HSPLsun/security/util/DerInputBuffer;-><init>([BII)V
-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
-HSPLsun/security/util/DerInputBuffer;->getTime(IZ)Ljava/util/Date;
-HSPLsun/security/util/DerInputBuffer;->getUTCTime(I)Ljava/util/Date;
-HSPLsun/security/util/DerInputBuffer;->getUnalignedBitString()Lsun/security/util/BitArray;
-HSPLsun/security/util/DerInputBuffer;->peek()I
-HSPLsun/security/util/DerInputBuffer;->toByteArray()[B
-HSPLsun/security/util/DerInputBuffer;->truncate(I)V
-HSPLsun/security/util/DerInputStream;-><init>(Lsun/security/util/DerInputBuffer;)V
-HSPLsun/security/util/DerInputStream;-><init>([B)V
-HSPLsun/security/util/DerInputStream;->available()I
-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
-HSPLsun/security/util/DerInputStream;->getOID()Lsun/security/util/ObjectIdentifier;
-HSPLsun/security/util/DerInputStream;->getOctetString()[B
-HSPLsun/security/util/DerInputStream;->getSequence(I)[Lsun/security/util/DerValue;
-HSPLsun/security/util/DerInputStream;->getSequence(IZ)[Lsun/security/util/DerValue;
-HSPLsun/security/util/DerInputStream;->getSet(I)[Lsun/security/util/DerValue;
-HSPLsun/security/util/DerInputStream;->getSet(IZ)[Lsun/security/util/DerValue;
-HSPLsun/security/util/DerInputStream;->getSet(IZZ)[Lsun/security/util/DerValue;
-HSPLsun/security/util/DerInputStream;->getUTCTime()Ljava/util/Date;
-HSPLsun/security/util/DerInputStream;->getUnalignedBitString()Lsun/security/util/BitArray;
-HSPLsun/security/util/DerInputStream;->init([BIIZ)V
-HSPLsun/security/util/DerInputStream;->mark(I)V
-HSPLsun/security/util/DerInputStream;->peekByte()I
-HSPLsun/security/util/DerInputStream;->readVector(I)[Lsun/security/util/DerValue;
-HSPLsun/security/util/DerInputStream;->readVector(IZ)[Lsun/security/util/DerValue;
-HSPLsun/security/util/DerInputStream;->reset()V
-HSPLsun/security/util/DerInputStream;->subStream(IZ)Lsun/security/util/DerInputStream;
-HSPLsun/security/util/DerInputStream;->toByteArray()[B
-HSPLsun/security/util/DerOutputStream;-><init>()V
-HSPLsun/security/util/DerOutputStream;->putDerValue(Lsun/security/util/DerValue;)V
-HSPLsun/security/util/DerOutputStream;->putLength(I)V
-HSPLsun/security/util/DerOutputStream;->putNull()V
-HSPLsun/security/util/DerOutputStream;->putOID(Lsun/security/util/ObjectIdentifier;)V
-HSPLsun/security/util/DerOutputStream;->putOctetString([B)V
-HSPLsun/security/util/DerOutputStream;->putOrderedSet(B[Lsun/security/util/DerEncoder;Ljava/util/Comparator;)V
-HSPLsun/security/util/DerOutputStream;->putOrderedSetOf(B[Lsun/security/util/DerEncoder;)V
-HSPLsun/security/util/DerOutputStream;->putUnalignedBitString(Lsun/security/util/BitArray;)V
-HSPLsun/security/util/DerOutputStream;->write(BLsun/security/util/DerOutputStream;)V
-HSPLsun/security/util/DerOutputStream;->write(B[B)V
-HSPLsun/security/util/DerValue;-><init>(B[B)V
-HSPLsun/security/util/DerValue;-><init>(Ljava/io/InputStream;)V
-HSPLsun/security/util/DerValue;-><init>(Ljava/lang/String;)V
-HSPLsun/security/util/DerValue;-><init>(Lsun/security/util/DerInputBuffer;Z)V
-HSPLsun/security/util/DerValue;-><init>([B)V
-HSPLsun/security/util/DerValue;->encode(Lsun/security/util/DerOutputStream;)V
-HSPLsun/security/util/DerValue;->getBigInteger()Ljava/math/BigInteger;
-HSPLsun/security/util/DerValue;->getBitString()[B
-HSPLsun/security/util/DerValue;->getBoolean()Z
-HSPLsun/security/util/DerValue;->getData()Lsun/security/util/DerInputStream;
-HSPLsun/security/util/DerValue;->getDataBytes()[B
-HSPLsun/security/util/DerValue;->getIA5String()Ljava/lang/String;
-HSPLsun/security/util/DerValue;->getInteger()I
-HSPLsun/security/util/DerValue;->getOID()Lsun/security/util/ObjectIdentifier;
-HSPLsun/security/util/DerValue;->getOctetString()[B
-HSPLsun/security/util/DerValue;->getOriginalEncodedForm()[B
-HSPLsun/security/util/DerValue;->getTag()B
-HSPLsun/security/util/DerValue;->getUnalignedBitString()Lsun/security/util/BitArray;
-HSPLsun/security/util/DerValue;->init(BLjava/lang/String;)Lsun/security/util/DerInputStream;
-HSPLsun/security/util/DerValue;->init(ZLjava/io/InputStream;)Lsun/security/util/DerInputStream;
-HSPLsun/security/util/DerValue;->isConstructed()Z
-HSPLsun/security/util/DerValue;->isContextSpecific()Z
-HSPLsun/security/util/DerValue;->isContextSpecific(B)Z
-HSPLsun/security/util/DerValue;->isPrintableStringChar(C)Z
-HSPLsun/security/util/DerValue;->length()I
-HSPLsun/security/util/DerValue;->resetTag(B)V
-HSPLsun/security/util/DerValue;->toByteArray()[B
-HSPLsun/security/util/DerValue;->toDerInputStream()Lsun/security/util/DerInputStream;
-HPLsun/security/util/DisabledAlgorithmConstraints$Constraints;-><init>([Ljava/lang/String;)V
-HSPLsun/security/util/DisabledAlgorithmConstraints$Constraints;->getConstraints(Ljava/lang/String;)Ljava/util/Set;
-HSPLsun/security/util/DisabledAlgorithmConstraints$Constraints;->permits(Ljava/security/Key;)Z
-HSPLsun/security/util/DisabledAlgorithmConstraints$Constraints;->permits(Lsun/security/util/CertConstraintParameters;)V
-HSPLsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->permits(Ljava/security/Key;)Z
-HSPLsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->permits(Lsun/security/util/CertConstraintParameters;)V
-HSPLsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->permitsImpl(Ljava/security/Key;)Z
-HSPLsun/security/util/DisabledAlgorithmConstraints;->checkConstraints(Ljava/util/Set;Ljava/lang/String;Ljava/security/Key;Ljava/security/AlgorithmParameters;)Z
-HSPLsun/security/util/DisabledAlgorithmConstraints;->checkConstraints(Ljava/util/Set;Lsun/security/util/CertConstraintParameters;)V
-HSPLsun/security/util/DisabledAlgorithmConstraints;->permits(Ljava/util/Set;Ljava/lang/String;Ljava/security/AlgorithmParameters;)Z
-HSPLsun/security/util/DisabledAlgorithmConstraints;->permits(Ljava/util/Set;Ljava/lang/String;Ljava/security/Key;Ljava/security/AlgorithmParameters;)Z
-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;-><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
-HSPLsun/security/util/MemoryCache;->emptyQueue()V
-HSPLsun/security/util/MemoryCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLsun/security/util/MemoryCache;->newEntry(Ljava/lang/Object;Ljava/lang/Object;JLjava/lang/ref/ReferenceQueue;)Lsun/security/util/MemoryCache$CacheEntry;
-HSPLsun/security/util/MemoryCache;->put(Ljava/lang/Object;Ljava/lang/Object;)V
-HSPLsun/security/util/ObjectIdentifier;-><init>(Lsun/security/util/DerInputBuffer;)V
-HSPLsun/security/util/ObjectIdentifier;-><init>(Lsun/security/util/DerInputStream;)V
-HSPLsun/security/util/ObjectIdentifier;->check([B)V
-HSPLsun/security/util/ObjectIdentifier;->encode(Lsun/security/util/DerOutputStream;)V
-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;->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
-HSPLsun/security/x509/AVA;->derEncode(Ljava/io/OutputStream;)V
-HSPLsun/security/x509/AVA;->isDerString(Lsun/security/util/DerValue;Z)Z
-HSPLsun/security/x509/AVA;->isTerminator(II)Z
-HSPLsun/security/x509/AVA;->parseString(Ljava/io/Reader;IILjava/lang/StringBuilder;)Lsun/security/util/DerValue;
-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
-HSPLsun/security/x509/AccessDescription;-><init>(Lsun/security/util/DerValue;)V
-HSPLsun/security/x509/AlgorithmId;-><init>(Lsun/security/util/ObjectIdentifier;Lsun/security/util/DerValue;)V
-HSPLsun/security/x509/AlgorithmId;->decodeParams()V
-HSPLsun/security/x509/AlgorithmId;->derEncode(Ljava/io/OutputStream;)V
-HSPLsun/security/x509/AlgorithmId;->encode(Lsun/security/util/DerOutputStream;)V
-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;
-HSPLsun/security/x509/AuthorityKeyIdentifierExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V
-HSPLsun/security/x509/AuthorityKeyIdentifierExtension;->get(Ljava/lang/String;)Ljava/lang/Object;
-HSPLsun/security/x509/AuthorityKeyIdentifierExtension;->getEncodedKeyIdentifier()[B
-HSPLsun/security/x509/AuthorityKeyIdentifierExtension;->getName()Ljava/lang/String;
-HSPLsun/security/x509/BasicConstraintsExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V
-HSPLsun/security/x509/BasicConstraintsExtension;->getName()Ljava/lang/String;
-HSPLsun/security/x509/CRLDistributionPointsExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V
-HSPLsun/security/x509/CRLDistributionPointsExtension;-><init>(Lsun/security/util/ObjectIdentifier;Ljava/lang/Boolean;Ljava/lang/Object;Ljava/lang/String;)V
-HSPLsun/security/x509/CRLDistributionPointsExtension;->getName()Ljava/lang/String;
-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
-HSPLsun/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
-HSPLsun/security/x509/CertificateExtensions;->parseExtension(Lsun/security/x509/Extension;)V
-HSPLsun/security/x509/CertificatePoliciesExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V
-HSPLsun/security/x509/CertificatePoliciesExtension;->get(Ljava/lang/String;)Ljava/util/List;
-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
-HSPLsun/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
-HSPLsun/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
-HSPLsun/security/x509/Extension;->getExtensionId()Lsun/security/util/ObjectIdentifier;
-HSPLsun/security/x509/Extension;->getExtensionValue()[B
-HSPLsun/security/x509/Extension;->isCritical()Z
-HSPLsun/security/x509/GeneralName;-><init>(Lsun/security/util/DerValue;)V
-HSPLsun/security/x509/GeneralName;-><init>(Lsun/security/util/DerValue;Z)V
-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
-HSPLsun/security/x509/KeyUsageExtension;->getBits()[Z
-HSPLsun/security/x509/KeyUsageExtension;->getName()Ljava/lang/String;
-HSPLsun/security/x509/OCSPNoCheckExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V
-HSPLsun/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;
-HSPLsun/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
-HSPLsun/security/x509/X500Name;-><init>(Ljava/lang/String;Ljava/util/Map;)V
-HSPLsun/security/x509/X500Name;-><init>(Lsun/security/util/DerInputStream;)V
-HSPLsun/security/x509/X500Name;-><init>(Lsun/security/util/DerValue;)V
-HSPLsun/security/x509/X500Name;-><init>([B)V
-HSPLsun/security/x509/X500Name;->asX500Name(Ljavax/security/auth/x500/X500Principal;)Lsun/security/x509/X500Name;
-HSPLsun/security/x509/X500Name;->asX500Principal()Ljavax/security/auth/x500/X500Principal;
-HSPLsun/security/x509/X500Name;->checkNoNewLinesNorTabsAtBeginningOfDN(Ljava/lang/String;)V
-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
-HSPLsun/security/x509/X500Name;->parseDER(Lsun/security/util/DerInputStream;)V
-HSPLsun/security/x509/X500Name;->parseDN(Ljava/lang/String;Ljava/util/Map;)V
-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
-HSPLsun/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
-HSPLsun/security/x509/X509CertImpl;->getExtendedKeyUsage()Ljava/util/List;
-HSPLsun/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;
-HSPLsun/security/x509/X509CertImpl;->getKeyUsage()[Z
-HSPLsun/security/x509/X509CertImpl;->getNameConstraintsExtension()Lsun/security/x509/NameConstraintsExtension;
-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;
-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
-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;
-HSPLsun/security/x509/X509CertImpl;->verify(Ljava/security/PublicKey;)V
-HSPLsun/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;
-HSPLsun/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
-HSPLsun/security/x509/X509Key;->buildX509Key(Lsun/security/x509/AlgorithmId;Lsun/security/util/BitArray;)Ljava/security/PublicKey;
-HSPLsun/security/x509/X509Key;->encode(Lsun/security/util/DerOutputStream;Lsun/security/x509/AlgorithmId;Lsun/security/util/BitArray;)V
-HSPLsun/security/x509/X509Key;->parse(Lsun/security/util/DerValue;)Ljava/security/PublicKey;
-HSPLsun/util/calendar/AbstractCalendar;-><init>()V
-HSPLsun/util/calendar/AbstractCalendar;->getCalendarDate(JLsun/util/calendar/CalendarDate;)Lsun/util/calendar/CalendarDate;
-HSPLsun/util/calendar/AbstractCalendar;->getDayOfWeekDateOnOrBefore(JI)J
-HSPLsun/util/calendar/AbstractCalendar;->getEras()[Lsun/util/calendar/Era;
-HSPLsun/util/calendar/AbstractCalendar;->getTime(Lsun/util/calendar/CalendarDate;)J
-HSPLsun/util/calendar/AbstractCalendar;->getTimeOfDay(Lsun/util/calendar/CalendarDate;)J
-HSPLsun/util/calendar/AbstractCalendar;->getTimeOfDayValue(Lsun/util/calendar/CalendarDate;)J
-HSPLsun/util/calendar/AbstractCalendar;->setEras([Lsun/util/calendar/Era;)V
-HSPLsun/util/calendar/AbstractCalendar;->setTimeOfDay(Lsun/util/calendar/CalendarDate;I)Lsun/util/calendar/CalendarDate;
-HSPLsun/util/calendar/BaseCalendar$Date;-><init>(Ljava/util/TimeZone;)V
-HSPLsun/util/calendar/BaseCalendar$Date;->getCachedJan1()J
-HSPLsun/util/calendar/BaseCalendar$Date;->getCachedYear()I
-HSPLsun/util/calendar/BaseCalendar$Date;->hit(I)Z
-HSPLsun/util/calendar/BaseCalendar$Date;->hit(J)Z
-HSPLsun/util/calendar/BaseCalendar$Date;->setCache(IJI)V
-HSPLsun/util/calendar/BaseCalendar;-><init>()V
-HSPLsun/util/calendar/BaseCalendar;->getCalendarDateFromFixedDate(Lsun/util/calendar/CalendarDate;J)V
-HSPLsun/util/calendar/BaseCalendar;->getDayOfWeekFromFixedDate(J)I
-HSPLsun/util/calendar/BaseCalendar;->getDayOfYear(III)J
-HSPLsun/util/calendar/BaseCalendar;->getFixedDate(IIILsun/util/calendar/BaseCalendar$Date;)J
-HSPLsun/util/calendar/BaseCalendar;->getFixedDate(Lsun/util/calendar/CalendarDate;)J
-HSPLsun/util/calendar/BaseCalendar;->getGregorianYearFromFixedDate(J)I
-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;
-HSPLsun/util/calendar/CalendarDate;->getDayOfMonth()I
-HSPLsun/util/calendar/CalendarDate;->getDayOfWeek()I
-HSPLsun/util/calendar/CalendarDate;->getEra()Lsun/util/calendar/Era;
-HSPLsun/util/calendar/CalendarDate;->getHours()I
-HSPLsun/util/calendar/CalendarDate;->getMillis()I
-HSPLsun/util/calendar/CalendarDate;->getMinutes()I
-HSPLsun/util/calendar/CalendarDate;->getMonth()I
-HSPLsun/util/calendar/CalendarDate;->getSeconds()I
-HSPLsun/util/calendar/CalendarDate;->getTimeOfDay()J
-HSPLsun/util/calendar/CalendarDate;->getYear()I
-HSPLsun/util/calendar/CalendarDate;->getZone()Ljava/util/TimeZone;
-HSPLsun/util/calendar/CalendarDate;->isDaylightTime()Z
-HSPLsun/util/calendar/CalendarDate;->isLeapYear()Z
-HSPLsun/util/calendar/CalendarDate;->isNormalized()Z
-HSPLsun/util/calendar/CalendarDate;->isStandardTime()Z
-HSPLsun/util/calendar/CalendarDate;->setDate(III)Lsun/util/calendar/CalendarDate;
-HSPLsun/util/calendar/CalendarDate;->setDayOfMonth(I)Lsun/util/calendar/CalendarDate;
-HSPLsun/util/calendar/CalendarDate;->setDayOfWeek(I)V
-HSPLsun/util/calendar/CalendarDate;->setDaylightSaving(I)V
-HSPLsun/util/calendar/CalendarDate;->setEra(Lsun/util/calendar/Era;)Lsun/util/calendar/CalendarDate;
-HSPLsun/util/calendar/CalendarDate;->setHours(I)Lsun/util/calendar/CalendarDate;
-HSPLsun/util/calendar/CalendarDate;->setLeapYear(Z)V
-HSPLsun/util/calendar/CalendarDate;->setMillis(I)Lsun/util/calendar/CalendarDate;
-HSPLsun/util/calendar/CalendarDate;->setMinutes(I)Lsun/util/calendar/CalendarDate;
-HSPLsun/util/calendar/CalendarDate;->setMonth(I)Lsun/util/calendar/CalendarDate;
-HSPLsun/util/calendar/CalendarDate;->setNormalized(Z)V
-HSPLsun/util/calendar/CalendarDate;->setSeconds(I)Lsun/util/calendar/CalendarDate;
-HSPLsun/util/calendar/CalendarDate;->setTimeOfDay(IIII)Lsun/util/calendar/CalendarDate;
-HSPLsun/util/calendar/CalendarDate;->setTimeOfDay(J)V
-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;-><init>()V
-HSPLsun/util/calendar/CalendarSystem;->forName(Ljava/lang/String;)Lsun/util/calendar/CalendarSystem;
-HSPLsun/util/calendar/CalendarSystem;->getGregorianCalendar()Lsun/util/calendar/Gregorian;
-HSPLsun/util/calendar/CalendarUtils;->floorDivide(II)I
-HSPLsun/util/calendar/CalendarUtils;->floorDivide(JJ)J
-HSPLsun/util/calendar/CalendarUtils;->isGregorianLeapYear(I)Z
-HSPLsun/util/calendar/CalendarUtils;->isJulianLeapYear(I)Z
-HSPLsun/util/calendar/CalendarUtils;->mod(II)I
-HSPLsun/util/calendar/CalendarUtils;->mod(JJ)J
-HSPLsun/util/calendar/CalendarUtils;->sprintf0d(Ljava/lang/StringBuilder;II)Ljava/lang/StringBuilder;
-HSPLsun/util/calendar/Gregorian$Date;-><init>(Ljava/util/TimeZone;)V
-HSPLsun/util/calendar/Gregorian$Date;->getNormalizedYear()I
-HSPLsun/util/calendar/Gregorian$Date;->setNormalizedYear(I)V
-HSPLsun/util/calendar/Gregorian;->getCalendarDate(JLjava/util/TimeZone;)Lsun/util/calendar/CalendarDate;
-HSPLsun/util/calendar/Gregorian;->getCalendarDate(JLjava/util/TimeZone;)Lsun/util/calendar/Gregorian$Date;
-HSPLsun/util/calendar/Gregorian;->getCalendarDate(JLsun/util/calendar/CalendarDate;)Lsun/util/calendar/CalendarDate;
-HSPLsun/util/calendar/Gregorian;->getCalendarDate(JLsun/util/calendar/CalendarDate;)Lsun/util/calendar/Gregorian$Date;
-HSPLsun/util/calendar/Gregorian;->newCalendarDate(Ljava/util/TimeZone;)Lsun/util/calendar/CalendarDate;
-HSPLsun/util/calendar/Gregorian;->newCalendarDate(Ljava/util/TimeZone;)Lsun/util/calendar/Gregorian$Date;
-HSPLsun/util/calendar/JulianCalendar$Date;-><init>(Ljava/util/TimeZone;)V
-HSPLsun/util/calendar/JulianCalendar$Date;->getNormalizedYear()I
-HSPLsun/util/calendar/JulianCalendar$Date;->setKnownEra(Lsun/util/calendar/Era;)V
-HSPLsun/util/calendar/JulianCalendar$Date;->setNormalizedYear(I)V
-HSPLsun/util/calendar/JulianCalendar;-><init>()V
-HSPLsun/util/calendar/JulianCalendar;->getCalendarDateFromFixedDate(Lsun/util/calendar/CalendarDate;J)V
-HSPLsun/util/calendar/JulianCalendar;->getFixedDate(IIILsun/util/calendar/BaseCalendar$Date;)J
-HSPLsun/util/calendar/JulianCalendar;->isLeapYear(I)Z
-HSPLsun/util/calendar/JulianCalendar;->newCalendarDate(Ljava/util/TimeZone;)Lsun/util/calendar/CalendarDate;
-HSPLsun/util/calendar/JulianCalendar;->newCalendarDate(Ljava/util/TimeZone;)Lsun/util/calendar/JulianCalendar$Date;
-HSPLsun/util/locale/BaseLocale$Cache;->-$$Nest$sfgetCACHE()Lsun/util/locale/BaseLocale$Cache;
-HSPLsun/util/locale/BaseLocale$Cache;->createObject(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLsun/util/locale/BaseLocale$Cache;->createObject(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale;
-HSPLsun/util/locale/BaseLocale$Cache;->normalizeKey(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLsun/util/locale/BaseLocale$Cache;->normalizeKey(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale$Key;
-HSPLsun/util/locale/BaseLocale$Key;->-$$Nest$mgetBaseLocale(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale;
-HSPLsun/util/locale/BaseLocale$Key;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
-HSPLsun/util/locale/BaseLocale$Key;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLsun/util/locale/BaseLocale$Key-IA;)V
-HSPLsun/util/locale/BaseLocale$Key;->equals(Ljava/lang/Object;)Z
-HSPLsun/util/locale/BaseLocale$Key;->getBaseLocale()Lsun/util/locale/BaseLocale;
-HSPLsun/util/locale/BaseLocale$Key;->hashCode()I
-HSPLsun/util/locale/BaseLocale$Key;->hashCode(Lsun/util/locale/BaseLocale;)I
-HSPLsun/util/locale/BaseLocale$Key;->normalize(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale$Key;
-HSPLsun/util/locale/BaseLocale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
-HSPLsun/util/locale/BaseLocale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLsun/util/locale/BaseLocale-IA;)V
-HSPLsun/util/locale/BaseLocale;->cleanCache()V
-HSPLsun/util/locale/BaseLocale;->convertOldISOCodes(Ljava/lang/String;)Ljava/lang/String;
-HSPLsun/util/locale/BaseLocale;->equals(Ljava/lang/Object;)Z
-HSPLsun/util/locale/BaseLocale;->getInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lsun/util/locale/BaseLocale;
-HSPLsun/util/locale/BaseLocale;->getLanguage()Ljava/lang/String;
-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/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;->canonicalizeScript(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;
-HSPLsun/util/locale/LanguageTag;->getPrivateuse()Ljava/lang/String;
-HSPLsun/util/locale/LanguageTag;->getRegion()Ljava/lang/String;
-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
-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
-HSPLsun/util/locale/LanguageTag;->parseLanguage(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
-HSPLsun/util/locale/LanguageTag;->parseLocale(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)Lsun/util/locale/LanguageTag;
-HSPLsun/util/locale/LanguageTag;->parsePrivateuse(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
-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/LocaleObjectCache$CacheEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
-HSPLsun/util/locale/LocaleObjectCache$CacheEntry;->getKey()Ljava/lang/Object;
-HSPLsun/util/locale/LocaleObjectCache;->cleanStaleEntries()V
-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
-HSPLsun/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;
-HSPLsun/util/locale/ParseStatus;-><init>()V
-HSPLsun/util/locale/ParseStatus;->isError()Z
-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
-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/provider/CalendarDataUtility;->retrieveFirstDayOfWeek(Ljava/util/Locale;I)I
-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;->getSimpleFormat()Ljava/lang/String;
-HSPLsun/util/logging/LoggingSupport;->getSimpleFormat(Z)Ljava/lang/String;
-HSPLsun/util/logging/PlatformLogger$JavaLoggerProxy;-><init>(Ljava/lang/String;)V
-HSPLsun/util/logging/PlatformLogger$JavaLoggerProxy;-><init>(Ljava/lang/String;Lsun/util/logging/PlatformLogger$Level;)V
-HSPLsun/util/logging/PlatformLogger$LoggerProxy;-><init>(Ljava/lang/String;)V
-HSPLsun/util/logging/PlatformLogger;-><init>(Ljava/lang/String;)V
-HSPLsun/util/logging/PlatformLogger;->getLogger(Ljava/lang/String;)Lsun/util/logging/PlatformLogger;
-Landroid/R$attr;
-Landroid/R$id;
-Landroid/R$styleable;
-Landroid/accessibilityservice/AccessibilityServiceInfo$1;
-Landroid/accessibilityservice/AccessibilityServiceInfo$DynamicPropertyDefaults;
-Landroid/accessibilityservice/AccessibilityServiceInfo;
-Landroid/accessibilityservice/AccessibilityShortcutInfo;
-Landroid/accessibilityservice/GestureDescription$MotionEventGenerator;
-Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;
-Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;
-Landroid/accessibilityservice/IAccessibilityServiceClient;
-Landroid/accessibilityservice/IAccessibilityServiceConnection$Default;
-Landroid/accessibilityservice/IAccessibilityServiceConnection;
-Landroid/accounts/AbstractAccountAuthenticator$Transport;
-Landroid/accounts/AbstractAccountAuthenticator;
-Landroid/accounts/Account$1;
-Landroid/accounts/Account;
-Landroid/accounts/AccountAndUser;
-Landroid/accounts/AccountAuthenticatorResponse$1;
-Landroid/accounts/AccountAuthenticatorResponse;
-Landroid/accounts/AccountManager$10;
-Landroid/accounts/AccountManager$11;
-Landroid/accounts/AccountManager$15;
-Landroid/accounts/AccountManager$16;
-Landroid/accounts/AccountManager$17;
-Landroid/accounts/AccountManager$18;
-Landroid/accounts/AccountManager$1;
-Landroid/accounts/AccountManager$20;
-Landroid/accounts/AccountManager$2;
-Landroid/accounts/AccountManager$3;
-Landroid/accounts/AccountManager$4;
-Landroid/accounts/AccountManager$5;
-Landroid/accounts/AccountManager$8;
-Landroid/accounts/AccountManager$AccountKeyData;
-Landroid/accounts/AccountManager$AmsTask$1;
-Landroid/accounts/AccountManager$AmsTask$Response-IA;
-Landroid/accounts/AccountManager$AmsTask$Response;
-Landroid/accounts/AccountManager$AmsTask;
-Landroid/accounts/AccountManager$BaseFutureTask$1;
-Landroid/accounts/AccountManager$BaseFutureTask$Response;
-Landroid/accounts/AccountManager$BaseFutureTask;
-Landroid/accounts/AccountManager$Future2Task$1;
-Landroid/accounts/AccountManager$Future2Task;
-Landroid/accounts/AccountManager;
-Landroid/accounts/AccountManagerCallback;
-Landroid/accounts/AccountManagerFuture;
-Landroid/accounts/AccountManagerInternal$OnAppPermissionChangeListener;
-Landroid/accounts/AccountManagerInternal;
-Landroid/accounts/AccountsException;
-Landroid/accounts/AuthenticatorDescription$1;
-Landroid/accounts/AuthenticatorDescription-IA;
-Landroid/accounts/AuthenticatorDescription;
-Landroid/accounts/AuthenticatorException;
-Landroid/accounts/IAccountAuthenticator$Stub$Proxy;
-Landroid/accounts/IAccountAuthenticator$Stub;
-Landroid/accounts/IAccountAuthenticator;
-Landroid/accounts/IAccountAuthenticatorResponse$Stub$Proxy;
-Landroid/accounts/IAccountAuthenticatorResponse$Stub;
-Landroid/accounts/IAccountAuthenticatorResponse;
-Landroid/accounts/IAccountManager$Stub$Proxy;
-Landroid/accounts/IAccountManager$Stub;
-Landroid/accounts/IAccountManager;
-Landroid/accounts/IAccountManagerResponse$Stub$Proxy;
-Landroid/accounts/IAccountManagerResponse$Stub;
-Landroid/accounts/IAccountManagerResponse;
-Landroid/accounts/NetworkErrorException;
-Landroid/accounts/OnAccountsUpdateListener;
-Landroid/accounts/OperationCanceledException;
-Landroid/animation/AnimationHandler$$ExternalSyntheticLambda0;
-Landroid/animation/AnimationHandler$1;
-Landroid/animation/AnimationHandler$2;
-Landroid/animation/AnimationHandler$AnimationFrameCallback;
-Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;
-Landroid/animation/AnimationHandler$MyFrameCallbackProvider-IA;
-Landroid/animation/AnimationHandler$MyFrameCallbackProvider;
-Landroid/animation/AnimationHandler;
-Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda0;
-Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda1;
-Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda2;
-Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda3;
-Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda4;
-Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda5;
-Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda6;
-Landroid/animation/Animator$AnimatorCaller;
-Landroid/animation/Animator$AnimatorConstantState;
-Landroid/animation/Animator$AnimatorListener;
-Landroid/animation/Animator$AnimatorPauseListener;
-Landroid/animation/Animator;
-Landroid/animation/AnimatorInflater$PathDataEvaluator-IA;
-Landroid/animation/AnimatorInflater$PathDataEvaluator;
-Landroid/animation/AnimatorInflater;
-Landroid/animation/AnimatorListenerAdapter;
-Landroid/animation/AnimatorSet$$ExternalSyntheticLambda0;
-Landroid/animation/AnimatorSet$$ExternalSyntheticLambda2;
-Landroid/animation/AnimatorSet$1;
-Landroid/animation/AnimatorSet$2;
-Landroid/animation/AnimatorSet$3;
-Landroid/animation/AnimatorSet$AnimationEvent;
-Landroid/animation/AnimatorSet$Builder;
-Landroid/animation/AnimatorSet$Node;
-Landroid/animation/AnimatorSet$SeekState-IA;
-Landroid/animation/AnimatorSet$SeekState;
-Landroid/animation/AnimatorSet;
-Landroid/animation/ArgbEvaluator;
-Landroid/animation/BidirectionalTypeConverter;
-Landroid/animation/FloatEvaluator;
-Landroid/animation/FloatKeyframeSet;
-Landroid/animation/IntEvaluator;
-Landroid/animation/IntKeyframeSet;
-Landroid/animation/Keyframe$FloatKeyframe;
-Landroid/animation/Keyframe$IntKeyframe;
-Landroid/animation/Keyframe$ObjectKeyframe;
-Landroid/animation/Keyframe;
-Landroid/animation/KeyframeSet;
-Landroid/animation/Keyframes$FloatKeyframes;
-Landroid/animation/Keyframes$IntKeyframes;
-Landroid/animation/Keyframes;
-Landroid/animation/LayoutTransition$1;
-Landroid/animation/LayoutTransition$2;
-Landroid/animation/LayoutTransition$3;
-Landroid/animation/LayoutTransition$4;
-Landroid/animation/LayoutTransition$5;
-Landroid/animation/LayoutTransition$CleanupCallback;
-Landroid/animation/LayoutTransition$TransitionListener;
-Landroid/animation/LayoutTransition;
-Landroid/animation/ObjectAnimator;
-Landroid/animation/PathKeyframes$1;
-Landroid/animation/PathKeyframes$2;
-Landroid/animation/PathKeyframes$3;
-Landroid/animation/PathKeyframes$4;
-Landroid/animation/PathKeyframes$FloatKeyframesBase;
-Landroid/animation/PathKeyframes$IntKeyframesBase;
-Landroid/animation/PathKeyframes$SimpleKeyframes-IA;
-Landroid/animation/PathKeyframes$SimpleKeyframes;
-Landroid/animation/PathKeyframes;
-Landroid/animation/PropertyValuesHolder$1;
-Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;
-Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;
-Landroid/animation/PropertyValuesHolder$PropertyValues$DataSource;
-Landroid/animation/PropertyValuesHolder$PropertyValues;
-Landroid/animation/PropertyValuesHolder-IA;
-Landroid/animation/PropertyValuesHolder;
-Landroid/animation/RectEvaluator;
-Landroid/animation/RevealAnimator;
-Landroid/animation/StateListAnimator$1;
-Landroid/animation/StateListAnimator$StateListAnimatorConstantState;
-Landroid/animation/StateListAnimator$Tuple-IA;
-Landroid/animation/StateListAnimator$Tuple;
-Landroid/animation/StateListAnimator;
-Landroid/animation/TimeAnimator$TimeListener;
-Landroid/animation/TimeAnimator;
-Landroid/animation/TimeInterpolator;
-Landroid/animation/TypeConverter;
-Landroid/animation/TypeEvaluator;
-Landroid/animation/ValueAnimator$AnimatorUpdateListener;
-Landroid/animation/ValueAnimator$DurationScaleChangeListener;
-Landroid/animation/ValueAnimator;
-Landroid/annotation/ColorInt;
-Landroid/annotation/CurrentTimeMillisLong;
-Landroid/annotation/FloatRange;
-Landroid/annotation/IdRes;
-Landroid/annotation/IntRange;
-Landroid/annotation/NonNull;
-Landroid/annotation/RequiresPermission;
-Landroid/annotation/Size;
-Landroid/annotation/StringRes;
-Landroid/annotation/SystemApi;
-Landroid/apex/ApexInfo$1;
-Landroid/apex/ApexInfo;
-Landroid/apex/ApexSessionInfo$1;
-Landroid/apex/ApexSessionInfo;
-Landroid/apex/IApexService$Stub$Proxy;
-Landroid/apex/IApexService$Stub;
-Landroid/apex/IApexService;
-Landroid/app/ActionBar$LayoutParams;
-Landroid/app/ActionBar;
-Landroid/app/Activity$$ExternalSyntheticLambda0;
-Landroid/app/Activity$1;
-Landroid/app/Activity$HostCallbacks;
-Landroid/app/Activity$ManagedCursor;
-Landroid/app/Activity$ManagedDialog-IA;
-Landroid/app/Activity$ManagedDialog;
-Landroid/app/Activity$NonConfigurationInstances;
-Landroid/app/Activity$RequestFinishCallback;
-Landroid/app/Activity$TranslucentConversionListener;
-Landroid/app/Activity;
-Landroid/app/ActivityClient$1;
-Landroid/app/ActivityClient$ActivityClientControllerSingleton-IA;
-Landroid/app/ActivityClient$ActivityClientControllerSingleton;
-Landroid/app/ActivityClient-IA;
-Landroid/app/ActivityClient;
-Landroid/app/ActivityManager$1;
-Landroid/app/ActivityManager$2;
-Landroid/app/ActivityManager$3;
-Landroid/app/ActivityManager$AppTask;
-Landroid/app/ActivityManager$MemoryInfo$1;
-Landroid/app/ActivityManager$MemoryInfo;
-Landroid/app/ActivityManager$MyUidObserver;
-Landroid/app/ActivityManager$OnUidImportanceListener;
-Landroid/app/ActivityManager$PendingIntentInfo$1;
-Landroid/app/ActivityManager$PendingIntentInfo;
-Landroid/app/ActivityManager$ProcessErrorStateInfo$1;
-Landroid/app/ActivityManager$ProcessErrorStateInfo;
-Landroid/app/ActivityManager$RecentTaskInfo$1;
-Landroid/app/ActivityManager$RecentTaskInfo$PersistedTaskSnapshotData;
-Landroid/app/ActivityManager$RecentTaskInfo-IA;
-Landroid/app/ActivityManager$RecentTaskInfo;
-Landroid/app/ActivityManager$RunningAppProcessInfo$1;
-Landroid/app/ActivityManager$RunningAppProcessInfo-IA;
-Landroid/app/ActivityManager$RunningAppProcessInfo;
-Landroid/app/ActivityManager$RunningServiceInfo$1;
-Landroid/app/ActivityManager$RunningServiceInfo-IA;
-Landroid/app/ActivityManager$RunningServiceInfo;
-Landroid/app/ActivityManager$RunningTaskInfo$1;
-Landroid/app/ActivityManager$RunningTaskInfo-IA;
-Landroid/app/ActivityManager$RunningTaskInfo;
-Landroid/app/ActivityManager$TaskDescription$1;
-Landroid/app/ActivityManager$TaskDescription-IA;
-Landroid/app/ActivityManager$TaskDescription;
-Landroid/app/ActivityManager;
-Landroid/app/ActivityManagerInternal;
-Landroid/app/ActivityOptions$1;
-Landroid/app/ActivityOptions$2;
-Landroid/app/ActivityOptions$OnAnimationStartedListener;
-Landroid/app/ActivityOptions$SceneTransitionInfo;
-Landroid/app/ActivityOptions$SourceInfo$1;
-Landroid/app/ActivityOptions$SourceInfo;
-Landroid/app/ActivityOptions;
-Landroid/app/ActivityTaskManager$1;
-Landroid/app/ActivityTaskManager$2;
-Landroid/app/ActivityTaskManager$RootTaskInfo$1;
-Landroid/app/ActivityTaskManager$RootTaskInfo;
-Landroid/app/ActivityTaskManager-IA;
-Landroid/app/ActivityTaskManager;
-Landroid/app/ActivityThread$$ExternalSyntheticLambda0;
-Landroid/app/ActivityThread$$ExternalSyntheticLambda1;
-Landroid/app/ActivityThread$$ExternalSyntheticLambda2;
-Landroid/app/ActivityThread$$ExternalSyntheticLambda3;
-Landroid/app/ActivityThread$$ExternalSyntheticLambda4;
-Landroid/app/ActivityThread$$ExternalSyntheticLambda5;
-Landroid/app/ActivityThread$1$$ExternalSyntheticLambda0;
-Landroid/app/ActivityThread$1;
-Landroid/app/ActivityThread$2;
-Landroid/app/ActivityThread$3;
-Landroid/app/ActivityThread$4;
-Landroid/app/ActivityThread$ActivityClientRecord$1;
-Landroid/app/ActivityThread$ActivityClientRecord;
-Landroid/app/ActivityThread$AppBindData;
-Landroid/app/ActivityThread$ApplicationThread$$ExternalSyntheticLambda2;
-Landroid/app/ActivityThread$ApplicationThread$1;
-Landroid/app/ActivityThread$ApplicationThread-IA;
-Landroid/app/ActivityThread$BindServiceData;
-Landroid/app/ActivityThread$ContextCleanupInfo;
-Landroid/app/ActivityThread$CreateBackupAgentData;
-Landroid/app/ActivityThread$CreateServiceData;
-Landroid/app/ActivityThread$DumpComponentInfo;
-Landroid/app/ActivityThread$DumpHeapData;
-Landroid/app/ActivityThread$DumpResourcesData;
-Landroid/app/ActivityThread$GcIdler;
-Landroid/app/ActivityThread$H;
-Landroid/app/ActivityThread$Idler-IA;
-Landroid/app/ActivityThread$Idler;
-Landroid/app/ActivityThread$Profiler;
-Landroid/app/ActivityThread$ProviderClientRecord;
-Landroid/app/ActivityThread$ProviderKey;
-Landroid/app/ActivityThread$ProviderRefCount;
-Landroid/app/ActivityThread$PurgeIdler;
-Landroid/app/ActivityThread$ReceiverData;
-Landroid/app/ActivityThread$RequestAssistContextExtras;
-Landroid/app/ActivityThread$SafeCancellationTransport;
-Landroid/app/ActivityThread$ServiceArgsData;
-Landroid/app/ActivityThread$UpdateCompatibilityData;
-Landroid/app/ActivityThread;
-Landroid/app/ActivityThreadInternal;
-Landroid/app/ActivityTransitionCoordinator;
-Landroid/app/ActivityTransitionState$$ExternalSyntheticLambda0;
-Landroid/app/ActivityTransitionState$1;
-Landroid/app/ActivityTransitionState;
-Landroid/app/AlarmManager$AlarmClockInfo$1;
-Landroid/app/AlarmManager$AlarmClockInfo;
-Landroid/app/AlarmManager$OnAlarmListener;
-Landroid/app/AlarmManager;
-Landroid/app/AlertDialog$Builder;
-Landroid/app/AlertDialog;
-Landroid/app/AppCompatCallbacks;
-Landroid/app/AppCompatTaskInfo;
-Landroid/app/AppComponentFactory;
-Landroid/app/AppDetailsActivity;
-Landroid/app/AppGlobals;
-Landroid/app/AppOpInfo$Builder;
-Landroid/app/AppOpInfo;
-Landroid/app/AppOpsManager$$ExternalSyntheticLambda2;
-Landroid/app/AppOpsManager$$ExternalSyntheticLambda3;
-Landroid/app/AppOpsManager$$ExternalSyntheticLambda4;
-Landroid/app/AppOpsManager$$ExternalSyntheticLambda5;
-Landroid/app/AppOpsManager$$ExternalSyntheticLambda6;
-Landroid/app/AppOpsManager$1;
-Landroid/app/AppOpsManager$2;
-Landroid/app/AppOpsManager$3;
-Landroid/app/AppOpsManager$4;
-Landroid/app/AppOpsManager$AppOpsCollector;
-Landroid/app/AppOpsManager$AttributedHistoricalOps$1;
-Landroid/app/AppOpsManager$AttributedHistoricalOps;
-Landroid/app/AppOpsManager$AttributedOpEntry$1;
-Landroid/app/AppOpsManager$AttributedOpEntry$LongSparseArrayParceling;
-Landroid/app/AppOpsManager$AttributedOpEntry;
-Landroid/app/AppOpsManager$HistoricalOp$1;
-Landroid/app/AppOpsManager$HistoricalOp;
-Landroid/app/AppOpsManager$HistoricalOps$1;
-Landroid/app/AppOpsManager$HistoricalOps;
-Landroid/app/AppOpsManager$HistoricalOpsRequest$Builder;
-Landroid/app/AppOpsManager$HistoricalOpsRequest;
-Landroid/app/AppOpsManager$HistoricalPackageOps$1;
-Landroid/app/AppOpsManager$HistoricalPackageOps;
-Landroid/app/AppOpsManager$HistoricalUidOps$1;
-Landroid/app/AppOpsManager$HistoricalUidOps;
-Landroid/app/AppOpsManager$Mode;
-Landroid/app/AppOpsManager$NoteOpEvent$1;
-Landroid/app/AppOpsManager$NoteOpEvent;
-Landroid/app/AppOpsManager$OnOpActiveChangedInternalListener;
-Landroid/app/AppOpsManager$OnOpActiveChangedListener;
-Landroid/app/AppOpsManager$OnOpChangedInternalListener;
-Landroid/app/AppOpsManager$OnOpChangedListener;
-Landroid/app/AppOpsManager$OnOpNotedCallback$1$$ExternalSyntheticLambda0;
-Landroid/app/AppOpsManager$OnOpNotedCallback$1;
-Landroid/app/AppOpsManager$OnOpNotedCallback;
-Landroid/app/AppOpsManager$OnOpNotedInternalListener;
-Landroid/app/AppOpsManager$OnOpNotedListener;
-Landroid/app/AppOpsManager$OnOpStartedListener;
-Landroid/app/AppOpsManager$OpEntry$1;
-Landroid/app/AppOpsManager$OpEntry;
-Landroid/app/AppOpsManager$OpEventProxyInfo$1;
-Landroid/app/AppOpsManager$OpEventProxyInfo;
-Landroid/app/AppOpsManager$PackageOps$1;
-Landroid/app/AppOpsManager$PackageOps;
-Landroid/app/AppOpsManager$PausedNotedAppOpsCollection;
-Landroid/app/AppOpsManager$RestrictionBypass;
-Landroid/app/AppOpsManager$SamplingStrategy;
-Landroid/app/AppOpsManager;
-Landroid/app/AppOpsManagerInternal;
-Landroid/app/Application$ActivityLifecycleCallbacks;
-Landroid/app/Application$OnProvideAssistDataListener;
-Landroid/app/Application;
-Landroid/app/ApplicationErrorReport$1;
-Landroid/app/ApplicationErrorReport$AnrInfo;
-Landroid/app/ApplicationErrorReport$BatteryInfo;
-Landroid/app/ApplicationErrorReport$CrashInfo;
-Landroid/app/ApplicationErrorReport$ParcelableCrashInfo$1;
-Landroid/app/ApplicationErrorReport$ParcelableCrashInfo;
-Landroid/app/ApplicationErrorReport$RunningServiceInfo;
-Landroid/app/ApplicationErrorReport;
-Landroid/app/ApplicationExitInfo$1;
-Landroid/app/ApplicationExitInfo-IA;
-Landroid/app/ApplicationExitInfo;
-Landroid/app/ApplicationLoaders$CachedClassLoader-IA;
-Landroid/app/ApplicationLoaders$CachedClassLoader;
-Landroid/app/ApplicationLoaders;
-Landroid/app/ApplicationPackageManager$$ExternalSyntheticLambda1;
-Landroid/app/ApplicationPackageManager$$ExternalSyntheticLambda2;
-Landroid/app/ApplicationPackageManager$1;
-Landroid/app/ApplicationPackageManager$2;
-Landroid/app/ApplicationPackageManager$3;
-Landroid/app/ApplicationPackageManager$GetPackagesForUidResult;
-Landroid/app/ApplicationPackageManager$HasSystemFeatureQuery;
-Landroid/app/ApplicationPackageManager$MoveCallbackDelegate;
-Landroid/app/ApplicationPackageManager$ResourceName;
-Landroid/app/AsyncNotedAppOp$1;
-Landroid/app/AsyncNotedAppOp;
-Landroid/app/AutomaticZenRule$1;
-Landroid/app/AutomaticZenRule;
-Landroid/app/BackStackRecord$Op;
-Landroid/app/BackStackRecord;
-Landroid/app/BackStackState$1;
-Landroid/app/BackStackState;
-Landroid/app/BackgroundServiceStartNotAllowedException$1;
-Landroid/app/BackgroundServiceStartNotAllowedException;
-Landroid/app/BroadcastOptions;
-Landroid/app/ClientTransactionHandler;
-Landroid/app/ComponentCaller;
-Landroid/app/ComponentOptions;
-Landroid/app/ConfigurationChangedListenerController;
-Landroid/app/ConfigurationController;
-Landroid/app/ContentProviderHolder$1;
-Landroid/app/ContentProviderHolder-IA;
-Landroid/app/ContentProviderHolder;
-Landroid/app/ContextImpl$1;
-Landroid/app/ContextImpl$ApplicationContentResolver;
-Landroid/app/DexLoadReporter;
-Landroid/app/Dialog$$ExternalSyntheticLambda0;
-Landroid/app/Dialog$$ExternalSyntheticLambda1;
-Landroid/app/Dialog$$ExternalSyntheticLambda2;
-Landroid/app/Dialog$ListenersHandler;
-Landroid/app/Dialog;
-Landroid/app/DialogFragment;
-Landroid/app/DirectAction$1;
-Landroid/app/DirectAction;
-Landroid/app/DisabledWallpaperManager;
-Landroid/app/DownloadManager$CursorTranslator;
-Landroid/app/DownloadManager$Query;
-Landroid/app/DownloadManager$Request;
-Landroid/app/DownloadManager;
-Landroid/app/DreamManager;
-Landroid/app/EnterTransitionCoordinator;
-Landroid/app/EventLogTags;
-Landroid/app/ExitTransitionCoordinator$ActivityExitTransitionCallbacks;
-Landroid/app/ExitTransitionCoordinator$ExitTransitionCallbacks;
-Landroid/app/ExitTransitionCoordinator;
-Landroid/app/FeatureFlags;
-Landroid/app/FeatureFlagsImpl;
-Landroid/app/Flags;
-Landroid/app/ForegroundServiceStartNotAllowedException$1;
-Landroid/app/ForegroundServiceStartNotAllowedException;
-Landroid/app/ForegroundServiceTypePolicy$ForegroundServiceTypePolicyInfo;
-Landroid/app/Fragment$1;
-Landroid/app/Fragment$AnimationInfo;
-Landroid/app/Fragment$InstantiationException;
-Landroid/app/Fragment$OnStartEnterTransitionListener;
-Landroid/app/Fragment;
-Landroid/app/FragmentContainer;
-Landroid/app/FragmentController;
-Landroid/app/FragmentHostCallback;
-Landroid/app/FragmentManager$BackStackEntry;
-Landroid/app/FragmentManager$FragmentLifecycleCallbacks;
-Landroid/app/FragmentManager$OnBackStackChangedListener;
-Landroid/app/FragmentManager;
-Landroid/app/FragmentManagerImpl$1;
-Landroid/app/FragmentManagerImpl$2;
-Landroid/app/FragmentManagerImpl$AnimateOnHWLayerIfNeededListener;
-Landroid/app/FragmentManagerImpl$OpGenerator;
-Landroid/app/FragmentManagerImpl$StartEnterTransitionListener;
-Landroid/app/FragmentManagerImpl;
-Landroid/app/FragmentManagerNonConfig;
-Landroid/app/FragmentManagerState$1;
-Landroid/app/FragmentManagerState;
-Landroid/app/FragmentState$1;
-Landroid/app/FragmentState;
-Landroid/app/FragmentTransaction;
-Landroid/app/FragmentTransition$2;
-Landroid/app/FragmentTransition$5;
-Landroid/app/FragmentTransition$FragmentContainerTransition;
-Landroid/app/FragmentTransition;
-Landroid/app/GameManager;
-Landroid/app/GrammaticalInflectionManager;
-Landroid/app/IActivityClientController$Stub$Proxy;
-Landroid/app/IActivityClientController$Stub;
-Landroid/app/IActivityClientController;
-Landroid/app/IActivityController$Stub$Proxy;
-Landroid/app/IActivityController$Stub;
-Landroid/app/IActivityController;
-Landroid/app/IActivityManager$Stub$Proxy;
-Landroid/app/IActivityManager$Stub;
-Landroid/app/IActivityManager;
-Landroid/app/IActivityTaskManager$Stub$Proxy;
-Landroid/app/IActivityTaskManager$Stub;
-Landroid/app/IActivityTaskManager;
-Landroid/app/IAlarmCompleteListener$Stub$Proxy;
-Landroid/app/IAlarmCompleteListener$Stub;
-Landroid/app/IAlarmCompleteListener;
-Landroid/app/IAlarmListener$Stub;
-Landroid/app/IAlarmListener;
-Landroid/app/IAlarmManager$Stub$Proxy;
-Landroid/app/IAlarmManager$Stub;
-Landroid/app/IAlarmManager;
-Landroid/app/IAppTask$Stub$Proxy;
-Landroid/app/IAppTask$Stub;
-Landroid/app/IAppTask;
-Landroid/app/IAppTraceRetriever$Stub$Proxy;
-Landroid/app/IAppTraceRetriever$Stub;
-Landroid/app/IAppTraceRetriever;
-Landroid/app/IApplicationStartInfoCompleteListener$Stub$Proxy;
-Landroid/app/IApplicationStartInfoCompleteListener$Stub;
-Landroid/app/IApplicationStartInfoCompleteListener;
-Landroid/app/IApplicationThread$Stub;
-Landroid/app/IApplicationThread;
-Landroid/app/IAssistDataReceiver$Stub$Proxy;
-Landroid/app/IAssistDataReceiver$Stub;
-Landroid/app/IAssistDataReceiver;
-Landroid/app/IBackupAgent$Stub$Proxy;
-Landroid/app/IBackupAgent$Stub;
-Landroid/app/IBackupAgent;
-Landroid/app/ICompatCameraControlCallback;
-Landroid/app/IForegroundServiceObserver$Stub$Proxy;
-Landroid/app/IForegroundServiceObserver$Stub;
-Landroid/app/IForegroundServiceObserver;
-Landroid/app/IGameManagerService$Stub$Proxy;
-Landroid/app/IGameManagerService$Stub;
-Landroid/app/IGameManagerService;
-Landroid/app/IInstantAppResolver$Stub$Proxy;
-Landroid/app/IInstantAppResolver$Stub;
-Landroid/app/IInstantAppResolver;
-Landroid/app/IInstrumentationWatcher$Stub$Proxy;
-Landroid/app/IInstrumentationWatcher$Stub;
-Landroid/app/IInstrumentationWatcher;
-Landroid/app/ILocalWallpaperColorConsumer$Stub;
-Landroid/app/ILocalWallpaperColorConsumer;
-Landroid/app/ILocaleManager$Stub$Proxy;
-Landroid/app/ILocaleManager$Stub;
-Landroid/app/ILocaleManager;
-Landroid/app/INotificationManager$Stub$Proxy;
-Landroid/app/INotificationManager$Stub;
-Landroid/app/INotificationManager;
-Landroid/app/IOnProjectionStateChangedListener$Stub;
-Landroid/app/IOnProjectionStateChangedListener;
-Landroid/app/IParcelFileDescriptorRetriever$Stub$Proxy;
-Landroid/app/IParcelFileDescriptorRetriever$Stub;
-Landroid/app/IParcelFileDescriptorRetriever;
-Landroid/app/IProcessObserver$Stub$Proxy;
-Landroid/app/IProcessObserver$Stub;
-Landroid/app/IProcessObserver;
-Landroid/app/IRequestFinishCallback$Stub$Proxy;
-Landroid/app/IRequestFinishCallback$Stub;
-Landroid/app/IRequestFinishCallback;
-Landroid/app/IScreenCaptureObserver;
-Landroid/app/ISearchManager$Stub$Proxy;
-Landroid/app/ISearchManager$Stub;
-Landroid/app/ISearchManager;
-Landroid/app/IServiceConnection$Stub;
-Landroid/app/IServiceConnection;
-Landroid/app/IStopUserCallback$Stub$Proxy;
-Landroid/app/IStopUserCallback$Stub;
-Landroid/app/IStopUserCallback;
-Landroid/app/ITaskStackListener$Stub$Proxy;
-Landroid/app/ITaskStackListener$Stub;
-Landroid/app/ITaskStackListener;
-Landroid/app/ITransientNotification$Stub$Proxy;
-Landroid/app/ITransientNotification$Stub;
-Landroid/app/ITransientNotification;
-Landroid/app/ITransientNotificationCallback$Stub$Proxy;
-Landroid/app/ITransientNotificationCallback$Stub;
-Landroid/app/ITransientNotificationCallback;
-Landroid/app/IUiAutomationConnection$Stub$Proxy;
-Landroid/app/IUiAutomationConnection$Stub;
-Landroid/app/IUiAutomationConnection;
-Landroid/app/IUiModeManager$Stub$Proxy;
-Landroid/app/IUiModeManager$Stub;
-Landroid/app/IUiModeManager;
-Landroid/app/IUiModeManagerCallback$Stub;
-Landroid/app/IUiModeManagerCallback;
-Landroid/app/IUidFrozenStateChangedCallback$Stub$Proxy;
-Landroid/app/IUidFrozenStateChangedCallback$Stub;
-Landroid/app/IUidFrozenStateChangedCallback;
-Landroid/app/IUidObserver$Stub;
-Landroid/app/IUidObserver;
-Landroid/app/IUnsafeIntentStrictModeCallback$Stub;
-Landroid/app/IUnsafeIntentStrictModeCallback;
-Landroid/app/IUriGrantsManager$Stub$Proxy;
-Landroid/app/IUriGrantsManager$Stub;
-Landroid/app/IUriGrantsManager;
-Landroid/app/IUserSwitchObserver$Stub$Proxy;
-Landroid/app/IUserSwitchObserver$Stub;
-Landroid/app/IUserSwitchObserver;
-Landroid/app/IWallpaperManager$Stub$Proxy;
-Landroid/app/IWallpaperManager$Stub;
-Landroid/app/IWallpaperManager;
-Landroid/app/IWallpaperManagerCallback$Stub$Proxy;
-Landroid/app/IWallpaperManagerCallback$Stub;
-Landroid/app/IWallpaperManagerCallback;
-Landroid/app/InstantAppResolverService$1;
-Landroid/app/InstantAppResolverService$InstantAppResolutionCallback;
-Landroid/app/InstantAppResolverService$ServiceHandler;
-Landroid/app/InstantAppResolverService;
-Landroid/app/Instrumentation$ActivityGoing;
-Landroid/app/Instrumentation$ActivityMonitor;
-Landroid/app/Instrumentation$ActivityResult;
-Landroid/app/Instrumentation$ActivityWaiter;
-Landroid/app/Instrumentation;
-Landroid/app/IntentReceiverLeaked;
-Landroid/app/IntentService$ServiceHandler;
-Landroid/app/IntentService;
-Landroid/app/KeyguardManager$1;
-Landroid/app/KeyguardManager$KeyguardDismissCallback;
-Landroid/app/KeyguardManager;
-Landroid/app/ListActivity;
-Landroid/app/LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0;
-Landroid/app/LoadedApk$ReceiverDispatcher$Args;
-Landroid/app/LoadedApk$ReceiverDispatcher;
-Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo-IA;
-Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo;
-Landroid/app/LoadedApk$ServiceDispatcher$DeathMonitor;
-Landroid/app/LoadedApk$ServiceDispatcher$RunConnection;
-Landroid/app/LoadedApk$ServiceDispatcher;
-Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
-Landroid/app/LoadedApk$WarningContextClassLoader-IA;
-Landroid/app/LoadedApk$WarningContextClassLoader;
-Landroid/app/LoadedApk;
-Landroid/app/LoaderManager$LoaderCallbacks;
-Landroid/app/LoaderManager;
-Landroid/app/LoaderManagerImpl$LoaderInfo;
-Landroid/app/LoaderManagerImpl;
-Landroid/app/LocaleConfig$1;
-Landroid/app/LocaleConfig;
-Landroid/app/LocaleManager;
-Landroid/app/NativeActivity;
-Landroid/app/Notification$$ExternalSyntheticLambda0;
-Landroid/app/Notification$1;
-Landroid/app/Notification$Action$1;
-Landroid/app/Notification$Action$Builder;
-Landroid/app/Notification$Action-IA;
-Landroid/app/Notification$Action;
-Landroid/app/Notification$BigPictureStyle;
-Landroid/app/Notification$BigTextStyle;
-Landroid/app/Notification$BubbleMetadata$1;
-Landroid/app/Notification$BubbleMetadata$Builder;
-Landroid/app/Notification$BubbleMetadata-IA;
-Landroid/app/Notification$BubbleMetadata;
-Landroid/app/Notification$Builder;
-Landroid/app/Notification$BuilderRemoteViews;
-Landroid/app/Notification$CallStyle;
-Landroid/app/Notification$Colors;
-Landroid/app/Notification$DecoratedCustomViewStyle;
-Landroid/app/Notification$DecoratedMediaCustomViewStyle;
-Landroid/app/Notification$Extender;
-Landroid/app/Notification$InboxStyle;
-Landroid/app/Notification$MediaStyle;
-Landroid/app/Notification$MessagingStyle$Message;
-Landroid/app/Notification$MessagingStyle;
-Landroid/app/Notification$StandardTemplateParams-IA;
-Landroid/app/Notification$StandardTemplateParams;
-Landroid/app/Notification$Style;
-Landroid/app/Notification$TemplateBindResult$MarginSet;
-Landroid/app/Notification$TemplateBindResult;
-Landroid/app/Notification$TvExtender;
-Landroid/app/Notification;
-Landroid/app/NotificationChannel$1;
-Landroid/app/NotificationChannel;
-Landroid/app/NotificationChannelGroup$1;
-Landroid/app/NotificationChannelGroup;
-Landroid/app/NotificationHistory$1;
-Landroid/app/NotificationHistory$HistoricalNotification$Builder;
-Landroid/app/NotificationHistory$HistoricalNotification;
-Landroid/app/NotificationHistory;
-Landroid/app/NotificationManager$Policy$1;
-Landroid/app/NotificationManager$Policy;
-Landroid/app/NotificationManager;
-Landroid/app/OnActivityPausedListener;
-Landroid/app/PackageInstallObserver$1;
-Landroid/app/PackageInstallObserver;
-Landroid/app/PendingIntent$$ExternalSyntheticLambda0;
-Landroid/app/PendingIntent$$ExternalSyntheticLambda1;
-Landroid/app/PendingIntent$$ExternalSyntheticLambda2;
-Landroid/app/PendingIntent$$ExternalSyntheticLambda3;
-Landroid/app/PendingIntent$1;
-Landroid/app/PendingIntent$CancelListener;
-Landroid/app/PendingIntent$CanceledException;
-Landroid/app/PendingIntent$FinishedDispatcher;
-Landroid/app/PendingIntent$OnFinished;
-Landroid/app/PendingIntent$OnMarshaledListener;
-Landroid/app/PendingIntent;
-Landroid/app/Person$1;
-Landroid/app/Person$Builder-IA;
-Landroid/app/Person$Builder;
-Landroid/app/Person-IA;
-Landroid/app/Person;
-Landroid/app/PictureInPictureParams$1;
-Landroid/app/PictureInPictureParams$Builder;
-Landroid/app/PictureInPictureParams;
-Landroid/app/PictureInPictureUiState$1;
-Landroid/app/PictureInPictureUiState;
-Landroid/app/Presentation;
-Landroid/app/ProcessMemoryState$1;
-Landroid/app/ProcessMemoryState;
-Landroid/app/ProfilerInfo$1;
-Landroid/app/ProfilerInfo;
-Landroid/app/ProgressDialog$1;
-Landroid/app/ProgressDialog;
-Landroid/app/PropertyInvalidatedCache$1;
-Landroid/app/PropertyInvalidatedCache$AutoCorker$1;
-Landroid/app/PropertyInvalidatedCache$AutoCorker;
-Landroid/app/PropertyInvalidatedCache$DefaultComputer;
-Landroid/app/PropertyInvalidatedCache$NoPreloadHolder;
-Landroid/app/PropertyInvalidatedCache$QueryHandler;
-Landroid/app/PropertyInvalidatedCache;
-Landroid/app/QueuedWork$QueuedWorkHandler;
-Landroid/app/QueuedWork;
-Landroid/app/ReceiverInfo$1;
-Landroid/app/ReceiverInfo;
-Landroid/app/ReceiverRestrictedContext;
-Landroid/app/RemoteAction$1;
-Landroid/app/RemoteAction;
-Landroid/app/RemoteInput$1;
-Landroid/app/RemoteInput$Builder;
-Landroid/app/RemoteInput-IA;
-Landroid/app/RemoteInput;
-Landroid/app/RemoteInputHistoryItem$1;
-Landroid/app/RemoteInputHistoryItem;
-Landroid/app/RemoteServiceException;
-Landroid/app/ResourcesManager$$ExternalSyntheticLambda0;
-Landroid/app/ResourcesManager$$ExternalSyntheticLambda1;
-Landroid/app/ResourcesManager$ActivityResource-IA;
-Landroid/app/ResourcesManager$ActivityResource;
-Landroid/app/ResourcesManager$ActivityResources-IA;
-Landroid/app/ResourcesManager$ActivityResources;
-Landroid/app/ResourcesManager$ApkAssetsSupplier;
-Landroid/app/ResourcesManager$ApkKey;
-Landroid/app/ResourcesManager$UpdateHandler-IA;
-Landroid/app/ResourcesManager$UpdateHandler;
-Landroid/app/ResourcesManager;
-Landroid/app/ResultInfo$1;
-Landroid/app/ResultInfo;
-Landroid/app/RuntimeAppOpAccessMessage$1;
-Landroid/app/RuntimeAppOpAccessMessage;
-Landroid/app/SearchDialog;
-Landroid/app/SearchManager$OnCancelListener;
-Landroid/app/SearchManager$OnDismissListener;
-Landroid/app/SearchManager;
-Landroid/app/SearchableInfo$1;
-Landroid/app/SearchableInfo$ActionKeyInfo$1;
-Landroid/app/SearchableInfo$ActionKeyInfo;
-Landroid/app/SearchableInfo;
-Landroid/app/Service;
-Landroid/app/ServiceConnectionLeaked;
-Landroid/app/ServiceStartArgs$1;
-Landroid/app/ServiceStartArgs;
-Landroid/app/ServiceStartNotAllowedException;
-Landroid/app/SharedElementCallback$1;
-Landroid/app/SharedElementCallback;
-Landroid/app/SharedPreferencesImpl$$ExternalSyntheticLambda0;
-Landroid/app/SharedPreferencesImpl$1;
-Landroid/app/SharedPreferencesImpl$EditorImpl$$ExternalSyntheticLambda0;
-Landroid/app/SharedPreferencesImpl$EditorImpl$1;
-Landroid/app/SharedPreferencesImpl$EditorImpl$2;
-Landroid/app/SharedPreferencesImpl$EditorImpl;
-Landroid/app/SharedPreferencesImpl$MemoryCommitResult-IA;
-Landroid/app/SharedPreferencesImpl$MemoryCommitResult;
-Landroid/app/SharedPreferencesImpl$SharedPreferencesThreadFactory;
-Landroid/app/SharedPreferencesImpl;
-Landroid/app/StackTrace;
-Landroid/app/StatusBarManager;
-Landroid/app/SyncNotedAppOp$1;
-Landroid/app/SyncNotedAppOp;
-Landroid/app/SynchronousUserSwitchObserver;
-Landroid/app/SystemServiceRegistry$100;
-Landroid/app/SystemServiceRegistry$101;
-Landroid/app/SystemServiceRegistry$102;
-Landroid/app/SystemServiceRegistry$103;
-Landroid/app/SystemServiceRegistry$104;
-Landroid/app/SystemServiceRegistry$105;
-Landroid/app/SystemServiceRegistry$106;
-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$113;
-Landroid/app/SystemServiceRegistry$114;
-Landroid/app/SystemServiceRegistry$115;
-Landroid/app/SystemServiceRegistry$116;
-Landroid/app/SystemServiceRegistry$117;
-Landroid/app/SystemServiceRegistry$118;
-Landroid/app/SystemServiceRegistry$119;
-Landroid/app/SystemServiceRegistry$11;
-Landroid/app/SystemServiceRegistry$120;
-Landroid/app/SystemServiceRegistry$121;
-Landroid/app/SystemServiceRegistry$122;
-Landroid/app/SystemServiceRegistry$123;
-Landroid/app/SystemServiceRegistry$124;
-Landroid/app/SystemServiceRegistry$125;
-Landroid/app/SystemServiceRegistry$126;
-Landroid/app/SystemServiceRegistry$127;
-Landroid/app/SystemServiceRegistry$128;
-Landroid/app/SystemServiceRegistry$129;
-Landroid/app/SystemServiceRegistry$12;
-Landroid/app/SystemServiceRegistry$130;
-Landroid/app/SystemServiceRegistry$131;
-Landroid/app/SystemServiceRegistry$132;
-Landroid/app/SystemServiceRegistry$133;
-Landroid/app/SystemServiceRegistry$134;
-Landroid/app/SystemServiceRegistry$135;
-Landroid/app/SystemServiceRegistry$136;
-Landroid/app/SystemServiceRegistry$137;
-Landroid/app/SystemServiceRegistry$138;
-Landroid/app/SystemServiceRegistry$139;
-Landroid/app/SystemServiceRegistry$13;
-Landroid/app/SystemServiceRegistry$140;
-Landroid/app/SystemServiceRegistry$143;
-Landroid/app/SystemServiceRegistry$144;
-Landroid/app/SystemServiceRegistry$14;
-Landroid/app/SystemServiceRegistry$15;
-Landroid/app/SystemServiceRegistry$16;
-Landroid/app/SystemServiceRegistry$17;
-Landroid/app/SystemServiceRegistry$18;
-Landroid/app/SystemServiceRegistry$19;
-Landroid/app/SystemServiceRegistry$1;
-Landroid/app/SystemServiceRegistry$20;
-Landroid/app/SystemServiceRegistry$21;
-Landroid/app/SystemServiceRegistry$22;
-Landroid/app/SystemServiceRegistry$23;
-Landroid/app/SystemServiceRegistry$24;
-Landroid/app/SystemServiceRegistry$25;
-Landroid/app/SystemServiceRegistry$26;
-Landroid/app/SystemServiceRegistry$27;
-Landroid/app/SystemServiceRegistry$28;
-Landroid/app/SystemServiceRegistry$29;
-Landroid/app/SystemServiceRegistry$2;
-Landroid/app/SystemServiceRegistry$30;
-Landroid/app/SystemServiceRegistry$31;
-Landroid/app/SystemServiceRegistry$32;
-Landroid/app/SystemServiceRegistry$33;
-Landroid/app/SystemServiceRegistry$34;
-Landroid/app/SystemServiceRegistry$35;
-Landroid/app/SystemServiceRegistry$36;
-Landroid/app/SystemServiceRegistry$37;
-Landroid/app/SystemServiceRegistry$38;
-Landroid/app/SystemServiceRegistry$39;
-Landroid/app/SystemServiceRegistry$3;
-Landroid/app/SystemServiceRegistry$40;
-Landroid/app/SystemServiceRegistry$41;
-Landroid/app/SystemServiceRegistry$42;
-Landroid/app/SystemServiceRegistry$43;
-Landroid/app/SystemServiceRegistry$44;
-Landroid/app/SystemServiceRegistry$45;
-Landroid/app/SystemServiceRegistry$46;
-Landroid/app/SystemServiceRegistry$47;
-Landroid/app/SystemServiceRegistry$48;
-Landroid/app/SystemServiceRegistry$49;
-Landroid/app/SystemServiceRegistry$4;
-Landroid/app/SystemServiceRegistry$50;
-Landroid/app/SystemServiceRegistry$51;
-Landroid/app/SystemServiceRegistry$52;
-Landroid/app/SystemServiceRegistry$53;
-Landroid/app/SystemServiceRegistry$54;
-Landroid/app/SystemServiceRegistry$55;
-Landroid/app/SystemServiceRegistry$56;
-Landroid/app/SystemServiceRegistry$57;
-Landroid/app/SystemServiceRegistry$58;
-Landroid/app/SystemServiceRegistry$59;
-Landroid/app/SystemServiceRegistry$5;
-Landroid/app/SystemServiceRegistry$60;
-Landroid/app/SystemServiceRegistry$61;
-Landroid/app/SystemServiceRegistry$62;
-Landroid/app/SystemServiceRegistry$63;
-Landroid/app/SystemServiceRegistry$64;
-Landroid/app/SystemServiceRegistry$65;
-Landroid/app/SystemServiceRegistry$66;
-Landroid/app/SystemServiceRegistry$67;
-Landroid/app/SystemServiceRegistry$68;
-Landroid/app/SystemServiceRegistry$69;
-Landroid/app/SystemServiceRegistry$6;
-Landroid/app/SystemServiceRegistry$70;
-Landroid/app/SystemServiceRegistry$71;
-Landroid/app/SystemServiceRegistry$72;
-Landroid/app/SystemServiceRegistry$73;
-Landroid/app/SystemServiceRegistry$74;
-Landroid/app/SystemServiceRegistry$75;
-Landroid/app/SystemServiceRegistry$76;
-Landroid/app/SystemServiceRegistry$77;
-Landroid/app/SystemServiceRegistry$78;
-Landroid/app/SystemServiceRegistry$79;
-Landroid/app/SystemServiceRegistry$7;
-Landroid/app/SystemServiceRegistry$80;
-Landroid/app/SystemServiceRegistry$81;
-Landroid/app/SystemServiceRegistry$82;
-Landroid/app/SystemServiceRegistry$83;
-Landroid/app/SystemServiceRegistry$84;
-Landroid/app/SystemServiceRegistry$85;
-Landroid/app/SystemServiceRegistry$86;
-Landroid/app/SystemServiceRegistry$87;
-Landroid/app/SystemServiceRegistry$88;
-Landroid/app/SystemServiceRegistry$89;
-Landroid/app/SystemServiceRegistry$8;
-Landroid/app/SystemServiceRegistry$90;
-Landroid/app/SystemServiceRegistry$91;
-Landroid/app/SystemServiceRegistry$92;
-Landroid/app/SystemServiceRegistry$93;
-Landroid/app/SystemServiceRegistry$94;
-Landroid/app/SystemServiceRegistry$95;
-Landroid/app/SystemServiceRegistry$96;
-Landroid/app/SystemServiceRegistry$97;
-Landroid/app/SystemServiceRegistry$98;
-Landroid/app/SystemServiceRegistry$99;
-Landroid/app/SystemServiceRegistry$9;
-Landroid/app/SystemServiceRegistry$CachedServiceFetcher;
-Landroid/app/SystemServiceRegistry$ContextAwareServiceProducerWithBinder;
-Landroid/app/SystemServiceRegistry$ContextAwareServiceProducerWithoutBinder;
-Landroid/app/SystemServiceRegistry$ServiceFetcher;
-Landroid/app/SystemServiceRegistry$StaticServiceFetcher;
-Landroid/app/SystemServiceRegistry$StaticServiceProducerWithBinder;
-Landroid/app/SystemServiceRegistry$StaticServiceProducerWithoutBinder;
-Landroid/app/SystemServiceRegistry;
-Landroid/app/TaskInfo;
-Landroid/app/TaskStackListener;
-Landroid/app/UiModeManager$1;
-Landroid/app/UiModeManager$Globals;
-Landroid/app/UiModeManager$InnerListener;
-Landroid/app/UiModeManager$OnProjectionStateChangedListener;
-Landroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager-IA;
-Landroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager;
-Landroid/app/UiModeManager;
-Landroid/app/UidObserver;
-Landroid/app/UriGrantsManager$1;
-Landroid/app/UriGrantsManager;
-Landroid/app/UserSwitchObserver;
-Landroid/app/VoiceInteractor$Request;
-Landroid/app/VoiceInteractor;
-Landroid/app/Vr2dDisplayProperties$1;
-Landroid/app/Vr2dDisplayProperties;
-Landroid/app/VrManager;
-Landroid/app/WaitResult$1;
-Landroid/app/WaitResult;
-Landroid/app/WallpaperColors$1;
-Landroid/app/WallpaperColors;
-Landroid/app/WallpaperInfo$1;
-Landroid/app/WallpaperInfo;
-Landroid/app/WallpaperManager$CachedWallpaper;
-Landroid/app/WallpaperManager$ColorManagementProxy;
-Landroid/app/WallpaperManager$Globals$$ExternalSyntheticLambda1;
-Landroid/app/WallpaperManager$Globals$1;
-Landroid/app/WallpaperManager$Globals;
-Landroid/app/WallpaperManager$OnColorsChangedListener;
-Landroid/app/WallpaperManager;
-Landroid/app/WindowConfiguration$1;
-Landroid/app/WindowConfiguration-IA;
-Landroid/app/WindowConfiguration;
-Landroid/app/admin/DeviceAdminInfo$1;
-Landroid/app/admin/DeviceAdminInfo$PolicyInfo;
-Landroid/app/admin/DeviceAdminInfo;
-Landroid/app/admin/DevicePolicyCache$EmptyDevicePolicyCache;
-Landroid/app/admin/DevicePolicyCache;
-Landroid/app/admin/DevicePolicyEventLogger;
-Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda10;
-Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda11;
-Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda2;
-Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda3;
-Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda4;
-Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda5;
-Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda6;
-Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda7;
-Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda8;
-Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda9;
-Landroid/app/admin/DevicePolicyManager$1;
-Landroid/app/admin/DevicePolicyManager$2;
-Landroid/app/admin/DevicePolicyManager$InstallSystemUpdateCallback;
-Landroid/app/admin/DevicePolicyManager$OnClearApplicationUserDataListener;
-Landroid/app/admin/DevicePolicyManager;
-Landroid/app/admin/DevicePolicyManagerInternal$OnCrossProfileWidgetProvidersChangeListener;
-Landroid/app/admin/DevicePolicyManagerInternal;
-Landroid/app/admin/DevicePolicyResourcesManager;
-Landroid/app/admin/DeviceStateCache;
-Landroid/app/admin/FactoryResetProtectionPolicy$1;
-Landroid/app/admin/FactoryResetProtectionPolicy;
-Landroid/app/admin/IAuditLogEventsCallback$Stub;
-Landroid/app/admin/IAuditLogEventsCallback;
-Landroid/app/admin/IDeviceAdminService$Stub$Proxy;
-Landroid/app/admin/IDeviceAdminService$Stub;
-Landroid/app/admin/IDeviceAdminService;
-Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;
-Landroid/app/admin/IDevicePolicyManager$Stub;
-Landroid/app/admin/IDevicePolicyManager;
-Landroid/app/admin/IKeyguardCallback$Stub;
-Landroid/app/admin/IKeyguardCallback;
-Landroid/app/admin/NetworkEvent$1;
-Landroid/app/admin/NetworkEvent;
-Landroid/app/admin/ParcelableResource$1;
-Landroid/app/admin/ParcelableResource;
-Landroid/app/admin/PasswordMetrics$1;
-Landroid/app/admin/PasswordMetrics$ComplexityBucket$1;
-Landroid/app/admin/PasswordMetrics$ComplexityBucket$2;
-Landroid/app/admin/PasswordMetrics$ComplexityBucket$3;
-Landroid/app/admin/PasswordMetrics$ComplexityBucket$4;
-Landroid/app/admin/PasswordMetrics$ComplexityBucket;
-Landroid/app/admin/PasswordMetrics;
-Landroid/app/admin/PasswordPolicy;
-Landroid/app/admin/SecurityLog$SecurityEvent$1;
-Landroid/app/admin/SecurityLog$SecurityEvent;
-Landroid/app/admin/SecurityLog;
-Landroid/app/admin/StartInstallingUpdateCallback$Stub$Proxy;
-Landroid/app/admin/StartInstallingUpdateCallback$Stub;
-Landroid/app/admin/StartInstallingUpdateCallback;
-Landroid/app/admin/SystemUpdateInfo$1;
-Landroid/app/admin/SystemUpdateInfo;
-Landroid/app/admin/SystemUpdatePolicy$1;
-Landroid/app/admin/SystemUpdatePolicy;
-Landroid/app/admin/WifiSsidPolicy$1;
-Landroid/app/admin/WifiSsidPolicy;
-Landroid/app/ambientcontext/AmbientContextManager;
-Landroid/app/ambientcontext/IAmbientContextManager$Stub$Proxy;
-Landroid/app/ambientcontext/IAmbientContextManager$Stub;
-Landroid/app/ambientcontext/IAmbientContextManager;
-Landroid/app/assist/ActivityId$1;
-Landroid/app/assist/ActivityId;
-Landroid/app/assist/AssistContent$1;
-Landroid/app/assist/AssistContent;
-Landroid/app/assist/AssistStructure$1;
-Landroid/app/assist/AssistStructure$AutofillOverlay;
-Landroid/app/assist/AssistStructure$HtmlInfoNode$1;
-Landroid/app/assist/AssistStructure$HtmlInfoNode;
-Landroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;
-Landroid/app/assist/AssistStructure$ParcelTransferReader;
-Landroid/app/assist/AssistStructure$ParcelTransferWriter;
-Landroid/app/assist/AssistStructure$SendChannel;
-Landroid/app/assist/AssistStructure$ViewNode;
-Landroid/app/assist/AssistStructure$ViewNodeBuilder;
-Landroid/app/assist/AssistStructure$ViewNodeParcelable$1;
-Landroid/app/assist/AssistStructure$ViewNodeParcelable;
-Landroid/app/assist/AssistStructure$ViewNodeText;
-Landroid/app/assist/AssistStructure$ViewStackEntry;
-Landroid/app/assist/AssistStructure$WindowNode;
-Landroid/app/assist/AssistStructure;
-Landroid/app/backup/BackupAgent$BackupServiceBinder-IA;
-Landroid/app/backup/BackupAgent$BackupServiceBinder;
-Landroid/app/backup/BackupAgent$SharedPrefsSynchronizer;
-Landroid/app/backup/BackupAgent;
-Landroid/app/backup/BackupAgentHelper;
-Landroid/app/backup/BackupDataInput$EntityHeader;
-Landroid/app/backup/BackupDataInput;
-Landroid/app/backup/BackupDataOutput;
-Landroid/app/backup/BackupHelper;
-Landroid/app/backup/BackupHelperDispatcher$Header-IA;
-Landroid/app/backup/BackupHelperDispatcher$Header;
-Landroid/app/backup/BackupHelperDispatcher;
-Landroid/app/backup/BackupHelperWithLogger;
-Landroid/app/backup/BackupManager$BackupObserverWrapper$1;
-Landroid/app/backup/BackupManager$BackupObserverWrapper;
-Landroid/app/backup/BackupManager;
-Landroid/app/backup/BackupManagerMonitor;
-Landroid/app/backup/BackupObserver;
-Landroid/app/backup/BackupProgress$1;
-Landroid/app/backup/BackupProgress;
-Landroid/app/backup/BackupRestoreEventLogger;
-Landroid/app/backup/BackupTransport$TransportImpl;
-Landroid/app/backup/BackupTransport;
-Landroid/app/backup/BlobBackupHelper;
-Landroid/app/backup/FileBackupHelper;
-Landroid/app/backup/FileBackupHelperBase;
-Landroid/app/backup/FullBackup;
-Landroid/app/backup/FullBackupDataOutput;
-Landroid/app/backup/IBackupCallback$Stub$Proxy;
-Landroid/app/backup/IBackupCallback$Stub;
-Landroid/app/backup/IBackupCallback;
-Landroid/app/backup/IBackupManager$Stub$Proxy;
-Landroid/app/backup/IBackupManager$Stub;
-Landroid/app/backup/IBackupManager;
-Landroid/app/backup/IBackupManagerMonitor$Stub$Proxy;
-Landroid/app/backup/IBackupManagerMonitor$Stub;
-Landroid/app/backup/IBackupManagerMonitor;
-Landroid/app/backup/IBackupObserver$Stub$Proxy;
-Landroid/app/backup/IBackupObserver$Stub;
-Landroid/app/backup/IBackupObserver;
-Landroid/app/backup/IFullBackupRestoreObserver$Stub$Proxy;
-Landroid/app/backup/IFullBackupRestoreObserver$Stub;
-Landroid/app/backup/IFullBackupRestoreObserver;
-Landroid/app/backup/IRestoreSession;
-Landroid/app/backup/ISelectBackupTransportCallback$Stub$Proxy;
-Landroid/app/backup/ISelectBackupTransportCallback$Stub;
-Landroid/app/backup/ISelectBackupTransportCallback;
-Landroid/app/backup/RestoreDescription$1;
-Landroid/app/backup/RestoreDescription;
-Landroid/app/backup/SharedPreferencesBackupHelper;
-Landroid/app/blob/BlobHandle$1;
-Landroid/app/blob/BlobHandle;
-Landroid/app/blob/BlobStoreManager;
-Landroid/app/blob/BlobStoreManagerFrameworkInitializer$$ExternalSyntheticLambda0;
-Landroid/app/blob/BlobStoreManagerFrameworkInitializer;
-Landroid/app/blob/IBlobStoreManager$Stub$Proxy;
-Landroid/app/blob/IBlobStoreManager$Stub;
-Landroid/app/blob/IBlobStoreManager;
-Landroid/app/blob/IBlobStoreSession;
-Landroid/app/blob/LeaseInfo$1;
-Landroid/app/blob/LeaseInfo;
-Landroid/app/cloudsearch/CloudSearchManager;
-Landroid/app/compat/ChangeIdStateCache;
-Landroid/app/compat/ChangeIdStateQuery;
-Landroid/app/compat/CompatChanges;
-Landroid/app/contentsuggestions/ClassificationsRequest$1;
-Landroid/app/contentsuggestions/ClassificationsRequest;
-Landroid/app/contentsuggestions/ContentSelection$1;
-Landroid/app/contentsuggestions/ContentSelection;
-Landroid/app/contentsuggestions/ContentSuggestionsManager$SelectionsCallback;
-Landroid/app/contentsuggestions/ContentSuggestionsManager$SelectionsCallbackWrapper;
-Landroid/app/contentsuggestions/ContentSuggestionsManager;
-Landroid/app/contentsuggestions/IClassificationsCallback$Stub$Proxy;
-Landroid/app/contentsuggestions/IClassificationsCallback$Stub;
-Landroid/app/contentsuggestions/IClassificationsCallback;
-Landroid/app/contentsuggestions/IContentSuggestionsManager$Stub$Proxy;
-Landroid/app/contentsuggestions/IContentSuggestionsManager$Stub;
-Landroid/app/contentsuggestions/IContentSuggestionsManager;
-Landroid/app/contentsuggestions/ISelectionsCallback$Stub$Proxy;
-Landroid/app/contentsuggestions/ISelectionsCallback$Stub;
-Landroid/app/contentsuggestions/ISelectionsCallback;
-Landroid/app/contentsuggestions/SelectionsRequest$1;
-Landroid/app/contentsuggestions/SelectionsRequest$Builder;
-Landroid/app/contentsuggestions/SelectionsRequest-IA;
-Landroid/app/contentsuggestions/SelectionsRequest;
-Landroid/app/job/IJobCallback$Stub$Proxy;
-Landroid/app/job/IJobCallback$Stub;
-Landroid/app/job/IJobCallback;
-Landroid/app/job/IJobScheduler$Stub$Proxy;
-Landroid/app/job/IJobScheduler$Stub;
-Landroid/app/job/IJobScheduler;
-Landroid/app/job/IJobService$Stub$Proxy;
-Landroid/app/job/IJobService$Stub;
-Landroid/app/job/IJobService;
-Landroid/app/job/IUserVisibleJobObserver;
-Landroid/app/job/JobInfo$1;
-Landroid/app/job/JobInfo$Builder;
-Landroid/app/job/JobInfo$TriggerContentUri$1;
-Landroid/app/job/JobInfo$TriggerContentUri-IA;
-Landroid/app/job/JobInfo$TriggerContentUri;
-Landroid/app/job/JobInfo-IA;
-Landroid/app/job/JobInfo;
-Landroid/app/job/JobParameters$1;
-Landroid/app/job/JobParameters-IA;
-Landroid/app/job/JobParameters;
-Landroid/app/job/JobScheduler;
-Landroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda0;
-Landroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda1;
-Landroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda2;
-Landroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda3;
-Landroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda4;
-Landroid/app/job/JobSchedulerFrameworkInitializer;
-Landroid/app/job/JobService$1;
-Landroid/app/job/JobService;
-Landroid/app/job/JobServiceEngine$JobHandler;
-Landroid/app/job/JobServiceEngine$JobInterface;
-Landroid/app/job/JobServiceEngine;
-Landroid/app/job/JobWorkItem$1;
-Landroid/app/job/JobWorkItem;
-Landroid/app/people/IPeopleManager$Stub$Proxy;
-Landroid/app/people/IPeopleManager$Stub;
-Landroid/app/people/IPeopleManager;
-Landroid/app/people/PeopleManager;
-Landroid/app/prediction/AppPredictionContext$1;
-Landroid/app/prediction/AppPredictionContext-IA;
-Landroid/app/prediction/AppPredictionContext;
-Landroid/app/prediction/AppPredictionManager;
-Landroid/app/prediction/AppPredictionSessionId$1;
-Landroid/app/prediction/AppPredictionSessionId-IA;
-Landroid/app/prediction/AppPredictionSessionId;
-Landroid/app/prediction/AppPredictor$CallbackWrapper;
-Landroid/app/prediction/AppPredictor;
-Landroid/app/prediction/AppTarget$1;
-Landroid/app/prediction/AppTarget$Builder;
-Landroid/app/prediction/AppTarget-IA;
-Landroid/app/prediction/AppTarget;
-Landroid/app/prediction/AppTargetEvent$1;
-Landroid/app/prediction/AppTargetEvent-IA;
-Landroid/app/prediction/AppTargetEvent;
-Landroid/app/prediction/AppTargetId$1;
-Landroid/app/prediction/AppTargetId-IA;
-Landroid/app/prediction/AppTargetId;
-Landroid/app/prediction/IPredictionCallback$Stub$Proxy;
-Landroid/app/prediction/IPredictionCallback$Stub;
-Landroid/app/prediction/IPredictionCallback;
-Landroid/app/prediction/IPredictionManager$Stub$Proxy;
-Landroid/app/prediction/IPredictionManager$Stub;
-Landroid/app/prediction/IPredictionManager;
-Landroid/app/search/SearchUiManager;
-Landroid/app/servertransaction/ActivityConfigurationChangeItem$1;
-Landroid/app/servertransaction/ActivityConfigurationChangeItem-IA;
-Landroid/app/servertransaction/ActivityConfigurationChangeItem;
-Landroid/app/servertransaction/ActivityLifecycleItem;
-Landroid/app/servertransaction/ActivityRelaunchItem$1;
-Landroid/app/servertransaction/ActivityRelaunchItem;
-Landroid/app/servertransaction/ActivityResultItem$1;
-Landroid/app/servertransaction/ActivityResultItem-IA;
-Landroid/app/servertransaction/ActivityResultItem;
-Landroid/app/servertransaction/ActivityTransactionItem;
-Landroid/app/servertransaction/BaseClientRequest;
-Landroid/app/servertransaction/ClientTransaction$1;
-Landroid/app/servertransaction/ClientTransaction-IA;
-Landroid/app/servertransaction/ClientTransaction;
-Landroid/app/servertransaction/ClientTransactionItem;
-Landroid/app/servertransaction/ClientTransactionListenerController;
-Landroid/app/servertransaction/ConfigurationChangeItem$1;
-Landroid/app/servertransaction/ConfigurationChangeItem-IA;
-Landroid/app/servertransaction/ConfigurationChangeItem;
-Landroid/app/servertransaction/DestroyActivityItem$1;
-Landroid/app/servertransaction/DestroyActivityItem-IA;
-Landroid/app/servertransaction/DestroyActivityItem;
-Landroid/app/servertransaction/LaunchActivityItem$1;
-Landroid/app/servertransaction/LaunchActivityItem-IA;
-Landroid/app/servertransaction/LaunchActivityItem;
-Landroid/app/servertransaction/NewIntentItem$1;
-Landroid/app/servertransaction/NewIntentItem-IA;
-Landroid/app/servertransaction/NewIntentItem;
-Landroid/app/servertransaction/ObjectPool;
-Landroid/app/servertransaction/ObjectPoolItem;
-Landroid/app/servertransaction/PauseActivityItem$1;
-Landroid/app/servertransaction/PauseActivityItem-IA;
-Landroid/app/servertransaction/PauseActivityItem;
-Landroid/app/servertransaction/PendingTransactionActions$StopInfo;
-Landroid/app/servertransaction/PendingTransactionActions;
-Landroid/app/servertransaction/ResumeActivityItem$1;
-Landroid/app/servertransaction/ResumeActivityItem-IA;
-Landroid/app/servertransaction/ResumeActivityItem;
-Landroid/app/servertransaction/StartActivityItem$1;
-Landroid/app/servertransaction/StartActivityItem-IA;
-Landroid/app/servertransaction/StartActivityItem;
-Landroid/app/servertransaction/StopActivityItem$1;
-Landroid/app/servertransaction/StopActivityItem-IA;
-Landroid/app/servertransaction/StopActivityItem;
-Landroid/app/servertransaction/TopResumedActivityChangeItem$1;
-Landroid/app/servertransaction/TopResumedActivityChangeItem-IA;
-Landroid/app/servertransaction/TopResumedActivityChangeItem;
-Landroid/app/servertransaction/TransactionExecutor;
-Landroid/app/servertransaction/TransactionExecutorHelper;
-Landroid/app/servertransaction/WindowStateResizeItem$ResizeListener;
-Landroid/app/slice/ISliceManager$Stub$Proxy;
-Landroid/app/slice/ISliceManager$Stub;
-Landroid/app/slice/ISliceManager;
-Landroid/app/slice/Slice$1;
-Landroid/app/slice/Slice$Builder;
-Landroid/app/slice/Slice;
-Landroid/app/slice/SliceItem$1;
-Landroid/app/slice/SliceItem;
-Landroid/app/slice/SliceManager;
-Landroid/app/slice/SliceProvider$$ExternalSyntheticLambda0;
-Landroid/app/slice/SliceProvider;
-Landroid/app/slice/SliceSpec$1;
-Landroid/app/slice/SliceSpec;
-Landroid/app/smartspace/ISmartspaceCallback$Stub;
-Landroid/app/smartspace/ISmartspaceCallback;
-Landroid/app/smartspace/ISmartspaceManager$Stub$Proxy;
-Landroid/app/smartspace/ISmartspaceManager$Stub;
-Landroid/app/smartspace/ISmartspaceManager;
-Landroid/app/smartspace/SmartspaceAction$1;
-Landroid/app/smartspace/SmartspaceAction$Builder;
-Landroid/app/smartspace/SmartspaceAction;
-Landroid/app/smartspace/SmartspaceConfig$1;
-Landroid/app/smartspace/SmartspaceConfig$Builder;
-Landroid/app/smartspace/SmartspaceConfig;
-Landroid/app/smartspace/SmartspaceManager;
-Landroid/app/smartspace/SmartspaceSession$$ExternalSyntheticLambda0;
-Landroid/app/smartspace/SmartspaceSession$CallbackWrapper$$ExternalSyntheticLambda0;
-Landroid/app/smartspace/SmartspaceSession$CallbackWrapper;
-Landroid/app/smartspace/SmartspaceSession$OnTargetsAvailableListener;
-Landroid/app/smartspace/SmartspaceSession$Token;
-Landroid/app/smartspace/SmartspaceSession;
-Landroid/app/smartspace/SmartspaceSessionId$1;
-Landroid/app/smartspace/SmartspaceSessionId;
-Landroid/app/smartspace/SmartspaceTarget$1;
-Landroid/app/smartspace/SmartspaceTarget$Builder;
-Landroid/app/smartspace/SmartspaceTarget;
-Landroid/app/smartspace/SmartspaceTargetEvent$1;
-Landroid/app/smartspace/SmartspaceTargetEvent$Builder;
-Landroid/app/smartspace/SmartspaceTargetEvent;
-Landroid/app/smartspace/uitemplatedata/BaseTemplateData$1;
-Landroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo$1;
-Landroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo;
-Landroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo$1;
-Landroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo;
-Landroid/app/smartspace/uitemplatedata/BaseTemplateData;
-Landroid/app/smartspace/uitemplatedata/Icon$1;
-Landroid/app/smartspace/uitemplatedata/Icon;
-Landroid/app/smartspace/uitemplatedata/TapAction$1;
-Landroid/app/smartspace/uitemplatedata/TapAction;
-Landroid/app/smartspace/uitemplatedata/Text$1;
-Landroid/app/smartspace/uitemplatedata/Text;
-Landroid/app/tare/EconomyManager;
-Landroid/app/time/ITimeZoneDetectorListener$Stub$Proxy;
-Landroid/app/time/ITimeZoneDetectorListener$Stub;
-Landroid/app/time/ITimeZoneDetectorListener;
-Landroid/app/time/TimeManager;
-Landroid/app/time/TimeZoneCapabilities$1;
-Landroid/app/time/TimeZoneCapabilities$Builder;
-Landroid/app/time/TimeZoneCapabilities-IA;
-Landroid/app/time/TimeZoneCapabilities;
-Landroid/app/time/TimeZoneCapabilitiesAndConfig$1;
-Landroid/app/time/TimeZoneCapabilitiesAndConfig;
-Landroid/app/time/TimeZoneConfiguration$1;
-Landroid/app/time/TimeZoneConfiguration$Builder;
-Landroid/app/time/TimeZoneConfiguration-IA;
-Landroid/app/time/TimeZoneConfiguration;
-Landroid/app/timedetector/ITimeDetectorService$Stub$Proxy;
-Landroid/app/timedetector/ITimeDetectorService$Stub;
-Landroid/app/timedetector/ITimeDetectorService;
-Landroid/app/timedetector/ManualTimeSuggestion$1;
-Landroid/app/timedetector/ManualTimeSuggestion;
-Landroid/app/timedetector/TelephonyTimeSuggestion$1;
-Landroid/app/timedetector/TelephonyTimeSuggestion$Builder;
-Landroid/app/timedetector/TelephonyTimeSuggestion;
-Landroid/app/timedetector/TimeDetector;
-Landroid/app/timedetector/TimeDetectorImpl;
-Landroid/app/timezonedetector/ITimeZoneDetectorService$Stub$Proxy;
-Landroid/app/timezonedetector/ITimeZoneDetectorService$Stub;
-Landroid/app/timezonedetector/ITimeZoneDetectorService;
-Landroid/app/timezonedetector/ManualTimeZoneSuggestion$1;
-Landroid/app/timezonedetector/ManualTimeZoneSuggestion;
-Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion$1;
-Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;
-Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion-IA;
-Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;
-Landroid/app/timezonedetector/TimeZoneDetector;
-Landroid/app/trust/IStrongAuthTracker$Stub$Proxy;
-Landroid/app/trust/IStrongAuthTracker$Stub;
-Landroid/app/trust/IStrongAuthTracker;
-Landroid/app/trust/ITrustListener$Stub$Proxy;
-Landroid/app/trust/ITrustListener$Stub;
-Landroid/app/trust/ITrustListener;
-Landroid/app/trust/ITrustManager$Stub$Proxy;
-Landroid/app/trust/ITrustManager$Stub;
-Landroid/app/trust/ITrustManager;
-Landroid/app/trust/TrustManager$1;
-Landroid/app/trust/TrustManager$2;
-Landroid/app/trust/TrustManager$TrustListener;
-Landroid/app/trust/TrustManager;
-Landroid/app/usage/AppStandbyInfo$1;
-Landroid/app/usage/AppStandbyInfo-IA;
-Landroid/app/usage/AppStandbyInfo;
-Landroid/app/usage/CacheQuotaHint$1;
-Landroid/app/usage/CacheQuotaHint$Builder;
-Landroid/app/usage/CacheQuotaHint;
-Landroid/app/usage/CacheQuotaService$CacheQuotaServiceWrapper;
-Landroid/app/usage/CacheQuotaService$ServiceHandler;
-Landroid/app/usage/CacheQuotaService;
-Landroid/app/usage/ConfigurationStats$1;
-Landroid/app/usage/ConfigurationStats;
-Landroid/app/usage/EventList;
-Landroid/app/usage/ExternalStorageStats$1;
-Landroid/app/usage/ExternalStorageStats;
-Landroid/app/usage/Flags;
-Landroid/app/usage/ICacheQuotaService$Stub$Proxy;
-Landroid/app/usage/ICacheQuotaService$Stub;
-Landroid/app/usage/ICacheQuotaService;
-Landroid/app/usage/IStorageStatsManager$Stub$Proxy;
-Landroid/app/usage/IStorageStatsManager$Stub;
-Landroid/app/usage/IStorageStatsManager;
-Landroid/app/usage/IUsageStatsManager$Stub$Proxy;
-Landroid/app/usage/IUsageStatsManager$Stub;
-Landroid/app/usage/IUsageStatsManager;
-Landroid/app/usage/StorageStats$1;
-Landroid/app/usage/StorageStats;
-Landroid/app/usage/StorageStatsManager;
-Landroid/app/usage/UsageEvents$1;
-Landroid/app/usage/UsageEvents$Event$UserInteractionEventExtrasToken;
-Landroid/app/usage/UsageEvents$Event;
-Landroid/app/usage/UsageEvents;
-Landroid/app/usage/UsageStats$1;
-Landroid/app/usage/UsageStats;
-Landroid/app/usage/UsageStatsManager;
-Landroid/app/wallpapereffectsgeneration/WallpaperEffectsGenerationManager;
-Landroid/app/wearable/WearableSensingManager;
-Landroid/apphibernation/AppHibernationManager;
-Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda0;
-Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda10;
-Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda1;
-Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda2;
-Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda3;
-Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda4;
-Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda5;
-Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda6;
-Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda7;
-Landroid/appwidget/AppWidgetManager;
-Landroid/appwidget/AppWidgetManagerInternal;
-Landroid/appwidget/AppWidgetProvider;
-Landroid/appwidget/AppWidgetProviderInfo$1;
-Landroid/appwidget/AppWidgetProviderInfo;
-Landroid/appwidget/PendingHostUpdate$1;
-Landroid/appwidget/PendingHostUpdate;
-Landroid/appwidget/flags/Flags;
-Landroid/attention/AttentionManagerInternal$AttentionCallbackInternal;
-Landroid/attention/AttentionManagerInternal;
-Landroid/audio/policy/configuration/V7_0/AudioUsage;
-Landroid/companion/AssociationInfo$1;
-Landroid/companion/AssociationInfo;
-Landroid/companion/AssociationRequest$1;
-Landroid/companion/AssociationRequest;
-Landroid/companion/CompanionDeviceManager;
-Landroid/companion/ICompanionDeviceManager$Stub$Proxy;
-Landroid/companion/ICompanionDeviceManager$Stub;
-Landroid/companion/ICompanionDeviceManager;
-Landroid/companion/virtual/IVirtualDevice$Stub$Proxy;
-Landroid/companion/virtual/IVirtualDevice$Stub;
-Landroid/companion/virtual/IVirtualDevice;
-Landroid/companion/virtual/IVirtualDeviceManager$Stub$Proxy;
-Landroid/companion/virtual/IVirtualDeviceManager$Stub;
-Landroid/companion/virtual/IVirtualDeviceManager;
-Landroid/companion/virtual/VirtualDeviceManager;
-Landroid/companion/virtual/flags/FeatureFlags;
-Landroid/companion/virtual/flags/FeatureFlagsImpl;
-Landroid/companion/virtual/flags/Flags;
-Landroid/compat/Compatibility$1;
-Landroid/compat/Compatibility$BehaviorChangeDelegate;
-Landroid/compat/Compatibility$ChangeConfig;
-Landroid/compat/Compatibility;
-Landroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl-IA;
-Landroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;
-Landroid/content/AbstractThreadedSyncAdapter$SyncThread-IA;
-Landroid/content/AbstractThreadedSyncAdapter$SyncThread;
-Landroid/content/AbstractThreadedSyncAdapter;
-Landroid/content/ActivityNotFoundException;
-Landroid/content/ApexEnvironment;
-Landroid/content/AsyncQueryHandler$WorkerArgs;
-Landroid/content/AsyncQueryHandler$WorkerHandler;
-Landroid/content/AsyncQueryHandler;
-Landroid/content/AsyncTaskLoader$LoadTask;
-Landroid/content/AsyncTaskLoader;
-Landroid/content/Attributable;
-Landroid/content/AttributionSource$1;
-Landroid/content/AttributionSource$Builder;
-Landroid/content/AttributionSource$ScopedParcelState;
-Landroid/content/AttributionSource;
-Landroid/content/AttributionSourceState$1;
-Landroid/content/AttributionSourceState;
-Landroid/content/AutofillOptions$1;
-Landroid/content/AutofillOptions;
-Landroid/content/BroadcastReceiver$PendingResult$1;
-Landroid/content/BroadcastReceiver$PendingResult;
-Landroid/content/BroadcastReceiver;
-Landroid/content/ClipData$1;
-Landroid/content/ClipData$Item-IA;
-Landroid/content/ClipData$Item;
-Landroid/content/ClipData;
-Landroid/content/ClipDescription$1;
-Landroid/content/ClipDescription;
-Landroid/content/ClipboardManager$1;
-Landroid/content/ClipboardManager$OnPrimaryClipChangedListener;
-Landroid/content/ClipboardManager;
-Landroid/content/ComponentCallbacks2;
-Landroid/content/ComponentCallbacks;
-Landroid/content/ComponentCallbacksController$$ExternalSyntheticLambda0;
-Landroid/content/ComponentCallbacksController$$ExternalSyntheticLambda1;
-Landroid/content/ComponentCallbacksController$$ExternalSyntheticLambda2;
-Landroid/content/ComponentCallbacksController;
-Landroid/content/ComponentName$1;
-Landroid/content/ComponentName$WithComponentName;
-Landroid/content/ComponentName;
-Landroid/content/ContentCaptureOptions$1;
-Landroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda0;
-Landroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda1;
-Landroid/content/ContentCaptureOptions$ContentProtectionOptions;
-Landroid/content/ContentCaptureOptions;
-Landroid/content/ContentInterface;
-Landroid/content/ContentProvider$1;
-Landroid/content/ContentProvider$CallingIdentity;
-Landroid/content/ContentProvider$PipeDataWriter;
-Landroid/content/ContentProvider$Transport;
-Landroid/content/ContentProvider;
-Landroid/content/ContentProviderClient$CursorWrapperInner;
-Landroid/content/ContentProviderClient$NotRespondingRunnable-IA;
-Landroid/content/ContentProviderClient$NotRespondingRunnable;
-Landroid/content/ContentProviderClient;
-Landroid/content/ContentProviderNative;
-Landroid/content/ContentProviderOperation$1;
-Landroid/content/ContentProviderOperation$BackReference$1;
-Landroid/content/ContentProviderOperation$BackReference;
-Landroid/content/ContentProviderOperation$Builder-IA;
-Landroid/content/ContentProviderOperation$Builder;
-Landroid/content/ContentProviderOperation-IA;
-Landroid/content/ContentProviderOperation;
-Landroid/content/ContentProviderProxy;
-Landroid/content/ContentProviderResult$1;
-Landroid/content/ContentProviderResult;
-Landroid/content/ContentResolver$1;
-Landroid/content/ContentResolver$2;
-Landroid/content/ContentResolver$CursorWrapperInner;
-Landroid/content/ContentResolver$OpenResourceIdResult;
-Landroid/content/ContentResolver$ParcelFileDescriptorInner;
-Landroid/content/ContentResolver$ResultListener-IA;
-Landroid/content/ContentResolver$ResultListener;
-Landroid/content/ContentResolver$StringResultListener-IA;
-Landroid/content/ContentResolver$StringResultListener;
-Landroid/content/ContentResolver$UriResultListener;
-Landroid/content/ContentResolver;
-Landroid/content/ContentUris;
-Landroid/content/ContentValues$1;
-Landroid/content/ContentValues-IA;
-Landroid/content/ContentValues;
-Landroid/content/Context;
-Landroid/content/ContextParams$Builder;
-Landroid/content/ContextParams-IA;
-Landroid/content/ContextParams;
-Landroid/content/ContextWrapper;
-Landroid/content/CursorLoader;
-Landroid/content/DialogInterface$OnCancelListener;
-Landroid/content/DialogInterface$OnClickListener;
-Landroid/content/DialogInterface$OnDismissListener;
-Landroid/content/DialogInterface$OnKeyListener;
-Landroid/content/DialogInterface$OnShowListener;
-Landroid/content/DialogInterface;
-Landroid/content/IClipboard$Stub$Proxy;
-Landroid/content/IClipboard$Stub;
-Landroid/content/IClipboard;
-Landroid/content/IContentProvider;
-Landroid/content/IContentService$Stub$Proxy;
-Landroid/content/IContentService$Stub;
-Landroid/content/IContentService;
-Landroid/content/IIntentReceiver$Stub;
-Landroid/content/IIntentReceiver;
-Landroid/content/IIntentSender$Stub$Proxy;
-Landroid/content/IIntentSender$Stub;
-Landroid/content/IIntentSender;
-Landroid/content/IOnPrimaryClipChangedListener$Stub$Proxy;
-Landroid/content/IOnPrimaryClipChangedListener$Stub;
-Landroid/content/IOnPrimaryClipChangedListener;
-Landroid/content/IRestrictionsManager$Stub$Proxy;
-Landroid/content/IRestrictionsManager$Stub;
-Landroid/content/IRestrictionsManager;
-Landroid/content/ISyncAdapter$Stub$Proxy;
-Landroid/content/ISyncAdapter$Stub;
-Landroid/content/ISyncAdapter;
-Landroid/content/ISyncAdapterUnsyncableAccountCallback$Stub$Proxy;
-Landroid/content/ISyncAdapterUnsyncableAccountCallback$Stub;
-Landroid/content/ISyncAdapterUnsyncableAccountCallback;
-Landroid/content/ISyncContext$Stub$Proxy;
-Landroid/content/ISyncContext$Stub;
-Landroid/content/ISyncContext;
-Landroid/content/ISyncStatusObserver$Stub$Proxy;
-Landroid/content/ISyncStatusObserver$Stub;
-Landroid/content/ISyncStatusObserver;
-Landroid/content/Intent$1;
-Landroid/content/Intent$CommandOptionHandler;
-Landroid/content/Intent$FilterComparison;
-Landroid/content/Intent;
-Landroid/content/IntentFilter$$ExternalSyntheticLambda0;
-Landroid/content/IntentFilter$$ExternalSyntheticLambda2;
-Landroid/content/IntentFilter$1;
-Landroid/content/IntentFilter$AuthorityEntry;
-Landroid/content/IntentFilter$MalformedMimeTypeException;
-Landroid/content/IntentFilter;
-Landroid/content/IntentSender$1;
-Landroid/content/IntentSender$FinishedDispatcher;
-Landroid/content/IntentSender$OnFinished;
-Landroid/content/IntentSender$SendIntentException;
-Landroid/content/IntentSender;
-Landroid/content/Loader$ForceLoadContentObserver;
-Landroid/content/Loader$OnLoadCanceledListener;
-Landroid/content/Loader$OnLoadCompleteListener;
-Landroid/content/Loader;
-Landroid/content/LocusId$1;
-Landroid/content/LocusId;
-Landroid/content/LoggingContentInterface;
-Landroid/content/MutableContextWrapper;
-Landroid/content/OperationApplicationException;
-Landroid/content/PeriodicSync$1;
-Landroid/content/PeriodicSync-IA;
-Landroid/content/PeriodicSync;
-Landroid/content/PermissionChecker;
-Landroid/content/ReceiverCallNotAllowedException;
-Landroid/content/RestrictionEntry$1;
-Landroid/content/RestrictionEntry;
-Landroid/content/RestrictionsManager;
-Landroid/content/SearchRecentSuggestionsProvider$DatabaseHelper;
-Landroid/content/SearchRecentSuggestionsProvider;
-Landroid/content/ServiceConnection;
-Landroid/content/SharedPreferences$Editor;
-Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener;
-Landroid/content/SharedPreferences;
-Landroid/content/SyncAdapterType$1;
-Landroid/content/SyncAdapterType;
-Landroid/content/SyncAdaptersCache$MySerializer;
-Landroid/content/SyncAdaptersCache;
-Landroid/content/SyncContext;
-Landroid/content/SyncInfo$1;
-Landroid/content/SyncInfo;
-Landroid/content/SyncRequest$1;
-Landroid/content/SyncRequest$Builder;
-Landroid/content/SyncRequest;
-Landroid/content/SyncResult$1;
-Landroid/content/SyncResult;
-Landroid/content/SyncStats$1;
-Landroid/content/SyncStats;
-Landroid/content/SyncStatusInfo$1;
-Landroid/content/SyncStatusInfo$Stats;
-Landroid/content/SyncStatusInfo;
-Landroid/content/SyncStatusObserver;
-Landroid/content/UndoManager$UndoState;
-Landroid/content/UndoManager;
-Landroid/content/UndoOperation;
-Landroid/content/UndoOwner;
-Landroid/content/UriMatcher;
-Landroid/content/UriPermission$1;
-Landroid/content/UriPermission;
-Landroid/content/UriRelativeFilterGroup;
-Landroid/content/integrity/AppIntegrityManager;
-Landroid/content/integrity/AtomicFormula$StringAtomicFormula$1;
-Landroid/content/integrity/AtomicFormula$StringAtomicFormula;
-Landroid/content/integrity/AtomicFormula;
-Landroid/content/integrity/CompoundFormula$1;
-Landroid/content/integrity/CompoundFormula;
-Landroid/content/integrity/IAppIntegrityManager$Stub;
-Landroid/content/integrity/IAppIntegrityManager;
-Landroid/content/integrity/InstallerAllowedByManifestFormula$1;
-Landroid/content/integrity/InstallerAllowedByManifestFormula;
-Landroid/content/integrity/IntegrityFormula;
-Landroid/content/integrity/IntegrityUtils;
-Landroid/content/integrity/Rule$1;
-Landroid/content/integrity/Rule;
-Landroid/content/om/CriticalOverlayInfo;
-Landroid/content/om/IOverlayManager$Stub$Proxy;
-Landroid/content/om/IOverlayManager$Stub;
-Landroid/content/om/IOverlayManager;
-Landroid/content/om/OverlayIdentifier$1;
-Landroid/content/om/OverlayIdentifier;
-Landroid/content/om/OverlayInfo$1;
-Landroid/content/om/OverlayInfo;
-Landroid/content/om/OverlayManager;
-Landroid/content/om/OverlayableInfo;
-Landroid/content/pm/ActivityInfo$1;
-Landroid/content/pm/ActivityInfo$WindowLayout;
-Landroid/content/pm/ActivityInfo-IA;
-Landroid/content/pm/ActivityInfo;
-Landroid/content/pm/ActivityPresentationInfo;
-Landroid/content/pm/AndroidTestBaseUpdater;
-Landroid/content/pm/ApkChecksum$1;
-Landroid/content/pm/ApkChecksum;
-Landroid/content/pm/ApplicationInfo$1$$ExternalSyntheticLambda0;
-Landroid/content/pm/ApplicationInfo$1;
-Landroid/content/pm/ApplicationInfo-IA;
-Landroid/content/pm/ApplicationInfo;
-Landroid/content/pm/ArchivedPackageParcel;
-Landroid/content/pm/Attribution$1;
-Landroid/content/pm/Attribution;
-Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;
-Landroid/content/pm/AuxiliaryResolveInfo;
-Landroid/content/pm/BaseParceledListSlice$1;
-Landroid/content/pm/BaseParceledListSlice;
-Landroid/content/pm/ChangedPackages$1;
-Landroid/content/pm/ChangedPackages;
-Landroid/content/pm/Checksum$1;
-Landroid/content/pm/Checksum$Type;
-Landroid/content/pm/Checksum;
-Landroid/content/pm/ComponentInfo;
-Landroid/content/pm/ConfigurationInfo$1;
-Landroid/content/pm/ConfigurationInfo-IA;
-Landroid/content/pm/ConfigurationInfo;
-Landroid/content/pm/CrossProfileApps;
-Landroid/content/pm/CrossProfileAppsInternal;
-Landroid/content/pm/DataLoaderManager;
-Landroid/content/pm/DataLoaderParams;
-Landroid/content/pm/DataLoaderParamsParcel$1;
-Landroid/content/pm/DataLoaderParamsParcel;
-Landroid/content/pm/FallbackCategoryProvider;
-Landroid/content/pm/FeatureFlags;
-Landroid/content/pm/FeatureFlagsImpl;
-Landroid/content/pm/FeatureGroupInfo$1;
-Landroid/content/pm/FeatureGroupInfo;
-Landroid/content/pm/FeatureInfo$1;
-Landroid/content/pm/FeatureInfo-IA;
-Landroid/content/pm/FeatureInfo;
-Landroid/content/pm/FileSystemControlParcel$1;
-Landroid/content/pm/FileSystemControlParcel;
-Landroid/content/pm/Flags;
-Landroid/content/pm/ICrossProfileApps$Stub$Proxy;
-Landroid/content/pm/ICrossProfileApps$Stub;
-Landroid/content/pm/ICrossProfileApps;
-Landroid/content/pm/IDataLoader;
-Landroid/content/pm/IDataLoaderManager$Stub$Proxy;
-Landroid/content/pm/IDataLoaderManager$Stub;
-Landroid/content/pm/IDataLoaderManager;
-Landroid/content/pm/IDataLoaderStatusListener$Stub$Proxy;
-Landroid/content/pm/IDataLoaderStatusListener$Stub;
-Landroid/content/pm/IDataLoaderStatusListener;
-Landroid/content/pm/IDexModuleRegisterCallback$Stub$Proxy;
-Landroid/content/pm/IDexModuleRegisterCallback$Stub;
-Landroid/content/pm/IDexModuleRegisterCallback;
-Landroid/content/pm/ILauncherApps$Stub$Proxy;
-Landroid/content/pm/ILauncherApps$Stub;
-Landroid/content/pm/ILauncherApps;
-Landroid/content/pm/IOnAppsChangedListener$Stub$Proxy;
-Landroid/content/pm/IOnAppsChangedListener$Stub;
-Landroid/content/pm/IOnAppsChangedListener;
-Landroid/content/pm/IOnChecksumsReadyListener$Stub$Proxy;
-Landroid/content/pm/IOnChecksumsReadyListener$Stub;
-Landroid/content/pm/IOnChecksumsReadyListener;
-Landroid/content/pm/IOtaDexopt$Stub;
-Landroid/content/pm/IOtaDexopt;
-Landroid/content/pm/IPackageDataObserver$Stub$Proxy;
-Landroid/content/pm/IPackageDataObserver$Stub;
-Landroid/content/pm/IPackageDataObserver;
-Landroid/content/pm/IPackageDeleteObserver$Stub$Proxy;
-Landroid/content/pm/IPackageDeleteObserver$Stub;
-Landroid/content/pm/IPackageDeleteObserver2$Stub$Proxy;
-Landroid/content/pm/IPackageDeleteObserver2$Stub;
-Landroid/content/pm/IPackageDeleteObserver2;
-Landroid/content/pm/IPackageDeleteObserver;
-Landroid/content/pm/IPackageInstallObserver2$Stub;
-Landroid/content/pm/IPackageInstallObserver2;
-Landroid/content/pm/IPackageInstaller$Stub$Proxy;
-Landroid/content/pm/IPackageInstaller$Stub;
-Landroid/content/pm/IPackageInstaller;
-Landroid/content/pm/IPackageInstallerCallback$Stub$Proxy;
-Landroid/content/pm/IPackageInstallerCallback$Stub;
-Landroid/content/pm/IPackageInstallerCallback;
-Landroid/content/pm/IPackageInstallerSession$Stub$Proxy;
-Landroid/content/pm/IPackageInstallerSession$Stub;
-Landroid/content/pm/IPackageInstallerSession;
-Landroid/content/pm/IPackageManager$Stub$$ExternalSyntheticLambda0;
-Landroid/content/pm/IPackageManager$Stub$$ExternalSyntheticLambda1;
-Landroid/content/pm/IPackageManager$Stub$Proxy$$ExternalSyntheticLambda0;
-Landroid/content/pm/IPackageManager$Stub$Proxy$$ExternalSyntheticLambda1;
-Landroid/content/pm/IPackageManager$Stub$Proxy;
-Landroid/content/pm/IPackageManager$Stub;
-Landroid/content/pm/IPackageManager;
-Landroid/content/pm/IPackageManagerNative$Stub;
-Landroid/content/pm/IPackageManagerNative;
-Landroid/content/pm/IPackageMoveObserver$Stub$Proxy;
-Landroid/content/pm/IPackageMoveObserver$Stub;
-Landroid/content/pm/IPackageMoveObserver;
-Landroid/content/pm/IPackageStatsObserver$Stub$Proxy;
-Landroid/content/pm/IPackageStatsObserver$Stub;
-Landroid/content/pm/IPackageStatsObserver;
-Landroid/content/pm/IShortcutChangeCallback$Stub$Proxy;
-Landroid/content/pm/IShortcutChangeCallback$Stub;
-Landroid/content/pm/IShortcutChangeCallback;
-Landroid/content/pm/IShortcutService$Stub$Proxy;
-Landroid/content/pm/IShortcutService$Stub;
-Landroid/content/pm/IShortcutService;
-Landroid/content/pm/IncrementalStatesInfo$1;
-Landroid/content/pm/IncrementalStatesInfo;
-Landroid/content/pm/InstallSourceInfo$1;
-Landroid/content/pm/InstallSourceInfo;
-Landroid/content/pm/InstantAppIntentFilter$1;
-Landroid/content/pm/InstantAppIntentFilter;
-Landroid/content/pm/InstantAppRequest;
-Landroid/content/pm/InstantAppRequestInfo$1;
-Landroid/content/pm/InstantAppRequestInfo;
-Landroid/content/pm/InstantAppResolveInfo$1;
-Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest$1;
-Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;
-Landroid/content/pm/InstantAppResolveInfo;
-Landroid/content/pm/InstrumentationInfo$1;
-Landroid/content/pm/InstrumentationInfo;
-Landroid/content/pm/IntentFilterVerificationInfo$1;
-Landroid/content/pm/IntentFilterVerificationInfo;
-Landroid/content/pm/KeySet$1;
-Landroid/content/pm/KeySet;
-Landroid/content/pm/LauncherActivityInfo;
-Landroid/content/pm/LauncherActivityInfoInternal$1;
-Landroid/content/pm/LauncherActivityInfoInternal;
-Landroid/content/pm/LauncherApps$1;
-Landroid/content/pm/LauncherApps$AppUsageLimit$1;
-Landroid/content/pm/LauncherApps$AppUsageLimit;
-Landroid/content/pm/LauncherApps$Callback;
-Landroid/content/pm/LauncherApps$CallbackMessageHandler$CallbackInfo-IA;
-Landroid/content/pm/LauncherApps$CallbackMessageHandler$CallbackInfo;
-Landroid/content/pm/LauncherApps$CallbackMessageHandler;
-Landroid/content/pm/LauncherApps$ShortcutQuery$QueryFlags;
-Landroid/content/pm/LauncherApps$ShortcutQuery;
-Landroid/content/pm/LauncherApps;
-Landroid/content/pm/ModuleInfo$1;
-Landroid/content/pm/ModuleInfo-IA;
-Landroid/content/pm/ModuleInfo;
-Landroid/content/pm/PackageInfo$1;
-Landroid/content/pm/PackageInfo-IA;
-Landroid/content/pm/PackageInfo;
-Landroid/content/pm/PackageInfoLite$1;
-Landroid/content/pm/PackageInfoLite;
-Landroid/content/pm/PackageInstaller$Session;
-Landroid/content/pm/PackageInstaller$SessionCallback;
-Landroid/content/pm/PackageInstaller$SessionCallbackDelegate$$ExternalSyntheticLambda0;
-Landroid/content/pm/PackageInstaller$SessionCallbackDelegate$$ExternalSyntheticLambda1;
-Landroid/content/pm/PackageInstaller$SessionCallbackDelegate$$ExternalSyntheticLambda2;
-Landroid/content/pm/PackageInstaller$SessionCallbackDelegate$$ExternalSyntheticLambda3;
-Landroid/content/pm/PackageInstaller$SessionCallbackDelegate$$ExternalSyntheticLambda4;
-Landroid/content/pm/PackageInstaller$SessionCallbackDelegate;
-Landroid/content/pm/PackageInstaller$SessionInfo$1;
-Landroid/content/pm/PackageInstaller$SessionInfo;
-Landroid/content/pm/PackageInstaller$SessionParams$1;
-Landroid/content/pm/PackageInstaller$SessionParams;
-Landroid/content/pm/PackageInstaller;
-Landroid/content/pm/PackageItemInfo;
-Landroid/content/pm/PackageManager$1;
-Landroid/content/pm/PackageManager$2;
-Landroid/content/pm/PackageManager$3;
-Landroid/content/pm/PackageManager$ApplicationInfoFlags;
-Landroid/content/pm/PackageManager$ApplicationInfoQuery;
-Landroid/content/pm/PackageManager$ComponentEnabledSetting$1;
-Landroid/content/pm/PackageManager$ComponentEnabledSetting;
-Landroid/content/pm/PackageManager$ComponentInfoFlags;
-Landroid/content/pm/PackageManager$Flags;
-Landroid/content/pm/PackageManager$MoveCallback;
-Landroid/content/pm/PackageManager$NameNotFoundException;
-Landroid/content/pm/PackageManager$OnChecksumsReadyListener;
-Landroid/content/pm/PackageManager$OnPermissionsChangedListener;
-Landroid/content/pm/PackageManager$PackageInfoFlags;
-Landroid/content/pm/PackageManager$PackageInfoQuery;
-Landroid/content/pm/PackageManager$Property$1;
-Landroid/content/pm/PackageManager$Property;
-Landroid/content/pm/PackageManager$ResolveInfoFlags;
-Landroid/content/pm/PackageManager;
-Landroid/content/pm/PackageParser$Activity$1;
-Landroid/content/pm/PackageParser$Activity-IA;
-Landroid/content/pm/PackageParser$Activity;
-Landroid/content/pm/PackageParser$ActivityIntentInfo;
-Landroid/content/pm/PackageParser$ApkLite;
-Landroid/content/pm/PackageParser$CachedComponentArgs;
-Landroid/content/pm/PackageParser$Callback;
-Landroid/content/pm/PackageParser$CallbackImpl;
-Landroid/content/pm/PackageParser$Component;
-Landroid/content/pm/PackageParser$DefaultSplitAssetLoader;
-Landroid/content/pm/PackageParser$Instrumentation$1;
-Landroid/content/pm/PackageParser$Instrumentation;
-Landroid/content/pm/PackageParser$IntentInfo;
-Landroid/content/pm/PackageParser$NewPermissionInfo;
-Landroid/content/pm/PackageParser$Package$1;
-Landroid/content/pm/PackageParser$Package;
-Landroid/content/pm/PackageParser$PackageLite;
-Landroid/content/pm/PackageParser$PackageParserException;
-Landroid/content/pm/PackageParser$ParseComponentArgs;
-Landroid/content/pm/PackageParser$ParsePackageItemArgs;
-Landroid/content/pm/PackageParser$Permission$1;
-Landroid/content/pm/PackageParser$Permission-IA;
-Landroid/content/pm/PackageParser$Permission;
-Landroid/content/pm/PackageParser$PermissionGroup$1;
-Landroid/content/pm/PackageParser$PermissionGroup;
-Landroid/content/pm/PackageParser$Provider$1;
-Landroid/content/pm/PackageParser$Provider-IA;
-Landroid/content/pm/PackageParser$Provider;
-Landroid/content/pm/PackageParser$ProviderIntentInfo;
-Landroid/content/pm/PackageParser$Service$1;
-Landroid/content/pm/PackageParser$Service-IA;
-Landroid/content/pm/PackageParser$Service;
-Landroid/content/pm/PackageParser$ServiceIntentInfo;
-Landroid/content/pm/PackageParser$SigningDetails$1;
-Landroid/content/pm/PackageParser$SigningDetails$Builder;
-Landroid/content/pm/PackageParser$SigningDetails;
-Landroid/content/pm/PackageParser$SplitAssetLoader;
-Landroid/content/pm/PackageParser$SplitDependencyLoader$IllegalDependencyException;
-Landroid/content/pm/PackageParser$SplitNameComparator;
-Landroid/content/pm/PackageParser;
-Landroid/content/pm/PackageParserCacheHelper$ReadHelper;
-Landroid/content/pm/PackageParserCacheHelper$WriteHelper;
-Landroid/content/pm/PackagePartitions$DeferredCanonicalFile;
-Landroid/content/pm/PackagePartitions$SystemPartition;
-Landroid/content/pm/PackagePartitions;
-Landroid/content/pm/PackageStats$1;
-Landroid/content/pm/PackageStats;
-Landroid/content/pm/ParceledListSlice$1;
-Landroid/content/pm/ParceledListSlice-IA;
-Landroid/content/pm/ParceledListSlice;
-Landroid/content/pm/PathPermission$1;
-Landroid/content/pm/PathPermission;
-Landroid/content/pm/PermissionGroupInfo$1;
-Landroid/content/pm/PermissionGroupInfo;
-Landroid/content/pm/PermissionInfo$1;
-Landroid/content/pm/PermissionInfo-IA;
-Landroid/content/pm/PermissionInfo;
-Landroid/content/pm/ProviderInfo$1;
-Landroid/content/pm/ProviderInfo-IA;
-Landroid/content/pm/ProviderInfo;
-Landroid/content/pm/ProviderInfoList$1;
-Landroid/content/pm/ProviderInfoList-IA;
-Landroid/content/pm/ProviderInfoList;
-Landroid/content/pm/RegisteredServicesCache$1;
-Landroid/content/pm/RegisteredServicesCache$2;
-Landroid/content/pm/RegisteredServicesCache$3;
-Landroid/content/pm/RegisteredServicesCache$ServiceInfo;
-Landroid/content/pm/RegisteredServicesCache$UserServices;
-Landroid/content/pm/RegisteredServicesCache;
-Landroid/content/pm/RegisteredServicesCacheListener;
-Landroid/content/pm/ResolveInfo$1;
-Landroid/content/pm/ResolveInfo-IA;
-Landroid/content/pm/ResolveInfo;
-Landroid/content/pm/ServiceInfo$1;
-Landroid/content/pm/ServiceInfo-IA;
-Landroid/content/pm/ServiceInfo;
-Landroid/content/pm/SharedLibraryInfo$1;
-Landroid/content/pm/SharedLibraryInfo-IA;
-Landroid/content/pm/SharedLibraryInfo;
-Landroid/content/pm/ShortcutInfo$$ExternalSyntheticLambda0;
-Landroid/content/pm/ShortcutInfo$$ExternalSyntheticLambda1;
-Landroid/content/pm/ShortcutInfo$1;
-Landroid/content/pm/ShortcutInfo$Builder;
-Landroid/content/pm/ShortcutInfo-IA;
-Landroid/content/pm/ShortcutInfo;
-Landroid/content/pm/ShortcutManager$ShareShortcutInfo$1;
-Landroid/content/pm/ShortcutManager$ShareShortcutInfo;
-Landroid/content/pm/ShortcutManager;
-Landroid/content/pm/ShortcutQueryWrapper$1;
-Landroid/content/pm/ShortcutQueryWrapper;
-Landroid/content/pm/ShortcutServiceInternal$ShortcutChangeListener;
-Landroid/content/pm/ShortcutServiceInternal;
-Landroid/content/pm/Signature$1;
-Landroid/content/pm/Signature-IA;
-Landroid/content/pm/Signature;
-Landroid/content/pm/SigningDetails$1;
-Landroid/content/pm/SigningDetails;
-Landroid/content/pm/SigningInfo$1;
-Landroid/content/pm/SigningInfo-IA;
-Landroid/content/pm/SigningInfo;
-Landroid/content/pm/StringParceledListSlice$1;
-Landroid/content/pm/StringParceledListSlice-IA;
-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-IA;
-Landroid/content/pm/UserInfo;
-Landroid/content/pm/UserPackage;
-Landroid/content/pm/UserProperties$1;
-Landroid/content/pm/UserProperties;
-Landroid/content/pm/VerifierDeviceIdentity$1;
-Landroid/content/pm/VerifierDeviceIdentity;
-Landroid/content/pm/VerifierInfo$1;
-Landroid/content/pm/VerifierInfo;
-Landroid/content/pm/VersionedPackage$1;
-Landroid/content/pm/VersionedPackage-IA;
-Landroid/content/pm/VersionedPackage;
-Landroid/content/pm/XmlSerializerAndParser;
-Landroid/content/pm/dex/ArtManager$SnapshotRuntimeProfileCallbackDelegate;
-Landroid/content/pm/dex/ArtManager;
-Landroid/content/pm/dex/ArtManagerInternal;
-Landroid/content/pm/dex/DexMetadataHelper;
-Landroid/content/pm/dex/IArtManager$Stub$Proxy;
-Landroid/content/pm/dex/IArtManager$Stub;
-Landroid/content/pm/dex/IArtManager;
-Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub$Proxy;
-Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub;
-Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;
-Landroid/content/pm/dex/PackageOptimizationInfo;
-Landroid/content/pm/overlay/OverlayPaths;
-Landroid/content/pm/parsing/ApkLite;
-Landroid/content/pm/parsing/ApkLiteParseUtils$SplitNameComparator;
-Landroid/content/pm/parsing/ApkLiteParseUtils;
-Landroid/content/pm/parsing/FrameworkParsingPackageUtils;
-Landroid/content/pm/parsing/PackageLite;
-Landroid/content/pm/parsing/result/ParseInput$Callback;
-Landroid/content/pm/parsing/result/ParseInput;
-Landroid/content/pm/parsing/result/ParseResult;
-Landroid/content/pm/parsing/result/ParseTypeImpl$$ExternalSyntheticLambda0;
-Landroid/content/pm/parsing/result/ParseTypeImpl$$ExternalSyntheticLambda1;
-Landroid/content/pm/parsing/result/ParseTypeImpl;
-Landroid/content/pm/permission/SplitPermissionInfoParcelable$1;
-Landroid/content/pm/permission/SplitPermissionInfoParcelable;
-Landroid/content/pm/pkg/FrameworkPackageUserState;
-Landroid/content/pm/pkg/FrameworkPackageUserStateDefault;
-Landroid/content/pm/split/SplitDependencyLoader$IllegalDependencyException;
-Landroid/content/pm/split/SplitDependencyLoader;
-Landroid/content/pm/verify/domain/DomainSet$1;
-Landroid/content/pm/verify/domain/DomainSet;
-Landroid/content/pm/verify/domain/DomainVerificationInfo$1;
-Landroid/content/pm/verify/domain/DomainVerificationInfo;
-Landroid/content/pm/verify/domain/DomainVerificationManager;
-Landroid/content/pm/verify/domain/DomainVerificationUserState$1;
-Landroid/content/pm/verify/domain/DomainVerificationUserState;
-Landroid/content/pm/verify/domain/DomainVerificationUtils;
-Landroid/content/pm/verify/domain/IDomainVerificationManager$Stub;
-Landroid/content/pm/verify/domain/IDomainVerificationManager;
-Landroid/content/res/ApkAssets;
-Landroid/content/res/AssetFileDescriptor$1;
-Landroid/content/res/AssetFileDescriptor$AutoCloseInputStream;
-Landroid/content/res/AssetFileDescriptor;
-Landroid/content/res/AssetManager$AssetInputStream-IA;
-Landroid/content/res/AssetManager$AssetInputStream;
-Landroid/content/res/AssetManager$Builder;
-Landroid/content/res/AssetManager-IA;
-Landroid/content/res/AssetManager;
-Landroid/content/res/ColorStateList$1;
-Landroid/content/res/ColorStateList$ColorStateListFactory;
-Landroid/content/res/ColorStateList;
-Landroid/content/res/CompatResources;
-Landroid/content/res/CompatibilityInfo$1;
-Landroid/content/res/CompatibilityInfo$2;
-Landroid/content/res/CompatibilityInfo$Translator;
-Landroid/content/res/CompatibilityInfo-IA;
-Landroid/content/res/CompatibilityInfo;
-Landroid/content/res/ComplexColor;
-Landroid/content/res/Configuration$1;
-Landroid/content/res/Configuration-IA;
-Landroid/content/res/Configuration;
-Landroid/content/res/ConfigurationBoundResourceCache;
-Landroid/content/res/ConstantState;
-Landroid/content/res/DrawableCache;
-Landroid/content/res/FeatureFlags;
-Landroid/content/res/FeatureFlagsImpl;
-Landroid/content/res/Flags;
-Landroid/content/res/FontResourcesParser$FamilyResourceEntry;
-Landroid/content/res/FontResourcesParser$FontFamilyFilesResourceEntry;
-Landroid/content/res/FontResourcesParser$FontFileResourceEntry;
-Landroid/content/res/FontResourcesParser$ProviderResourceEntry;
-Landroid/content/res/FontResourcesParser;
-Landroid/content/res/FontScaleConverter;
-Landroid/content/res/FontScaleConverterFactory;
-Landroid/content/res/FontScaleConverterImpl;
-Landroid/content/res/GradientColor$GradientColorFactory;
-Landroid/content/res/GradientColor;
-Landroid/content/res/ObbInfo$1;
-Landroid/content/res/ObbInfo;
-Landroid/content/res/ObbScanner;
-Landroid/content/res/ResourceId;
-Landroid/content/res/ResourceTimer$Config;
-Landroid/content/res/ResourceTimer$Timer;
-Landroid/content/res/ResourceTimer;
-Landroid/content/res/Resources$$ExternalSyntheticLambda0;
-Landroid/content/res/Resources$$ExternalSyntheticLambda1;
-Landroid/content/res/Resources$AssetManagerUpdateHandler;
-Landroid/content/res/Resources$NotFoundException;
-Landroid/content/res/Resources$Theme-IA;
-Landroid/content/res/Resources$Theme;
-Landroid/content/res/Resources$ThemeKey;
-Landroid/content/res/Resources$UpdateCallbacks;
-Landroid/content/res/Resources;
-Landroid/content/res/ResourcesImpl$$ExternalSyntheticLambda0;
-Landroid/content/res/ResourcesImpl$$ExternalSyntheticLambda1;
-Landroid/content/res/ResourcesImpl$$ExternalSyntheticLambda2;
-Landroid/content/res/ResourcesImpl$LookupStack-IA;
-Landroid/content/res/ResourcesImpl$LookupStack;
-Landroid/content/res/ResourcesImpl$ThemeImpl;
-Landroid/content/res/ResourcesImpl;
-Landroid/content/res/ResourcesKey;
-Landroid/content/res/StringBlock$Height;
-Landroid/content/res/StringBlock$StyleIDs;
-Landroid/content/res/StringBlock;
-Landroid/content/res/ThemedResourceCache;
-Landroid/content/res/TypedArray;
-Landroid/content/res/Validator;
-Landroid/content/res/XmlBlock;
-Landroid/content/res/XmlResourceParser;
-Landroid/content/res/loader/AssetsProvider;
-Landroid/content/res/loader/ResourcesLoader$UpdateCallbacks;
-Landroid/content/res/loader/ResourcesLoader;
-Landroid/content/res/loader/ResourcesProvider;
-Landroid/content/rollback/IRollbackManager$Stub$Proxy;
-Landroid/content/rollback/IRollbackManager$Stub;
-Landroid/content/rollback/IRollbackManager;
-Landroid/content/rollback/PackageRollbackInfo$1;
-Landroid/content/rollback/PackageRollbackInfo;
-Landroid/content/rollback/RollbackInfo$1;
-Landroid/content/rollback/RollbackInfo;
-Landroid/content/rollback/RollbackManager;
-Landroid/content/rollback/RollbackManagerFrameworkInitializer$$ExternalSyntheticLambda0;
-Landroid/content/rollback/RollbackManagerFrameworkInitializer;
-Landroid/content/type/DefaultMimeMapFactory$$ExternalSyntheticLambda0;
-Landroid/content/type/DefaultMimeMapFactory;
-Landroid/credentials/CredentialManager;
-Landroid/credentials/GetCredentialResponse;
-Landroid/database/AbstractCursor$SelfContentObserver;
-Landroid/database/AbstractCursor;
-Landroid/database/AbstractWindowedCursor;
-Landroid/database/BulkCursorDescriptor$1;
-Landroid/database/BulkCursorDescriptor;
-Landroid/database/BulkCursorNative;
-Landroid/database/BulkCursorProxy;
-Landroid/database/BulkCursorToCursorAdaptor;
-Landroid/database/CharArrayBuffer;
-Landroid/database/ContentObservable;
-Landroid/database/ContentObserver$$ExternalSyntheticLambda0;
-Landroid/database/ContentObserver$$ExternalSyntheticLambda1;
-Landroid/database/ContentObserver;
-Landroid/database/CrossProcessCursor;
-Landroid/database/CrossProcessCursorWrapper;
-Landroid/database/Cursor;
-Landroid/database/CursorIndexOutOfBoundsException;
-Landroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;
-Landroid/database/CursorToBulkCursorAdaptor;
-Landroid/database/CursorWindow$1;
-Landroid/database/CursorWindow-IA;
-Landroid/database/CursorWindow;
-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;
-Landroid/database/IContentObserver$Stub;
-Landroid/database/IContentObserver;
-Landroid/database/MatrixCursor$RowBuilder;
-Landroid/database/MatrixCursor;
-Landroid/database/MergeCursor$1;
-Landroid/database/MergeCursor;
-Landroid/database/Observable;
-Landroid/database/SQLException;
-Landroid/database/StaleDataException;
-Landroid/database/sqlite/DatabaseObjectNotClosedException;
-Landroid/database/sqlite/FeatureFlags;
-Landroid/database/sqlite/FeatureFlagsImpl;
-Landroid/database/sqlite/Flags;
-Landroid/database/sqlite/SQLiteAbortException;
-Landroid/database/sqlite/SQLiteAccessPermException;
-Landroid/database/sqlite/SQLiteBindOrColumnIndexOutOfRangeException;
-Landroid/database/sqlite/SQLiteBlobTooBigException;
-Landroid/database/sqlite/SQLiteCantOpenDatabaseException;
-Landroid/database/sqlite/SQLiteClosable;
-Landroid/database/sqlite/SQLiteCompatibilityWalFlags;
-Landroid/database/sqlite/SQLiteConnection$Operation-IA;
-Landroid/database/sqlite/SQLiteConnection$Operation;
-Landroid/database/sqlite/SQLiteConnection$OperationLog;
-Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
-Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
-Landroid/database/sqlite/SQLiteConnection;
-Landroid/database/sqlite/SQLiteConnectionPool$1;
-Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;
-Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter-IA;
-Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;
-Landroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;
-Landroid/database/sqlite/SQLiteConnectionPool;
-Landroid/database/sqlite/SQLiteConstraintException;
-Landroid/database/sqlite/SQLiteCursor;
-Landroid/database/sqlite/SQLiteCursorDriver;
-Landroid/database/sqlite/SQLiteCustomFunction;
-Landroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda0;
-Landroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda1;
-Landroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda2;
-Landroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda3;
-Landroid/database/sqlite/SQLiteDatabase$1;
-Landroid/database/sqlite/SQLiteDatabase$CursorFactory;
-Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;
-Landroid/database/sqlite/SQLiteDatabase$OpenParams-IA;
-Landroid/database/sqlite/SQLiteDatabase$OpenParams;
-Landroid/database/sqlite/SQLiteDatabase;
-Landroid/database/sqlite/SQLiteDatabaseConfiguration;
-Landroid/database/sqlite/SQLiteDatabaseCorruptException;
-Landroid/database/sqlite/SQLiteDatabaseLockedException;
-Landroid/database/sqlite/SQLiteDatatypeMismatchException;
-Landroid/database/sqlite/SQLiteDebug$DbStats;
-Landroid/database/sqlite/SQLiteDebug$NoPreloadHolder;
-Landroid/database/sqlite/SQLiteDebug$PagerStats;
-Landroid/database/sqlite/SQLiteDebug;
-Landroid/database/sqlite/SQLiteDirectCursorDriver;
-Landroid/database/sqlite/SQLiteDiskIOException;
-Landroid/database/sqlite/SQLiteDoneException;
-Landroid/database/sqlite/SQLiteException;
-Landroid/database/sqlite/SQLiteFullException;
-Landroid/database/sqlite/SQLiteGlobal;
-Landroid/database/sqlite/SQLiteMisuseException;
-Landroid/database/sqlite/SQLiteOpenHelper;
-Landroid/database/sqlite/SQLiteOutOfMemoryException;
-Landroid/database/sqlite/SQLiteProgram;
-Landroid/database/sqlite/SQLiteQuery;
-Landroid/database/sqlite/SQLiteQueryBuilder;
-Landroid/database/sqlite/SQLiteRawStatement;
-Landroid/database/sqlite/SQLiteReadOnlyDatabaseException;
-Landroid/database/sqlite/SQLiteSession$Transaction-IA;
-Landroid/database/sqlite/SQLiteSession$Transaction;
-Landroid/database/sqlite/SQLiteSession;
-Landroid/database/sqlite/SQLiteStatement;
-Landroid/database/sqlite/SQLiteStatementInfo;
-Landroid/database/sqlite/SQLiteTableLockedException;
-Landroid/database/sqlite/SQLiteTokenizer;
-Landroid/database/sqlite/SQLiteTransactionListener;
-Landroid/database/sqlite/SqliteWrapper;
-Landroid/ddm/DdmHandle;
-Landroid/ddm/DdmHandleAppName$Names-IA;
-Landroid/ddm/DdmHandleAppName$Names;
-Landroid/ddm/DdmHandleAppName;
-Landroid/ddm/DdmHandleExit;
-Landroid/ddm/DdmHandleHeap;
-Landroid/ddm/DdmHandleHello;
-Landroid/ddm/DdmHandleNativeHeap;
-Landroid/ddm/DdmHandleProfiling;
-Landroid/ddm/DdmHandleViewDebug;
-Landroid/ddm/DdmRegister;
-Landroid/debug/AdbManager;
-Landroid/debug/AdbManagerInternal;
-Landroid/debug/IAdbManager$Stub$Proxy;
-Landroid/debug/IAdbManager$Stub;
-Landroid/debug/IAdbManager;
-Landroid/debug/IAdbTransport$Stub;
-Landroid/debug/IAdbTransport;
-Landroid/graphics/BLASTBufferQueue$TransactionHangCallback;
-Landroid/graphics/BLASTBufferQueue;
-Landroid/graphics/BaseCanvas;
-Landroid/graphics/BaseRecordingCanvas;
-Landroid/graphics/Bitmap$1;
-Landroid/graphics/Bitmap$CompressFormat;
-Landroid/graphics/Bitmap$Config;
-Landroid/graphics/Bitmap;
-Landroid/graphics/BitmapFactory$Options;
-Landroid/graphics/BitmapFactory;
-Landroid/graphics/BitmapRegionDecoder;
-Landroid/graphics/BitmapShader;
-Landroid/graphics/BlendMode;
-Landroid/graphics/BlendModeColorFilter;
-Landroid/graphics/BlurMaskFilter$Blur;
-Landroid/graphics/BlurMaskFilter;
-Landroid/graphics/Camera;
-Landroid/graphics/Canvas$EdgeType;
-Landroid/graphics/Canvas$NoImagePreloadHolder;
-Landroid/graphics/Canvas;
-Landroid/graphics/CanvasProperty;
-Landroid/graphics/Color;
-Landroid/graphics/ColorFilter$NoImagePreloadHolder;
-Landroid/graphics/ColorFilter;
-Landroid/graphics/ColorMatrix;
-Landroid/graphics/ColorMatrixColorFilter;
-Landroid/graphics/ColorSpace$$ExternalSyntheticLambda0;
-Landroid/graphics/ColorSpace$$ExternalSyntheticLambda1;
-Landroid/graphics/ColorSpace$$ExternalSyntheticLambda2;
-Landroid/graphics/ColorSpace$$ExternalSyntheticLambda3;
-Landroid/graphics/ColorSpace$$ExternalSyntheticLambda4;
-Landroid/graphics/ColorSpace$$ExternalSyntheticLambda5;
-Landroid/graphics/ColorSpace$Adaptation;
-Landroid/graphics/ColorSpace$Connector;
-Landroid/graphics/ColorSpace$Lab;
-Landroid/graphics/ColorSpace$Model;
-Landroid/graphics/ColorSpace$Named;
-Landroid/graphics/ColorSpace$RenderIntent;
-Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda0;
-Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda1;
-Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda2;
-Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda3;
-Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda4;
-Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda5;
-Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda6;
-Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda9;
-Landroid/graphics/ColorSpace$Rgb$NoImagePreloadHolder;
-Landroid/graphics/ColorSpace$Rgb$TransferParameters;
-Landroid/graphics/ColorSpace$Rgb-IA;
-Landroid/graphics/ColorSpace$Rgb;
-Landroid/graphics/ColorSpace$Xyz;
-Landroid/graphics/ColorSpace;
-Landroid/graphics/Compatibility;
-Landroid/graphics/ComposePathEffect;
-Landroid/graphics/ComposeShader;
-Landroid/graphics/CornerPathEffect;
-Landroid/graphics/DashPathEffect;
-Landroid/graphics/DiscretePathEffect;
-Landroid/graphics/DrawFilter;
-Landroid/graphics/EmbossMaskFilter;
-Landroid/graphics/FontFamily;
-Landroid/graphics/FontListParser;
-Landroid/graphics/FrameInfo;
-Landroid/graphics/Gainmap$1;
-Landroid/graphics/Gainmap;
-Landroid/graphics/GraphicBuffer$1;
-Landroid/graphics/GraphicBuffer;
-Landroid/graphics/GraphicsProtos;
-Landroid/graphics/GraphicsStatsService$1;
-Landroid/graphics/GraphicsStatsService$ActiveBuffer;
-Landroid/graphics/GraphicsStatsService$BufferInfo;
-Landroid/graphics/GraphicsStatsService$HistoricalBuffer;
-Landroid/graphics/GraphicsStatsService;
-Landroid/graphics/HardwareBufferRenderer;
-Landroid/graphics/HardwareRenderer$ASurfaceTransactionCallback;
-Landroid/graphics/HardwareRenderer$CopyRequest;
-Landroid/graphics/HardwareRenderer$DestroyContextRunnable;
-Landroid/graphics/HardwareRenderer$FrameCommitCallback;
-Landroid/graphics/HardwareRenderer$FrameCompleteCallback;
-Landroid/graphics/HardwareRenderer$FrameDrawingCallback;
-Landroid/graphics/HardwareRenderer$FrameRenderRequest-IA;
-Landroid/graphics/HardwareRenderer$FrameRenderRequest;
-Landroid/graphics/HardwareRenderer$PrepareSurfaceControlForWebviewCallback;
-Landroid/graphics/HardwareRenderer$ProcessInitializer$1;
-Landroid/graphics/HardwareRenderer$ProcessInitializer;
-Landroid/graphics/HardwareRenderer;
-Landroid/graphics/HardwareRendererObserver$$ExternalSyntheticLambda0;
-Landroid/graphics/HardwareRendererObserver$OnFrameMetricsAvailableListener;
-Landroid/graphics/HardwareRendererObserver;
-Landroid/graphics/ImageDecoder$AssetInputStreamSource;
-Landroid/graphics/ImageDecoder$ByteArraySource;
-Landroid/graphics/ImageDecoder$DecodeException;
-Landroid/graphics/ImageDecoder$ImageDecoderSourceTrace;
-Landroid/graphics/ImageDecoder$ImageInfo-IA;
-Landroid/graphics/ImageDecoder$ImageInfo;
-Landroid/graphics/ImageDecoder$InputStreamSource;
-Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;
-Landroid/graphics/ImageDecoder$Source-IA;
-Landroid/graphics/ImageDecoder$Source;
-Landroid/graphics/ImageDecoder;
-Landroid/graphics/ImageFormat;
-Landroid/graphics/Insets$1;
-Landroid/graphics/Insets-IA;
-Landroid/graphics/Insets;
-Landroid/graphics/Interpolator$Result;
-Landroid/graphics/Interpolator;
-Landroid/graphics/LeakyTypefaceStorage;
-Landroid/graphics/LightingColorFilter;
-Landroid/graphics/LinearGradient;
-Landroid/graphics/MaskFilter;
-Landroid/graphics/Matrix$1;
-Landroid/graphics/Matrix$NoImagePreloadHolder;
-Landroid/graphics/Matrix$ScaleToFit;
-Landroid/graphics/Matrix;
-Landroid/graphics/Mesh;
-Landroid/graphics/MeshSpecification$Attribute;
-Landroid/graphics/MeshSpecification$Varying;
-Landroid/graphics/MeshSpecification;
-Landroid/graphics/Movie;
-Landroid/graphics/NinePatch$InsetStruct;
-Landroid/graphics/NinePatch;
-Landroid/graphics/Outline;
-Landroid/graphics/Paint$Align;
-Landroid/graphics/Paint$Cap;
-Landroid/graphics/Paint$FontMetrics;
-Landroid/graphics/Paint$FontMetricsInt;
-Landroid/graphics/Paint$Join;
-Landroid/graphics/Paint$NoImagePreloadHolder;
-Landroid/graphics/Paint$RunInfo;
-Landroid/graphics/Paint$Style;
-Landroid/graphics/Paint;
-Landroid/graphics/PaintFlagsDrawFilter;
-Landroid/graphics/Path$Direction;
-Landroid/graphics/Path$FillType;
-Landroid/graphics/Path$Op;
-Landroid/graphics/Path;
-Landroid/graphics/PathDashPathEffect;
-Landroid/graphics/PathEffect;
-Landroid/graphics/PathIterator;
-Landroid/graphics/PathMeasure;
-Landroid/graphics/Picture$PictureCanvas;
-Landroid/graphics/Picture;
-Landroid/graphics/PixelFormat;
-Landroid/graphics/Point$1;
-Landroid/graphics/Point;
-Landroid/graphics/PointF$1;
-Landroid/graphics/PointF;
-Landroid/graphics/PorterDuff$Mode;
-Landroid/graphics/PorterDuff;
-Landroid/graphics/PorterDuffColorFilter;
-Landroid/graphics/PorterDuffXfermode;
-Landroid/graphics/PostProcessor;
-Landroid/graphics/RadialGradient;
-Landroid/graphics/RecordingCanvas;
-Landroid/graphics/Rect$1;
-Landroid/graphics/Rect$UnflattenHelper;
-Landroid/graphics/Rect;
-Landroid/graphics/RectF$1;
-Landroid/graphics/RectF;
-Landroid/graphics/Region$1;
-Landroid/graphics/Region$Op;
-Landroid/graphics/Region;
-Landroid/graphics/RegionIterator;
-Landroid/graphics/RenderEffect$RenderEffectHolder;
-Landroid/graphics/RenderEffect;
-Landroid/graphics/RenderNode$AnimationHost;
-Landroid/graphics/RenderNode$CompositePositionUpdateListener;
-Landroid/graphics/RenderNode$NoImagePreloadHolder;
-Landroid/graphics/RenderNode$PositionUpdateListener;
-Landroid/graphics/RenderNode;
-Landroid/graphics/RuntimeShader$NoImagePreloadHolder;
-Landroid/graphics/RuntimeShader;
-Landroid/graphics/Shader$NoImagePreloadHolder;
-Landroid/graphics/Shader$TileMode;
-Landroid/graphics/Shader;
-Landroid/graphics/SumPathEffect;
-Landroid/graphics/SurfaceTexture$1;
-Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;
-Landroid/graphics/SurfaceTexture$OnSetFrameRateListener;
-Landroid/graphics/SurfaceTexture;
-Landroid/graphics/SweepGradient;
-Landroid/graphics/TableMaskFilter;
-Landroid/graphics/TemporaryBuffer;
-Landroid/graphics/TextureLayer;
-Landroid/graphics/Typeface$Builder;
-Landroid/graphics/Typeface$CustomFallbackBuilder;
-Landroid/graphics/Typeface-IA;
-Landroid/graphics/Typeface;
-Landroid/graphics/Xfermode;
-Landroid/graphics/YuvImage;
-Landroid/graphics/animation/FallbackLUTInterpolator;
-Landroid/graphics/animation/HasNativeInterpolator;
-Landroid/graphics/animation/NativeInterpolator;
-Landroid/graphics/animation/NativeInterpolatorFactory;
-Landroid/graphics/animation/RenderNodeAnimator$$ExternalSyntheticLambda0;
-Landroid/graphics/animation/RenderNodeAnimator$DelayedAnimationHelper;
-Landroid/graphics/animation/RenderNodeAnimator$ViewListener;
-Landroid/graphics/animation/RenderNodeAnimator;
-Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;
-Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;
-Landroid/graphics/drawable/AdaptiveIconDrawable;
-Landroid/graphics/drawable/Animatable2$AnimationCallback;
-Landroid/graphics/drawable/Animatable2;
-Landroid/graphics/drawable/Animatable;
-Landroid/graphics/drawable/AnimatedImageDrawable$State;
-Landroid/graphics/drawable/AnimatedImageDrawable;
-Landroid/graphics/drawable/AnimatedRotateDrawable$1;
-Landroid/graphics/drawable/AnimatedRotateDrawable$AnimatedRotateState;
-Landroid/graphics/drawable/AnimatedRotateDrawable;
-Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatableTransition;
-Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;
-Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;
-Landroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition;
-Landroid/graphics/drawable/AnimatedStateListDrawable$FrameInterpolator;
-Landroid/graphics/drawable/AnimatedStateListDrawable$Transition-IA;
-Landroid/graphics/drawable/AnimatedStateListDrawable$Transition;
-Landroid/graphics/drawable/AnimatedStateListDrawable-IA;
-Landroid/graphics/drawable/AnimatedStateListDrawable;
-Landroid/graphics/drawable/AnimatedVectorDrawable$1;
-Landroid/graphics/drawable/AnimatedVectorDrawable$2;
-Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState$PendingAnimator;
-Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;
-Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;
-Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT$$ExternalSyntheticLambda0;
-Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;
-Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;
-Landroid/graphics/drawable/AnimatedVectorDrawable-IA;
-Landroid/graphics/drawable/AnimatedVectorDrawable;
-Landroid/graphics/drawable/AnimationDrawable$AnimationState;
-Landroid/graphics/drawable/AnimationDrawable-IA;
-Landroid/graphics/drawable/AnimationDrawable;
-Landroid/graphics/drawable/BitmapDrawable$$ExternalSyntheticLambda1;
-Landroid/graphics/drawable/BitmapDrawable$$ExternalSyntheticLambda2;
-Landroid/graphics/drawable/BitmapDrawable$BitmapState;
-Landroid/graphics/drawable/BitmapDrawable-IA;
-Landroid/graphics/drawable/BitmapDrawable;
-Landroid/graphics/drawable/ClipDrawable$ClipState;
-Landroid/graphics/drawable/ClipDrawable-IA;
-Landroid/graphics/drawable/ClipDrawable;
-Landroid/graphics/drawable/ColorDrawable$ColorState;
-Landroid/graphics/drawable/ColorDrawable-IA;
-Landroid/graphics/drawable/ColorDrawable;
-Landroid/graphics/drawable/ColorStateListDrawable$ColorStateListDrawableState;
-Landroid/graphics/drawable/ColorStateListDrawable;
-Landroid/graphics/drawable/Drawable$Callback;
-Landroid/graphics/drawable/Drawable$ConstantState;
-Landroid/graphics/drawable/Drawable;
-Landroid/graphics/drawable/DrawableContainer$1;
-Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback-IA;
-Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;
-Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;
-Landroid/graphics/drawable/DrawableContainer;
-Landroid/graphics/drawable/DrawableInflater;
-Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
-Landroid/graphics/drawable/DrawableWrapper;
-Landroid/graphics/drawable/GradientDrawable$GradientState;
-Landroid/graphics/drawable/GradientDrawable$Orientation;
-Landroid/graphics/drawable/GradientDrawable-IA;
-Landroid/graphics/drawable/GradientDrawable;
-Landroid/graphics/drawable/Icon$1;
-Landroid/graphics/drawable/Icon$LoadDrawableTask;
-Landroid/graphics/drawable/Icon-IA;
-Landroid/graphics/drawable/Icon;
-Landroid/graphics/drawable/InsetDrawable$InsetState;
-Landroid/graphics/drawable/InsetDrawable$InsetValue;
-Landroid/graphics/drawable/InsetDrawable-IA;
-Landroid/graphics/drawable/InsetDrawable;
-Landroid/graphics/drawable/LayerDrawable$ChildDrawable;
-Landroid/graphics/drawable/LayerDrawable$LayerState;
-Landroid/graphics/drawable/LayerDrawable;
-Landroid/graphics/drawable/LevelListDrawable$LevelListState;
-Landroid/graphics/drawable/LevelListDrawable;
-Landroid/graphics/drawable/NinePatchDrawable$$ExternalSyntheticLambda0;
-Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;
-Landroid/graphics/drawable/NinePatchDrawable-IA;
-Landroid/graphics/drawable/NinePatchDrawable;
-Landroid/graphics/drawable/PaintDrawable;
-Landroid/graphics/drawable/PictureDrawable;
-Landroid/graphics/drawable/RippleAnimationSession$2;
-Landroid/graphics/drawable/RippleAnimationSession$3;
-Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties;
-Landroid/graphics/drawable/RippleAnimationSession$AnimatorListener;
-Landroid/graphics/drawable/RippleAnimationSession;
-Landroid/graphics/drawable/RippleBackground$1;
-Landroid/graphics/drawable/RippleBackground$BackgroundProperty;
-Landroid/graphics/drawable/RippleBackground;
-Landroid/graphics/drawable/RippleComponent;
-Landroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda0;
-Landroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda1;
-Landroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda2;
-Landroid/graphics/drawable/RippleDrawable$RippleState;
-Landroid/graphics/drawable/RippleDrawable-IA;
-Landroid/graphics/drawable/RippleDrawable;
-Landroid/graphics/drawable/RippleForeground$1;
-Landroid/graphics/drawable/RippleForeground$2;
-Landroid/graphics/drawable/RippleForeground$3;
-Landroid/graphics/drawable/RippleForeground$4;
-Landroid/graphics/drawable/RippleForeground;
-Landroid/graphics/drawable/RippleShader;
-Landroid/graphics/drawable/RotateDrawable$RotateState;
-Landroid/graphics/drawable/RotateDrawable-IA;
-Landroid/graphics/drawable/RotateDrawable;
-Landroid/graphics/drawable/ScaleDrawable$ScaleState;
-Landroid/graphics/drawable/ScaleDrawable-IA;
-Landroid/graphics/drawable/ScaleDrawable;
-Landroid/graphics/drawable/ShapeDrawable$ShaderFactory;
-Landroid/graphics/drawable/ShapeDrawable$ShapeState;
-Landroid/graphics/drawable/ShapeDrawable;
-Landroid/graphics/drawable/StateListDrawable$StateListState;
-Landroid/graphics/drawable/StateListDrawable-IA;
-Landroid/graphics/drawable/StateListDrawable;
-Landroid/graphics/drawable/TransitionDrawable$TransitionState;
-Landroid/graphics/drawable/TransitionDrawable;
-Landroid/graphics/drawable/VectorDrawable$VClipPath;
-Landroid/graphics/drawable/VectorDrawable$VFullPath$1;
-Landroid/graphics/drawable/VectorDrawable$VFullPath$2;
-Landroid/graphics/drawable/VectorDrawable$VFullPath$3;
-Landroid/graphics/drawable/VectorDrawable$VFullPath$4;
-Landroid/graphics/drawable/VectorDrawable$VFullPath$5;
-Landroid/graphics/drawable/VectorDrawable$VFullPath$6;
-Landroid/graphics/drawable/VectorDrawable$VFullPath$7;
-Landroid/graphics/drawable/VectorDrawable$VFullPath$8;
-Landroid/graphics/drawable/VectorDrawable$VFullPath;
-Landroid/graphics/drawable/VectorDrawable$VGroup$1;
-Landroid/graphics/drawable/VectorDrawable$VGroup$2;
-Landroid/graphics/drawable/VectorDrawable$VGroup$3;
-Landroid/graphics/drawable/VectorDrawable$VGroup$4;
-Landroid/graphics/drawable/VectorDrawable$VGroup$5;
-Landroid/graphics/drawable/VectorDrawable$VGroup$6;
-Landroid/graphics/drawable/VectorDrawable$VGroup$7;
-Landroid/graphics/drawable/VectorDrawable$VGroup;
-Landroid/graphics/drawable/VectorDrawable$VObject;
-Landroid/graphics/drawable/VectorDrawable$VPath$1;
-Landroid/graphics/drawable/VectorDrawable$VPath;
-Landroid/graphics/drawable/VectorDrawable$VectorDrawableState$1;
-Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;
-Landroid/graphics/drawable/VectorDrawable-IA;
-Landroid/graphics/drawable/VectorDrawable;
-Landroid/graphics/drawable/shapes/OvalShape;
-Landroid/graphics/drawable/shapes/PathShape;
-Landroid/graphics/drawable/shapes/RectShape;
-Landroid/graphics/drawable/shapes/RoundRectShape;
-Landroid/graphics/drawable/shapes/Shape;
-Landroid/graphics/fonts/Font$Builder;
-Landroid/graphics/fonts/Font;
-Landroid/graphics/fonts/FontCustomizationParser$Result;
-Landroid/graphics/fonts/FontCustomizationParser;
-Landroid/graphics/fonts/FontFamily$Builder;
-Landroid/graphics/fonts/FontFamily;
-Landroid/graphics/fonts/FontFileUtil;
-Landroid/graphics/fonts/FontManager;
-Landroid/graphics/fonts/FontStyle;
-Landroid/graphics/fonts/FontVariationAxis;
-Landroid/graphics/fonts/SystemFonts;
-Landroid/graphics/pdf/PdfDocument;
-Landroid/graphics/pdf/PdfEditor;
-Landroid/graphics/text/GraphemeBreak;
-Landroid/graphics/text/LineBreakConfig$1;
-Landroid/graphics/text/LineBreakConfig$Builder;
-Landroid/graphics/text/LineBreakConfig;
-Landroid/graphics/text/LineBreaker$Builder;
-Landroid/graphics/text/LineBreaker$ParagraphConstraints;
-Landroid/graphics/text/LineBreaker$Result-IA;
-Landroid/graphics/text/LineBreaker$Result;
-Landroid/graphics/text/LineBreaker-IA;
-Landroid/graphics/text/LineBreaker;
-Landroid/graphics/text/MeasuredText$Builder;
-Landroid/graphics/text/MeasuredText-IA;
-Landroid/graphics/text/MeasuredText;
-Landroid/graphics/text/PositionedGlyphs;
-Landroid/graphics/text/TextRunShaper;
-Landroid/gsi/AvbPublicKey$1;
-Landroid/gsi/AvbPublicKey;
-Landroid/gsi/GsiProgress$1;
-Landroid/gsi/GsiProgress;
-Landroid/gsi/IGsiService$Stub$Proxy;
-Landroid/gsi/IGsiService$Stub;
-Landroid/gsi/IGsiService;
-Landroid/gui/StalledTransactionInfo$1;
-Landroid/gui/StalledTransactionInfo;
-Landroid/hardware/Camera$CameraInfo;
-Landroid/hardware/Camera$Face;
-Landroid/hardware/Camera;
-Landroid/hardware/CameraSessionStats$1;
-Landroid/hardware/CameraSessionStats;
-Landroid/hardware/CameraStatus$1;
-Landroid/hardware/CameraStatus;
-Landroid/hardware/ConsumerIrManager;
-Landroid/hardware/GeomagneticField$LegendreTable;
-Landroid/hardware/GeomagneticField;
-Landroid/hardware/HardwareBuffer$1;
-Landroid/hardware/HardwareBuffer-IA;
-Landroid/hardware/HardwareBuffer;
-Landroid/hardware/ICameraService$Stub$Proxy;
-Landroid/hardware/ICameraService$Stub;
-Landroid/hardware/ICameraService;
-Landroid/hardware/ICameraServiceListener$Stub;
-Landroid/hardware/ICameraServiceListener;
-Landroid/hardware/ICameraServiceProxy$Stub;
-Landroid/hardware/ICameraServiceProxy;
-Landroid/hardware/IConsumerIrService$Stub;
-Landroid/hardware/IConsumerIrService;
-Landroid/hardware/ISensorPrivacyListener$Stub$Proxy;
-Landroid/hardware/ISensorPrivacyListener$Stub;
-Landroid/hardware/ISensorPrivacyListener;
-Landroid/hardware/ISensorPrivacyManager$Stub$Proxy;
-Landroid/hardware/ISensorPrivacyManager$Stub;
-Landroid/hardware/ISensorPrivacyManager;
-Landroid/hardware/ISerialManager$Stub;
-Landroid/hardware/ISerialManager;
-Landroid/hardware/OverlayProperties$1;
-Landroid/hardware/OverlayProperties-IA;
-Landroid/hardware/OverlayProperties;
-Landroid/hardware/Sensor;
-Landroid/hardware/SensorAdditionalInfo;
-Landroid/hardware/SensorDirectChannel;
-Landroid/hardware/SensorEvent;
-Landroid/hardware/SensorEventCallback;
-Landroid/hardware/SensorEventListener2;
-Landroid/hardware/SensorEventListener;
-Landroid/hardware/SensorListener;
-Landroid/hardware/SensorManager$DynamicSensorCallback;
-Landroid/hardware/SensorManager;
-Landroid/hardware/SensorPrivacyManager$1;
-Landroid/hardware/SensorPrivacyManager$2;
-Landroid/hardware/SensorPrivacyManager$OnSensorPrivacyChangedListener$SensorPrivacyChangedParams;
-Landroid/hardware/SensorPrivacyManager$OnSensorPrivacyChangedListener;
-Landroid/hardware/SensorPrivacyManager;
-Landroid/hardware/SerialManager;
-Landroid/hardware/SerialPort;
-Landroid/hardware/SyncFence$1;
-Landroid/hardware/SyncFence;
-Landroid/hardware/SystemSensorManager$BaseEventQueue;
-Landroid/hardware/SystemSensorManager$SensorEventQueue;
-Landroid/hardware/SystemSensorManager$TriggerEventQueue;
-Landroid/hardware/SystemSensorManager;
-Landroid/hardware/TriggerEvent;
-Landroid/hardware/TriggerEventListener;
-Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;
-Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;
-Landroid/hardware/biometrics/BiometricAuthenticator;
-Landroid/hardware/biometrics/BiometricFaceConstants;
-Landroid/hardware/biometrics/BiometricFingerprintConstants;
-Landroid/hardware/biometrics/BiometricManager;
-Landroid/hardware/biometrics/BiometricSourceType$1;
-Landroid/hardware/biometrics/BiometricSourceType;
-Landroid/hardware/biometrics/ComponentInfoInternal$1;
-Landroid/hardware/biometrics/ComponentInfoInternal;
-Landroid/hardware/biometrics/CryptoObject;
-Landroid/hardware/biometrics/IAuthService$Stub$Proxy;
-Landroid/hardware/biometrics/IAuthService$Stub;
-Landroid/hardware/biometrics/IAuthService;
-Landroid/hardware/biometrics/IBiometricAuthenticator$Stub$Proxy;
-Landroid/hardware/biometrics/IBiometricAuthenticator$Stub;
-Landroid/hardware/biometrics/IBiometricAuthenticator;
-Landroid/hardware/biometrics/IBiometricContextListener$Stub;
-Landroid/hardware/biometrics/IBiometricContextListener;
-Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub$Proxy;
-Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub;
-Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;
-Landroid/hardware/biometrics/IBiometricSensorReceiver$Stub;
-Landroid/hardware/biometrics/IBiometricSensorReceiver;
-Landroid/hardware/biometrics/IBiometricService$Stub$Proxy;
-Landroid/hardware/biometrics/IBiometricService$Stub;
-Landroid/hardware/biometrics/IBiometricService;
-Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback$Stub$Proxy;
-Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback$Stub;
-Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;
-Landroid/hardware/biometrics/IBiometricServiceReceiver$Stub$Proxy;
-Landroid/hardware/biometrics/IBiometricServiceReceiver$Stub;
-Landroid/hardware/biometrics/IBiometricServiceReceiver;
-Landroid/hardware/biometrics/IBiometricStateListener;
-Landroid/hardware/biometrics/IBiometricSysuiReceiver$Stub$Proxy;
-Landroid/hardware/biometrics/IBiometricSysuiReceiver$Stub;
-Landroid/hardware/biometrics/IBiometricSysuiReceiver;
-Landroid/hardware/biometrics/IInvalidationCallback$Stub;
-Landroid/hardware/biometrics/IInvalidationCallback;
-Landroid/hardware/biometrics/ITestSession;
-Landroid/hardware/biometrics/PromptInfo$1;
-Landroid/hardware/biometrics/PromptInfo;
-Landroid/hardware/biometrics/SensorLocationInternal$1;
-Landroid/hardware/biometrics/SensorLocationInternal;
-Landroid/hardware/biometrics/SensorPropertiesInternal$1;
-Landroid/hardware/biometrics/SensorPropertiesInternal;
-Landroid/hardware/biometrics/common/AuthenticateReason$Fingerprint;
-Landroid/hardware/camera2/CameraAccessException;
-Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback;
-Landroid/hardware/camera2/CameraCaptureSession$StateCallback;
-Landroid/hardware/camera2/CameraCharacteristics$1;
-Landroid/hardware/camera2/CameraCharacteristics$2;
-Landroid/hardware/camera2/CameraCharacteristics$3;
-Landroid/hardware/camera2/CameraCharacteristics$4;
-Landroid/hardware/camera2/CameraCharacteristics$5;
-Landroid/hardware/camera2/CameraCharacteristics$6;
-Landroid/hardware/camera2/CameraCharacteristics$7;
-Landroid/hardware/camera2/CameraCharacteristics$8;
-Landroid/hardware/camera2/CameraCharacteristics$9;
-Landroid/hardware/camera2/CameraCharacteristics$Key;
-Landroid/hardware/camera2/CameraCharacteristics;
-Landroid/hardware/camera2/CameraDevice$StateCallback;
-Landroid/hardware/camera2/CameraDevice;
-Landroid/hardware/camera2/CameraManager$AvailabilityCallback;
-Landroid/hardware/camera2/CameraManager$CameraManagerGlobal$$ExternalSyntheticLambda2;
-Landroid/hardware/camera2/CameraManager$CameraManagerGlobal$1;
-Landroid/hardware/camera2/CameraManager$CameraManagerGlobal$3;
-Landroid/hardware/camera2/CameraManager$CameraManagerGlobal$4;
-Landroid/hardware/camera2/CameraManager$CameraManagerGlobal$5;
-Landroid/hardware/camera2/CameraManager$CameraManagerGlobal$6;
-Landroid/hardware/camera2/CameraManager$CameraManagerGlobal$7;
-Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;
-Landroid/hardware/camera2/CameraManager$DeviceStateListener;
-Landroid/hardware/camera2/CameraManager$FoldStateListener$$ExternalSyntheticLambda0;
-Landroid/hardware/camera2/CameraManager$FoldStateListener;
-Landroid/hardware/camera2/CameraManager$TorchCallback;
-Landroid/hardware/camera2/CameraManager;
-Landroid/hardware/camera2/CameraMetadata;
-Landroid/hardware/camera2/CameraOfflineSession$CameraOfflineSessionCallback;
-Landroid/hardware/camera2/CaptureRequest$1;
-Landroid/hardware/camera2/CaptureRequest$2;
-Landroid/hardware/camera2/CaptureRequest$3;
-Landroid/hardware/camera2/CaptureRequest$Key;
-Landroid/hardware/camera2/CaptureRequest;
-Landroid/hardware/camera2/CaptureResult$1;
-Landroid/hardware/camera2/CaptureResult$2;
-Landroid/hardware/camera2/CaptureResult$3;
-Landroid/hardware/camera2/CaptureResult$4;
-Landroid/hardware/camera2/CaptureResult$Key;
-Landroid/hardware/camera2/CaptureResult;
-Landroid/hardware/camera2/DngCreator;
-Landroid/hardware/camera2/TotalCaptureResult;
-Landroid/hardware/camera2/extension/ICaptureProcessorImpl;
-Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraHandlerExecutor;
-Landroid/hardware/camera2/impl/CameraDeviceImpl;
-Landroid/hardware/camera2/impl/CameraExtensionJpegProcessor;
-Landroid/hardware/camera2/impl/CameraMetadataNative$10;
-Landroid/hardware/camera2/impl/CameraMetadataNative$11;
-Landroid/hardware/camera2/impl/CameraMetadataNative$12;
-Landroid/hardware/camera2/impl/CameraMetadataNative$13;
-Landroid/hardware/camera2/impl/CameraMetadataNative$14;
-Landroid/hardware/camera2/impl/CameraMetadataNative$15;
-Landroid/hardware/camera2/impl/CameraMetadataNative$16;
-Landroid/hardware/camera2/impl/CameraMetadataNative$17;
-Landroid/hardware/camera2/impl/CameraMetadataNative$18;
-Landroid/hardware/camera2/impl/CameraMetadataNative$19;
-Landroid/hardware/camera2/impl/CameraMetadataNative$1;
-Landroid/hardware/camera2/impl/CameraMetadataNative$20;
-Landroid/hardware/camera2/impl/CameraMetadataNative$21;
-Landroid/hardware/camera2/impl/CameraMetadataNative$22;
-Landroid/hardware/camera2/impl/CameraMetadataNative$23;
-Landroid/hardware/camera2/impl/CameraMetadataNative$24;
-Landroid/hardware/camera2/impl/CameraMetadataNative$25;
-Landroid/hardware/camera2/impl/CameraMetadataNative$26;
-Landroid/hardware/camera2/impl/CameraMetadataNative$27;
-Landroid/hardware/camera2/impl/CameraMetadataNative$28;
-Landroid/hardware/camera2/impl/CameraMetadataNative$29;
-Landroid/hardware/camera2/impl/CameraMetadataNative$2;
-Landroid/hardware/camera2/impl/CameraMetadataNative$30;
-Landroid/hardware/camera2/impl/CameraMetadataNative$31;
-Landroid/hardware/camera2/impl/CameraMetadataNative$32;
-Landroid/hardware/camera2/impl/CameraMetadataNative$33;
-Landroid/hardware/camera2/impl/CameraMetadataNative$34;
-Landroid/hardware/camera2/impl/CameraMetadataNative$35;
-Landroid/hardware/camera2/impl/CameraMetadataNative$36;
-Landroid/hardware/camera2/impl/CameraMetadataNative$37;
-Landroid/hardware/camera2/impl/CameraMetadataNative$38;
-Landroid/hardware/camera2/impl/CameraMetadataNative$39;
-Landroid/hardware/camera2/impl/CameraMetadataNative$3;
-Landroid/hardware/camera2/impl/CameraMetadataNative$4;
-Landroid/hardware/camera2/impl/CameraMetadataNative$5;
-Landroid/hardware/camera2/impl/CameraMetadataNative$6;
-Landroid/hardware/camera2/impl/CameraMetadataNative$7;
-Landroid/hardware/camera2/impl/CameraMetadataNative$8;
-Landroid/hardware/camera2/impl/CameraMetadataNative$9;
-Landroid/hardware/camera2/impl/CameraMetadataNative$Key;
-Landroid/hardware/camera2/impl/CameraMetadataNative;
-Landroid/hardware/camera2/impl/GetCommand;
-Landroid/hardware/camera2/impl/SetCommand;
-Landroid/hardware/camera2/marshal/MarshalHelpers;
-Landroid/hardware/camera2/marshal/MarshalQueryable;
-Landroid/hardware/camera2/marshal/MarshalRegistry$MarshalToken;
-Landroid/hardware/camera2/marshal/MarshalRegistry;
-Landroid/hardware/camera2/marshal/Marshaler;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$MarshalerArray;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$PrimitiveArrayFiller$5;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$PrimitiveArrayFiller;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableBlackLevelPattern;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean$MarshalerBoolean;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableColorSpaceTransform;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableEnum;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableHighSpeedVideoConfiguration$MarshalerHighSpeedVideoConfiguration;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableHighSpeedVideoConfiguration;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableMeteringRectangle;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger$MarshalerNativeByteToInteger;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryablePair;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableParcelable;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive$MarshalerPrimitive;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableRange$MarshalerRange;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableRange;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableRecommendedStreamConfiguration;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableRect$MarshalerRect;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableRect;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableReprocessFormatsMap$MarshalerReprocessFormatsMap;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableReprocessFormatsMap;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableRggbChannelVector;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableSize$MarshalerSize;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableSize;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableSizeF;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfiguration$MarshalerStreamConfiguration;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfiguration;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfigurationDuration$MarshalerStreamConfigurationDuration;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfigurationDuration;
-Landroid/hardware/camera2/marshal/impl/MarshalQueryableString;
-Landroid/hardware/camera2/params/BlackLevelPattern;
-Landroid/hardware/camera2/params/Capability;
-Landroid/hardware/camera2/params/ColorSpaceProfiles;
-Landroid/hardware/camera2/params/ColorSpaceTransform;
-Landroid/hardware/camera2/params/DeviceStateSensorOrientationMap;
-Landroid/hardware/camera2/params/DynamicRangeProfiles;
-Landroid/hardware/camera2/params/Face;
-Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;
-Landroid/hardware/camera2/params/LensIntrinsicsSample;
-Landroid/hardware/camera2/params/LensShadingMap;
-Landroid/hardware/camera2/params/MandatoryStreamCombination$ReprocessType;
-Landroid/hardware/camera2/params/MandatoryStreamCombination$SizeThreshold;
-Landroid/hardware/camera2/params/MandatoryStreamCombination$StreamCombinationTemplate;
-Landroid/hardware/camera2/params/MandatoryStreamCombination$StreamTemplate;
-Landroid/hardware/camera2/params/MandatoryStreamCombination;
-Landroid/hardware/camera2/params/MeteringRectangle;
-Landroid/hardware/camera2/params/MultiResolutionStreamConfigurationMap;
-Landroid/hardware/camera2/params/OisSample;
-Landroid/hardware/camera2/params/RecommendedStreamConfiguration;
-Landroid/hardware/camera2/params/ReprocessFormatsMap;
-Landroid/hardware/camera2/params/RggbChannelVector;
-Landroid/hardware/camera2/params/StreamConfiguration;
-Landroid/hardware/camera2/params/StreamConfigurationDuration;
-Landroid/hardware/camera2/params/StreamConfigurationMap;
-Landroid/hardware/camera2/params/TonemapCurve;
-Landroid/hardware/camera2/utils/ArrayUtils;
-Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination$1;
-Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination-IA;
-Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination;
-Landroid/hardware/camera2/utils/ExceptionUtils;
-Landroid/hardware/camera2/utils/HashCodeHelpers;
-Landroid/hardware/camera2/utils/SurfaceUtils;
-Landroid/hardware/camera2/utils/TypeReference$SpecializedBaseTypeReference;
-Landroid/hardware/camera2/utils/TypeReference$SpecializedTypeReference;
-Landroid/hardware/camera2/utils/TypeReference-IA;
-Landroid/hardware/camera2/utils/TypeReference;
-Landroid/hardware/common/fmq/SynchronizedReadWrite;
-Landroid/hardware/common/fmq/UnsynchronizedWrite;
-Landroid/hardware/contexthub/V1_0/ContextHub;
-Landroid/hardware/contexthub/V1_0/ContextHubMsg;
-Landroid/hardware/contexthub/V1_0/HubAppInfo;
-Landroid/hardware/contexthub/V1_0/IContexthub$Proxy;
-Landroid/hardware/contexthub/V1_0/IContexthub;
-Landroid/hardware/contexthub/V1_0/IContexthubCallback$Stub;
-Landroid/hardware/contexthub/V1_0/IContexthubCallback;
-Landroid/hardware/contexthub/V1_0/MemRange;
-Landroid/hardware/contexthub/V1_0/NanoAppBinary;
-Landroid/hardware/contexthub/V1_0/PhysicalSensor;
-Landroid/hardware/contexthub/V1_1/Setting;
-Landroid/hardware/devicestate/DeviceState;
-Landroid/hardware/devicestate/DeviceStateInfo$1;
-Landroid/hardware/devicestate/DeviceStateInfo;
-Landroid/hardware/devicestate/DeviceStateManager$DeviceStateCallback;
-Landroid/hardware/devicestate/DeviceStateManager$FoldStateListener;
-Landroid/hardware/devicestate/DeviceStateManager;
-Landroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda0;
-Landroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda1;
-Landroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda2;
-Landroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper;
-Landroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateManagerCallback-IA;
-Landroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateManagerCallback;
-Landroid/hardware/devicestate/DeviceStateManagerGlobal;
-Landroid/hardware/devicestate/IDeviceStateManager$Stub$Proxy;
-Landroid/hardware/devicestate/IDeviceStateManager$Stub;
-Landroid/hardware/devicestate/IDeviceStateManager;
-Landroid/hardware/devicestate/IDeviceStateManagerCallback$Stub;
-Landroid/hardware/devicestate/IDeviceStateManagerCallback;
-Landroid/hardware/display/AmbientBrightnessDayStats$1;
-Landroid/hardware/display/AmbientBrightnessDayStats;
-Landroid/hardware/display/AmbientDisplayConfiguration;
-Landroid/hardware/display/BrightnessChangeEvent$1;
-Landroid/hardware/display/BrightnessChangeEvent$Builder;
-Landroid/hardware/display/BrightnessChangeEvent;
-Landroid/hardware/display/BrightnessConfiguration$1;
-Landroid/hardware/display/BrightnessConfiguration$Builder;
-Landroid/hardware/display/BrightnessConfiguration;
-Landroid/hardware/display/BrightnessCorrection$1;
-Landroid/hardware/display/BrightnessCorrection$BrightnessCorrectionImplementation;
-Landroid/hardware/display/BrightnessCorrection$ScaleAndTranslateLog;
-Landroid/hardware/display/BrightnessCorrection;
-Landroid/hardware/display/BrightnessInfo$1;
-Landroid/hardware/display/BrightnessInfo;
-Landroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;
-Landroid/hardware/display/ColorDisplayManager;
-Landroid/hardware/display/Curve$1;
-Landroid/hardware/display/Curve;
-Landroid/hardware/display/DeviceProductInfo$1;
-Landroid/hardware/display/DeviceProductInfo$ManufactureDate$1;
-Landroid/hardware/display/DeviceProductInfo$ManufactureDate;
-Landroid/hardware/display/DeviceProductInfo-IA;
-Landroid/hardware/display/DeviceProductInfo;
-Landroid/hardware/display/DisplayManager$$ExternalSyntheticLambda0;
-Landroid/hardware/display/DisplayManager$$ExternalSyntheticLambda1;
-Landroid/hardware/display/DisplayManager$$ExternalSyntheticLambda2;
-Landroid/hardware/display/DisplayManager$DisplayListener;
-Landroid/hardware/display/DisplayManager$WeakDisplayCache-IA;
-Landroid/hardware/display/DisplayManager$WeakDisplayCache;
-Landroid/hardware/display/DisplayManager;
-Landroid/hardware/display/DisplayManagerGlobal$1;
-Landroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate$$ExternalSyntheticLambda0;
-Landroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;
-Landroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback-IA;
-Landroid/hardware/display/DisplayManagerGlobal;
-Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;
-Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;
-Landroid/hardware/display/DisplayManagerInternal;
-Landroid/hardware/display/DisplayViewport;
-Landroid/hardware/display/DisplayedContentSample;
-Landroid/hardware/display/DisplayedContentSamplingAttributes;
-Landroid/hardware/display/HdrConversionMode$1;
-Landroid/hardware/display/HdrConversionMode;
-Landroid/hardware/display/IColorDisplayManager$Stub$Proxy;
-Landroid/hardware/display/IColorDisplayManager$Stub;
-Landroid/hardware/display/IColorDisplayManager;
-Landroid/hardware/display/IDisplayManager$Stub$Proxy;
-Landroid/hardware/display/IDisplayManager$Stub;
-Landroid/hardware/display/IDisplayManager;
-Landroid/hardware/display/IDisplayManagerCallback$Stub;
-Landroid/hardware/display/IDisplayManagerCallback;
-Landroid/hardware/display/IVirtualDisplayCallback$Stub$Proxy;
-Landroid/hardware/display/IVirtualDisplayCallback$Stub;
-Landroid/hardware/display/IVirtualDisplayCallback;
-Landroid/hardware/display/NightDisplayListener$1;
-Landroid/hardware/display/NightDisplayListener$Callback;
-Landroid/hardware/display/NightDisplayListener;
-Landroid/hardware/display/Time$1;
-Landroid/hardware/display/Time;
-Landroid/hardware/display/VirtualDisplayConfig$1;
-Landroid/hardware/display/VirtualDisplayConfig;
-Landroid/hardware/display/WifiDisplay$1;
-Landroid/hardware/display/WifiDisplay;
-Landroid/hardware/display/WifiDisplaySessionInfo$1;
-Landroid/hardware/display/WifiDisplaySessionInfo;
-Landroid/hardware/display/WifiDisplayStatus$1;
-Landroid/hardware/display/WifiDisplayStatus;
-Landroid/hardware/face/Face$1;
-Landroid/hardware/face/Face;
-Landroid/hardware/face/FaceManager$1;
-Landroid/hardware/face/FaceManager$AuthenticationCallback;
-Landroid/hardware/face/FaceManager$AuthenticationResult;
-Landroid/hardware/face/FaceManager$EnrollmentCallback;
-Landroid/hardware/face/FaceManager$FaceDetectionCallback;
-Landroid/hardware/face/FaceManager$GenerateChallengeCallback;
-Landroid/hardware/face/FaceManager$GetFeatureCallback;
-Landroid/hardware/face/FaceManager$LockoutResetCallback;
-Landroid/hardware/face/FaceManager$OnAuthenticationCancelListener;
-Landroid/hardware/face/FaceManager$RemovalCallback;
-Landroid/hardware/face/FaceManager$SetFeatureCallback;
-Landroid/hardware/face/FaceManager;
-Landroid/hardware/face/FaceSensorPropertiesInternal$1;
-Landroid/hardware/face/FaceSensorPropertiesInternal;
-Landroid/hardware/face/IFaceAuthenticatorsRegisteredCallback$Stub;
-Landroid/hardware/face/IFaceAuthenticatorsRegisteredCallback;
-Landroid/hardware/face/IFaceService$Stub$Proxy;
-Landroid/hardware/face/IFaceService$Stub;
-Landroid/hardware/face/IFaceService;
-Landroid/hardware/face/IFaceServiceReceiver$Stub$Proxy;
-Landroid/hardware/face/IFaceServiceReceiver$Stub;
-Landroid/hardware/face/IFaceServiceReceiver;
-Landroid/hardware/fingerprint/Fingerprint$1;
-Landroid/hardware/fingerprint/Fingerprint;
-Landroid/hardware/fingerprint/FingerprintManager$1;
-Landroid/hardware/fingerprint/FingerprintManager$2;
-Landroid/hardware/fingerprint/FingerprintManager$3;
-Landroid/hardware/fingerprint/FingerprintManager$AuthenticationCallback;
-Landroid/hardware/fingerprint/FingerprintManager$AuthenticationResult;
-Landroid/hardware/fingerprint/FingerprintManager$LockoutResetCallback;
-Landroid/hardware/fingerprint/FingerprintManager$MyHandler-IA;
-Landroid/hardware/fingerprint/FingerprintManager$MyHandler;
-Landroid/hardware/fingerprint/FingerprintManager;
-Landroid/hardware/fingerprint/FingerprintSensorPropertiesInternal$1;
-Landroid/hardware/fingerprint/FingerprintSensorPropertiesInternal;
-Landroid/hardware/fingerprint/IFingerprintAuthenticatorsRegisteredCallback$Stub;
-Landroid/hardware/fingerprint/IFingerprintAuthenticatorsRegisteredCallback;
-Landroid/hardware/fingerprint/IFingerprintClientActiveCallback$Stub$Proxy;
-Landroid/hardware/fingerprint/IFingerprintClientActiveCallback$Stub;
-Landroid/hardware/fingerprint/IFingerprintClientActiveCallback;
-Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;
-Landroid/hardware/fingerprint/IFingerprintService$Stub;
-Landroid/hardware/fingerprint/IFingerprintService;
-Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub$Proxy;
-Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub;
-Landroid/hardware/fingerprint/IFingerprintServiceReceiver;
-Landroid/hardware/fingerprint/IUdfpsOverlayController;
-Landroid/hardware/fingerprint/IUdfpsRefreshRateRequestCallback$Stub;
-Landroid/hardware/fingerprint/IUdfpsRefreshRateRequestCallback;
-Landroid/hardware/graphics/common/DisplayDecorationSupport$1;
-Landroid/hardware/graphics/common/DisplayDecorationSupport;
-Landroid/hardware/hdmi/HdmiControlManager;
-Landroid/hardware/hdmi/HdmiPlaybackClient$DisplayStatusCallback;
-Landroid/hardware/hdmi/HdmiRecordSources$OwnSource;
-Landroid/hardware/hdmi/HdmiRecordSources$RecordSource;
-Landroid/hardware/input/HostUsiVersion$1;
-Landroid/hardware/input/HostUsiVersion;
-Landroid/hardware/input/IInputDevicesChangedListener$Stub$Proxy;
-Landroid/hardware/input/IInputDevicesChangedListener$Stub;
-Landroid/hardware/input/IInputDevicesChangedListener;
-Landroid/hardware/input/IInputManager$Stub$Proxy;
-Landroid/hardware/input/IInputManager$Stub;
-Landroid/hardware/input/IInputManager;
-Landroid/hardware/input/IInputSensorEventListener$Stub;
-Landroid/hardware/input/IInputSensorEventListener;
-Landroid/hardware/input/ITabletModeChangedListener$Stub$Proxy;
-Landroid/hardware/input/ITabletModeChangedListener$Stub;
-Landroid/hardware/input/ITabletModeChangedListener;
-Landroid/hardware/input/InputDeviceIdentifier$1;
-Landroid/hardware/input/InputDeviceIdentifier;
-Landroid/hardware/input/InputManager$InputDeviceListener;
-Landroid/hardware/input/InputManager;
-Landroid/hardware/input/InputManagerGlobal$InputDeviceListenerDelegate;
-Landroid/hardware/input/InputManagerGlobal$InputDevicesChangedListener-IA;
-Landroid/hardware/input/InputManagerGlobal$InputDevicesChangedListener;
-Landroid/hardware/input/InputManagerGlobal$OnTabletModeChangedListenerDelegate;
-Landroid/hardware/input/InputManagerGlobal;
-Landroid/hardware/input/InputSettings;
-Landroid/hardware/input/KeyboardLayout$1;
-Landroid/hardware/input/KeyboardLayout;
-Landroid/hardware/input/TouchCalibration$1;
-Landroid/hardware/input/TouchCalibration;
-Landroid/hardware/iris/IrisManager;
-Landroid/hardware/lights/ILightsManager$Stub;
-Landroid/hardware/lights/ILightsManager;
-Landroid/hardware/lights/LightsManager;
-Landroid/hardware/location/ActivityRecognitionHardware;
-Landroid/hardware/location/ContextHubClient;
-Landroid/hardware/location/ContextHubClientCallback;
-Landroid/hardware/location/ContextHubInfo$1;
-Landroid/hardware/location/ContextHubInfo-IA;
-Landroid/hardware/location/ContextHubInfo;
-Landroid/hardware/location/ContextHubManager$1;
-Landroid/hardware/location/ContextHubManager$2;
-Landroid/hardware/location/ContextHubManager$3;
-Landroid/hardware/location/ContextHubManager$Callback;
-Landroid/hardware/location/ContextHubManager$ICallback;
-Landroid/hardware/location/ContextHubManager;
-Landroid/hardware/location/ContextHubMessage$1;
-Landroid/hardware/location/ContextHubMessage;
-Landroid/hardware/location/ContextHubTransaction$$ExternalSyntheticLambda0;
-Landroid/hardware/location/ContextHubTransaction$$ExternalSyntheticLambda1;
-Landroid/hardware/location/ContextHubTransaction$OnCompleteListener;
-Landroid/hardware/location/ContextHubTransaction$Response;
-Landroid/hardware/location/ContextHubTransaction;
-Landroid/hardware/location/GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper;
-Landroid/hardware/location/GeofenceHardware;
-Landroid/hardware/location/GeofenceHardwareCallback;
-Landroid/hardware/location/GeofenceHardwareImpl$1;
-Landroid/hardware/location/GeofenceHardwareImpl$2;
-Landroid/hardware/location/GeofenceHardwareImpl$3;
-Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;
-Landroid/hardware/location/GeofenceHardwareImpl$Reaper;
-Landroid/hardware/location/GeofenceHardwareImpl;
-Landroid/hardware/location/GeofenceHardwareMonitorCallback;
-Landroid/hardware/location/GeofenceHardwareMonitorEvent$1;
-Landroid/hardware/location/GeofenceHardwareMonitorEvent;
-Landroid/hardware/location/GeofenceHardwareRequest;
-Landroid/hardware/location/GeofenceHardwareRequestParcelable$1;
-Landroid/hardware/location/GeofenceHardwareRequestParcelable;
-Landroid/hardware/location/GeofenceHardwareService$1;
-Landroid/hardware/location/GeofenceHardwareService;
-Landroid/hardware/location/IActivityRecognitionHardware$Stub$Proxy;
-Landroid/hardware/location/IActivityRecognitionHardware$Stub;
-Landroid/hardware/location/IActivityRecognitionHardware;
-Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub$Proxy;
-Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub;
-Landroid/hardware/location/IActivityRecognitionHardwareClient;
-Landroid/hardware/location/IContextHubCallback$Stub$Proxy;
-Landroid/hardware/location/IContextHubCallback$Stub;
-Landroid/hardware/location/IContextHubCallback;
-Landroid/hardware/location/IContextHubClient$Stub$Proxy;
-Landroid/hardware/location/IContextHubClient$Stub;
-Landroid/hardware/location/IContextHubClient;
-Landroid/hardware/location/IContextHubClientCallback$Stub$Proxy;
-Landroid/hardware/location/IContextHubClientCallback$Stub;
-Landroid/hardware/location/IContextHubClientCallback;
-Landroid/hardware/location/IContextHubService$Stub$Proxy;
-Landroid/hardware/location/IContextHubService$Stub;
-Landroid/hardware/location/IContextHubService;
-Landroid/hardware/location/IContextHubTransactionCallback$Stub$Proxy;
-Landroid/hardware/location/IContextHubTransactionCallback$Stub;
-Landroid/hardware/location/IContextHubTransactionCallback;
-Landroid/hardware/location/IGeofenceHardware$Stub$Proxy;
-Landroid/hardware/location/IGeofenceHardware$Stub;
-Landroid/hardware/location/IGeofenceHardware;
-Landroid/hardware/location/IGeofenceHardwareCallback$Stub$Proxy;
-Landroid/hardware/location/IGeofenceHardwareCallback$Stub;
-Landroid/hardware/location/IGeofenceHardwareCallback;
-Landroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub$Proxy;
-Landroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub;
-Landroid/hardware/location/IGeofenceHardwareMonitorCallback;
-Landroid/hardware/location/MemoryRegion$1;
-Landroid/hardware/location/MemoryRegion;
-Landroid/hardware/location/NanoApp$1;
-Landroid/hardware/location/NanoApp;
-Landroid/hardware/location/NanoAppBinary$1;
-Landroid/hardware/location/NanoAppBinary;
-Landroid/hardware/location/NanoAppFilter$1;
-Landroid/hardware/location/NanoAppFilter;
-Landroid/hardware/location/NanoAppInstanceInfo$1;
-Landroid/hardware/location/NanoAppInstanceInfo;
-Landroid/hardware/location/NanoAppMessage$1;
-Landroid/hardware/location/NanoAppMessage-IA;
-Landroid/hardware/location/NanoAppMessage;
-Landroid/hardware/location/NanoAppRpcService$1;
-Landroid/hardware/location/NanoAppRpcService;
-Landroid/hardware/location/NanoAppState$1;
-Landroid/hardware/location/NanoAppState-IA;
-Landroid/hardware/location/NanoAppState;
-Landroid/hardware/power/SessionMode;
-Landroid/hardware/radio/ITuner$Stub;
-Landroid/hardware/radio/ITuner;
-Landroid/hardware/radio/ITunerCallback;
-Landroid/hardware/radio/ProgramSelector$1;
-Landroid/hardware/radio/ProgramSelector$Identifier$1;
-Landroid/hardware/radio/ProgramSelector$Identifier;
-Landroid/hardware/radio/ProgramSelector;
-Landroid/hardware/radio/RadioManager$AmBandConfig$1;
-Landroid/hardware/radio/RadioManager$AmBandConfig;
-Landroid/hardware/radio/RadioManager$AmBandDescriptor$1;
-Landroid/hardware/radio/RadioManager$AmBandDescriptor;
-Landroid/hardware/radio/RadioManager$BandConfig$1;
-Landroid/hardware/radio/RadioManager$BandConfig;
-Landroid/hardware/radio/RadioManager$BandDescriptor$1;
-Landroid/hardware/radio/RadioManager$BandDescriptor;
-Landroid/hardware/radio/RadioManager$FmBandConfig$1;
-Landroid/hardware/radio/RadioManager$FmBandConfig;
-Landroid/hardware/radio/RadioManager$FmBandDescriptor$1;
-Landroid/hardware/radio/RadioManager$FmBandDescriptor;
-Landroid/hardware/radio/RadioManager$ModuleProperties$1;
-Landroid/hardware/radio/RadioManager$ModuleProperties;
-Landroid/hardware/radio/RadioManager$ProgramInfo$1;
-Landroid/hardware/radio/RadioManager$ProgramInfo;
-Landroid/hardware/radio/RadioManager;
-Landroid/hardware/radio/RadioMetadata$1;
-Landroid/hardware/radio/RadioMetadata;
-Landroid/hardware/radio/V1_0/ActivityStatsInfo;
-Landroid/hardware/radio/V1_0/AppStatus;
-Landroid/hardware/radio/V1_0/Call;
-Landroid/hardware/radio/V1_0/CallForwardInfo;
-Landroid/hardware/radio/V1_0/CardState;
-Landroid/hardware/radio/V1_0/CardStatus;
-Landroid/hardware/radio/V1_0/Carrier;
-Landroid/hardware/radio/V1_0/CarrierRestrictions;
-Landroid/hardware/radio/V1_0/CdmaBroadcastSmsConfigInfo;
-Landroid/hardware/radio/V1_0/CdmaCallWaiting;
-Landroid/hardware/radio/V1_0/CdmaDisplayInfoRecord;
-Landroid/hardware/radio/V1_0/CdmaInformationRecord;
-Landroid/hardware/radio/V1_0/CdmaInformationRecords;
-Landroid/hardware/radio/V1_0/CdmaLineControlInfoRecord;
-Landroid/hardware/radio/V1_0/CdmaNumberInfoRecord;
-Landroid/hardware/radio/V1_0/CdmaRedirectingNumberInfoRecord;
-Landroid/hardware/radio/V1_0/CdmaSignalInfoRecord;
-Landroid/hardware/radio/V1_0/CdmaSignalStrength;
-Landroid/hardware/radio/V1_0/CdmaSmsAck;
-Landroid/hardware/radio/V1_0/CdmaSmsAddress;
-Landroid/hardware/radio/V1_0/CdmaSmsMessage;
-Landroid/hardware/radio/V1_0/CdmaSmsSubaddress;
-Landroid/hardware/radio/V1_0/CdmaSmsWriteArgs;
-Landroid/hardware/radio/V1_0/CdmaT53AudioControlInfoRecord;
-Landroid/hardware/radio/V1_0/CdmaT53ClirInfoRecord;
-Landroid/hardware/radio/V1_0/CellIdentity;
-Landroid/hardware/radio/V1_0/CellIdentityCdma;
-Landroid/hardware/radio/V1_0/CellIdentityGsm;
-Landroid/hardware/radio/V1_0/CellIdentityLte;
-Landroid/hardware/radio/V1_0/CellIdentityTdscdma;
-Landroid/hardware/radio/V1_0/CellIdentityWcdma;
-Landroid/hardware/radio/V1_0/CellInfo;
-Landroid/hardware/radio/V1_0/CellInfoCdma;
-Landroid/hardware/radio/V1_0/CellInfoGsm;
-Landroid/hardware/radio/V1_0/CellInfoLte;
-Landroid/hardware/radio/V1_0/CellInfoTdscdma;
-Landroid/hardware/radio/V1_0/CellInfoType;
-Landroid/hardware/radio/V1_0/CellInfoWcdma;
-Landroid/hardware/radio/V1_0/CfData;
-Landroid/hardware/radio/V1_0/DataCallFailCause;
-Landroid/hardware/radio/V1_0/DataProfileInfo;
-Landroid/hardware/radio/V1_0/DataRegStateResult;
-Landroid/hardware/radio/V1_0/Dial;
-Landroid/hardware/radio/V1_0/EvdoSignalStrength;
-Landroid/hardware/radio/V1_0/GsmBroadcastSmsConfigInfo;
-Landroid/hardware/radio/V1_0/GsmSignalStrength;
-Landroid/hardware/radio/V1_0/GsmSmsMessage;
-Landroid/hardware/radio/V1_0/HardwareConfig;
-Landroid/hardware/radio/V1_0/HardwareConfigModem;
-Landroid/hardware/radio/V1_0/HardwareConfigSim;
-Landroid/hardware/radio/V1_0/IRadio;
-Landroid/hardware/radio/V1_0/IRadioIndication;
-Landroid/hardware/radio/V1_0/IRadioResponse;
-Landroid/hardware/radio/V1_0/IccIo;
-Landroid/hardware/radio/V1_0/IccIoResult;
-Landroid/hardware/radio/V1_0/ImsSmsMessage;
-Landroid/hardware/radio/V1_0/LastCallFailCauseInfo;
-Landroid/hardware/radio/V1_0/LceDataInfo;
-Landroid/hardware/radio/V1_0/LceStatusInfo;
-Landroid/hardware/radio/V1_0/LteSignalStrength;
-Landroid/hardware/radio/V1_0/NeighboringCell;
-Landroid/hardware/radio/V1_0/NvWriteItem;
-Landroid/hardware/radio/V1_0/OperatorInfo;
-Landroid/hardware/radio/V1_0/PcoDataInfo;
-Landroid/hardware/radio/V1_0/RadioCapability;
-Landroid/hardware/radio/V1_0/RadioResponseInfo;
-Landroid/hardware/radio/V1_0/RegState;
-Landroid/hardware/radio/V1_0/SelectUiccSub;
-Landroid/hardware/radio/V1_0/SendSmsResult;
-Landroid/hardware/radio/V1_0/SetupDataCallResult;
-Landroid/hardware/radio/V1_0/SignalStrength;
-Landroid/hardware/radio/V1_0/SimApdu;
-Landroid/hardware/radio/V1_0/SimRefreshResult;
-Landroid/hardware/radio/V1_0/SmsWriteArgs;
-Landroid/hardware/radio/V1_0/SsInfoData;
-Landroid/hardware/radio/V1_0/StkCcUnsolSsResult;
-Landroid/hardware/radio/V1_0/SuppSvcNotification;
-Landroid/hardware/radio/V1_0/TdScdmaSignalStrength;
-Landroid/hardware/radio/V1_0/UusInfo;
-Landroid/hardware/radio/V1_0/VoiceRegStateResult;
-Landroid/hardware/radio/V1_0/WcdmaSignalStrength;
-Landroid/hardware/radio/V1_1/IRadio$Proxy;
-Landroid/hardware/radio/V1_1/IRadio;
-Landroid/hardware/radio/V1_1/IRadioIndication;
-Landroid/hardware/radio/V1_1/IRadioResponse;
-Landroid/hardware/radio/V1_1/ImsiEncryptionInfo;
-Landroid/hardware/radio/V1_1/KeepaliveRequest;
-Landroid/hardware/radio/V1_1/KeepaliveStatus;
-Landroid/hardware/radio/V1_1/NetworkScanRequest;
-Landroid/hardware/radio/V1_1/NetworkScanResult;
-Landroid/hardware/radio/V1_1/RadioAccessSpecifier;
-Landroid/hardware/radio/V1_2/Call;
-Landroid/hardware/radio/V1_2/CardStatus;
-Landroid/hardware/radio/V1_2/CellIdentity;
-Landroid/hardware/radio/V1_2/CellIdentityCdma;
-Landroid/hardware/radio/V1_2/CellIdentityGsm;
-Landroid/hardware/radio/V1_2/CellIdentityLte;
-Landroid/hardware/radio/V1_2/CellIdentityOperatorNames;
-Landroid/hardware/radio/V1_2/CellIdentityTdscdma;
-Landroid/hardware/radio/V1_2/CellIdentityWcdma;
-Landroid/hardware/radio/V1_2/CellInfo;
-Landroid/hardware/radio/V1_2/CellInfoCdma;
-Landroid/hardware/radio/V1_2/CellInfoGsm;
-Landroid/hardware/radio/V1_2/CellInfoLte;
-Landroid/hardware/radio/V1_2/CellInfoTdscdma;
-Landroid/hardware/radio/V1_2/CellInfoWcdma;
-Landroid/hardware/radio/V1_2/DataRegStateResult;
-Landroid/hardware/radio/V1_2/IRadio;
-Landroid/hardware/radio/V1_2/IRadioIndication;
-Landroid/hardware/radio/V1_2/IRadioResponse;
-Landroid/hardware/radio/V1_2/LinkCapacityEstimate;
-Landroid/hardware/radio/V1_2/NetworkScanRequest;
-Landroid/hardware/radio/V1_2/NetworkScanResult;
-Landroid/hardware/radio/V1_2/PhysicalChannelConfig;
-Landroid/hardware/radio/V1_2/SignalStrength;
-Landroid/hardware/radio/V1_2/TdscdmaSignalStrength;
-Landroid/hardware/radio/V1_2/VoiceRegStateResult;
-Landroid/hardware/radio/V1_2/WcdmaSignalStrength;
-Landroid/hardware/radio/V1_3/IRadio$Proxy;
-Landroid/hardware/radio/V1_3/IRadio;
-Landroid/hardware/radio/V1_3/IRadioIndication;
-Landroid/hardware/radio/V1_3/IRadioResponse;
-Landroid/hardware/radio/V1_4/CardStatus;
-Landroid/hardware/radio/V1_4/CarrierRestrictionsWithPriority;
-Landroid/hardware/radio/V1_4/CellConfigLte;
-Landroid/hardware/radio/V1_4/CellIdentityNr;
-Landroid/hardware/radio/V1_4/CellInfo$Info;
-Landroid/hardware/radio/V1_4/CellInfo;
-Landroid/hardware/radio/V1_4/CellInfoLte;
-Landroid/hardware/radio/V1_4/CellInfoNr;
-Landroid/hardware/radio/V1_4/DataProfileInfo;
-Landroid/hardware/radio/V1_4/DataRegStateResult$VopsInfo$hidl_discriminator;
-Landroid/hardware/radio/V1_4/DataRegStateResult$VopsInfo;
-Landroid/hardware/radio/V1_4/DataRegStateResult;
-Landroid/hardware/radio/V1_4/EmergencyNumber;
-Landroid/hardware/radio/V1_4/IRadio$Proxy;
-Landroid/hardware/radio/V1_4/IRadio;
-Landroid/hardware/radio/V1_4/IRadioIndication$Stub;
-Landroid/hardware/radio/V1_4/IRadioIndication;
-Landroid/hardware/radio/V1_4/IRadioResponse$Stub;
-Landroid/hardware/radio/V1_4/IRadioResponse;
-Landroid/hardware/radio/V1_4/LteVopsInfo;
-Landroid/hardware/radio/V1_4/NetworkScanResult;
-Landroid/hardware/radio/V1_4/NrIndicators;
-Landroid/hardware/radio/V1_4/NrSignalStrength;
-Landroid/hardware/radio/V1_4/PhysicalChannelConfig;
-Landroid/hardware/radio/V1_4/RadioFrequencyInfo;
-Landroid/hardware/radio/V1_4/SetupDataCallResult;
-Landroid/hardware/radio/V1_4/SignalStrength;
-Landroid/hardware/radio/V1_5/AppStatus;
-Landroid/hardware/radio/V1_5/CardStatus;
-Landroid/hardware/radio/V1_5/CellIdentity;
-Landroid/hardware/radio/V1_5/CellIdentityGsm;
-Landroid/hardware/radio/V1_5/CellIdentityLte;
-Landroid/hardware/radio/V1_5/CellIdentityNr;
-Landroid/hardware/radio/V1_5/CellIdentityTdscdma;
-Landroid/hardware/radio/V1_5/CellIdentityWcdma;
-Landroid/hardware/radio/V1_5/CellInfo;
-Landroid/hardware/radio/V1_5/ClosedSubscriberGroupInfo;
-Landroid/hardware/radio/V1_5/DataProfileInfo;
-Landroid/hardware/radio/V1_5/IRadio;
-Landroid/hardware/radio/V1_5/IRadioIndication$Stub;
-Landroid/hardware/radio/V1_5/IRadioIndication;
-Landroid/hardware/radio/V1_5/IRadioResponse$Stub;
-Landroid/hardware/radio/V1_5/IRadioResponse;
-Landroid/hardware/radio/V1_5/LinkAddress;
-Landroid/hardware/radio/V1_5/NetworkScanRequest;
-Landroid/hardware/radio/V1_5/NetworkScanResult;
-Landroid/hardware/radio/V1_5/OptionalCsgInfo;
-Landroid/hardware/radio/V1_5/RadioAccessSpecifier$Bands;
-Landroid/hardware/radio/V1_5/RadioAccessSpecifier;
-Landroid/hardware/radio/V1_5/RegStateResult$AccessTechnologySpecificInfo$Cdma2000RegistrationInfo;
-Landroid/hardware/radio/V1_5/RegStateResult$AccessTechnologySpecificInfo$EutranRegistrationInfo;
-Landroid/hardware/radio/V1_5/RegStateResult$AccessTechnologySpecificInfo;
-Landroid/hardware/radio/V1_5/RegStateResult;
-Landroid/hardware/radio/V1_5/SetupDataCallResult;
-Landroid/hardware/radio/V1_5/SignalThresholdInfo;
-Landroid/hardware/radio/V1_6/Call;
-Landroid/hardware/radio/V1_6/CellInfo;
-Landroid/hardware/radio/V1_6/IRadio;
-Landroid/hardware/radio/V1_6/IRadioIndication$Stub;
-Landroid/hardware/radio/V1_6/IRadioIndication;
-Landroid/hardware/radio/V1_6/IRadioResponse$Stub;
-Landroid/hardware/radio/V1_6/IRadioResponse;
-Landroid/hardware/radio/V1_6/ImsiEncryptionInfo;
-Landroid/hardware/radio/V1_6/LinkCapacityEstimate;
-Landroid/hardware/radio/V1_6/NetworkScanResult;
-Landroid/hardware/radio/V1_6/NrVopsInfo;
-Landroid/hardware/radio/V1_6/OptionalDnn;
-Landroid/hardware/radio/V1_6/OptionalOsAppId;
-Landroid/hardware/radio/V1_6/OptionalSliceInfo;
-Landroid/hardware/radio/V1_6/OptionalTrafficDescriptor;
-Landroid/hardware/radio/V1_6/OsAppId;
-Landroid/hardware/radio/V1_6/PhonebookCapacity;
-Landroid/hardware/radio/V1_6/PhonebookRecordInfo;
-Landroid/hardware/radio/V1_6/PhysicalChannelConfig$Band;
-Landroid/hardware/radio/V1_6/PhysicalChannelConfig;
-Landroid/hardware/radio/V1_6/Qos;
-Landroid/hardware/radio/V1_6/QosSession;
-Landroid/hardware/radio/V1_6/RadioResponseInfo;
-Landroid/hardware/radio/V1_6/RegStateResult$AccessTechnologySpecificInfo;
-Landroid/hardware/radio/V1_6/RegStateResult;
-Landroid/hardware/radio/V1_6/SetupDataCallResult;
-Landroid/hardware/radio/V1_6/SignalStrength;
-Landroid/hardware/radio/V1_6/SliceInfo;
-Landroid/hardware/radio/V1_6/SlicingConfig;
-Landroid/hardware/radio/V1_6/TrafficDescriptor;
-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_0/SlotState;
-Landroid/hardware/radio/config/V1_1/IRadioConfig$Proxy;
-Landroid/hardware/radio/config/V1_1/IRadioConfig;
-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;
-Landroid/hardware/radio/config/V1_2/SimSlotStatus;
-Landroid/hardware/radio/config/V1_3/IRadioConfig$Proxy;
-Landroid/hardware/radio/config/V1_3/IRadioConfig;
-Landroid/hardware/radio/config/V1_3/IRadioConfigResponse$Stub;
-Landroid/hardware/radio/config/V1_3/IRadioConfigResponse;
-Landroid/hardware/security/keymint/KeyParameter$1;
-Landroid/hardware/security/keymint/KeyParameter;
-Landroid/hardware/security/keymint/KeyParameterValue$1;
-Landroid/hardware/security/keymint/KeyParameterValue-IA;
-Landroid/hardware/security/keymint/KeyParameterValue;
-Landroid/hardware/sidekick/SidekickInternal;
-Landroid/hardware/soundtrigger/ConversionUtil;
-Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub$Proxy;
-Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;
-Landroid/hardware/soundtrigger/IRecognitionStatusCallback;
-Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;
-Landroid/hardware/soundtrigger/KeyphraseMetadata$1;
-Landroid/hardware/soundtrigger/KeyphraseMetadata;
-Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel$1;
-Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;
-Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent$1;
-Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;
-Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel$1;
-Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;
-Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase$1;
-Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase;
-Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent$1;
-Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;
-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;
-Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;
-Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent$1;
-Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;
-Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;
-Landroid/hardware/soundtrigger/SoundTrigger$StatusListener;
-Landroid/hardware/soundtrigger/SoundTrigger;
-Landroid/hardware/soundtrigger/SoundTriggerModule$EventHandlerDelegate$1;
-Landroid/hardware/soundtrigger/SoundTriggerModule$EventHandlerDelegate;
-Landroid/hardware/soundtrigger/SoundTriggerModule;
-Landroid/hardware/thermal/V1_0/CoolingType;
-Landroid/hardware/thermal/V1_0/IThermal;
-Landroid/hardware/thermal/V1_0/ThermalStatus;
-Landroid/hardware/thermal/V2_0/CoolingDevice;
-Landroid/hardware/thermal/V2_0/IThermal$Proxy;
-Landroid/hardware/thermal/V2_0/IThermal$getCurrentCoolingDevicesCallback;
-Landroid/hardware/thermal/V2_0/IThermal$getCurrentTemperaturesCallback;
-Landroid/hardware/thermal/V2_0/IThermal$getTemperatureThresholdsCallback;
-Landroid/hardware/thermal/V2_0/IThermal;
-Landroid/hardware/thermal/V2_0/IThermalChangedCallback$Stub;
-Landroid/hardware/thermal/V2_0/IThermalChangedCallback;
-Landroid/hardware/thermal/V2_0/Temperature;
-Landroid/hardware/thermal/V2_0/TemperatureThreshold;
-Landroid/hardware/usb/AccessoryFilter;
-Landroid/hardware/usb/DeviceFilter;
-Landroid/hardware/usb/IUsbManager$Stub$Proxy;
-Landroid/hardware/usb/IUsbManager$Stub;
-Landroid/hardware/usb/IUsbManager;
-Landroid/hardware/usb/IUsbSerialReader$Stub;
-Landroid/hardware/usb/IUsbSerialReader;
-Landroid/hardware/usb/ParcelableUsbPort$1;
-Landroid/hardware/usb/ParcelableUsbPort;
-Landroid/hardware/usb/UsbAccessory$2;
-Landroid/hardware/usb/UsbAccessory;
-Landroid/hardware/usb/UsbConfiguration$1;
-Landroid/hardware/usb/UsbConfiguration;
-Landroid/hardware/usb/UsbDevice$1;
-Landroid/hardware/usb/UsbDevice$Builder;
-Landroid/hardware/usb/UsbDevice;
-Landroid/hardware/usb/UsbDeviceConnection;
-Landroid/hardware/usb/UsbInterface$1;
-Landroid/hardware/usb/UsbInterface;
-Landroid/hardware/usb/UsbManager;
-Landroid/hardware/usb/UsbPort;
-Landroid/hardware/usb/UsbPortStatus$1;
-Landroid/hardware/usb/UsbPortStatus;
-Landroid/hardware/usb/UsbRequest;
-Landroid/hardware/usb/gadget/V1_0/IUsbGadget$Proxy;
-Landroid/hardware/usb/gadget/V1_0/IUsbGadget;
-Landroid/hardware/usb/gadget/V1_0/IUsbGadgetCallback$Stub;
-Landroid/hardware/usb/gadget/V1_0/IUsbGadgetCallback;
-Landroid/icu/impl/Assert;
-Landroid/icu/impl/BMPSet;
-Landroid/icu/impl/CSCharacterIterator;
-Landroid/icu/impl/CacheBase;
-Landroid/icu/impl/CacheValue$NullValue;
-Landroid/icu/impl/CacheValue$SoftValue;
-Landroid/icu/impl/CacheValue$Strength;
-Landroid/icu/impl/CacheValue$StrongValue;
-Landroid/icu/impl/CacheValue;
-Landroid/icu/impl/CalType;
-Landroid/icu/impl/CalendarAstronomer$1;
-Landroid/icu/impl/CalendarAstronomer$2;
-Landroid/icu/impl/CalendarAstronomer$3;
-Landroid/icu/impl/CalendarAstronomer$4;
-Landroid/icu/impl/CalendarAstronomer$AngleFunc;
-Landroid/icu/impl/CalendarAstronomer$CoordFunc;
-Landroid/icu/impl/CalendarAstronomer$Ecliptic;
-Landroid/icu/impl/CalendarAstronomer$Equatorial;
-Landroid/icu/impl/CalendarAstronomer$Horizon;
-Landroid/icu/impl/CalendarAstronomer$MoonAge;
-Landroid/icu/impl/CalendarAstronomer$SolarLongitude;
-Landroid/icu/impl/CalendarAstronomer;
-Landroid/icu/impl/CalendarCache;
-Landroid/icu/impl/CalendarUtil$CalendarPreferences;
-Landroid/icu/impl/CalendarUtil;
-Landroid/icu/impl/CaseMapImpl$GreekUpper;
-Landroid/icu/impl/CaseMapImpl$StringContextIterator;
-Landroid/icu/impl/CaseMapImpl$WholeStringBreakIterator;
-Landroid/icu/impl/CaseMapImpl;
-Landroid/icu/impl/CharTrie;
-Landroid/icu/impl/CharacterIteration;
-Landroid/icu/impl/CharacterIteratorWrapper;
-Landroid/icu/impl/CharacterPropertiesImpl;
-Landroid/icu/impl/ClassLoaderUtil$1;
-Landroid/icu/impl/ClassLoaderUtil$BootstrapClassLoader;
-Landroid/icu/impl/ClassLoaderUtil;
-Landroid/icu/impl/CollectionSet;
-Landroid/icu/impl/CurrencyData$1;
-Landroid/icu/impl/CurrencyData$CurrencyDisplayInfo;
-Landroid/icu/impl/CurrencyData$CurrencyDisplayInfoProvider;
-Landroid/icu/impl/CurrencyData$CurrencyFormatInfo;
-Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingPattern;
-Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingType;
-Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;
-Landroid/icu/impl/CurrencyData$DefaultInfo;
-Landroid/icu/impl/CurrencyData;
-Landroid/icu/impl/DateNumberFormat;
-Landroid/icu/impl/DayPeriodRules$CutoffType;
-Landroid/icu/impl/DayPeriodRules$DayPeriod;
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesCountSink;
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;
-Landroid/icu/impl/DayPeriodRules-IA;
-Landroid/icu/impl/DayPeriodRules;
-Landroid/icu/impl/DontCareFieldPosition;
-Landroid/icu/impl/EmojiProps;
-Landroid/icu/impl/EraRules;
-Landroid/icu/impl/FormattedStringBuilder$FieldWrapper;
-Landroid/icu/impl/FormattedStringBuilder;
-Landroid/icu/impl/FormattedValueFieldPositionIteratorImpl$FieldWithValue;
-Landroid/icu/impl/FormattedValueFieldPositionIteratorImpl;
-Landroid/icu/impl/FormattedValueStringBuilderImpl$NullField;
-Landroid/icu/impl/FormattedValueStringBuilderImpl$SpanFieldPlaceholder;
-Landroid/icu/impl/FormattedValueStringBuilderImpl;
-Landroid/icu/impl/Grego;
-Landroid/icu/impl/ICUBinary$Authenticate;
-Landroid/icu/impl/ICUBinary$DatPackageReader$IsAcceptable;
-Landroid/icu/impl/ICUBinary$DatPackageReader;
-Landroid/icu/impl/ICUBinary$DataFile;
-Landroid/icu/impl/ICUBinary$PackageDataFile;
-Landroid/icu/impl/ICUBinary$SingleDataFile;
-Landroid/icu/impl/ICUBinary;
-Landroid/icu/impl/ICUCache;
-Landroid/icu/impl/ICUConfig$1;
-Landroid/icu/impl/ICUConfig;
-Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$CurrencySink$EntrypointTable;
-Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$CurrencySink;
-Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$FormattingData;
-Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$ParsingData;
-Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$VariantSymbol;
-Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;
-Landroid/icu/impl/ICUCurrencyDisplayInfoProvider;
-Landroid/icu/impl/ICUCurrencyMetaInfo$Collector;
-Landroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector-IA;
-Landroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;
-Landroid/icu/impl/ICUCurrencyMetaInfo$InfoCollector;
-Landroid/icu/impl/ICUCurrencyMetaInfo$RegionCollector;
-Landroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;
-Landroid/icu/impl/ICUCurrencyMetaInfo;
-Landroid/icu/impl/ICUData$1;
-Landroid/icu/impl/ICUData$2;
-Landroid/icu/impl/ICUData$3;
-Landroid/icu/impl/ICUData;
-Landroid/icu/impl/ICUDataVersion;
-Landroid/icu/impl/ICUDebug;
-Landroid/icu/impl/ICULangDataTables;
-Landroid/icu/impl/ICULocaleService$ICUResourceBundleFactory;
-Landroid/icu/impl/ICULocaleService$LocaleKey;
-Landroid/icu/impl/ICULocaleService$LocaleKeyFactory;
-Landroid/icu/impl/ICULocaleService$SimpleLocaleKeyFactory;
-Landroid/icu/impl/ICULocaleService;
-Landroid/icu/impl/ICUNotifier$NotifyThread;
-Landroid/icu/impl/ICUNotifier;
-Landroid/icu/impl/ICURWLock$Stats;
-Landroid/icu/impl/ICURWLock;
-Landroid/icu/impl/ICURegionDataTables;
-Landroid/icu/impl/ICUResourceBundle$1;
-Landroid/icu/impl/ICUResourceBundle$1AllChildrenSink;
-Landroid/icu/impl/ICUResourceBundle$2$1;
-Landroid/icu/impl/ICUResourceBundle$2;
-Landroid/icu/impl/ICUResourceBundle$3;
-Landroid/icu/impl/ICUResourceBundle$4;
-Landroid/icu/impl/ICUResourceBundle$5;
-Landroid/icu/impl/ICUResourceBundle$AvailEntry;
-Landroid/icu/impl/ICUResourceBundle$AvailableLocalesSink;
-Landroid/icu/impl/ICUResourceBundle$Loader-IA;
-Landroid/icu/impl/ICUResourceBundle$Loader;
-Landroid/icu/impl/ICUResourceBundle$OpenType;
-Landroid/icu/impl/ICUResourceBundle$WholeBundle;
-Landroid/icu/impl/ICUResourceBundle;
-Landroid/icu/impl/ICUResourceBundleImpl$ResourceArray;
-Landroid/icu/impl/ICUResourceBundleImpl$ResourceBinary;
-Landroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;
-Landroid/icu/impl/ICUResourceBundleImpl$ResourceInt;
-Landroid/icu/impl/ICUResourceBundleImpl$ResourceIntVector;
-Landroid/icu/impl/ICUResourceBundleImpl$ResourceString;
-Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;
-Landroid/icu/impl/ICUResourceBundleImpl;
-Landroid/icu/impl/ICUResourceBundleReader$Array16;
-Landroid/icu/impl/ICUResourceBundleReader$Array32;
-Landroid/icu/impl/ICUResourceBundleReader$Array;
-Landroid/icu/impl/ICUResourceBundleReader$Container;
-Landroid/icu/impl/ICUResourceBundleReader$IsAcceptable;
-Landroid/icu/impl/ICUResourceBundleReader$ReaderCache;
-Landroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;
-Landroid/icu/impl/ICUResourceBundleReader$ReaderValue;
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;
-Landroid/icu/impl/ICUResourceBundleReader$Table1632;
-Landroid/icu/impl/ICUResourceBundleReader$Table16;
-Landroid/icu/impl/ICUResourceBundleReader$Table32;
-Landroid/icu/impl/ICUResourceBundleReader$Table;
-Landroid/icu/impl/ICUResourceBundleReader-IA;
-Landroid/icu/impl/ICUResourceBundleReader;
-Landroid/icu/impl/ICUResourceTableAccess;
-Landroid/icu/impl/ICUService$CacheEntry;
-Landroid/icu/impl/ICUService$Factory;
-Landroid/icu/impl/ICUService$Key;
-Landroid/icu/impl/ICUService$LocaleRef;
-Landroid/icu/impl/ICUService$ServiceListener;
-Landroid/icu/impl/ICUService$SimpleFactory;
-Landroid/icu/impl/ICUService;
-Landroid/icu/impl/IDNA2003;
-Landroid/icu/impl/IllegalIcuArgumentException;
-Landroid/icu/impl/IntTrie;
-Landroid/icu/impl/IntTrieBuilder;
-Landroid/icu/impl/InvalidFormatException;
-Landroid/icu/impl/IterableComparator;
-Landroid/icu/impl/JavaTimeZone;
-Landroid/icu/impl/LocaleDisplayNamesImpl$1;
-Landroid/icu/impl/LocaleDisplayNamesImpl$Cache;
-Landroid/icu/impl/LocaleDisplayNamesImpl$CapitalizationContextSink;
-Landroid/icu/impl/LocaleDisplayNamesImpl$CapitalizationContextUsage;
-Landroid/icu/impl/LocaleDisplayNamesImpl$DataTable;
-Landroid/icu/impl/LocaleDisplayNamesImpl$DataTableType;
-Landroid/icu/impl/LocaleDisplayNamesImpl$DataTables$1;
-Landroid/icu/impl/LocaleDisplayNamesImpl$DataTables;
-Landroid/icu/impl/LocaleDisplayNamesImpl$ICUDataTable;
-Landroid/icu/impl/LocaleDisplayNamesImpl$ICUDataTables;
-Landroid/icu/impl/LocaleDisplayNamesImpl$LangDataTables;
-Landroid/icu/impl/LocaleDisplayNamesImpl$RegionDataTables;
-Landroid/icu/impl/LocaleDisplayNamesImpl;
-Landroid/icu/impl/LocaleFallbackData;
-Landroid/icu/impl/LocaleIDParser$1;
-Landroid/icu/impl/LocaleIDParser;
-Landroid/icu/impl/LocaleIDs;
-Landroid/icu/impl/LocaleUtility;
-Landroid/icu/impl/Norm2AllModes$1;
-Landroid/icu/impl/Norm2AllModes$ComposeNormalizer2;
-Landroid/icu/impl/Norm2AllModes$DecomposeNormalizer2;
-Landroid/icu/impl/Norm2AllModes$FCDNormalizer2;
-Landroid/icu/impl/Norm2AllModes$NFCSingleton;
-Landroid/icu/impl/Norm2AllModes$NFKCSingleton;
-Landroid/icu/impl/Norm2AllModes$NFKC_CFSingleton;
-Landroid/icu/impl/Norm2AllModes$NoopNormalizer2;
-Landroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;
-Landroid/icu/impl/Norm2AllModes$Normalizer2WithImpl;
-Landroid/icu/impl/Norm2AllModes;
-Landroid/icu/impl/Normalizer2Impl$1;
-Landroid/icu/impl/Normalizer2Impl$Hangul;
-Landroid/icu/impl/Normalizer2Impl$IsAcceptable;
-Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;
-Landroid/icu/impl/Normalizer2Impl$UTF16Plus;
-Landroid/icu/impl/Normalizer2Impl;
-Landroid/icu/impl/OlsonTimeZone;
-Landroid/icu/impl/PVecToTrieCompactHandler;
-Landroid/icu/impl/Pair;
-Landroid/icu/impl/PatternProps;
-Landroid/icu/impl/PatternTokenizer;
-Landroid/icu/impl/PluralRulesLoader;
-Landroid/icu/impl/PropsVectors$1;
-Landroid/icu/impl/PropsVectors$CompactHandler;
-Landroid/icu/impl/PropsVectors$DefaultGetFoldedValue;
-Landroid/icu/impl/PropsVectors$DefaultGetFoldingOffset;
-Landroid/icu/impl/PropsVectors;
-Landroid/icu/impl/Punycode;
-Landroid/icu/impl/RBBIDataWrapper$IsAcceptable;
-Landroid/icu/impl/RBBIDataWrapper$RBBIDataHeader;
-Landroid/icu/impl/RBBIDataWrapper$RBBIStateTable;
-Landroid/icu/impl/RBBIDataWrapper;
-Landroid/icu/impl/Relation$SimpleEntry;
-Landroid/icu/impl/Relation;
-Landroid/icu/impl/RelativeDateFormat$RelDateFmtDataSink;
-Landroid/icu/impl/RelativeDateFormat$URelativeString;
-Landroid/icu/impl/RelativeDateFormat;
-Landroid/icu/impl/ReplaceableUCharacterIterator;
-Landroid/icu/impl/ResourceBundleWrapper$1;
-Landroid/icu/impl/ResourceBundleWrapper$2$1;
-Landroid/icu/impl/ResourceBundleWrapper$2;
-Landroid/icu/impl/ResourceBundleWrapper$Loader;
-Landroid/icu/impl/ResourceBundleWrapper;
-Landroid/icu/impl/Row$R2;
-Landroid/icu/impl/Row$R3;
-Landroid/icu/impl/Row$R4;
-Landroid/icu/impl/Row$R5;
-Landroid/icu/impl/Row;
-Landroid/icu/impl/RuleCharacterIterator$Position;
-Landroid/icu/impl/RuleCharacterIterator;
-Landroid/icu/impl/SimpleCache;
-Landroid/icu/impl/SimpleFilteredSentenceBreakIterator$Builder;
-Landroid/icu/impl/SimpleFilteredSentenceBreakIterator;
-Landroid/icu/impl/SimpleFormatterImpl$IterInternal;
-Landroid/icu/impl/SimpleFormatterImpl;
-Landroid/icu/impl/SoftCache;
-Landroid/icu/impl/SortedSetRelation;
-Landroid/icu/impl/StandardPlural;
-Landroid/icu/impl/StaticUnicodeSets$Key;
-Landroid/icu/impl/StaticUnicodeSets$ParseDataSink;
-Landroid/icu/impl/StaticUnicodeSets;
-Landroid/icu/impl/StringPrepDataReader;
-Landroid/icu/impl/StringRange$1;
-Landroid/icu/impl/StringRange$Adder;
-Landroid/icu/impl/StringRange$Range;
-Landroid/icu/impl/StringRange$Ranges;
-Landroid/icu/impl/StringRange;
-Landroid/icu/impl/StringSegment;
-Landroid/icu/impl/TZDBTimeZoneNames$1;
-Landroid/icu/impl/TZDBTimeZoneNames$TZDBNameInfo;
-Landroid/icu/impl/TZDBTimeZoneNames$TZDBNameSearchHandler;
-Landroid/icu/impl/TZDBTimeZoneNames$TZDBNames;
-Landroid/icu/impl/TZDBTimeZoneNames;
-Landroid/icu/impl/TextTrieMap$CharIterator;
-Landroid/icu/impl/TextTrieMap$LongestMatchHandler;
-Landroid/icu/impl/TextTrieMap$Node-IA;
-Landroid/icu/impl/TextTrieMap$Node;
-Landroid/icu/impl/TextTrieMap$Output;
-Landroid/icu/impl/TextTrieMap$ResultHandler;
-Landroid/icu/impl/TextTrieMap;
-Landroid/icu/impl/TimeZoneAdapter;
-Landroid/icu/impl/TimeZoneGenericNames$1;
-Landroid/icu/impl/TimeZoneGenericNames$Cache;
-Landroid/icu/impl/TimeZoneGenericNames$GenericMatchInfo;
-Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;
-Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;
-Landroid/icu/impl/TimeZoneGenericNames$NameInfo;
-Landroid/icu/impl/TimeZoneGenericNames$Pattern;
-Landroid/icu/impl/TimeZoneGenericNames;
-Landroid/icu/impl/TimeZoneNamesFactoryImpl;
-Landroid/icu/impl/TimeZoneNamesImpl$1;
-Landroid/icu/impl/TimeZoneNamesImpl$MZ2TZsCache;
-Landroid/icu/impl/TimeZoneNamesImpl$MZMapEntry;
-Landroid/icu/impl/TimeZoneNamesImpl$NameInfo;
-Landroid/icu/impl/TimeZoneNamesImpl$NameSearchHandler;
-Landroid/icu/impl/TimeZoneNamesImpl$TZ2MZsCache;
-Landroid/icu/impl/TimeZoneNamesImpl$ZNames$NameTypeIndex;
-Landroid/icu/impl/TimeZoneNamesImpl$ZNames;
-Landroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader-IA;
-Landroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;
-Landroid/icu/impl/TimeZoneNamesImpl$ZoneStringsLoader;
-Landroid/icu/impl/TimeZoneNamesImpl;
-Landroid/icu/impl/Trie$DataManipulate;
-Landroid/icu/impl/Trie$DefaultGetFoldingOffset;
-Landroid/icu/impl/Trie2$1;
-Landroid/icu/impl/Trie2$CharSequenceIterator;
-Landroid/icu/impl/Trie2$CharSequenceValues;
-Landroid/icu/impl/Trie2$Range;
-Landroid/icu/impl/Trie2$Trie2Iterator;
-Landroid/icu/impl/Trie2$UTrie2Header;
-Landroid/icu/impl/Trie2$ValueMapper;
-Landroid/icu/impl/Trie2$ValueWidth;
-Landroid/icu/impl/Trie2;
-Landroid/icu/impl/Trie2Writable$1;
-Landroid/icu/impl/Trie2Writable;
-Landroid/icu/impl/Trie2_16;
-Landroid/icu/impl/Trie2_32;
-Landroid/icu/impl/Trie;
-Landroid/icu/impl/TrieBuilder$DataManipulate;
-Landroid/icu/impl/TrieBuilder;
-Landroid/icu/impl/TrieIterator;
-Landroid/icu/impl/UBiDiProps$IsAcceptable;
-Landroid/icu/impl/UBiDiProps;
-Landroid/icu/impl/UCaseProps$ContextIterator;
-Landroid/icu/impl/UCaseProps$IsAcceptable;
-Landroid/icu/impl/UCaseProps$LatinCase;
-Landroid/icu/impl/UCaseProps;
-Landroid/icu/impl/UCharArrayIterator;
-Landroid/icu/impl/UCharacterIteratorWrapper;
-Landroid/icu/impl/UCharacterName$AlgorithmName;
-Landroid/icu/impl/UCharacterName;
-Landroid/icu/impl/UCharacterNameChoice;
-Landroid/icu/impl/UCharacterNameReader;
-Landroid/icu/impl/UCharacterProperty$10;
-Landroid/icu/impl/UCharacterProperty$11;
-Landroid/icu/impl/UCharacterProperty$12;
-Landroid/icu/impl/UCharacterProperty$13;
-Landroid/icu/impl/UCharacterProperty$14;
-Landroid/icu/impl/UCharacterProperty$15;
-Landroid/icu/impl/UCharacterProperty$16;
-Landroid/icu/impl/UCharacterProperty$17;
-Landroid/icu/impl/UCharacterProperty$18;
-Landroid/icu/impl/UCharacterProperty$19;
-Landroid/icu/impl/UCharacterProperty$1;
-Landroid/icu/impl/UCharacterProperty$20;
-Landroid/icu/impl/UCharacterProperty$21;
-Landroid/icu/impl/UCharacterProperty$22;
-Landroid/icu/impl/UCharacterProperty$23;
-Landroid/icu/impl/UCharacterProperty$24;
-Landroid/icu/impl/UCharacterProperty$25;
-Landroid/icu/impl/UCharacterProperty$26;
-Landroid/icu/impl/UCharacterProperty$27;
-Landroid/icu/impl/UCharacterProperty$2;
-Landroid/icu/impl/UCharacterProperty$3;
-Landroid/icu/impl/UCharacterProperty$4;
-Landroid/icu/impl/UCharacterProperty$5;
-Landroid/icu/impl/UCharacterProperty$6;
-Landroid/icu/impl/UCharacterProperty$7;
-Landroid/icu/impl/UCharacterProperty$8;
-Landroid/icu/impl/UCharacterProperty$9;
-Landroid/icu/impl/UCharacterProperty$BiDiIntProperty;
-Landroid/icu/impl/UCharacterProperty$BinaryProperty;
-Landroid/icu/impl/UCharacterProperty$CaseBinaryProperty;
-Landroid/icu/impl/UCharacterProperty$CombiningClassIntProperty;
-Landroid/icu/impl/UCharacterProperty$EmojiBinaryProperty;
-Landroid/icu/impl/UCharacterProperty$IntProperty;
-Landroid/icu/impl/UCharacterProperty$IsAcceptable;
-Landroid/icu/impl/UCharacterProperty$LayoutProps$IsAcceptable;
-Landroid/icu/impl/UCharacterProperty$LayoutProps;
-Landroid/icu/impl/UCharacterProperty$NormInertBinaryProperty;
-Landroid/icu/impl/UCharacterProperty$NormQuickCheckIntProperty;
-Landroid/icu/impl/UCharacterProperty;
-Landroid/icu/impl/UCharacterUtility;
-Landroid/icu/impl/UPropertyAliases$IsAcceptable;
-Landroid/icu/impl/UPropertyAliases;
-Landroid/icu/impl/URLHandler$FileURLHandler;
-Landroid/icu/impl/URLHandler$JarURLHandler;
-Landroid/icu/impl/URLHandler$URLVisitor;
-Landroid/icu/impl/URLHandler;
-Landroid/icu/impl/UResource$Array;
-Landroid/icu/impl/UResource$Key;
-Landroid/icu/impl/UResource$Sink;
-Landroid/icu/impl/UResource$Table;
-Landroid/icu/impl/UResource$Value;
-Landroid/icu/impl/UResource;
-Landroid/icu/impl/USerializedSet;
-Landroid/icu/impl/UTS46;
-Landroid/icu/impl/UnicodeRegex$1;
-Landroid/icu/impl/UnicodeRegex;
-Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;
-Landroid/icu/impl/UnicodeSetStringSpan;
-Landroid/icu/impl/Utility;
-Landroid/icu/impl/UtilityExtensions;
-Landroid/icu/impl/ValidIdentifiers$Datasubtype;
-Landroid/icu/impl/ValidIdentifiers$Datatype;
-Landroid/icu/impl/ValidIdentifiers$ValidityData;
-Landroid/icu/impl/ValidIdentifiers$ValiditySet;
-Landroid/icu/impl/ValidIdentifiers;
-Landroid/icu/impl/ZoneMeta$1;
-Landroid/icu/impl/ZoneMeta$CustomTimeZoneCache;
-Landroid/icu/impl/ZoneMeta$SystemTimeZoneCache;
-Landroid/icu/impl/ZoneMeta;
-Landroid/icu/impl/breakiter/DictionaryBreakEngine$DequeI;
-Landroid/icu/impl/breakiter/DictionaryBreakEngine;
-Landroid/icu/impl/breakiter/LanguageBreakEngine;
-Landroid/icu/impl/breakiter/UnhandledBreakEngine;
-Landroid/icu/impl/coll/BOCSU;
-Landroid/icu/impl/coll/Collation;
-Landroid/icu/impl/coll/CollationBuilder$1;
-Landroid/icu/impl/coll/CollationBuilder$BundleImporter;
-Landroid/icu/impl/coll/CollationBuilder$CEFinalizer;
-Landroid/icu/impl/coll/CollationBuilder;
-Landroid/icu/impl/coll/CollationCompare;
-Landroid/icu/impl/coll/CollationData;
-Landroid/icu/impl/coll/CollationDataBuilder$CEModifier;
-Landroid/icu/impl/coll/CollationDataBuilder$ConditionalCE32;
-Landroid/icu/impl/coll/CollationDataBuilder$CopyHelper;
-Landroid/icu/impl/coll/CollationDataBuilder$DataBuilderCollationIterator;
-Landroid/icu/impl/coll/CollationDataBuilder;
-Landroid/icu/impl/coll/CollationDataReader$IsAcceptable;
-Landroid/icu/impl/coll/CollationDataReader;
-Landroid/icu/impl/coll/CollationFCD;
-Landroid/icu/impl/coll/CollationFastLatin;
-Landroid/icu/impl/coll/CollationFastLatinBuilder;
-Landroid/icu/impl/coll/CollationIterator$CEBuffer;
-Landroid/icu/impl/coll/CollationIterator$SkippedState;
-Landroid/icu/impl/coll/CollationIterator;
-Landroid/icu/impl/coll/CollationKeys$LevelCallback;
-Landroid/icu/impl/coll/CollationKeys$SortKeyByteSink;
-Landroid/icu/impl/coll/CollationKeys$SortKeyLevel;
-Landroid/icu/impl/coll/CollationKeys;
-Landroid/icu/impl/coll/CollationLoader$ASCII;
-Landroid/icu/impl/coll/CollationLoader;
-Landroid/icu/impl/coll/CollationRoot;
-Landroid/icu/impl/coll/CollationRootElements;
-Landroid/icu/impl/coll/CollationRuleParser$Importer;
-Landroid/icu/impl/coll/CollationRuleParser$Position;
-Landroid/icu/impl/coll/CollationRuleParser$Sink;
-Landroid/icu/impl/coll/CollationRuleParser;
-Landroid/icu/impl/coll/CollationSettings;
-Landroid/icu/impl/coll/CollationTailoring;
-Landroid/icu/impl/coll/CollationWeights$WeightRange;
-Landroid/icu/impl/coll/CollationWeights;
-Landroid/icu/impl/coll/ContractionsAndExpansions$CESink;
-Landroid/icu/impl/coll/ContractionsAndExpansions;
-Landroid/icu/impl/coll/FCDIterCollationIterator$State;
-Landroid/icu/impl/coll/FCDIterCollationIterator;
-Landroid/icu/impl/coll/FCDUTF16CollationIterator;
-Landroid/icu/impl/coll/IterCollationIterator;
-Landroid/icu/impl/coll/SharedObject$Reference;
-Landroid/icu/impl/coll/SharedObject;
-Landroid/icu/impl/coll/TailoredSet;
-Landroid/icu/impl/coll/UTF16CollationIterator;
-Landroid/icu/impl/coll/UVector32;
-Landroid/icu/impl/coll/UVector64;
-Landroid/icu/impl/data/HolidayBundle;
-Landroid/icu/impl/data/HolidayBundle_da;
-Landroid/icu/impl/data/HolidayBundle_da_DK;
-Landroid/icu/impl/data/HolidayBundle_de;
-Landroid/icu/impl/data/HolidayBundle_de_AT;
-Landroid/icu/impl/data/HolidayBundle_de_DE;
-Landroid/icu/impl/data/HolidayBundle_el;
-Landroid/icu/impl/data/HolidayBundle_el_GR;
-Landroid/icu/impl/data/HolidayBundle_en;
-Landroid/icu/impl/data/HolidayBundle_en_CA;
-Landroid/icu/impl/data/HolidayBundle_en_GB;
-Landroid/icu/impl/data/HolidayBundle_en_US;
-Landroid/icu/impl/data/HolidayBundle_es;
-Landroid/icu/impl/data/HolidayBundle_es_MX;
-Landroid/icu/impl/data/HolidayBundle_fr;
-Landroid/icu/impl/data/HolidayBundle_fr_CA;
-Landroid/icu/impl/data/HolidayBundle_fr_FR;
-Landroid/icu/impl/data/HolidayBundle_it;
-Landroid/icu/impl/data/HolidayBundle_it_IT;
-Landroid/icu/impl/data/HolidayBundle_iw;
-Landroid/icu/impl/data/HolidayBundle_iw_IL;
-Landroid/icu/impl/data/HolidayBundle_ja_JP;
-Landroid/icu/impl/data/ResourceReader;
-Landroid/icu/impl/data/TokenIterator;
-Landroid/icu/impl/duration/BasicDurationFormat;
-Landroid/icu/impl/duration/BasicDurationFormatter;
-Landroid/icu/impl/duration/BasicDurationFormatterFactory;
-Landroid/icu/impl/duration/BasicPeriodBuilderFactory$Settings;
-Landroid/icu/impl/duration/BasicPeriodBuilderFactory;
-Landroid/icu/impl/duration/BasicPeriodFormatter;
-Landroid/icu/impl/duration/BasicPeriodFormatterFactory$Customizations;
-Landroid/icu/impl/duration/BasicPeriodFormatterFactory;
-Landroid/icu/impl/duration/BasicPeriodFormatterService;
-Landroid/icu/impl/duration/DateFormatter;
-Landroid/icu/impl/duration/DurationFormatter;
-Landroid/icu/impl/duration/DurationFormatterFactory;
-Landroid/icu/impl/duration/FixedUnitBuilder;
-Landroid/icu/impl/duration/MultiUnitBuilder;
-Landroid/icu/impl/duration/OneOrTwoUnitBuilder;
-Landroid/icu/impl/duration/Period;
-Landroid/icu/impl/duration/PeriodBuilder;
-Landroid/icu/impl/duration/PeriodBuilderFactory;
-Landroid/icu/impl/duration/PeriodBuilderImpl;
-Landroid/icu/impl/duration/PeriodFormatter;
-Landroid/icu/impl/duration/PeriodFormatterFactory;
-Landroid/icu/impl/duration/PeriodFormatterService;
-Landroid/icu/impl/duration/SingleUnitBuilder;
-Landroid/icu/impl/duration/TimeUnit;
-Landroid/icu/impl/duration/TimeUnitConstants;
-Landroid/icu/impl/duration/impl/DataRecord$ECountVariant;
-Landroid/icu/impl/duration/impl/DataRecord$EDecimalHandling;
-Landroid/icu/impl/duration/impl/DataRecord$EFractionHandling;
-Landroid/icu/impl/duration/impl/DataRecord$EGender;
-Landroid/icu/impl/duration/impl/DataRecord$EHalfPlacement;
-Landroid/icu/impl/duration/impl/DataRecord$EHalfSupport;
-Landroid/icu/impl/duration/impl/DataRecord$EMilliSupport;
-Landroid/icu/impl/duration/impl/DataRecord$ENumberSystem;
-Landroid/icu/impl/duration/impl/DataRecord$EPluralization;
-Landroid/icu/impl/duration/impl/DataRecord$ESeparatorVariant;
-Landroid/icu/impl/duration/impl/DataRecord$ETimeDirection;
-Landroid/icu/impl/duration/impl/DataRecord$ETimeLimit;
-Landroid/icu/impl/duration/impl/DataRecord$EUnitVariant;
-Landroid/icu/impl/duration/impl/DataRecord$EZeroHandling;
-Landroid/icu/impl/duration/impl/DataRecord$ScopeData;
-Landroid/icu/impl/duration/impl/DataRecord;
-Landroid/icu/impl/duration/impl/PeriodFormatterData;
-Landroid/icu/impl/duration/impl/PeriodFormatterDataService;
-Landroid/icu/impl/duration/impl/RecordReader;
-Landroid/icu/impl/duration/impl/RecordWriter;
-Landroid/icu/impl/duration/impl/ResourceBasedPeriodFormatterDataService;
-Landroid/icu/impl/duration/impl/Utils$ChineseDigits;
-Landroid/icu/impl/duration/impl/Utils;
-Landroid/icu/impl/duration/impl/XMLRecordReader;
-Landroid/icu/impl/duration/impl/XMLRecordWriter;
-Landroid/icu/impl/locale/AsciiUtil$CaseInsensitiveKey;
-Landroid/icu/impl/locale/AsciiUtil;
-Landroid/icu/impl/locale/BaseLocale$Cache;
-Landroid/icu/impl/locale/BaseLocale$Key;
-Landroid/icu/impl/locale/BaseLocale-IA;
-Landroid/icu/impl/locale/BaseLocale;
-Landroid/icu/impl/locale/Extension;
-Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveChar;
-Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveString;
-Landroid/icu/impl/locale/InternalLocaleBuilder;
-Landroid/icu/impl/locale/KeyTypeData$CodepointsTypeHandler;
-Landroid/icu/impl/locale/KeyTypeData$KeyData;
-Landroid/icu/impl/locale/KeyTypeData$KeyInfoType;
-Landroid/icu/impl/locale/KeyTypeData$PrivateUseKeyValueTypeHandler;
-Landroid/icu/impl/locale/KeyTypeData$ReorderCodeTypeHandler;
-Landroid/icu/impl/locale/KeyTypeData$RgKeyValueTypeHandler;
-Landroid/icu/impl/locale/KeyTypeData$ScriptCodeTypeHandler;
-Landroid/icu/impl/locale/KeyTypeData$SpecialType;
-Landroid/icu/impl/locale/KeyTypeData$SpecialTypeHandler;
-Landroid/icu/impl/locale/KeyTypeData$SubdivisionKeyValueTypeHandler;
-Landroid/icu/impl/locale/KeyTypeData$Type;
-Landroid/icu/impl/locale/KeyTypeData$TypeInfoType;
-Landroid/icu/impl/locale/KeyTypeData$ValueType;
-Landroid/icu/impl/locale/KeyTypeData;
-Landroid/icu/impl/locale/LSR;
-Landroid/icu/impl/locale/LanguageTag;
-Landroid/icu/impl/locale/LocaleDistance$Data;
-Landroid/icu/impl/locale/LocaleDistance;
-Landroid/icu/impl/locale/LocaleExtensions;
-Landroid/icu/impl/locale/LocaleObjectCache$CacheEntry;
-Landroid/icu/impl/locale/LocaleObjectCache;
-Landroid/icu/impl/locale/LocaleSyntaxException;
-Landroid/icu/impl/locale/LocaleValidityChecker$1;
-Landroid/icu/impl/locale/LocaleValidityChecker$SpecialCase;
-Landroid/icu/impl/locale/LocaleValidityChecker$Where;
-Landroid/icu/impl/locale/LocaleValidityChecker;
-Landroid/icu/impl/locale/ParseStatus;
-Landroid/icu/impl/locale/StringTokenIterator;
-Landroid/icu/impl/locale/UnicodeLocaleExtension;
-Landroid/icu/impl/locale/XCldrStub$CollectionUtilities;
-Landroid/icu/impl/locale/XCldrStub$FileUtilities;
-Landroid/icu/impl/locale/XCldrStub$HashMultimap;
-Landroid/icu/impl/locale/XCldrStub$ImmutableMap;
-Landroid/icu/impl/locale/XCldrStub$ImmutableMultimap;
-Landroid/icu/impl/locale/XCldrStub$ImmutableSet;
-Landroid/icu/impl/locale/XCldrStub$Joiner;
-Landroid/icu/impl/locale/XCldrStub$LinkedHashMultimap;
-Landroid/icu/impl/locale/XCldrStub$Multimap;
-Landroid/icu/impl/locale/XCldrStub$MultimapIterator;
-Landroid/icu/impl/locale/XCldrStub$Multimaps;
-Landroid/icu/impl/locale/XCldrStub$Predicate;
-Landroid/icu/impl/locale/XCldrStub$RegexUtilities;
-Landroid/icu/impl/locale/XCldrStub$ReusableEntry;
-Landroid/icu/impl/locale/XCldrStub$Splitter;
-Landroid/icu/impl/locale/XCldrStub$TreeMultimap;
-Landroid/icu/impl/locale/XCldrStub;
-Landroid/icu/impl/locale/XLikelySubtags$1;
-Landroid/icu/impl/locale/XLikelySubtags$Data;
-Landroid/icu/impl/locale/XLikelySubtags;
-Landroid/icu/impl/number/AdoptingModifierStore$1;
-Landroid/icu/impl/number/AdoptingModifierStore;
-Landroid/icu/impl/number/AffixPatternProvider$Flags;
-Landroid/icu/impl/number/AffixPatternProvider;
-Landroid/icu/impl/number/AffixUtils$SymbolProvider;
-Landroid/icu/impl/number/AffixUtils$TokenConsumer;
-Landroid/icu/impl/number/AffixUtils;
-Landroid/icu/impl/number/CompactData$CompactDataSink;
-Landroid/icu/impl/number/CompactData$CompactType;
-Landroid/icu/impl/number/CompactData;
-Landroid/icu/impl/number/ConstantAffixModifier;
-Landroid/icu/impl/number/ConstantMultiFieldModifier;
-Landroid/icu/impl/number/CurrencyPluralInfoAffixProvider;
-Landroid/icu/impl/number/CurrencySpacingEnabledModifier;
-Landroid/icu/impl/number/CustomSymbolCurrency;
-Landroid/icu/impl/number/DecimalFormatProperties$ParseMode;
-Landroid/icu/impl/number/DecimalFormatProperties;
-Landroid/icu/impl/number/DecimalQuantity;
-Landroid/icu/impl/number/DecimalQuantity_AbstractBCD$1;
-Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;
-Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;
-Landroid/icu/impl/number/Grouper$1;
-Landroid/icu/impl/number/Grouper;
-Landroid/icu/impl/number/LocalizedNumberFormatterAsFormat$Proxy;
-Landroid/icu/impl/number/LocalizedNumberFormatterAsFormat;
-Landroid/icu/impl/number/LongNameHandler$AliasSink;
-Landroid/icu/impl/number/LongNameHandler$PluralTableSink;
-Landroid/icu/impl/number/LongNameHandler;
-Landroid/icu/impl/number/LongNameMultiplexer$ParentlessMicroPropsGenerator;
-Landroid/icu/impl/number/LongNameMultiplexer;
-Landroid/icu/impl/number/MacroProps;
-Landroid/icu/impl/number/MicroProps;
-Landroid/icu/impl/number/MicroPropsGenerator;
-Landroid/icu/impl/number/MicroPropsMutator;
-Landroid/icu/impl/number/MixedUnitLongNameHandler;
-Landroid/icu/impl/number/Modifier$Parameters;
-Landroid/icu/impl/number/Modifier$Signum;
-Landroid/icu/impl/number/Modifier;
-Landroid/icu/impl/number/ModifierStore;
-Landroid/icu/impl/number/MultiplierFormatHandler;
-Landroid/icu/impl/number/MultiplierProducer;
-Landroid/icu/impl/number/MutablePatternModifier$1;
-Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;
-Landroid/icu/impl/number/MutablePatternModifier;
-Landroid/icu/impl/number/Padder$PadPosition;
-Landroid/icu/impl/number/Padder;
-Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo-IA;
-Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;
-Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;
-Landroid/icu/impl/number/PatternStringParser$ParserState;
-Landroid/icu/impl/number/PatternStringParser;
-Landroid/icu/impl/number/PatternStringUtils$1;
-Landroid/icu/impl/number/PatternStringUtils$PatternSignType;
-Landroid/icu/impl/number/PatternStringUtils;
-Landroid/icu/impl/number/Properties;
-Landroid/icu/impl/number/PropertiesAffixPatternProvider;
-Landroid/icu/impl/number/RoundingUtils;
-Landroid/icu/impl/number/SimpleModifier;
-Landroid/icu/impl/number/UnitConversionHandler;
-Landroid/icu/impl/number/UsagePrefsHandler;
-Landroid/icu/impl/number/parse/AffixMatcher$1;
-Landroid/icu/impl/number/parse/AffixMatcher;
-Landroid/icu/impl/number/parse/AffixPatternMatcher;
-Landroid/icu/impl/number/parse/AffixTokenMatcherFactory;
-Landroid/icu/impl/number/parse/CodePointMatcher;
-Landroid/icu/impl/number/parse/CombinedCurrencyMatcher;
-Landroid/icu/impl/number/parse/DecimalMatcher;
-Landroid/icu/impl/number/parse/IgnorablesMatcher;
-Landroid/icu/impl/number/parse/InfinityMatcher;
-Landroid/icu/impl/number/parse/MinusSignMatcher;
-Landroid/icu/impl/number/parse/MultiplierParseHandler;
-Landroid/icu/impl/number/parse/NanMatcher;
-Landroid/icu/impl/number/parse/NumberParseMatcher$Flexible;
-Landroid/icu/impl/number/parse/NumberParseMatcher;
-Landroid/icu/impl/number/parse/NumberParserImpl;
-Landroid/icu/impl/number/parse/PaddingMatcher;
-Landroid/icu/impl/number/parse/ParsedNumber$1;
-Landroid/icu/impl/number/parse/ParsedNumber;
-Landroid/icu/impl/number/parse/ParsingUtils;
-Landroid/icu/impl/number/parse/PercentMatcher;
-Landroid/icu/impl/number/parse/PermilleMatcher;
-Landroid/icu/impl/number/parse/PlusSignMatcher;
-Landroid/icu/impl/number/parse/RequireAffixValidator;
-Landroid/icu/impl/number/parse/RequireCurrencyValidator;
-Landroid/icu/impl/number/parse/RequireDecimalSeparatorValidator;
-Landroid/icu/impl/number/parse/RequireNumberValidator;
-Landroid/icu/impl/number/parse/ScientificMatcher;
-Landroid/icu/impl/number/parse/SeriesMatcher;
-Landroid/icu/impl/number/parse/SymbolMatcher;
-Landroid/icu/impl/number/parse/ValidationMatcher;
-Landroid/icu/impl/number/range/PrefixInfixSuffixLengthHelper;
-Landroid/icu/impl/number/range/RangeMacroProps;
-Landroid/icu/impl/number/range/StandardPluralRanges$PluralRangeSetsDataSink;
-Landroid/icu/impl/number/range/StandardPluralRanges$PluralRangesDataSink;
-Landroid/icu/impl/number/range/StandardPluralRanges;
-Landroid/icu/impl/text/RbnfScannerProviderImpl$RbnfLenientScannerImpl;
-Landroid/icu/impl/text/RbnfScannerProviderImpl;
-Landroid/icu/impl/units/ComplexUnitsConverter;
-Landroid/icu/impl/units/ConversionRates$ConversionRateInfo;
-Landroid/icu/impl/units/ConversionRates$ConversionRatesSink;
-Landroid/icu/impl/units/ConversionRates;
-Landroid/icu/impl/units/MeasureUnitImpl$CompoundPart;
-Landroid/icu/impl/units/MeasureUnitImpl$InitialCompoundPart;
-Landroid/icu/impl/units/MeasureUnitImpl$MeasureUnitImplComparator;
-Landroid/icu/impl/units/MeasureUnitImpl$PowerPart;
-Landroid/icu/impl/units/MeasureUnitImpl$SingleUnitComparator;
-Landroid/icu/impl/units/MeasureUnitImpl$UnitsParser$Token$Type;
-Landroid/icu/impl/units/MeasureUnitImpl$UnitsParser$Token;
-Landroid/icu/impl/units/MeasureUnitImpl$UnitsParser;
-Landroid/icu/impl/units/MeasureUnitImpl;
-Landroid/icu/impl/units/SingleUnitImpl;
-Landroid/icu/impl/units/UnitPreferences$UnitPreference;
-Landroid/icu/impl/units/UnitPreferences$UnitPreferencesSink;
-Landroid/icu/impl/units/UnitPreferences;
-Landroid/icu/impl/units/UnitsData$Categories;
-Landroid/icu/impl/units/UnitsData$CategoriesSink;
-Landroid/icu/impl/units/UnitsData$Constants;
-Landroid/icu/impl/units/UnitsData$SimpleUnitIdentifiersSink;
-Landroid/icu/impl/units/UnitsData;
-Landroid/icu/impl/units/UnitsRouter$ConverterPreference;
-Landroid/icu/impl/units/UnitsRouter$RouteResult;
-Landroid/icu/impl/units/UnitsRouter;
-Landroid/icu/lang/CharSequences;
-Landroid/icu/lang/CharacterProperties;
-Landroid/icu/lang/UCharacter$BidiPairedBracketType;
-Landroid/icu/lang/UCharacter$DecompositionType;
-Landroid/icu/lang/UCharacter$DummyValueIterator;
-Landroid/icu/lang/UCharacter$EastAsianWidth;
-Landroid/icu/lang/UCharacter$GraphemeClusterBreak;
-Landroid/icu/lang/UCharacter$HangulSyllableType;
-Landroid/icu/lang/UCharacter$IndicPositionalCategory;
-Landroid/icu/lang/UCharacter$IndicSyllabicCategory;
-Landroid/icu/lang/UCharacter$JoiningGroup;
-Landroid/icu/lang/UCharacter$JoiningType;
-Landroid/icu/lang/UCharacter$LineBreak;
-Landroid/icu/lang/UCharacter$NumericType;
-Landroid/icu/lang/UCharacter$SentenceBreak;
-Landroid/icu/lang/UCharacter$UCharacterTypeIterator$MaskType;
-Landroid/icu/lang/UCharacter$UCharacterTypeIterator;
-Landroid/icu/lang/UCharacter$UnicodeBlock;
-Landroid/icu/lang/UCharacter$VerticalOrientation;
-Landroid/icu/lang/UCharacter$WordBreak;
-Landroid/icu/lang/UCharacter;
-Landroid/icu/lang/UCharacterCategory;
-Landroid/icu/lang/UCharacterDirection;
-Landroid/icu/lang/UCharacterEnums$ECharacterCategory;
-Landroid/icu/lang/UCharacterEnums$ECharacterDirection;
-Landroid/icu/lang/UCharacterEnums;
-Landroid/icu/lang/UCharacterNameIterator;
-Landroid/icu/lang/UProperty$NameChoice;
-Landroid/icu/lang/UProperty;
-Landroid/icu/lang/UScript$ScriptMetadata;
-Landroid/icu/lang/UScript$ScriptUsage;
-Landroid/icu/lang/UScript;
-Landroid/icu/lang/UScriptRun$ParenStackEntry;
-Landroid/icu/lang/UScriptRun;
-Landroid/icu/math/BigDecimal;
-Landroid/icu/math/MathContext;
-Landroid/icu/number/CompactNotation$CompactHandler;
-Landroid/icu/number/CompactNotation;
-Landroid/icu/number/CurrencyPrecision;
-Landroid/icu/number/FormattedNumber;
-Landroid/icu/number/FormattedNumberRange;
-Landroid/icu/number/FractionPrecision;
-Landroid/icu/number/IntegerWidth;
-Landroid/icu/number/LocalizedNumberFormatter;
-Landroid/icu/number/LocalizedNumberRangeFormatter;
-Landroid/icu/number/Notation;
-Landroid/icu/number/NumberFormatter$DecimalSeparatorDisplay;
-Landroid/icu/number/NumberFormatter$GroupingStrategy;
-Landroid/icu/number/NumberFormatter$RoundingPriority;
-Landroid/icu/number/NumberFormatter$SignDisplay;
-Landroid/icu/number/NumberFormatter$TrailingZeroDisplay;
-Landroid/icu/number/NumberFormatter$UnitWidth;
-Landroid/icu/number/NumberFormatter;
-Landroid/icu/number/NumberFormatterImpl;
-Landroid/icu/number/NumberFormatterSettings;
-Landroid/icu/number/NumberPropertyMapper;
-Landroid/icu/number/NumberRangeFormatter$RangeCollapse;
-Landroid/icu/number/NumberRangeFormatter$RangeIdentityFallback;
-Landroid/icu/number/NumberRangeFormatter$RangeIdentityResult;
-Landroid/icu/number/NumberRangeFormatter;
-Landroid/icu/number/NumberRangeFormatterImpl$1;
-Landroid/icu/number/NumberRangeFormatterImpl$NumberRangeDataSink;
-Landroid/icu/number/NumberRangeFormatterImpl;
-Landroid/icu/number/NumberRangeFormatterSettings;
-Landroid/icu/number/NumberSkeletonImpl$1;
-Landroid/icu/number/NumberSkeletonImpl$2;
-Landroid/icu/number/NumberSkeletonImpl$BlueprintHelpers;
-Landroid/icu/number/NumberSkeletonImpl$EnumToStemString;
-Landroid/icu/number/NumberSkeletonImpl$GeneratorHelpers;
-Landroid/icu/number/NumberSkeletonImpl$ParseState;
-Landroid/icu/number/NumberSkeletonImpl$StemEnum;
-Landroid/icu/number/NumberSkeletonImpl$StemToObject;
-Landroid/icu/number/NumberSkeletonImpl;
-Landroid/icu/number/Precision$BogusRounder;
-Landroid/icu/number/Precision$CurrencyRounderImpl;
-Landroid/icu/number/Precision$FracSigRounderImpl;
-Landroid/icu/number/Precision$FractionRounderImpl;
-Landroid/icu/number/Precision$IncrementFiveRounderImpl;
-Landroid/icu/number/Precision$IncrementOneRounderImpl;
-Landroid/icu/number/Precision$IncrementRounderImpl;
-Landroid/icu/number/Precision$InfiniteRounderImpl;
-Landroid/icu/number/Precision$SignificantRounderImpl;
-Landroid/icu/number/Precision;
-Landroid/icu/number/Scale;
-Landroid/icu/number/ScientificNotation$ScientificHandler;
-Landroid/icu/number/ScientificNotation$ScientificModifier;
-Landroid/icu/number/ScientificNotation;
-Landroid/icu/number/SimpleNotation;
-Landroid/icu/number/SkeletonSyntaxException;
-Landroid/icu/number/UnlocalizedNumberFormatter;
-Landroid/icu/number/UnlocalizedNumberRangeFormatter;
-Landroid/icu/platform/AndroidDataFiles;
-Landroid/icu/text/AbsoluteValueSubstitution;
-Landroid/icu/text/AlphabeticIndex$1;
-Landroid/icu/text/AlphabeticIndex$Bucket$LabelType;
-Landroid/icu/text/AlphabeticIndex$Bucket;
-Landroid/icu/text/AlphabeticIndex$BucketList;
-Landroid/icu/text/AlphabeticIndex$ImmutableIndex;
-Landroid/icu/text/AlphabeticIndex$Record;
-Landroid/icu/text/AlphabeticIndex;
-Landroid/icu/text/AnyTransliterator$ScriptRunIterator;
-Landroid/icu/text/AnyTransliterator;
-Landroid/icu/text/ArabicShaping;
-Landroid/icu/text/ArabicShapingException;
-Landroid/icu/text/Bidi$BracketData;
-Landroid/icu/text/Bidi$ImpTabPair;
-Landroid/icu/text/Bidi$InsertPoints;
-Landroid/icu/text/Bidi$IsoRun;
-Landroid/icu/text/Bidi$Isolate;
-Landroid/icu/text/Bidi$LevState;
-Landroid/icu/text/Bidi$Opening;
-Landroid/icu/text/Bidi$Point;
-Landroid/icu/text/Bidi;
-Landroid/icu/text/BidiClassifier;
-Landroid/icu/text/BidiLine;
-Landroid/icu/text/BidiRun;
-Landroid/icu/text/BidiTransform$Mirroring;
-Landroid/icu/text/BidiTransform$Order;
-Landroid/icu/text/BidiTransform$ReorderingScheme$10;
-Landroid/icu/text/BidiTransform$ReorderingScheme$11;
-Landroid/icu/text/BidiTransform$ReorderingScheme$12;
-Landroid/icu/text/BidiTransform$ReorderingScheme$13;
-Landroid/icu/text/BidiTransform$ReorderingScheme$14;
-Landroid/icu/text/BidiTransform$ReorderingScheme$15;
-Landroid/icu/text/BidiTransform$ReorderingScheme$16;
-Landroid/icu/text/BidiTransform$ReorderingScheme$1;
-Landroid/icu/text/BidiTransform$ReorderingScheme$2;
-Landroid/icu/text/BidiTransform$ReorderingScheme$3;
-Landroid/icu/text/BidiTransform$ReorderingScheme$4;
-Landroid/icu/text/BidiTransform$ReorderingScheme$5;
-Landroid/icu/text/BidiTransform$ReorderingScheme$6;
-Landroid/icu/text/BidiTransform$ReorderingScheme$7;
-Landroid/icu/text/BidiTransform$ReorderingScheme$8;
-Landroid/icu/text/BidiTransform$ReorderingScheme$9;
-Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform;
-Landroid/icu/text/BidiWriter;
-Landroid/icu/text/BreakIterator$BreakIteratorCache;
-Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;
-Landroid/icu/text/BreakIterator;
-Landroid/icu/text/BreakIteratorFactory$BFService$1RBBreakIteratorFactory;
-Landroid/icu/text/BreakIteratorFactory$BFService;
-Landroid/icu/text/BreakIteratorFactory;
-Landroid/icu/text/BreakTransliterator$ReplaceableCharacterIterator;
-Landroid/icu/text/BreakTransliterator;
-Landroid/icu/text/CanonicalIterator;
-Landroid/icu/text/CaseFoldTransliterator$1;
-Landroid/icu/text/CaseFoldTransliterator$2;
-Landroid/icu/text/CaseFoldTransliterator;
-Landroid/icu/text/CaseMap$Fold;
-Landroid/icu/text/CaseMap$Lower;
-Landroid/icu/text/CaseMap$Title;
-Landroid/icu/text/CaseMap$Upper;
-Landroid/icu/text/CaseMap;
-Landroid/icu/text/CharsetDetector$CSRecognizerInfo;
-Landroid/icu/text/CharsetDetector;
-Landroid/icu/text/CharsetMatch;
-Landroid/icu/text/CharsetRecog_2022$CharsetRecog_2022CN;
-Landroid/icu/text/CharsetRecog_2022$CharsetRecog_2022JP;
-Landroid/icu/text/CharsetRecog_2022$CharsetRecog_2022KR;
-Landroid/icu/text/CharsetRecog_2022;
-Landroid/icu/text/CharsetRecog_UTF8;
-Landroid/icu/text/CharsetRecog_Unicode$CharsetRecog_UTF_16_BE;
-Landroid/icu/text/CharsetRecog_Unicode$CharsetRecog_UTF_16_LE;
-Landroid/icu/text/CharsetRecog_Unicode$CharsetRecog_UTF_32;
-Landroid/icu/text/CharsetRecog_Unicode$CharsetRecog_UTF_32_BE;
-Landroid/icu/text/CharsetRecog_Unicode$CharsetRecog_UTF_32_LE;
-Landroid/icu/text/CharsetRecog_Unicode;
-Landroid/icu/text/CharsetRecog_mbcs$CharsetRecog_big5;
-Landroid/icu/text/CharsetRecog_mbcs$CharsetRecog_euc$CharsetRecog_euc_jp;
-Landroid/icu/text/CharsetRecog_mbcs$CharsetRecog_euc$CharsetRecog_euc_kr;
-Landroid/icu/text/CharsetRecog_mbcs$CharsetRecog_euc;
-Landroid/icu/text/CharsetRecog_mbcs$CharsetRecog_gb_18030;
-Landroid/icu/text/CharsetRecog_mbcs$CharsetRecog_sjis;
-Landroid/icu/text/CharsetRecog_mbcs$iteratedChar;
-Landroid/icu/text/CharsetRecog_mbcs;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_1;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_2;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_5;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_5_ru;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_6;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_6_ar;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_7;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_7_el;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_8;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_8_I_he;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_8_he;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_9;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_9_tr;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_IBM420_ar;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_IBM420_ar_ltr;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_IBM420_ar_rtl;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_IBM424_he;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_IBM424_he_ltr;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_IBM424_he_rtl;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_KOI8_R;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_windows_1251;
-Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_windows_1256;
-Landroid/icu/text/CharsetRecog_sbcs$NGramParser;
-Landroid/icu/text/CharsetRecog_sbcs$NGramParser_IBM420;
-Landroid/icu/text/CharsetRecog_sbcs$NGramsPlusLang;
-Landroid/icu/text/CharsetRecog_sbcs;
-Landroid/icu/text/CharsetRecognizer;
-Landroid/icu/text/ChineseDateFormat$Field;
-Landroid/icu/text/ChineseDateFormat;
-Landroid/icu/text/ChineseDateFormatSymbols;
-Landroid/icu/text/CollationElementIterator$MaxExpSink;
-Landroid/icu/text/CollationElementIterator;
-Landroid/icu/text/CollationKey$BoundMode;
-Landroid/icu/text/CollationKey;
-Landroid/icu/text/Collator$ASCII;
-Landroid/icu/text/Collator$CollatorFactory;
-Landroid/icu/text/Collator$KeywordsSink;
-Landroid/icu/text/Collator$ReorderCodes;
-Landroid/icu/text/Collator$ServiceShim;
-Landroid/icu/text/Collator;
-Landroid/icu/text/CollatorServiceShim$1CFactory;
-Landroid/icu/text/CollatorServiceShim$CService$1CollatorFactory;
-Landroid/icu/text/CollatorServiceShim$CService;
-Landroid/icu/text/CollatorServiceShim;
-Landroid/icu/text/CompactDecimalFormat$CompactStyle;
-Landroid/icu/text/CompactDecimalFormat;
-Landroid/icu/text/ComposedCharIter;
-Landroid/icu/text/CompoundTransliterator;
-Landroid/icu/text/ConstrainedFieldPosition$ConstraintType;
-Landroid/icu/text/ConstrainedFieldPosition;
-Landroid/icu/text/CurrencyDisplayNames;
-Landroid/icu/text/CurrencyFormat;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;
-Landroid/icu/text/CurrencyMetaInfo;
-Landroid/icu/text/CurrencyPluralInfo;
-Landroid/icu/text/DateFormat$BooleanAttribute;
-Landroid/icu/text/DateFormat$Field;
-Landroid/icu/text/DateFormat$HourCycle;
-Landroid/icu/text/DateFormat;
-Landroid/icu/text/DateFormatSymbols$1;
-Landroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols-IA;
-Landroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols-IA;
-Landroid/icu/text/DateFormatSymbols;
-Landroid/icu/text/DateIntervalFormat$BestMatchInfo;
-Landroid/icu/text/DateIntervalFormat$FormatOutput;
-Landroid/icu/text/DateIntervalFormat$FormattedDateInterval;
-Landroid/icu/text/DateIntervalFormat$SkeletonAndItsBestMatch;
-Landroid/icu/text/DateIntervalFormat$SpanField;
-Landroid/icu/text/DateIntervalFormat;
-Landroid/icu/text/DateIntervalInfo$DateIntervalSink;
-Landroid/icu/text/DateIntervalInfo$PatternInfo;
-Landroid/icu/text/DateIntervalInfo;
-Landroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink-IA;
-Landroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink;
-Landroid/icu/text/DateTimePatternGenerator$AppendItemNamesSink-IA;
-Landroid/icu/text/DateTimePatternGenerator$AppendItemNamesSink;
-Landroid/icu/text/DateTimePatternGenerator$AvailableFormatsSink;
-Landroid/icu/text/DateTimePatternGenerator$DTPGflags;
-Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher-IA;
-Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;
-Landroid/icu/text/DateTimePatternGenerator$DayPeriodAllowedHoursSink;
-Landroid/icu/text/DateTimePatternGenerator$DisplayWidth;
-Landroid/icu/text/DateTimePatternGenerator$DistanceInfo-IA;
-Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;
-Landroid/icu/text/DateTimePatternGenerator$FormatParser;
-Landroid/icu/text/DateTimePatternGenerator$PatternInfo;
-Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;
-Landroid/icu/text/DateTimePatternGenerator$PatternWithSkeletonFlag;
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields-IA;
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;
-Landroid/icu/text/DateTimePatternGenerator$VariableField;
-Landroid/icu/text/DateTimePatternGenerator;
-Landroid/icu/text/DecimalFormat$PropertySetter;
-Landroid/icu/text/DecimalFormat;
-Landroid/icu/text/DecimalFormatSymbols$1;
-Landroid/icu/text/DecimalFormatSymbols$CacheData;
-Landroid/icu/text/DecimalFormatSymbols$DecFmtDataSink;
-Landroid/icu/text/DecimalFormatSymbols;
-Landroid/icu/text/DisplayContext$Type;
-Landroid/icu/text/DisplayContext;
-Landroid/icu/text/DurationFormat;
-Landroid/icu/text/Edits$Iterator-IA;
-Landroid/icu/text/Edits$Iterator;
-Landroid/icu/text/Edits;
-Landroid/icu/text/EscapeTransliterator$1;
-Landroid/icu/text/EscapeTransliterator$2;
-Landroid/icu/text/EscapeTransliterator$3;
-Landroid/icu/text/EscapeTransliterator$4;
-Landroid/icu/text/EscapeTransliterator$5;
-Landroid/icu/text/EscapeTransliterator$6;
-Landroid/icu/text/EscapeTransliterator$7;
-Landroid/icu/text/EscapeTransliterator$8;
-Landroid/icu/text/EscapeTransliterator;
-Landroid/icu/text/FilteredBreakIteratorBuilder;
-Landroid/icu/text/FilteredNormalizer2;
-Landroid/icu/text/FormattedValue;
-Landroid/icu/text/FractionalPartSubstitution;
-Landroid/icu/text/FunctionReplacer;
-Landroid/icu/text/IDNA$Error;
-Landroid/icu/text/IDNA$Info;
-Landroid/icu/text/IDNA;
-Landroid/icu/text/IntegralPartSubstitution;
-Landroid/icu/text/ListFormatter$Cache;
-Landroid/icu/text/ListFormatter$ContextualHandler;
-Landroid/icu/text/ListFormatter$Field;
-Landroid/icu/text/ListFormatter$FormattedList;
-Landroid/icu/text/ListFormatter$FormattedListBuilder;
-Landroid/icu/text/ListFormatter$PatternHandler;
-Landroid/icu/text/ListFormatter$SpanField;
-Landroid/icu/text/ListFormatter$StaticHandler;
-Landroid/icu/text/ListFormatter$Type;
-Landroid/icu/text/ListFormatter$Width;
-Landroid/icu/text/ListFormatter;
-Landroid/icu/text/LocaleDisplayNames$DialectHandling;
-Landroid/icu/text/LocaleDisplayNames$LastResortLocaleDisplayNames;
-Landroid/icu/text/LocaleDisplayNames$UiListItem$UiListItemComparator;
-Landroid/icu/text/LocaleDisplayNames$UiListItem;
-Landroid/icu/text/LocaleDisplayNames;
-Landroid/icu/text/LowercaseTransliterator$1;
-Landroid/icu/text/LowercaseTransliterator$2;
-Landroid/icu/text/LowercaseTransliterator;
-Landroid/icu/text/MeasureFormat$FormatWidth;
-Landroid/icu/text/MeasureFormat$MeasureProxy;
-Landroid/icu/text/MeasureFormat$NumberFormatterCacheEntry;
-Landroid/icu/text/MeasureFormat$NumericFormatters;
-Landroid/icu/text/MeasureFormat;
-Landroid/icu/text/MessageFormat$AppendableWrapper;
-Landroid/icu/text/MessageFormat$AttributeAndPosition;
-Landroid/icu/text/MessageFormat$Field;
-Landroid/icu/text/MessageFormat$PluralSelectorContext;
-Landroid/icu/text/MessageFormat$PluralSelectorProvider;
-Landroid/icu/text/MessageFormat;
-Landroid/icu/text/MessagePattern$ApostropheMode;
-Landroid/icu/text/MessagePattern$ArgType;
-Landroid/icu/text/MessagePattern$Part$Type;
-Landroid/icu/text/MessagePattern$Part;
-Landroid/icu/text/MessagePattern;
-Landroid/icu/text/MessagePatternUtil$1;
-Landroid/icu/text/MessagePatternUtil$ArgNode;
-Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;
-Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
-Landroid/icu/text/MessagePatternUtil$MessageContentsNode;
-Landroid/icu/text/MessagePatternUtil$MessageNode;
-Landroid/icu/text/MessagePatternUtil$Node;
-Landroid/icu/text/MessagePatternUtil$TextNode;
-Landroid/icu/text/MessagePatternUtil$VariantNode;
-Landroid/icu/text/MessagePatternUtil;
-Landroid/icu/text/ModulusSubstitution;
-Landroid/icu/text/MultiplierSubstitution;
-Landroid/icu/text/NFRule;
-Landroid/icu/text/NFRuleSet;
-Landroid/icu/text/NFSubstitution;
-Landroid/icu/text/NameUnicodeTransliterator$1;
-Landroid/icu/text/NameUnicodeTransliterator;
-Landroid/icu/text/NormalizationTransliterator$1;
-Landroid/icu/text/NormalizationTransliterator$2;
-Landroid/icu/text/NormalizationTransliterator$3;
-Landroid/icu/text/NormalizationTransliterator$4;
-Landroid/icu/text/NormalizationTransliterator$5;
-Landroid/icu/text/NormalizationTransliterator$6;
-Landroid/icu/text/NormalizationTransliterator$NormalizingTransform;
-Landroid/icu/text/NormalizationTransliterator;
-Landroid/icu/text/Normalizer$CharsAppendable;
-Landroid/icu/text/Normalizer$CmpEquivLevel;
-Landroid/icu/text/Normalizer$FCD32ModeImpl;
-Landroid/icu/text/Normalizer$FCDMode;
-Landroid/icu/text/Normalizer$FCDModeImpl;
-Landroid/icu/text/Normalizer$Mode;
-Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NFC32ModeImpl;
-Landroid/icu/text/Normalizer$NFCMode;
-Landroid/icu/text/Normalizer$NFCModeImpl;
-Landroid/icu/text/Normalizer$NFD32ModeImpl;
-Landroid/icu/text/Normalizer$NFDMode;
-Landroid/icu/text/Normalizer$NFDModeImpl;
-Landroid/icu/text/Normalizer$NFKC32ModeImpl;
-Landroid/icu/text/Normalizer$NFKCMode;
-Landroid/icu/text/Normalizer$NFKCModeImpl;
-Landroid/icu/text/Normalizer$NFKD32ModeImpl;
-Landroid/icu/text/Normalizer$NFKDMode;
-Landroid/icu/text/Normalizer$NFKDModeImpl;
-Landroid/icu/text/Normalizer$NONEMode;
-Landroid/icu/text/Normalizer$QuickCheckResult;
-Landroid/icu/text/Normalizer$Unicode32;
-Landroid/icu/text/Normalizer2$Mode;
-Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer;
-Landroid/icu/text/NullTransliterator;
-Landroid/icu/text/NumberFormat$Field;
-Landroid/icu/text/NumberFormat$NumberFormatFactory;
-Landroid/icu/text/NumberFormat$NumberFormatShim;
-Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;
-Landroid/icu/text/NumberFormat;
-Landroid/icu/text/NumberFormatServiceShim$NFFactory;
-Landroid/icu/text/NumberFormatServiceShim$NFService$1RBNumberFormatFactory;
-Landroid/icu/text/NumberFormatServiceShim$NFService;
-Landroid/icu/text/NumberFormatServiceShim;
-Landroid/icu/text/NumberingSystem$1;
-Landroid/icu/text/NumberingSystem$2;
-Landroid/icu/text/NumberingSystem$LocaleLookupData;
-Landroid/icu/text/NumberingSystem;
-Landroid/icu/text/NumeratorSubstitution;
-Landroid/icu/text/PluralFormat$PluralSelector;
-Landroid/icu/text/PluralFormat$PluralSelectorAdapter;
-Landroid/icu/text/PluralFormat;
-Landroid/icu/text/PluralRules$1;
-Landroid/icu/text/PluralRules$AndConstraint;
-Landroid/icu/text/PluralRules$BinaryConstraint;
-Landroid/icu/text/PluralRules$Constraint;
-Landroid/icu/text/PluralRules$DecimalQuantitySamples;
-Landroid/icu/text/PluralRules$DecimalQuantitySamplesRange;
-Landroid/icu/text/PluralRules$Factory;
-Landroid/icu/text/PluralRules$FixedDecimal;
-Landroid/icu/text/PluralRules$IFixedDecimal;
-Landroid/icu/text/PluralRules$KeywordStatus;
-Landroid/icu/text/PluralRules$Operand;
-Landroid/icu/text/PluralRules$OrConstraint;
-Landroid/icu/text/PluralRules$PluralType;
-Landroid/icu/text/PluralRules$RangeConstraint;
-Landroid/icu/text/PluralRules$Rule;
-Landroid/icu/text/PluralRules$RuleList-IA;
-Landroid/icu/text/PluralRules$RuleList;
-Landroid/icu/text/PluralRules$SampleType;
-Landroid/icu/text/PluralRules$SimpleTokenizer;
-Landroid/icu/text/PluralRules;
-Landroid/icu/text/PluralRulesSerialProxy;
-Landroid/icu/text/Quantifier;
-Landroid/icu/text/QuantityFormatter;
-Landroid/icu/text/RBBINode;
-Landroid/icu/text/RBBIRuleBuilder$IntPair;
-Landroid/icu/text/RBBIRuleBuilder;
-Landroid/icu/text/RBBIRuleParseTable$RBBIRuleTableElement;
-Landroid/icu/text/RBBIRuleParseTable;
-Landroid/icu/text/RBBIRuleScanner$RBBIRuleChar;
-Landroid/icu/text/RBBIRuleScanner$RBBISetTableEl;
-Landroid/icu/text/RBBIRuleScanner;
-Landroid/icu/text/RBBISetBuilder$RangeDescriptor;
-Landroid/icu/text/RBBISetBuilder;
-Landroid/icu/text/RBBISymbolTable$RBBISymbolTableEntry;
-Landroid/icu/text/RBBISymbolTable;
-Landroid/icu/text/RBBITableBuilder$RBBIStateDescriptor;
-Landroid/icu/text/RBBITableBuilder;
-Landroid/icu/text/RBNFChinesePostProcessor;
-Landroid/icu/text/RBNFPostProcessor;
-Landroid/icu/text/RawCollationKey;
-Landroid/icu/text/RbnfLenientScanner;
-Landroid/icu/text/RbnfLenientScannerProvider;
-Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$Cache$1;
-Landroid/icu/text/RelativeDateTimeFormatter$Cache;
-Landroid/icu/text/RelativeDateTimeFormatter$Direction;
-Landroid/icu/text/RelativeDateTimeFormatter$Field;
-Landroid/icu/text/RelativeDateTimeFormatter$FormattedRelativeDateTime;
-Landroid/icu/text/RelativeDateTimeFormatter$Loader;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;
-Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;
-Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$Style;
-Landroid/icu/text/RelativeDateTimeFormatter;
-Landroid/icu/text/RemoveTransliterator$1;
-Landroid/icu/text/RemoveTransliterator;
-Landroid/icu/text/Replaceable;
-Landroid/icu/text/ReplaceableContextIterator;
-Landroid/icu/text/ReplaceableString;
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;
-Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;
-Landroid/icu/text/RuleBasedBreakIterator;
-Landroid/icu/text/RuleBasedCollator$CollationBuffer-IA;
-Landroid/icu/text/RuleBasedCollator$CollationBuffer;
-Landroid/icu/text/RuleBasedCollator$CollationKeyByteSink;
-Landroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;
-Landroid/icu/text/RuleBasedCollator$NFDIterator;
-Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;
-Landroid/icu/text/RuleBasedCollator;
-Landroid/icu/text/RuleBasedNumberFormat;
-Landroid/icu/text/RuleBasedTransliterator$Data;
-Landroid/icu/text/RuleBasedTransliterator;
-Landroid/icu/text/SCSU;
-Landroid/icu/text/SameValueSubstitution;
-Landroid/icu/text/ScientificNumberFormatter$MarkupStyle;
-Landroid/icu/text/ScientificNumberFormatter$Style;
-Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle;
-Landroid/icu/text/ScientificNumberFormatter;
-Landroid/icu/text/SearchIterator$ElementComparisonType;
-Landroid/icu/text/SearchIterator$Search;
-Landroid/icu/text/SearchIterator;
-Landroid/icu/text/SelectFormat;
-Landroid/icu/text/SimpleDateFormat$1;
-Landroid/icu/text/SimpleDateFormat$ContextValue;
-Landroid/icu/text/SimpleDateFormat$PatternItem;
-Landroid/icu/text/SimpleDateFormat;
-Landroid/icu/text/SimpleFormatter;
-Landroid/icu/text/SourceTargetUtility;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringComparator;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;
-Landroid/icu/text/SpoofChecker$Builder;
-Landroid/icu/text/SpoofChecker$CheckResult;
-Landroid/icu/text/SpoofChecker$ConfusableDataUtils;
-Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker$ScriptSet;
-Landroid/icu/text/SpoofChecker$SpoofData$DefaultData;
-Landroid/icu/text/SpoofChecker$SpoofData$IsAcceptable;
-Landroid/icu/text/SpoofChecker$SpoofData;
-Landroid/icu/text/SpoofChecker;
-Landroid/icu/text/StringCharacterIterator;
-Landroid/icu/text/StringMatcher;
-Landroid/icu/text/StringPrep$Values;
-Landroid/icu/text/StringPrep;
-Landroid/icu/text/StringPrepParseException;
-Landroid/icu/text/StringReplacer;
-Landroid/icu/text/StringSearch$CEBuffer;
-Landroid/icu/text/StringSearch$CEI;
-Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;
-Landroid/icu/text/StringSearch$CollationPCE$PCEI;
-Landroid/icu/text/StringSearch$CollationPCE$RCEBuffer;
-Landroid/icu/text/StringSearch$CollationPCE$RCEI;
-Landroid/icu/text/StringSearch$CollationPCE$Range;
-Landroid/icu/text/StringSearch$CollationPCE;
-Landroid/icu/text/StringSearch$Match;
-Landroid/icu/text/StringSearch$Pattern;
-Landroid/icu/text/StringSearch;
-Landroid/icu/text/StringTransform;
-Landroid/icu/text/SymbolTable;
-Landroid/icu/text/TimeUnitFormat$TimeUnitFormatSetupSink;
-Landroid/icu/text/TimeUnitFormat;
-Landroid/icu/text/TimeZoneFormat$1;
-Landroid/icu/text/TimeZoneFormat$GMTOffsetField;
-Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;
-Landroid/icu/text/TimeZoneFormat$OffsetFields;
-Landroid/icu/text/TimeZoneFormat$ParseOption;
-Landroid/icu/text/TimeZoneFormat$Style;
-Landroid/icu/text/TimeZoneFormat$TimeType;
-Landroid/icu/text/TimeZoneFormat$TimeZoneFormatCache;
-Landroid/icu/text/TimeZoneFormat;
-Landroid/icu/text/TimeZoneNames$Cache;
-Landroid/icu/text/TimeZoneNames$DefaultTimeZoneNames$FactoryImpl;
-Landroid/icu/text/TimeZoneNames$DefaultTimeZoneNames;
-Landroid/icu/text/TimeZoneNames$Factory;
-Landroid/icu/text/TimeZoneNames$MatchInfo;
-Landroid/icu/text/TimeZoneNames$NameType;
-Landroid/icu/text/TimeZoneNames;
-Landroid/icu/text/TitlecaseTransliterator$1;
-Landroid/icu/text/TitlecaseTransliterator$2;
-Landroid/icu/text/TitlecaseTransliterator;
-Landroid/icu/text/Transform;
-Landroid/icu/text/TransliterationRule;
-Landroid/icu/text/TransliterationRuleSet;
-Landroid/icu/text/Transliterator$Factory;
-Landroid/icu/text/Transliterator$Position;
-Landroid/icu/text/Transliterator;
-Landroid/icu/text/TransliteratorIDParser$SingleID;
-Landroid/icu/text/TransliteratorIDParser$Specs;
-Landroid/icu/text/TransliteratorIDParser;
-Landroid/icu/text/TransliteratorParser$ParseData;
-Landroid/icu/text/TransliteratorParser$RuleArray;
-Landroid/icu/text/TransliteratorParser$RuleBody;
-Landroid/icu/text/TransliteratorParser$RuleHalf;
-Landroid/icu/text/TransliteratorParser;
-Landroid/icu/text/TransliteratorRegistry$AliasEntry;
-Landroid/icu/text/TransliteratorRegistry$CompoundRBTEntry;
-Landroid/icu/text/TransliteratorRegistry$IDEnumeration;
-Landroid/icu/text/TransliteratorRegistry$LocaleEntry;
-Landroid/icu/text/TransliteratorRegistry$ResourceEntry;
-Landroid/icu/text/TransliteratorRegistry$Spec;
-Landroid/icu/text/TransliteratorRegistry;
-Landroid/icu/text/UCharacterIterator;
-Landroid/icu/text/UFieldPosition;
-Landroid/icu/text/UFormat$SpanField;
-Landroid/icu/text/UFormat;
-Landroid/icu/text/UForwardCharacterIterator;
-Landroid/icu/text/UTF16$StringComparator;
-Landroid/icu/text/UTF16;
-Landroid/icu/text/UnescapeTransliterator$1;
-Landroid/icu/text/UnescapeTransliterator$2;
-Landroid/icu/text/UnescapeTransliterator$3;
-Landroid/icu/text/UnescapeTransliterator$4;
-Landroid/icu/text/UnescapeTransliterator$5;
-Landroid/icu/text/UnescapeTransliterator$6;
-Landroid/icu/text/UnescapeTransliterator$7;
-Landroid/icu/text/UnescapeTransliterator;
-Landroid/icu/text/UnicodeCompressor;
-Landroid/icu/text/UnicodeDecompressor;
-Landroid/icu/text/UnicodeFilter;
-Landroid/icu/text/UnicodeMatcher;
-Landroid/icu/text/UnicodeNameTransliterator$1;
-Landroid/icu/text/UnicodeNameTransliterator;
-Landroid/icu/text/UnicodeReplacer;
-Landroid/icu/text/UnicodeSet$ComparisonStyle;
-Landroid/icu/text/UnicodeSet$EntryRange;
-Landroid/icu/text/UnicodeSet$EntryRangeIterable;
-Landroid/icu/text/UnicodeSet$EntryRangeIterator;
-Landroid/icu/text/UnicodeSet$Filter;
-Landroid/icu/text/UnicodeSet$GeneralCategoryMaskFilter;
-Landroid/icu/text/UnicodeSet$IntPropertyFilter;
-Landroid/icu/text/UnicodeSet$NumericValueFilter;
-Landroid/icu/text/UnicodeSet$ScriptExtensionsFilter;
-Landroid/icu/text/UnicodeSet$SpanCondition;
-Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;
-Landroid/icu/text/UnicodeSet$VersionFilter;
-Landroid/icu/text/UnicodeSet$XSymbolTable;
-Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/UnicodeSetIterator;
-Landroid/icu/text/UnicodeSetSpanner$CountMethod;
-Landroid/icu/text/UnicodeSetSpanner$TrimOption;
-Landroid/icu/text/UnicodeSetSpanner;
-Landroid/icu/text/UppercaseTransliterator$1;
-Landroid/icu/text/UppercaseTransliterator$2;
-Landroid/icu/text/UppercaseTransliterator;
-Landroid/icu/util/AnnualTimeZoneRule;
-Landroid/icu/util/BasicTimeZone$LocalOption;
-Landroid/icu/util/BasicTimeZone;
-Landroid/icu/util/BuddhistCalendar;
-Landroid/icu/util/ByteArrayWrapper;
-Landroid/icu/util/BytesTrie$Entry;
-Landroid/icu/util/BytesTrie$Iterator;
-Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrie$State;
-Landroid/icu/util/BytesTrie;
-Landroid/icu/util/BytesTrieBuilder$BytesAsCharSequence;
-Landroid/icu/util/BytesTrieBuilder;
-Landroid/icu/util/CECalendar;
-Landroid/icu/util/Calendar$1;
-Landroid/icu/util/Calendar$FormatConfiguration-IA;
-Landroid/icu/util/Calendar$FormatConfiguration;
-Landroid/icu/util/Calendar$PatternData;
-Landroid/icu/util/Calendar$WeekData;
-Landroid/icu/util/Calendar$WeekDataCache;
-Landroid/icu/util/Calendar;
-Landroid/icu/util/CaseInsensitiveString;
-Landroid/icu/util/CharsTrie$Entry;
-Landroid/icu/util/CharsTrie$Iterator;
-Landroid/icu/util/CharsTrie$State;
-Landroid/icu/util/CharsTrie;
-Landroid/icu/util/CharsTrieBuilder;
-Landroid/icu/util/ChineseCalendar;
-Landroid/icu/util/CodePointMap$Range;
-Landroid/icu/util/CodePointMap$RangeIterator;
-Landroid/icu/util/CodePointMap$RangeOption;
-Landroid/icu/util/CodePointMap$StringIterator;
-Landroid/icu/util/CodePointMap$ValueFilter;
-Landroid/icu/util/CodePointMap;
-Landroid/icu/util/CodePointTrie$Data-IA;
-Landroid/icu/util/CodePointTrie$Data16;
-Landroid/icu/util/CodePointTrie$Data32;
-Landroid/icu/util/CodePointTrie$Data8;
-Landroid/icu/util/CodePointTrie$Data;
-Landroid/icu/util/CodePointTrie$Fast$FastStringIterator;
-Landroid/icu/util/CodePointTrie$Fast-IA;
-Landroid/icu/util/CodePointTrie$Fast16;
-Landroid/icu/util/CodePointTrie$Fast32;
-Landroid/icu/util/CodePointTrie$Fast8;
-Landroid/icu/util/CodePointTrie$Fast;
-Landroid/icu/util/CodePointTrie$Small$SmallStringIterator;
-Landroid/icu/util/CodePointTrie$Small-IA;
-Landroid/icu/util/CodePointTrie$Small16;
-Landroid/icu/util/CodePointTrie$Small32;
-Landroid/icu/util/CodePointTrie$Small8;
-Landroid/icu/util/CodePointTrie$Small;
-Landroid/icu/util/CodePointTrie$Type;
-Landroid/icu/util/CodePointTrie$ValueWidth;
-Landroid/icu/util/CodePointTrie-IA;
-Landroid/icu/util/CodePointTrie;
-Landroid/icu/util/CompactByteArray;
-Landroid/icu/util/CompactCharArray;
-Landroid/icu/util/CopticCalendar;
-Landroid/icu/util/Currency$1;
-Landroid/icu/util/Currency$CurrencyNameResultHandler;
-Landroid/icu/util/Currency$CurrencyStringInfo;
-Landroid/icu/util/Currency$CurrencyUsage;
-Landroid/icu/util/Currency$ServiceShim;
-Landroid/icu/util/Currency;
-Landroid/icu/util/CurrencyAmount;
-Landroid/icu/util/CurrencyServiceShim$CFService$1CurrencyFactory;
-Landroid/icu/util/CurrencyServiceShim$CFService;
-Landroid/icu/util/CurrencyServiceShim;
-Landroid/icu/util/DangiCalendar;
-Landroid/icu/util/DateInterval;
-Landroid/icu/util/DateRule;
-Landroid/icu/util/DateTimeRule;
-Landroid/icu/util/EasterHoliday;
-Landroid/icu/util/EasterRule;
-Landroid/icu/util/EthiopicCalendar;
-Landroid/icu/util/Freezable;
-Landroid/icu/util/GenderInfo$Cache;
-Landroid/icu/util/GenderInfo$Gender;
-Landroid/icu/util/GenderInfo$ListGenderStyle;
-Landroid/icu/util/GenderInfo;
-Landroid/icu/util/GlobalizationPreferences;
-Landroid/icu/util/GregorianCalendar;
-Landroid/icu/util/HebrewCalendar;
-Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/Holiday;
-Landroid/icu/util/ICUCloneNotSupportedException;
-Landroid/icu/util/ICUException;
-Landroid/icu/util/ICUInputTooLongException;
-Landroid/icu/util/ICUUncheckedIOException;
-Landroid/icu/util/IllformedLocaleException;
-Landroid/icu/util/IndianCalendar;
-Landroid/icu/util/InitialTimeZoneRule;
-Landroid/icu/util/IslamicCalendar$CalculationType;
-Landroid/icu/util/IslamicCalendar;
-Landroid/icu/util/JapaneseCalendar;
-Landroid/icu/util/LocaleData$MeasurementSystem;
-Landroid/icu/util/LocaleData$PaperSize;
-Landroid/icu/util/LocaleData;
-Landroid/icu/util/LocaleMatcher$Builder;
-Landroid/icu/util/LocaleMatcher$Demotion;
-Landroid/icu/util/LocaleMatcher$Direction;
-Landroid/icu/util/LocaleMatcher$FavorSubtag;
-Landroid/icu/util/LocaleMatcher$LocaleLsrIterator;
-Landroid/icu/util/LocaleMatcher$LsrIterator;
-Landroid/icu/util/LocaleMatcher$Result;
-Landroid/icu/util/LocaleMatcher$ULocaleLsrIterator;
-Landroid/icu/util/LocaleMatcher;
-Landroid/icu/util/LocalePriorityList$1;
-Landroid/icu/util/LocalePriorityList$Builder;
-Landroid/icu/util/LocalePriorityList;
-Landroid/icu/util/Measure;
-Landroid/icu/util/MeasureUnit$1;
-Landroid/icu/util/MeasureUnit$2;
-Landroid/icu/util/MeasureUnit$3;
-Landroid/icu/util/MeasureUnit$Complexity;
-Landroid/icu/util/MeasureUnit$CurrencyNumericCodeSink;
-Landroid/icu/util/MeasureUnit$Factory;
-Landroid/icu/util/MeasureUnit$MeasurePrefix;
-Landroid/icu/util/MeasureUnit$MeasureUnitProxy;
-Landroid/icu/util/MeasureUnit$MeasureUnitSink;
-Landroid/icu/util/MeasureUnit;
-Landroid/icu/util/MutableCodePointTrie$1;
-Landroid/icu/util/MutableCodePointTrie$AllSameBlocks;
-Landroid/icu/util/MutableCodePointTrie$MixedBlocks-IA;
-Landroid/icu/util/MutableCodePointTrie$MixedBlocks;
-Landroid/icu/util/MutableCodePointTrie;
-Landroid/icu/util/NoUnit;
-Landroid/icu/util/Output;
-Landroid/icu/util/OutputInt;
-Landroid/icu/util/PersianCalendar;
-Landroid/icu/util/Range;
-Landroid/icu/util/RangeDateRule;
-Landroid/icu/util/RangeValueIterator$Element;
-Landroid/icu/util/RangeValueIterator;
-Landroid/icu/util/Region$RegionType;
-Landroid/icu/util/Region;
-Landroid/icu/util/RuleBasedTimeZone;
-Landroid/icu/util/STZInfo;
-Landroid/icu/util/SimpleDateRule;
-Landroid/icu/util/SimpleHoliday;
-Landroid/icu/util/SimpleTimeZone;
-Landroid/icu/util/StringTokenizer;
-Landroid/icu/util/StringTrieBuilder$BranchHeadNode;
-Landroid/icu/util/StringTrieBuilder$BranchNode;
-Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;
-Landroid/icu/util/StringTrieBuilder$IntermediateValueNode;
-Landroid/icu/util/StringTrieBuilder$LinearMatchNode;
-Landroid/icu/util/StringTrieBuilder$ListBranchNode;
-Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder$Option;
-Landroid/icu/util/StringTrieBuilder$SplitBranchNode;
-Landroid/icu/util/StringTrieBuilder$State;
-Landroid/icu/util/StringTrieBuilder$ValueNode;
-Landroid/icu/util/StringTrieBuilder;
-Landroid/icu/util/TaiwanCalendar;
-Landroid/icu/util/TimeArrayTimeZoneRule;
-Landroid/icu/util/TimeUnit;
-Landroid/icu/util/TimeUnitAmount;
-Landroid/icu/util/TimeZone$ConstantZone;
-Landroid/icu/util/TimeZone$SystemTimeZoneType;
-Landroid/icu/util/TimeZone;
-Landroid/icu/util/TimeZoneRule;
-Landroid/icu/util/TimeZoneTransition;
-Landroid/icu/util/ULocale$1;
-Landroid/icu/util/ULocale$2;
-Landroid/icu/util/ULocale$AliasReplacer;
-Landroid/icu/util/ULocale$AvailableType;
-Landroid/icu/util/ULocale$Builder;
-Landroid/icu/util/ULocale$Category;
-Landroid/icu/util/ULocale$JDKLocaleHelper;
-Landroid/icu/util/ULocale$Minimize;
-Landroid/icu/util/ULocale$Type;
-Landroid/icu/util/ULocale-IA;
-Landroid/icu/util/ULocale;
-Landroid/icu/util/UResourceBundle$RootType;
-Landroid/icu/util/UResourceBundle;
-Landroid/icu/util/UResourceBundleIterator;
-Landroid/icu/util/UResourceTypeMismatchException;
-Landroid/icu/util/UniversalTimeScale$TimeScaleData;
-Landroid/icu/util/UniversalTimeScale;
-Landroid/icu/util/VTimeZone;
-Landroid/icu/util/ValueIterator$Element;
-Landroid/icu/util/ValueIterator;
-Landroid/icu/util/VersionInfo;
-Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodImpl;
-Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl;
-Landroid/inputmethodservice/AbstractInputMethodService;
-Landroid/inputmethodservice/ExtractEditText;
-Landroid/inputmethodservice/IInputMethodSessionWrapper$ImeInputEventReceiver;
-Landroid/inputmethodservice/IInputMethodSessionWrapper;
-Landroid/inputmethodservice/IInputMethodWrapper$InputMethodSessionCallbackWrapper;
-Landroid/inputmethodservice/IInputMethodWrapper;
-Landroid/inputmethodservice/InputMethodService$InputMethodImpl;
-Landroid/inputmethodservice/InputMethodService$InputMethodSessionImpl;
-Landroid/inputmethodservice/InputMethodService$Insets;
-Landroid/inputmethodservice/InputMethodService$SettingsObserver;
-Landroid/inputmethodservice/InputMethodService;
-Landroid/inputmethodservice/SoftInputWindow;
-Landroid/internal/hidl/base/V1_0/DebugInfo;
-Landroid/internal/hidl/base/V1_0/IBase;
-Landroid/internal/hidl/manager/V1_0/IServiceManager;
-Landroid/internal/hidl/manager/V1_1/IServiceManager;
-Landroid/internal/hidl/manager/V1_2/IServiceManager$Stub;
-Landroid/internal/hidl/manager/V1_2/IServiceManager;
-Landroid/internal/hidl/safe_union/V1_0/Monostate;
-Landroid/internal/modules/utils/build/SdkLevel;
-Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda0;
-Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda10;
-Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda11;
-Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda12;
-Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda13;
-Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda14;
-Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda1;
-Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda2;
-Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda3;
-Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda4;
-Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda5;
-Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda6;
-Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda7;
-Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda8;
-Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda9;
-Landroid/internal/telephony/sysprop/TelephonyProperties;
-Landroid/location/Geofence$1;
-Landroid/location/Geofence;
-Landroid/location/IFusedGeofenceHardware$Stub$Proxy;
-Landroid/location/IFusedGeofenceHardware$Stub;
-Landroid/location/IFusedGeofenceHardware;
-Landroid/location/IGpsGeofenceHardware$Stub$Proxy;
-Landroid/location/IGpsGeofenceHardware$Stub;
-Landroid/location/IGpsGeofenceHardware;
-Landroid/location/Location$$ExternalSyntheticLambda0;
-Landroid/location/Location$1;
-Landroid/location/Location$BearingDistanceCache-IA;
-Landroid/location/Location$BearingDistanceCache;
-Landroid/location/Location;
-Landroid/location/LocationTime$1;
-Landroid/location/LocationTime;
-Landroid/media/AudioAttributes$1;
-Landroid/media/AudioAttributes$Builder;
-Landroid/media/AudioAttributes-IA;
-Landroid/media/AudioAttributes;
-Landroid/media/AudioDescriptor$1;
-Landroid/media/AudioDescriptor;
-Landroid/media/AudioDeviceAttributes$1;
-Landroid/media/AudioDeviceAttributes;
-Landroid/media/AudioDeviceCallback;
-Landroid/media/AudioDeviceInfo;
-Landroid/media/AudioDevicePort;
-Landroid/media/AudioDevicePortConfig;
-Landroid/media/AudioDeviceVolumeManager;
-Landroid/media/AudioFocusInfo$1;
-Landroid/media/AudioFocusInfo;
-Landroid/media/AudioFocusRequest$Builder;
-Landroid/media/AudioFocusRequest-IA;
-Landroid/media/AudioFocusRequest;
-Landroid/media/AudioFormat$1;
-Landroid/media/AudioFormat$Builder;
-Landroid/media/AudioFormat-IA;
-Landroid/media/AudioFormat;
-Landroid/media/AudioGain;
-Landroid/media/AudioGainConfig;
-Landroid/media/AudioHandle;
-Landroid/media/AudioManager$1;
-Landroid/media/AudioManager$2;
-Landroid/media/AudioManager$3;
-Landroid/media/AudioManager$4;
-Landroid/media/AudioManager$AudioPlaybackCallback;
-Landroid/media/AudioManager$AudioPlaybackCallbackInfo;
-Landroid/media/AudioManager$AudioRecordingCallback;
-Landroid/media/AudioManager$AudioRecordingCallbackInfo;
-Landroid/media/AudioManager$BlockingFocusResultReceiver;
-Landroid/media/AudioManager$DevRoleListeners-IA;
-Landroid/media/AudioManager$DevRoleListeners;
-Landroid/media/AudioManager$FocusRequestInfo;
-Landroid/media/AudioManager$NativeEventHandlerDelegate$1;
-Landroid/media/AudioManager$NativeEventHandlerDelegate;
-Landroid/media/AudioManager$OnAmPortUpdateListener-IA;
-Landroid/media/AudioManager$OnAmPortUpdateListener;
-Landroid/media/AudioManager$OnAudioFocusChangeListener;
-Landroid/media/AudioManager$OnAudioPortUpdateListener;
-Landroid/media/AudioManager$OnModeChangedListener;
-Landroid/media/AudioManager$PlaybackConfigChangeCallbackData;
-Landroid/media/AudioManager$RecordConfigChangeCallbackData;
-Landroid/media/AudioManager$SafeWaitObject-IA;
-Landroid/media/AudioManager$SafeWaitObject;
-Landroid/media/AudioManager$ServiceEventHandlerDelegate$1;
-Landroid/media/AudioManager$ServiceEventHandlerDelegate;
-Landroid/media/AudioManager;
-Landroid/media/AudioManagerInternal$RingerModeDelegate;
-Landroid/media/AudioManagerInternal;
-Landroid/media/AudioMetadata$2;
-Landroid/media/AudioMetadata$3;
-Landroid/media/AudioMetadata$4;
-Landroid/media/AudioMetadata$5;
-Landroid/media/AudioMetadata$6;
-Landroid/media/AudioMetadata$BaseMap;
-Landroid/media/AudioMetadata$BaseMapPackage;
-Landroid/media/AudioMetadata$DataPackage;
-Landroid/media/AudioMetadata$ObjectPackage;
-Landroid/media/AudioMetadata;
-Landroid/media/AudioMetadataMap;
-Landroid/media/AudioMetadataReadMap;
-Landroid/media/AudioMixCallbackFlag;
-Landroid/media/AudioMixPort;
-Landroid/media/AudioMixPortConfig;
-Landroid/media/AudioMixerAttributes$1;
-Landroid/media/AudioMixerAttributes;
-Landroid/media/AudioPatch;
-Landroid/media/AudioPlaybackConfiguration$1;
-Landroid/media/AudioPlaybackConfiguration$IPlayerShell;
-Landroid/media/AudioPlaybackConfiguration$PlayerDeathMonitor;
-Landroid/media/AudioPlaybackConfiguration;
-Landroid/media/AudioPort$$ExternalSyntheticLambda0;
-Landroid/media/AudioPort;
-Landroid/media/AudioPortConfig;
-Landroid/media/AudioPortEventHandler$1;
-Landroid/media/AudioPortEventHandler;
-Landroid/media/AudioPresentation$1;
-Landroid/media/AudioPresentation;
-Landroid/media/AudioProfile$1;
-Landroid/media/AudioProfile;
-Landroid/media/AudioRecord$NativeEventHandler;
-Landroid/media/AudioRecord$OnRecordPositionUpdateListener;
-Landroid/media/AudioRecord;
-Landroid/media/AudioRecordRoutingProxy;
-Landroid/media/AudioRecordingConfiguration$1;
-Landroid/media/AudioRecordingConfiguration;
-Landroid/media/AudioRecordingMonitor;
-Landroid/media/AudioRecordingMonitorClient;
-Landroid/media/AudioRecordingMonitorImpl$1;
-Landroid/media/AudioRecordingMonitorImpl;
-Landroid/media/AudioRoutesInfo$1;
-Landroid/media/AudioRoutesInfo;
-Landroid/media/AudioRouting;
-Landroid/media/AudioSystem$AudioRecordingCallback;
-Landroid/media/AudioSystem$DynamicPolicyCallback;
-Landroid/media/AudioSystem$ErrorCallback;
-Landroid/media/AudioSystem;
-Landroid/media/AudioTimestamp$1;
-Landroid/media/AudioTimestamp;
-Landroid/media/AudioTrack$1;
-Landroid/media/AudioTrack$NativePositionEventHandlerDelegate;
-Landroid/media/AudioTrack$TunerConfiguration;
-Landroid/media/AudioTrack;
-Landroid/media/AudioTrackRoutingProxy;
-Landroid/media/CallbackUtil$DispatcherStub;
-Landroid/media/CallbackUtil$LazyListenerManager$$ExternalSyntheticLambda0;
-Landroid/media/CallbackUtil$LazyListenerManager;
-Landroid/media/CallbackUtil$ListenerInfo;
-Landroid/media/CallbackUtil;
-Landroid/media/CamcorderProfile;
-Landroid/media/CameraProfile;
-Landroid/media/DecoderCapabilities;
-Landroid/media/DeniedByServerException;
-Landroid/media/DrmInitData$SchemeInitData;
-Landroid/media/DrmInitData;
-Landroid/media/EncoderCapabilities;
-Landroid/media/ExifInterface$ByteOrderedDataInputStream;
-Landroid/media/ExifInterface$ByteOrderedDataOutputStream;
-Landroid/media/ExifInterface$ExifAttribute;
-Landroid/media/ExifInterface$ExifTag;
-Landroid/media/ExifInterface$Rational;
-Landroid/media/ExifInterface;
-Landroid/media/ExifInterfaceUtils;
-Landroid/media/ExternalRingtonesCursorWrapper;
-Landroid/media/IAudioFocusDispatcher$Stub$Proxy;
-Landroid/media/IAudioFocusDispatcher$Stub;
-Landroid/media/IAudioFocusDispatcher;
-Landroid/media/IAudioModeDispatcher;
-Landroid/media/IAudioRoutesObserver$Stub$Proxy;
-Landroid/media/IAudioRoutesObserver$Stub;
-Landroid/media/IAudioRoutesObserver;
-Landroid/media/IAudioServerStateDispatcher$Stub$Proxy;
-Landroid/media/IAudioServerStateDispatcher$Stub;
-Landroid/media/IAudioServerStateDispatcher;
-Landroid/media/IAudioService$Stub$Proxy;
-Landroid/media/IAudioService$Stub;
-Landroid/media/IAudioService;
-Landroid/media/ICapturePresetDevicesRoleDispatcher$Stub$Proxy;
-Landroid/media/ICapturePresetDevicesRoleDispatcher$Stub;
-Landroid/media/ICapturePresetDevicesRoleDispatcher;
-Landroid/media/ICommunicationDeviceDispatcher$Stub;
-Landroid/media/ICommunicationDeviceDispatcher;
-Landroid/media/IMediaHTTPConnection$Stub;
-Landroid/media/IMediaHTTPConnection;
-Landroid/media/IMediaHTTPService$Stub;
-Landroid/media/IMediaHTTPService;
-Landroid/media/IMediaResourceMonitor$Stub;
-Landroid/media/IMediaResourceMonitor;
-Landroid/media/IMediaRoute2ProviderService$Stub$Proxy;
-Landroid/media/IMediaRoute2ProviderService$Stub;
-Landroid/media/IMediaRoute2ProviderService;
-Landroid/media/IMediaRoute2ProviderServiceCallback$Stub;
-Landroid/media/IMediaRoute2ProviderServiceCallback;
-Landroid/media/IMediaRouter2$Stub$Proxy;
-Landroid/media/IMediaRouter2$Stub;
-Landroid/media/IMediaRouter2;
-Landroid/media/IMediaRouter2Manager$Stub$Proxy;
-Landroid/media/IMediaRouter2Manager$Stub;
-Landroid/media/IMediaRouter2Manager;
-Landroid/media/IMediaRouterClient$Stub$Proxy;
-Landroid/media/IMediaRouterClient$Stub;
-Landroid/media/IMediaRouterClient;
-Landroid/media/IMediaRouterService$Stub$Proxy;
-Landroid/media/IMediaRouterService$Stub;
-Landroid/media/IMediaRouterService;
-Landroid/media/INearbyMediaDevicesProvider;
-Landroid/media/IPlaybackConfigDispatcher$Stub$Proxy;
-Landroid/media/IPlaybackConfigDispatcher$Stub;
-Landroid/media/IPlaybackConfigDispatcher;
-Landroid/media/IPlayer$Stub$Proxy;
-Landroid/media/IPlayer$Stub;
-Landroid/media/IPlayer;
-Landroid/media/IRecordingConfigDispatcher$Stub$Proxy;
-Landroid/media/IRecordingConfigDispatcher$Stub;
-Landroid/media/IRecordingConfigDispatcher;
-Landroid/media/IRemoteSessionCallback$Stub;
-Landroid/media/IRemoteSessionCallback;
-Landroid/media/IRemoteVolumeObserver$Stub;
-Landroid/media/IRemoteVolumeObserver;
-Landroid/media/IRingtonePlayer$Stub$Proxy;
-Landroid/media/IRingtonePlayer$Stub;
-Landroid/media/IRingtonePlayer;
-Landroid/media/IStrategyPreferredDevicesDispatcher$Stub$Proxy;
-Landroid/media/IStrategyPreferredDevicesDispatcher$Stub;
-Landroid/media/IStrategyPreferredDevicesDispatcher;
-Landroid/media/IVolumeController$Stub$Proxy;
-Landroid/media/IVolumeController$Stub;
-Landroid/media/IVolumeController;
-Landroid/media/Image$Plane;
-Landroid/media/Image;
-Landroid/media/ImageReader$ImagePlane;
-Landroid/media/ImageReader$ListenerHandler;
-Landroid/media/ImageReader$OnImageAvailableListener;
-Landroid/media/ImageReader$SurfaceImage$SurfacePlane;
-Landroid/media/ImageReader$SurfaceImage;
-Landroid/media/ImageReader;
-Landroid/media/ImageUtils;
-Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane;
-Landroid/media/ImageWriter$WriterSurfaceImage;
-Landroid/media/ImageWriter;
-Landroid/media/JetPlayer;
-Landroid/media/MediaCodec$BufferInfo;
-Landroid/media/MediaCodec$BufferMap$CodecBuffer-IA;
-Landroid/media/MediaCodec$BufferMap$CodecBuffer;
-Landroid/media/MediaCodec$BufferMap-IA;
-Landroid/media/MediaCodec$BufferMap;
-Landroid/media/MediaCodec$Callback;
-Landroid/media/MediaCodec$CodecException;
-Landroid/media/MediaCodec$CryptoException;
-Landroid/media/MediaCodec$CryptoInfo$Pattern;
-Landroid/media/MediaCodec$CryptoInfo;
-Landroid/media/MediaCodec$EventHandler;
-Landroid/media/MediaCodec$IncompatibleWithBlockModelException;
-Landroid/media/MediaCodec$InvalidBufferFlagsException;
-Landroid/media/MediaCodec$LinearBlock;
-Landroid/media/MediaCodec$OnFrameRenderedListener;
-Landroid/media/MediaCodec$OutputFrame;
-Landroid/media/MediaCodec$ParameterDescriptor;
-Landroid/media/MediaCodec$PersistentSurface;
-Landroid/media/MediaCodec$QueueRequest;
-Landroid/media/MediaCodec;
-Landroid/media/MediaCodecInfo$AudioCapabilities;
-Landroid/media/MediaCodecInfo$CodecCapabilities$FeatureList;
-Landroid/media/MediaCodecInfo$CodecCapabilities;
-Landroid/media/MediaCodecInfo$CodecProfileLevel;
-Landroid/media/MediaCodecInfo$EncoderCapabilities;
-Landroid/media/MediaCodecInfo$Feature;
-Landroid/media/MediaCodecInfo$LazyHolder;
-Landroid/media/MediaCodecInfo$VideoCapabilities$$ExternalSyntheticLambda0;
-Landroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;
-Landroid/media/MediaCodecInfo$VideoCapabilities;
-Landroid/media/MediaCodecInfo;
-Landroid/media/MediaCodecList;
-Landroid/media/MediaCrypto;
-Landroid/media/MediaCryptoException;
-Landroid/media/MediaDataSource;
-Landroid/media/MediaDescrambler;
-Landroid/media/MediaDescription$1;
-Landroid/media/MediaDescription$Builder;
-Landroid/media/MediaDescription-IA;
-Landroid/media/MediaDescription;
-Landroid/media/MediaDrm$Certificate;
-Landroid/media/MediaDrm$CryptoSession;
-Landroid/media/MediaDrm$KeyRequest;
-Landroid/media/MediaDrm$KeyStatus;
-Landroid/media/MediaDrm$ListenerWithExecutor;
-Landroid/media/MediaDrm$LogMessage;
-Landroid/media/MediaDrm$MediaDrmStateException;
-Landroid/media/MediaDrm$OnEventListener;
-Landroid/media/MediaDrm$ProvisionRequest;
-Landroid/media/MediaDrm$SessionException;
-Landroid/media/MediaDrm;
-Landroid/media/MediaDrmException;
-Landroid/media/MediaDrmThrowable;
-Landroid/media/MediaExtractor;
-Landroid/media/MediaFile;
-Landroid/media/MediaFormat;
-Landroid/media/MediaFrameworkPlatformInitializer$$ExternalSyntheticLambda0;
-Landroid/media/MediaFrameworkPlatformInitializer;
-Landroid/media/MediaHTTPConnection;
-Landroid/media/MediaHTTPService;
-Landroid/media/MediaMetadata$1;
-Landroid/media/MediaMetadata$Builder;
-Landroid/media/MediaMetadata-IA;
-Landroid/media/MediaMetadata;
-Landroid/media/MediaMetadataRetriever$BitmapParams;
-Landroid/media/MediaMetadataRetriever;
-Landroid/media/MediaMetrics$1;
-Landroid/media/MediaMetrics$Item;
-Landroid/media/MediaMetrics$Key;
-Landroid/media/MediaMetrics$Property;
-Landroid/media/MediaMetrics;
-Landroid/media/MediaMuxer;
-Landroid/media/MediaPlayer$1;
-Landroid/media/MediaPlayer$2$1;
-Landroid/media/MediaPlayer$2;
-Landroid/media/MediaPlayer$3;
-Landroid/media/MediaPlayer$6;
-Landroid/media/MediaPlayer$7;
-Landroid/media/MediaPlayer$DrmInfo-IA;
-Landroid/media/MediaPlayer$DrmInfo;
-Landroid/media/MediaPlayer$EventHandler$$ExternalSyntheticLambda0;
-Landroid/media/MediaPlayer$EventHandler$1;
-Landroid/media/MediaPlayer$EventHandler$2;
-Landroid/media/MediaPlayer$EventHandler;
-Landroid/media/MediaPlayer$OnBufferingUpdateListener;
-Landroid/media/MediaPlayer$OnCompletionListener;
-Landroid/media/MediaPlayer$OnDrmConfigHelper;
-Landroid/media/MediaPlayer$OnDrmInfoHandlerDelegate;
-Landroid/media/MediaPlayer$OnDrmPreparedHandlerDelegate;
-Landroid/media/MediaPlayer$OnErrorListener;
-Landroid/media/MediaPlayer$OnInfoListener;
-Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener;
-Landroid/media/MediaPlayer$OnPreparedListener;
-Landroid/media/MediaPlayer$OnRtpRxNoticeListener;
-Landroid/media/MediaPlayer$OnSeekCompleteListener;
-Landroid/media/MediaPlayer$OnSubtitleDataListener;
-Landroid/media/MediaPlayer$OnTimedMetaDataAvailableListener;
-Landroid/media/MediaPlayer$OnTimedTextListener;
-Landroid/media/MediaPlayer$OnVideoSizeChangedListener;
-Landroid/media/MediaPlayer$ProvisioningThread;
-Landroid/media/MediaPlayer$TimeProvider$EventHandler;
-Landroid/media/MediaPlayer$TimeProvider;
-Landroid/media/MediaPlayer$TrackInfo$1;
-Landroid/media/MediaPlayer$TrackInfo;
-Landroid/media/MediaPlayer;
-Landroid/media/MediaRecorder;
-Landroid/media/MediaRoute2Info$1;
-Landroid/media/MediaRoute2Info$Builder;
-Landroid/media/MediaRoute2Info;
-Landroid/media/MediaRoute2ProviderInfo$1;
-Landroid/media/MediaRoute2ProviderInfo$Builder;
-Landroid/media/MediaRoute2ProviderInfo;
-Landroid/media/MediaRouter$Callback;
-Landroid/media/MediaRouter$CallbackInfo;
-Landroid/media/MediaRouter$RouteCategory;
-Landroid/media/MediaRouter$RouteGroup;
-Landroid/media/MediaRouter$RouteInfo$1;
-Landroid/media/MediaRouter$RouteInfo;
-Landroid/media/MediaRouter$SimpleCallback;
-Landroid/media/MediaRouter$Static$1$1;
-Landroid/media/MediaRouter$Static$1;
-Landroid/media/MediaRouter$Static$Client$$ExternalSyntheticLambda0;
-Landroid/media/MediaRouter$Static$Client$$ExternalSyntheticLambda1;
-Landroid/media/MediaRouter$Static$Client$1;
-Landroid/media/MediaRouter$Static$Client;
-Landroid/media/MediaRouter$Static;
-Landroid/media/MediaRouter$UserRouteInfo$SessionVolumeProvider;
-Landroid/media/MediaRouter$UserRouteInfo;
-Landroid/media/MediaRouter$VolumeCallback;
-Landroid/media/MediaRouter$VolumeCallbackInfo;
-Landroid/media/MediaRouter$VolumeChangeReceiver;
-Landroid/media/MediaRouter$WifiDisplayStatusChangedReceiver;
-Landroid/media/MediaRouter2$$ExternalSyntheticLambda7;
-Landroid/media/MediaRouter2$$ExternalSyntheticLambda8;
-Landroid/media/MediaRouter2Manager$Callback;
-Landroid/media/MediaRouter2Manager$CallbackRecord;
-Landroid/media/MediaRouter2Manager$Client$$ExternalSyntheticLambda5;
-Landroid/media/MediaRouter2Manager$Client;
-Landroid/media/MediaRouter2Manager$TransferRequest;
-Landroid/media/MediaRouter2Manager;
-Landroid/media/MediaRouter2Utils;
-Landroid/media/MediaRouter;
-Landroid/media/MediaRouterClientState$1;
-Landroid/media/MediaRouterClientState$RouteInfo$1;
-Landroid/media/MediaRouterClientState$RouteInfo;
-Landroid/media/MediaRouterClientState;
-Landroid/media/MediaScanner;
-Landroid/media/MediaScannerConnection$MediaScannerConnectionClient;
-Landroid/media/MediaScannerConnection$OnScanCompletedListener;
-Landroid/media/MediaServiceManager$ServiceRegisterer;
-Landroid/media/MediaServiceManager;
-Landroid/media/MediaSync;
-Landroid/media/MediaTimeProvider$OnMediaTimeListener;
-Landroid/media/MediaTimeProvider;
-Landroid/media/MediaTimestamp;
-Landroid/media/MicrophoneDirection;
-Landroid/media/MicrophoneInfo$Coordinate3F;
-Landroid/media/MicrophoneInfo;
-Landroid/media/NativeRoutingEventHandlerDelegate;
-Landroid/media/NotProvisionedException;
-Landroid/media/PlaybackParams$1;
-Landroid/media/PlaybackParams;
-Landroid/media/PlayerBase$IPlayerWrapper;
-Landroid/media/PlayerBase$PlayerIdCard$1;
-Landroid/media/PlayerBase$PlayerIdCard;
-Landroid/media/PlayerBase;
-Landroid/media/PublicFormatUtils;
-Landroid/media/Rating$1;
-Landroid/media/Rating;
-Landroid/media/RemoteControlClient;
-Landroid/media/RemoteDisplay;
-Landroid/media/ResampleInputStream;
-Landroid/media/ResourceBusyException;
-Landroid/media/Ringtone;
-Landroid/media/RingtoneManager;
-Landroid/media/RouteDiscoveryPreference$1;
-Landroid/media/RouteDiscoveryPreference$Builder$$ExternalSyntheticLambda0;
-Landroid/media/RouteDiscoveryPreference$Builder;
-Landroid/media/RouteDiscoveryPreference;
-Landroid/media/RouteListingPreference$1;
-Landroid/media/RouteListingPreference;
-Landroid/media/RoutingSessionInfo$1;
-Landroid/media/RoutingSessionInfo$Builder;
-Landroid/media/RoutingSessionInfo;
-Landroid/media/SoundPool$Builder;
-Landroid/media/SoundPool$EventHandler;
-Landroid/media/SoundPool$OnLoadCompleteListener;
-Landroid/media/SoundPool-IA;
-Landroid/media/SoundPool;
-Landroid/media/Spatializer;
-Landroid/media/SubtitleController$1;
-Landroid/media/SubtitleController$2;
-Landroid/media/SubtitleController$Anchor;
-Landroid/media/SubtitleController$Listener;
-Landroid/media/SubtitleController;
-Landroid/media/SubtitleData;
-Landroid/media/SubtitleTrack$RenderingWidget;
-Landroid/media/SubtitleTrack;
-Landroid/media/SyncParams;
-Landroid/media/ThumbnailUtils$Resizer;
-Landroid/media/ThumbnailUtils$SizedThumbnailBitmap;
-Landroid/media/ThumbnailUtils;
-Landroid/media/TimedMetaData;
-Landroid/media/TimedText;
-Landroid/media/ToneGenerator;
-Landroid/media/UnsupportedSchemeException;
-Landroid/media/Utils$1;
-Landroid/media/Utils$2;
-Landroid/media/Utils$ListenerList;
-Landroid/media/Utils;
-Landroid/media/VolumeAutomation;
-Landroid/media/VolumePolicy$1;
-Landroid/media/VolumePolicy;
-Landroid/media/VolumeProvider$Callback;
-Landroid/media/VolumeProvider;
-Landroid/media/VolumeShaper$Configuration$1;
-Landroid/media/VolumeShaper$Configuration$Builder;
-Landroid/media/VolumeShaper$Configuration;
-Landroid/media/VolumeShaper$Operation$1;
-Landroid/media/VolumeShaper$Operation$Builder;
-Landroid/media/VolumeShaper$Operation;
-Landroid/media/VolumeShaper$State$1;
-Landroid/media/VolumeShaper$State;
-Landroid/media/VolumeShaper;
-Landroid/media/audio/Flags;
-Landroid/media/audio/common/AidlConversion;
-Landroid/media/audio/common/HeadTracking$SensorData$Tag;
-Landroid/media/audiofx/AudioEffect$Descriptor;
-Landroid/media/audiofx/AudioEffect;
-Landroid/media/audiofx/DefaultEffect;
-Landroid/media/audiofx/SourceDefaultEffect;
-Landroid/media/audiofx/StreamDefaultEffect;
-Landroid/media/audiofx/Visualizer$MeasurementPeakRms;
-Landroid/media/audiofx/Visualizer;
-Landroid/media/audiopolicy/AudioMix$1;
-Landroid/media/audiopolicy/AudioMix$Builder;
-Landroid/media/audiopolicy/AudioMix;
-Landroid/media/audiopolicy/AudioMixingRule$1;
-Landroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion$1;
-Landroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion;
-Landroid/media/audiopolicy/AudioMixingRule$Builder;
-Landroid/media/audiopolicy/AudioMixingRule;
-Landroid/media/audiopolicy/AudioPolicy$1;
-Landroid/media/audiopolicy/AudioPolicy$AudioPolicyStatusListener;
-Landroid/media/audiopolicy/AudioPolicy$EventHandler;
-Landroid/media/audiopolicy/AudioPolicy;
-Landroid/media/audiopolicy/AudioPolicyConfig$1;
-Landroid/media/audiopolicy/AudioPolicyConfig;
-Landroid/media/audiopolicy/AudioProductStrategy$1;
-Landroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup$1;
-Landroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;
-Landroid/media/audiopolicy/AudioProductStrategy;
-Landroid/media/audiopolicy/AudioVolumeGroup$1;
-Landroid/media/audiopolicy/AudioVolumeGroup;
-Landroid/media/audiopolicy/AudioVolumeGroupChangeHandler;
-Landroid/media/audiopolicy/IAudioPolicyCallback$Stub$Proxy;
-Landroid/media/audiopolicy/IAudioPolicyCallback$Stub;
-Landroid/media/audiopolicy/IAudioPolicyCallback;
-Landroid/media/browse/MediaBrowser$1;
-Landroid/media/browse/MediaBrowser$2;
-Landroid/media/browse/MediaBrowser$6;
-Landroid/media/browse/MediaBrowser$7;
-Landroid/media/browse/MediaBrowser$8;
-Landroid/media/browse/MediaBrowser$ConnectionCallback;
-Landroid/media/browse/MediaBrowser$MediaItem$1;
-Landroid/media/browse/MediaBrowser$MediaItem;
-Landroid/media/browse/MediaBrowser$MediaServiceConnection$1;
-Landroid/media/browse/MediaBrowser$MediaServiceConnection-IA;
-Landroid/media/browse/MediaBrowser$MediaServiceConnection;
-Landroid/media/browse/MediaBrowser$ServiceCallbacks;
-Landroid/media/browse/MediaBrowser$Subscription;
-Landroid/media/browse/MediaBrowser$SubscriptionCallback;
-Landroid/media/browse/MediaBrowser;
-Landroid/media/browse/MediaBrowserUtils;
-Landroid/media/metrics/Event;
-Landroid/media/metrics/IMediaMetricsManager$Stub$Proxy;
-Landroid/media/metrics/IMediaMetricsManager$Stub;
-Landroid/media/metrics/IMediaMetricsManager;
-Landroid/media/metrics/LogSessionId;
-Landroid/media/metrics/MediaMetricsManager;
-Landroid/media/metrics/NetworkEvent$1;
-Landroid/media/metrics/NetworkEvent;
-Landroid/media/metrics/PlaybackSession;
-Landroid/media/midi/IMidiDeviceListener$Stub$Proxy;
-Landroid/media/midi/IMidiDeviceListener$Stub;
-Landroid/media/midi/IMidiDeviceListener;
-Landroid/media/midi/IMidiDeviceOpenCallback$Stub$Proxy;
-Landroid/media/midi/IMidiDeviceOpenCallback$Stub;
-Landroid/media/midi/IMidiDeviceOpenCallback;
-Landroid/media/midi/IMidiDeviceServer$Stub$Proxy;
-Landroid/media/midi/IMidiDeviceServer$Stub;
-Landroid/media/midi/IMidiDeviceServer;
-Landroid/media/midi/IMidiManager$Stub;
-Landroid/media/midi/IMidiManager;
-Landroid/media/midi/MidiDevice;
-Landroid/media/midi/MidiDeviceInfo$1;
-Landroid/media/midi/MidiDeviceInfo;
-Landroid/media/midi/MidiDeviceStatus$1;
-Landroid/media/midi/MidiDeviceStatus;
-Landroid/media/midi/MidiManager;
-Landroid/media/musicrecognition/IMusicRecognitionManager$Stub;
-Landroid/media/musicrecognition/IMusicRecognitionManager;
-Landroid/media/musicrecognition/IMusicRecognitionServiceCallback$Stub;
-Landroid/media/musicrecognition/IMusicRecognitionServiceCallback;
-Landroid/media/musicrecognition/MusicRecognitionManager;
-Landroid/media/permission/ClearCallingIdentityContext;
-Landroid/media/permission/CompositeSafeCloseable;
-Landroid/media/permission/Identity$1;
-Landroid/media/permission/Identity;
-Landroid/media/permission/IdentityContext;
-Landroid/media/permission/PermissionUtil;
-Landroid/media/permission/SafeCloseable;
-Landroid/media/projection/IMediaProjection$Stub$Proxy;
-Landroid/media/projection/IMediaProjection$Stub;
-Landroid/media/projection/IMediaProjection;
-Landroid/media/projection/IMediaProjectionManager$Stub$Proxy;
-Landroid/media/projection/IMediaProjectionManager$Stub;
-Landroid/media/projection/IMediaProjectionManager;
-Landroid/media/projection/IMediaProjectionWatcherCallback$Stub$Proxy;
-Landroid/media/projection/IMediaProjectionWatcherCallback$Stub;
-Landroid/media/projection/IMediaProjectionWatcherCallback;
-Landroid/media/projection/MediaProjection;
-Landroid/media/projection/MediaProjectionInfo$1;
-Landroid/media/projection/MediaProjectionInfo;
-Landroid/media/projection/MediaProjectionManager$Callback;
-Landroid/media/projection/MediaProjectionManager$CallbackDelegate;
-Landroid/media/projection/MediaProjectionManager;
-Landroid/media/session/IActiveSessionsListener$Stub$Proxy;
-Landroid/media/session/IActiveSessionsListener$Stub;
-Landroid/media/session/IActiveSessionsListener;
-Landroid/media/session/IOnMediaKeyEventDispatchedListener$Stub$Proxy;
-Landroid/media/session/IOnMediaKeyEventDispatchedListener$Stub;
-Landroid/media/session/IOnMediaKeyEventDispatchedListener;
-Landroid/media/session/IOnMediaKeyEventSessionChangedListener$Stub$Proxy;
-Landroid/media/session/IOnMediaKeyEventSessionChangedListener$Stub;
-Landroid/media/session/IOnMediaKeyEventSessionChangedListener;
-Landroid/media/session/IOnMediaKeyListener$Stub$Proxy;
-Landroid/media/session/IOnMediaKeyListener$Stub;
-Landroid/media/session/IOnMediaKeyListener;
-Landroid/media/session/IOnVolumeKeyLongPressListener$Stub$Proxy;
-Landroid/media/session/IOnVolumeKeyLongPressListener$Stub;
-Landroid/media/session/IOnVolumeKeyLongPressListener;
-Landroid/media/session/ISession$Stub$Proxy;
-Landroid/media/session/ISession$Stub;
-Landroid/media/session/ISession2TokensListener$Stub$Proxy;
-Landroid/media/session/ISession2TokensListener$Stub;
-Landroid/media/session/ISession2TokensListener;
-Landroid/media/session/ISession;
-Landroid/media/session/ISessionCallback$Stub$Proxy;
-Landroid/media/session/ISessionCallback$Stub;
-Landroid/media/session/ISessionCallback;
-Landroid/media/session/ISessionController$Stub$Proxy;
-Landroid/media/session/ISessionController$Stub;
-Landroid/media/session/ISessionController;
-Landroid/media/session/ISessionControllerCallback$Stub$Proxy;
-Landroid/media/session/ISessionControllerCallback$Stub;
-Landroid/media/session/ISessionControllerCallback;
-Landroid/media/session/ISessionManager$Stub$Proxy;
-Landroid/media/session/ISessionManager$Stub;
-Landroid/media/session/ISessionManager;
-Landroid/media/session/MediaController$Callback;
-Landroid/media/session/MediaController$CallbackStub;
-Landroid/media/session/MediaController$MessageHandler;
-Landroid/media/session/MediaController$PlaybackInfo$1;
-Landroid/media/session/MediaController$PlaybackInfo;
-Landroid/media/session/MediaController$TransportControls-IA;
-Landroid/media/session/MediaController$TransportControls;
-Landroid/media/session/MediaController;
-Landroid/media/session/MediaSession$Callback;
-Landroid/media/session/MediaSession$CallbackMessageHandler;
-Landroid/media/session/MediaSession$CallbackStub;
-Landroid/media/session/MediaSession$QueueItem$1;
-Landroid/media/session/MediaSession$QueueItem;
-Landroid/media/session/MediaSession$Token$1;
-Landroid/media/session/MediaSession$Token;
-Landroid/media/session/MediaSession;
-Landroid/media/session/MediaSessionLegacyHelper;
-Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;
-Landroid/media/session/MediaSessionManager$OnMediaKeyEventDispatchedListener;
-Landroid/media/session/MediaSessionManager$OnMediaKeyEventDispatchedListenerStub-IA;
-Landroid/media/session/MediaSessionManager$OnMediaKeyEventDispatchedListenerStub;
-Landroid/media/session/MediaSessionManager$OnMediaKeyEventSessionChangedListener;
-Landroid/media/session/MediaSessionManager$OnMediaKeyEventSessionChangedListenerStub-IA;
-Landroid/media/session/MediaSessionManager$OnMediaKeyEventSessionChangedListenerStub;
-Landroid/media/session/MediaSessionManager$OnMediaKeyListener;
-Landroid/media/session/MediaSessionManager$OnMediaKeyListenerImpl;
-Landroid/media/session/MediaSessionManager$OnSession2TokensChangedListener;
-Landroid/media/session/MediaSessionManager$OnVolumeKeyLongPressListener;
-Landroid/media/session/MediaSessionManager$OnVolumeKeyLongPressListenerImpl;
-Landroid/media/session/MediaSessionManager$RemoteSessionCallbackStub-IA;
-Landroid/media/session/MediaSessionManager$RemoteSessionCallbackStub;
-Landroid/media/session/MediaSessionManager$RemoteUserInfo;
-Landroid/media/session/MediaSessionManager$Session2TokensChangedWrapper;
-Landroid/media/session/MediaSessionManager$SessionsChangedWrapper$1$$ExternalSyntheticLambda0;
-Landroid/media/session/MediaSessionManager$SessionsChangedWrapper$1;
-Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;
-Landroid/media/session/MediaSessionManager;
-Landroid/media/session/ParcelableListBinder;
-Landroid/media/session/PlaybackState$1;
-Landroid/media/session/PlaybackState$Builder;
-Landroid/media/session/PlaybackState$CustomAction$1;
-Landroid/media/session/PlaybackState$CustomAction-IA;
-Landroid/media/session/PlaybackState$CustomAction;
-Landroid/media/session/PlaybackState-IA;
-Landroid/media/session/PlaybackState;
-Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient$Stub;
-Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient;
-Landroid/media/soundtrigger/SoundTriggerManager;
-Landroid/media/soundtrigger_middleware/ISoundTriggerCallback$Stub$Proxy;
-Landroid/media/soundtrigger_middleware/ISoundTriggerCallback$Stub;
-Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;
-Landroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService$Stub$Proxy;
-Landroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService$Stub;
-Landroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService;
-Landroid/media/soundtrigger_middleware/ISoundTriggerModule$Stub;
-Landroid/media/soundtrigger_middleware/ISoundTriggerModule;
-Landroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor$1;
-Landroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor;
-Landroid/media/tv/TvInputHardwareInfo$Builder;
-Landroid/media/tv/TvInputManager;
-Landroid/media/tv/TvStreamConfig$1;
-Landroid/media/tv/TvStreamConfig$Builder;
-Landroid/media/tv/TvStreamConfig;
-Landroid/media/tv/ad/TvAdManager;
-Landroid/media/tv/interactive/TvInteractiveAppManager;
-Landroid/media/tv/tuner/filter/FilterEvent;
-Landroid/media/tv/tuner/filter/RestartEvent;
-Landroid/media/tv/tunerresourcemanager/TunerResourceManager;
-Landroid/metrics/LogMaker;
-Landroid/metrics/MetricsReader$Event;
-Landroid/metrics/MetricsReader$LogReader;
-Landroid/metrics/MetricsReader;
-Landroid/mtp/MtpDatabase$1;
-Landroid/mtp/MtpDatabase$2;
-Landroid/mtp/MtpDatabase;
-Landroid/mtp/MtpDevice;
-Landroid/mtp/MtpDeviceInfo;
-Landroid/mtp/MtpEvent;
-Landroid/mtp/MtpObjectInfo;
-Landroid/mtp/MtpPropertyGroup;
-Landroid/mtp/MtpPropertyList;
-Landroid/mtp/MtpServer;
-Landroid/mtp/MtpStorage;
-Landroid/mtp/MtpStorageInfo;
-Landroid/mtp/MtpStorageManager$MtpNotifier;
-Landroid/mtp/MtpStorageManager$MtpObject;
-Landroid/mtp/MtpStorageManager;
-Landroid/multiuser/FeatureFlags;
-Landroid/multiuser/FeatureFlagsImpl;
-Landroid/multiuser/Flags;
-Landroid/net/ConnectivityMetricsEvent$1;
-Landroid/net/ConnectivityMetricsEvent;
-Landroid/net/Credentials;
-Landroid/net/EventLogTags;
-Landroid/net/IIpConnectivityMetrics$Stub$Proxy;
-Landroid/net/IIpConnectivityMetrics$Stub;
-Landroid/net/IIpConnectivityMetrics;
-Landroid/net/INetdEventCallback$Stub$Proxy;
-Landroid/net/INetdEventCallback$Stub;
-Landroid/net/INetdEventCallback;
-Landroid/net/INetworkManagementEventObserver$Stub$Proxy;
-Landroid/net/INetworkManagementEventObserver$Stub;
-Landroid/net/INetworkManagementEventObserver;
-Landroid/net/INetworkPolicyListener$Stub;
-Landroid/net/INetworkPolicyListener;
-Landroid/net/INetworkPolicyManager$Stub$Proxy;
-Landroid/net/INetworkPolicyManager$Stub;
-Landroid/net/INetworkPolicyManager;
-Landroid/net/INetworkRecommendationProvider$Stub$Proxy;
-Landroid/net/INetworkRecommendationProvider$Stub;
-Landroid/net/INetworkRecommendationProvider;
-Landroid/net/INetworkScoreCache$Stub$Proxy;
-Landroid/net/INetworkScoreCache$Stub;
-Landroid/net/INetworkScoreCache;
-Landroid/net/INetworkScoreService$Stub$Proxy;
-Landroid/net/INetworkScoreService$Stub;
-Landroid/net/INetworkScoreService;
-Landroid/net/IVpnManager$Stub$Proxy;
-Landroid/net/IVpnManager$Stub;
-Landroid/net/IVpnManager;
-Landroid/net/InterfaceConfiguration$1;
-Landroid/net/InterfaceConfiguration;
-Landroid/net/LocalServerSocket;
-Landroid/net/LocalSocket;
-Landroid/net/LocalSocketAddress$Namespace;
-Landroid/net/LocalSocketAddress;
-Landroid/net/LocalSocketImpl$SocketInputStream;
-Landroid/net/LocalSocketImpl;
-Landroid/net/MatchAllNetworkSpecifier$1;
-Landroid/net/MatchAllNetworkSpecifier;
-Landroid/net/NetworkKey$1;
-Landroid/net/NetworkKey-IA;
-Landroid/net/NetworkKey;
-Landroid/net/NetworkPolicy$1;
-Landroid/net/NetworkPolicy;
-Landroid/net/NetworkPolicyManager$1;
-Landroid/net/NetworkPolicyManager$Listener;
-Landroid/net/NetworkPolicyManager$SubscriptionCallback;
-Landroid/net/NetworkPolicyManager$SubscriptionCallbackProxy;
-Landroid/net/NetworkPolicyManager;
-Landroid/net/NetworkQuotaInfo$1;
-Landroid/net/NetworkQuotaInfo;
-Landroid/net/NetworkRecommendationProvider$ServiceWrapper$1;
-Landroid/net/NetworkRecommendationProvider$ServiceWrapper;
-Landroid/net/NetworkRecommendationProvider;
-Landroid/net/NetworkScoreManager$NetworkScoreCallback;
-Landroid/net/NetworkScoreManager$NetworkScoreCallbackProxy;
-Landroid/net/NetworkScoreManager;
-Landroid/net/NetworkScorerAppData$1;
-Landroid/net/NetworkScorerAppData;
-Landroid/net/NetworkSpecifier;
-Landroid/net/NetworkStack;
-Landroid/net/NetworkWatchlistManager;
-Landroid/net/PacProxyManager;
-Landroid/net/PacProxySelector;
-Landroid/net/PrivateDnsConnectivityChecker;
-Landroid/net/Proxy;
-Landroid/net/RssiCurve$1;
-Landroid/net/RssiCurve;
-Landroid/net/SSLCertificateSocketFactory$1;
-Landroid/net/SSLCertificateSocketFactory;
-Landroid/net/SSLSessionCache;
-Landroid/net/ScoredNetwork$1;
-Landroid/net/ScoredNetwork;
-Landroid/net/SntpClient$InvalidServerReplyException;
-Landroid/net/SntpClient;
-Landroid/net/StringNetworkSpecifier$1;
-Landroid/net/StringNetworkSpecifier;
-Landroid/net/TelephonyNetworkSpecifier$1;
-Landroid/net/TelephonyNetworkSpecifier$Builder;
-Landroid/net/TelephonyNetworkSpecifier;
-Landroid/net/Uri$1;
-Landroid/net/Uri$AbstractHierarchicalUri-IA;
-Landroid/net/Uri$AbstractHierarchicalUri;
-Landroid/net/Uri$AbstractPart;
-Landroid/net/Uri$Builder;
-Landroid/net/Uri$HierarchicalUri-IA;
-Landroid/net/Uri$NotCachedHolder;
-Landroid/net/Uri$OpaqueUri-IA;
-Landroid/net/Uri$Part$EmptyPart;
-Landroid/net/Uri$Part;
-Landroid/net/Uri$PathPart;
-Landroid/net/Uri$PathSegmentsBuilder;
-Landroid/net/Uri$StringUri-IA;
-Landroid/net/Uri-IA;
-Landroid/net/Uri;
-Landroid/net/UriCodec;
-Landroid/net/VpnManager;
-Landroid/net/WebAddress;
-Landroid/net/WifiKey$1;
-Landroid/net/WifiKey-IA;
-Landroid/net/WifiKey;
-Landroid/net/http/HttpResponseCache;
-Landroid/net/http/SslCertificate;
-Landroid/net/http/X509TrustManagerExtensions;
-Landroid/net/metrics/ApfProgramEvent$1;
-Landroid/net/metrics/ApfProgramEvent$Decoder;
-Landroid/net/metrics/ApfProgramEvent;
-Landroid/net/metrics/ApfStats$1;
-Landroid/net/metrics/ApfStats;
-Landroid/net/metrics/ConnectStats;
-Landroid/net/metrics/DefaultNetworkEvent;
-Landroid/net/metrics/DhcpClientEvent$1;
-Landroid/net/metrics/DhcpClientEvent;
-Landroid/net/metrics/DhcpErrorEvent$1;
-Landroid/net/metrics/DhcpErrorEvent$Decoder;
-Landroid/net/metrics/DhcpErrorEvent;
-Landroid/net/metrics/DnsEvent;
-Landroid/net/metrics/IpConnectivityLog$Event;
-Landroid/net/metrics/IpConnectivityLog;
-Landroid/net/metrics/IpManagerEvent$1;
-Landroid/net/metrics/IpManagerEvent$Decoder;
-Landroid/net/metrics/IpManagerEvent;
-Landroid/net/metrics/IpReachabilityEvent$1;
-Landroid/net/metrics/IpReachabilityEvent$Decoder;
-Landroid/net/metrics/IpReachabilityEvent;
-Landroid/net/metrics/NetworkEvent$1;
-Landroid/net/metrics/NetworkEvent$Decoder;
-Landroid/net/metrics/NetworkEvent;
-Landroid/net/metrics/NetworkMetrics$Metrics;
-Landroid/net/metrics/NetworkMetrics$Summary;
-Landroid/net/metrics/NetworkMetrics;
-Landroid/net/metrics/RaEvent$1;
-Landroid/net/metrics/RaEvent;
-Landroid/net/metrics/ValidationProbeEvent$1;
-Landroid/net/metrics/ValidationProbeEvent$Decoder;
-Landroid/net/metrics/ValidationProbeEvent;
-Landroid/net/metrics/WakeupEvent;
-Landroid/net/metrics/WakeupStats;
-Landroid/net/rtp/AudioCodec;
-Landroid/net/rtp/AudioGroup;
-Landroid/net/rtp/AudioStream;
-Landroid/net/rtp/RtpStream;
-Landroid/net/sip/ISipService$Default;
-Landroid/net/sip/ISipService$Stub$Proxy;
-Landroid/net/sip/ISipService$Stub;
-Landroid/net/sip/ISipService;
-Landroid/net/sip/ISipSession$Default;
-Landroid/net/sip/ISipSession$Stub$Proxy;
-Landroid/net/sip/ISipSession$Stub;
-Landroid/net/sip/ISipSession;
-Landroid/net/sip/ISipSessionListener$Default;
-Landroid/net/sip/ISipSessionListener$Stub$Proxy;
-Landroid/net/sip/ISipSessionListener$Stub;
-Landroid/net/sip/ISipSessionListener;
-Landroid/net/sip/SimpleSessionDescription$Fields;
-Landroid/net/sip/SimpleSessionDescription$Media;
-Landroid/net/sip/SimpleSessionDescription;
-Landroid/net/sip/SipAudioCall$1;
-Landroid/net/sip/SipAudioCall$Listener;
-Landroid/net/sip/SipAudioCall;
-Landroid/net/sip/SipErrorCode;
-Landroid/net/sip/SipException;
-Landroid/net/sip/SipManager$ListenerRelay;
-Landroid/net/sip/SipManager;
-Landroid/net/sip/SipProfile$1;
-Landroid/net/sip/SipProfile$Builder;
-Landroid/net/sip/SipProfile;
-Landroid/net/sip/SipRegistrationListener;
-Landroid/net/sip/SipSession$1;
-Landroid/net/sip/SipSession$Listener;
-Landroid/net/sip/SipSession$State;
-Landroid/net/sip/SipSession;
-Landroid/net/sip/SipSessionAdapter;
-Landroid/net/util/SocketUtils;
-Landroid/net/vcn/VcnManager$VcnNetworkPolicyChangeListener;
-Landroid/net/vcn/VcnManager$VcnUnderlyingNetworkPolicyListener;
-Landroid/net/vcn/VcnManager;
-Landroid/net/vcn/VcnNetworkPolicyResult$1;
-Landroid/net/vcn/VcnNetworkPolicyResult;
-Landroid/net/vcn/VcnTransportInfo$1;
-Landroid/net/vcn/VcnTransportInfo-IA;
-Landroid/net/vcn/VcnTransportInfo;
-Landroid/net/vcn/VcnUnderlyingNetworkPolicy$1;
-Landroid/net/vcn/VcnUnderlyingNetworkPolicy;
-Landroid/net/wifi/SoftApConfToXmlMigrationUtil;
-Landroid/net/wifi/WifiMigration$1;
-Landroid/net/wifi/WifiMigration;
-Landroid/net/wifi/WifiNetworkScoreCache$CacheListener$1;
-Landroid/net/wifi/WifiNetworkScoreCache$CacheListener;
-Landroid/net/wifi/WifiNetworkScoreCache;
-Landroid/net/wifi/nl80211/ChannelSettings$1;
-Landroid/net/wifi/nl80211/ChannelSettings;
-Landroid/net/wifi/nl80211/DeviceWiphyCapabilities$1;
-Landroid/net/wifi/nl80211/DeviceWiphyCapabilities;
-Landroid/net/wifi/nl80211/HiddenNetwork$1;
-Landroid/net/wifi/nl80211/HiddenNetwork;
-Landroid/net/wifi/nl80211/IClientInterface$Stub$Proxy;
-Landroid/net/wifi/nl80211/IClientInterface$Stub;
-Landroid/net/wifi/nl80211/IClientInterface;
-Landroid/net/wifi/nl80211/IPnoScanEvent$Stub;
-Landroid/net/wifi/nl80211/IPnoScanEvent;
-Landroid/net/wifi/nl80211/IScanEvent$Stub;
-Landroid/net/wifi/nl80211/IScanEvent;
-Landroid/net/wifi/nl80211/IWifiScannerImpl$Stub$Proxy;
-Landroid/net/wifi/nl80211/IWifiScannerImpl$Stub;
-Landroid/net/wifi/nl80211/IWifiScannerImpl;
-Landroid/net/wifi/nl80211/IWificond$Stub$Proxy;
-Landroid/net/wifi/nl80211/IWificond$Stub;
-Landroid/net/wifi/nl80211/IWificond;
-Landroid/net/wifi/nl80211/NativeScanResult$1;
-Landroid/net/wifi/nl80211/NativeScanResult;
-Landroid/net/wifi/nl80211/RadioChainInfo$1;
-Landroid/net/wifi/nl80211/RadioChainInfo;
-Landroid/net/wifi/nl80211/SingleScanSettings$1;
-Landroid/net/wifi/nl80211/SingleScanSettings;
-Landroid/net/wifi/nl80211/WifiNl80211Manager$PnoScanEventHandler;
-Landroid/net/wifi/nl80211/WifiNl80211Manager$ScanEventCallback;
-Landroid/net/wifi/nl80211/WifiNl80211Manager$ScanEventHandler;
-Landroid/net/wifi/nl80211/WifiNl80211Manager$SignalPollResult;
-Landroid/net/wifi/nl80211/WifiNl80211Manager;
-Landroid/net/wifi/sharedconnectivity/app/SharedConnectivityManager;
-Landroid/nfc/NfcFrameworkInitializer$$ExternalSyntheticLambda0;
-Landroid/nfc/NfcFrameworkInitializer;
-Landroid/nfc/NfcManager;
-Landroid/nfc/NfcServiceManager$ServiceRegisterer;
-Landroid/nfc/NfcServiceManager;
-Landroid/nfc/cardemulation/AidGroup$1;
-Landroid/nfc/cardemulation/AidGroup;
-Landroid/nfc/cardemulation/ApduServiceInfo$1;
-Landroid/nfc/cardemulation/ApduServiceInfo;
-Landroid/opengl/EGL14;
-Landroid/opengl/EGL15;
-Landroid/opengl/EGLConfig;
-Landroid/opengl/EGLContext;
-Landroid/opengl/EGLDisplay;
-Landroid/opengl/EGLExt;
-Landroid/opengl/EGLImage;
-Landroid/opengl/EGLLogWrapper;
-Landroid/opengl/EGLObjectHandle;
-Landroid/opengl/EGLSurface;
-Landroid/opengl/EGLSync;
-Landroid/opengl/ETC1;
-Landroid/opengl/GLES10;
-Landroid/opengl/GLES10Ext;
-Landroid/opengl/GLES11;
-Landroid/opengl/GLES11Ext;
-Landroid/opengl/GLES20;
-Landroid/opengl/GLES30;
-Landroid/opengl/GLES31;
-Landroid/opengl/GLES31Ext;
-Landroid/opengl/GLES32;
-Landroid/opengl/GLException;
-Landroid/opengl/GLSurfaceView$BaseConfigChooser;
-Landroid/opengl/GLSurfaceView$ComponentSizeChooser;
-Landroid/opengl/GLSurfaceView$DefaultContextFactory;
-Landroid/opengl/GLSurfaceView$DefaultWindowSurfaceFactory;
-Landroid/opengl/GLSurfaceView$EGLConfigChooser;
-Landroid/opengl/GLSurfaceView$EGLContextFactory;
-Landroid/opengl/GLSurfaceView$EGLWindowSurfaceFactory;
-Landroid/opengl/GLSurfaceView$EglHelper;
-Landroid/opengl/GLSurfaceView$GLThread;
-Landroid/opengl/GLSurfaceView$GLThreadManager;
-Landroid/opengl/GLSurfaceView$Renderer;
-Landroid/opengl/GLSurfaceView$SimpleEGLConfigChooser;
-Landroid/opengl/GLSurfaceView;
-Landroid/opengl/GLUtils;
-Landroid/opengl/Matrix$1;
-Landroid/opengl/Matrix;
-Landroid/opengl/Visibility;
-Landroid/os/AppZygote;
-Landroid/os/AsyncResult;
-Landroid/os/AsyncTask$1;
-Landroid/os/AsyncTask$2;
-Landroid/os/AsyncTask$3;
-Landroid/os/AsyncTask$4;
-Landroid/os/AsyncTask$AsyncTaskResult;
-Landroid/os/AsyncTask$InternalHandler;
-Landroid/os/AsyncTask$SerialExecutor$1;
-Landroid/os/AsyncTask$SerialExecutor;
-Landroid/os/AsyncTask$Status;
-Landroid/os/AsyncTask$WorkerRunnable-IA;
-Landroid/os/AsyncTask$WorkerRunnable;
-Landroid/os/AsyncTask;
-Landroid/os/BadParcelableException;
-Landroid/os/BadTypeParcelableException;
-Landroid/os/BaseBundle$NoImagePreloadHolder;
-Landroid/os/BaseBundle;
-Landroid/os/BatteryConsumer$Dimensions;
-Landroid/os/BatteryConsumer$Key;
-Landroid/os/BatteryConsumer;
-Landroid/os/BatteryManager;
-Landroid/os/BatteryManagerInternal;
-Landroid/os/BatteryProperty$1;
-Landroid/os/BatteryProperty;
-Landroid/os/BatterySaverPolicyConfig$1;
-Landroid/os/BatterySaverPolicyConfig;
-Landroid/os/BatteryStats$$ExternalSyntheticLambda0;
-Landroid/os/BatteryStats$$ExternalSyntheticLambda1;
-Landroid/os/BatteryStats$1;
-Landroid/os/BatteryStats$BitDescription;
-Landroid/os/BatteryStats$ControllerActivityCounter;
-Landroid/os/BatteryStats$Counter;
-Landroid/os/BatteryStats$DailyItem;
-Landroid/os/BatteryStats$HistoryEventTracker;
-Landroid/os/BatteryStats$HistoryItem;
-Landroid/os/BatteryStats$HistoryPrinter;
-Landroid/os/BatteryStats$HistoryStepDetails;
-Landroid/os/BatteryStats$HistoryTag;
-Landroid/os/BatteryStats$IntToString;
-Landroid/os/BatteryStats$LevelStepTracker;
-Landroid/os/BatteryStats$LongCounter;
-Landroid/os/BatteryStats$LongCounterArray;
-Landroid/os/BatteryStats$PackageChange;
-Landroid/os/BatteryStats$Timer;
-Landroid/os/BatteryStats$TimerEntry;
-Landroid/os/BatteryStats$Uid$Pid;
-Landroid/os/BatteryStats$Uid$Pkg$Serv;
-Landroid/os/BatteryStats$Uid$Pkg;
-Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;
-Landroid/os/BatteryStats$Uid$Proc;
-Landroid/os/BatteryStats$Uid$Sensor;
-Landroid/os/BatteryStats$Uid$Wakelock;
-Landroid/os/BatteryStats$Uid;
-Landroid/os/BatteryStats;
-Landroid/os/BatteryStatsManager;
-Landroid/os/BatteryUsageStats$1;
-Landroid/os/BatteryUsageStats;
-Landroid/os/BatteryUsageStatsQuery$1;
-Landroid/os/BatteryUsageStatsQuery$Builder;
-Landroid/os/BatteryUsageStatsQuery;
-Landroid/os/BestClock;
-Landroid/os/Binder$$ExternalSyntheticLambda0;
-Landroid/os/Binder$$ExternalSyntheticLambda1;
-Landroid/os/Binder$NoImagePreloadHolder;
-Landroid/os/Binder$PropagateWorkSourceTransactListener;
-Landroid/os/Binder$ProxyTransactListener;
-Landroid/os/Binder;
-Landroid/os/BinderProxy$BinderProxyMapSizeException;
-Landroid/os/BinderProxy$NoImagePreloadHolder;
-Landroid/os/BinderProxy$ProxyMap;
-Landroid/os/BluetoothServiceManager$ServiceRegisterer;
-Landroid/os/BluetoothServiceManager;
-Landroid/os/BugreportManager;
-Landroid/os/Build$$ExternalSyntheticLambda0;
-Landroid/os/Build$VERSION;
-Landroid/os/Build;
-Landroid/os/Bundle$1;
-Landroid/os/Bundle;
-Landroid/os/CancellationSignal$OnCancelListener;
-Landroid/os/CancellationSignal$Transport-IA;
-Landroid/os/CancellationSignal$Transport;
-Landroid/os/CancellationSignal;
-Landroid/os/CarrierAssociatedAppEntry$1;
-Landroid/os/CarrierAssociatedAppEntry;
-Landroid/os/ChildZygoteProcess;
-Landroid/os/CombinedVibration$1;
-Landroid/os/CombinedVibration$Mono$1;
-Landroid/os/CombinedVibration$Mono;
-Landroid/os/CombinedVibration;
-Landroid/os/ConditionVariable;
-Landroid/os/CoolingDevice$1;
-Landroid/os/CoolingDevice;
-Landroid/os/CountDownTimer$1;
-Landroid/os/CountDownTimer;
-Landroid/os/CpuUsageInfo$1;
-Landroid/os/CpuUsageInfo;
-Landroid/os/CreateAppDataArgs$1;
-Landroid/os/CreateAppDataArgs;
-Landroid/os/CreateAppDataResult$1;
-Landroid/os/CreateAppDataResult;
-Landroid/os/DdmSyncStageUpdater;
-Landroid/os/DdmSyncState$Stage;
-Landroid/os/DdmSyncState;
-Landroid/os/DeadObjectException;
-Landroid/os/DeadSystemException;
-Landroid/os/Debug$MemoryInfo$1;
-Landroid/os/Debug$MemoryInfo-IA;
-Landroid/os/Debug$MemoryInfo;
-Landroid/os/Debug;
-Landroid/os/DeviceIdleManager;
-Landroid/os/DropBoxManager$Entry$1;
-Landroid/os/DropBoxManager$Entry;
-Landroid/os/DropBoxManager;
-Landroid/os/Environment$UserEnvironment;
-Landroid/os/Environment;
-Landroid/os/EventLogTags;
-Landroid/os/ExternalVibration$1;
-Landroid/os/ExternalVibration;
-Landroid/os/FabricatedOverlayInfo$1;
-Landroid/os/FabricatedOverlayInfo;
-Landroid/os/FabricatedOverlayInternal$1;
-Landroid/os/FabricatedOverlayInternal;
-Landroid/os/FabricatedOverlayInternalEntry$1;
-Landroid/os/FabricatedOverlayInternalEntry;
-Landroid/os/FactoryTest;
-Landroid/os/FileBridge$FileBridgeOutputStream;
-Landroid/os/FileBridge;
-Landroid/os/FileObserver$ObserverThread;
-Landroid/os/FileObserver;
-Landroid/os/FileUtils$$ExternalSyntheticLambda0;
-Landroid/os/FileUtils$$ExternalSyntheticLambda1;
-Landroid/os/FileUtils$$ExternalSyntheticLambda2;
-Landroid/os/FileUtils$$ExternalSyntheticLambda3;
-Landroid/os/FileUtils$$ExternalSyntheticLambda4;
-Landroid/os/FileUtils$$ExternalSyntheticLambda5;
-Landroid/os/FileUtils$1;
-Landroid/os/FileUtils$ProgressListener;
-Landroid/os/FileUtils;
-Landroid/os/GraphicsEnvironment$1;
-Landroid/os/GraphicsEnvironment;
-Landroid/os/Handler$BlockingRunnable;
-Landroid/os/Handler$Callback;
-Landroid/os/Handler$MessengerImpl-IA;
-Landroid/os/Handler$MessengerImpl;
-Landroid/os/Handler;
-Landroid/os/HandlerExecutor;
-Landroid/os/HandlerThread;
-Landroid/os/HardwarePropertiesManager;
-Landroid/os/HidlMemory;
-Landroid/os/HidlMemoryUtil;
-Landroid/os/HidlSupport$Mutable;
-Landroid/os/HidlSupport;
-Landroid/os/HwBinder;
-Landroid/os/HwBlob;
-Landroid/os/HwNoService;
-Landroid/os/HwParcel;
-Landroid/os/HwRemoteBinder;
-Landroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;
-Landroid/os/IBatteryPropertiesRegistrar$Stub;
-Landroid/os/IBatteryPropertiesRegistrar;
-Landroid/os/IBinder$DeathRecipient;
-Landroid/os/IBinder;
-Landroid/os/IBinderCallback;
-Landroid/os/ICancellationSignal$Stub$Proxy;
-Landroid/os/ICancellationSignal$Stub;
-Landroid/os/ICancellationSignal;
-Landroid/os/IDeviceIdentifiersPolicyService$Stub$Proxy;
-Landroid/os/IDeviceIdentifiersPolicyService$Stub;
-Landroid/os/IDeviceIdentifiersPolicyService;
-Landroid/os/IDeviceIdleController$Stub$Proxy;
-Landroid/os/IDeviceIdleController$Stub;
-Landroid/os/IDeviceIdleController;
-Landroid/os/IDumpstate$Stub$Proxy;
-Landroid/os/IDumpstate$Stub;
-Landroid/os/IDumpstate;
-Landroid/os/IDumpstateListener$Stub$Proxy;
-Landroid/os/IDumpstateListener$Stub;
-Landroid/os/IDumpstateListener;
-Landroid/os/IExternalVibratorService$Stub;
-Landroid/os/IExternalVibratorService;
-Landroid/os/IHardwarePropertiesManager$Stub$Proxy;
-Landroid/os/IHardwarePropertiesManager$Stub;
-Landroid/os/IHardwarePropertiesManager;
-Landroid/os/IHintManager$Stub$Proxy;
-Landroid/os/IHintManager$Stub;
-Landroid/os/IHintManager;
-Landroid/os/IHintSession$Stub$Proxy;
-Landroid/os/IHintSession$Stub;
-Landroid/os/IHintSession;
-Landroid/os/IHwBinder$DeathRecipient;
-Landroid/os/IHwBinder;
-Landroid/os/IHwInterface;
-Landroid/os/IIncidentAuthListener$Stub$Proxy;
-Landroid/os/IIncidentAuthListener$Stub;
-Landroid/os/IIncidentAuthListener;
-Landroid/os/IIncidentCompanion$Stub$Proxy;
-Landroid/os/IIncidentCompanion$Stub;
-Landroid/os/IIncidentCompanion;
-Landroid/os/IIncidentManager$Stub$Proxy;
-Landroid/os/IIncidentManager$Stub;
-Landroid/os/IIncidentManager;
-Landroid/os/IInstalld$Stub$Proxy;
-Landroid/os/IInstalld$Stub;
-Landroid/os/IInstalld;
-Landroid/os/IInterface;
-Landroid/os/IMessenger$Stub$Proxy;
-Landroid/os/IMessenger$Stub;
-Landroid/os/IMessenger;
-Landroid/os/INetworkManagementService$Stub$Proxy;
-Landroid/os/INetworkManagementService$Stub;
-Landroid/os/INetworkManagementService;
-Landroid/os/IPermissionController$Stub;
-Landroid/os/IPermissionController;
-Landroid/os/IPowerManager$LowPowerStandbyPolicy$1;
-Landroid/os/IPowerManager$LowPowerStandbyPolicy;
-Landroid/os/IPowerManager$LowPowerStandbyPortDescription$1;
-Landroid/os/IPowerManager$LowPowerStandbyPortDescription;
-Landroid/os/IPowerManager$Stub$Proxy;
-Landroid/os/IPowerManager$Stub;
-Landroid/os/IPowerManager;
-Landroid/os/IProcessInfoService$Stub;
-Landroid/os/IProcessInfoService;
-Landroid/os/IProgressListener$Stub$Proxy;
-Landroid/os/IProgressListener$Stub;
-Landroid/os/IProgressListener;
-Landroid/os/IRecoverySystem$Stub;
-Landroid/os/IRecoverySystem;
-Landroid/os/IRecoverySystemProgressListener$Stub$Proxy;
-Landroid/os/IRecoverySystemProgressListener$Stub;
-Landroid/os/IRecoverySystemProgressListener;
-Landroid/os/IRemoteCallback$Stub$Proxy;
-Landroid/os/IRemoteCallback$Stub;
-Landroid/os/IRemoteCallback;
-Landroid/os/ISchedulingPolicyService$Stub;
-Landroid/os/ISchedulingPolicyService;
-Landroid/os/IServiceManager$Stub$Proxy;
-Landroid/os/IServiceManager$Stub;
-Landroid/os/IServiceManager;
-Landroid/os/IStoraged$Stub$Proxy;
-Landroid/os/IStoraged$Stub;
-Landroid/os/IStoraged;
-Landroid/os/ISystemConfig$Stub$Proxy;
-Landroid/os/ISystemConfig$Stub;
-Landroid/os/ISystemConfig;
-Landroid/os/ISystemUpdateManager$Stub$Proxy;
-Landroid/os/ISystemUpdateManager$Stub;
-Landroid/os/ISystemUpdateManager;
-Landroid/os/IThermalEventListener$Stub$Proxy;
-Landroid/os/IThermalEventListener$Stub;
-Landroid/os/IThermalEventListener;
-Landroid/os/IThermalService$Stub$Proxy;
-Landroid/os/IThermalService$Stub;
-Landroid/os/IThermalService;
-Landroid/os/IThermalStatusListener$Stub$Proxy;
-Landroid/os/IThermalStatusListener$Stub;
-Landroid/os/IThermalStatusListener;
-Landroid/os/IUpdateEngine$Stub$Proxy;
-Landroid/os/IUpdateEngine$Stub;
-Landroid/os/IUpdateEngine;
-Landroid/os/IUpdateEngineCallback$Stub;
-Landroid/os/IUpdateEngineCallback;
-Landroid/os/IUpdateLock$Stub;
-Landroid/os/IUpdateLock;
-Landroid/os/IUserManager$Stub$Proxy;
-Landroid/os/IUserManager$Stub;
-Landroid/os/IUserManager;
-Landroid/os/IUserRestrictionsListener$Stub$Proxy;
-Landroid/os/IUserRestrictionsListener$Stub;
-Landroid/os/IUserRestrictionsListener;
-Landroid/os/IVibratorManagerService$Stub$Proxy;
-Landroid/os/IVibratorManagerService$Stub;
-Landroid/os/IVibratorManagerService;
-Landroid/os/IVibratorStateListener$Stub$Proxy;
-Landroid/os/IVibratorStateListener$Stub;
-Landroid/os/IVibratorStateListener;
-Landroid/os/IVold$Stub$Proxy;
-Landroid/os/IVold$Stub;
-Landroid/os/IVold;
-Landroid/os/IVoldListener$Stub;
-Landroid/os/IVoldListener;
-Landroid/os/IVoldMountCallback$Stub;
-Landroid/os/IVoldMountCallback;
-Landroid/os/IVoldTaskListener$Stub$Proxy;
-Landroid/os/IVoldTaskListener$Stub;
-Landroid/os/IVoldTaskListener;
-Landroid/os/IWakeLockCallback$Stub$Proxy;
-Landroid/os/IWakeLockCallback$Stub;
-Landroid/os/IWakeLockCallback;
-Landroid/os/IncidentManager$IncidentReport$1;
-Landroid/os/IncidentManager$IncidentReport;
-Landroid/os/IncidentManager;
-Landroid/os/IpcDataCache$Config;
-Landroid/os/IpcDataCache$QueryHandler;
-Landroid/os/IpcDataCache$RemoteCall;
-Landroid/os/IpcDataCache$SystemServerCallHandler;
-Landroid/os/IpcDataCache;
-Landroid/os/LimitExceededException;
-Landroid/os/LocaleList$1;
-Landroid/os/LocaleList;
-Landroid/os/Looper$Observer;
-Landroid/os/Looper;
-Landroid/os/MemoryFile;
-Landroid/os/Message$1;
-Landroid/os/Message;
-Landroid/os/MessageQueue$FileDescriptorRecord;
-Landroid/os/MessageQueue$IdleHandler;
-Landroid/os/MessageQueue$OnFileDescriptorEventListener;
-Landroid/os/MessageQueue;
-Landroid/os/Messenger$1;
-Landroid/os/Messenger;
-Landroid/os/NativeHandle;
-Landroid/os/NetworkOnMainThreadException;
-Landroid/os/NullVibrator;
-Landroid/os/OperationCanceledException;
-Landroid/os/OutcomeReceiver;
-Landroid/os/PackageTagsList$1;
-Landroid/os/PackageTagsList;
-Landroid/os/Parcel$1;
-Landroid/os/Parcel$LazyValue;
-Landroid/os/Parcel$ReadWriteHelper;
-Landroid/os/Parcel$SquashReadHelper;
-Landroid/os/Parcel;
-Landroid/os/ParcelDuration$1;
-Landroid/os/ParcelDuration;
-Landroid/os/ParcelFileDescriptor$1;
-Landroid/os/ParcelFileDescriptor$2;
-Landroid/os/ParcelFileDescriptor$AutoCloseInputStream;
-Landroid/os/ParcelFileDescriptor$AutoCloseOutputStream;
-Landroid/os/ParcelFileDescriptor$OnCloseListener;
-Landroid/os/ParcelFileDescriptor$Status;
-Landroid/os/ParcelFileDescriptor;
-Landroid/os/ParcelFormatException;
-Landroid/os/ParcelUuid$1;
-Landroid/os/ParcelUuid;
-Landroid/os/Parcelable$ClassLoaderCreator;
-Landroid/os/Parcelable$Creator;
-Landroid/os/Parcelable;
-Landroid/os/ParcelableException$1;
-Landroid/os/ParcelableException;
-Landroid/os/ParcelableParcel$1;
-Landroid/os/ParcelableParcel;
-Landroid/os/PatternMatcher$1;
-Landroid/os/PatternMatcher;
-Landroid/os/PerformanceHintManager$Session;
-Landroid/os/PerformanceHintManager;
-Landroid/os/PermissionEnforcer;
-Landroid/os/PersistableBundle$1;
-Landroid/os/PersistableBundle$MyReadMapCallback;
-Landroid/os/PersistableBundle;
-Landroid/os/PooledStringReader;
-Landroid/os/PooledStringWriter;
-Landroid/os/PowerExemptionManager;
-Landroid/os/PowerManager$1;
-Landroid/os/PowerManager$2;
-Landroid/os/PowerManager$3$$ExternalSyntheticLambda0;
-Landroid/os/PowerManager$3;
-Landroid/os/PowerManager$OnThermalStatusChangedListener;
-Landroid/os/PowerManager$WakeData;
-Landroid/os/PowerManager$WakeLock$$ExternalSyntheticLambda0;
-Landroid/os/PowerManager$WakeLock;
-Landroid/os/PowerManager;
-Landroid/os/PowerManagerInternal$1;
-Landroid/os/PowerManagerInternal$LowPowerModeListener;
-Landroid/os/PowerManagerInternal;
-Landroid/os/PowerSaveState$1;
-Landroid/os/PowerSaveState$Builder;
-Landroid/os/PowerSaveState;
-Landroid/os/PowerWhitelistManager;
-Landroid/os/Process$ProcessStartResult;
-Landroid/os/Process;
-Landroid/os/ProfilingServiceManager;
-Landroid/os/ProxyFileDescriptorCallback;
-Landroid/os/RecoverySystem$1;
-Landroid/os/RecoverySystem$2;
-Landroid/os/RecoverySystem$3;
-Landroid/os/RecoverySystem$4;
-Landroid/os/RecoverySystem$5;
-Landroid/os/RecoverySystem$ProgressListener;
-Landroid/os/RecoverySystem;
-Landroid/os/Registrant;
-Landroid/os/RegistrantList;
-Landroid/os/RemoteCallback$1;
-Landroid/os/RemoteCallback$2;
-Landroid/os/RemoteCallback$3;
-Landroid/os/RemoteCallback$OnResultListener;
-Landroid/os/RemoteCallback;
-Landroid/os/RemoteCallbackList$Callback;
-Landroid/os/RemoteCallbackList;
-Landroid/os/RemoteException;
-Landroid/os/ResultReceiver$1;
-Landroid/os/ResultReceiver$MyResultReceiver;
-Landroid/os/ResultReceiver$MyRunnable;
-Landroid/os/ResultReceiver;
-Landroid/os/SELinux;
-Landroid/os/SecurityStateManager;
-Landroid/os/ServiceManager$ServiceNotFoundException;
-Landroid/os/ServiceManager;
-Landroid/os/ServiceManagerNative;
-Landroid/os/ServiceManagerProxy;
-Landroid/os/ServiceSpecificException;
-Landroid/os/SharedMemory$1;
-Landroid/os/SharedMemory$Closer-IA;
-Landroid/os/SharedMemory$Closer;
-Landroid/os/SharedMemory$MemoryRegistration-IA;
-Landroid/os/SharedMemory$MemoryRegistration;
-Landroid/os/SharedMemory$Unmapper-IA;
-Landroid/os/SharedMemory$Unmapper;
-Landroid/os/SharedMemory-IA;
-Landroid/os/SharedMemory;
-Landroid/os/ShellCallback$1;
-Landroid/os/ShellCallback;
-Landroid/os/ShellCommand;
-Landroid/os/SimpleClock;
-Landroid/os/StatFs;
-Landroid/os/StatsServiceManager$ServiceRegisterer;
-Landroid/os/StatsServiceManager;
-Landroid/os/StrictMode$$ExternalSyntheticLambda0;
-Landroid/os/StrictMode$$ExternalSyntheticLambda1;
-Landroid/os/StrictMode$$ExternalSyntheticLambda2;
-Landroid/os/StrictMode$$ExternalSyntheticLambda3;
-Landroid/os/StrictMode$1;
-Landroid/os/StrictMode$2;
-Landroid/os/StrictMode$3;
-Landroid/os/StrictMode$4;
-Landroid/os/StrictMode$5;
-Landroid/os/StrictMode$6;
-Landroid/os/StrictMode$7;
-Landroid/os/StrictMode$8;
-Landroid/os/StrictMode$9;
-Landroid/os/StrictMode$AndroidBlockGuardPolicy$$ExternalSyntheticLambda0;
-Landroid/os/StrictMode$AndroidBlockGuardPolicy$$ExternalSyntheticLambda1;
-Landroid/os/StrictMode$AndroidBlockGuardPolicy;
-Landroid/os/StrictMode$AndroidCloseGuardReporter-IA;
-Landroid/os/StrictMode$AndroidCloseGuardReporter;
-Landroid/os/StrictMode$InstanceTracker;
-Landroid/os/StrictMode$OnThreadViolationListener;
-Landroid/os/StrictMode$OnVmViolationListener;
-Landroid/os/StrictMode$Span;
-Landroid/os/StrictMode$ThreadPolicy$Builder;
-Landroid/os/StrictMode$ThreadPolicy-IA;
-Landroid/os/StrictMode$ThreadPolicy;
-Landroid/os/StrictMode$ThreadSpanState-IA;
-Landroid/os/StrictMode$ThreadSpanState;
-Landroid/os/StrictMode$UnsafeIntentStrictModeCallback-IA;
-Landroid/os/StrictMode$UnsafeIntentStrictModeCallback;
-Landroid/os/StrictMode$ViolationInfo$1;
-Landroid/os/StrictMode$ViolationInfo;
-Landroid/os/StrictMode$ViolationLogger;
-Landroid/os/StrictMode$VmPolicy$Builder;
-Landroid/os/StrictMode$VmPolicy-IA;
-Landroid/os/StrictMode$VmPolicy;
-Landroid/os/StrictMode;
-Landroid/os/SynchronousResultReceiver$Result;
-Landroid/os/SynchronousResultReceiver;
-Landroid/os/SystemClock$2;
-Landroid/os/SystemClock$3;
-Landroid/os/SystemClock;
-Landroid/os/SystemConfigManager;
-Landroid/os/SystemProperties$Handle-IA;
-Landroid/os/SystemProperties$Handle;
-Landroid/os/SystemProperties;
-Landroid/os/SystemService$1;
-Landroid/os/SystemService$State;
-Landroid/os/SystemService;
-Landroid/os/SystemUpdateManager;
-Landroid/os/SystemVibrator;
-Landroid/os/SystemVibratorManager$SingleVibrator;
-Landroid/os/SystemVibratorManager;
-Landroid/os/TelephonyServiceManager$ServiceRegisterer;
-Landroid/os/TelephonyServiceManager;
-Landroid/os/Temperature$1;
-Landroid/os/Temperature;
-Landroid/os/ThreadLocalWorkSource$$ExternalSyntheticLambda0;
-Landroid/os/ThreadLocalWorkSource;
-Landroid/os/TimestampedValue$1;
-Landroid/os/TimestampedValue;
-Landroid/os/TokenWatcher$1;
-Landroid/os/TokenWatcher$Death;
-Landroid/os/TokenWatcher;
-Landroid/os/Trace;
-Landroid/os/TraceNameSupplier;
-Landroid/os/TransactionTooLargeException;
-Landroid/os/TransactionTracker;
-Landroid/os/UEventObserver$UEvent;
-Landroid/os/UEventObserver$UEventThread;
-Landroid/os/UEventObserver;
-Landroid/os/UidBatteryConsumer;
-Landroid/os/UpdateEngine$1$1;
-Landroid/os/UpdateEngine$1;
-Landroid/os/UpdateEngine;
-Landroid/os/UpdateEngineCallback;
-Landroid/os/UpdateLock;
-Landroid/os/UserHandle$1;
-Landroid/os/UserHandle;
-Landroid/os/UserManager$1;
-Landroid/os/UserManager$2;
-Landroid/os/UserManager$3;
-Landroid/os/UserManager$4;
-Landroid/os/UserManager$EnforcingUser$1;
-Landroid/os/UserManager$EnforcingUser;
-Landroid/os/UserManager$UserOperationException;
-Landroid/os/UserManager;
-Landroid/os/VibrationAttributes$1;
-Landroid/os/VibrationAttributes$Builder;
-Landroid/os/VibrationAttributes-IA;
-Landroid/os/VibrationAttributes;
-Landroid/os/VibrationEffect$1;
-Landroid/os/VibrationEffect$Composed$1;
-Landroid/os/VibrationEffect$Composed;
-Landroid/os/VibrationEffect$Composition;
-Landroid/os/VibrationEffect;
-Landroid/os/Vibrator;
-Landroid/os/VibratorInfo$1;
-Landroid/os/VibratorInfo$FrequencyProfile$1;
-Landroid/os/VibratorInfo$FrequencyProfile;
-Landroid/os/VibratorInfo;
-Landroid/os/VibratorManager;
-Landroid/os/VintfObject;
-Landroid/os/VintfRuntimeInfo;
-Landroid/os/WorkSource$1;
-Landroid/os/WorkSource$WorkChain$1;
-Landroid/os/WorkSource$WorkChain;
-Landroid/os/WorkSource;
-Landroid/os/ZygoteProcess$ZygoteState;
-Landroid/os/ZygoteProcess;
-Landroid/os/ZygoteStartFailedEx;
-Landroid/os/connectivity/CellularBatteryStats$1;
-Landroid/os/connectivity/CellularBatteryStats;
-Landroid/os/connectivity/GpsBatteryStats$1;
-Landroid/os/connectivity/GpsBatteryStats;
-Landroid/os/connectivity/WifiActivityEnergyInfo$1;
-Landroid/os/connectivity/WifiActivityEnergyInfo;
-Landroid/os/connectivity/WifiBatteryStats$1;
-Landroid/os/connectivity/WifiBatteryStats;
-Landroid/os/health/HealthKeys$Constant;
-Landroid/os/health/HealthKeys$Constants;
-Landroid/os/health/HealthKeys$SortedIntArray;
-Landroid/os/health/HealthStats;
-Landroid/os/health/HealthStatsParceler$1;
-Landroid/os/health/HealthStatsParceler;
-Landroid/os/health/HealthStatsWriter;
-Landroid/os/health/PackageHealthStats;
-Landroid/os/health/PidHealthStats;
-Landroid/os/health/ProcessHealthStats;
-Landroid/os/health/ServiceHealthStats;
-Landroid/os/health/SystemHealthManager$$ExternalSyntheticLambda1;
-Landroid/os/health/SystemHealthManager;
-Landroid/os/health/TimerStat$1;
-Landroid/os/health/TimerStat;
-Landroid/os/health/UidHealthStats;
-Landroid/os/image/DynamicSystemClient;
-Landroid/os/image/DynamicSystemManager;
-Landroid/os/image/IDynamicSystemService$Stub;
-Landroid/os/image/IDynamicSystemService;
-Landroid/os/incremental/IncrementalManager;
-Landroid/os/incremental/V4Signature$HashingInfo;
-Landroid/os/incremental/V4Signature$SigningInfo;
-Landroid/os/incremental/V4Signature;
-Landroid/os/storage/DiskInfo$1;
-Landroid/os/storage/DiskInfo;
-Landroid/os/storage/IObbActionListener$Stub$Proxy;
-Landroid/os/storage/IObbActionListener$Stub;
-Landroid/os/storage/IObbActionListener;
-Landroid/os/storage/IStorageEventListener$Stub$Proxy;
-Landroid/os/storage/IStorageEventListener$Stub;
-Landroid/os/storage/IStorageEventListener;
-Landroid/os/storage/IStorageManager$Stub$Proxy;
-Landroid/os/storage/IStorageManager$Stub;
-Landroid/os/storage/IStorageManager;
-Landroid/os/storage/IStorageShutdownObserver$Stub$Proxy;
-Landroid/os/storage/IStorageShutdownObserver$Stub;
-Landroid/os/storage/IStorageShutdownObserver;
-Landroid/os/storage/OnObbStateChangeListener;
-Landroid/os/storage/StorageEventListener;
-Landroid/os/storage/StorageManager$1;
-Landroid/os/storage/StorageManager$ObbActionListener-IA;
-Landroid/os/storage/StorageManager$ObbActionListener;
-Landroid/os/storage/StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda2;
-Landroid/os/storage/StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda3;
-Landroid/os/storage/StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda4;
-Landroid/os/storage/StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda5;
-Landroid/os/storage/StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda6;
-Landroid/os/storage/StorageManager$StorageEventListenerDelegate;
-Landroid/os/storage/StorageManager$StorageVolumeCallback;
-Landroid/os/storage/StorageManager;
-Landroid/os/storage/StorageManagerInternal;
-Landroid/os/storage/StorageVolume$1;
-Landroid/os/storage/StorageVolume-IA;
-Landroid/os/storage/StorageVolume;
-Landroid/os/storage/VolumeInfo$1;
-Landroid/os/storage/VolumeInfo$2;
-Landroid/os/storage/VolumeInfo;
-Landroid/os/storage/VolumeRecord$1;
-Landroid/os/storage/VolumeRecord;
-Landroid/os/strictmode/ContentUriWithoutPermissionViolation;
-Landroid/os/strictmode/CredentialProtectedWhileLockedViolation;
-Landroid/os/strictmode/CustomViolation;
-Landroid/os/strictmode/DiskReadViolation;
-Landroid/os/strictmode/DiskWriteViolation;
-Landroid/os/strictmode/ExplicitGcViolation;
-Landroid/os/strictmode/ImplicitDirectBootViolation;
-Landroid/os/strictmode/IncorrectContextUseViolation;
-Landroid/os/strictmode/InstanceCountViolation;
-Landroid/os/strictmode/IntentReceiverLeakedViolation;
-Landroid/os/strictmode/LeakedClosableViolation;
-Landroid/os/strictmode/NetworkViolation;
-Landroid/os/strictmode/ResourceMismatchViolation;
-Landroid/os/strictmode/ServiceConnectionLeakedViolation;
-Landroid/os/strictmode/SqliteObjectLeakedViolation;
-Landroid/os/strictmode/UnbufferedIoViolation;
-Landroid/os/strictmode/UnsafeIntentLaunchViolation;
-Landroid/os/strictmode/UntaggedSocketViolation;
-Landroid/os/strictmode/Violation;
-Landroid/os/strictmode/WebViewMethodCalledOnWrongThreadViolation;
-Landroid/os/vibrator/Flags;
-Landroid/os/vibrator/PrebakedSegment$1;
-Landroid/os/vibrator/PrebakedSegment;
-Landroid/os/vibrator/PrimitiveSegment$1;
-Landroid/os/vibrator/PrimitiveSegment;
-Landroid/os/vibrator/StepSegment$1;
-Landroid/os/vibrator/StepSegment;
-Landroid/os/vibrator/VibrationEffectSegment$1;
-Landroid/os/vibrator/VibrationEffectSegment;
-Landroid/ota/nano/OtaPackageMetadata$ApexInfo;
-Landroid/ota/nano/OtaPackageMetadata$ApexMetadata;
-Landroid/ota/nano/OtaPackageMetadata$DeviceState;
-Landroid/ota/nano/OtaPackageMetadata$PartitionState;
-Landroid/permission/ILegacyPermissionManager$Stub$Proxy;
-Landroid/permission/ILegacyPermissionManager$Stub;
-Landroid/permission/ILegacyPermissionManager;
-Landroid/permission/IOnPermissionsChangeListener$Stub;
-Landroid/permission/IOnPermissionsChangeListener;
-Landroid/permission/IPermissionChecker$Stub$Proxy;
-Landroid/permission/IPermissionChecker$Stub;
-Landroid/permission/IPermissionChecker;
-Landroid/permission/IPermissionController$Stub$Proxy;
-Landroid/permission/IPermissionController$Stub;
-Landroid/permission/IPermissionController;
-Landroid/permission/IPermissionManager$Stub$Proxy;
-Landroid/permission/IPermissionManager$Stub;
-Landroid/permission/IPermissionManager;
-Landroid/permission/LegacyPermissionManager;
-Landroid/permission/PermissionCheckerManager;
-Landroid/permission/PermissionControllerManager$1;
-Landroid/permission/PermissionControllerManager;
-Landroid/permission/PermissionManager$1;
-Landroid/permission/PermissionManager$2;
-Landroid/permission/PermissionManager$PackageNamePermissionQuery;
-Landroid/permission/PermissionManager$PermissionQuery;
-Landroid/permission/PermissionManager$SplitPermissionInfo-IA;
-Landroid/permission/PermissionManager$SplitPermissionInfo;
-Landroid/permission/PermissionManager;
-Landroid/permission/PermissionManagerInternal;
-Landroid/permission/flags/FeatureFlags;
-Landroid/permission/flags/FeatureFlagsImpl;
-Landroid/permission/flags/Flags;
-Landroid/preference/DialogPreference;
-Landroid/preference/GenericInflater$Parent;
-Landroid/preference/GenericInflater;
-Landroid/preference/ListPreference;
-Landroid/preference/Preference$OnPreferenceChangeListener;
-Landroid/preference/Preference;
-Landroid/preference/PreferenceActivity;
-Landroid/preference/PreferenceFragment$OnPreferenceStartFragmentCallback;
-Landroid/preference/PreferenceFragment;
-Landroid/preference/PreferenceGroup;
-Landroid/preference/PreferenceInflater;
-Landroid/preference/PreferenceManager$OnActivityDestroyListener;
-Landroid/preference/PreferenceManager$OnPreferenceTreeClickListener;
-Landroid/preference/PreferenceManager;
-Landroid/preference/PreferenceScreen;
-Landroid/preference/TwoStatePreference;
-Landroid/print/IPrintDocumentAdapter$Stub$Proxy;
-Landroid/print/IPrintDocumentAdapter$Stub;
-Landroid/print/IPrintDocumentAdapter;
-Landroid/print/IPrintJobStateChangeListener$Stub$Proxy;
-Landroid/print/IPrintJobStateChangeListener$Stub;
-Landroid/print/IPrintJobStateChangeListener;
-Landroid/print/IPrintManager$Stub$Proxy;
-Landroid/print/IPrintManager$Stub;
-Landroid/print/IPrintManager;
-Landroid/print/IPrintServicesChangeListener$Stub$Proxy;
-Landroid/print/IPrintServicesChangeListener$Stub;
-Landroid/print/IPrintServicesChangeListener;
-Landroid/print/IPrintSpooler$Stub$Proxy;
-Landroid/print/IPrintSpooler$Stub;
-Landroid/print/IPrintSpooler;
-Landroid/print/IPrintSpoolerCallbacks$Stub;
-Landroid/print/IPrintSpoolerCallbacks;
-Landroid/print/IPrintSpoolerClient$Stub;
-Landroid/print/IPrintSpoolerClient;
-Landroid/print/IPrinterDiscoveryObserver$Stub$Proxy;
-Landroid/print/IPrinterDiscoveryObserver$Stub;
-Landroid/print/IPrinterDiscoveryObserver;
-Landroid/print/PrintAttributes$1;
-Landroid/print/PrintAttributes;
-Landroid/print/PrintDocumentAdapter;
-Landroid/print/PrintJobId$1;
-Landroid/print/PrintJobId;
-Landroid/print/PrintJobInfo$1;
-Landroid/print/PrintJobInfo;
-Landroid/print/PrintManager$1;
-Landroid/print/PrintManager;
-Landroid/print/PrinterId$1;
-Landroid/print/PrinterId;
-Landroid/printservice/IPrintServiceClient$Stub;
-Landroid/printservice/IPrintServiceClient;
-Landroid/printservice/PrintServiceInfo$1;
-Landroid/printservice/PrintServiceInfo;
-Landroid/printservice/recommendation/IRecommendationsChangeListener$Stub$Proxy;
-Landroid/printservice/recommendation/IRecommendationsChangeListener$Stub;
-Landroid/printservice/recommendation/IRecommendationsChangeListener;
-Landroid/privacy/DifferentialPrivacyConfig;
-Landroid/privacy/DifferentialPrivacyEncoder;
-Landroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig;
-Landroid/privacy/internal/longitudinalreporting/LongitudinalReportingEncoder;
-Landroid/privacy/internal/rappor/RapporConfig;
-Landroid/privacy/internal/rappor/RapporEncoder;
-Landroid/provider/BaseColumns;
-Landroid/provider/BlockedNumberContract$BlockedNumbers;
-Landroid/provider/BlockedNumberContract$SystemContract;
-Landroid/provider/BlockedNumberContract;
-Landroid/provider/CalendarContract$Attendees;
-Landroid/provider/CalendarContract$AttendeesColumns;
-Landroid/provider/CalendarContract$CalendarColumns;
-Landroid/provider/CalendarContract$CalendarSyncColumns;
-Landroid/provider/CalendarContract$Calendars;
-Landroid/provider/CalendarContract$Events;
-Landroid/provider/CalendarContract$EventsColumns;
-Landroid/provider/CalendarContract$Instances;
-Landroid/provider/CalendarContract$SyncColumns;
-Landroid/provider/CalendarContract;
-Landroid/provider/CallLog$CallComposerLoggingException;
-Landroid/provider/CallLog$Calls;
-Landroid/provider/CallLog;
-Landroid/provider/ContactsContract$BaseSyncColumns;
-Landroid/provider/ContactsContract$CommonDataKinds$BaseTypes;
-Landroid/provider/ContactsContract$CommonDataKinds$Callable;
-Landroid/provider/ContactsContract$CommonDataKinds$CommonColumns;
-Landroid/provider/ContactsContract$CommonDataKinds$Email;
-Landroid/provider/ContactsContract$CommonDataKinds$Event;
-Landroid/provider/ContactsContract$CommonDataKinds$Im;
-Landroid/provider/ContactsContract$CommonDataKinds$Phone;
-Landroid/provider/ContactsContract$CommonDataKinds$Relation;
-Landroid/provider/ContactsContract$CommonDataKinds$StructuredPostal;
-Landroid/provider/ContactsContract$ContactCounts;
-Landroid/provider/ContactsContract$ContactNameColumns;
-Landroid/provider/ContactsContract$ContactOptionsColumns;
-Landroid/provider/ContactsContract$ContactStatusColumns;
-Landroid/provider/ContactsContract$Contacts;
-Landroid/provider/ContactsContract$ContactsColumns;
-Landroid/provider/ContactsContract$Data;
-Landroid/provider/ContactsContract$DataColumns;
-Landroid/provider/ContactsContract$DataColumnsWithJoins;
-Landroid/provider/ContactsContract$DataUsageFeedback;
-Landroid/provider/ContactsContract$DataUsageStatColumns;
-Landroid/provider/ContactsContract$DeletedContacts;
-Landroid/provider/ContactsContract$DeletedContactsColumns;
-Landroid/provider/ContactsContract$Directory;
-Landroid/provider/ContactsContract$DisplayPhoto;
-Landroid/provider/ContactsContract$Groups;
-Landroid/provider/ContactsContract$GroupsColumns;
-Landroid/provider/ContactsContract$MetadataSync;
-Landroid/provider/ContactsContract$MetadataSyncColumns;
-Landroid/provider/ContactsContract$PhoneLookup;
-Landroid/provider/ContactsContract$PhoneLookupColumns;
-Landroid/provider/ContactsContract$Profile;
-Landroid/provider/ContactsContract$ProviderStatus;
-Landroid/provider/ContactsContract$RawContacts;
-Landroid/provider/ContactsContract$RawContactsColumns;
-Landroid/provider/ContactsContract$RawContactsEntity;
-Landroid/provider/ContactsContract$Settings;
-Landroid/provider/ContactsContract$SettingsColumns;
-Landroid/provider/ContactsContract$StatusColumns;
-Landroid/provider/ContactsContract$SyncColumns;
-Landroid/provider/ContactsContract$SyncState;
-Landroid/provider/ContactsContract;
-Landroid/provider/DeviceConfigInitializer;
-Landroid/provider/DeviceConfigServiceManager$ServiceRegisterer;
-Landroid/provider/DeviceConfigServiceManager;
-Landroid/provider/DocumentsContract$Path$1;
-Landroid/provider/DocumentsContract$Path;
-Landroid/provider/DocumentsContract;
-Landroid/provider/DocumentsProvider;
-Landroid/provider/Downloads$Impl;
-Landroid/provider/Downloads;
-Landroid/provider/E2eeContactKeysManager;
-Landroid/provider/FontRequest;
-Landroid/provider/FontsContract$$ExternalSyntheticLambda0;
-Landroid/provider/FontsContract$$ExternalSyntheticLambda12;
-Landroid/provider/FontsContract$$ExternalSyntheticLambda13;
-Landroid/provider/FontsContract$$ExternalSyntheticLambda1;
-Landroid/provider/FontsContract$1;
-Landroid/provider/FontsContract$FontFamilyResult;
-Landroid/provider/FontsContract$FontInfo;
-Landroid/provider/FontsContract;
-Landroid/provider/OpenableColumns;
-Landroid/provider/SearchIndexableData;
-Landroid/provider/SearchIndexableResource;
-Landroid/provider/SearchIndexablesContract;
-Landroid/provider/SearchIndexablesProvider;
-Landroid/provider/SearchRecentSuggestions;
-Landroid/provider/Settings$Config;
-Landroid/provider/Settings$ContentProviderHolder;
-Landroid/provider/Settings$GenerationTracker;
-Landroid/provider/Settings$Global;
-Landroid/provider/Settings$NameValueCache$$ExternalSyntheticLambda0;
-Landroid/provider/Settings$NameValueCache;
-Landroid/provider/Settings$NameValueTable;
-Landroid/provider/Settings$Readable;
-Landroid/provider/Settings$Secure;
-Landroid/provider/Settings$SettingNotFoundException;
-Landroid/provider/Settings$System;
-Landroid/provider/Settings;
-Landroid/provider/SyncStateContract$Columns;
-Landroid/provider/Telephony$BaseMmsColumns;
-Landroid/provider/Telephony$CarrierColumns;
-Landroid/provider/Telephony$CarrierId$All;
-Landroid/provider/Telephony$CarrierId;
-Landroid/provider/Telephony$Carriers;
-Landroid/provider/Telephony$Mms$Inbox;
-Landroid/provider/Telephony$Mms$Sent;
-Landroid/provider/Telephony$Mms;
-Landroid/provider/Telephony$MmsSms;
-Landroid/provider/Telephony$ServiceStateTable;
-Landroid/provider/Telephony$SimInfo;
-Landroid/provider/Telephony$Sms$Intents;
-Landroid/provider/Telephony$Sms$Sent;
-Landroid/provider/Telephony$Sms;
-Landroid/provider/Telephony$TextBasedSmsColumns;
-Landroid/provider/Telephony$Threads;
-Landroid/provider/Telephony$ThreadsColumns;
-Landroid/provider/UserDictionary$Words;
-Landroid/provider/VoicemailContract$Status;
-Landroid/provider/VoicemailContract$Voicemails;
-Landroid/renderscript/Allocation;
-Landroid/renderscript/BaseObj;
-Landroid/renderscript/Element$DataKind;
-Landroid/renderscript/Element$DataType;
-Landroid/renderscript/Element;
-Landroid/renderscript/RSDriverException;
-Landroid/renderscript/RSIllegalArgumentException;
-Landroid/renderscript/RSInvalidStateException;
-Landroid/renderscript/RSRuntimeException;
-Landroid/renderscript/RenderScript$ContextType;
-Landroid/renderscript/RenderScript$MessageThread;
-Landroid/renderscript/RenderScript$RSErrorHandler;
-Landroid/renderscript/RenderScript$RSMessageHandler;
-Landroid/renderscript/RenderScript;
-Landroid/renderscript/RenderScriptCacheDir;
-Landroid/renderscript/Script;
-Landroid/renderscript/ScriptIntrinsic;
-Landroid/renderscript/ScriptIntrinsicBlur;
-Landroid/se/omapi/SeFrameworkInitializer;
-Landroid/se/omapi/SeServiceManager;
-Landroid/security/AttestedKeyPair;
-Landroid/security/CheckedRemoteRequest;
-Landroid/security/Credentials;
-Landroid/security/FeatureFlags;
-Landroid/security/FeatureFlagsImpl;
-Landroid/security/FileIntegrityManager;
-Landroid/security/Flags;
-Landroid/security/GateKeeper;
-Landroid/security/IFileIntegrityService$Stub;
-Landroid/security/IFileIntegrityService;
-Landroid/security/IKeyChainAliasCallback$Stub;
-Landroid/security/IKeyChainAliasCallback;
-Landroid/security/IKeyChainService$Stub$Proxy;
-Landroid/security/IKeyChainService$Stub;
-Landroid/security/IKeyChainService;
-Landroid/security/KeyChain$1;
-Landroid/security/KeyChain$AliasResponse;
-Landroid/security/KeyChain$KeyChainConnection;
-Landroid/security/KeyChain;
-Landroid/security/KeyChainAliasCallback;
-Landroid/security/KeyChainException;
-Landroid/security/KeyPairGeneratorSpec;
-Landroid/security/KeyStore2$$ExternalSyntheticLambda0;
-Landroid/security/KeyStore2$$ExternalSyntheticLambda1;
-Landroid/security/KeyStore2$$ExternalSyntheticLambda3;
-Landroid/security/KeyStore2$$ExternalSyntheticLambda4;
-Landroid/security/KeyStore2$$ExternalSyntheticLambda8;
-Landroid/security/KeyStore2$CheckedRemoteRequest;
-Landroid/security/KeyStore2;
-Landroid/security/KeyStore;
-Landroid/security/KeyStoreException$PublicErrorInformation;
-Landroid/security/KeyStoreException;
-Landroid/security/KeyStoreOperation$$ExternalSyntheticLambda0;
-Landroid/security/KeyStoreOperation$$ExternalSyntheticLambda1;
-Landroid/security/KeyStoreOperation$$ExternalSyntheticLambda2;
-Landroid/security/KeyStoreOperation$$ExternalSyntheticLambda3;
-Landroid/security/KeyStoreOperation;
-Landroid/security/KeyStoreSecurityLevel$$ExternalSyntheticLambda1;
-Landroid/security/KeyStoreSecurityLevel;
-Landroid/security/NetworkSecurityPolicy;
-Landroid/security/Scrypt;
-Landroid/security/attestationverification/AttestationVerificationManager;
-Landroid/security/keymaster/ExportResult$1;
-Landroid/security/keymaster/ExportResult;
-Landroid/security/keymaster/KeyCharacteristics$1;
-Landroid/security/keymaster/KeyCharacteristics;
-Landroid/security/keymaster/KeymasterArgument$1;
-Landroid/security/keymaster/KeymasterArgument;
-Landroid/security/keymaster/KeymasterArguments$1;
-Landroid/security/keymaster/KeymasterArguments-IA;
-Landroid/security/keymaster/KeymasterArguments;
-Landroid/security/keymaster/KeymasterBlob$1;
-Landroid/security/keymaster/KeymasterBlob;
-Landroid/security/keymaster/KeymasterBlobArgument;
-Landroid/security/keymaster/KeymasterBooleanArgument;
-Landroid/security/keymaster/KeymasterCertificateChain$1;
-Landroid/security/keymaster/KeymasterCertificateChain;
-Landroid/security/keymaster/KeymasterDateArgument;
-Landroid/security/keymaster/KeymasterDefs;
-Landroid/security/keymaster/KeymasterIntArgument;
-Landroid/security/keymaster/KeymasterLongArgument;
-Landroid/security/keymaster/OperationResult$1;
-Landroid/security/keymaster/OperationResult;
-Landroid/security/keystore/AndroidKeyStoreProvider;
-Landroid/security/keystore/ArrayUtils;
-Landroid/security/keystore/AttestationUtils;
-Landroid/security/keystore/BackendBusyException;
-Landroid/security/keystore/DelegatingX509Certificate;
-Landroid/security/keystore/DeviceIdAttestationException;
-Landroid/security/keystore/KeyAttestationException;
-Landroid/security/keystore/KeyExpiredException;
-Landroid/security/keystore/KeyGenParameterSpec$Builder;
-Landroid/security/keystore/KeyGenParameterSpec;
-Landroid/security/keystore/KeyInfo;
-Landroid/security/keystore/KeyNotYetValidException;
-Landroid/security/keystore/KeyPermanentlyInvalidatedException;
-Landroid/security/keystore/KeyProperties$BlockMode;
-Landroid/security/keystore/KeyProperties$Digest;
-Landroid/security/keystore/KeyProperties$EncryptionPadding;
-Landroid/security/keystore/KeyProperties$KeyAlgorithm;
-Landroid/security/keystore/KeyProperties$Origin;
-Landroid/security/keystore/KeyProperties$Purpose;
-Landroid/security/keystore/KeyProperties$SignaturePadding;
-Landroid/security/keystore/KeyProperties;
-Landroid/security/keystore/KeyProtection$Builder;
-Landroid/security/keystore/KeyProtection;
-Landroid/security/keystore/KeyStoreConnectException;
-Landroid/security/keystore/KeyStoreCryptoOperation;
-Landroid/security/keystore/KeystoreResponse$1;
-Landroid/security/keystore/KeystoreResponse;
-Landroid/security/keystore/ParcelableKeyGenParameterSpec$1;
-Landroid/security/keystore/ParcelableKeyGenParameterSpec;
-Landroid/security/keystore/SecureKeyImportUnavailableException;
-Landroid/security/keystore/StrongBoxUnavailableException;
-Landroid/security/keystore/UserAuthArgs;
-Landroid/security/keystore/UserNotAuthenticatedException;
-Landroid/security/keystore/Utils;
-Landroid/security/keystore/WrappedKeyEntry;
-Landroid/security/keystore/recovery/InternalRecoveryServiceException;
-Landroid/security/keystore/recovery/KeyChainProtectionParams$1;
-Landroid/security/keystore/recovery/KeyChainProtectionParams$Builder;
-Landroid/security/keystore/recovery/KeyChainProtectionParams;
-Landroid/security/keystore/recovery/KeyChainSnapshot$1;
-Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
-Landroid/security/keystore/recovery/KeyChainSnapshot;
-Landroid/security/keystore/recovery/KeyDerivationParams$1;
-Landroid/security/keystore/recovery/KeyDerivationParams;
-Landroid/security/keystore/recovery/LockScreenRequiredException;
-Landroid/security/keystore/recovery/RecoveryCertPath$1;
-Landroid/security/keystore/recovery/RecoveryCertPath;
-Landroid/security/keystore/recovery/RecoveryController;
-Landroid/security/keystore/recovery/TrustedRootCertificates;
-Landroid/security/keystore/recovery/WrappedApplicationKey$1;
-Landroid/security/keystore/recovery/WrappedApplicationKey$Builder;
-Landroid/security/keystore/recovery/WrappedApplicationKey;
-Landroid/security/keystore/recovery/X509CertificateParsingUtils;
-Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream-IA;
-Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream;
-Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer-IA;
-Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer;
-Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM$NoPadding;
-Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;
-Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi;
-Landroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider;
-Landroid/security/keystore2/AndroidKeyStoreCipherSpiBase;
-Landroid/security/keystore2/AndroidKeyStoreECDSASignatureSpi$SHA256;
-Landroid/security/keystore2/AndroidKeyStoreECDSASignatureSpi;
-Landroid/security/keystore2/AndroidKeyStoreECPrivateKey;
-Landroid/security/keystore2/AndroidKeyStoreECPublicKey;
-Landroid/security/keystore2/AndroidKeyStoreKey;
-Landroid/security/keystore2/AndroidKeyStoreKeyFactorySpi;
-Landroid/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi$$ExternalSyntheticLambda2;
-Landroid/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi$$ExternalSyntheticLambda3;
-Landroid/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi$$ExternalSyntheticLambda4;
-Landroid/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi$$ExternalSyntheticLambda5;
-Landroid/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi$$ExternalSyntheticLambda6;
-Landroid/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi$EC;
-Landroid/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi;
-Landroid/security/keystore2/AndroidKeyStoreLoadStoreParameter;
-Landroid/security/keystore2/AndroidKeyStorePrivateKey;
-Landroid/security/keystore2/AndroidKeyStoreProvider;
-Landroid/security/keystore2/AndroidKeyStorePublicKey;
-Landroid/security/keystore2/AndroidKeyStoreRSAPrivateKey;
-Landroid/security/keystore2/AndroidKeyStoreRSAPublicKey;
-Landroid/security/keystore2/AndroidKeyStoreSecretKey;
-Landroid/security/keystore2/AndroidKeyStoreSignatureSpiBase;
-Landroid/security/keystore2/AndroidKeyStoreSpi;
-Landroid/security/keystore2/KeyStore2ParameterUtils;
-Landroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;
-Landroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer$Stream;
-Landroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer;
-Landroid/security/keystore2/KeyStoreCryptoOperationStreamer;
-Landroid/security/keystore2/KeyStoreCryptoOperationUtils;
-Landroid/security/keystore2/KeymasterUtils;
-Landroid/security/net/config/ApplicationConfig;
-Landroid/security/net/config/CertificateSource;
-Landroid/security/net/config/CertificatesEntryRef;
-Landroid/security/net/config/ConfigNetworkSecurityPolicy;
-Landroid/security/net/config/ConfigSource;
-Landroid/security/net/config/DirectoryCertificateSource$1;
-Landroid/security/net/config/DirectoryCertificateSource$3;
-Landroid/security/net/config/DirectoryCertificateSource$CertSelector;
-Landroid/security/net/config/DirectoryCertificateSource;
-Landroid/security/net/config/Domain;
-Landroid/security/net/config/KeyStoreCertificateSource;
-Landroid/security/net/config/KeyStoreConfigSource;
-Landroid/security/net/config/ManifestConfigSource$DefaultConfigSource;
-Landroid/security/net/config/ManifestConfigSource;
-Landroid/security/net/config/NetworkSecurityConfig$1;
-Landroid/security/net/config/NetworkSecurityConfig$Builder;
-Landroid/security/net/config/NetworkSecurityConfig-IA;
-Landroid/security/net/config/NetworkSecurityConfig;
-Landroid/security/net/config/NetworkSecurityConfigProvider;
-Landroid/security/net/config/NetworkSecurityTrustManager;
-Landroid/security/net/config/Pin;
-Landroid/security/net/config/PinSet;
-Landroid/security/net/config/ResourceCertificateSource;
-Landroid/security/net/config/RootTrustManager;
-Landroid/security/net/config/RootTrustManagerFactorySpi;
-Landroid/security/net/config/SystemCertificateSource$NoPreloadHolder;
-Landroid/security/net/config/SystemCertificateSource-IA;
-Landroid/security/net/config/SystemCertificateSource;
-Landroid/security/net/config/TrustAnchor;
-Landroid/security/net/config/TrustedCertificateStoreAdapter;
-Landroid/security/net/config/UserCertificateSource$NoPreloadHolder;
-Landroid/security/net/config/UserCertificateSource-IA;
-Landroid/security/net/config/UserCertificateSource;
-Landroid/security/net/config/WfaCertificateSource$NoPreloadHolder;
-Landroid/security/net/config/WfaCertificateSource;
-Landroid/security/net/config/XmlConfigSource$ParserException;
-Landroid/security/net/config/XmlConfigSource;
-Landroid/server/FeatureFlags;
-Landroid/server/FeatureFlagsImpl;
-Landroid/server/Flags;
-Landroid/service/appprediction/IPredictionService$Stub$Proxy;
-Landroid/service/appprediction/IPredictionService$Stub;
-Landroid/service/appprediction/IPredictionService;
-Landroid/service/autofill/AutofillServiceInfo;
-Landroid/service/autofill/Dataset$1;
-Landroid/service/autofill/Dataset;
-Landroid/service/autofill/FieldClassificationUserData;
-Landroid/service/autofill/FillContext$1;
-Landroid/service/autofill/FillContext;
-Landroid/service/autofill/FillEventHistory$1;
-Landroid/service/autofill/FillEventHistory;
-Landroid/service/autofill/FillRequest$1;
-Landroid/service/autofill/FillRequest;
-Landroid/service/autofill/FillResponse$1;
-Landroid/service/autofill/FillResponse;
-Landroid/service/autofill/Flags;
-Landroid/service/autofill/IAutoFillService$Stub$Proxy;
-Landroid/service/autofill/IAutoFillService$Stub;
-Landroid/service/autofill/IAutoFillService;
-Landroid/service/autofill/IFillCallback$Stub$Proxy;
-Landroid/service/autofill/IFillCallback$Stub;
-Landroid/service/autofill/IFillCallback;
-Landroid/service/autofill/IInlineSuggestionRenderService$Stub$Proxy;
-Landroid/service/autofill/IInlineSuggestionRenderService$Stub;
-Landroid/service/autofill/IInlineSuggestionRenderService;
-Landroid/service/autofill/ISaveCallback$Stub;
-Landroid/service/autofill/ISaveCallback;
-Landroid/service/autofill/SaveRequest$1;
-Landroid/service/autofill/SaveRequest;
-Landroid/service/autofill/UserData$1;
-Landroid/service/autofill/UserData$Builder;
-Landroid/service/autofill/UserData;
-Landroid/service/autofill/augmented/Helper;
-Landroid/service/autofill/augmented/IAugmentedAutofillService$Stub$Proxy;
-Landroid/service/autofill/augmented/IAugmentedAutofillService$Stub;
-Landroid/service/autofill/augmented/IAugmentedAutofillService;
-Landroid/service/autofill/augmented/IFillCallback$Stub$Proxy;
-Landroid/service/autofill/augmented/IFillCallback$Stub;
-Landroid/service/autofill/augmented/IFillCallback;
-Landroid/service/carrier/CarrierIdentifier$1;
-Landroid/service/carrier/CarrierIdentifier;
-Landroid/service/carrier/CarrierMessagingServiceWrapper$CarrierMessagingCallback;
-Landroid/service/carrier/CarrierMessagingServiceWrapper;
-Landroid/service/carrier/ICarrierService$Stub$Proxy;
-Landroid/service/carrier/ICarrierService$Stub;
-Landroid/service/carrier/ICarrierService;
-Landroid/service/carrier/MessagePdu$1;
-Landroid/service/carrier/MessagePdu;
-Landroid/service/contentcapture/ActivityEvent$1;
-Landroid/service/contentcapture/ActivityEvent;
-Landroid/service/contentcapture/ContentCaptureService;
-Landroid/service/contentcapture/ContentCaptureServiceInfo;
-Landroid/service/contentcapture/FlushMetrics$1;
-Landroid/service/contentcapture/FlushMetrics;
-Landroid/service/contentcapture/IContentCaptureService$Stub$Proxy;
-Landroid/service/contentcapture/IContentCaptureService$Stub;
-Landroid/service/contentcapture/IContentCaptureService;
-Landroid/service/contentcapture/IContentCaptureServiceCallback$Stub$Proxy;
-Landroid/service/contentcapture/IContentCaptureServiceCallback$Stub;
-Landroid/service/contentcapture/IContentCaptureServiceCallback;
-Landroid/service/contentcapture/IDataShareCallback$Stub;
-Landroid/service/contentcapture/IDataShareCallback;
-Landroid/service/contentcapture/SnapshotData$1;
-Landroid/service/contentcapture/SnapshotData;
-Landroid/service/contentsuggestions/IContentSuggestionsService$Stub$Proxy;
-Landroid/service/contentsuggestions/IContentSuggestionsService$Stub;
-Landroid/service/contentsuggestions/IContentSuggestionsService;
-Landroid/service/dataloader/DataLoaderService;
-Landroid/service/dreams/DreamActivity;
-Landroid/service/dreams/DreamManagerInternal;
-Landroid/service/dreams/DreamService$DreamServiceWrapper;
-Landroid/service/dreams/DreamService;
-Landroid/service/dreams/IDreamManager$Stub$Proxy;
-Landroid/service/dreams/IDreamManager$Stub;
-Landroid/service/dreams/IDreamManager;
-Landroid/service/dreams/IDreamService$Stub$Proxy;
-Landroid/service/dreams/IDreamService$Stub;
-Landroid/service/dreams/IDreamService;
-Landroid/service/euicc/DownloadSubscriptionResult$1;
-Landroid/service/euicc/DownloadSubscriptionResult;
-Landroid/service/euicc/EuiccProfileInfo$1;
-Landroid/service/euicc/EuiccProfileInfo$Builder;
-Landroid/service/euicc/EuiccProfileInfo;
-Landroid/service/euicc/GetDefaultDownloadableSubscriptionListResult$1;
-Landroid/service/euicc/GetDefaultDownloadableSubscriptionListResult;
-Landroid/service/euicc/GetDownloadableSubscriptionMetadataResult$1;
-Landroid/service/euicc/GetDownloadableSubscriptionMetadataResult;
-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/IEuiccServiceDumpResultCallback$Stub;
-Landroid/service/euicc/IEuiccServiceDumpResultCallback;
-Landroid/service/euicc/IGetAvailableMemoryInBytesCallback$Stub;
-Landroid/service/euicc/IGetAvailableMemoryInBytesCallback;
-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$Proxy;
-Landroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub;
-Landroid/service/euicc/IGetEuiccProfileInfoListCallback;
-Landroid/service/euicc/IGetOtaStatusCallback$Stub;
-Landroid/service/euicc/IGetOtaStatusCallback;
-Landroid/service/euicc/IOtaStatusChangedCallback$Stub;
-Landroid/service/euicc/IOtaStatusChangedCallback;
-Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback$Stub;
-Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback;
-Landroid/service/euicc/ISwitchToSubscriptionCallback$Stub;
-Landroid/service/euicc/ISwitchToSubscriptionCallback;
-Landroid/service/euicc/IUpdateSubscriptionNicknameCallback$Stub;
-Landroid/service/euicc/IUpdateSubscriptionNicknameCallback;
-Landroid/service/games/GameSession$ScreenshotCallback;
-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/media/IMediaBrowserService$Stub$Proxy;
-Landroid/service/media/IMediaBrowserService$Stub;
-Landroid/service/media/IMediaBrowserService;
-Landroid/service/media/IMediaBrowserServiceCallbacks$Stub$Proxy;
-Landroid/service/media/IMediaBrowserServiceCallbacks$Stub;
-Landroid/service/media/IMediaBrowserServiceCallbacks;
-Landroid/service/media/MediaBrowserService$$ExternalSyntheticLambda0;
-Landroid/service/media/MediaBrowserService$BrowserRoot;
-Landroid/service/media/MediaBrowserService$ConnectionRecord;
-Landroid/service/media/MediaBrowserService$Result;
-Landroid/service/media/MediaBrowserService$ServiceBinder$$ExternalSyntheticLambda1;
-Landroid/service/media/MediaBrowserService$ServiceBinder-IA;
-Landroid/service/media/MediaBrowserService$ServiceBinder;
-Landroid/service/media/MediaBrowserService$ServiceState;
-Landroid/service/media/MediaBrowserService;
-Landroid/service/notification/Adjustment$1;
-Landroid/service/notification/Adjustment;
-Landroid/service/notification/Condition$1;
-Landroid/service/notification/Condition;
-Landroid/service/notification/ConditionProviderService$H-IA;
-Landroid/service/notification/ConditionProviderService$H;
-Landroid/service/notification/ConditionProviderService$Provider-IA;
-Landroid/service/notification/ConditionProviderService;
-Landroid/service/notification/IConditionProvider$Stub;
-Landroid/service/notification/IConditionProvider;
-Landroid/service/notification/INotificationListener$Stub;
-Landroid/service/notification/INotificationListener;
-Landroid/service/notification/IStatusBarNotificationHolder$Stub$Proxy;
-Landroid/service/notification/IStatusBarNotificationHolder$Stub;
-Landroid/service/notification/IStatusBarNotificationHolder;
-Landroid/service/notification/NotificationAssistantService$MyHandler;
-Landroid/service/notification/NotificationAssistantService$NotificationAssistantServiceWrapper;
-Landroid/service/notification/NotificationAssistantService;
-Landroid/service/notification/NotificationListenerFilter$1;
-Landroid/service/notification/NotificationListenerFilter;
-Landroid/service/notification/NotificationListenerService$MyHandler;
-Landroid/service/notification/NotificationListenerService$Ranking;
-Landroid/service/notification/NotificationListenerService$RankingMap$1;
-Landroid/service/notification/NotificationListenerService$RankingMap-IA;
-Landroid/service/notification/NotificationListenerService$RankingMap;
-Landroid/service/notification/NotificationListenerService;
-Landroid/service/notification/NotificationRankingUpdate$1;
-Landroid/service/notification/NotificationRankingUpdate;
-Landroid/service/notification/NotificationStats$1;
-Landroid/service/notification/NotificationStats;
-Landroid/service/notification/NotifyingApp$1;
-Landroid/service/notification/ScheduleCalendar;
-Landroid/service/notification/SnoozeCriterion$1;
-Landroid/service/notification/SnoozeCriterion;
-Landroid/service/notification/StatusBarNotification$1;
-Landroid/service/notification/StatusBarNotification;
-Landroid/service/notification/ZenDeviceEffects;
-Landroid/service/notification/ZenModeConfig$1;
-Landroid/service/notification/ZenModeConfig$EventInfo;
-Landroid/service/notification/ZenModeConfig$ScheduleInfo;
-Landroid/service/notification/ZenModeConfig$ZenRule$1;
-Landroid/service/notification/ZenModeConfig$ZenRule;
-Landroid/service/notification/ZenModeConfig;
-Landroid/service/notification/ZenPolicy$1;
-Landroid/service/notification/ZenPolicy$Builder;
-Landroid/service/notification/ZenPolicy;
-Landroid/service/oemlock/IOemLockService$Stub$Proxy;
-Landroid/service/oemlock/IOemLockService$Stub;
-Landroid/service/oemlock/IOemLockService;
-Landroid/service/oemlock/OemLockManager;
-Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;
-Landroid/service/persistentdata/IPersistentDataBlockService$Stub;
-Landroid/service/persistentdata/IPersistentDataBlockService;
-Landroid/service/persistentdata/PersistentDataBlockManager;
-Landroid/service/quickaccesswallet/GetWalletCardsRequest$1;
-Landroid/service/quickaccesswallet/GetWalletCardsRequest;
-Landroid/service/quickaccesswallet/QuickAccessWalletClient;
-Landroid/service/quickaccesswallet/QuickAccessWalletClientImpl;
-Landroid/service/quickaccesswallet/QuickAccessWalletServiceInfo$ServiceMetadata;
-Landroid/service/quickaccesswallet/QuickAccessWalletServiceInfo$TileServiceMetadata;
-Landroid/service/quickaccesswallet/QuickAccessWalletServiceInfo;
-Landroid/service/quicksettings/IQSService$Stub$Proxy;
-Landroid/service/quicksettings/IQSService$Stub;
-Landroid/service/quicksettings/IQSService;
-Landroid/service/quicksettings/IQSTileService$Stub;
-Landroid/service/quicksettings/IQSTileService;
-Landroid/service/quicksettings/Tile$1;
-Landroid/service/quicksettings/Tile;
-Landroid/service/quicksettings/TileService$2;
-Landroid/service/quicksettings/TileService$H;
-Landroid/service/quicksettings/TileService;
-Landroid/service/storage/IExternalStorageService$Stub$Proxy;
-Landroid/service/storage/IExternalStorageService$Stub;
-Landroid/service/storage/IExternalStorageService;
-Landroid/service/textclassifier/ITextClassifierCallback$Stub$Proxy;
-Landroid/service/textclassifier/ITextClassifierCallback$Stub;
-Landroid/service/textclassifier/ITextClassifierCallback;
-Landroid/service/textclassifier/ITextClassifierService$Stub$Proxy;
-Landroid/service/textclassifier/ITextClassifierService$Stub;
-Landroid/service/textclassifier/ITextClassifierService;
-Landroid/service/textclassifier/TextClassifierService$1;
-Landroid/service/textclassifier/TextClassifierService;
-Landroid/service/timezone/TimeZoneProviderStatus$1;
-Landroid/service/timezone/TimeZoneProviderStatus;
-Landroid/service/trust/ITrustAgentService$Stub$Proxy;
-Landroid/service/trust/ITrustAgentService$Stub;
-Landroid/service/trust/ITrustAgentService;
-Landroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;
-Landroid/service/trust/ITrustAgentServiceCallback$Stub;
-Landroid/service/trust/ITrustAgentServiceCallback;
-Landroid/service/trust/TrustAgentService$1;
-Landroid/service/trust/TrustAgentService$ConfigurationData;
-Landroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;
-Landroid/service/trust/TrustAgentService;
-Landroid/service/voice/IVoiceInteractionService$Stub$Proxy;
-Landroid/service/voice/IVoiceInteractionService$Stub;
-Landroid/service/voice/IVoiceInteractionService;
-Landroid/service/voice/IVoiceInteractionSession$Stub$Proxy;
-Landroid/service/voice/IVoiceInteractionSession$Stub;
-Landroid/service/voice/IVoiceInteractionSession;
-Landroid/service/voice/IVoiceInteractionSessionService$Stub$Proxy;
-Landroid/service/voice/IVoiceInteractionSessionService$Stub;
-Landroid/service/voice/IVoiceInteractionSessionService;
-Landroid/service/voice/VoiceInteractionManagerInternal;
-Landroid/service/voice/VoiceInteractionServiceInfo;
-Landroid/service/vr/IPersistentVrStateCallbacks$Stub$Proxy;
-Landroid/service/vr/IPersistentVrStateCallbacks$Stub;
-Landroid/service/vr/IPersistentVrStateCallbacks;
-Landroid/service/vr/IVrManager$Stub$Proxy;
-Landroid/service/vr/IVrManager$Stub;
-Landroid/service/vr/IVrManager;
-Landroid/service/vr/IVrStateCallbacks$Stub$Proxy;
-Landroid/service/vr/IVrStateCallbacks$Stub;
-Landroid/service/vr/IVrStateCallbacks;
-Landroid/service/wallpaper/EngineWindowPage;
-Landroid/service/wallpaper/IWallpaperConnection$Stub$Proxy;
-Landroid/service/wallpaper/IWallpaperConnection$Stub;
-Landroid/service/wallpaper/IWallpaperConnection;
-Landroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;
-Landroid/service/wallpaper/IWallpaperEngine$Stub;
-Landroid/service/wallpaper/IWallpaperEngine;
-Landroid/service/wallpaper/IWallpaperService$Stub$Proxy;
-Landroid/service/wallpaper/IWallpaperService$Stub;
-Landroid/service/wallpaper/IWallpaperService;
-Landroid/service/wallpaper/WallpaperService$Engine$$ExternalSyntheticLambda1;
-Landroid/service/wallpaper/WallpaperService$Engine$$ExternalSyntheticLambda2;
-Landroid/service/wallpaper/WallpaperService$Engine$1;
-Landroid/service/wallpaper/WallpaperService$Engine$2;
-Landroid/service/wallpaper/WallpaperService$Engine$3;
-Landroid/service/wallpaper/WallpaperService$Engine$4;
-Landroid/service/wallpaper/WallpaperService$Engine$WallpaperInputEventReceiver;
-Landroid/service/wallpaper/WallpaperService$Engine;
-Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;
-Landroid/service/wallpaper/WallpaperService$IWallpaperServiceWrapper;
-Landroid/service/wallpaper/WallpaperService$WallpaperCommand;
-Landroid/service/wallpaper/WallpaperService;
-Landroid/service/watchdog/ExplicitHealthCheckService$PackageConfig$1;
-Landroid/service/watchdog/ExplicitHealthCheckService$PackageConfig;
-Landroid/service/watchdog/IExplicitHealthCheckService$Stub$Proxy;
-Landroid/service/watchdog/IExplicitHealthCheckService$Stub;
-Landroid/service/watchdog/IExplicitHealthCheckService;
-Landroid/speech/RecognitionListener;
-Landroid/speech/SpeechRecognizer;
-Landroid/speech/tts/ITextToSpeechCallback$Stub;
-Landroid/speech/tts/ITextToSpeechCallback;
-Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;
-Landroid/speech/tts/ITextToSpeechService$Stub;
-Landroid/speech/tts/ITextToSpeechService;
-Landroid/speech/tts/TextToSpeech$$ExternalSyntheticLambda13;
-Landroid/speech/tts/TextToSpeech$$ExternalSyntheticLambda17;
-Landroid/speech/tts/TextToSpeech$$ExternalSyntheticLambda1;
-Landroid/speech/tts/TextToSpeech$Action;
-Landroid/speech/tts/TextToSpeech$Connection$1;
-Landroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask-IA;
-Landroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;
-Landroid/speech/tts/TextToSpeech$Connection-IA;
-Landroid/speech/tts/TextToSpeech$Connection;
-Landroid/speech/tts/TextToSpeech$DirectConnection-IA;
-Landroid/speech/tts/TextToSpeech$DirectConnection;
-Landroid/speech/tts/TextToSpeech$EngineInfo;
-Landroid/speech/tts/TextToSpeech$OnInitListener;
-Landroid/speech/tts/TextToSpeech$SystemConnection-IA;
-Landroid/speech/tts/TextToSpeech$SystemConnection;
-Landroid/speech/tts/TextToSpeech;
-Landroid/speech/tts/TtsEngines$EngineInfoComparator;
-Landroid/speech/tts/TtsEngines;
-Landroid/speech/tts/UtteranceProgressListener;
-Landroid/stats/devicepolicy/nano/StringList;
-Landroid/sysprop/AdbProperties;
-Landroid/sysprop/ContactsProperties;
-Landroid/sysprop/CryptoProperties$state_values;
-Landroid/sysprop/CryptoProperties$type_values;
-Landroid/sysprop/CryptoProperties;
-Landroid/sysprop/DeviceProperties;
-Landroid/sysprop/DisplayProperties;
-Landroid/sysprop/HdmiProperties;
-Landroid/sysprop/InitProperties;
-Landroid/sysprop/InputProperties;
-Landroid/sysprop/MediaProperties;
-Landroid/sysprop/PowerProperties;
-Landroid/sysprop/SocProperties;
-Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda0;
-Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda10;
-Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda11;
-Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda13;
-Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda14;
-Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda1;
-Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda2;
-Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda3;
-Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda4;
-Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda5;
-Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda6;
-Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda7;
-Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda8;
-Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda9;
-Landroid/sysprop/TelephonyProperties;
-Landroid/sysprop/VndkProperties;
-Landroid/system/ErrnoException;
-Landroid/system/GaiException;
-Landroid/system/Int32Ref;
-Landroid/system/Int64Ref;
-Landroid/system/NetlinkSocketAddress;
-Landroid/system/Os;
-Landroid/system/OsConstants;
-Landroid/system/PacketSocketAddress;
-Landroid/system/StructAddrinfo;
-Landroid/system/StructCapUserData;
-Landroid/system/StructCapUserHeader;
-Landroid/system/StructCmsghdr;
-Landroid/system/StructGroupReq;
-Landroid/system/StructIfaddrs;
-Landroid/system/StructLinger;
-Landroid/system/StructMsghdr;
-Landroid/system/StructPasswd;
-Landroid/system/StructPollfd;
-Landroid/system/StructRlimit;
-Landroid/system/StructStat;
-Landroid/system/StructStatVfs;
-Landroid/system/StructTimespec;
-Landroid/system/StructTimeval;
-Landroid/system/StructUcred;
-Landroid/system/StructUtsname;
-Landroid/system/UnixSocketAddress;
-Landroid/system/VmSocketAddress;
-Landroid/system/keystore2/Authorization$1;
-Landroid/system/keystore2/Authorization;
-Landroid/system/keystore2/CreateOperationResponse$1;
-Landroid/system/keystore2/CreateOperationResponse;
-Landroid/system/keystore2/IKeystoreOperation$Stub$Proxy;
-Landroid/system/keystore2/IKeystoreOperation$Stub;
-Landroid/system/keystore2/IKeystoreOperation;
-Landroid/system/keystore2/IKeystoreSecurityLevel$Stub$Proxy;
-Landroid/system/keystore2/IKeystoreSecurityLevel$Stub;
-Landroid/system/keystore2/IKeystoreSecurityLevel;
-Landroid/system/keystore2/IKeystoreService$Stub$Proxy;
-Landroid/system/keystore2/IKeystoreService$Stub;
-Landroid/system/keystore2/IKeystoreService;
-Landroid/system/keystore2/KeyDescriptor$1;
-Landroid/system/keystore2/KeyDescriptor;
-Landroid/system/keystore2/KeyEntryResponse$1;
-Landroid/system/keystore2/KeyEntryResponse;
-Landroid/system/keystore2/KeyMetadata$1;
-Landroid/system/keystore2/KeyMetadata;
-Landroid/system/keystore2/KeyParameters$1;
-Landroid/system/keystore2/KeyParameters;
-Landroid/system/keystore2/OperationChallenge$1;
-Landroid/system/keystore2/OperationChallenge;
-Landroid/system/suspend/internal/ISuspendControlServiceInternal$Stub$Proxy;
-Landroid/system/suspend/internal/ISuspendControlServiceInternal$Stub;
-Landroid/system/suspend/internal/ISuspendControlServiceInternal;
-Landroid/system/suspend/internal/WakeLockInfo$1;
-Landroid/system/suspend/internal/WakeLockInfo;
-Landroid/telecom/AudioState$1;
-Landroid/telecom/AudioState;
-Landroid/telecom/Call$Callback;
-Landroid/telecom/CallAudioState$$ExternalSyntheticLambda0;
-Landroid/telecom/CallAudioState$1;
-Landroid/telecom/CallAudioState;
-Landroid/telecom/CallerInfo;
-Landroid/telecom/CallerInfoAsyncQuery;
-Landroid/telecom/Conference$Listener;
-Landroid/telecom/Conference;
-Landroid/telecom/Conferenceable;
-Landroid/telecom/Connection$FailureSignalingConnection;
-Landroid/telecom/Connection$Listener;
-Landroid/telecom/Connection$RttTextStream;
-Landroid/telecom/Connection$VideoProvider;
-Landroid/telecom/Connection;
-Landroid/telecom/ConnectionRequest$1;
-Landroid/telecom/ConnectionRequest$Builder;
-Landroid/telecom/ConnectionRequest;
-Landroid/telecom/ConnectionService$1;
-Landroid/telecom/ConnectionService$2;
-Landroid/telecom/ConnectionService$3;
-Landroid/telecom/ConnectionService$4;
-Landroid/telecom/ConnectionService$5;
-Landroid/telecom/ConnectionService;
-Landroid/telecom/ConnectionServiceAdapter;
-Landroid/telecom/DefaultDialerManager;
-Landroid/telecom/DisconnectCause$1;
-Landroid/telecom/DisconnectCause;
-Landroid/telecom/GatewayInfo$1;
-Landroid/telecom/GatewayInfo;
-Landroid/telecom/InCallService;
-Landroid/telecom/Log;
-Landroid/telecom/Logging/EventManager$Event;
-Landroid/telecom/Logging/EventManager$EventListener;
-Landroid/telecom/Logging/EventManager$EventRecord;
-Landroid/telecom/Logging/EventManager$Loggable;
-Landroid/telecom/Logging/EventManager$TimedEventPair;
-Landroid/telecom/Logging/EventManager;
-Landroid/telecom/Logging/Runnable$1;
-Landroid/telecom/Logging/Runnable;
-Landroid/telecom/Logging/Session$Info$1;
-Landroid/telecom/Logging/Session$Info;
-Landroid/telecom/Logging/Session;
-Landroid/telecom/Logging/SessionManager$$ExternalSyntheticLambda0;
-Landroid/telecom/Logging/SessionManager$$ExternalSyntheticLambda1;
-Landroid/telecom/Logging/SessionManager$$ExternalSyntheticLambda2;
-Landroid/telecom/Logging/SessionManager$ICurrentThreadId;
-Landroid/telecom/Logging/SessionManager$ISessionCleanupTimeoutMs;
-Landroid/telecom/Logging/SessionManager$ISessionIdQueryHandler;
-Landroid/telecom/Logging/SessionManager$ISessionListener;
-Landroid/telecom/Logging/SessionManager;
-Landroid/telecom/ParcelableCall$1;
-Landroid/telecom/ParcelableCall$ParcelableCallBuilder;
-Landroid/telecom/ParcelableCall;
-Landroid/telecom/ParcelableConference$1;
-Landroid/telecom/ParcelableConference;
-Landroid/telecom/ParcelableConnection$1;
-Landroid/telecom/ParcelableConnection;
-Landroid/telecom/ParcelableRttCall$1;
-Landroid/telecom/ParcelableRttCall;
-Landroid/telecom/PhoneAccount$1;
-Landroid/telecom/PhoneAccount$Builder;
-Landroid/telecom/PhoneAccount-IA;
-Landroid/telecom/PhoneAccount;
-Landroid/telecom/PhoneAccountHandle$1;
-Landroid/telecom/PhoneAccountHandle-IA;
-Landroid/telecom/PhoneAccountHandle;
-Landroid/telecom/RemoteConnectionManager;
-Landroid/telecom/StatusHints$1;
-Landroid/telecom/StatusHints;
-Landroid/telecom/TelecomAnalytics$1;
-Landroid/telecom/TelecomAnalytics$SessionTiming$1;
-Landroid/telecom/TelecomAnalytics;
-Landroid/telecom/TelecomManager$DeathRecipient;
-Landroid/telecom/TelecomManager;
-Landroid/telecom/TimedEvent;
-Landroid/telecom/VideoProfile$1;
-Landroid/telecom/VideoProfile$CameraCapabilities$1;
-Landroid/telecom/VideoProfile$CameraCapabilities;
-Landroid/telecom/VideoProfile;
-Landroid/telephony/AccessNetworkConstants$AccessNetworkType;
-Landroid/telephony/AccessNetworkConstants$TransportType;
-Landroid/telephony/AccessNetworkConstants;
-Landroid/telephony/AccessNetworkUtils;
-Landroid/telephony/ActivityStatsTechSpecificInfo$$ExternalSyntheticLambda0;
-Landroid/telephony/ActivityStatsTechSpecificInfo$$ExternalSyntheticLambda1;
-Landroid/telephony/ActivityStatsTechSpecificInfo$1;
-Landroid/telephony/ActivityStatsTechSpecificInfo;
-Landroid/telephony/AnomalyReporter;
-Landroid/telephony/AvailableNetworkInfo$1;
-Landroid/telephony/AvailableNetworkInfo;
-Landroid/telephony/BarringInfo$1;
-Landroid/telephony/BarringInfo$BarringServiceInfo$1;
-Landroid/telephony/BarringInfo$BarringServiceInfo;
-Landroid/telephony/BarringInfo;
-Landroid/telephony/BinderCacheManager$$ExternalSyntheticLambda0;
-Landroid/telephony/BinderCacheManager$BinderDeathTracker;
-Landroid/telephony/BinderCacheManager$BinderInterfaceFactory;
-Landroid/telephony/BinderCacheManager;
-Landroid/telephony/CallAttributes$1;
-Landroid/telephony/CallAttributes;
-Landroid/telephony/CallForwardingInfo$1;
-Landroid/telephony/CallForwardingInfo;
-Landroid/telephony/CallQuality$1;
-Landroid/telephony/CallQuality;
-Landroid/telephony/CallState$1;
-Landroid/telephony/CallState;
-Landroid/telephony/CarrierConfigManager$Apn;
-Landroid/telephony/CarrierConfigManager$Bsf;
-Landroid/telephony/CarrierConfigManager$CarrierConfigChangeListener;
-Landroid/telephony/CarrierConfigManager$Gps;
-Landroid/telephony/CarrierConfigManager$Ims;
-Landroid/telephony/CarrierConfigManager$ImsEmergency;
-Landroid/telephony/CarrierConfigManager$ImsRtt;
-Landroid/telephony/CarrierConfigManager$ImsServiceEntitlement;
-Landroid/telephony/CarrierConfigManager$ImsSms;
-Landroid/telephony/CarrierConfigManager$ImsSs;
-Landroid/telephony/CarrierConfigManager$ImsVoice;
-Landroid/telephony/CarrierConfigManager$ImsVt;
-Landroid/telephony/CarrierConfigManager$ImsWfc;
-Landroid/telephony/CarrierConfigManager$Iwlan;
-Landroid/telephony/CarrierConfigManager$OpportunisticNetwork;
-Landroid/telephony/CarrierConfigManager$Wifi;
-Landroid/telephony/CarrierConfigManager;
-Landroid/telephony/CarrierRestrictionRules$1;
-Landroid/telephony/CarrierRestrictionRules$Builder;
-Landroid/telephony/CarrierRestrictionRules;
-Landroid/telephony/CellConfigLte$1;
-Landroid/telephony/CellConfigLte-IA;
-Landroid/telephony/CellConfigLte;
-Landroid/telephony/CellIdentity$1;
-Landroid/telephony/CellIdentity;
-Landroid/telephony/CellIdentityCdma$1;
-Landroid/telephony/CellIdentityCdma;
-Landroid/telephony/CellIdentityGsm$1;
-Landroid/telephony/CellIdentityGsm;
-Landroid/telephony/CellIdentityLte$1;
-Landroid/telephony/CellIdentityLte;
-Landroid/telephony/CellIdentityNr$1;
-Landroid/telephony/CellIdentityNr;
-Landroid/telephony/CellIdentityTdscdma$1;
-Landroid/telephony/CellIdentityTdscdma;
-Landroid/telephony/CellIdentityWcdma$1;
-Landroid/telephony/CellIdentityWcdma;
-Landroid/telephony/CellInfo$1;
-Landroid/telephony/CellInfo;
-Landroid/telephony/CellInfoCdma$1;
-Landroid/telephony/CellInfoCdma;
-Landroid/telephony/CellInfoGsm$1;
-Landroid/telephony/CellInfoGsm;
-Landroid/telephony/CellInfoLte$1;
-Landroid/telephony/CellInfoLte;
-Landroid/telephony/CellInfoNr$1;
-Landroid/telephony/CellInfoNr;
-Landroid/telephony/CellInfoTdscdma$1;
-Landroid/telephony/CellInfoTdscdma;
-Landroid/telephony/CellInfoWcdma$1;
-Landroid/telephony/CellInfoWcdma;
-Landroid/telephony/CellLocation;
-Landroid/telephony/CellSignalStrength;
-Landroid/telephony/CellSignalStrengthCdma$1;
-Landroid/telephony/CellSignalStrengthCdma-IA;
-Landroid/telephony/CellSignalStrengthCdma;
-Landroid/telephony/CellSignalStrengthGsm$1;
-Landroid/telephony/CellSignalStrengthGsm-IA;
-Landroid/telephony/CellSignalStrengthGsm;
-Landroid/telephony/CellSignalStrengthLte$1;
-Landroid/telephony/CellSignalStrengthLte-IA;
-Landroid/telephony/CellSignalStrengthLte;
-Landroid/telephony/CellSignalStrengthNr$1;
-Landroid/telephony/CellSignalStrengthNr-IA;
-Landroid/telephony/CellSignalStrengthNr;
-Landroid/telephony/CellSignalStrengthTdscdma$1;
-Landroid/telephony/CellSignalStrengthTdscdma-IA;
-Landroid/telephony/CellSignalStrengthTdscdma;
-Landroid/telephony/CellSignalStrengthWcdma$1;
-Landroid/telephony/CellSignalStrengthWcdma-IA;
-Landroid/telephony/CellSignalStrengthWcdma;
-Landroid/telephony/ClientRequestStats$1;
-Landroid/telephony/ClientRequestStats;
-Landroid/telephony/ClosedSubscriberGroupInfo$1;
-Landroid/telephony/ClosedSubscriberGroupInfo;
-Landroid/telephony/DataConnectionRealTimeInfo$1;
-Landroid/telephony/DataConnectionRealTimeInfo;
-Landroid/telephony/DataFailCause;
-Landroid/telephony/DataSpecificRegistrationInfo$1;
-Landroid/telephony/DataSpecificRegistrationInfo-IA;
-Landroid/telephony/DataSpecificRegistrationInfo;
-Landroid/telephony/DisconnectCause;
-Landroid/telephony/IBootstrapAuthenticationCallback$Stub;
-Landroid/telephony/IBootstrapAuthenticationCallback;
-Landroid/telephony/ICellBroadcastService$Stub;
-Landroid/telephony/ICellBroadcastService;
-Landroid/telephony/ICellInfoCallback$Stub$Proxy;
-Landroid/telephony/ICellInfoCallback$Stub;
-Landroid/telephony/ICellInfoCallback;
-Landroid/telephony/INetworkService$Stub$Proxy;
-Landroid/telephony/INetworkService$Stub;
-Landroid/telephony/INetworkService;
-Landroid/telephony/INetworkServiceCallback$Stub$Proxy;
-Landroid/telephony/INetworkServiceCallback$Stub;
-Landroid/telephony/INetworkServiceCallback;
-Landroid/telephony/IccOpenLogicalChannelResponse$1;
-Landroid/telephony/IccOpenLogicalChannelResponse;
-Landroid/telephony/ImsiEncryptionInfo$1;
-Landroid/telephony/ImsiEncryptionInfo;
-Landroid/telephony/JapanesePhoneNumberFormatter;
-Landroid/telephony/LinkCapacityEstimate$1;
-Landroid/telephony/LinkCapacityEstimate;
-Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
-Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery-IA;
-Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery;
-Landroid/telephony/LocationAccessPolicy$LocationPermissionResult;
-Landroid/telephony/LocationAccessPolicy;
-Landroid/telephony/LteVopsSupportInfo$1;
-Landroid/telephony/LteVopsSupportInfo-IA;
-Landroid/telephony/LteVopsSupportInfo;
-Landroid/telephony/MmsManager;
-Landroid/telephony/ModemActivityInfo$1;
-Landroid/telephony/ModemActivityInfo;
-Landroid/telephony/ModemInfo$1;
-Landroid/telephony/ModemInfo;
-Landroid/telephony/NeighboringCellInfo$1;
-Landroid/telephony/NeighboringCellInfo;
-Landroid/telephony/NetworkRegistrationInfo$$ExternalSyntheticLambda0;
-Landroid/telephony/NetworkRegistrationInfo$1;
-Landroid/telephony/NetworkRegistrationInfo$Builder;
-Landroid/telephony/NetworkRegistrationInfo-IA;
-Landroid/telephony/NetworkRegistrationInfo;
-Landroid/telephony/NetworkScan;
-Landroid/telephony/NetworkScanRequest$1;
-Landroid/telephony/NetworkScanRequest;
-Landroid/telephony/NetworkService$INetworkServiceWrapper;
-Landroid/telephony/NetworkService$NetworkServiceHandler;
-Landroid/telephony/NetworkService$NetworkServiceProvider;
-Landroid/telephony/NetworkService;
-Landroid/telephony/NetworkServiceCallback;
-Landroid/telephony/NrVopsSupportInfo$1;
-Landroid/telephony/NrVopsSupportInfo;
-Landroid/telephony/NumberVerificationCallback;
-Landroid/telephony/PcoData$1;
-Landroid/telephony/PcoData;
-Landroid/telephony/PhoneCapability$1;
-Landroid/telephony/PhoneCapability;
-Landroid/telephony/PhoneNumberRange$1;
-Landroid/telephony/PhoneNumberRange;
-Landroid/telephony/PhoneNumberUtils$CountryCallingCodeAndNewIndex;
-Landroid/telephony/PhoneNumberUtils;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda0;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda10;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda13;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda15;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda19;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda1;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda20;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda21;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda23;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda24;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda27;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda28;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda2;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda31;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda32;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda34;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda37;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda38;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda39;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda3;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda41;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda42;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda47;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda51;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda52;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda53;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda55;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda56;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda57;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda58;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda59;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda5;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda62;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda6;
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda9;
-Landroid/telephony/PhoneStateListener;
-Landroid/telephony/PhysicalChannelConfig$1;
-Landroid/telephony/PhysicalChannelConfig$Builder;
-Landroid/telephony/PhysicalChannelConfig;
-Landroid/telephony/PinResult$1;
-Landroid/telephony/PinResult;
-Landroid/telephony/PreciseCallState$1;
-Landroid/telephony/PreciseCallState;
-Landroid/telephony/PreciseDataConnectionState$1;
-Landroid/telephony/PreciseDataConnectionState$Builder;
-Landroid/telephony/PreciseDataConnectionState;
-Landroid/telephony/RadioAccessFamily$1;
-Landroid/telephony/RadioAccessFamily;
-Landroid/telephony/RadioAccessSpecifier$1;
-Landroid/telephony/RadioAccessSpecifier;
-Landroid/telephony/Rlog;
-Landroid/telephony/ServiceState$$ExternalSyntheticLambda0;
-Landroid/telephony/ServiceState$1;
-Landroid/telephony/ServiceState;
-Landroid/telephony/SignalStrength$1;
-Landroid/telephony/SignalStrength;
-Landroid/telephony/SignalStrengthUpdateRequest$1;
-Landroid/telephony/SignalStrengthUpdateRequest;
-Landroid/telephony/SignalThresholdInfo$1;
-Landroid/telephony/SignalThresholdInfo$Builder;
-Landroid/telephony/SignalThresholdInfo;
-Landroid/telephony/SmsCbCmasInfo$1;
-Landroid/telephony/SmsCbCmasInfo;
-Landroid/telephony/SmsCbEtwsInfo$1;
-Landroid/telephony/SmsCbEtwsInfo;
-Landroid/telephony/SmsCbLocation$1;
-Landroid/telephony/SmsCbLocation;
-Landroid/telephony/SmsCbMessage$1;
-Landroid/telephony/SmsCbMessage;
-Landroid/telephony/SmsManager$1;
-Landroid/telephony/SmsManager$2;
-Landroid/telephony/SmsManager$3;
-Landroid/telephony/SmsManager$4;
-Landroid/telephony/SmsManager$5;
-Landroid/telephony/SmsManager$6;
-Landroid/telephony/SmsManager$FinancialSmsCallback;
-Landroid/telephony/SmsManager$SubscriptionResolverResult;
-Landroid/telephony/SmsManager;
-Landroid/telephony/SmsMessage$1;
-Landroid/telephony/SmsMessage$MessageClass;
-Landroid/telephony/SmsMessage$NoEmsSupportConfig;
-Landroid/telephony/SmsMessage;
-Landroid/telephony/SubscriptionInfo$1;
-Landroid/telephony/SubscriptionInfo$Builder;
-Landroid/telephony/SubscriptionInfo-IA;
-Landroid/telephony/SubscriptionInfo;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda0;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda10;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda11;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda12;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda13;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda14;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda15;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda16;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda17;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda18;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda2;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda3;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda4;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda5;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda6;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda7;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda8;
-Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda9;
-Landroid/telephony/SubscriptionManager$1;
-Landroid/telephony/SubscriptionManager$CallISubMethodHelper;
-Landroid/telephony/SubscriptionManager$IntegerPropertyInvalidatedCache;
-Landroid/telephony/SubscriptionManager$OnOpportunisticSubscriptionsChangedListener;
-Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;
-Landroid/telephony/SubscriptionManager$VoidPropertyInvalidatedCache;
-Landroid/telephony/SubscriptionManager;
-Landroid/telephony/SubscriptionPlan$1;
-Landroid/telephony/SubscriptionPlan;
-Landroid/telephony/TelephonyCallback$ActiveDataSubscriptionIdListener;
-Landroid/telephony/TelephonyCallback$AllowedNetworkTypesListener;
-Landroid/telephony/TelephonyCallback$BarringInfoListener;
-Landroid/telephony/TelephonyCallback$CallAttributesListener;
-Landroid/telephony/TelephonyCallback$CallDisconnectCauseListener;
-Landroid/telephony/TelephonyCallback$CallForwardingIndicatorListener;
-Landroid/telephony/TelephonyCallback$CallStateListener;
-Landroid/telephony/TelephonyCallback$CarrierNetworkListener;
-Landroid/telephony/TelephonyCallback$CellInfoListener;
-Landroid/telephony/TelephonyCallback$CellLocationListener;
-Landroid/telephony/TelephonyCallback$DataActivationStateListener;
-Landroid/telephony/TelephonyCallback$DataActivityListener;
-Landroid/telephony/TelephonyCallback$DataConnectionStateListener;
-Landroid/telephony/TelephonyCallback$DataEnabledListener;
-Landroid/telephony/TelephonyCallback$DisplayInfoListener;
-Landroid/telephony/TelephonyCallback$EmergencyCallbackModeListener;
-Landroid/telephony/TelephonyCallback$EmergencyNumberListListener;
-Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda26;
-Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda35;
-Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda36;
-Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda39;
-Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda47;
-Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda52;
-Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda63;
-Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda65;
-Landroid/telephony/TelephonyCallback$ImsCallDisconnectCauseListener;
-Landroid/telephony/TelephonyCallback$LinkCapacityEstimateChangedListener;
-Landroid/telephony/TelephonyCallback$MediaQualityStatusChangedListener;
-Landroid/telephony/TelephonyCallback$MessageWaitingIndicatorListener;
-Landroid/telephony/TelephonyCallback$OutgoingEmergencyCallListener;
-Landroid/telephony/TelephonyCallback$OutgoingEmergencySmsListener;
-Landroid/telephony/TelephonyCallback$PhoneCapabilityListener;
-Landroid/telephony/TelephonyCallback$PhysicalChannelConfigListener;
-Landroid/telephony/TelephonyCallback$PreciseCallStateListener;
-Landroid/telephony/TelephonyCallback$PreciseDataConnectionStateListener;
-Landroid/telephony/TelephonyCallback$RadioPowerStateListener;
-Landroid/telephony/TelephonyCallback$RegistrationFailedListener;
-Landroid/telephony/TelephonyCallback$ServiceStateListener;
-Landroid/telephony/TelephonyCallback$SignalStrengthsListener;
-Landroid/telephony/TelephonyCallback$SimultaneousCellularCallingSupportListener;
-Landroid/telephony/TelephonyCallback$SrvccStateListener;
-Landroid/telephony/TelephonyCallback$UserMobileDataStateListener;
-Landroid/telephony/TelephonyCallback$VoiceActivationStateListener;
-Landroid/telephony/TelephonyCallback;
-Landroid/telephony/TelephonyDisplayInfo$1;
-Landroid/telephony/TelephonyDisplayInfo;
-Landroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda0;
-Landroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda1;
-Landroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda2;
-Landroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda3;
-Landroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda4;
-Landroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda5;
-Landroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda6;
-Landroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda7;
-Landroid/telephony/TelephonyFrameworkInitializer;
-Landroid/telephony/TelephonyHistogram$1;
-Landroid/telephony/TelephonyHistogram;
-Landroid/telephony/TelephonyLocalConnection;
-Landroid/telephony/TelephonyManager$12;
-Landroid/telephony/TelephonyManager$13;
-Landroid/telephony/TelephonyManager$15;
-Landroid/telephony/TelephonyManager$17;
-Landroid/telephony/TelephonyManager$18;
-Landroid/telephony/TelephonyManager$19;
-Landroid/telephony/TelephonyManager$1;
-Landroid/telephony/TelephonyManager$20;
-Landroid/telephony/TelephonyManager$21;
-Landroid/telephony/TelephonyManager$2;
-Landroid/telephony/TelephonyManager$3;
-Landroid/telephony/TelephonyManager$4;
-Landroid/telephony/TelephonyManager$5;
-Landroid/telephony/TelephonyManager$6;
-Landroid/telephony/TelephonyManager$7;
-Landroid/telephony/TelephonyManager$8;
-Landroid/telephony/TelephonyManager$CarrierPrivilegesCallback;
-Landroid/telephony/TelephonyManager$CellInfoCallback;
-Landroid/telephony/TelephonyManager$DeathRecipient;
-Landroid/telephony/TelephonyManager$ModemActivityInfoException;
-Landroid/telephony/TelephonyManager$MultiSimVariants;
-Landroid/telephony/TelephonyManager$UssdResponseCallback;
-Landroid/telephony/TelephonyManager;
-Landroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda0;
-Landroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda1;
-Landroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda2;
-Landroid/telephony/TelephonyRegistryManager$1$$ExternalSyntheticLambda0;
-Landroid/telephony/TelephonyRegistryManager$1;
-Landroid/telephony/TelephonyRegistryManager$2;
-Landroid/telephony/TelephonyRegistryManager$3;
-Landroid/telephony/TelephonyRegistryManager$CarrierPrivilegesCallbackWrapper$$ExternalSyntheticLambda0;
-Landroid/telephony/TelephonyRegistryManager$CarrierPrivilegesCallbackWrapper$$ExternalSyntheticLambda1;
-Landroid/telephony/TelephonyRegistryManager$CarrierPrivilegesCallbackWrapper$$ExternalSyntheticLambda2;
-Landroid/telephony/TelephonyRegistryManager$CarrierPrivilegesCallbackWrapper$$ExternalSyntheticLambda3;
-Landroid/telephony/TelephonyRegistryManager$CarrierPrivilegesCallbackWrapper$$ExternalSyntheticLambda4;
-Landroid/telephony/TelephonyRegistryManager$CarrierPrivilegesCallbackWrapper;
-Landroid/telephony/TelephonyRegistryManager;
-Landroid/telephony/TelephonyScanManager$NetworkScanCallback;
-Landroid/telephony/TelephonyScanManager;
-Landroid/telephony/UiccAccessRule$1;
-Landroid/telephony/UiccAccessRule;
-Landroid/telephony/UiccCardInfo$1;
-Landroid/telephony/UiccCardInfo;
-Landroid/telephony/UiccSlotInfo$1;
-Landroid/telephony/UiccSlotInfo;
-Landroid/telephony/UssdResponse$1;
-Landroid/telephony/UssdResponse;
-Landroid/telephony/VisualVoicemailSms$1;
-Landroid/telephony/VisualVoicemailSms$Builder;
-Landroid/telephony/VisualVoicemailSms;
-Landroid/telephony/VisualVoicemailSmsFilterSettings$1;
-Landroid/telephony/VisualVoicemailSmsFilterSettings$Builder;
-Landroid/telephony/VisualVoicemailSmsFilterSettings;
-Landroid/telephony/VoiceSpecificRegistrationInfo$1;
-Landroid/telephony/VoiceSpecificRegistrationInfo-IA;
-Landroid/telephony/VoiceSpecificRegistrationInfo;
-Landroid/telephony/VopsSupportInfo$1;
-Landroid/telephony/VopsSupportInfo;
-Landroid/telephony/cdma/CdmaCellLocation;
-Landroid/telephony/data/ApnSetting$1;
-Landroid/telephony/data/ApnSetting$Builder;
-Landroid/telephony/data/ApnSetting-IA;
-Landroid/telephony/data/ApnSetting;
-Landroid/telephony/data/DataCallResponse$1;
-Landroid/telephony/data/DataCallResponse$Builder;
-Landroid/telephony/data/DataCallResponse;
-Landroid/telephony/data/DataProfile$1;
-Landroid/telephony/data/DataProfile$Builder;
-Landroid/telephony/data/DataProfile;
-Landroid/telephony/data/DataService$DataCallListChangedIndication;
-Landroid/telephony/data/DataService$DataServiceHandler;
-Landroid/telephony/data/DataService$DataServiceProvider;
-Landroid/telephony/data/DataService$DeactivateDataCallRequest;
-Landroid/telephony/data/DataService$IDataServiceWrapper;
-Landroid/telephony/data/DataService$SetDataProfileRequest;
-Landroid/telephony/data/DataService$SetInitialAttachApnRequest;
-Landroid/telephony/data/DataService$SetupDataCallRequest;
-Landroid/telephony/data/DataService;
-Landroid/telephony/data/DataServiceCallback;
-Landroid/telephony/data/EpsBearerQosSessionAttributes$1;
-Landroid/telephony/data/EpsBearerQosSessionAttributes;
-Landroid/telephony/data/EpsQos$1;
-Landroid/telephony/data/EpsQos;
-Landroid/telephony/data/IDataService$Stub$Proxy;
-Landroid/telephony/data/IDataService$Stub;
-Landroid/telephony/data/IDataService;
-Landroid/telephony/data/IDataServiceCallback$Stub$Proxy;
-Landroid/telephony/data/IDataServiceCallback$Stub;
-Landroid/telephony/data/IDataServiceCallback;
-Landroid/telephony/data/IQualifiedNetworksService$Stub$Proxy;
-Landroid/telephony/data/IQualifiedNetworksService$Stub;
-Landroid/telephony/data/IQualifiedNetworksService;
-Landroid/telephony/data/IQualifiedNetworksServiceCallback$Stub$Proxy;
-Landroid/telephony/data/IQualifiedNetworksServiceCallback$Stub;
-Landroid/telephony/data/IQualifiedNetworksServiceCallback;
-Landroid/telephony/data/NetworkSliceInfo$1;
-Landroid/telephony/data/NetworkSliceInfo$Builder;
-Landroid/telephony/data/NetworkSliceInfo;
-Landroid/telephony/data/NetworkSlicingConfig$1;
-Landroid/telephony/data/NetworkSlicingConfig;
-Landroid/telephony/data/NrQos$1;
-Landroid/telephony/data/NrQos;
-Landroid/telephony/data/NrQosSessionAttributes$1;
-Landroid/telephony/data/NrQosSessionAttributes;
-Landroid/telephony/data/Qos$QosBandwidth$1;
-Landroid/telephony/data/Qos$QosBandwidth;
-Landroid/telephony/data/Qos;
-Landroid/telephony/data/QosBearerFilter$1;
-Landroid/telephony/data/QosBearerFilter$PortRange$1;
-Landroid/telephony/data/QosBearerFilter$PortRange;
-Landroid/telephony/data/QosBearerFilter;
-Landroid/telephony/data/QosBearerSession$1;
-Landroid/telephony/data/QosBearerSession;
-Landroid/telephony/data/ThrottleStatus$1;
-Landroid/telephony/data/ThrottleStatus$Builder;
-Landroid/telephony/data/ThrottleStatus;
-Landroid/telephony/data/TrafficDescriptor$1;
-Landroid/telephony/data/TrafficDescriptor$Builder;
-Landroid/telephony/data/TrafficDescriptor;
-Landroid/telephony/emergency/EmergencyNumber$1;
-Landroid/telephony/emergency/EmergencyNumber;
-Landroid/telephony/euicc/DownloadableSubscription$1;
-Landroid/telephony/euicc/DownloadableSubscription;
-Landroid/telephony/euicc/EuiccCardManager$10;
-Landroid/telephony/euicc/EuiccCardManager$11;
-Landroid/telephony/euicc/EuiccCardManager$12;
-Landroid/telephony/euicc/EuiccCardManager$13;
-Landroid/telephony/euicc/EuiccCardManager$14;
-Landroid/telephony/euicc/EuiccCardManager$15;
-Landroid/telephony/euicc/EuiccCardManager$16;
-Landroid/telephony/euicc/EuiccCardManager$17;
-Landroid/telephony/euicc/EuiccCardManager$18;
-Landroid/telephony/euicc/EuiccCardManager$19;
-Landroid/telephony/euicc/EuiccCardManager$1;
-Landroid/telephony/euicc/EuiccCardManager$20;
-Landroid/telephony/euicc/EuiccCardManager$21;
-Landroid/telephony/euicc/EuiccCardManager$22;
-Landroid/telephony/euicc/EuiccCardManager$2;
-Landroid/telephony/euicc/EuiccCardManager$3;
-Landroid/telephony/euicc/EuiccCardManager$4;
-Landroid/telephony/euicc/EuiccCardManager$5;
-Landroid/telephony/euicc/EuiccCardManager$6;
-Landroid/telephony/euicc/EuiccCardManager$7;
-Landroid/telephony/euicc/EuiccCardManager$8;
-Landroid/telephony/euicc/EuiccCardManager$9;
-Landroid/telephony/euicc/EuiccCardManager$ResultCallback;
-Landroid/telephony/euicc/EuiccCardManager;
-Landroid/telephony/euicc/EuiccInfo$1;
-Landroid/telephony/euicc/EuiccInfo;
-Landroid/telephony/euicc/EuiccManager;
-Landroid/telephony/euicc/EuiccNotification$1;
-Landroid/telephony/euicc/EuiccNotification;
-Landroid/telephony/euicc/EuiccRulesAuthTable$1;
-Landroid/telephony/euicc/EuiccRulesAuthTable$Builder;
-Landroid/telephony/euicc/EuiccRulesAuthTable;
-Landroid/telephony/gba/GbaAuthRequest$1;
-Landroid/telephony/gba/GbaAuthRequest;
-Landroid/telephony/gba/IGbaService$Stub;
-Landroid/telephony/gba/IGbaService;
-Landroid/telephony/gba/UaSecurityProtocolIdentifier$1;
-Landroid/telephony/gba/UaSecurityProtocolIdentifier;
-Landroid/telephony/gsm/GsmCellLocation;
-Landroid/telephony/gsm/SmsManager;
-Landroid/telephony/gsm/SmsMessage$MessageClass;
-Landroid/telephony/gsm/SmsMessage$SubmitPdu;
-Landroid/telephony/gsm/SmsMessage;
-Landroid/telephony/ims/AudioCodecAttributes$1;
-Landroid/telephony/ims/AudioCodecAttributes;
-Landroid/telephony/ims/ImsCallForwardInfo$1;
-Landroid/telephony/ims/ImsCallForwardInfo;
-Landroid/telephony/ims/ImsCallProfile$1;
-Landroid/telephony/ims/ImsCallProfile;
-Landroid/telephony/ims/ImsCallSession$Listener;
-Landroid/telephony/ims/ImsCallSession;
-Landroid/telephony/ims/ImsConferenceState$1;
-Landroid/telephony/ims/ImsConferenceState;
-Landroid/telephony/ims/ImsException;
-Landroid/telephony/ims/ImsExternalCallState$1;
-Landroid/telephony/ims/ImsExternalCallState;
-Landroid/telephony/ims/ImsManager$$ExternalSyntheticLambda0;
-Landroid/telephony/ims/ImsManager$$ExternalSyntheticLambda1;
-Landroid/telephony/ims/ImsManager;
-Landroid/telephony/ims/ImsMmTelManager$$ExternalSyntheticLambda0;
-Landroid/telephony/ims/ImsMmTelManager$$ExternalSyntheticLambda1;
-Landroid/telephony/ims/ImsMmTelManager$$ExternalSyntheticLambda3;
-Landroid/telephony/ims/ImsMmTelManager$1;
-Landroid/telephony/ims/ImsMmTelManager$2;
-Landroid/telephony/ims/ImsMmTelManager$3;
-Landroid/telephony/ims/ImsMmTelManager$4;
-Landroid/telephony/ims/ImsMmTelManager$CapabilityCallback$CapabilityBinder;
-Landroid/telephony/ims/ImsMmTelManager$CapabilityCallback;
-Landroid/telephony/ims/ImsMmTelManager$RegistrationCallback;
-Landroid/telephony/ims/ImsMmTelManager;
-Landroid/telephony/ims/ImsRcsManager;
-Landroid/telephony/ims/ImsReasonInfo$1;
-Landroid/telephony/ims/ImsReasonInfo-IA;
-Landroid/telephony/ims/ImsReasonInfo;
-Landroid/telephony/ims/ImsRegistrationAttributes$1;
-Landroid/telephony/ims/ImsRegistrationAttributes;
-Landroid/telephony/ims/ImsService$1;
-Landroid/telephony/ims/ImsService$Listener;
-Landroid/telephony/ims/ImsService;
-Landroid/telephony/ims/ImsSsData$1;
-Landroid/telephony/ims/ImsSsData;
-Landroid/telephony/ims/ImsSsInfo$1;
-Landroid/telephony/ims/ImsSsInfo$Builder;
-Landroid/telephony/ims/ImsSsInfo;
-Landroid/telephony/ims/ImsStreamMediaProfile$1;
-Landroid/telephony/ims/ImsStreamMediaProfile;
-Landroid/telephony/ims/ImsSuppServiceNotification$1;
-Landroid/telephony/ims/ImsSuppServiceNotification;
-Landroid/telephony/ims/ImsUtListener;
-Landroid/telephony/ims/MediaQualityStatus$1;
-Landroid/telephony/ims/MediaQualityStatus;
-Landroid/telephony/ims/ProvisioningManager$Callback$CallbackBinder;
-Landroid/telephony/ims/ProvisioningManager$Callback;
-Landroid/telephony/ims/ProvisioningManager;
-Landroid/telephony/ims/RcsContactPresenceTuple$1;
-Landroid/telephony/ims/RcsContactPresenceTuple$Builder;
-Landroid/telephony/ims/RcsContactPresenceTuple$ServiceCapabilities$1;
-Landroid/telephony/ims/RcsContactPresenceTuple$ServiceCapabilities$Builder;
-Landroid/telephony/ims/RcsContactPresenceTuple$ServiceCapabilities;
-Landroid/telephony/ims/RcsContactPresenceTuple;
-Landroid/telephony/ims/RcsContactTerminatedReason$1;
-Landroid/telephony/ims/RcsContactTerminatedReason;
-Landroid/telephony/ims/RcsContactUceCapability$1;
-Landroid/telephony/ims/RcsContactUceCapability$OptionsBuilder;
-Landroid/telephony/ims/RcsContactUceCapability$PresenceBuilder;
-Landroid/telephony/ims/RcsContactUceCapability;
-Landroid/telephony/ims/RcsUceAdapter;
-Landroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder$$ExternalSyntheticLambda1;
-Landroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder$$ExternalSyntheticLambda3;
-Landroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder;
-Landroid/telephony/ims/RegistrationManager$RegistrationCallback;
-Landroid/telephony/ims/RegistrationManager;
-Landroid/telephony/ims/RtpHeaderExtension$1;
-Landroid/telephony/ims/RtpHeaderExtension;
-Landroid/telephony/ims/RtpHeaderExtensionType$1;
-Landroid/telephony/ims/RtpHeaderExtensionType;
-Landroid/telephony/ims/aidl/ICapabilityExchangeEventListener$Stub;
-Landroid/telephony/ims/aidl/ICapabilityExchangeEventListener;
-Landroid/telephony/ims/aidl/IImsCapabilityCallback$Stub$Proxy;
-Landroid/telephony/ims/aidl/IImsCapabilityCallback$Stub;
-Landroid/telephony/ims/aidl/IImsCapabilityCallback;
-Landroid/telephony/ims/aidl/IImsConfig$Stub$Proxy;
-Landroid/telephony/ims/aidl/IImsConfig$Stub;
-Landroid/telephony/ims/aidl/IImsConfig;
-Landroid/telephony/ims/aidl/IImsConfigCallback$Stub$Proxy;
-Landroid/telephony/ims/aidl/IImsConfigCallback$Stub;
-Landroid/telephony/ims/aidl/IImsConfigCallback;
-Landroid/telephony/ims/aidl/IImsMmTelFeature$Stub$Proxy;
-Landroid/telephony/ims/aidl/IImsMmTelFeature$Stub;
-Landroid/telephony/ims/aidl/IImsMmTelFeature;
-Landroid/telephony/ims/aidl/IImsMmTelListener$Stub$Proxy;
-Landroid/telephony/ims/aidl/IImsMmTelListener$Stub;
-Landroid/telephony/ims/aidl/IImsMmTelListener;
-Landroid/telephony/ims/aidl/IImsRcsController$Stub;
-Landroid/telephony/ims/aidl/IImsRcsController;
-Landroid/telephony/ims/aidl/IImsRcsFeature$Stub;
-Landroid/telephony/ims/aidl/IImsRcsFeature;
-Landroid/telephony/ims/aidl/IImsRegistration$Stub$Proxy;
-Landroid/telephony/ims/aidl/IImsRegistration$Stub;
-Landroid/telephony/ims/aidl/IImsRegistration;
-Landroid/telephony/ims/aidl/IImsRegistrationCallback$Stub$Proxy;
-Landroid/telephony/ims/aidl/IImsRegistrationCallback$Stub;
-Landroid/telephony/ims/aidl/IImsRegistrationCallback;
-Landroid/telephony/ims/aidl/IImsServiceController$Stub$Proxy;
-Landroid/telephony/ims/aidl/IImsServiceController$Stub;
-Landroid/telephony/ims/aidl/IImsServiceController;
-Landroid/telephony/ims/aidl/IImsServiceControllerListener$Stub$Proxy;
-Landroid/telephony/ims/aidl/IImsServiceControllerListener$Stub;
-Landroid/telephony/ims/aidl/IImsServiceControllerListener;
-Landroid/telephony/ims/aidl/IImsSmsListener$Stub$Proxy;
-Landroid/telephony/ims/aidl/IImsSmsListener$Stub;
-Landroid/telephony/ims/aidl/IImsSmsListener;
-Landroid/telephony/ims/aidl/IOptionsRequestCallback;
-Landroid/telephony/ims/aidl/IOptionsResponseCallback$Stub;
-Landroid/telephony/ims/aidl/IOptionsResponseCallback;
-Landroid/telephony/ims/aidl/IPublishResponseCallback$Stub;
-Landroid/telephony/ims/aidl/IPublishResponseCallback;
-Landroid/telephony/ims/aidl/IRcsConfigCallback;
-Landroid/telephony/ims/aidl/IRcsUceControllerCallback;
-Landroid/telephony/ims/aidl/IRcsUcePublishStateCallback;
-Landroid/telephony/ims/aidl/ISipTransport;
-Landroid/telephony/ims/aidl/ISubscribeResponseCallback$Stub;
-Landroid/telephony/ims/aidl/ISubscribeResponseCallback;
-Landroid/telephony/ims/feature/CapabilityChangeRequest$1;
-Landroid/telephony/ims/feature/CapabilityChangeRequest$CapabilityPair;
-Landroid/telephony/ims/feature/CapabilityChangeRequest;
-Landroid/telephony/ims/feature/ImsFeature$Capabilities;
-Landroid/telephony/ims/feature/ImsFeature$CapabilityCallbackProxy;
-Landroid/telephony/ims/feature/ImsFeature;
-Landroid/telephony/ims/feature/MmTelFeature$1;
-Landroid/telephony/ims/feature/MmTelFeature$Listener;
-Landroid/telephony/ims/feature/MmTelFeature$MmTelCapabilities;
-Landroid/telephony/ims/feature/MmTelFeature;
-Landroid/telephony/ims/feature/RcsFeature$RcsImsCapabilities;
-Landroid/telephony/ims/feature/RcsFeature;
-Landroid/telephony/ims/stub/ImsCallSessionImplBase;
-Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;
-Landroid/telephony/ims/stub/ImsConfigImplBase;
-Landroid/telephony/ims/stub/ImsEcbmImplBase$1;
-Landroid/telephony/ims/stub/ImsEcbmImplBase;
-Landroid/telephony/ims/stub/ImsFeatureConfiguration$1;
-Landroid/telephony/ims/stub/ImsFeatureConfiguration$FeatureSlotPair;
-Landroid/telephony/ims/stub/ImsFeatureConfiguration;
-Landroid/telephony/ims/stub/ImsMultiEndpointImplBase$1;
-Landroid/telephony/ims/stub/ImsMultiEndpointImplBase;
-Landroid/telephony/ims/stub/ImsRegistrationImplBase$1;
-Landroid/telephony/ims/stub/ImsRegistrationImplBase;
-Landroid/telephony/ims/stub/ImsSmsImplBase;
-Landroid/telephony/ims/stub/ImsUtImplBase$1;
-Landroid/telephony/ims/stub/ImsUtImplBase;
-Landroid/telephony/satellite/SatelliteManager;
-Landroid/text/AndroidBidi;
-Landroid/text/AndroidCharacter;
-Landroid/text/Annotation;
-Landroid/text/AutoGrowArray$ByteArray;
-Landroid/text/AutoGrowArray$FloatArray;
-Landroid/text/AutoGrowArray$IntArray;
-Landroid/text/AutoGrowArray;
-Landroid/text/BidiFormatter$DirectionalityEstimator;
-Landroid/text/BidiFormatter;
-Landroid/text/BoringLayout$Metrics;
-Landroid/text/BoringLayout;
-Landroid/text/CharSequenceCharacterIterator;
-Landroid/text/ClientFlags;
-Landroid/text/ClipboardManager;
-Landroid/text/DynamicLayout$Builder;
-Landroid/text/DynamicLayout$ChangeWatcher;
-Landroid/text/DynamicLayout-IA;
-Landroid/text/DynamicLayout;
-Landroid/text/Editable$Factory;
-Landroid/text/Editable;
-Landroid/text/Emoji;
-Landroid/text/FontConfig$1;
-Landroid/text/FontConfig$Alias$1;
-Landroid/text/FontConfig$Alias;
-Landroid/text/FontConfig$Font$1;
-Landroid/text/FontConfig$Font;
-Landroid/text/FontConfig$FontFamily$1;
-Landroid/text/FontConfig$FontFamily;
-Landroid/text/FontConfig$NamedFamilyList$1;
-Landroid/text/FontConfig$NamedFamilyList;
-Landroid/text/FontConfig;
-Landroid/text/GetChars;
-Landroid/text/GraphicsOperations;
-Landroid/text/Highlights;
-Landroid/text/Html$HtmlParser;
-Landroid/text/Html$ImageGetter;
-Landroid/text/Html$TagHandler;
-Landroid/text/Html;
-Landroid/text/HtmlToSpannedConverter$Alignment;
-Landroid/text/HtmlToSpannedConverter$Background;
-Landroid/text/HtmlToSpannedConverter$Big-IA;
-Landroid/text/HtmlToSpannedConverter$Big;
-Landroid/text/HtmlToSpannedConverter$Blockquote-IA;
-Landroid/text/HtmlToSpannedConverter$Blockquote;
-Landroid/text/HtmlToSpannedConverter$Bold-IA;
-Landroid/text/HtmlToSpannedConverter$Bold;
-Landroid/text/HtmlToSpannedConverter$Bullet-IA;
-Landroid/text/HtmlToSpannedConverter$Bullet;
-Landroid/text/HtmlToSpannedConverter$Font;
-Landroid/text/HtmlToSpannedConverter$Foreground;
-Landroid/text/HtmlToSpannedConverter$Heading;
-Landroid/text/HtmlToSpannedConverter$Href;
-Landroid/text/HtmlToSpannedConverter$Italic-IA;
-Landroid/text/HtmlToSpannedConverter$Italic;
-Landroid/text/HtmlToSpannedConverter$Monospace-IA;
-Landroid/text/HtmlToSpannedConverter$Monospace;
-Landroid/text/HtmlToSpannedConverter$Newline;
-Landroid/text/HtmlToSpannedConverter$Small-IA;
-Landroid/text/HtmlToSpannedConverter$Small;
-Landroid/text/HtmlToSpannedConverter$Strikethrough-IA;
-Landroid/text/HtmlToSpannedConverter$Strikethrough;
-Landroid/text/HtmlToSpannedConverter$Sub-IA;
-Landroid/text/HtmlToSpannedConverter$Sub;
-Landroid/text/HtmlToSpannedConverter$Super-IA;
-Landroid/text/HtmlToSpannedConverter$Super;
-Landroid/text/HtmlToSpannedConverter$Underline-IA;
-Landroid/text/HtmlToSpannedConverter$Underline;
-Landroid/text/HtmlToSpannedConverter;
-Landroid/text/Hyphenator;
-Landroid/text/InputFilter$LengthFilter;
-Landroid/text/InputFilter;
-Landroid/text/InputType;
-Landroid/text/Layout$$ExternalSyntheticLambda0;
-Landroid/text/Layout$$ExternalSyntheticLambda1;
-Landroid/text/Layout$$ExternalSyntheticLambda2;
-Landroid/text/Layout$$ExternalSyntheticLambda3;
-Landroid/text/Layout$Alignment;
-Landroid/text/Layout$Directions;
-Landroid/text/Layout$Ellipsizer;
-Landroid/text/Layout$HorizontalMeasurementProvider;
-Landroid/text/Layout$SelectionRectangleConsumer;
-Landroid/text/Layout$SpannedEllipsizer;
-Landroid/text/Layout$TabStops;
-Landroid/text/Layout$TextInclusionStrategy;
-Landroid/text/Layout;
-Landroid/text/MeasuredParagraph;
-Landroid/text/NoCopySpan$Concrete;
-Landroid/text/NoCopySpan;
-Landroid/text/PackedIntVector;
-Landroid/text/PackedObjectVector;
-Landroid/text/ParcelableSpan;
-Landroid/text/PrecomputedText$ParagraphInfo;
-Landroid/text/PrecomputedText$Params$Builder;
-Landroid/text/PrecomputedText$Params;
-Landroid/text/PrecomputedText;
-Landroid/text/Selection$END;
-Landroid/text/Selection$MEMORY;
-Landroid/text/Selection$MemoryTextWatcher;
-Landroid/text/Selection$PositionIterator;
-Landroid/text/Selection$START;
-Landroid/text/Selection;
-Landroid/text/SpanSet;
-Landroid/text/SpanWatcher;
-Landroid/text/Spannable$Factory;
-Landroid/text/Spannable;
-Landroid/text/SpannableString;
-Landroid/text/SpannableStringBuilder;
-Landroid/text/SpannableStringInternal;
-Landroid/text/Spanned;
-Landroid/text/SpannedString;
-Landroid/text/StaticLayout$Builder;
-Landroid/text/StaticLayout$LineBreaks;
-Landroid/text/StaticLayout-IA;
-Landroid/text/StaticLayout;
-Landroid/text/TextDirectionHeuristic;
-Landroid/text/TextDirectionHeuristics$AnyStrong;
-Landroid/text/TextDirectionHeuristics$FirstStrong;
-Landroid/text/TextDirectionHeuristics$TextDirectionAlgorithm;
-Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;
-Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal;
-Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;
-Landroid/text/TextDirectionHeuristics;
-Landroid/text/TextFlags;
-Landroid/text/TextLine$DecorationInfo-IA;
-Landroid/text/TextLine$DecorationInfo;
-Landroid/text/TextLine;
-Landroid/text/TextPaint;
-Landroid/text/TextShaper$GlyphsConsumer;
-Landroid/text/TextUtils$1;
-Landroid/text/TextUtils$EllipsizeCallback;
-Landroid/text/TextUtils$SimpleStringSplitter;
-Landroid/text/TextUtils$StringSplitter;
-Landroid/text/TextUtils$StringWithRemovedChars;
-Landroid/text/TextUtils$TruncateAt;
-Landroid/text/TextUtils;
-Landroid/text/TextWatcher;
-Landroid/text/format/DateFormat;
-Landroid/text/format/DateIntervalFormat;
-Landroid/text/format/DateTimeFormat$FormatterCache;
-Landroid/text/format/DateTimeFormat;
-Landroid/text/format/DateUtils;
-Landroid/text/format/DateUtilsBridge;
-Landroid/text/format/Formatter$BytesResult;
-Landroid/text/format/Formatter$RoundedBytesResult;
-Landroid/text/format/Formatter;
-Landroid/text/format/RelativeDateTimeFormatter$FormatterCache;
-Landroid/text/format/RelativeDateTimeFormatter;
-Landroid/text/format/Time$TimeCalculator;
-Landroid/text/format/Time;
-Landroid/text/format/TimeFormatter;
-Landroid/text/format/TimeMigrationUtils;
-Landroid/text/method/AllCapsTransformationMethod;
-Landroid/text/method/ArrowKeyMovementMethod;
-Landroid/text/method/BaseKeyListener$1;
-Landroid/text/method/BaseKeyListener;
-Landroid/text/method/BaseMovementMethod;
-Landroid/text/method/DateKeyListener;
-Landroid/text/method/DateTimeKeyListener;
-Landroid/text/method/DialerKeyListener;
-Landroid/text/method/DigitsKeyListener;
-Landroid/text/method/KeyListener;
-Landroid/text/method/LinkMovementMethod;
-Landroid/text/method/MetaKeyKeyListener;
-Landroid/text/method/MovementMethod;
-Landroid/text/method/MultiTapKeyListener;
-Landroid/text/method/NumberKeyListener;
-Landroid/text/method/OffsetMapping$TextUpdate;
-Landroid/text/method/OffsetMapping;
-Landroid/text/method/PasswordTransformationMethod;
-Landroid/text/method/QwertyKeyListener$Replaced;
-Landroid/text/method/QwertyKeyListener;
-Landroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;
-Landroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;
-Landroid/text/method/ReplacementTransformationMethod;
-Landroid/text/method/ScrollingMovementMethod;
-Landroid/text/method/SingleLineTransformationMethod;
-Landroid/text/method/TextKeyListener$Capitalize;
-Landroid/text/method/TextKeyListener$NullKeyListener;
-Landroid/text/method/TextKeyListener$SettingsObserver;
-Landroid/text/method/TextKeyListener;
-Landroid/text/method/TimeKeyListener;
-Landroid/text/method/Touch$DragState;
-Landroid/text/method/Touch;
-Landroid/text/method/TransformationMethod2;
-Landroid/text/method/TransformationMethod;
-Landroid/text/method/WordIterator;
-Landroid/text/style/AbsoluteSizeSpan;
-Landroid/text/style/AccessibilityClickableSpan$1;
-Landroid/text/style/AccessibilityClickableSpan;
-Landroid/text/style/AccessibilityReplacementSpan$1;
-Landroid/text/style/AccessibilityReplacementSpan;
-Landroid/text/style/AccessibilityURLSpan;
-Landroid/text/style/AlignmentSpan$Standard;
-Landroid/text/style/AlignmentSpan;
-Landroid/text/style/BackgroundColorSpan;
-Landroid/text/style/BulletSpan;
-Landroid/text/style/CharacterStyle$Passthrough;
-Landroid/text/style/CharacterStyle;
-Landroid/text/style/ClickableSpan;
-Landroid/text/style/DrawableMarginSpan;
-Landroid/text/style/DynamicDrawableSpan;
-Landroid/text/style/EasyEditSpan;
-Landroid/text/style/ForegroundColorSpan;
-Landroid/text/style/ImageSpan;
-Landroid/text/style/LeadingMarginSpan$LeadingMarginSpan2;
-Landroid/text/style/LeadingMarginSpan$Standard;
-Landroid/text/style/LeadingMarginSpan;
-Landroid/text/style/LineBackgroundSpan$Standard;
-Landroid/text/style/LineBackgroundSpan;
-Landroid/text/style/LineBreakConfigSpan;
-Landroid/text/style/LineHeightSpan$Standard;
-Landroid/text/style/LineHeightSpan$WithDensity;
-Landroid/text/style/LineHeightSpan;
-Landroid/text/style/LocaleSpan;
-Landroid/text/style/MetricAffectingSpan$Passthrough;
-Landroid/text/style/MetricAffectingSpan;
-Landroid/text/style/ParagraphStyle;
-Landroid/text/style/QuoteSpan;
-Landroid/text/style/RelativeSizeSpan;
-Landroid/text/style/ReplacementSpan;
-Landroid/text/style/ScaleXSpan;
-Landroid/text/style/SpellCheckSpan;
-Landroid/text/style/StrikethroughSpan;
-Landroid/text/style/StyleSpan;
-Landroid/text/style/SubscriptSpan;
-Landroid/text/style/SuggestionRangeSpan$1;
-Landroid/text/style/SuggestionRangeSpan;
-Landroid/text/style/SuggestionSpan$1;
-Landroid/text/style/SuggestionSpan;
-Landroid/text/style/SuperscriptSpan;
-Landroid/text/style/TabStopSpan;
-Landroid/text/style/TextAppearanceSpan;
-Landroid/text/style/TtsSpan$Builder;
-Landroid/text/style/TtsSpan$MeasureBuilder;
-Landroid/text/style/TtsSpan$SemioticClassBuilder;
-Landroid/text/style/TtsSpan$TelephoneBuilder;
-Landroid/text/style/TtsSpan$VerbatimBuilder;
-Landroid/text/style/TtsSpan;
-Landroid/text/style/TypefaceSpan;
-Landroid/text/style/URLSpan;
-Landroid/text/style/UnderlineSpan;
-Landroid/text/style/UpdateAppearance;
-Landroid/text/style/UpdateLayout;
-Landroid/text/style/WrapTogetherSpan;
-Landroid/text/util/LinkSpec;
-Landroid/text/util/Linkify$$ExternalSyntheticLambda0;
-Landroid/text/util/Linkify$1;
-Landroid/text/util/Linkify$2;
-Landroid/text/util/Linkify$3;
-Landroid/text/util/Linkify$4;
-Landroid/text/util/Linkify$MatchFilter;
-Landroid/text/util/Linkify$TransformFilter;
-Landroid/text/util/Linkify;
-Landroid/text/util/Rfc822Token;
-Landroid/text/util/Rfc822Tokenizer;
-Landroid/timezone/CountryTimeZones$OffsetResult;
-Landroid/timezone/CountryTimeZones$TimeZoneMapping;
-Landroid/timezone/CountryTimeZones;
-Landroid/timezone/TelephonyLookup;
-Landroid/timezone/TelephonyNetwork;
-Landroid/timezone/TelephonyNetworkFinder;
-Landroid/timezone/TimeZoneFinder;
-Landroid/tracing/perfetto/CreateIncrementalStateArgs;
-Landroid/tracing/perfetto/CreateTlsStateArgs;
-Landroid/tracing/perfetto/DataSource;
-Landroid/tracing/perfetto/FlushCallbackArguments;
-Landroid/tracing/perfetto/Producer;
-Landroid/tracing/perfetto/StartCallbackArguments;
-Landroid/tracing/perfetto/StopCallbackArguments;
-Landroid/tracing/perfetto/TracingContext;
-Landroid/transition/ArcMotion;
-Landroid/transition/AutoTransition;
-Landroid/transition/ChangeBounds$10;
-Landroid/transition/ChangeBounds$1;
-Landroid/transition/ChangeBounds$2;
-Landroid/transition/ChangeBounds$3;
-Landroid/transition/ChangeBounds$4;
-Landroid/transition/ChangeBounds$5;
-Landroid/transition/ChangeBounds$6;
-Landroid/transition/ChangeBounds$7;
-Landroid/transition/ChangeBounds$8;
-Landroid/transition/ChangeBounds$9;
-Landroid/transition/ChangeBounds$ViewBounds;
-Landroid/transition/ChangeBounds;
-Landroid/transition/ChangeClipBounds;
-Landroid/transition/ChangeImageTransform$1;
-Landroid/transition/ChangeImageTransform$2;
-Landroid/transition/ChangeImageTransform;
-Landroid/transition/ChangeScroll;
-Landroid/transition/ChangeTransform$1;
-Landroid/transition/ChangeTransform$2;
-Landroid/transition/ChangeTransform;
-Landroid/transition/CircularPropagation;
-Landroid/transition/Explode;
-Landroid/transition/Fade$1;
-Landroid/transition/Fade$FadeAnimatorListener;
-Landroid/transition/Fade;
-Landroid/transition/PathMotion;
-Landroid/transition/PatternPathMotion;
-Landroid/transition/Recolor;
-Landroid/transition/Scene;
-Landroid/transition/Slide$1;
-Landroid/transition/Slide$2;
-Landroid/transition/Slide$3;
-Landroid/transition/Slide$4;
-Landroid/transition/Slide$5;
-Landroid/transition/Slide$6;
-Landroid/transition/Slide$CalculateSlide;
-Landroid/transition/Slide$CalculateSlideHorizontal;
-Landroid/transition/Slide$CalculateSlideVertical;
-Landroid/transition/Slide;
-Landroid/transition/Transition$1;
-Landroid/transition/Transition$2;
-Landroid/transition/Transition$3;
-Landroid/transition/Transition$AnimationInfo;
-Landroid/transition/Transition$EpicenterCallback;
-Landroid/transition/Transition$TransitionListener;
-Landroid/transition/Transition;
-Landroid/transition/TransitionInflater;
-Landroid/transition/TransitionListenerAdapter;
-Landroid/transition/TransitionManager$MultiListener$1;
-Landroid/transition/TransitionManager$MultiListener;
-Landroid/transition/TransitionManager;
-Landroid/transition/TransitionPropagation;
-Landroid/transition/TransitionSet$1;
-Landroid/transition/TransitionSet$TransitionSetListener;
-Landroid/transition/TransitionSet;
-Landroid/transition/TransitionUtils;
-Landroid/transition/TransitionValues;
-Landroid/transition/TransitionValuesMaps;
-Landroid/transition/Visibility$1;
-Landroid/transition/Visibility$DisappearListener;
-Landroid/transition/Visibility$VisibilityInfo-IA;
-Landroid/transition/Visibility$VisibilityInfo;
-Landroid/transition/Visibility;
-Landroid/transition/VisibilityPropagation;
-Landroid/transparency/BinaryTransparencyManager;
-Landroid/updatabledriver/UpdatableDriverProto$1;
-Landroid/updatabledriver/UpdatableDriverProto$Denylist;
-Landroid/updatabledriver/UpdatableDriverProto$DenylistOrBuilder;
-Landroid/updatabledriver/UpdatableDriverProto$Denylists$Builder;
-Landroid/updatabledriver/UpdatableDriverProto$Denylists;
-Landroid/updatabledriver/UpdatableDriverProto$DenylistsOrBuilder;
-Landroid/util/AndroidException;
-Landroid/util/AndroidRuntimeException;
-Landroid/util/ArrayMap$1;
-Landroid/util/ArraySet$1;
-Landroid/util/ArraySet;
-Landroid/util/AtomicFile;
-Landroid/util/AttributeSet;
-Landroid/util/BackupUtils$BadVersionException;
-Landroid/util/BackupUtils;
-Landroid/util/Base64$Coder;
-Landroid/util/Base64$Decoder;
-Landroid/util/Base64$Encoder;
-Landroid/util/Base64;
-Landroid/util/Base64OutputStream;
-Landroid/util/CharsetUtils;
-Landroid/util/CloseGuard;
-Landroid/util/ContainerHelpers;
-Landroid/util/DataUnit$1;
-Landroid/util/DataUnit$2;
-Landroid/util/DataUnit$3;
-Landroid/util/DataUnit$4;
-Landroid/util/DataUnit$5;
-Landroid/util/DataUnit$6;
-Landroid/util/DataUnit$7;
-Landroid/util/DataUnit$8;
-Landroid/util/DataUnit;
-Landroid/util/DebugUtils;
-Landroid/util/DisplayMetrics;
-Landroid/util/DisplayUtils;
-Landroid/util/Dumpable;
-Landroid/util/EmptyArray;
-Landroid/util/EventLog$Event;
-Landroid/util/EventLog;
-Landroid/util/ExceptionUtils;
-Landroid/util/FastImmutableArraySet$FastIterator;
-Landroid/util/FastImmutableArraySet;
-Landroid/util/FeatureFlagUtils;
-Landroid/util/FloatProperty;
-Landroid/util/Half;
-Landroid/util/IconDrawableFactory;
-Landroid/util/IndentingPrintWriter;
-Landroid/util/IntArray;
-Landroid/util/IntProperty;
-Landroid/util/JsonReader$1;
-Landroid/util/JsonReader;
-Landroid/util/JsonScope;
-Landroid/util/JsonToken;
-Landroid/util/JsonWriter$1;
-Landroid/util/JsonWriter;
-Landroid/util/KeyValueListParser$IntValue;
-Landroid/util/KeyValueListParser;
-Landroid/util/KeyValueSettingObserver$SettingObserver;
-Landroid/util/KeyValueSettingObserver;
-Landroid/util/LauncherIcons;
-Landroid/util/LocalLog$ReadOnlyLocalLog;
-Landroid/util/LocalLog;
-Landroid/util/Log$1;
-Landroid/util/Log$ImmediateLogWriter;
-Landroid/util/Log$PreloadHolder;
-Landroid/util/Log$TerribleFailure;
-Landroid/util/Log$TerribleFailureHandler;
-Landroid/util/Log;
-Landroid/util/LogPrinter;
-Landroid/util/LogWriter;
-Landroid/util/LongArray;
-Landroid/util/LongArrayQueue;
-Landroid/util/LongSparseArray$StringParcelling;
-Landroid/util/LongSparseArray;
-Landroid/util/LongSparseLongArray$Parcelling;
-Landroid/util/LongSparseLongArray;
-Landroid/util/LruCache;
-Landroid/util/MalformedJsonException;
-Landroid/util/MapCollections;
-Landroid/util/MathUtils;
-Landroid/util/MemoryIntArray$1;
-Landroid/util/MemoryIntArray-IA;
-Landroid/util/MemoryIntArray;
-Landroid/util/MergedConfiguration$1;
-Landroid/util/MergedConfiguration-IA;
-Landroid/util/MergedConfiguration;
-Landroid/util/MutableBoolean;
-Landroid/util/MutableInt;
-Landroid/util/MutableLong;
-Landroid/util/NtpTrustedTime$TimeResult;
-Landroid/util/NtpTrustedTime;
-Landroid/util/PackageUtils;
-Landroid/util/Pair;
-Landroid/util/PathParser$PathData;
-Landroid/util/PathParser;
-Landroid/util/Patterns;
-Landroid/util/Pools$Pool;
-Landroid/util/Pools$SimplePool;
-Landroid/util/Pools$SynchronizedPool;
-Landroid/util/PrefixPrinter;
-Landroid/util/PrintWriterPrinter;
-Landroid/util/Printer;
-Landroid/util/Property;
-Landroid/util/Range;
-Landroid/util/Rational;
-Landroid/util/RecurrenceRule$1;
-Landroid/util/RecurrenceRule$NonrecurringIterator;
-Landroid/util/RecurrenceRule$RecurringIterator;
-Landroid/util/RecurrenceRule;
-Landroid/util/ReflectiveProperty;
-Landroid/util/RotationUtils;
-Landroid/util/Singleton;
-Landroid/util/Size;
-Landroid/util/SizeF$1;
-Landroid/util/SizeF;
-Landroid/util/Slog;
-Landroid/util/SparseArray;
-Landroid/util/SparseArrayMap;
-Landroid/util/SparseBooleanArray;
-Landroid/util/SparseDoubleArray;
-Landroid/util/SparseIntArray;
-Landroid/util/SparseLongArray;
-Landroid/util/SparseSetArray;
-Landroid/util/Spline$LinearSpline;
-Landroid/util/Spline$MonotoneCubicSpline;
-Landroid/util/Spline;
-Landroid/util/StateSet;
-Landroid/util/StringBuilderPrinter;
-Landroid/util/SuperNotCalledException;
-Landroid/util/SystemConfigFileCommitEventLogger;
-Landroid/util/TimeFormatException;
-Landroid/util/TimeUtils;
-Landroid/util/TimedRemoteCaller;
-Landroid/util/TimingLogger;
-Landroid/util/TimingsTraceLog;
-Landroid/util/TrustedTime;
-Landroid/util/TypedValue;
-Landroid/util/UtilConfig;
-Landroid/util/Xml$Encoding;
-Landroid/util/Xml;
-Landroid/util/XmlPullAttributes;
-Landroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;
-Landroid/util/apk/ApkSignatureSchemeV2Verifier;
-Landroid/util/apk/ApkSignatureSchemeV3Verifier$PlatformNotSupportedException;
-Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
-Landroid/util/apk/ApkSignatureSchemeV3Verifier;
-Landroid/util/apk/ApkSignatureSchemeV4Verifier$VerifiedSigner;
-Landroid/util/apk/ApkSignatureSchemeV4Verifier;
-Landroid/util/apk/ApkSignatureVerifier$SigningDetailsWithDigests;
-Landroid/util/apk/ApkSignatureVerifier;
-Landroid/util/apk/ApkSigningBlockUtils$1;
-Landroid/util/apk/ApkSigningBlockUtils$MultipleDigestDataDigester;
-Landroid/util/apk/ApkSigningBlockUtils$VerifiedProofOfRotation;
-Landroid/util/apk/ApkSigningBlockUtils;
-Landroid/util/apk/ByteBufferDataSource;
-Landroid/util/apk/ByteBufferFactory;
-Landroid/util/apk/DataDigester;
-Landroid/util/apk/DataSource;
-Landroid/util/apk/MemoryMappedFileDataSource;
-Landroid/util/apk/SignatureInfo;
-Landroid/util/apk/SignatureNotFoundException;
-Landroid/util/apk/VerbatimX509Certificate;
-Landroid/util/apk/VerityBuilder$BufferedDigester;
-Landroid/util/apk/VerityBuilder$VerityResult;
-Landroid/util/apk/VerityBuilder;
-Landroid/util/apk/WrappedX509Certificate;
-Landroid/util/apk/ZipUtils;
-Landroid/util/jar/StrictJarFile$EntryIterator;
-Landroid/util/jar/StrictJarFile$FDStream;
-Landroid/util/jar/StrictJarFile$JarFileInputStream;
-Landroid/util/jar/StrictJarFile$ZipInflaterInputStream;
-Landroid/util/jar/StrictJarFile;
-Landroid/util/jar/StrictJarManifest$Chunk;
-Landroid/util/jar/StrictJarManifest;
-Landroid/util/jar/StrictJarManifestReader;
-Landroid/util/jar/StrictJarVerifier$VerifierEntry;
-Landroid/util/jar/StrictJarVerifier;
-Landroid/util/proto/EncodedBuffer;
-Landroid/util/proto/ProtoInputStream;
-Landroid/util/proto/ProtoOutputStream;
-Landroid/util/proto/ProtoParseException;
-Landroid/util/proto/ProtoStream;
-Landroid/util/proto/ProtoUtils;
-Landroid/util/proto/WireTypeMismatchException;
-Landroid/view/AbsSavedState$1;
-Landroid/view/AbsSavedState$2;
-Landroid/view/AbsSavedState;
-Landroid/view/AccessibilityInteractionController$AccessibilityNodePrefetcher;
-Landroid/view/AccessibilityInteractionController$MessageHolder;
-Landroid/view/AccessibilityInteractionController$PrivateHandler;
-Landroid/view/AccessibilityInteractionController;
-Landroid/view/AccessibilityIterators$AbstractTextSegmentIterator;
-Landroid/view/AccessibilityIterators$CharacterTextSegmentIterator;
-Landroid/view/AccessibilityIterators$ParagraphTextSegmentIterator;
-Landroid/view/AccessibilityIterators$TextSegmentIterator;
-Landroid/view/AccessibilityIterators$WordTextSegmentIterator;
-Landroid/view/ActionMode$Callback2;
-Landroid/view/ActionMode$Callback;
-Landroid/view/ActionMode;
-Landroid/view/ActionProvider$SubUiVisibilityListener;
-Landroid/view/ActionProvider;
-Landroid/view/AppTransitionAnimationSpec$1;
-Landroid/view/AppTransitionAnimationSpec;
-Landroid/view/AttachedSurfaceControl$OnBufferTransformHintChangedListener;
-Landroid/view/AttachedSurfaceControl;
-Landroid/view/BatchedInputEventReceiver$1;
-Landroid/view/BatchedInputEventReceiver$BatchedInputRunnable;
-Landroid/view/BatchedInputEventReceiver;
-Landroid/view/Choreographer$1;
-Landroid/view/Choreographer$2;
-Landroid/view/Choreographer$3;
-Landroid/view/Choreographer$4;
-Landroid/view/Choreographer$CallbackQueue-IA;
-Landroid/view/Choreographer$CallbackQueue;
-Landroid/view/Choreographer$CallbackRecord-IA;
-Landroid/view/Choreographer$CallbackRecord;
-Landroid/view/Choreographer$FrameCallback;
-Landroid/view/Choreographer$FrameData;
-Landroid/view/Choreographer$FrameDisplayEventReceiver;
-Landroid/view/Choreographer$FrameHandler;
-Landroid/view/Choreographer$FrameTimeline;
-Landroid/view/Choreographer$VsyncCallback;
-Landroid/view/Choreographer-IA;
-Landroid/view/Choreographer;
-Landroid/view/CompositionSamplingListener;
-Landroid/view/ContextMenu$ContextMenuInfo;
-Landroid/view/ContextMenu;
-Landroid/view/ContextThemeWrapper;
-Landroid/view/CrossWindowBlurListeners$BlurEnabledListenerInternal;
-Landroid/view/CrossWindowBlurListeners;
-Landroid/view/CutoutSpecification$Parser;
-Landroid/view/CutoutSpecification;
-Landroid/view/Display$HdrCapabilities$1;
-Landroid/view/Display$HdrCapabilities-IA;
-Landroid/view/Display$HdrCapabilities;
-Landroid/view/Display$HdrSdrRatioListenerWrapper;
-Landroid/view/Display$Mode$1;
-Landroid/view/Display$Mode-IA;
-Landroid/view/Display$Mode;
-Landroid/view/Display;
-Landroid/view/DisplayAddress$Network$1;
-Landroid/view/DisplayAddress$Network;
-Landroid/view/DisplayAddress$Physical$1;
-Landroid/view/DisplayAddress$Physical-IA;
-Landroid/view/DisplayAddress$Physical;
-Landroid/view/DisplayAddress;
-Landroid/view/DisplayAdjustments;
-Landroid/view/DisplayCutout$Bounds-IA;
-Landroid/view/DisplayCutout$Bounds;
-Landroid/view/DisplayCutout$CutoutPathParserInfo;
-Landroid/view/DisplayCutout$ParcelableWrapper$1;
-Landroid/view/DisplayCutout$ParcelableWrapper;
-Landroid/view/DisplayCutout-IA;
-Landroid/view/DisplayCutout;
-Landroid/view/DisplayEventReceiver$FrameRateOverride;
-Landroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;
-Landroid/view/DisplayEventReceiver$VsyncEventData;
-Landroid/view/DisplayEventReceiver;
-Landroid/view/DisplayInfo$1;
-Landroid/view/DisplayInfo-IA;
-Landroid/view/DisplayInfo;
-Landroid/view/DisplayShape$1;
-Landroid/view/DisplayShape-IA;
-Landroid/view/DisplayShape;
-Landroid/view/DragEvent$1;
-Landroid/view/DragEvent;
-Landroid/view/FallbackEventHandler;
-Landroid/view/FocusFinder$$ExternalSyntheticLambda0;
-Landroid/view/FocusFinder$$ExternalSyntheticLambda1;
-Landroid/view/FocusFinder$1;
-Landroid/view/FocusFinder$FocusSorter$$ExternalSyntheticLambda0;
-Landroid/view/FocusFinder$FocusSorter$$ExternalSyntheticLambda1;
-Landroid/view/FocusFinder$FocusSorter;
-Landroid/view/FocusFinder$UserSpecifiedFocusComparator$NextFocusGetter;
-Landroid/view/FocusFinder$UserSpecifiedFocusComparator;
-Landroid/view/FocusFinder-IA;
-Landroid/view/FocusFinder;
-Landroid/view/FrameMetrics;
-Landroid/view/FrameMetricsObserver;
-Landroid/view/FrameStats;
-Landroid/view/GestureDetector$GestureHandler;
-Landroid/view/GestureDetector$OnContextClickListener;
-Landroid/view/GestureDetector$OnDoubleTapListener;
-Landroid/view/GestureDetector$OnGestureListener;
-Landroid/view/GestureDetector$SimpleOnGestureListener;
-Landroid/view/GestureDetector;
-Landroid/view/GhostView;
-Landroid/view/Gravity;
-Landroid/view/HandlerActionQueue$HandlerAction;
-Landroid/view/HandlerActionQueue;
-Landroid/view/HandwritingInitiator$HandwritableViewInfo;
-Landroid/view/HandwritingInitiator$HandwritingAreaTracker;
-Landroid/view/HandwritingInitiator$State-IA;
-Landroid/view/HandwritingInitiator$State;
-Landroid/view/HandwritingInitiator;
-Landroid/view/HapticScrollFeedbackProvider;
-Landroid/view/HdrRenderState;
-Landroid/view/IAppTransitionAnimationSpecsFuture$Stub$Proxy;
-Landroid/view/IAppTransitionAnimationSpecsFuture$Stub;
-Landroid/view/IAppTransitionAnimationSpecsFuture;
-Landroid/view/ICrossWindowBlurEnabledListener$Stub;
-Landroid/view/ICrossWindowBlurEnabledListener;
-Landroid/view/IDisplayChangeWindowController$Stub;
-Landroid/view/IDisplayChangeWindowController;
-Landroid/view/IDisplayFoldListener$Stub$Proxy;
-Landroid/view/IDisplayFoldListener$Stub;
-Landroid/view/IDisplayFoldListener;
-Landroid/view/IDisplayWindowInsetsController$Stub$Proxy;
-Landroid/view/IDisplayWindowInsetsController$Stub;
-Landroid/view/IDisplayWindowInsetsController;
-Landroid/view/IDisplayWindowListener$Stub$Proxy;
-Landroid/view/IDisplayWindowListener$Stub;
-Landroid/view/IDisplayWindowListener;
-Landroid/view/IDockedStackListener$Stub$Proxy;
-Landroid/view/IDockedStackListener$Stub;
-Landroid/view/IDockedStackListener;
-Landroid/view/IGraphicsStats$Stub$Proxy;
-Landroid/view/IGraphicsStats$Stub;
-Landroid/view/IGraphicsStats;
-Landroid/view/IGraphicsStatsCallback$Stub$Proxy;
-Landroid/view/IGraphicsStatsCallback$Stub;
-Landroid/view/IGraphicsStatsCallback;
-Landroid/view/IInputMonitorHost$Stub$Proxy;
-Landroid/view/IInputMonitorHost$Stub;
-Landroid/view/IInputMonitorHost;
-Landroid/view/IOnKeyguardExitResult$Stub$Proxy;
-Landroid/view/IOnKeyguardExitResult$Stub;
-Landroid/view/IOnKeyguardExitResult;
-Landroid/view/IPinnedTaskListener$Stub;
-Landroid/view/IPinnedTaskListener;
-Landroid/view/IRecentsAnimationController$Stub$Proxy;
-Landroid/view/IRecentsAnimationController$Stub;
-Landroid/view/IRecentsAnimationController;
-Landroid/view/IRecentsAnimationRunner$Stub$Proxy;
-Landroid/view/IRecentsAnimationRunner$Stub;
-Landroid/view/IRecentsAnimationRunner;
-Landroid/view/IRemoteAnimationFinishedCallback$Stub$Proxy;
-Landroid/view/IRemoteAnimationFinishedCallback$Stub;
-Landroid/view/IRemoteAnimationFinishedCallback;
-Landroid/view/IRemoteAnimationRunner$Stub$Proxy;
-Landroid/view/IRemoteAnimationRunner$Stub;
-Landroid/view/IRemoteAnimationRunner;
-Landroid/view/IRotationWatcher$Stub$Proxy;
-Landroid/view/IRotationWatcher$Stub;
-Landroid/view/IRotationWatcher;
-Landroid/view/IScrollCaptureCallbacks$Stub$Proxy;
-Landroid/view/IScrollCaptureCallbacks$Stub;
-Landroid/view/IScrollCaptureCallbacks;
-Landroid/view/IScrollCaptureResponseListener$Stub$Proxy;
-Landroid/view/IScrollCaptureResponseListener$Stub;
-Landroid/view/IScrollCaptureResponseListener;
-Landroid/view/ISensitiveContentProtectionManager$Stub;
-Landroid/view/ISensitiveContentProtectionManager;
-Landroid/view/ISurfaceControlViewHost;
-Landroid/view/ISurfaceControlViewHostParent$Stub;
-Landroid/view/ISurfaceControlViewHostParent;
-Landroid/view/ISystemGestureExclusionListener$Stub;
-Landroid/view/ISystemGestureExclusionListener;
-Landroid/view/IWallpaperVisibilityListener$Stub$Proxy;
-Landroid/view/IWallpaperVisibilityListener$Stub;
-Landroid/view/IWallpaperVisibilityListener;
-Landroid/view/IWindow$Stub;
-Landroid/view/IWindow;
-Landroid/view/IWindowFocusObserver$Stub;
-Landroid/view/IWindowFocusObserver;
-Landroid/view/IWindowId$Stub$Proxy;
-Landroid/view/IWindowId$Stub;
-Landroid/view/IWindowId;
-Landroid/view/IWindowManager$Stub$Proxy;
-Landroid/view/IWindowManager$Stub;
-Landroid/view/IWindowManager;
-Landroid/view/IWindowSession$Stub$Proxy;
-Landroid/view/IWindowSession$Stub;
-Landroid/view/IWindowSession;
-Landroid/view/IWindowSessionCallback$Stub$Proxy;
-Landroid/view/IWindowSessionCallback$Stub;
-Landroid/view/IWindowSessionCallback;
-Landroid/view/ImeFocusController$InputMethodManagerDelegate;
-Landroid/view/ImeFocusController;
-Landroid/view/ImeInsetsSourceConsumer;
-Landroid/view/InflateException;
-Landroid/view/InputApplicationHandle;
-Landroid/view/InputChannel$1;
-Landroid/view/InputChannel;
-Landroid/view/InputDevice$1;
-Landroid/view/InputDevice$MotionRange-IA;
-Landroid/view/InputDevice$MotionRange;
-Landroid/view/InputDevice$ViewBehavior;
-Landroid/view/InputDevice-IA;
-Landroid/view/InputDevice;
-Landroid/view/InputEvent$1;
-Landroid/view/InputEvent;
-Landroid/view/InputEventAssigner;
-Landroid/view/InputEventCompatProcessor;
-Landroid/view/InputEventConsistencyVerifier;
-Landroid/view/InputEventReceiver;
-Landroid/view/InputEventSender$1;
-Landroid/view/InputEventSender;
-Landroid/view/InputMonitor$1;
-Landroid/view/InputMonitor;
-Landroid/view/InputQueue$Callback;
-Landroid/view/InputQueue$FinishedInputEventCallback;
-Landroid/view/InputQueue;
-Landroid/view/InputWindowHandle;
-Landroid/view/InsetsAnimationControlCallbacks;
-Landroid/view/InsetsAnimationControlImpl$$ExternalSyntheticLambda0;
-Landroid/view/InsetsAnimationControlImpl;
-Landroid/view/InsetsAnimationControlRunner;
-Landroid/view/InsetsAnimationThread;
-Landroid/view/InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda0;
-Landroid/view/InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda1;
-Landroid/view/InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda0;
-Landroid/view/InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda1;
-Landroid/view/InsetsAnimationThreadControlRunner$1;
-Landroid/view/InsetsAnimationThreadControlRunner;
-Landroid/view/InsetsController$$ExternalSyntheticLambda0;
-Landroid/view/InsetsController$$ExternalSyntheticLambda10;
-Landroid/view/InsetsController$$ExternalSyntheticLambda11;
-Landroid/view/InsetsController$$ExternalSyntheticLambda12;
-Landroid/view/InsetsController$$ExternalSyntheticLambda1;
-Landroid/view/InsetsController$$ExternalSyntheticLambda2;
-Landroid/view/InsetsController$$ExternalSyntheticLambda3;
-Landroid/view/InsetsController$$ExternalSyntheticLambda4;
-Landroid/view/InsetsController$$ExternalSyntheticLambda5;
-Landroid/view/InsetsController$$ExternalSyntheticLambda6;
-Landroid/view/InsetsController$$ExternalSyntheticLambda7;
-Landroid/view/InsetsController$$ExternalSyntheticLambda8;
-Landroid/view/InsetsController$$ExternalSyntheticLambda9;
-Landroid/view/InsetsController$1;
-Landroid/view/InsetsController$2;
-Landroid/view/InsetsController$3;
-Landroid/view/InsetsController$Host;
-Landroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda0;
-Landroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda1;
-Landroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda2;
-Landroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda3;
-Landroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda4;
-Landroid/view/InsetsController$InternalAnimationControlListener$1;
-Landroid/view/InsetsController$InternalAnimationControlListener$2;
-Landroid/view/InsetsController$InternalAnimationControlListener;
-Landroid/view/InsetsController$PendingControlRequest;
-Landroid/view/InsetsController$RunningAnimation;
-Landroid/view/InsetsController;
-Landroid/view/InsetsFlags;
-Landroid/view/InsetsFrameProvider$1;
-Landroid/view/InsetsFrameProvider;
-Landroid/view/InsetsResizeAnimationRunner;
-Landroid/view/InsetsSource$1;
-Landroid/view/InsetsSource;
-Landroid/view/InsetsSourceConsumer;
-Landroid/view/InsetsSourceControl$1;
-Landroid/view/InsetsSourceControl$Array$1;
-Landroid/view/InsetsSourceControl$Array;
-Landroid/view/InsetsSourceControl;
-Landroid/view/InsetsState$1;
-Landroid/view/InsetsState$OnTraverseCallbacks;
-Landroid/view/InsetsState;
-Landroid/view/InternalInsetsAnimationController;
-Landroid/view/KeyCharacterMap$1;
-Landroid/view/KeyCharacterMap$FallbackAction;
-Landroid/view/KeyCharacterMap$UnavailableException;
-Landroid/view/KeyCharacterMap-IA;
-Landroid/view/KeyCharacterMap;
-Landroid/view/KeyEvent$1;
-Landroid/view/KeyEvent$Callback;
-Landroid/view/KeyEvent$DispatcherState;
-Landroid/view/KeyEvent;
-Landroid/view/LayoutInflater$BlinkLayout$1;
-Landroid/view/LayoutInflater$BlinkLayout;
-Landroid/view/LayoutInflater$Factory2;
-Landroid/view/LayoutInflater$Factory;
-Landroid/view/LayoutInflater$FactoryMerger;
-Landroid/view/LayoutInflater$Filter;
-Landroid/view/LayoutInflater;
-Landroid/view/MagnificationSpec$1;
-Landroid/view/MagnificationSpec;
-Landroid/view/Menu;
-Landroid/view/MenuInflater$InflatedOnMenuItemClickListener;
-Landroid/view/MenuInflater$MenuState;
-Landroid/view/MenuInflater;
-Landroid/view/MenuItem$OnActionExpandListener;
-Landroid/view/MenuItem$OnMenuItemClickListener;
-Landroid/view/MenuItem;
-Landroid/view/MotionEvent$1;
-Landroid/view/MotionEvent$PointerCoords;
-Landroid/view/MotionEvent$PointerProperties;
-Landroid/view/MotionEvent;
-Landroid/view/MotionPredictor;
-Landroid/view/NativeVectorDrawableAnimator;
-Landroid/view/NotificationHeaderView$1;
-Landroid/view/NotificationHeaderView$HeaderTouchListener;
-Landroid/view/NotificationHeaderView;
-Landroid/view/NotificationTopLineView;
-Landroid/view/OnReceiveContentListener;
-Landroid/view/OrientationEventListener$SensorEventListenerImpl;
-Landroid/view/OrientationEventListener;
-Landroid/view/OrientationListener;
-Landroid/view/PendingInsetsController$PendingRequest;
-Landroid/view/PendingInsetsController;
-Landroid/view/PixelCopy$1;
-Landroid/view/PixelCopy$OnPixelCopyFinishedListener;
-Landroid/view/PixelCopy;
-Landroid/view/PointerIcon$1;
-Landroid/view/PointerIcon;
-Landroid/view/PrivacyIndicatorBounds$1;
-Landroid/view/PrivacyIndicatorBounds;
-Landroid/view/RemotableViewMethod;
-Landroid/view/RemoteAccessibilityController$RemoteAccessibilityEmbeddedConnection;
-Landroid/view/RemoteAccessibilityController;
-Landroid/view/RemoteAnimationAdapter$1;
-Landroid/view/RemoteAnimationAdapter;
-Landroid/view/RemoteAnimationDefinition$1;
-Landroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry$1;
-Landroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;
-Landroid/view/RemoteAnimationDefinition;
-Landroid/view/RemoteAnimationTarget$1;
-Landroid/view/RemoteAnimationTarget;
-Landroid/view/RenderNodeAnimator;
-Landroid/view/RoundScrollbarRenderer;
-Landroid/view/RoundedCorner$1;
-Landroid/view/RoundedCorner;
-Landroid/view/RoundedCorners$1;
-Landroid/view/RoundedCorners;
-Landroid/view/ScaleGestureDetector$1;
-Landroid/view/ScaleGestureDetector$OnScaleGestureListener;
-Landroid/view/ScaleGestureDetector$SimpleOnScaleGestureListener;
-Landroid/view/ScaleGestureDetector;
-Landroid/view/ScrollCaptureSearchResults;
-Landroid/view/ScrollFeedbackProvider;
-Landroid/view/SearchEvent;
-Landroid/view/SoundEffectConstants;
-Landroid/view/SubMenu;
-Landroid/view/Surface$1;
-Landroid/view/Surface$CompatibleCanvas-IA;
-Landroid/view/Surface$CompatibleCanvas;
-Landroid/view/Surface$HwuiContext;
-Landroid/view/Surface$OutOfResourcesException;
-Landroid/view/Surface;
-Landroid/view/SurfaceControl$1;
-Landroid/view/SurfaceControl$Builder;
-Landroid/view/SurfaceControl$CieXyz;
-Landroid/view/SurfaceControl$DesiredDisplayModeSpecs;
-Landroid/view/SurfaceControl$DisplayMode;
-Landroid/view/SurfaceControl$DisplayPrimaries;
-Landroid/view/SurfaceControl$DynamicDisplayInfo;
-Landroid/view/SurfaceControl$JankData;
-Landroid/view/SurfaceControl$OnJankDataListener;
-Landroid/view/SurfaceControl$OnReparentListener;
-Landroid/view/SurfaceControl$RefreshRateRange$1;
-Landroid/view/SurfaceControl$RefreshRateRange;
-Landroid/view/SurfaceControl$RefreshRateRanges;
-Landroid/view/SurfaceControl$StaticDisplayInfo;
-Landroid/view/SurfaceControl$Transaction$1;
-Landroid/view/SurfaceControl$Transaction$2;
-Landroid/view/SurfaceControl$Transaction;
-Landroid/view/SurfaceControl$TransactionCommittedListener;
-Landroid/view/SurfaceControl$TransactionStats;
-Landroid/view/SurfaceControl$TrustedPresentationCallback;
-Landroid/view/SurfaceControl$TrustedPresentationThresholds;
-Landroid/view/SurfaceControl-IA;
-Landroid/view/SurfaceControl;
-Landroid/view/SurfaceControlHdrLayerInfoListener;
-Landroid/view/SurfaceControlRegistry$DefaultReporter-IA;
-Landroid/view/SurfaceControlRegistry$DefaultReporter;
-Landroid/view/SurfaceControlRegistry$NoOpRegistry-IA;
-Landroid/view/SurfaceControlRegistry$NoOpRegistry;
-Landroid/view/SurfaceControlRegistry$Reporter;
-Landroid/view/SurfaceControlRegistry-IA;
-Landroid/view/SurfaceControlRegistry;
-Landroid/view/SurfaceControlViewHost$SurfacePackage$1;
-Landroid/view/SurfaceControlViewHost$SurfacePackage;
-Landroid/view/SurfaceHolder$Callback2;
-Landroid/view/SurfaceHolder$Callback;
-Landroid/view/SurfaceHolder;
-Landroid/view/SurfaceSession;
-Landroid/view/SurfaceView$$ExternalSyntheticLambda0;
-Landroid/view/SurfaceView$$ExternalSyntheticLambda1;
-Landroid/view/SurfaceView$$ExternalSyntheticLambda2;
-Landroid/view/SurfaceView$$ExternalSyntheticLambda3;
-Landroid/view/SurfaceView$$ExternalSyntheticLambda4;
-Landroid/view/SurfaceView$$ExternalSyntheticLambda5;
-Landroid/view/SurfaceView$1;
-Landroid/view/SurfaceView$2;
-Landroid/view/SurfaceView$SurfaceViewPositionUpdateListener;
-Landroid/view/SurfaceView$SyncBufferTransactionCallback-IA;
-Landroid/view/SurfaceView$SyncBufferTransactionCallback;
-Landroid/view/SurfaceView;
-Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;
-Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams-IA;
-Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;
-Landroid/view/SyncRtSurfaceTransactionApplier;
-Landroid/view/TextureView$$ExternalSyntheticLambda0;
-Landroid/view/TextureView$$ExternalSyntheticLambda1;
-Landroid/view/TextureView$SurfaceTextureListener;
-Landroid/view/TextureView;
-Landroid/view/ThreadedRenderer$1$$ExternalSyntheticLambda0;
-Landroid/view/ThreadedRenderer$1;
-Landroid/view/ThreadedRenderer$DrawCallbacks;
-Landroid/view/ThreadedRenderer$WebViewOverlayProvider-IA;
-Landroid/view/ThreadedRenderer$WebViewOverlayProvider;
-Landroid/view/ThreadedRenderer;
-Landroid/view/TouchDelegate;
-Landroid/view/TunnelModeEnabledListener;
-Landroid/view/VelocityTracker;
-Landroid/view/VerifiedInputEvent$1;
-Landroid/view/VerifiedInputEvent;
-Landroid/view/VerifiedKeyEvent$1;
-Landroid/view/VerifiedKeyEvent;
-Landroid/view/VerifiedMotionEvent$1;
-Landroid/view/VerifiedMotionEvent;
-Landroid/view/View$$ExternalSyntheticLambda0;
-Landroid/view/View$$ExternalSyntheticLambda10;
-Landroid/view/View$$ExternalSyntheticLambda11;
-Landroid/view/View$$ExternalSyntheticLambda12;
-Landroid/view/View$$ExternalSyntheticLambda13;
-Landroid/view/View$$ExternalSyntheticLambda1;
-Landroid/view/View$$ExternalSyntheticLambda2;
-Landroid/view/View$$ExternalSyntheticLambda3;
-Landroid/view/View$$ExternalSyntheticLambda4;
-Landroid/view/View$$ExternalSyntheticLambda5;
-Landroid/view/View$$ExternalSyntheticLambda7;
-Landroid/view/View$$ExternalSyntheticLambda8;
-Landroid/view/View$$ExternalSyntheticLambda9;
-Landroid/view/View$10;
-Landroid/view/View$11;
-Landroid/view/View$12;
-Landroid/view/View$13;
-Landroid/view/View$1;
-Landroid/view/View$2;
-Landroid/view/View$3;
-Landroid/view/View$4;
-Landroid/view/View$5;
-Landroid/view/View$6;
-Landroid/view/View$7;
-Landroid/view/View$8;
-Landroid/view/View$9;
-Landroid/view/View$AccessibilityDelegate;
-Landroid/view/View$AttachInfo$Callbacks;
-Landroid/view/View$AttachInfo$InvalidateInfo;
-Landroid/view/View$AttachInfo;
-Landroid/view/View$BaseSavedState$1;
-Landroid/view/View$BaseSavedState;
-Landroid/view/View$CheckForLongPress-IA;
-Landroid/view/View$CheckForLongPress;
-Landroid/view/View$CheckForTap-IA;
-Landroid/view/View$CheckForTap;
-Landroid/view/View$DeclaredOnClickListener;
-Landroid/view/View$DragShadowBuilder;
-Landroid/view/View$ForegroundInfo-IA;
-Landroid/view/View$ForegroundInfo;
-Landroid/view/View$ListenerInfo;
-Landroid/view/View$MatchIdPredicate;
-Landroid/view/View$MatchLabelForPredicate;
-Landroid/view/View$MeasureSpec;
-Landroid/view/View$OnApplyWindowInsetsListener;
-Landroid/view/View$OnAttachStateChangeListener;
-Landroid/view/View$OnClickListener;
-Landroid/view/View$OnCreateContextMenuListener;
-Landroid/view/View$OnDragListener;
-Landroid/view/View$OnFocusChangeListener;
-Landroid/view/View$OnGenericMotionListener;
-Landroid/view/View$OnHoverListener;
-Landroid/view/View$OnKeyListener;
-Landroid/view/View$OnLayoutChangeListener;
-Landroid/view/View$OnLongClickListener;
-Landroid/view/View$OnScrollChangeListener;
-Landroid/view/View$OnSystemUiVisibilityChangeListener;
-Landroid/view/View$OnTouchListener;
-Landroid/view/View$PerformClick-IA;
-Landroid/view/View$PerformClick;
-Landroid/view/View$ScrollabilityCache;
-Landroid/view/View$SendAccessibilityEventThrottle;
-Landroid/view/View$SendViewScrolledAccessibilityEvent;
-Landroid/view/View$TintInfo;
-Landroid/view/View$TooltipInfo-IA;
-Landroid/view/View$TooltipInfo;
-Landroid/view/View$TransformationInfo;
-Landroid/view/View$UnsetPressedState-IA;
-Landroid/view/View$UnsetPressedState;
-Landroid/view/View$VisibilityChangeForAutofillHandler-IA;
-Landroid/view/View$VisibilityChangeForAutofillHandler;
-Landroid/view/View;
-Landroid/view/ViewAnimationHostBridge;
-Landroid/view/ViewAnimationUtils;
-Landroid/view/ViewConfiguration;
-Landroid/view/ViewCredentialHandler;
-Landroid/view/ViewDebug$ExportedProperty;
-Landroid/view/ViewDebug$FlagToString;
-Landroid/view/ViewDebug$HierarchyHandler;
-Landroid/view/ViewDebug$IntToString;
-Landroid/view/ViewDebug$ViewMethodInvocationSerializationException;
-Landroid/view/ViewDebug;
-Landroid/view/ViewFrameInfo;
-Landroid/view/ViewGroup$1;
-Landroid/view/ViewGroup$2;
-Landroid/view/ViewGroup$4;
-Landroid/view/ViewGroup$ChildListForAccessibility;
-Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;
-Landroid/view/ViewGroup$HoverTarget;
-Landroid/view/ViewGroup$LayoutParams;
-Landroid/view/ViewGroup$MarginLayoutParams;
-Landroid/view/ViewGroup$OnHierarchyChangeListener;
-Landroid/view/ViewGroup$TouchTarget;
-Landroid/view/ViewGroup$ViewLocationHolder;
-Landroid/view/ViewGroup;
-Landroid/view/ViewGroupOverlay;
-Landroid/view/ViewHierarchyEncoder;
-Landroid/view/ViewManager;
-Landroid/view/ViewOutlineProvider$1;
-Landroid/view/ViewOutlineProvider$2;
-Landroid/view/ViewOutlineProvider$3;
-Landroid/view/ViewOutlineProvider;
-Landroid/view/ViewOverlay$OverlayViewGroup;
-Landroid/view/ViewOverlay;
-Landroid/view/ViewParent;
-Landroid/view/ViewPropertyAnimator$1;
-Landroid/view/ViewPropertyAnimator$2;
-Landroid/view/ViewPropertyAnimator$3;
-Landroid/view/ViewPropertyAnimator$AnimatorEventListener-IA;
-Landroid/view/ViewPropertyAnimator$AnimatorEventListener;
-Landroid/view/ViewPropertyAnimator$NameValuesHolder;
-Landroid/view/ViewPropertyAnimator$PropertyBundle;
-Landroid/view/ViewPropertyAnimator;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda0;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda10;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda11;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda12;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda13;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda14;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda15;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda16;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda17;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda18;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda1;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda2;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda3;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda4;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda5;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda6;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda7;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda8;
-Landroid/view/ViewRootImpl$$ExternalSyntheticLambda9;
-Landroid/view/ViewRootImpl$1;
-Landroid/view/ViewRootImpl$2;
-Landroid/view/ViewRootImpl$3;
-Landroid/view/ViewRootImpl$4;
-Landroid/view/ViewRootImpl$5;
-Landroid/view/ViewRootImpl$6;
-Landroid/view/ViewRootImpl$7;
-Landroid/view/ViewRootImpl$8;
-Landroid/view/ViewRootImpl$9;
-Landroid/view/ViewRootImpl$AccessibilityInteractionConnection;
-Landroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager;
-Landroid/view/ViewRootImpl$ActivityConfigCallback;
-Landroid/view/ViewRootImpl$AsyncInputStage;
-Landroid/view/ViewRootImpl$CalledFromWrongThreadException;
-Landroid/view/ViewRootImpl$ConfigChangedCallback;
-Landroid/view/ViewRootImpl$ConsumeBatchedInputImmediatelyRunnable;
-Landroid/view/ViewRootImpl$ConsumeBatchedInputRunnable;
-Landroid/view/ViewRootImpl$EarlyPostImeInputStage;
-Landroid/view/ViewRootImpl$GfxInfo;
-Landroid/view/ViewRootImpl$HighContrastTextManager;
-Landroid/view/ViewRootImpl$ImeInputStage;
-Landroid/view/ViewRootImpl$InputMetricsListener;
-Landroid/view/ViewRootImpl$InputStage;
-Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;
-Landroid/view/ViewRootImpl$NativePostImeInputStage;
-Landroid/view/ViewRootImpl$NativePreImeInputStage;
-Landroid/view/ViewRootImpl$QueuedInputEvent-IA;
-Landroid/view/ViewRootImpl$QueuedInputEvent;
-Landroid/view/ViewRootImpl$SendWindowContentChangedAccessibilityEvent;
-Landroid/view/ViewRootImpl$SurfaceChangedCallback;
-Landroid/view/ViewRootImpl$SyntheticInputStage;
-Landroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;
-Landroid/view/ViewRootImpl$SyntheticJoystickHandler;
-Landroid/view/ViewRootImpl$SyntheticKeyboardHandler;
-Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler$1;
-Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;
-Landroid/view/ViewRootImpl$SyntheticTrackballHandler;
-Landroid/view/ViewRootImpl$SystemUiVisibilityInfo;
-Landroid/view/ViewRootImpl$TakenSurfaceHolder;
-Landroid/view/ViewRootImpl$TrackballAxis;
-Landroid/view/ViewRootImpl$TraversalRunnable;
-Landroid/view/ViewRootImpl$UnhandledKeyManager-IA;
-Landroid/view/ViewRootImpl$UnhandledKeyManager;
-Landroid/view/ViewRootImpl$ViewPostImeInputStage;
-Landroid/view/ViewRootImpl$ViewPreImeInputStage;
-Landroid/view/ViewRootImpl$ViewRootHandler;
-Landroid/view/ViewRootImpl$W;
-Landroid/view/ViewRootImpl$WindowInputEventReceiver;
-Landroid/view/ViewRootImpl;
-Landroid/view/ViewRootInsetsControllerHost;
-Landroid/view/ViewRootRectTracker$ViewInfo;
-Landroid/view/ViewRootRectTracker;
-Landroid/view/ViewStructure$HtmlInfo$Builder;
-Landroid/view/ViewStructure$HtmlInfo;
-Landroid/view/ViewStructure;
-Landroid/view/ViewStub$OnInflateListener;
-Landroid/view/ViewStub$ViewReplaceRunnable;
-Landroid/view/ViewStub;
-Landroid/view/ViewTraversalTracingStrings;
-Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;
-Landroid/view/ViewTreeObserver$CopyOnWriteArray;
-Landroid/view/ViewTreeObserver$InternalInsetsInfo;
-Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;
-Landroid/view/ViewTreeObserver$OnDrawListener;
-Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;
-Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;
-Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;
-Landroid/view/ViewTreeObserver$OnPreDrawListener;
-Landroid/view/ViewTreeObserver$OnScrollChangedListener;
-Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;
-Landroid/view/ViewTreeObserver$OnWindowAttachListener;
-Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener;
-Landroid/view/ViewTreeObserver$OnWindowShownListener;
-Landroid/view/ViewTreeObserver$OnWindowVisibilityChangeListener;
-Landroid/view/ViewTreeObserver;
-Landroid/view/Window$Callback;
-Landroid/view/Window$DecorCallback;
-Landroid/view/Window$OnContentApplyWindowInsetsListener;
-Landroid/view/Window$OnFrameMetricsAvailableListener;
-Landroid/view/Window$OnWindowDismissedCallback;
-Landroid/view/Window$OnWindowSwipeDismissedCallback;
-Landroid/view/Window$WindowControllerCallback;
-Landroid/view/Window;
-Landroid/view/WindowAnimationFrameStats$1;
-Landroid/view/WindowAnimationFrameStats;
-Landroid/view/WindowCallbacks;
-Landroid/view/WindowContentFrameStats$1;
-Landroid/view/WindowContentFrameStats;
-Landroid/view/WindowId$1;
-Landroid/view/WindowId;
-Landroid/view/WindowInsets$Builder;
-Landroid/view/WindowInsets$Side;
-Landroid/view/WindowInsets$Type;
-Landroid/view/WindowInsets;
-Landroid/view/WindowInsetsAnimation$Bounds;
-Landroid/view/WindowInsetsAnimation$Callback;
-Landroid/view/WindowInsetsAnimation;
-Landroid/view/WindowInsetsAnimationControlListener;
-Landroid/view/WindowInsetsAnimationController;
-Landroid/view/WindowInsetsController$OnControllableInsetsChangedListener;
-Landroid/view/WindowInsetsController;
-Landroid/view/WindowLayout;
-Landroid/view/WindowLeaked;
-Landroid/view/WindowManager$BadTokenException;
-Landroid/view/WindowManager$InvalidDisplayException;
-Landroid/view/WindowManager$LayoutParams$1;
-Landroid/view/WindowManager$LayoutParams;
-Landroid/view/WindowManager;
-Landroid/view/WindowManagerGlobal$$ExternalSyntheticLambda0;
-Landroid/view/WindowManagerGlobal$1;
-Landroid/view/WindowManagerGlobal$2;
-Landroid/view/WindowManagerGlobal$TrustedPresentationListener;
-Landroid/view/WindowManagerGlobal;
-Landroid/view/WindowManagerImpl;
-Landroid/view/WindowManagerPolicyConstants$PointerEventListener;
-Landroid/view/WindowManagerPolicyConstants;
-Landroid/view/WindowMetrics;
-Landroid/view/WindowlessWindowLayout;
-Landroid/view/WindowlessWindowManager;
-Landroid/view/accessibility/AccessibilityCache$AccessibilityNodeRefresher;
-Landroid/view/accessibility/AccessibilityCache;
-Landroid/view/accessibility/AccessibilityEvent$1;
-Landroid/view/accessibility/AccessibilityEvent;
-Landroid/view/accessibility/AccessibilityEventSource;
-Landroid/view/accessibility/AccessibilityInteractionClient;
-Landroid/view/accessibility/AccessibilityManager$$ExternalSyntheticLambda0;
-Landroid/view/accessibility/AccessibilityManager$$ExternalSyntheticLambda1;
-Landroid/view/accessibility/AccessibilityManager$$ExternalSyntheticLambda3;
-Landroid/view/accessibility/AccessibilityManager$1$$ExternalSyntheticLambda0;
-Landroid/view/accessibility/AccessibilityManager$1;
-Landroid/view/accessibility/AccessibilityManager$AccessibilityPolicy;
-Landroid/view/accessibility/AccessibilityManager$AccessibilityServicesStateChangeListener;
-Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;
-Landroid/view/accessibility/AccessibilityManager$HighTextContrastChangeListener;
-Landroid/view/accessibility/AccessibilityManager$MyCallback-IA;
-Landroid/view/accessibility/AccessibilityManager$MyCallback;
-Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;
-Landroid/view/accessibility/AccessibilityManager;
-Landroid/view/accessibility/AccessibilityNodeIdManager;
-Landroid/view/accessibility/AccessibilityNodeInfo$1;
-Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction$1;
-Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;
-Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo;
-Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo;
-Landroid/view/accessibility/AccessibilityNodeInfo$ExtraRenderingInfo;
-Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo;
-Landroid/view/accessibility/AccessibilityNodeInfo$TouchDelegateInfo$1;
-Landroid/view/accessibility/AccessibilityNodeInfo$TouchDelegateInfo;
-Landroid/view/accessibility/AccessibilityNodeInfo;
-Landroid/view/accessibility/AccessibilityNodeProvider;
-Landroid/view/accessibility/AccessibilityRecord;
-Landroid/view/accessibility/AccessibilityRequestPreparer;
-Landroid/view/accessibility/AccessibilityWindowAttributes$1;
-Landroid/view/accessibility/AccessibilityWindowAttributes;
-Landroid/view/accessibility/CaptioningManager$1;
-Landroid/view/accessibility/CaptioningManager$CaptionStyle;
-Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener;
-Landroid/view/accessibility/CaptioningManager$MyContentObserver;
-Landroid/view/accessibility/CaptioningManager;
-Landroid/view/accessibility/DirectAccessibilityConnection;
-Landroid/view/accessibility/Flags;
-Landroid/view/accessibility/IAccessibilityEmbeddedConnection;
-Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub$Proxy;
-Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub;
-Landroid/view/accessibility/IAccessibilityInteractionConnection;
-Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub$Proxy;
-Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub;
-Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback;
-Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;
-Landroid/view/accessibility/IAccessibilityManager$Stub;
-Landroid/view/accessibility/IAccessibilityManager;
-Landroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;
-Landroid/view/accessibility/IAccessibilityManagerClient$Stub;
-Landroid/view/accessibility/IAccessibilityManagerClient;
-Landroid/view/accessibility/WeakSparseArray$WeakReferenceWithId;
-Landroid/view/accessibility/WeakSparseArray;
-Landroid/view/animation/AccelerateDecelerateInterpolator;
-Landroid/view/animation/AccelerateInterpolator;
-Landroid/view/animation/AlphaAnimation;
-Landroid/view/animation/Animation$1;
-Landroid/view/animation/Animation$2;
-Landroid/view/animation/Animation$3;
-Landroid/view/animation/Animation$AnimationListener;
-Landroid/view/animation/Animation$Description;
-Landroid/view/animation/Animation$NoImagePreloadHolder;
-Landroid/view/animation/Animation;
-Landroid/view/animation/AnimationSet;
-Landroid/view/animation/AnimationUtils$1;
-Landroid/view/animation/AnimationUtils$AnimationState-IA;
-Landroid/view/animation/AnimationUtils$AnimationState;
-Landroid/view/animation/AnimationUtils;
-Landroid/view/animation/AnticipateInterpolator;
-Landroid/view/animation/AnticipateOvershootInterpolator;
-Landroid/view/animation/BaseInterpolator;
-Landroid/view/animation/BounceInterpolator;
-Landroid/view/animation/ClipRectAnimation;
-Landroid/view/animation/CycleInterpolator;
-Landroid/view/animation/DecelerateInterpolator;
-Landroid/view/animation/ExtendAnimation;
-Landroid/view/animation/GridLayoutAnimationController;
-Landroid/view/animation/Interpolator;
-Landroid/view/animation/LayoutAnimationController;
-Landroid/view/animation/LinearInterpolator;
-Landroid/view/animation/OvershootInterpolator;
-Landroid/view/animation/PathInterpolator;
-Landroid/view/animation/RotateAnimation;
-Landroid/view/animation/ScaleAnimation;
-Landroid/view/animation/Transformation;
-Landroid/view/animation/TranslateAnimation;
-Landroid/view/autofill/AutofillClientController;
-Landroid/view/autofill/AutofillFeatureFlags$$ExternalSyntheticLambda0;
-Landroid/view/autofill/AutofillFeatureFlags$$ExternalSyntheticLambda1;
-Landroid/view/autofill/AutofillFeatureFlags;
-Landroid/view/autofill/AutofillId$1;
-Landroid/view/autofill/AutofillId-IA;
-Landroid/view/autofill/AutofillId;
-Landroid/view/autofill/AutofillManager$$ExternalSyntheticLambda0;
-Landroid/view/autofill/AutofillManager$$ExternalSyntheticLambda1;
-Landroid/view/autofill/AutofillManager$$ExternalSyntheticLambda2;
-Landroid/view/autofill/AutofillManager$$ExternalSyntheticLambda3;
-Landroid/view/autofill/AutofillManager$$ExternalSyntheticLambda4;
-Landroid/view/autofill/AutofillManager$AugmentedAutofillManagerClient-IA;
-Landroid/view/autofill/AutofillManager$AugmentedAutofillManagerClient;
-Landroid/view/autofill/AutofillManager$AutofillCallback;
-Landroid/view/autofill/AutofillManager$AutofillClient;
-Landroid/view/autofill/AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda10;
-Landroid/view/autofill/AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda11;
-Landroid/view/autofill/AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda13;
-Landroid/view/autofill/AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda14;
-Landroid/view/autofill/AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda16;
-Landroid/view/autofill/AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda18;
-Landroid/view/autofill/AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda8;
-Landroid/view/autofill/AutofillManager$AutofillManagerClient-IA;
-Landroid/view/autofill/AutofillManager$AutofillManagerClient;
-Landroid/view/autofill/AutofillManager$CompatibilityBridge;
-Landroid/view/autofill/AutofillManager$TrackedViews;
-Landroid/view/autofill/AutofillManager;
-Landroid/view/autofill/AutofillManagerInternal;
-Landroid/view/autofill/AutofillPopupWindow;
-Landroid/view/autofill/AutofillValue$1;
-Landroid/view/autofill/AutofillValue-IA;
-Landroid/view/autofill/AutofillValue;
-Landroid/view/autofill/Helper;
-Landroid/view/autofill/IAugmentedAutofillManagerClient$Stub;
-Landroid/view/autofill/IAugmentedAutofillManagerClient;
-Landroid/view/autofill/IAutoFillManager$Stub$Proxy;
-Landroid/view/autofill/IAutoFillManager$Stub;
-Landroid/view/autofill/IAutoFillManager;
-Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;
-Landroid/view/autofill/IAutoFillManagerClient$Stub;
-Landroid/view/autofill/IAutoFillManagerClient;
-Landroid/view/autofill/IAutofillWindowPresenter$Stub$Proxy;
-Landroid/view/autofill/IAutofillWindowPresenter$Stub;
-Landroid/view/autofill/IAutofillWindowPresenter;
-Landroid/view/autofill/ParcelableMap$1;
-Landroid/view/autofill/ParcelableMap;
-Landroid/view/contentcapture/ContentCaptureCondition$1;
-Landroid/view/contentcapture/ContentCaptureCondition;
-Landroid/view/contentcapture/ContentCaptureContext$1;
-Landroid/view/contentcapture/ContentCaptureContext$Builder;
-Landroid/view/contentcapture/ContentCaptureContext;
-Landroid/view/contentcapture/ContentCaptureEvent$1;
-Landroid/view/contentcapture/ContentCaptureEvent;
-Landroid/view/contentcapture/ContentCaptureHelper;
-Landroid/view/contentcapture/ContentCaptureManager$ContentCaptureClient;
-Landroid/view/contentcapture/ContentCaptureManager$LocalDataShareAdapterResourceManager-IA;
-Landroid/view/contentcapture/ContentCaptureManager$LocalDataShareAdapterResourceManager;
-Landroid/view/contentcapture/ContentCaptureManager$StrippedContext;
-Landroid/view/contentcapture/ContentCaptureManager;
-Landroid/view/contentcapture/ContentCaptureSession;
-Landroid/view/contentcapture/ContentCaptureSessionId$1;
-Landroid/view/contentcapture/ContentCaptureSessionId;
-Landroid/view/contentcapture/DataRemovalRequest$1;
-Landroid/view/contentcapture/DataRemovalRequest$LocusIdRequest;
-Landroid/view/contentcapture/DataRemovalRequest;
-Landroid/view/contentcapture/DataShareRequest$1;
-Landroid/view/contentcapture/DataShareRequest;
-Landroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;
-Landroid/view/contentcapture/IContentCaptureDirectManager$Stub;
-Landroid/view/contentcapture/IContentCaptureDirectManager;
-Landroid/view/contentcapture/IContentCaptureManager$Stub$Proxy;
-Landroid/view/contentcapture/IContentCaptureManager$Stub;
-Landroid/view/contentcapture/IContentCaptureManager;
-Landroid/view/contentcapture/IContentCaptureOptionsCallback$Stub;
-Landroid/view/contentcapture/IContentCaptureOptionsCallback;
-Landroid/view/contentcapture/IDataShareWriteAdapter$Stub$Proxy;
-Landroid/view/contentcapture/IDataShareWriteAdapter$Stub;
-Landroid/view/contentcapture/IDataShareWriteAdapter;
-Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda0;
-Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda10;
-Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda11;
-Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda12;
-Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda13;
-Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda1;
-Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda2;
-Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda3;
-Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda4;
-Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda5;
-Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda6;
-Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda8;
-Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda9;
-Landroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver$$ExternalSyntheticLambda0;
-Landroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver$$ExternalSyntheticLambda1;
-Landroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver;
-Landroid/view/contentcapture/MainContentCaptureSession;
-Landroid/view/contentcapture/ViewNode$ViewNodeText;
-Landroid/view/contentcapture/ViewNode$ViewStructureImpl;
-Landroid/view/contentcapture/ViewNode;
-Landroid/view/contentprotection/ContentProtectionEventProcessor;
-Landroid/view/displayhash/DisplayHash$1;
-Landroid/view/displayhash/DisplayHash;
-Landroid/view/displayhash/DisplayHashManager;
-Landroid/view/displayhash/DisplayHashResultCallback;
-Landroid/view/flags/FeatureFlags;
-Landroid/view/flags/FeatureFlagsImpl;
-Landroid/view/flags/Flags;
-Landroid/view/inputmethod/BaseInputConnection;
-Landroid/view/inputmethod/CancellableHandwritingGesture;
-Landroid/view/inputmethod/CompletionInfo$1;
-Landroid/view/inputmethod/CompletionInfo;
-Landroid/view/inputmethod/ComposingText;
-Landroid/view/inputmethod/CorrectionInfo$1;
-Landroid/view/inputmethod/CorrectionInfo;
-Landroid/view/inputmethod/CursorAnchorInfo$1;
-Landroid/view/inputmethod/CursorAnchorInfo$Builder;
-Landroid/view/inputmethod/CursorAnchorInfo;
-Landroid/view/inputmethod/DeleteGesture$1;
-Landroid/view/inputmethod/DeleteGesture;
-Landroid/view/inputmethod/DeleteRangeGesture$1;
-Landroid/view/inputmethod/DeleteRangeGesture;
-Landroid/view/inputmethod/DumpableInputConnection;
-Landroid/view/inputmethod/EditorBoundsInfo$1;
-Landroid/view/inputmethod/EditorBoundsInfo$Builder;
-Landroid/view/inputmethod/EditorBoundsInfo;
-Landroid/view/inputmethod/EditorInfo$1;
-Landroid/view/inputmethod/EditorInfo;
-Landroid/view/inputmethod/ExtractedText$1;
-Landroid/view/inputmethod/ExtractedText;
-Landroid/view/inputmethod/ExtractedTextRequest$1;
-Landroid/view/inputmethod/ExtractedTextRequest;
-Landroid/view/inputmethod/Flags;
-Landroid/view/inputmethod/HandwritingGesture;
-Landroid/view/inputmethod/IAccessibilityInputMethodSessionInvoker$$ExternalSyntheticLambda0;
-Landroid/view/inputmethod/IAccessibilityInputMethodSessionInvoker$$ExternalSyntheticLambda1;
-Landroid/view/inputmethod/IAccessibilityInputMethodSessionInvoker;
-Landroid/view/inputmethod/IInputMethodManagerGlobalInvoker;
-Landroid/view/inputmethod/IInputMethodSessionInvoker$$ExternalSyntheticLambda0;
-Landroid/view/inputmethod/IInputMethodSessionInvoker$$ExternalSyntheticLambda3;
-Landroid/view/inputmethod/IInputMethodSessionInvoker$$ExternalSyntheticLambda4;
-Landroid/view/inputmethod/IInputMethodSessionInvoker$$ExternalSyntheticLambda5;
-Landroid/view/inputmethod/IInputMethodSessionInvoker$$ExternalSyntheticLambda6;
-Landroid/view/inputmethod/IInputMethodSessionInvoker$$ExternalSyntheticLambda8;
-Landroid/view/inputmethod/IInputMethodSessionInvoker;
-Landroid/view/inputmethod/ImeTracker$1$$ExternalSyntheticLambda0;
-Landroid/view/inputmethod/ImeTracker$1;
-Landroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda0;
-Landroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda1;
-Landroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda2;
-Landroid/view/inputmethod/ImeTracker$Debug;
-Landroid/view/inputmethod/ImeTracker$ImeJankTracker-IA;
-Landroid/view/inputmethod/ImeTracker$ImeJankTracker;
-Landroid/view/inputmethod/ImeTracker$ImeLatencyTracker-IA;
-Landroid/view/inputmethod/ImeTracker$ImeLatencyTracker;
-Landroid/view/inputmethod/ImeTracker$InputMethodJankContext;
-Landroid/view/inputmethod/ImeTracker$InputMethodLatencyContext;
-Landroid/view/inputmethod/ImeTracker$Token$1;
-Landroid/view/inputmethod/ImeTracker$Token-IA;
-Landroid/view/inputmethod/ImeTracker$Token;
-Landroid/view/inputmethod/ImeTracker;
-Landroid/view/inputmethod/InlineSuggestionsRequest$1;
-Landroid/view/inputmethod/InlineSuggestionsRequest;
-Landroid/view/inputmethod/InlineSuggestionsResponse$1;
-Landroid/view/inputmethod/InlineSuggestionsResponse;
-Landroid/view/inputmethod/InputBinding$1;
-Landroid/view/inputmethod/InputBinding;
-Landroid/view/inputmethod/InputConnection;
-Landroid/view/inputmethod/InputConnectionWrapper;
-Landroid/view/inputmethod/InputContentInfo$1;
-Landroid/view/inputmethod/InputContentInfo;
-Landroid/view/inputmethod/InputMethod$SessionCallback;
-Landroid/view/inputmethod/InputMethod;
-Landroid/view/inputmethod/InputMethodInfo$1;
-Landroid/view/inputmethod/InputMethodInfo;
-Landroid/view/inputmethod/InputMethodManager$$ExternalSyntheticLambda0;
-Landroid/view/inputmethod/InputMethodManager$$ExternalSyntheticLambda1;
-Landroid/view/inputmethod/InputMethodManager$$ExternalSyntheticLambda2;
-Landroid/view/inputmethod/InputMethodManager$$ExternalSyntheticLambda3;
-Landroid/view/inputmethod/InputMethodManager$$ExternalSyntheticLambda4;
-Landroid/view/inputmethod/InputMethodManager$$ExternalSyntheticLambda5;
-Landroid/view/inputmethod/InputMethodManager$1;
-Landroid/view/inputmethod/InputMethodManager$2;
-Landroid/view/inputmethod/InputMethodManager$6;
-Landroid/view/inputmethod/InputMethodManager$BindState;
-Landroid/view/inputmethod/InputMethodManager$DelegateImpl-IA;
-Landroid/view/inputmethod/InputMethodManager$DelegateImpl;
-Landroid/view/inputmethod/InputMethodManager$FinishedInputEventCallback;
-Landroid/view/inputmethod/InputMethodManager$H$$ExternalSyntheticLambda0;
-Landroid/view/inputmethod/InputMethodManager$H$$ExternalSyntheticLambda1;
-Landroid/view/inputmethod/InputMethodManager$H;
-Landroid/view/inputmethod/InputMethodManager$ImeInputEventSender;
-Landroid/view/inputmethod/InputMethodManager$PendingEvent-IA;
-Landroid/view/inputmethod/InputMethodManager$PendingEvent;
-Landroid/view/inputmethod/InputMethodManager$ReportInputConnectionOpenedRunner;
-Landroid/view/inputmethod/InputMethodManager;
-Landroid/view/inputmethod/InputMethodManagerGlobal;
-Landroid/view/inputmethod/InputMethodSession$EventCallback;
-Landroid/view/inputmethod/InputMethodSession;
-Landroid/view/inputmethod/InputMethodSubtype$1;
-Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;
-Landroid/view/inputmethod/InputMethodSubtype;
-Landroid/view/inputmethod/InputMethodSubtypeArray;
-Landroid/view/inputmethod/InsertGesture$1;
-Landroid/view/inputmethod/InsertGesture;
-Landroid/view/inputmethod/InsertModeGesture$1;
-Landroid/view/inputmethod/InsertModeGesture;
-Landroid/view/inputmethod/JoinOrSplitGesture$1;
-Landroid/view/inputmethod/JoinOrSplitGesture;
-Landroid/view/inputmethod/ParcelableHandwritingGesture$1;
-Landroid/view/inputmethod/ParcelableHandwritingGesture;
-Landroid/view/inputmethod/PreviewableHandwritingGesture;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda11;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda12;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda16;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda1;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda24;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda25;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda27;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda28;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda36;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda37;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda39;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda40;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda42;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda50;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda8;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$1;
-Landroid/view/inputmethod/RemoteInputConnectionImpl$KnownAlwaysTrueEndBatchEditCache;
-Landroid/view/inputmethod/RemoteInputConnectionImpl;
-Landroid/view/inputmethod/RemoveSpaceGesture$1;
-Landroid/view/inputmethod/RemoveSpaceGesture;
-Landroid/view/inputmethod/SelectGesture$1;
-Landroid/view/inputmethod/SelectGesture;
-Landroid/view/inputmethod/SelectRangeGesture$1;
-Landroid/view/inputmethod/SelectRangeGesture;
-Landroid/view/inputmethod/SparseRectFArray$1;
-Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;
-Landroid/view/inputmethod/SparseRectFArray;
-Landroid/view/inputmethod/SurroundingText$1;
-Landroid/view/inputmethod/SurroundingText;
-Landroid/view/inputmethod/TextAppearanceInfo$1;
-Landroid/view/inputmethod/TextAppearanceInfo$Builder;
-Landroid/view/inputmethod/TextAppearanceInfo;
-Landroid/view/inputmethod/TextAttribute$1;
-Landroid/view/inputmethod/TextAttribute;
-Landroid/view/inputmethod/TextSnapshot;
-Landroid/view/inputmethod/ViewFocusParameterInfo;
-Landroid/view/textclassifier/ConversationAction$1;
-Landroid/view/textclassifier/ConversationAction$Builder;
-Landroid/view/textclassifier/ConversationAction-IA;
-Landroid/view/textclassifier/ConversationAction;
-Landroid/view/textclassifier/ConversationActions$1;
-Landroid/view/textclassifier/ConversationActions$Message$1;
-Landroid/view/textclassifier/ConversationActions$Message$Builder;
-Landroid/view/textclassifier/ConversationActions$Message-IA;
-Landroid/view/textclassifier/ConversationActions$Message;
-Landroid/view/textclassifier/ConversationActions$Request$1;
-Landroid/view/textclassifier/ConversationActions$Request$Builder;
-Landroid/view/textclassifier/ConversationActions$Request;
-Landroid/view/textclassifier/ConversationActions-IA;
-Landroid/view/textclassifier/ConversationActions;
-Landroid/view/textclassifier/EntityConfidence$$ExternalSyntheticLambda0;
-Landroid/view/textclassifier/EntityConfidence$1;
-Landroid/view/textclassifier/EntityConfidence-IA;
-Landroid/view/textclassifier/EntityConfidence;
-Landroid/view/textclassifier/ExtrasUtils;
-Landroid/view/textclassifier/Log;
-Landroid/view/textclassifier/SelectionEvent$1;
-Landroid/view/textclassifier/SelectionEvent;
-Landroid/view/textclassifier/SelectionSessionLogger$SignatureParser;
-Landroid/view/textclassifier/SelectionSessionLogger;
-Landroid/view/textclassifier/SystemTextClassifier$BlockingCallback;
-Landroid/view/textclassifier/SystemTextClassifier$ResponseReceiver-IA;
-Landroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;
-Landroid/view/textclassifier/SystemTextClassifier;
-Landroid/view/textclassifier/SystemTextClassifierMetadata$1;
-Landroid/view/textclassifier/SystemTextClassifierMetadata;
-Landroid/view/textclassifier/TextClassification$$ExternalSyntheticLambda0;
-Landroid/view/textclassifier/TextClassification$1;
-Landroid/view/textclassifier/TextClassification$Builder;
-Landroid/view/textclassifier/TextClassification$Request$1;
-Landroid/view/textclassifier/TextClassification$Request$Builder;
-Landroid/view/textclassifier/TextClassification$Request;
-Landroid/view/textclassifier/TextClassification-IA;
-Landroid/view/textclassifier/TextClassification;
-Landroid/view/textclassifier/TextClassificationConstants;
-Landroid/view/textclassifier/TextClassificationContext$1;
-Landroid/view/textclassifier/TextClassificationContext$Builder;
-Landroid/view/textclassifier/TextClassificationContext-IA;
-Landroid/view/textclassifier/TextClassificationContext;
-Landroid/view/textclassifier/TextClassificationManager$$ExternalSyntheticLambda0;
-Landroid/view/textclassifier/TextClassificationManager;
-Landroid/view/textclassifier/TextClassificationSession$CleanerRunnable;
-Landroid/view/textclassifier/TextClassificationSession$SelectionEventHelper;
-Landroid/view/textclassifier/TextClassificationSession;
-Landroid/view/textclassifier/TextClassificationSessionFactory;
-Landroid/view/textclassifier/TextClassificationSessionId$1;
-Landroid/view/textclassifier/TextClassificationSessionId;
-Landroid/view/textclassifier/TextClassifier$1;
-Landroid/view/textclassifier/TextClassifier$EntityConfig$1;
-Landroid/view/textclassifier/TextClassifier$EntityConfig$Builder;
-Landroid/view/textclassifier/TextClassifier$EntityConfig-IA;
-Landroid/view/textclassifier/TextClassifier$EntityConfig;
-Landroid/view/textclassifier/TextClassifier$Utils;
-Landroid/view/textclassifier/TextClassifier;
-Landroid/view/textclassifier/TextClassifierEvent$1;
-Landroid/view/textclassifier/TextClassifierEvent$Builder;
-Landroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent$1;
-Landroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent-IA;
-Landroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent;
-Landroid/view/textclassifier/TextClassifierEvent$LanguageDetectionEvent$1;
-Landroid/view/textclassifier/TextClassifierEvent$LanguageDetectionEvent-IA;
-Landroid/view/textclassifier/TextClassifierEvent$LanguageDetectionEvent;
-Landroid/view/textclassifier/TextClassifierEvent$TextLinkifyEvent$1;
-Landroid/view/textclassifier/TextClassifierEvent$TextLinkifyEvent-IA;
-Landroid/view/textclassifier/TextClassifierEvent$TextLinkifyEvent;
-Landroid/view/textclassifier/TextClassifierEvent$TextSelectionEvent$1;
-Landroid/view/textclassifier/TextClassifierEvent$TextSelectionEvent-IA;
-Landroid/view/textclassifier/TextClassifierEvent$TextSelectionEvent;
-Landroid/view/textclassifier/TextClassifierEvent-IA;
-Landroid/view/textclassifier/TextClassifierEvent;
-Landroid/view/textclassifier/TextLanguage$1;
-Landroid/view/textclassifier/TextLanguage$Builder;
-Landroid/view/textclassifier/TextLanguage$Request$1;
-Landroid/view/textclassifier/TextLanguage$Request$Builder;
-Landroid/view/textclassifier/TextLanguage$Request;
-Landroid/view/textclassifier/TextLanguage;
-Landroid/view/textclassifier/TextLinks$1;
-Landroid/view/textclassifier/TextLinks$Builder;
-Landroid/view/textclassifier/TextLinks$Request$1;
-Landroid/view/textclassifier/TextLinks$Request;
-Landroid/view/textclassifier/TextLinks$TextLink$1;
-Landroid/view/textclassifier/TextLinks$TextLink;
-Landroid/view/textclassifier/TextLinks$TextLinkSpan;
-Landroid/view/textclassifier/TextLinks;
-Landroid/view/textclassifier/TextSelection$1;
-Landroid/view/textclassifier/TextSelection$Request$1;
-Landroid/view/textclassifier/TextSelection$Request$Builder;
-Landroid/view/textclassifier/TextSelection$Request;
-Landroid/view/textclassifier/TextSelection;
-Landroid/view/textservice/SentenceSuggestionsInfo$1;
-Landroid/view/textservice/SentenceSuggestionsInfo;
-Landroid/view/textservice/SpellCheckerInfo$1;
-Landroid/view/textservice/SpellCheckerInfo;
-Landroid/view/textservice/SpellCheckerSession$InternalListener;
-Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;
-Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$1;
-Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;
-Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;
-Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionParams$Builder;
-Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionParams-IA;
-Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionParams;
-Landroid/view/textservice/SpellCheckerSession;
-Landroid/view/textservice/SpellCheckerSubtype$1;
-Landroid/view/textservice/SpellCheckerSubtype;
-Landroid/view/textservice/SuggestionsInfo$1;
-Landroid/view/textservice/SuggestionsInfo;
-Landroid/view/textservice/TextInfo$1;
-Landroid/view/textservice/TextInfo;
-Landroid/view/textservice/TextServicesManager;
-Landroid/view/translation/TranslationCapability$1;
-Landroid/view/translation/TranslationCapability;
-Landroid/view/translation/TranslationManager;
-Landroid/view/translation/TranslationSpec$1;
-Landroid/view/translation/TranslationSpec;
-Landroid/view/translation/Translator$ServiceBinderReceiver$TimeoutException;
-Landroid/view/translation/UiTranslationController;
-Landroid/view/translation/UiTranslationManager;
-Landroid/view/translation/UiTranslationSpec$1;
-Landroid/view/translation/UiTranslationSpec;
-Landroid/view/translation/ViewTranslationCallback;
-Landroid/view/translation/ViewTranslationResponse$1;
-Landroid/view/translation/ViewTranslationResponse;
-Landroid/webkit/ConsoleMessage$MessageLevel;
-Landroid/webkit/ConsoleMessage;
-Landroid/webkit/CookieManager;
-Landroid/webkit/CookieSyncManager;
-Landroid/webkit/DownloadListener;
-Landroid/webkit/FeatureFlags;
-Landroid/webkit/FeatureFlagsImpl;
-Landroid/webkit/FindAddress$ZipRange;
-Landroid/webkit/FindAddress;
-Landroid/webkit/Flags;
-Landroid/webkit/GeolocationPermissions$Callback;
-Landroid/webkit/GeolocationPermissions;
-Landroid/webkit/HttpAuthHandler;
-Landroid/webkit/IWebViewUpdateService$Stub$Proxy;
-Landroid/webkit/IWebViewUpdateService$Stub;
-Landroid/webkit/IWebViewUpdateService;
-Landroid/webkit/JavascriptInterface;
-Landroid/webkit/MimeTypeMap;
-Landroid/webkit/PacProcessor;
-Landroid/webkit/PermissionRequest;
-Landroid/webkit/RenderProcessGoneDetail;
-Landroid/webkit/ServiceWorkerClient;
-Landroid/webkit/ServiceWorkerController;
-Landroid/webkit/ServiceWorkerWebSettings;
-Landroid/webkit/TokenBindingService;
-Landroid/webkit/TracingController;
-Landroid/webkit/URLUtil;
-Landroid/webkit/UserPackage;
-Landroid/webkit/ValueCallback;
-Landroid/webkit/WebBackForwardList;
-Landroid/webkit/WebChromeClient$CustomViewCallback;
-Landroid/webkit/WebChromeClient;
-Landroid/webkit/WebIconDatabase;
-Landroid/webkit/WebMessage;
-Landroid/webkit/WebMessagePort;
-Landroid/webkit/WebResourceError;
-Landroid/webkit/WebResourceRequest;
-Landroid/webkit/WebResourceResponse;
-Landroid/webkit/WebSettings$LayoutAlgorithm;
-Landroid/webkit/WebSettings$PluginState;
-Landroid/webkit/WebSettings$RenderPriority;
-Landroid/webkit/WebSettings$ZoomDensity;
-Landroid/webkit/WebSettings;
-Landroid/webkit/WebStorage;
-Landroid/webkit/WebSyncManager;
-Landroid/webkit/WebView$FindListener;
-Landroid/webkit/WebView$HitTestResult;
-Landroid/webkit/WebView$PictureListener;
-Landroid/webkit/WebView$PrivateAccess;
-Landroid/webkit/WebView$VisualStateCallback;
-Landroid/webkit/WebView;
-Landroid/webkit/WebViewClient;
-Landroid/webkit/WebViewDatabase;
-Landroid/webkit/WebViewDelegate$1;
-Landroid/webkit/WebViewDelegate$OnTraceEnabledChangeListener;
-Landroid/webkit/WebViewDelegate;
-Landroid/webkit/WebViewFactory$MissingWebViewPackageException;
-Landroid/webkit/WebViewFactory$StartupTimestamps;
-Landroid/webkit/WebViewFactory;
-Landroid/webkit/WebViewFactoryProvider$Statics;
-Landroid/webkit/WebViewFactoryProvider;
-Landroid/webkit/WebViewLibraryLoader$1;
-Landroid/webkit/WebViewLibraryLoader$RelroFileCreator;
-Landroid/webkit/WebViewLibraryLoader;
-Landroid/webkit/WebViewProvider$ScrollDelegate;
-Landroid/webkit/WebViewProvider$ViewDelegate;
-Landroid/webkit/WebViewProvider;
-Landroid/webkit/WebViewProviderInfo$1;
-Landroid/webkit/WebViewProviderInfo;
-Landroid/webkit/WebViewProviderResponse$1;
-Landroid/webkit/WebViewProviderResponse-IA;
-Landroid/webkit/WebViewProviderResponse;
-Landroid/webkit/WebViewRenderProcess;
-Landroid/webkit/WebViewRenderProcessClient;
-Landroid/webkit/WebViewUpdateManager;
-Landroid/webkit/WebViewUpdateService;
-Landroid/webkit/WebViewZygote;
-Landroid/widget/AbsListView$1;
-Landroid/widget/AbsListView$2;
-Landroid/widget/AbsListView$3;
-Landroid/widget/AbsListView$4;
-Landroid/widget/AbsListView$AbsPositionScroller;
-Landroid/widget/AbsListView$AdapterDataSetObserver;
-Landroid/widget/AbsListView$CheckForKeyLongPress-IA;
-Landroid/widget/AbsListView$CheckForKeyLongPress;
-Landroid/widget/AbsListView$CheckForLongPress;
-Landroid/widget/AbsListView$CheckForTap-IA;
-Landroid/widget/AbsListView$CheckForTap;
-Landroid/widget/AbsListView$DeviceConfigChangeListener-IA;
-Landroid/widget/AbsListView$DeviceConfigChangeListener;
-Landroid/widget/AbsListView$FlingRunnable$1;
-Landroid/widget/AbsListView$FlingRunnable;
-Landroid/widget/AbsListView$InputConnectionWrapper;
-Landroid/widget/AbsListView$LayoutParams;
-Landroid/widget/AbsListView$ListItemAccessibilityDelegate;
-Landroid/widget/AbsListView$MultiChoiceModeListener;
-Landroid/widget/AbsListView$MultiChoiceModeWrapper;
-Landroid/widget/AbsListView$OnScrollListener;
-Landroid/widget/AbsListView$PerformClick-IA;
-Landroid/widget/AbsListView$PerformClick;
-Landroid/widget/AbsListView$PositionScroller;
-Landroid/widget/AbsListView$RecycleBin;
-Landroid/widget/AbsListView$RecyclerListener;
-Landroid/widget/AbsListView$SavedState$1;
-Landroid/widget/AbsListView$SavedState;
-Landroid/widget/AbsListView$SelectionBoundsAdjuster;
-Landroid/widget/AbsListView$WindowRunnnable-IA;
-Landroid/widget/AbsListView$WindowRunnnable;
-Landroid/widget/AbsListView;
-Landroid/widget/AbsSeekBar;
-Landroid/widget/AbsSpinner$RecycleBin;
-Landroid/widget/AbsSpinner$SavedState$1;
-Landroid/widget/AbsSpinner$SavedState;
-Landroid/widget/AbsSpinner;
-Landroid/widget/AbsoluteLayout$LayoutParams;
-Landroid/widget/AbsoluteLayout;
-Landroid/widget/ActionMenuPresenter$1;
-Landroid/widget/ActionMenuPresenter$2;
-Landroid/widget/ActionMenuPresenter$ActionButtonSubmenu;
-Landroid/widget/ActionMenuPresenter$ActionMenuPopupCallback;
-Landroid/widget/ActionMenuPresenter$OpenOverflowRunnable;
-Landroid/widget/ActionMenuPresenter$OverflowMenuButton$1;
-Landroid/widget/ActionMenuPresenter$OverflowMenuButton;
-Landroid/widget/ActionMenuPresenter$OverflowPopup;
-Landroid/widget/ActionMenuPresenter$PopupPresenterCallback;
-Landroid/widget/ActionMenuPresenter;
-Landroid/widget/ActionMenuView$ActionMenuChildView;
-Landroid/widget/ActionMenuView$ActionMenuPresenterCallback;
-Landroid/widget/ActionMenuView$LayoutParams;
-Landroid/widget/ActionMenuView$MenuBuilderCallback;
-Landroid/widget/ActionMenuView$OnMenuItemClickListener;
-Landroid/widget/ActionMenuView;
-Landroid/widget/Adapter;
-Landroid/widget/AdapterView$AdapterContextMenuInfo;
-Landroid/widget/AdapterView$AdapterDataSetObserver;
-Landroid/widget/AdapterView$OnItemClickListener;
-Landroid/widget/AdapterView$OnItemLongClickListener;
-Landroid/widget/AdapterView$OnItemSelectedListener;
-Landroid/widget/AdapterView$SelectionNotifier;
-Landroid/widget/AdapterView;
-Landroid/widget/ArrayAdapter;
-Landroid/widget/AutoCompleteTextView$$ExternalSyntheticLambda0;
-Landroid/widget/AutoCompleteTextView$$ExternalSyntheticLambda1;
-Landroid/widget/AutoCompleteTextView$DropDownItemClickListener-IA;
-Landroid/widget/AutoCompleteTextView$DropDownItemClickListener;
-Landroid/widget/AutoCompleteTextView$MyWatcher-IA;
-Landroid/widget/AutoCompleteTextView$MyWatcher;
-Landroid/widget/AutoCompleteTextView$PassThroughClickListener-IA;
-Landroid/widget/AutoCompleteTextView$PassThroughClickListener;
-Landroid/widget/AutoCompleteTextView$Validator;
-Landroid/widget/AutoCompleteTextView;
-Landroid/widget/BaseAdapter;
-Landroid/widget/Button;
-Landroid/widget/CheckBox;
-Landroid/widget/Checkable;
-Landroid/widget/CheckedTextView;
-Landroid/widget/Chronometer$1;
-Landroid/widget/Chronometer$OnChronometerTickListener;
-Landroid/widget/Chronometer;
-Landroid/widget/CompoundButton$OnCheckedChangeListener;
-Landroid/widget/CompoundButton$SavedState$1;
-Landroid/widget/CompoundButton$SavedState;
-Landroid/widget/CompoundButton;
-Landroid/widget/DateTimeView$ReceiverInfo$1;
-Landroid/widget/DateTimeView$ReceiverInfo$2;
-Landroid/widget/DateTimeView$ReceiverInfo;
-Landroid/widget/DateTimeView;
-Landroid/widget/DropDownListView;
-Landroid/widget/EdgeEffect;
-Landroid/widget/EditText;
-Landroid/widget/Editor$$ExternalSyntheticLambda0;
-Landroid/widget/Editor$$ExternalSyntheticLambda1;
-Landroid/widget/Editor$$ExternalSyntheticLambda2;
-Landroid/widget/Editor$1;
-Landroid/widget/Editor$2;
-Landroid/widget/Editor$3;
-Landroid/widget/Editor$5;
-Landroid/widget/Editor$AccessibilitySmartActions-IA;
-Landroid/widget/Editor$AccessibilitySmartActions;
-Landroid/widget/Editor$Blink-IA;
-Landroid/widget/Editor$Blink;
-Landroid/widget/Editor$CorrectionHighlighter;
-Landroid/widget/Editor$CursorAnchorInfoNotifier-IA;
-Landroid/widget/Editor$CursorAnchorInfoNotifier;
-Landroid/widget/Editor$CursorController;
-Landroid/widget/Editor$EasyEditDeleteListener;
-Landroid/widget/Editor$EasyEditPopupWindow-IA;
-Landroid/widget/Editor$EasyEditPopupWindow;
-Landroid/widget/Editor$EditOperation$1;
-Landroid/widget/Editor$EditOperation;
-Landroid/widget/Editor$ErrorPopup;
-Landroid/widget/Editor$HandleView-IA;
-Landroid/widget/Editor$HandleView;
-Landroid/widget/Editor$InputContentType;
-Landroid/widget/Editor$InputMethodState;
-Landroid/widget/Editor$InsertModeController;
-Landroid/widget/Editor$InsertionHandleView$1;
-Landroid/widget/Editor$InsertionHandleView;
-Landroid/widget/Editor$InsertionPointCursorController$1;
-Landroid/widget/Editor$InsertionPointCursorController;
-Landroid/widget/Editor$MagnifierMotionAnimator;
-Landroid/widget/Editor$PinnedPopupWindow;
-Landroid/widget/Editor$PositionListener-IA;
-Landroid/widget/Editor$PositionListener;
-Landroid/widget/Editor$ProcessTextIntentActionsHandler-IA;
-Landroid/widget/Editor$ProcessTextIntentActionsHandler;
-Landroid/widget/Editor$SelectionHandleView;
-Landroid/widget/Editor$SelectionModifierCursorController;
-Landroid/widget/Editor$SpanController$1;
-Landroid/widget/Editor$SpanController$2;
-Landroid/widget/Editor$SpanController-IA;
-Landroid/widget/Editor$SpanController;
-Landroid/widget/Editor$SuggestionHelper$SuggestionSpanComparator-IA;
-Landroid/widget/Editor$SuggestionHelper$SuggestionSpanComparator;
-Landroid/widget/Editor$SuggestionHelper-IA;
-Landroid/widget/Editor$SuggestionHelper;
-Landroid/widget/Editor$SuggestionsPopupWindow;
-Landroid/widget/Editor$TextRenderNode;
-Landroid/widget/Editor$TextViewPositionListener;
-Landroid/widget/Editor$UndoInputFilter;
-Landroid/widget/Editor;
-Landroid/widget/EditorTouchState;
-Landroid/widget/FastScroller$1;
-Landroid/widget/FastScroller$2;
-Landroid/widget/FastScroller$3;
-Landroid/widget/FastScroller$4;
-Landroid/widget/FastScroller$5;
-Landroid/widget/FastScroller$6;
-Landroid/widget/FastScroller;
-Landroid/widget/Filter$Delayer;
-Landroid/widget/Filter$FilterListener;
-Landroid/widget/Filter$FilterResults;
-Landroid/widget/Filter$RequestArguments;
-Landroid/widget/Filter$RequestHandler;
-Landroid/widget/Filter$ResultsHandler-IA;
-Landroid/widget/Filter$ResultsHandler;
-Landroid/widget/Filter;
-Landroid/widget/Filterable;
-Landroid/widget/ForwardingListener;
-Landroid/widget/FrameLayout$LayoutParams;
-Landroid/widget/FrameLayout;
-Landroid/widget/GridLayout$1;
-Landroid/widget/GridLayout$2;
-Landroid/widget/GridLayout$3;
-Landroid/widget/GridLayout$4;
-Landroid/widget/GridLayout$5;
-Landroid/widget/GridLayout$6;
-Landroid/widget/GridLayout$7$1;
-Landroid/widget/GridLayout$7;
-Landroid/widget/GridLayout$8;
-Landroid/widget/GridLayout$Alignment;
-Landroid/widget/GridLayout$Arc;
-Landroid/widget/GridLayout$Assoc;
-Landroid/widget/GridLayout$Axis$1;
-Landroid/widget/GridLayout$Axis-IA;
-Landroid/widget/GridLayout$Axis;
-Landroid/widget/GridLayout$Bounds;
-Landroid/widget/GridLayout$Interval;
-Landroid/widget/GridLayout$LayoutParams;
-Landroid/widget/GridLayout$MutableInt;
-Landroid/widget/GridLayout$PackedMap-IA;
-Landroid/widget/GridLayout$PackedMap;
-Landroid/widget/GridLayout$Spec;
-Landroid/widget/GridLayout;
-Landroid/widget/HeaderViewListAdapter;
-Landroid/widget/HorizontalScrollView$SavedState$1;
-Landroid/widget/HorizontalScrollView$SavedState;
-Landroid/widget/HorizontalScrollView;
-Landroid/widget/ImageButton;
-Landroid/widget/ImageView$ImageDrawableCallback;
-Landroid/widget/ImageView$ScaleType;
-Landroid/widget/ImageView;
-Landroid/widget/LinearLayout$LayoutParams;
-Landroid/widget/LinearLayout;
-Landroid/widget/ListAdapter;
-Landroid/widget/ListPopupWindow$ListSelectorHider-IA;
-Landroid/widget/ListPopupWindow$ListSelectorHider;
-Landroid/widget/ListPopupWindow$PopupDataSetObserver-IA;
-Landroid/widget/ListPopupWindow$PopupDataSetObserver;
-Landroid/widget/ListPopupWindow$PopupScrollListener-IA;
-Landroid/widget/ListPopupWindow$PopupScrollListener;
-Landroid/widget/ListPopupWindow$PopupTouchInterceptor-IA;
-Landroid/widget/ListPopupWindow$PopupTouchInterceptor;
-Landroid/widget/ListPopupWindow$ResizePopupRunnable-IA;
-Landroid/widget/ListPopupWindow$ResizePopupRunnable;
-Landroid/widget/ListPopupWindow;
-Landroid/widget/ListView$ArrowScrollFocusResult-IA;
-Landroid/widget/ListView$ArrowScrollFocusResult;
-Landroid/widget/ListView$FixedViewInfo;
-Landroid/widget/ListView$FocusSelector-IA;
-Landroid/widget/ListView$FocusSelector;
-Landroid/widget/ListView;
-Landroid/widget/Magnifier$Builder;
-Landroid/widget/Magnifier$InternalPopupWindow;
-Landroid/widget/Magnifier;
-Landroid/widget/MediaController$MediaPlayerControl;
-Landroid/widget/MultiAutoCompleteTextView$Tokenizer;
-Landroid/widget/MultiAutoCompleteTextView;
-Landroid/widget/OverScroller$SplineOverScroller;
-Landroid/widget/OverScroller;
-Landroid/widget/PopupMenu$1;
-Landroid/widget/PopupMenu$2;
-Landroid/widget/PopupMenu$OnMenuItemClickListener;
-Landroid/widget/PopupMenu;
-Landroid/widget/PopupWindow$$ExternalSyntheticLambda0;
-Landroid/widget/PopupWindow$$ExternalSyntheticLambda1;
-Landroid/widget/PopupWindow$1;
-Landroid/widget/PopupWindow$2;
-Landroid/widget/PopupWindow$3;
-Landroid/widget/PopupWindow$OnDismissListener;
-Landroid/widget/PopupWindow$PopupBackgroundView;
-Landroid/widget/PopupWindow$PopupDecorView$$ExternalSyntheticLambda0;
-Landroid/widget/PopupWindow$PopupDecorView$$ExternalSyntheticLambda1;
-Landroid/widget/PopupWindow$PopupDecorView$1$1;
-Landroid/widget/PopupWindow$PopupDecorView$1;
-Landroid/widget/PopupWindow$PopupDecorView$2;
-Landroid/widget/PopupWindow$PopupDecorView$3;
-Landroid/widget/PopupWindow$PopupDecorView$4;
-Landroid/widget/PopupWindow$PopupDecorView;
-Landroid/widget/PopupWindow;
-Landroid/widget/ProgressBar$1;
-Landroid/widget/ProgressBar$2;
-Landroid/widget/ProgressBar$ProgressTintInfo-IA;
-Landroid/widget/ProgressBar$ProgressTintInfo;
-Landroid/widget/ProgressBar$RefreshData;
-Landroid/widget/ProgressBar$RefreshProgressRunnable-IA;
-Landroid/widget/ProgressBar$RefreshProgressRunnable;
-Landroid/widget/ProgressBar$SavedState$1;
-Landroid/widget/ProgressBar$SavedState-IA;
-Landroid/widget/ProgressBar$SavedState;
-Landroid/widget/ProgressBar;
-Landroid/widget/QuickContactBadge;
-Landroid/widget/RadioButton;
-Landroid/widget/RadioGroup$OnCheckedChangeListener;
-Landroid/widget/RadioGroup;
-Landroid/widget/RatingBar;
-Landroid/widget/RelativeLayout$DependencyGraph$Node;
-Landroid/widget/RelativeLayout$DependencyGraph-IA;
-Landroid/widget/RelativeLayout$DependencyGraph;
-Landroid/widget/RelativeLayout$LayoutParams;
-Landroid/widget/RelativeLayout$TopToBottomLeftToRightComparator;
-Landroid/widget/RelativeLayout;
-Landroid/widget/RemoteViews$$ExternalSyntheticLambda0;
-Landroid/widget/RemoteViews$$ExternalSyntheticLambda1;
-Landroid/widget/RemoteViews$$ExternalSyntheticLambda2;
-Landroid/widget/RemoteViews$1;
-Landroid/widget/RemoteViews$2;
-Landroid/widget/RemoteViews$Action-IA;
-Landroid/widget/RemoteViews$Action;
-Landroid/widget/RemoteViews$ActionException;
-Landroid/widget/RemoteViews$ApplicationInfoCache$$ExternalSyntheticLambda0;
-Landroid/widget/RemoteViews$ApplicationInfoCache;
-Landroid/widget/RemoteViews$AsyncApplyTask;
-Landroid/widget/RemoteViews$AttributeReflectionAction;
-Landroid/widget/RemoteViews$BaseReflectionAction;
-Landroid/widget/RemoteViews$BitmapCache;
-Landroid/widget/RemoteViews$BitmapReflectionAction;
-Landroid/widget/RemoteViews$ComplexUnitDimensionReflectionAction;
-Landroid/widget/RemoteViews$HierarchyRootData;
-Landroid/widget/RemoteViews$InteractionHandler;
-Landroid/widget/RemoteViews$LayoutParamAction;
-Landroid/widget/RemoteViews$MethodArgs;
-Landroid/widget/RemoteViews$MethodKey;
-Landroid/widget/RemoteViews$NightModeReflectionAction;
-Landroid/widget/RemoteViews$OnViewAppliedListener;
-Landroid/widget/RemoteViews$ReflectionAction;
-Landroid/widget/RemoteViews$RemoteCollectionCache;
-Landroid/widget/RemoteViews$RemoteCollectionItems$1;
-Landroid/widget/RemoteViews$RemoteCollectionItems;
-Landroid/widget/RemoteViews$RemoteResponse;
-Landroid/widget/RemoteViews$RemoteView;
-Landroid/widget/RemoteViews$RemoteViewsContextWrapper;
-Landroid/widget/RemoteViews$RemoveFromParentAction;
-Landroid/widget/RemoteViews$ResourceReflectionAction;
-Landroid/widget/RemoteViews$RunnableAction;
-Landroid/widget/RemoteViews$RuntimeAction;
-Landroid/widget/RemoteViews$SetCompoundButtonCheckedAction;
-Landroid/widget/RemoteViews$SetDrawInstructionAction;
-Landroid/widget/RemoteViews$SetDrawableTint;
-Landroid/widget/RemoteViews$SetEmptyView;
-Landroid/widget/RemoteViews$SetIntTagAction;
-Landroid/widget/RemoteViews$SetOnCheckedChangeResponse;
-Landroid/widget/RemoteViews$SetOnClickResponse;
-Landroid/widget/RemoteViews$SetOnStylusHandwritingResponse;
-Landroid/widget/RemoteViews$SetPendingIntentTemplate;
-Landroid/widget/RemoteViews$SetRadioGroupCheckedAction;
-Landroid/widget/RemoteViews$SetRemoteCollectionItemListAdapterAction;
-Landroid/widget/RemoteViews$SetRemoteInputsAction;
-Landroid/widget/RemoteViews$SetRemoteViewsAdapterIntent;
-Landroid/widget/RemoteViews$SetRippleDrawableColor;
-Landroid/widget/RemoteViews$SetViewOutlinePreferredRadiusAction;
-Landroid/widget/RemoteViews$TextViewDrawableAction;
-Landroid/widget/RemoteViews$TextViewSizeAction;
-Landroid/widget/RemoteViews$ViewContentNavigation;
-Landroid/widget/RemoteViews$ViewGroupActionAdd$1;
-Landroid/widget/RemoteViews$ViewGroupActionAdd;
-Landroid/widget/RemoteViews$ViewGroupActionRemove$1;
-Landroid/widget/RemoteViews$ViewGroupActionRemove;
-Landroid/widget/RemoteViews$ViewPaddingAction;
-Landroid/widget/RemoteViews$ViewTree;
-Landroid/widget/RemoteViews;
-Landroid/widget/RemoteViewsAdapter$AsyncRemoteAdapterAction;
-Landroid/widget/RemoteViewsAdapter$RemoteAdapterConnectionCallback;
-Landroid/widget/RemoteViewsAdapter;
-Landroid/widget/RemoteViewsService$RemoteViewsFactory;
-Landroid/widget/RemoteViewsService;
-Landroid/widget/RtlSpacingHelper;
-Landroid/widget/ScrollBarDrawable;
-Landroid/widget/ScrollView$SavedState$1;
-Landroid/widget/ScrollView$SavedState;
-Landroid/widget/ScrollView;
-Landroid/widget/Scroller$ViscousFluidInterpolator;
-Landroid/widget/Scroller;
-Landroid/widget/SectionIndexer;
-Landroid/widget/SeekBar$OnSeekBarChangeListener;
-Landroid/widget/SeekBar;
-Landroid/widget/SelectionActionModeHelper$$ExternalSyntheticLambda10;
-Landroid/widget/SelectionActionModeHelper$$ExternalSyntheticLambda11;
-Landroid/widget/SelectionActionModeHelper$$ExternalSyntheticLambda12;
-Landroid/widget/SelectionActionModeHelper$$ExternalSyntheticLambda2;
-Landroid/widget/SelectionActionModeHelper$$ExternalSyntheticLambda3;
-Landroid/widget/SelectionActionModeHelper$$ExternalSyntheticLambda8;
-Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;
-Landroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable-IA;
-Landroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable;
-Landroid/widget/SelectionActionModeHelper$SelectionTracker;
-Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;
-Landroid/widget/SelectionActionModeHelper;
-Landroid/widget/SmartSelectSprite$$ExternalSyntheticLambda0;
-Landroid/widget/SmartSelectSprite$$ExternalSyntheticLambda1;
-Landroid/widget/SmartSelectSprite$$ExternalSyntheticLambda2;
-Landroid/widget/SmartSelectSprite$RectangleList;
-Landroid/widget/SmartSelectSprite;
-Landroid/widget/Space;
-Landroid/widget/SpellChecker$1;
-Landroid/widget/SpellChecker$RemoveReason;
-Landroid/widget/SpellChecker$SentenceIteratorWrapper;
-Landroid/widget/SpellChecker$SpellParser-IA;
-Landroid/widget/SpellChecker$SpellParser;
-Landroid/widget/SpellChecker;
-Landroid/widget/Spinner$1;
-Landroid/widget/Spinner$DialogPopup-IA;
-Landroid/widget/Spinner$DialogPopup;
-Landroid/widget/Spinner$DropDownAdapter;
-Landroid/widget/Spinner$DropdownPopup$1;
-Landroid/widget/Spinner$DropdownPopup;
-Landroid/widget/Spinner$SavedState$1;
-Landroid/widget/Spinner$SavedState;
-Landroid/widget/Spinner$SpinnerPopup;
-Landroid/widget/Spinner;
-Landroid/widget/SpinnerAdapter;
-Landroid/widget/Switch$1;
-Landroid/widget/Switch;
-Landroid/widget/TableLayout$PassThroughHierarchyChangeListener;
-Landroid/widget/TableLayout;
-Landroid/widget/TableRow$ChildrenTracker;
-Landroid/widget/TableRow;
-Landroid/widget/TextClock$1;
-Landroid/widget/TextClock$2;
-Landroid/widget/TextClock$FormatChangeObserver;
-Landroid/widget/TextClock;
-Landroid/widget/TextView$$ExternalSyntheticLambda0;
-Landroid/widget/TextView$$ExternalSyntheticLambda2;
-Landroid/widget/TextView$$ExternalSyntheticLambda3;
-Landroid/widget/TextView$$ExternalSyntheticLambda4;
-Landroid/widget/TextView$$ExternalSyntheticLambda5;
-Landroid/widget/TextView$$ExternalSyntheticLambda6;
-Landroid/widget/TextView$$ExternalSyntheticLambda7;
-Landroid/widget/TextView$1;
-Landroid/widget/TextView$2;
-Landroid/widget/TextView$3;
-Landroid/widget/TextView$4;
-Landroid/widget/TextView$BufferType;
-Landroid/widget/TextView$ChangeWatcher-IA;
-Landroid/widget/TextView$ChangeWatcher;
-Landroid/widget/TextView$CharWrapper;
-Landroid/widget/TextView$Drawables;
-Landroid/widget/TextView$Marquee$1;
-Landroid/widget/TextView$Marquee$2;
-Landroid/widget/TextView$Marquee$3;
-Landroid/widget/TextView$Marquee;
-Landroid/widget/TextView$OnEditorActionListener;
-Landroid/widget/TextView$SavedState$1;
-Landroid/widget/TextView$SavedState-IA;
-Landroid/widget/TextView$SavedState;
-Landroid/widget/TextView$TextAppearanceAttributes-IA;
-Landroid/widget/TextView$TextAppearanceAttributes;
-Landroid/widget/TextView;
-Landroid/widget/TextViewOnReceiveContentListener$InputConnectionInfo-IA;
-Landroid/widget/TextViewOnReceiveContentListener$InputConnectionInfo;
-Landroid/widget/TextViewOnReceiveContentListener;
-Landroid/widget/TextViewTranslationCallback;
-Landroid/widget/ThemedSpinnerAdapter;
-Landroid/widget/Toast$Callback;
-Landroid/widget/Toast$CallbackBinder$$ExternalSyntheticLambda0;
-Landroid/widget/Toast$CallbackBinder$$ExternalSyntheticLambda1;
-Landroid/widget/Toast$CallbackBinder-IA;
-Landroid/widget/Toast$CallbackBinder;
-Landroid/widget/Toast$TN$1;
-Landroid/widget/Toast$TN;
-Landroid/widget/Toast;
-Landroid/widget/ToastPresenter;
-Landroid/widget/ToggleButton;
-Landroid/widget/Toolbar$1;
-Landroid/widget/Toolbar$2;
-Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;
-Landroid/widget/Toolbar$LayoutParams;
-Landroid/widget/Toolbar$OnMenuItemClickListener;
-Landroid/widget/Toolbar$SavedState$1;
-Landroid/widget/Toolbar$SavedState;
-Landroid/widget/Toolbar;
-Landroid/widget/ViewAnimator;
-Landroid/widget/ViewFlipper$1;
-Landroid/widget/ViewFlipper;
-Landroid/widget/ViewSwitcher;
-Landroid/widget/WrapperListAdapter;
-Landroid/widget/inline/InlinePresentationSpec$1;
-Landroid/widget/inline/InlinePresentationSpec$BaseBuilder;
-Landroid/widget/inline/InlinePresentationSpec$Builder;
-Landroid/widget/inline/InlinePresentationSpec;
-Landroid/window/ActivityWindowInfo;
-Landroid/window/BackAnimationAdapter$1;
-Landroid/window/BackAnimationAdapter;
-Landroid/window/BackEvent;
-Landroid/window/BackMotionEvent$1;
-Landroid/window/BackMotionEvent;
-Landroid/window/BackNavigationInfo$1;
-Landroid/window/BackNavigationInfo;
-Landroid/window/BackProgressAnimator$1;
-Landroid/window/BackProgressAnimator$ProgressCallback;
-Landroid/window/BackProgressAnimator;
-Landroid/window/ClientWindowFrames$1;
-Landroid/window/ClientWindowFrames-IA;
-Landroid/window/ClientWindowFrames;
-Landroid/window/CompatOnBackInvokedCallback;
-Landroid/window/ConfigurationHelper;
-Landroid/window/DisplayAreaAppearedInfo$1;
-Landroid/window/DisplayAreaAppearedInfo;
-Landroid/window/DisplayAreaInfo$1;
-Landroid/window/DisplayAreaInfo;
-Landroid/window/DisplayAreaOrganizer$1;
-Landroid/window/DisplayAreaOrganizer;
-Landroid/window/IDisplayAreaOrganizer$Stub$Proxy;
-Landroid/window/IDisplayAreaOrganizer$Stub;
-Landroid/window/IDisplayAreaOrganizer;
-Landroid/window/IDisplayAreaOrganizerController$Stub$Proxy;
-Landroid/window/IDisplayAreaOrganizerController$Stub;
-Landroid/window/IDisplayAreaOrganizerController;
-Landroid/window/IOnBackInvokedCallback$Stub$Proxy;
-Landroid/window/IOnBackInvokedCallback$Stub;
-Landroid/window/IOnBackInvokedCallback;
-Landroid/window/IRemoteTransition$Stub$Proxy;
-Landroid/window/IRemoteTransition$Stub;
-Landroid/window/IRemoteTransition;
-Landroid/window/IRemoteTransitionFinishedCallback;
-Landroid/window/ISurfaceSyncGroup$Stub;
-Landroid/window/ISurfaceSyncGroup;
-Landroid/window/ISurfaceSyncGroupCompletedListener$Stub;
-Landroid/window/ISurfaceSyncGroupCompletedListener;
-Landroid/window/ITaskFragmentOrganizer$Stub$Proxy;
-Landroid/window/ITaskFragmentOrganizer$Stub;
-Landroid/window/ITaskFragmentOrganizer;
-Landroid/window/ITaskFragmentOrganizerController$Stub;
-Landroid/window/ITaskFragmentOrganizerController;
-Landroid/window/ITaskOrganizer$Stub$Proxy;
-Landroid/window/ITaskOrganizer$Stub;
-Landroid/window/ITaskOrganizer;
-Landroid/window/ITaskOrganizerController$Stub$Proxy;
-Landroid/window/ITaskOrganizerController$Stub;
-Landroid/window/ITaskOrganizerController;
-Landroid/window/ITransactionReadyCallback$Stub;
-Landroid/window/ITransactionReadyCallback;
-Landroid/window/ITransitionMetricsReporter;
-Landroid/window/ITransitionPlayer$Stub;
-Landroid/window/ITransitionPlayer;
-Landroid/window/ITrustedPresentationListener$Stub;
-Landroid/window/ITrustedPresentationListener;
-Landroid/window/IWindowContainerToken$Stub$Proxy;
-Landroid/window/IWindowContainerToken$Stub;
-Landroid/window/IWindowContainerToken;
-Landroid/window/IWindowContainerTransactionCallback$Stub;
-Landroid/window/IWindowContainerTransactionCallback;
-Landroid/window/IWindowOrganizerController$Stub$Proxy;
-Landroid/window/IWindowOrganizerController$Stub;
-Landroid/window/IWindowOrganizerController;
-Landroid/window/ImeOnBackInvokedDispatcher$$ExternalSyntheticLambda0;
-Landroid/window/ImeOnBackInvokedDispatcher$1;
-Landroid/window/ImeOnBackInvokedDispatcher$2;
-Landroid/window/ImeOnBackInvokedDispatcher$ImeOnBackInvokedCallback;
-Landroid/window/ImeOnBackInvokedDispatcher;
-Landroid/window/OnBackAnimationCallback;
-Landroid/window/OnBackInvokedCallback;
-Landroid/window/OnBackInvokedCallbackInfo$1;
-Landroid/window/OnBackInvokedCallbackInfo;
-Landroid/window/OnBackInvokedDispatcher;
-Landroid/window/ProxyOnBackInvokedDispatcher$$ExternalSyntheticLambda0;
-Landroid/window/ProxyOnBackInvokedDispatcher;
-Landroid/window/RemoteTransition$1;
-Landroid/window/RemoteTransition;
-Landroid/window/ScreenCapture$CaptureArgs$1;
-Landroid/window/ScreenCapture$CaptureArgs$Builder;
-Landroid/window/ScreenCapture$CaptureArgs;
-Landroid/window/ScreenCapture$DisplayCaptureArgs;
-Landroid/window/ScreenCapture$LayerCaptureArgs$Builder;
-Landroid/window/ScreenCapture$LayerCaptureArgs;
-Landroid/window/ScreenCapture$ScreenCaptureListener$1;
-Landroid/window/ScreenCapture$ScreenCaptureListener;
-Landroid/window/ScreenCapture$ScreenshotHardwareBuffer;
-Landroid/window/ScreenCapture;
-Landroid/window/SizeConfigurationBuckets$1;
-Landroid/window/SizeConfigurationBuckets;
-Landroid/window/SplashScreen$SplashScreenManagerGlobal$1;
-Landroid/window/SplashScreen$SplashScreenManagerGlobal;
-Landroid/window/SplashScreenView$SplashScreenViewParcelable$1;
-Landroid/window/SplashScreenView$SplashScreenViewParcelable;
-Landroid/window/SplashScreenView;
-Landroid/window/StartingWindowInfo$1;
-Landroid/window/StartingWindowInfo;
-Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda0;
-Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda1;
-Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda2;
-Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda3;
-Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda4;
-Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda5;
-Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda6;
-Landroid/window/SurfaceSyncGroup$1;
-Landroid/window/SurfaceSyncGroup$2;
-Landroid/window/SurfaceSyncGroup$ISurfaceSyncGroupImpl-IA;
-Landroid/window/SurfaceSyncGroup$ISurfaceSyncGroupImpl;
-Landroid/window/SurfaceSyncGroup$SurfaceViewFrameCallback;
-Landroid/window/SurfaceSyncGroup;
-Landroid/window/TaskAppearedInfo$1;
-Landroid/window/TaskAppearedInfo;
-Landroid/window/TaskFpsCallback;
-Landroid/window/TaskFragmentOperation$1;
-Landroid/window/TaskFragmentOperation;
-Landroid/window/TaskFragmentOrganizer$1;
-Landroid/window/TaskFragmentOrganizer;
-Landroid/window/TaskFragmentOrganizerToken$1;
-Landroid/window/TaskFragmentOrganizerToken;
-Landroid/window/TaskFragmentTransaction;
-Landroid/window/TaskOrganizer$1;
-Landroid/window/TaskOrganizer;
-Landroid/window/TaskSnapshot$1;
-Landroid/window/TaskSnapshot;
-Landroid/window/TransitionFilter$1;
-Landroid/window/TransitionFilter$Requirement$1;
-Landroid/window/TransitionFilter$Requirement;
-Landroid/window/TransitionFilter;
-Landroid/window/TransitionInfo$1;
-Landroid/window/TransitionInfo;
-Landroid/window/WindowContainerToken$1;
-Landroid/window/WindowContainerToken-IA;
-Landroid/window/WindowContainerToken;
-Landroid/window/WindowContainerTransaction$1;
-Landroid/window/WindowContainerTransaction$Change$1;
-Landroid/window/WindowContainerTransaction$Change;
-Landroid/window/WindowContainerTransaction$HierarchyOp$1;
-Landroid/window/WindowContainerTransaction$HierarchyOp$Builder;
-Landroid/window/WindowContainerTransaction$HierarchyOp;
-Landroid/window/WindowContainerTransaction;
-Landroid/window/WindowContext;
-Landroid/window/WindowContextController;
-Landroid/window/WindowInfosListener$DisplayInfo;
-Landroid/window/WindowInfosListener;
-Landroid/window/WindowMetricsController$$ExternalSyntheticLambda0;
-Landroid/window/WindowMetricsController;
-Landroid/window/WindowOnBackInvokedDispatcher$$ExternalSyntheticLambda0;
-Landroid/window/WindowOnBackInvokedDispatcher$Checker;
-Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda0;
-Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda1;
-Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda2;
-Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda3;
-Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda4;
-Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda5;
-Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$CallbackRef;
-Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper;
-Landroid/window/WindowOnBackInvokedDispatcher;
-Landroid/window/WindowOrganizer$1;
-Landroid/window/WindowOrganizer;
-Landroid/window/WindowProvider;
-Landroid/window/WindowProviderService;
-Landroid/window/WindowTokenClient;
-Landroid/window/WindowTokenClientController;
-Lcom/android/apex/ApexInfo;
-Lcom/android/apex/ApexInfoList;
-Lcom/android/apex/XmlParser;
-Lcom/android/cellbroadcastservice/CellBroadcastStatsLog;
-Lcom/android/framework/protobuf/AbstractMessageLite$Builder;
-Lcom/android/framework/protobuf/AbstractMessageLite;
-Lcom/android/framework/protobuf/AbstractParser;
-Lcom/android/framework/protobuf/AbstractProtobufList;
-Lcom/android/framework/protobuf/Android;
-Lcom/android/framework/protobuf/ArrayDecoders$Registers;
-Lcom/android/framework/protobuf/ArrayDecoders;
-Lcom/android/framework/protobuf/CodedInputStream$ArrayDecoder;
-Lcom/android/framework/protobuf/CodedInputStream;
-Lcom/android/framework/protobuf/ExtensionRegistryFactory;
-Lcom/android/framework/protobuf/ExtensionRegistryLite;
-Lcom/android/framework/protobuf/ExtensionSchema;
-Lcom/android/framework/protobuf/ExtensionSchemaLite;
-Lcom/android/framework/protobuf/ExtensionSchemas;
-Lcom/android/framework/protobuf/GeneratedMessageInfoFactory;
-Lcom/android/framework/protobuf/GeneratedMessageLite$Builder;
-Lcom/android/framework/protobuf/GeneratedMessageLite$DefaultInstanceBasedParser;
-Lcom/android/framework/protobuf/GeneratedMessageLite$ExtendableMessage;
-Lcom/android/framework/protobuf/GeneratedMessageLite$ExtendableMessageOrBuilder;
-Lcom/android/framework/protobuf/GeneratedMessageLite$MethodToInvoke;
-Lcom/android/framework/protobuf/GeneratedMessageLite$SerializedForm;
-Lcom/android/framework/protobuf/GeneratedMessageLite;
-Lcom/android/framework/protobuf/Internal$EnumVerifier;
-Lcom/android/framework/protobuf/Internal$ProtobufList;
-Lcom/android/framework/protobuf/Internal;
-Lcom/android/framework/protobuf/InvalidProtocolBufferException$InvalidWireTypeException;
-Lcom/android/framework/protobuf/InvalidProtocolBufferException;
-Lcom/android/framework/protobuf/ListFieldSchema$ListFieldSchemaFull;
-Lcom/android/framework/protobuf/ListFieldSchema$ListFieldSchemaLite;
-Lcom/android/framework/protobuf/ListFieldSchema;
-Lcom/android/framework/protobuf/ManifestSchemaFactory$1;
-Lcom/android/framework/protobuf/ManifestSchemaFactory$CompositeMessageInfoFactory;
-Lcom/android/framework/protobuf/ManifestSchemaFactory;
-Lcom/android/framework/protobuf/MapFieldSchema;
-Lcom/android/framework/protobuf/MapFieldSchemaLite;
-Lcom/android/framework/protobuf/MapFieldSchemas;
-Lcom/android/framework/protobuf/MessageInfo;
-Lcom/android/framework/protobuf/MessageInfoFactory;
-Lcom/android/framework/protobuf/MessageLite$Builder;
-Lcom/android/framework/protobuf/MessageLite;
-Lcom/android/framework/protobuf/MessageLiteOrBuilder;
-Lcom/android/framework/protobuf/MessageSchema;
-Lcom/android/framework/protobuf/MessageSetSchema;
-Lcom/android/framework/protobuf/NewInstanceSchema;
-Lcom/android/framework/protobuf/NewInstanceSchemaLite;
-Lcom/android/framework/protobuf/NewInstanceSchemas;
-Lcom/android/framework/protobuf/Parser;
-Lcom/android/framework/protobuf/ProtoSyntax;
-Lcom/android/framework/protobuf/Protobuf;
-Lcom/android/framework/protobuf/ProtobufArrayList;
-Lcom/android/framework/protobuf/RawMessageInfo;
-Lcom/android/framework/protobuf/Schema;
-Lcom/android/framework/protobuf/SchemaFactory;
-Lcom/android/framework/protobuf/SchemaUtil;
-Lcom/android/framework/protobuf/StructuralMessageInfo;
-Lcom/android/framework/protobuf/UninitializedMessageException;
-Lcom/android/framework/protobuf/UnknownFieldSchema;
-Lcom/android/framework/protobuf/UnknownFieldSetLite;
-Lcom/android/framework/protobuf/UnknownFieldSetLiteSchema;
-Lcom/android/framework/protobuf/UnsafeUtil$1;
-Lcom/android/framework/protobuf/UnsafeUtil$Android64MemoryAccessor;
-Lcom/android/framework/protobuf/UnsafeUtil$JvmMemoryAccessor;
-Lcom/android/framework/protobuf/UnsafeUtil$MemoryAccessor;
-Lcom/android/framework/protobuf/UnsafeUtil;
-Lcom/android/framework/protobuf/nano/CodedInputByteBufferNano;
-Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano$OutOfSpaceException;
-Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;
-Lcom/android/framework/protobuf/nano/InternalNano;
-Lcom/android/framework/protobuf/nano/InvalidProtocolBufferNanoException;
-Lcom/android/framework/protobuf/nano/MessageNano;
-Lcom/android/framework/protobuf/nano/WireFormatNano;
-Lcom/android/graphics/hwui/flags/Flags;
-Lcom/android/i18n/phonenumbers/AlternateFormatsCountryCodeSet;
-Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;
-Lcom/android/i18n/phonenumbers/CountryCodeToRegionCodeMap;
-Lcom/android/i18n/phonenumbers/MetadataLoader;
-Lcom/android/i18n/phonenumbers/MissingMetadataException;
-Lcom/android/i18n/phonenumbers/NumberParseException$ErrorType;
-Lcom/android/i18n/phonenumbers/NumberParseException;
-Lcom/android/i18n/phonenumbers/PhoneNumberMatch;
-Lcom/android/i18n/phonenumbers/PhoneNumberMatcher$NumberGroupingChecker;
-Lcom/android/i18n/phonenumbers/PhoneNumberMatcher$State;
-Lcom/android/i18n/phonenumbers/PhoneNumberMatcher;
-Lcom/android/i18n/phonenumbers/PhoneNumberToTimeZonesMapper$LazyHolder;
-Lcom/android/i18n/phonenumbers/PhoneNumberToTimeZonesMapper;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$1;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$2;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency$1;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency$2;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency$3$1;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency$3;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency$4$1;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency$4;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil;
-Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat$Builder;
-Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata$Builder;
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection$Builder;
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection;
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc$Builder;
-Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
-Lcom/android/i18n/phonenumbers/Phonemetadata;
-Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;
-Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
-Lcom/android/i18n/phonenumbers/Phonenumber;
-Lcom/android/i18n/phonenumbers/ShortNumberInfo$ShortNumberCost;
-Lcom/android/i18n/phonenumbers/ShortNumberInfo;
-Lcom/android/i18n/phonenumbers/ShortNumbersRegionCodeSet;
-Lcom/android/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoder;
-Lcom/android/i18n/phonenumbers/internal/MatcherApi;
-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/i18n/phonenumbers/metadata/DefaultMetadataDependenciesProvider;
-Lcom/android/i18n/phonenumbers/metadata/init/ClassPathResourceMetadataLoader;
-Lcom/android/i18n/phonenumbers/metadata/init/MetadataParser;
-Lcom/android/i18n/phonenumbers/metadata/source/BlockingMetadataBootstrappingGuard;
-Lcom/android/i18n/phonenumbers/metadata/source/CompositeMetadataContainer;
-Lcom/android/i18n/phonenumbers/metadata/source/FormattingMetadataSource;
-Lcom/android/i18n/phonenumbers/metadata/source/FormattingMetadataSourceImpl;
-Lcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer$1;
-Lcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer$2;
-Lcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer$KeyProvider;
-Lcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer;
-Lcom/android/i18n/phonenumbers/metadata/source/MetadataBootstrappingGuard;
-Lcom/android/i18n/phonenumbers/metadata/source/MetadataContainer;
-Lcom/android/i18n/phonenumbers/metadata/source/MetadataSource;
-Lcom/android/i18n/phonenumbers/metadata/source/MetadataSourceImpl;
-Lcom/android/i18n/phonenumbers/metadata/source/MultiFileModeFileNameProvider;
-Lcom/android/i18n/phonenumbers/metadata/source/NonGeographicalEntityMetadataSource;
-Lcom/android/i18n/phonenumbers/metadata/source/PhoneMetadataFileNameProvider;
-Lcom/android/i18n/phonenumbers/metadata/source/RegionMetadataSource;
-Lcom/android/i18n/phonenumbers/metadata/source/RegionMetadataSourceImpl;
-Lcom/android/i18n/phonenumbers/prefixmapper/DefaultMapStorage;
-Lcom/android/i18n/phonenumbers/prefixmapper/FlyweightMapStorage;
-Lcom/android/i18n/phonenumbers/prefixmapper/MappingFileProvider;
-Lcom/android/i18n/phonenumbers/prefixmapper/PhonePrefixMap;
-Lcom/android/i18n/phonenumbers/prefixmapper/PhonePrefixMapStorageStrategy;
-Lcom/android/i18n/phonenumbers/prefixmapper/PrefixFileReader;
-Lcom/android/i18n/phonenumbers/prefixmapper/PrefixTimeZonesMap;
-Lcom/android/i18n/system/AppSpecializationHooks;
-Lcom/android/i18n/system/ZygoteHooks;
-Lcom/android/i18n/timezone/CountryTimeZones$OffsetResult;
-Lcom/android/i18n/timezone/CountryTimeZones$TimeZoneMapping;
-Lcom/android/i18n/timezone/CountryTimeZones;
-Lcom/android/i18n/timezone/CountryZonesFinder;
-Lcom/android/i18n/timezone/DebugInfo$DebugEntry;
-Lcom/android/i18n/timezone/DebugInfo;
-Lcom/android/i18n/timezone/I18nModuleDebug;
-Lcom/android/i18n/timezone/TelephonyLookup$TelephonyNetworkProcessor;
-Lcom/android/i18n/timezone/TelephonyLookup$TelephonyNetworkValidator;
-Lcom/android/i18n/timezone/TelephonyLookup$TelephonyNetworksExtractor;
-Lcom/android/i18n/timezone/TelephonyLookup;
-Lcom/android/i18n/timezone/TelephonyNetwork$MccMnc;
-Lcom/android/i18n/timezone/TelephonyNetwork;
-Lcom/android/i18n/timezone/TelephonyNetworkFinder;
-Lcom/android/i18n/timezone/TimeZoneDataFiles;
-Lcom/android/i18n/timezone/TimeZoneFinder$CountryZonesLookupExtractor;
-Lcom/android/i18n/timezone/TimeZoneFinder$IanaVersionExtractor;
-Lcom/android/i18n/timezone/TimeZoneFinder$SelectiveCountryTimeZonesExtractor;
-Lcom/android/i18n/timezone/TimeZoneFinder$TimeZonesProcessor;
-Lcom/android/i18n/timezone/TimeZoneFinder$TimeZonesValidator;
-Lcom/android/i18n/timezone/TimeZoneFinder;
-Lcom/android/i18n/timezone/TzDataSetVersion$TzDataSetException;
-Lcom/android/i18n/timezone/TzDataSetVersion;
-Lcom/android/i18n/timezone/WallTime$CheckedArithmeticException;
-Lcom/android/i18n/timezone/WallTime$OffsetInterval;
-Lcom/android/i18n/timezone/WallTime;
-Lcom/android/i18n/timezone/XmlUtils$ReaderSupplier$$ExternalSyntheticLambda0;
-Lcom/android/i18n/timezone/XmlUtils$ReaderSupplier$$ExternalSyntheticLambda1;
-Lcom/android/i18n/timezone/XmlUtils$ReaderSupplier;
-Lcom/android/i18n/timezone/XmlUtils;
-Lcom/android/i18n/timezone/ZoneInfoData;
-Lcom/android/i18n/timezone/ZoneInfoDb$1;
-Lcom/android/i18n/timezone/ZoneInfoDb;
-Lcom/android/i18n/timezone/internal/BasicLruCache$CacheMap;
-Lcom/android/i18n/timezone/internal/BasicLruCache;
-Lcom/android/i18n/timezone/internal/BufferIterator;
-Lcom/android/i18n/timezone/internal/ByteBufferIterator;
-Lcom/android/i18n/timezone/internal/Memory;
-Lcom/android/i18n/timezone/internal/MemoryMappedFile;
-Lcom/android/i18n/timezone/internal/NioBufferIterator;
-Lcom/android/i18n/util/Log;
-Lcom/android/icu/charset/CharsetEncoderICU;
-Lcom/android/icu/charset/CharsetFactory;
-Lcom/android/icu/charset/NativeConverter;
-Lcom/android/icu/text/CompatibleDecimalFormatFactory;
-Lcom/android/icu/text/DateSorterBridge;
-Lcom/android/icu/text/ExtendedDateFormatSymbols;
-Lcom/android/icu/text/ExtendedDecimalFormatSymbols;
-Lcom/android/icu/text/ExtendedIDNA;
-Lcom/android/icu/text/ExtendedTimeZoneNames$Match;
-Lcom/android/icu/text/ExtendedTimeZoneNames;
-Lcom/android/icu/text/TimeZoneNamesNative;
-Lcom/android/icu/util/CaseMapperNative;
-Lcom/android/icu/util/ExtendedCalendar;
-Lcom/android/icu/util/ExtendedTimeZone;
-Lcom/android/icu/util/Icu4cMetadata;
-Lcom/android/icu/util/LocaleNative;
-Lcom/android/icu/util/regex/MatcherNative;
-Lcom/android/icu/util/regex/PatternNative;
-Lcom/android/ims/FeatureConnection$$ExternalSyntheticLambda0;
-Lcom/android/ims/FeatureConnection$$ExternalSyntheticLambda1;
-Lcom/android/ims/FeatureConnection;
-Lcom/android/ims/FeatureConnector$$ExternalSyntheticLambda0;
-Lcom/android/ims/FeatureConnector$1$$ExternalSyntheticLambda0;
-Lcom/android/ims/FeatureConnector$1$$ExternalSyntheticLambda1;
-Lcom/android/ims/FeatureConnector$1;
-Lcom/android/ims/FeatureConnector$Listener;
-Lcom/android/ims/FeatureConnector$ManagerFactory;
-Lcom/android/ims/FeatureConnector$UnavailableReason;
-Lcom/android/ims/FeatureConnector;
-Lcom/android/ims/FeatureUpdates;
-Lcom/android/ims/ImsCall$ImsCallSessionListenerProxy;
-Lcom/android/ims/ImsCall$Listener;
-Lcom/android/ims/ImsCall;
-Lcom/android/ims/ImsCallbackAdapterManager;
-Lcom/android/ims/ImsConfig;
-Lcom/android/ims/ImsConfigListener$Stub$Proxy;
-Lcom/android/ims/ImsConfigListener$Stub;
-Lcom/android/ims/ImsConfigListener;
-Lcom/android/ims/ImsConnectionStateListener;
-Lcom/android/ims/ImsEcbm$ImsEcbmListenerProxy;
-Lcom/android/ims/ImsEcbm;
-Lcom/android/ims/ImsEcbmStateListener;
-Lcom/android/ims/ImsException;
-Lcom/android/ims/ImsExternalCallStateListener;
-Lcom/android/ims/ImsFeatureBinderRepository$$ExternalSyntheticLambda0;
-Lcom/android/ims/ImsFeatureBinderRepository$ListenerContainer$$ExternalSyntheticLambda0;
-Lcom/android/ims/ImsFeatureBinderRepository$ListenerContainer$$ExternalSyntheticLambda1;
-Lcom/android/ims/ImsFeatureBinderRepository$ListenerContainer$$ExternalSyntheticLambda2;
-Lcom/android/ims/ImsFeatureBinderRepository$ListenerContainer$$ExternalSyntheticLambda3;
-Lcom/android/ims/ImsFeatureBinderRepository$ListenerContainer;
-Lcom/android/ims/ImsFeatureBinderRepository$UpdateMapper$$ExternalSyntheticLambda0;
-Lcom/android/ims/ImsFeatureBinderRepository$UpdateMapper$$ExternalSyntheticLambda1;
-Lcom/android/ims/ImsFeatureBinderRepository$UpdateMapper$$ExternalSyntheticLambda2;
-Lcom/android/ims/ImsFeatureBinderRepository$UpdateMapper$$ExternalSyntheticLambda3;
-Lcom/android/ims/ImsFeatureBinderRepository$UpdateMapper$$ExternalSyntheticLambda4;
-Lcom/android/ims/ImsFeatureBinderRepository$UpdateMapper$$ExternalSyntheticLambda5;
-Lcom/android/ims/ImsFeatureBinderRepository$UpdateMapper;
-Lcom/android/ims/ImsFeatureBinderRepository;
-Lcom/android/ims/ImsFeatureContainer$1;
-Lcom/android/ims/ImsFeatureContainer;
-Lcom/android/ims/ImsManager$$ExternalSyntheticLambda0;
-Lcom/android/ims/ImsManager$$ExternalSyntheticLambda10;
-Lcom/android/ims/ImsManager$$ExternalSyntheticLambda11;
-Lcom/android/ims/ImsManager$$ExternalSyntheticLambda12;
-Lcom/android/ims/ImsManager$$ExternalSyntheticLambda1;
-Lcom/android/ims/ImsManager$$ExternalSyntheticLambda2;
-Lcom/android/ims/ImsManager$$ExternalSyntheticLambda3;
-Lcom/android/ims/ImsManager$$ExternalSyntheticLambda4;
-Lcom/android/ims/ImsManager$$ExternalSyntheticLambda5;
-Lcom/android/ims/ImsManager$$ExternalSyntheticLambda6;
-Lcom/android/ims/ImsManager$$ExternalSyntheticLambda7;
-Lcom/android/ims/ImsManager$$ExternalSyntheticLambda8;
-Lcom/android/ims/ImsManager$$ExternalSyntheticLambda9;
-Lcom/android/ims/ImsManager$1;
-Lcom/android/ims/ImsManager$2;
-Lcom/android/ims/ImsManager$DefaultSettingsProxy;
-Lcom/android/ims/ImsManager$DefaultSubscriptionManagerProxy;
-Lcom/android/ims/ImsManager$ImsStatsCallback;
-Lcom/android/ims/ImsManager$InstanceManager$$ExternalSyntheticLambda0;
-Lcom/android/ims/ImsManager$InstanceManager;
-Lcom/android/ims/ImsManager$LazyExecutor;
-Lcom/android/ims/ImsManager$MmTelFeatureConnectionFactory;
-Lcom/android/ims/ImsManager$SettingsProxy;
-Lcom/android/ims/ImsManager$SubscriptionManagerProxy;
-Lcom/android/ims/ImsManager;
-Lcom/android/ims/ImsMultiEndpoint$ImsExternalCallStateListenerProxy;
-Lcom/android/ims/ImsMultiEndpoint;
-Lcom/android/ims/ImsServiceClass;
-Lcom/android/ims/ImsUt$IImsUtListenerProxy;
-Lcom/android/ims/ImsUt;
-Lcom/android/ims/ImsUtInterface;
-Lcom/android/ims/MmTelFeatureConnection$BinderAccessState;
-Lcom/android/ims/MmTelFeatureConnection$CapabilityCallbackManager;
-Lcom/android/ims/MmTelFeatureConnection$ImsRegistrationCallbackAdapter;
-Lcom/android/ims/MmTelFeatureConnection$ProvisioningCallbackManager;
-Lcom/android/ims/MmTelFeatureConnection;
-Lcom/android/ims/Preconditions;
-Lcom/android/ims/RcsFeatureConnection$AvailabilityCallbackManager;
-Lcom/android/ims/RcsFeatureConnection$RegistrationCallbackManager;
-Lcom/android/ims/RcsFeatureConnection;
-Lcom/android/ims/RcsFeatureManager$$ExternalSyntheticLambda0;
-Lcom/android/ims/RcsFeatureManager$$ExternalSyntheticLambda1;
-Lcom/android/ims/RcsFeatureManager$$ExternalSyntheticLambda2;
-Lcom/android/ims/RcsFeatureManager$1$$ExternalSyntheticLambda0;
-Lcom/android/ims/RcsFeatureManager$1$$ExternalSyntheticLambda1;
-Lcom/android/ims/RcsFeatureManager$1$$ExternalSyntheticLambda2;
-Lcom/android/ims/RcsFeatureManager$1;
-Lcom/android/ims/RcsFeatureManager$2;
-Lcom/android/ims/RcsFeatureManager$CapabilityExchangeEventCallback;
-Lcom/android/ims/RcsFeatureManager;
-Lcom/android/ims/RcsPresenceInfo$1;
-Lcom/android/ims/RcsPresenceInfo$ServiceInfoKey;
-Lcom/android/ims/RcsPresenceInfo$ServiceState;
-Lcom/android/ims/RcsPresenceInfo$ServiceType;
-Lcom/android/ims/RcsPresenceInfo$VolteStatus;
-Lcom/android/ims/RcsPresenceInfo;
-Lcom/android/ims/Registrant;
-Lcom/android/ims/RegistrantList;
-Lcom/android/ims/ResultCode;
-Lcom/android/ims/SomeArgs;
-Lcom/android/ims/internal/ConferenceParticipant$1;
-Lcom/android/ims/internal/ConferenceParticipant;
-Lcom/android/ims/internal/ContactNumberUtils;
-Lcom/android/ims/internal/ICall;
-Lcom/android/ims/internal/IImsCallSession$Stub;
-Lcom/android/ims/internal/IImsCallSession;
-Lcom/android/ims/internal/IImsConfig;
-Lcom/android/ims/internal/IImsEcbm$Stub$Proxy;
-Lcom/android/ims/internal/IImsEcbm$Stub;
-Lcom/android/ims/internal/IImsEcbm;
-Lcom/android/ims/internal/IImsEcbmListener$Stub$Proxy;
-Lcom/android/ims/internal/IImsEcbmListener$Stub;
-Lcom/android/ims/internal/IImsEcbmListener;
-Lcom/android/ims/internal/IImsExternalCallStateListener$Stub$Proxy;
-Lcom/android/ims/internal/IImsExternalCallStateListener$Stub;
-Lcom/android/ims/internal/IImsExternalCallStateListener;
-Lcom/android/ims/internal/IImsFeatureStatusCallback$Stub$Proxy;
-Lcom/android/ims/internal/IImsFeatureStatusCallback$Stub;
-Lcom/android/ims/internal/IImsFeatureStatusCallback;
-Lcom/android/ims/internal/IImsMMTelFeature$Stub;
-Lcom/android/ims/internal/IImsMMTelFeature;
-Lcom/android/ims/internal/IImsMultiEndpoint$Stub$Proxy;
-Lcom/android/ims/internal/IImsMultiEndpoint$Stub;
-Lcom/android/ims/internal/IImsMultiEndpoint;
-Lcom/android/ims/internal/IImsRegistrationListener$Stub;
-Lcom/android/ims/internal/IImsRegistrationListener;
-Lcom/android/ims/internal/IImsServiceController$Stub;
-Lcom/android/ims/internal/IImsServiceController;
-Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub$Proxy;
-Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub;
-Lcom/android/ims/internal/IImsServiceFeatureCallback;
-Lcom/android/ims/internal/IImsStreamMediaSession;
-Lcom/android/ims/internal/IImsUt$Stub$Proxy;
-Lcom/android/ims/internal/IImsUt$Stub;
-Lcom/android/ims/internal/IImsUt;
-Lcom/android/ims/internal/IImsUtListener$Stub$Proxy;
-Lcom/android/ims/internal/IImsUtListener$Stub;
-Lcom/android/ims/internal/IImsUtListener;
-Lcom/android/ims/internal/IImsVideoCallCallback$Stub;
-Lcom/android/ims/internal/IImsVideoCallCallback;
-Lcom/android/ims/internal/IImsVideoCallProvider;
-Lcom/android/ims/internal/ImsStreamMediaSession$Listener;
-Lcom/android/ims/internal/ImsStreamMediaSession;
-Lcom/android/ims/internal/ImsVideoCallProviderWrapper$1;
-Lcom/android/ims/internal/ImsVideoCallProviderWrapper$2;
-Lcom/android/ims/internal/ImsVideoCallProviderWrapper$ImsVideoCallCallback;
-Lcom/android/ims/internal/ImsVideoCallProviderWrapper$ImsVideoProviderWrapperCallback;
-Lcom/android/ims/internal/ImsVideoCallProviderWrapper;
-Lcom/android/ims/internal/Logger;
-Lcom/android/ims/internal/VideoPauseTracker$$ExternalSyntheticLambda0;
-Lcom/android/ims/internal/VideoPauseTracker;
-Lcom/android/ims/internal/uce/UceServiceBase$UceServiceBinder;
-Lcom/android/ims/internal/uce/UceServiceBase;
-Lcom/android/ims/internal/uce/common/CapInfo$1;
-Lcom/android/ims/internal/uce/common/CapInfo;
-Lcom/android/ims/internal/uce/common/StatusCode$1;
-Lcom/android/ims/internal/uce/common/UceLong$1;
-Lcom/android/ims/internal/uce/common/UceLong;
-Lcom/android/ims/internal/uce/options/IOptionsListener$Stub$Proxy;
-Lcom/android/ims/internal/uce/options/IOptionsListener$Stub;
-Lcom/android/ims/internal/uce/options/IOptionsListener;
-Lcom/android/ims/internal/uce/options/IOptionsService;
-Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub$Proxy;
-Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub;
-Lcom/android/ims/internal/uce/presence/IPresenceListener;
-Lcom/android/ims/internal/uce/presence/IPresenceService$Stub;
-Lcom/android/ims/internal/uce/presence/IPresenceService;
-Lcom/android/ims/internal/uce/presence/PresCapInfo$1;
-Lcom/android/ims/internal/uce/presence/PresCmdId$1;
-Lcom/android/ims/internal/uce/presence/PresCmdStatus$1;
-Lcom/android/ims/internal/uce/presence/PresPublishTriggerType$1;
-Lcom/android/ims/internal/uce/presence/PresSipResponse$1;
-Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub$Proxy;
-Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub;
-Lcom/android/ims/internal/uce/uceservice/IUceListener;
-Lcom/android/ims/internal/uce/uceservice/IUceService$Stub;
-Lcom/android/ims/internal/uce/uceservice/IUceService;
-Lcom/android/ims/rcs/uce/ControllerBase;
-Lcom/android/ims/rcs/uce/UceController$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/UceController$$ExternalSyntheticLambda1;
-Lcom/android/ims/rcs/uce/UceController$$ExternalSyntheticLambda2;
-Lcom/android/ims/rcs/uce/UceController$$ExternalSyntheticLambda3;
-Lcom/android/ims/rcs/uce/UceController$1;
-Lcom/android/ims/rcs/uce/UceController$2;
-Lcom/android/ims/rcs/uce/UceController$3;
-Lcom/android/ims/rcs/uce/UceController$CachedCapabilityEvent$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/UceController$CachedCapabilityEvent;
-Lcom/android/ims/rcs/uce/UceController$ControllerFactory;
-Lcom/android/ims/rcs/uce/UceController$RcsConnectedState;
-Lcom/android/ims/rcs/uce/UceController$RequestManagerFactory;
-Lcom/android/ims/rcs/uce/UceController$UceControllerCallback;
-Lcom/android/ims/rcs/uce/UceController;
-Lcom/android/ims/rcs/uce/UceDeviceState$DeviceStateResult;
-Lcom/android/ims/rcs/uce/UceDeviceState$DeviceStateType;
-Lcom/android/ims/rcs/uce/UceDeviceState;
-Lcom/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater$1;
-Lcom/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater$CapabilityExpiredListener;
-Lcom/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater$ContactChangedListener;
-Lcom/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater$EabSettingsListener;
-Lcom/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater$SyncContactRunnable;
-Lcom/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater$retryRunnable;
-Lcom/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater;
-Lcom/android/ims/rcs/uce/eab/EabCapabilityResult$QueryResult;
-Lcom/android/ims/rcs/uce/eab/EabCapabilityResult;
-Lcom/android/ims/rcs/uce/eab/EabContactSyncController$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/eab/EabContactSyncController;
-Lcom/android/ims/rcs/uce/eab/EabController;
-Lcom/android/ims/rcs/uce/eab/EabControllerImpl$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/eab/EabControllerImpl$$ExternalSyntheticLambda1;
-Lcom/android/ims/rcs/uce/eab/EabControllerImpl$$ExternalSyntheticLambda2;
-Lcom/android/ims/rcs/uce/eab/EabControllerImpl$ExpirationTimeFactory;
-Lcom/android/ims/rcs/uce/eab/EabControllerImpl;
-Lcom/android/ims/rcs/uce/eab/EabProvider$ContactColumns;
-Lcom/android/ims/rcs/uce/eab/EabProvider$EabCommonColumns;
-Lcom/android/ims/rcs/uce/eab/EabProvider$EabDatabaseHelper;
-Lcom/android/ims/rcs/uce/eab/EabProvider$OptionsColumns;
-Lcom/android/ims/rcs/uce/eab/EabProvider$PresenceTupleColumns;
-Lcom/android/ims/rcs/uce/eab/EabProvider;
-Lcom/android/ims/rcs/uce/eab/EabUtil;
-Lcom/android/ims/rcs/uce/eab/RcsUceCapabilityBuilderWrapper;
-Lcom/android/ims/rcs/uce/options/OptionsController;
-Lcom/android/ims/rcs/uce/options/OptionsControllerImpl;
-Lcom/android/ims/rcs/uce/presence/pidfparser/ElementBase;
-Lcom/android/ims/rcs/uce/presence/pidfparser/PidfParser$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/presence/pidfparser/PidfParser$$ExternalSyntheticLambda1;
-Lcom/android/ims/rcs/uce/presence/pidfparser/PidfParser$TimestampProxy;
-Lcom/android/ims/rcs/uce/presence/pidfparser/PidfParser;
-Lcom/android/ims/rcs/uce/presence/pidfparser/PidfParserConstant;
-Lcom/android/ims/rcs/uce/presence/pidfparser/PidfParserUtils$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/presence/pidfparser/PidfParserUtils;
-Lcom/android/ims/rcs/uce/presence/pidfparser/capabilities/Audio;
-Lcom/android/ims/rcs/uce/presence/pidfparser/capabilities/CapsConstant;
-Lcom/android/ims/rcs/uce/presence/pidfparser/capabilities/Duplex$DuplexType;
-Lcom/android/ims/rcs/uce/presence/pidfparser/capabilities/Duplex;
-Lcom/android/ims/rcs/uce/presence/pidfparser/capabilities/ServiceCaps;
-Lcom/android/ims/rcs/uce/presence/pidfparser/capabilities/Video;
-Lcom/android/ims/rcs/uce/presence/pidfparser/omapres/Description;
-Lcom/android/ims/rcs/uce/presence/pidfparser/omapres/OmaPresConstant;
-Lcom/android/ims/rcs/uce/presence/pidfparser/omapres/ServiceDescription;
-Lcom/android/ims/rcs/uce/presence/pidfparser/omapres/ServiceId;
-Lcom/android/ims/rcs/uce/presence/pidfparser/omapres/Version;
-Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Basic$BasicValue;
-Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Basic;
-Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Contact;
-Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Note;
-Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/PidfConstant;
-Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Presence;
-Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Status;
-Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Timestamp;
-Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Tuple;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityInfo$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityInfo;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$$ExternalSyntheticLambda1;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$$ExternalSyntheticLambda2;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$1;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$2;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$3;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$4;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$5;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$6;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$7;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$DeviceCapabilityHandler;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$ImsMmTelManagerFactory;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$ImsRcsManagerFactory;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$ProvisioningManagerFactory;
-Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener;
-Lcom/android/ims/rcs/uce/presence/publish/PublishController$PublishControllerCallback;
-Lcom/android/ims/rcs/uce/presence/publish/PublishController$PublishTriggerType;
-Lcom/android/ims/rcs/uce/presence/publish/PublishController;
-Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl$$ExternalSyntheticLambda1;
-Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl$$ExternalSyntheticLambda2;
-Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl$1;
-Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl$2;
-Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl$DeviceCapListenerFactory;
-Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl$PublishHandler;
-Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl$PublishProcessorFactory;
-Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl;
-Lcom/android/ims/rcs/uce/presence/publish/PublishProcessor$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/presence/publish/PublishProcessor;
-Lcom/android/ims/rcs/uce/presence/publish/PublishProcessorState$PendingRequest;
-Lcom/android/ims/rcs/uce/presence/publish/PublishProcessorState$PublishThrottle;
-Lcom/android/ims/rcs/uce/presence/publish/PublishProcessorState;
-Lcom/android/ims/rcs/uce/presence/publish/PublishRequestResponse$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/presence/publish/PublishRequestResponse$$ExternalSyntheticLambda1;
-Lcom/android/ims/rcs/uce/presence/publish/PublishRequestResponse$$ExternalSyntheticLambda2;
-Lcom/android/ims/rcs/uce/presence/publish/PublishRequestResponse$1;
-Lcom/android/ims/rcs/uce/presence/publish/PublishRequestResponse;
-Lcom/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker$$ExternalSyntheticLambda1;
-Lcom/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker$$ExternalSyntheticLambda2;
-Lcom/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker$$ExternalSyntheticLambda3;
-Lcom/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker$$ExternalSyntheticLambda4;
-Lcom/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker;
-Lcom/android/ims/rcs/uce/presence/publish/PublishUtils;
-Lcom/android/ims/rcs/uce/presence/publish/ServiceDescription;
-Lcom/android/ims/rcs/uce/presence/subscribe/SubscribeController;
-Lcom/android/ims/rcs/uce/presence/subscribe/SubscribeControllerImpl;
-Lcom/android/ims/rcs/uce/request/CapabilityRequest$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/request/CapabilityRequest$$ExternalSyntheticLambda1;
-Lcom/android/ims/rcs/uce/request/CapabilityRequest$$ExternalSyntheticLambda2;
-Lcom/android/ims/rcs/uce/request/CapabilityRequest$$ExternalSyntheticLambda3;
-Lcom/android/ims/rcs/uce/request/CapabilityRequest$$ExternalSyntheticLambda4;
-Lcom/android/ims/rcs/uce/request/CapabilityRequest$$ExternalSyntheticLambda5;
-Lcom/android/ims/rcs/uce/request/CapabilityRequest;
-Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda1;
-Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda2;
-Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda3;
-Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda4;
-Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda5;
-Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda6;
-Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda7;
-Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda8;
-Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda9;
-Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse;
-Lcom/android/ims/rcs/uce/request/OptionsRequest$1;
-Lcom/android/ims/rcs/uce/request/OptionsRequest;
-Lcom/android/ims/rcs/uce/request/OptionsRequestCoordinator$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/request/OptionsRequestCoordinator$$ExternalSyntheticLambda1;
-Lcom/android/ims/rcs/uce/request/OptionsRequestCoordinator$$ExternalSyntheticLambda2;
-Lcom/android/ims/rcs/uce/request/OptionsRequestCoordinator$$ExternalSyntheticLambda3;
-Lcom/android/ims/rcs/uce/request/OptionsRequestCoordinator$$ExternalSyntheticLambda4;
-Lcom/android/ims/rcs/uce/request/OptionsRequestCoordinator$Builder;
-Lcom/android/ims/rcs/uce/request/OptionsRequestCoordinator$RequestResultCreator;
-Lcom/android/ims/rcs/uce/request/OptionsRequestCoordinator;
-Lcom/android/ims/rcs/uce/request/RemoteOptionsCoordinator$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/request/RemoteOptionsCoordinator$Builder;
-Lcom/android/ims/rcs/uce/request/RemoteOptionsCoordinator$RequestResultCreator;
-Lcom/android/ims/rcs/uce/request/RemoteOptionsCoordinator;
-Lcom/android/ims/rcs/uce/request/RemoteOptionsRequest$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/request/RemoteOptionsRequest$RemoteOptResponse;
-Lcom/android/ims/rcs/uce/request/RemoteOptionsRequest;
-Lcom/android/ims/rcs/uce/request/SubscribeRequest$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/request/SubscribeRequest$$ExternalSyntheticLambda1;
-Lcom/android/ims/rcs/uce/request/SubscribeRequest$1;
-Lcom/android/ims/rcs/uce/request/SubscribeRequest;
-Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda10;
-Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda1;
-Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda2;
-Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda3;
-Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda4;
-Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda5;
-Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda6;
-Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda7;
-Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda8;
-Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda9;
-Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$Builder;
-Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$RequestResultCreator;
-Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator;
-Lcom/android/ims/rcs/uce/request/SubscriptionTerminatedHelper$TerminatedResult;
-Lcom/android/ims/rcs/uce/request/SubscriptionTerminatedHelper;
-Lcom/android/ims/rcs/uce/request/UceRequest$UceRequestType;
-Lcom/android/ims/rcs/uce/request/UceRequest;
-Lcom/android/ims/rcs/uce/request/UceRequestCoordinator$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/request/UceRequestCoordinator$$ExternalSyntheticLambda1;
-Lcom/android/ims/rcs/uce/request/UceRequestCoordinator$$ExternalSyntheticLambda2;
-Lcom/android/ims/rcs/uce/request/UceRequestCoordinator$$ExternalSyntheticLambda3;
-Lcom/android/ims/rcs/uce/request/UceRequestCoordinator$$ExternalSyntheticLambda4;
-Lcom/android/ims/rcs/uce/request/UceRequestCoordinator$RequestResult;
-Lcom/android/ims/rcs/uce/request/UceRequestCoordinator$UceRequestUpdate;
-Lcom/android/ims/rcs/uce/request/UceRequestCoordinator;
-Lcom/android/ims/rcs/uce/request/UceRequestDispatcher$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/request/UceRequestDispatcher$$ExternalSyntheticLambda1;
-Lcom/android/ims/rcs/uce/request/UceRequestDispatcher$Request;
-Lcom/android/ims/rcs/uce/request/UceRequestDispatcher;
-Lcom/android/ims/rcs/uce/request/UceRequestManager$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/request/UceRequestManager$$ExternalSyntheticLambda1;
-Lcom/android/ims/rcs/uce/request/UceRequestManager$$ExternalSyntheticLambda2;
-Lcom/android/ims/rcs/uce/request/UceRequestManager$1;
-Lcom/android/ims/rcs/uce/request/UceRequestManager$2;
-Lcom/android/ims/rcs/uce/request/UceRequestManager$RequestManagerCallback;
-Lcom/android/ims/rcs/uce/request/UceRequestManager$UceRequestHandler;
-Lcom/android/ims/rcs/uce/request/UceRequestManager$UceUtilsProxy;
-Lcom/android/ims/rcs/uce/request/UceRequestManager;
-Lcom/android/ims/rcs/uce/request/UceRequestRepository$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/request/UceRequestRepository;
-Lcom/android/ims/rcs/uce/util/FeatureTags$$ExternalSyntheticLambda0;
-Lcom/android/ims/rcs/uce/util/FeatureTags;
-Lcom/android/ims/rcs/uce/util/NetworkSipCode;
-Lcom/android/ims/rcs/uce/util/UceUtils;
-Lcom/android/input/flags/Flags;
-Lcom/android/internal/R$attr;
-Lcom/android/internal/R$dimen;
-Lcom/android/internal/R$id;
-Lcom/android/internal/R$string;
-Lcom/android/internal/R$styleable;
-Lcom/android/internal/accessibility/AccessibilityShortcutController$1;
-Lcom/android/internal/accessibility/AccessibilityShortcutController$FrameworkFeatureInfo;
-Lcom/android/internal/accessibility/AccessibilityShortcutController$FrameworkObjectProvider;
-Lcom/android/internal/accessibility/AccessibilityShortcutController$ToggleableFrameworkFeatureInfo;
-Lcom/android/internal/accessibility/AccessibilityShortcutController;
-Lcom/android/internal/accessibility/util/AccessibilityUtils;
-Lcom/android/internal/alsa/AlsaCardsParser$AlsaCardRecord;
-Lcom/android/internal/alsa/AlsaCardsParser;
-Lcom/android/internal/alsa/LineTokenizer;
-Lcom/android/internal/app/AlertActivity;
-Lcom/android/internal/app/AlertController$1;
-Lcom/android/internal/app/AlertController$AlertParams;
-Lcom/android/internal/app/AlertController$ButtonHandler;
-Lcom/android/internal/app/AlertController$RecycleListView;
-Lcom/android/internal/app/AlertController;
-Lcom/android/internal/app/AssistUtils;
-Lcom/android/internal/app/IAppOpsActiveCallback$Stub$Proxy;
-Lcom/android/internal/app/IAppOpsActiveCallback$Stub;
-Lcom/android/internal/app/IAppOpsActiveCallback;
-Lcom/android/internal/app/IAppOpsAsyncNotedCallback$Stub;
-Lcom/android/internal/app/IAppOpsAsyncNotedCallback;
-Lcom/android/internal/app/IAppOpsCallback$Stub$Proxy;
-Lcom/android/internal/app/IAppOpsCallback$Stub;
-Lcom/android/internal/app/IAppOpsCallback;
-Lcom/android/internal/app/IAppOpsNotedCallback$Stub;
-Lcom/android/internal/app/IAppOpsNotedCallback;
-Lcom/android/internal/app/IAppOpsService$Stub$Proxy;
-Lcom/android/internal/app/IAppOpsService$Stub;
-Lcom/android/internal/app/IAppOpsService;
-Lcom/android/internal/app/IAppOpsStartedCallback$Stub$Proxy;
-Lcom/android/internal/app/IAppOpsStartedCallback$Stub;
-Lcom/android/internal/app/IAppOpsStartedCallback;
-Lcom/android/internal/app/IBatteryStats$Stub$Proxy;
-Lcom/android/internal/app/IBatteryStats$Stub;
-Lcom/android/internal/app/IBatteryStats;
-Lcom/android/internal/app/ISoundTriggerService$Stub;
-Lcom/android/internal/app/ISoundTriggerService;
-Lcom/android/internal/app/ISoundTriggerSession$Stub;
-Lcom/android/internal/app/ISoundTriggerSession;
-Lcom/android/internal/app/IVoiceActionCheckCallback$Stub$Proxy;
-Lcom/android/internal/app/IVoiceActionCheckCallback$Stub;
-Lcom/android/internal/app/IVoiceActionCheckCallback;
-Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;
-Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;
-Lcom/android/internal/app/IVoiceInteractionManagerService;
-Lcom/android/internal/app/IVoiceInteractionSessionListener$Stub$Proxy;
-Lcom/android/internal/app/IVoiceInteractionSessionListener$Stub;
-Lcom/android/internal/app/IVoiceInteractionSessionListener;
-Lcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub$Proxy;
-Lcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub;
-Lcom/android/internal/app/IVoiceInteractionSessionShowCallback;
-Lcom/android/internal/app/IVoiceInteractionSoundTriggerSession$Stub;
-Lcom/android/internal/app/IVoiceInteractionSoundTriggerSession;
-Lcom/android/internal/app/IVoiceInteractor$Stub$Proxy;
-Lcom/android/internal/app/IVoiceInteractor$Stub;
-Lcom/android/internal/app/IVoiceInteractor;
-Lcom/android/internal/app/IntentForwarderActivity;
-Lcom/android/internal/app/MessageSamplingConfig$1;
-Lcom/android/internal/app/MessageSamplingConfig;
-Lcom/android/internal/app/MicroAlertController;
-Lcom/android/internal/app/ProcessMap;
-Lcom/android/internal/app/ResolverActivity$ActionTitle;
-Lcom/android/internal/app/ResolverActivity;
-Lcom/android/internal/app/ResolverListAdapter$ResolverListCommunicator;
-Lcom/android/internal/app/ToolbarActionBar;
-Lcom/android/internal/app/WindowDecorActionBar$1;
-Lcom/android/internal/app/WindowDecorActionBar$2;
-Lcom/android/internal/app/WindowDecorActionBar$3;
-Lcom/android/internal/app/WindowDecorActionBar;
-Lcom/android/internal/app/procstats/AssociationState$$ExternalSyntheticLambda0;
-Lcom/android/internal/app/procstats/AssociationState$SourceDumpContainer;
-Lcom/android/internal/app/procstats/AssociationState$SourceKey;
-Lcom/android/internal/app/procstats/AssociationState$SourceState;
-Lcom/android/internal/app/procstats/AssociationState;
-Lcom/android/internal/app/procstats/DumpUtils;
-Lcom/android/internal/app/procstats/DurationsTable;
-Lcom/android/internal/app/procstats/IProcessStats$Stub$Proxy;
-Lcom/android/internal/app/procstats/IProcessStats$Stub;
-Lcom/android/internal/app/procstats/IProcessStats;
-Lcom/android/internal/app/procstats/ProcessState$1;
-Lcom/android/internal/app/procstats/ProcessState$PssAggr;
-Lcom/android/internal/app/procstats/ProcessState;
-Lcom/android/internal/app/procstats/ProcessStats$$ExternalSyntheticLambda0;
-Lcom/android/internal/app/procstats/ProcessStats$$ExternalSyntheticLambda1;
-Lcom/android/internal/app/procstats/ProcessStats$$ExternalSyntheticLambda2;
-Lcom/android/internal/app/procstats/ProcessStats$1;
-Lcom/android/internal/app/procstats/ProcessStats$AssociationDumpContainer;
-Lcom/android/internal/app/procstats/ProcessStats$PackageState;
-Lcom/android/internal/app/procstats/ProcessStats$ProcessDataCollection;
-Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;
-Lcom/android/internal/app/procstats/ProcessStats$TotalMemoryUseCollection;
-Lcom/android/internal/app/procstats/ProcessStats;
-Lcom/android/internal/app/procstats/PssTable;
-Lcom/android/internal/app/procstats/ServiceState;
-Lcom/android/internal/app/procstats/SparseMappingTable$Table;
-Lcom/android/internal/app/procstats/SparseMappingTable;
-Lcom/android/internal/app/procstats/SysMemUsageTable;
-Lcom/android/internal/app/procstats/UidState;
-Lcom/android/internal/appwidget/IAppWidgetHost$Stub$Proxy;
-Lcom/android/internal/appwidget/IAppWidgetHost$Stub;
-Lcom/android/internal/appwidget/IAppWidgetHost;
-Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;
-Lcom/android/internal/appwidget/IAppWidgetService$Stub;
-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/colorextraction/ColorExtractor$GradientColors;
-Lcom/android/internal/colorextraction/ColorExtractor$LoadWallpaperColors;
-Lcom/android/internal/colorextraction/ColorExtractor$OnColorsChangedListener;
-Lcom/android/internal/colorextraction/ColorExtractor;
-Lcom/android/internal/colorextraction/types/ExtractionType;
-Lcom/android/internal/colorextraction/types/Tonal$ConfigParser;
-Lcom/android/internal/colorextraction/types/Tonal$TonalPalette;
-Lcom/android/internal/colorextraction/types/Tonal;
-Lcom/android/internal/compat/AndroidBuildClassifier;
-Lcom/android/internal/compat/ChangeReporter$ChangeReport;
-Lcom/android/internal/compat/ChangeReporter;
-Lcom/android/internal/compat/CompatibilityChangeConfig$1;
-Lcom/android/internal/compat/CompatibilityChangeConfig;
-Lcom/android/internal/compat/CompatibilityChangeInfo$1;
-Lcom/android/internal/compat/CompatibilityChangeInfo;
-Lcom/android/internal/compat/IOverrideValidator$Stub;
-Lcom/android/internal/compat/IOverrideValidator;
-Lcom/android/internal/compat/IPlatformCompat$Stub$Proxy;
-Lcom/android/internal/compat/IPlatformCompat$Stub;
-Lcom/android/internal/compat/IPlatformCompat;
-Lcom/android/internal/compat/IPlatformCompatNative$Stub;
-Lcom/android/internal/compat/IPlatformCompatNative;
-Lcom/android/internal/config/appcloning/AppCloningDeviceConfigHelper$$ExternalSyntheticLambda0;
-Lcom/android/internal/config/appcloning/AppCloningDeviceConfigHelper;
-Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags$DebugResolver;
-Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags$Flag;
-Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags$FlagResolver;
-Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags$NotificationFlags;
-Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags;
-Lcom/android/internal/content/F2fsUtils;
-Lcom/android/internal/content/NativeLibraryHelper$Handle;
-Lcom/android/internal/content/NativeLibraryHelper;
-Lcom/android/internal/content/PackageMonitor;
-Lcom/android/internal/content/ReferrerIntent$1;
-Lcom/android/internal/content/ReferrerIntent;
-Lcom/android/internal/content/om/OverlayConfig$$ExternalSyntheticLambda0;
-Lcom/android/internal/content/om/OverlayConfig$$ExternalSyntheticLambda2;
-Lcom/android/internal/content/om/OverlayConfig$$ExternalSyntheticLambda3;
-Lcom/android/internal/content/om/OverlayConfig$$ExternalSyntheticLambda4;
-Lcom/android/internal/content/om/OverlayConfig$$ExternalSyntheticLambda5;
-Lcom/android/internal/content/om/OverlayConfig$$ExternalSyntheticLambda7;
-Lcom/android/internal/content/om/OverlayConfig$Configuration;
-Lcom/android/internal/content/om/OverlayConfig$IdmapInvocation;
-Lcom/android/internal/content/om/OverlayConfig$PackageProvider;
-Lcom/android/internal/content/om/OverlayConfig;
-Lcom/android/internal/content/om/OverlayConfigParser$OverlayPartition;
-Lcom/android/internal/content/om/OverlayConfigParser$ParsedConfigFile;
-Lcom/android/internal/content/om/OverlayConfigParser$ParsedConfiguration;
-Lcom/android/internal/content/om/OverlayConfigParser$ParsingContext;
-Lcom/android/internal/content/om/OverlayConfigParser;
-Lcom/android/internal/content/om/OverlayManagerImpl;
-Lcom/android/internal/content/om/OverlayScanner$ParsedOverlayInfo;
-Lcom/android/internal/content/om/OverlayScanner;
-Lcom/android/internal/database/SortCursor;
-Lcom/android/internal/display/BrightnessSynchronizer;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$10;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$11;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$12;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$13;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$14;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$1;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$2;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$3;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$4;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$5;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$6;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$7;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$8;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$9;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$MassState;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$ViewProperty;
-Lcom/android/internal/dynamicanimation/animation/DynamicAnimation;
-Lcom/android/internal/dynamicanimation/animation/Force;
-Lcom/android/internal/dynamicanimation/animation/SpringAnimation;
-Lcom/android/internal/dynamicanimation/animation/SpringForce;
-Lcom/android/internal/graphics/ColorUtils$ContrastCalculator;
-Lcom/android/internal/graphics/ColorUtils;
-Lcom/android/internal/graphics/SfVsyncFrameCallbackProvider;
-Lcom/android/internal/graphics/cam/Cam;
-Lcom/android/internal/graphics/cam/CamUtils;
-Lcom/android/internal/graphics/cam/Frame;
-Lcom/android/internal/graphics/cam/HctSolver;
-Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;
-Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable-IA;
-Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable;
-Lcom/android/internal/graphics/drawable/BackgroundBlurDrawable$Aggregator;
-Lcom/android/internal/graphics/drawable/BackgroundBlurDrawable$BlurRegion;
-Lcom/android/internal/graphics/drawable/BackgroundBlurDrawable-IA;
-Lcom/android/internal/graphics/drawable/BackgroundBlurDrawable;
-Lcom/android/internal/hidden_from_bootclasspath/android/service/notification/Flags;
-Lcom/android/internal/infra/AbstractMultiplePendingRequestsRemoteService;
-Lcom/android/internal/infra/AbstractRemoteService$AsyncRequest;
-Lcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;
-Lcom/android/internal/infra/AbstractRemoteService$MyAsyncPendingRequest;
-Lcom/android/internal/infra/AbstractRemoteService$PendingRequest;
-Lcom/android/internal/infra/AbstractRemoteService$RemoteServiceConnection;
-Lcom/android/internal/infra/AbstractRemoteService$VultureCallback;
-Lcom/android/internal/infra/AbstractRemoteService;
-Lcom/android/internal/infra/AbstractSinglePendingRequestRemoteService;
-Lcom/android/internal/infra/AndroidFuture$$ExternalSyntheticLambda1;
-Lcom/android/internal/infra/AndroidFuture$$ExternalSyntheticLambda3;
-Lcom/android/internal/infra/AndroidFuture$1;
-Lcom/android/internal/infra/AndroidFuture$2;
-Lcom/android/internal/infra/AndroidFuture;
-Lcom/android/internal/infra/GlobalWhitelistState;
-Lcom/android/internal/infra/IAndroidFuture$Stub$Proxy;
-Lcom/android/internal/infra/IAndroidFuture$Stub;
-Lcom/android/internal/infra/IAndroidFuture;
-Lcom/android/internal/infra/PerUser;
-Lcom/android/internal/infra/RemoteStream$1;
-Lcom/android/internal/infra/RemoteStream;
-Lcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob;
-Lcom/android/internal/infra/ServiceConnector$Impl;
-Lcom/android/internal/infra/ServiceConnector$Job;
-Lcom/android/internal/infra/ServiceConnector$VoidJob;
-Lcom/android/internal/infra/ServiceConnector;
-Lcom/android/internal/infra/WhitelistHelper;
-Lcom/android/internal/inputmethod/EditableInputConnection;
-Lcom/android/internal/inputmethod/IAccessibilityInputMethodSession$Stub$Proxy;
-Lcom/android/internal/inputmethod/IAccessibilityInputMethodSession$Stub;
-Lcom/android/internal/inputmethod/IAccessibilityInputMethodSession;
-Lcom/android/internal/inputmethod/IImeTracker$Stub$Proxy;
-Lcom/android/internal/inputmethod/IImeTracker$Stub;
-Lcom/android/internal/inputmethod/IImeTracker;
-Lcom/android/internal/inputmethod/IInputContentUriToken;
-Lcom/android/internal/inputmethod/IInputMethod$Stub;
-Lcom/android/internal/inputmethod/IInputMethod;
-Lcom/android/internal/inputmethod/IInputMethodClient$Stub;
-Lcom/android/internal/inputmethod/IInputMethodClient;
-Lcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub$Proxy;
-Lcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub;
-Lcom/android/internal/inputmethod/IInputMethodPrivilegedOperations;
-Lcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;
-Lcom/android/internal/inputmethod/IInputMethodSession$Stub;
-Lcom/android/internal/inputmethod/IInputMethodSession;
-Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection$Stub;
-Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;
-Lcom/android/internal/inputmethod/IRemoteInputConnection$Stub$Proxy;
-Lcom/android/internal/inputmethod/IRemoteInputConnection$Stub;
-Lcom/android/internal/inputmethod/IRemoteInputConnection;
-Lcom/android/internal/inputmethod/ImeTracing;
-Lcom/android/internal/inputmethod/ImeTracingClientImpl;
-Lcom/android/internal/inputmethod/ImeTracingServerImpl;
-Lcom/android/internal/inputmethod/InputBindResult$1;
-Lcom/android/internal/inputmethod/InputBindResult-IA;
-Lcom/android/internal/inputmethod/InputBindResult;
-Lcom/android/internal/inputmethod/InputConnectionCommandHeader$1;
-Lcom/android/internal/inputmethod/InputConnectionCommandHeader;
-Lcom/android/internal/inputmethod/InputMethodDebug;
-Lcom/android/internal/inputmethod/InputMethodPrivilegedOperations$OpsHolder;
-Lcom/android/internal/inputmethod/InputMethodPrivilegedOperations;
-Lcom/android/internal/inputmethod/InputMethodPrivilegedOperationsRegistry;
-Lcom/android/internal/inputmethod/SubtypeLocaleUtils;
-Lcom/android/internal/jank/Cuj;
-Lcom/android/internal/jank/DisplayResolutionTracker$1;
-Lcom/android/internal/jank/DisplayResolutionTracker$DisplayInterface$1;
-Lcom/android/internal/jank/DisplayResolutionTracker$DisplayInterface;
-Lcom/android/internal/jank/DisplayResolutionTracker;
-Lcom/android/internal/jank/EventLogTags;
-Lcom/android/internal/jank/FrameTracker$$ExternalSyntheticLambda0;
-Lcom/android/internal/jank/FrameTracker$$ExternalSyntheticLambda1;
-Lcom/android/internal/jank/FrameTracker$$ExternalSyntheticLambda2;
-Lcom/android/internal/jank/FrameTracker$ChoreographerWrapper;
-Lcom/android/internal/jank/FrameTracker$FrameMetricsWrapper;
-Lcom/android/internal/jank/FrameTracker$FrameTrackerListener;
-Lcom/android/internal/jank/FrameTracker$JankInfo;
-Lcom/android/internal/jank/FrameTracker$SurfaceControlWrapper;
-Lcom/android/internal/jank/FrameTracker$ThreadedRendererWrapper;
-Lcom/android/internal/jank/FrameTracker;
-Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda0;
-Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda10;
-Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda1;
-Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda2;
-Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda3;
-Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda5;
-Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda6;
-Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda7;
-Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda8;
-Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda9;
-Lcom/android/internal/jank/InteractionJankMonitor$Configuration;
-Lcom/android/internal/jank/InteractionJankMonitor$InstanceHolder;
-Lcom/android/internal/jank/InteractionJankMonitor$RunningTracker;
-Lcom/android/internal/jank/InteractionJankMonitor$TimeFunction;
-Lcom/android/internal/jank/InteractionJankMonitor$TrackerResult-IA;
-Lcom/android/internal/jank/InteractionJankMonitor$TrackerResult;
-Lcom/android/internal/jank/InteractionJankMonitor;
-Lcom/android/internal/listeners/ListenerExecutor$$ExternalSyntheticLambda0;
-Lcom/android/internal/listeners/ListenerExecutor$FailureCallback;
-Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;
-Lcom/android/internal/listeners/ListenerExecutor;
-Lcom/android/internal/listeners/ListenerTransport;
-Lcom/android/internal/listeners/ListenerTransportManager;
-Lcom/android/internal/location/altitude/nano/MapParamsProto;
-Lcom/android/internal/location/altitude/nano/S2TileProto;
-Lcom/android/internal/location/nano/GnssLogsProto$GnssLog;
-Lcom/android/internal/location/nano/GnssLogsProto$PowerMetrics;
-Lcom/android/internal/logging/AndroidConfig;
-Lcom/android/internal/logging/AndroidHandler$1;
-Lcom/android/internal/logging/AndroidHandler;
-Lcom/android/internal/logging/EventLogTags;
-Lcom/android/internal/logging/InstanceId$1;
-Lcom/android/internal/logging/InstanceId-IA;
-Lcom/android/internal/logging/InstanceId;
-Lcom/android/internal/logging/InstanceIdSequence;
-Lcom/android/internal/logging/MetricsLogger;
-Lcom/android/internal/logging/UiEventLogger$UiEventEnum;
-Lcom/android/internal/logging/UiEventLogger;
-Lcom/android/internal/logging/UiEventLoggerImpl;
-Lcom/android/internal/net/INetworkWatchlistManager$Stub$Proxy;
-Lcom/android/internal/net/INetworkWatchlistManager$Stub;
-Lcom/android/internal/net/INetworkWatchlistManager;
-Lcom/android/internal/net/LegacyVpnInfo$1;
-Lcom/android/internal/net/LegacyVpnInfo;
-Lcom/android/internal/net/NetworkUtilsInternal;
-Lcom/android/internal/net/VpnConfig$1;
-Lcom/android/internal/net/VpnConfig;
-Lcom/android/internal/net/VpnProfile$1;
-Lcom/android/internal/net/VpnProfile;
-Lcom/android/internal/notification/SystemNotificationChannels;
-Lcom/android/internal/org/bouncycastle/cert/AttributeCertificateHolder;
-Lcom/android/internal/org/bouncycastle/cms/CMSException;
-Lcom/android/internal/org/bouncycastle/jcajce/util/BCJcaJceHelper;
-Lcom/android/internal/org/bouncycastle/jcajce/util/JcaJceHelper;
-Lcom/android/internal/org/bouncycastle/jcajce/util/ProviderJcaJceHelper;
-Lcom/android/internal/org/bouncycastle/operator/OperatorCreationException;
-Lcom/android/internal/org/bouncycastle/operator/OperatorException;
-Lcom/android/internal/org/bouncycastle/util/Selector;
-Lcom/android/internal/os/AndroidPrintStream;
-Lcom/android/internal/os/AppFuseMount$1;
-Lcom/android/internal/os/AppFuseMount;
-Lcom/android/internal/os/AppIdToPackageMap;
-Lcom/android/internal/os/AtomicDirectory;
-Lcom/android/internal/os/BackgroundThread;
-Lcom/android/internal/os/BatteryStatsHistory$HistoryStepDetailsCalculator;
-Lcom/android/internal/os/BatteryStatsHistory$TraceDelegate;
-Lcom/android/internal/os/BatteryStatsHistory$VarintParceler;
-Lcom/android/internal/os/BatteryStatsHistory;
-Lcom/android/internal/os/BinderCallHeavyHitterWatcher$BinderCallHeavyHitterListener;
-Lcom/android/internal/os/BinderCallHeavyHitterWatcher$HeavyHitterContainer;
-Lcom/android/internal/os/BinderCallHeavyHitterWatcher;
-Lcom/android/internal/os/BinderCallsStats$1;
-Lcom/android/internal/os/BinderCallsStats$CallStat;
-Lcom/android/internal/os/BinderCallsStats$CallStatKey;
-Lcom/android/internal/os/BinderCallsStats$ExportedCallStat;
-Lcom/android/internal/os/BinderCallsStats$Injector;
-Lcom/android/internal/os/BinderCallsStats$OverflowBinder;
-Lcom/android/internal/os/BinderCallsStats$SettingsObserver;
-Lcom/android/internal/os/BinderCallsStats$UidEntry;
-Lcom/android/internal/os/BinderCallsStats;
-Lcom/android/internal/os/BinderDeathDispatcher$RecipientsInfo-IA;
-Lcom/android/internal/os/BinderDeathDispatcher$RecipientsInfo;
-Lcom/android/internal/os/BinderDeathDispatcher;
-Lcom/android/internal/os/BinderInternal$BinderProxyLimitListener;
-Lcom/android/internal/os/BinderInternal$BinderProxyLimitListenerDelegate;
-Lcom/android/internal/os/BinderInternal$CallSession;
-Lcom/android/internal/os/BinderInternal$CallStatsObserver;
-Lcom/android/internal/os/BinderInternal$GcWatcher;
-Lcom/android/internal/os/BinderInternal$Observer;
-Lcom/android/internal/os/BinderInternal$WorkSourceProvider;
-Lcom/android/internal/os/BinderInternal;
-Lcom/android/internal/os/BinderLatencyBuckets;
-Lcom/android/internal/os/BinderLatencyObserver$1;
-Lcom/android/internal/os/BinderLatencyObserver$Injector;
-Lcom/android/internal/os/BinderLatencyObserver$LatencyDims;
-Lcom/android/internal/os/BinderLatencyObserver;
-Lcom/android/internal/os/BinderTransactionNameResolver;
-Lcom/android/internal/os/ByteTransferPipe;
-Lcom/android/internal/os/CachedDeviceState$Readonly;
-Lcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;
-Lcom/android/internal/os/CachedDeviceState;
-Lcom/android/internal/os/ClassLoaderFactory;
-Lcom/android/internal/os/Clock;
-Lcom/android/internal/os/FuseAppLoop$1;
-Lcom/android/internal/os/FuseAppLoop;
-Lcom/android/internal/os/FuseUnavailableMountException;
-Lcom/android/internal/os/HandlerCaller$Callback;
-Lcom/android/internal/os/HandlerCaller$MyHandler;
-Lcom/android/internal/os/HandlerCaller;
-Lcom/android/internal/os/IDropBoxManagerService$Stub$Proxy;
-Lcom/android/internal/os/IDropBoxManagerService$Stub;
-Lcom/android/internal/os/IDropBoxManagerService;
-Lcom/android/internal/os/IResultReceiver$Stub$Proxy;
-Lcom/android/internal/os/IResultReceiver$Stub;
-Lcom/android/internal/os/IResultReceiver;
-Lcom/android/internal/os/IShellCallback$Stub$Proxy;
-Lcom/android/internal/os/IShellCallback$Stub;
-Lcom/android/internal/os/IShellCallback;
-Lcom/android/internal/os/KernelAllocationStats$ProcessDmabuf;
-Lcom/android/internal/os/KernelAllocationStats$ProcessGpuMem;
-Lcom/android/internal/os/KernelAllocationStats;
-Lcom/android/internal/os/KernelCpuBpfTracking;
-Lcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;
-Lcom/android/internal/os/KernelCpuProcStringReader;
-Lcom/android/internal/os/KernelCpuSpeedReader;
-Lcom/android/internal/os/KernelCpuThreadReader$FrequencyBucketCreator;
-Lcom/android/internal/os/KernelCpuThreadReader$Injector;
-Lcom/android/internal/os/KernelCpuThreadReader$ProcessCpuUsage;
-Lcom/android/internal/os/KernelCpuThreadReader$ThreadCpuUsage;
-Lcom/android/internal/os/KernelCpuThreadReader;
-Lcom/android/internal/os/KernelCpuThreadReaderDiff$ThreadKey;
-Lcom/android/internal/os/KernelCpuThreadReaderDiff;
-Lcom/android/internal/os/KernelCpuThreadReaderSettingsObserver$UidPredicate;
-Lcom/android/internal/os/KernelCpuThreadReaderSettingsObserver;
-Lcom/android/internal/os/KernelCpuTotalBpfMapReader;
-Lcom/android/internal/os/KernelCpuUidBpfMapReader$BpfMapIterator;
-Lcom/android/internal/os/KernelCpuUidBpfMapReader$KernelCpuUidActiveTimeBpfMapReader;
-Lcom/android/internal/os/KernelCpuUidBpfMapReader$KernelCpuUidClusterTimeBpfMapReader;
-Lcom/android/internal/os/KernelCpuUidBpfMapReader$KernelCpuUidFreqTimeBpfMapReader;
-Lcom/android/internal/os/KernelCpuUidBpfMapReader;
-Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;
-Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidActiveTimeReader;
-Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidClusterTimeReader;
-Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;
-Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidUserSysTimeReader;
-Lcom/android/internal/os/KernelCpuUidTimeReader;
-Lcom/android/internal/os/KernelMemoryBandwidthStats;
-Lcom/android/internal/os/KernelSingleProcessCpuThreadReader$CpuTimeInStateReader;
-Lcom/android/internal/os/KernelSingleProcessCpuThreadReader$ProcessCpuUsage;
-Lcom/android/internal/os/KernelSingleProcessCpuThreadReader;
-Lcom/android/internal/os/KernelSingleUidTimeReader$Injector;
-Lcom/android/internal/os/KernelSingleUidTimeReader;
-Lcom/android/internal/os/LoggingPrintStream$1;
-Lcom/android/internal/os/LoggingPrintStream;
-Lcom/android/internal/os/LongArrayMultiStateCounter$1;
-Lcom/android/internal/os/LongArrayMultiStateCounter$LongArrayContainer;
-Lcom/android/internal/os/LongArrayMultiStateCounter;
-Lcom/android/internal/os/LongMultiStateCounter$1;
-Lcom/android/internal/os/LongMultiStateCounter;
-Lcom/android/internal/os/LooperStats$DispatchSession-IA;
-Lcom/android/internal/os/LooperStats$DispatchSession;
-Lcom/android/internal/os/LooperStats$Entry;
-Lcom/android/internal/os/LooperStats$ExportedEntry;
-Lcom/android/internal/os/LooperStats;
-Lcom/android/internal/os/PowerProfile$CpuClusterKey;
-Lcom/android/internal/os/PowerProfile;
-Lcom/android/internal/os/ProcStatsUtil;
-Lcom/android/internal/os/ProcTimeInStateReader;
-Lcom/android/internal/os/ProcessCpuTracker$1;
-Lcom/android/internal/os/ProcessCpuTracker$FilterStats;
-Lcom/android/internal/os/ProcessCpuTracker$Stats;
-Lcom/android/internal/os/ProcessCpuTracker;
-Lcom/android/internal/os/RailStats;
-Lcom/android/internal/os/RoSystemProperties;
-Lcom/android/internal/os/RpmStats$PowerStateElement;
-Lcom/android/internal/os/RpmStats$PowerStatePlatformSleepState;
-Lcom/android/internal/os/RpmStats$PowerStateSubsystem;
-Lcom/android/internal/os/RpmStats;
-Lcom/android/internal/os/RuntimeInit$$ExternalSyntheticLambda0;
-Lcom/android/internal/os/RuntimeInit$$ExternalSyntheticLambda1;
-Lcom/android/internal/os/RuntimeInit$ApplicationWtfHandler;
-Lcom/android/internal/os/RuntimeInit$Arguments;
-Lcom/android/internal/os/RuntimeInit$KillApplicationHandler;
-Lcom/android/internal/os/RuntimeInit$LoggingHandler-IA;
-Lcom/android/internal/os/RuntimeInit$LoggingHandler;
-Lcom/android/internal/os/RuntimeInit$MethodAndArgsCaller;
-Lcom/android/internal/os/RuntimeInit;
-Lcom/android/internal/os/SafeZipPathValidatorCallback;
-Lcom/android/internal/os/SomeArgs;
-Lcom/android/internal/os/StatsdHiddenApiUsageLogger;
-Lcom/android/internal/os/StoragedUidIoStatsReader$Callback;
-Lcom/android/internal/os/StoragedUidIoStatsReader;
-Lcom/android/internal/os/TransferPipe;
-Lcom/android/internal/os/WrapperInit;
-Lcom/android/internal/os/Zygote;
-Lcom/android/internal/os/ZygoteArguments;
-Lcom/android/internal/os/ZygoteCommandBuffer;
-Lcom/android/internal/os/ZygoteConfig;
-Lcom/android/internal/os/ZygoteConnection$$ExternalSyntheticLambda0;
-Lcom/android/internal/os/ZygoteConnection$$ExternalSyntheticLambda1;
-Lcom/android/internal/os/ZygoteConnection;
-Lcom/android/internal/os/ZygoteInit;
-Lcom/android/internal/os/ZygoteSecurityException;
-Lcom/android/internal/os/ZygoteServer$$ExternalSyntheticLambda0;
-Lcom/android/internal/os/ZygoteServer$UsapPoolRefillAction;
-Lcom/android/internal/os/ZygoteServer;
-Lcom/android/internal/os/logging/MetricsLoggerWrapper;
-Lcom/android/internal/pm/parsing/PackageParser2$Callback;
-Lcom/android/internal/pm/parsing/PackageParserException;
-Lcom/android/internal/pm/pkg/component/flags/Flags;
-Lcom/android/internal/pm/pkg/parsing/ParsingPackageUtils$Callback;
-Lcom/android/internal/policy/AttributeCache;
-Lcom/android/internal/policy/BackdropFrameRenderer;
-Lcom/android/internal/policy/DecorContext;
-Lcom/android/internal/policy/DecorView$$ExternalSyntheticLambda0;
-Lcom/android/internal/policy/DecorView$$ExternalSyntheticLambda1;
-Lcom/android/internal/policy/DecorView$1;
-Lcom/android/internal/policy/DecorView$2;
-Lcom/android/internal/policy/DecorView$3;
-Lcom/android/internal/policy/DecorView$6;
-Lcom/android/internal/policy/DecorView$ActionModeCallback2Wrapper$1;
-Lcom/android/internal/policy/DecorView$ActionModeCallback2Wrapper;
-Lcom/android/internal/policy/DecorView$ColorViewAttributes;
-Lcom/android/internal/policy/DecorView$ColorViewState;
-Lcom/android/internal/policy/DecorView;
-Lcom/android/internal/policy/GestureNavigationSettingsObserver$$ExternalSyntheticLambda0;
-Lcom/android/internal/policy/GestureNavigationSettingsObserver$1;
-Lcom/android/internal/policy/GestureNavigationSettingsObserver;
-Lcom/android/internal/policy/IKeyguardDismissCallback$Stub$Proxy;
-Lcom/android/internal/policy/IKeyguardDismissCallback$Stub;
-Lcom/android/internal/policy/IKeyguardDismissCallback;
-Lcom/android/internal/policy/IKeyguardDrawnCallback$Stub$Proxy;
-Lcom/android/internal/policy/IKeyguardDrawnCallback$Stub;
-Lcom/android/internal/policy/IKeyguardDrawnCallback;
-Lcom/android/internal/policy/IKeyguardExitCallback$Stub$Proxy;
-Lcom/android/internal/policy/IKeyguardExitCallback$Stub;
-Lcom/android/internal/policy/IKeyguardExitCallback;
-Lcom/android/internal/policy/IKeyguardLockedStateListener$Stub;
-Lcom/android/internal/policy/IKeyguardLockedStateListener;
-Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;
-Lcom/android/internal/policy/IKeyguardService$Stub;
-Lcom/android/internal/policy/IKeyguardService;
-Lcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;
-Lcom/android/internal/policy/IKeyguardStateCallback$Stub;
-Lcom/android/internal/policy/IKeyguardStateCallback;
-Lcom/android/internal/policy/IShortcutService$Stub$Proxy;
-Lcom/android/internal/policy/IShortcutService$Stub;
-Lcom/android/internal/policy/IShortcutService;
-Lcom/android/internal/policy/KeyInterceptionInfo;
-Lcom/android/internal/policy/LogDecelerateInterpolator;
-Lcom/android/internal/policy/PhoneFallbackEventHandler;
-Lcom/android/internal/policy/PhoneLayoutInflater;
-Lcom/android/internal/policy/PhoneWindow$$ExternalSyntheticLambda0;
-Lcom/android/internal/policy/PhoneWindow$$ExternalSyntheticLambda1;
-Lcom/android/internal/policy/PhoneWindow$1;
-Lcom/android/internal/policy/PhoneWindow$ActionMenuPresenterCallback;
-Lcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState$1;
-Lcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState-IA;
-Lcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState;
-Lcom/android/internal/policy/PhoneWindow$PanelFeatureState;
-Lcom/android/internal/policy/PhoneWindow$PhoneWindowMenuCallback;
-Lcom/android/internal/policy/PhoneWindow$RotationWatcher$1;
-Lcom/android/internal/policy/PhoneWindow$RotationWatcher;
-Lcom/android/internal/policy/PhoneWindow;
-Lcom/android/internal/policy/ScreenDecorationsUtils;
-Lcom/android/internal/policy/SystemBarUtils;
-Lcom/android/internal/policy/TransitionAnimation$$ExternalSyntheticLambda0;
-Lcom/android/internal/policy/TransitionAnimation$$ExternalSyntheticLambda1;
-Lcom/android/internal/policy/TransitionAnimation;
-Lcom/android/internal/policy/WearGestureInterceptionDetector;
-Lcom/android/internal/power/ModemPowerProfile;
-Lcom/android/internal/protolog/ProtoLogGroup;
-Lcom/android/internal/protolog/ProtoLogImpl;
-Lcom/android/internal/protolog/ProtoLogViewerConfigReader;
-Lcom/android/internal/protolog/common/BitmaskConversionException;
-Lcom/android/internal/protolog/common/IProtoLogGroup;
-Lcom/android/internal/protolog/common/LogDataType;
-Lcom/android/internal/security/VerityUtils;
-Lcom/android/internal/statusbar/IAddTileResultCallback;
-Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;
-Lcom/android/internal/statusbar/IStatusBar$Stub;
-Lcom/android/internal/statusbar/IStatusBar;
-Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;
-Lcom/android/internal/statusbar/IStatusBarService$Stub;
-Lcom/android/internal/statusbar/IStatusBarService;
-Lcom/android/internal/statusbar/IUndoMediaTransferCallback;
-Lcom/android/internal/statusbar/LetterboxDetails$1;
-Lcom/android/internal/statusbar/LetterboxDetails;
-Lcom/android/internal/statusbar/NotificationVisibility$1;
-Lcom/android/internal/statusbar/NotificationVisibility$NotificationLocation;
-Lcom/android/internal/statusbar/NotificationVisibility;
-Lcom/android/internal/statusbar/RegisterStatusBarResult$1;
-Lcom/android/internal/statusbar/RegisterStatusBarResult;
-Lcom/android/internal/statusbar/StatusBarIcon$1;
-Lcom/android/internal/statusbar/StatusBarIcon;
-Lcom/android/internal/telecom/ClientTransactionalServiceRepository;
-Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;
-Lcom/android/internal/telecom/IConnectionService$Stub;
-Lcom/android/internal/telecom/IConnectionService;
-Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;
-Lcom/android/internal/telecom/IConnectionServiceAdapter;
-Lcom/android/internal/telecom/IDeviceIdleControllerAdapter$Stub;
-Lcom/android/internal/telecom/IDeviceIdleControllerAdapter;
-Lcom/android/internal/telecom/IInCallAdapter$Stub;
-Lcom/android/internal/telecom/IInCallAdapter;
-Lcom/android/internal/telecom/IInCallService$Stub$Proxy;
-Lcom/android/internal/telecom/IInCallService$Stub;
-Lcom/android/internal/telecom/IInCallService;
-Lcom/android/internal/telecom/IInternalServiceRetriever$Stub;
-Lcom/android/internal/telecom/IInternalServiceRetriever;
-Lcom/android/internal/telecom/ITelecomLoader$Stub$Proxy;
-Lcom/android/internal/telecom/ITelecomLoader$Stub;
-Lcom/android/internal/telecom/ITelecomLoader;
-Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;
-Lcom/android/internal/telecom/ITelecomService$Stub;
-Lcom/android/internal/telecom/ITelecomService;
-Lcom/android/internal/telecom/IVideoCallback;
-Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;
-Lcom/android/internal/telecom/IVideoProvider$Stub;
-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/ATParseEx;
-Lcom/android/internal/telephony/ATResponseParser;
-Lcom/android/internal/telephony/AndroidUtilIndentingPrintWriter;
-Lcom/android/internal/telephony/AppSmsManager$AppRequestInfo;
-Lcom/android/internal/telephony/AppSmsManager;
-Lcom/android/internal/telephony/AsyncChannel$1ConnectAsync;
-Lcom/android/internal/telephony/AsyncChannel$AsyncChannelConnection;
-Lcom/android/internal/telephony/AsyncChannel$DeathMonitor;
-Lcom/android/internal/telephony/AsyncChannel$SyncMessenger$SyncHandler;
-Lcom/android/internal/telephony/AsyncChannel$SyncMessenger;
-Lcom/android/internal/telephony/AsyncChannel;
-Lcom/android/internal/telephony/AsyncEmergencyContactNotifier;
-Lcom/android/internal/telephony/AsyncService$AsyncServiceInfo;
-Lcom/android/internal/telephony/AsyncService;
-Lcom/android/internal/telephony/BaseCommands;
-Lcom/android/internal/telephony/BiMap;
-Lcom/android/internal/telephony/BitwiseInputStream$AccessException;
-Lcom/android/internal/telephony/BitwiseInputStream;
-Lcom/android/internal/telephony/BlockChecker;
-Lcom/android/internal/telephony/BtSmsInterfaceManager$MapMessageSender;
-Lcom/android/internal/telephony/BtSmsInterfaceManager;
-Lcom/android/internal/telephony/Call$1;
-Lcom/android/internal/telephony/Call$SrvccState;
-Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call;
-Lcom/android/internal/telephony/CallFailCause;
-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$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/CarrierAppUtils$AssociatedAppInfo;
-Lcom/android/internal/telephony/CarrierAppUtils;
-Lcom/android/internal/telephony/CarrierInfoManager;
-Lcom/android/internal/telephony/CarrierKeyDownloadManager$1;
-Lcom/android/internal/telephony/CarrierKeyDownloadManager$2;
-Lcom/android/internal/telephony/CarrierKeyDownloadManager;
-Lcom/android/internal/telephony/CarrierPrivilegesTracker$1;
-Lcom/android/internal/telephony/CarrierPrivilegesTracker;
-Lcom/android/internal/telephony/CarrierResolver$1;
-Lcom/android/internal/telephony/CarrierResolver$2;
-Lcom/android/internal/telephony/CarrierResolver$3;
-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$$ExternalSyntheticLambda0;
-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$AllowedNetworkTypesListener;
-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$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/CarrierServicesSmsFilter$CallbackTimeoutHandler;
-Lcom/android/internal/telephony/CarrierServicesSmsFilter$CarrierServicesSmsFilterCallbackInterface;
-Lcom/android/internal/telephony/CarrierServicesSmsFilter$CarrierSmsFilter$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/CarrierServicesSmsFilter$CarrierSmsFilter$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/CarrierServicesSmsFilter$CarrierSmsFilter$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/CarrierServicesSmsFilter$CarrierSmsFilter;
-Lcom/android/internal/telephony/CarrierServicesSmsFilter$CarrierSmsFilterCallback;
-Lcom/android/internal/telephony/CarrierServicesSmsFilter$FilterAggregator;
-Lcom/android/internal/telephony/CarrierServicesSmsFilter;
-Lcom/android/internal/telephony/CarrierSignalAgent$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/CarrierSignalAgent$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/CarrierSignalAgent$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/CarrierSignalAgent$1;
-Lcom/android/internal/telephony/CarrierSignalAgent;
-Lcom/android/internal/telephony/CarrierSmsUtils;
-Lcom/android/internal/telephony/CellBroadcastServiceManager$1;
-Lcom/android/internal/telephony/CellBroadcastServiceManager$CellBroadcastServiceConnection;
-Lcom/android/internal/telephony/CellBroadcastServiceManager;
-Lcom/android/internal/telephony/CellBroadcastUtils;
-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/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$Capability;
-Lcom/android/internal/telephony/Connection$Listener;
-Lcom/android/internal/telephony/Connection$ListenerBase;
-Lcom/android/internal/telephony/Connection$PostDialListener;
-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$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/DeviceStateMonitor$1;
-Lcom/android/internal/telephony/DeviceStateMonitor$2;
-Lcom/android/internal/telephony/DeviceStateMonitor$3;
-Lcom/android/internal/telephony/DeviceStateMonitor;
-Lcom/android/internal/telephony/DisplayInfoController;
-Lcom/android/internal/telephony/DriverCall$State;
-Lcom/android/internal/telephony/DriverCall;
-Lcom/android/internal/telephony/EncodeException;
-Lcom/android/internal/telephony/EventLogTags;
-Lcom/android/internal/telephony/ExponentialBackoff$1;
-Lcom/android/internal/telephony/ExponentialBackoff$HandlerAdapter;
-Lcom/android/internal/telephony/ExponentialBackoff;
-Lcom/android/internal/telephony/FastXmlSerializer;
-Lcom/android/internal/telephony/GbaManager$1;
-Lcom/android/internal/telephony/GbaManager$GbaDeathRecipient;
-Lcom/android/internal/telephony/GbaManager$GbaManagerHandler;
-Lcom/android/internal/telephony/GbaManager$GbaServiceConnection;
-Lcom/android/internal/telephony/GbaManager;
-Lcom/android/internal/telephony/GlobalSettingsHelper;
-Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;
-Lcom/android/internal/telephony/GsmAlphabet;
-Lcom/android/internal/telephony/GsmCdmaCall;
-Lcom/android/internal/telephony/GsmCdmaCallTracker$$ExternalSyntheticLambda0;
-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$1;
-Lcom/android/internal/telephony/GsmCdmaConnection$MyHandler;
-Lcom/android/internal/telephony/GsmCdmaConnection;
-Lcom/android/internal/telephony/GsmCdmaPhone$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/GsmCdmaPhone$$ExternalSyntheticLambda1;
-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$ImsManagerFactory;
-Lcom/android/internal/telephony/GsmCdmaPhone;
-Lcom/android/internal/telephony/HalVersion;
-Lcom/android/internal/telephony/HardwareConfig;
-Lcom/android/internal/telephony/HbpcdLookup$MccIdd;
-Lcom/android/internal/telephony/HbpcdLookup$MccLookup;
-Lcom/android/internal/telephony/HbpcdUtils;
-Lcom/android/internal/telephony/HexDump;
-Lcom/android/internal/telephony/IBooleanConsumer$Stub$Proxy;
-Lcom/android/internal/telephony/IBooleanConsumer$Stub;
-Lcom/android/internal/telephony/IBooleanConsumer;
-Lcom/android/internal/telephony/ICallForwardingInfoCallback$Stub;
-Lcom/android/internal/telephony/ICallForwardingInfoCallback;
-Lcom/android/internal/telephony/ICarrierConfigChangeListener$Stub;
-Lcom/android/internal/telephony/ICarrierConfigChangeListener;
-Lcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;
-Lcom/android/internal/telephony/ICarrierConfigLoader$Stub;
-Lcom/android/internal/telephony/ICarrierConfigLoader;
-Lcom/android/internal/telephony/ICarrierPrivilegesCallback$Stub;
-Lcom/android/internal/telephony/ICarrierPrivilegesCallback;
-Lcom/android/internal/telephony/IIccPhoneBook$Default;
-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;
-Lcom/android/internal/telephony/IMms$Stub$Proxy;
-Lcom/android/internal/telephony/IMms$Stub;
-Lcom/android/internal/telephony/IMms;
-Lcom/android/internal/telephony/INumberVerificationCallback$Stub$Proxy;
-Lcom/android/internal/telephony/INumberVerificationCallback$Stub;
-Lcom/android/internal/telephony/INumberVerificationCallback;
-Lcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub$Proxy;
-Lcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;
-Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;
-Lcom/android/internal/telephony/IOns$Stub$Proxy;
-Lcom/android/internal/telephony/IOns$Stub;
-Lcom/android/internal/telephony/IOns;
-Lcom/android/internal/telephony/IPhoneStateListener$Stub;
-Lcom/android/internal/telephony/IPhoneStateListener;
-Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;
-Lcom/android/internal/telephony/IPhoneSubInfo$Stub;
-Lcom/android/internal/telephony/IPhoneSubInfo;
-Lcom/android/internal/telephony/ISetOpportunisticDataCallback$Stub$Proxy;
-Lcom/android/internal/telephony/ISetOpportunisticDataCallback$Stub;
-Lcom/android/internal/telephony/ISetOpportunisticDataCallback;
-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;
-Lcom/android/internal/telephony/ITelephony$Stub$Proxy;
-Lcom/android/internal/telephony/ITelephony$Stub;
-Lcom/android/internal/telephony/ITelephony;
-Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;
-Lcom/android/internal/telephony/ITelephonyRegistry$Stub;
-Lcom/android/internal/telephony/ITelephonyRegistry;
-Lcom/android/internal/telephony/IUpdateAvailableNetworksCallback$Stub;
-Lcom/android/internal/telephony/IUpdateAvailableNetworksCallback;
-Lcom/android/internal/telephony/IWapPushManager$Stub;
-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$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/IccSmsInterfaceManager$1;
-Lcom/android/internal/telephony/IccSmsInterfaceManager$CdmaBroadcastRangeManager;
-Lcom/android/internal/telephony/IccSmsInterfaceManager$CellBroadcastRangeManager;
-Lcom/android/internal/telephony/IccSmsInterfaceManager$Request;
-Lcom/android/internal/telephony/IccSmsInterfaceManager;
-Lcom/android/internal/telephony/ImsSmsDispatcher$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/ImsSmsDispatcher$1;
-Lcom/android/internal/telephony/ImsSmsDispatcher$2;
-Lcom/android/internal/telephony/ImsSmsDispatcher$3;
-Lcom/android/internal/telephony/ImsSmsDispatcher$4$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/ImsSmsDispatcher$4;
-Lcom/android/internal/telephony/ImsSmsDispatcher$5;
-Lcom/android/internal/telephony/ImsSmsDispatcher$FeatureConnectorFactory;
-Lcom/android/internal/telephony/ImsSmsDispatcher;
-Lcom/android/internal/telephony/InboundSmsHandler$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/InboundSmsHandler$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/InboundSmsHandler$$ExternalSyntheticLambda2;
-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$SmsFilter;
-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/IndentingPrintWriter;
-Lcom/android/internal/telephony/IntRangeManager$$ExternalSyntheticLambda0;
-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/LocalLog$ReadOnlyLocalLog;
-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/MissedIncomingCallSmsFilter;
-Lcom/android/internal/telephony/MmiCode$State;
-Lcom/android/internal/telephony/MmiCode;
-Lcom/android/internal/telephony/MultiSimSettingController$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/MultiSimSettingController$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/MultiSimSettingController$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/MultiSimSettingController$$ExternalSyntheticLambda3;
-Lcom/android/internal/telephony/MultiSimSettingController$$ExternalSyntheticLambda4;
-Lcom/android/internal/telephony/MultiSimSettingController$SimCombinationWarningParams;
-Lcom/android/internal/telephony/MultiSimSettingController$UpdateDefaultAction;
-Lcom/android/internal/telephony/MultiSimSettingController;
-Lcom/android/internal/telephony/NetworkFactory;
-Lcom/android/internal/telephony/NetworkFactoryImpl$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/NetworkFactoryImpl$1;
-Lcom/android/internal/telephony/NetworkFactoryImpl$2;
-Lcom/android/internal/telephony/NetworkFactoryImpl$NetworkRequestInfo;
-Lcom/android/internal/telephony/NetworkFactoryImpl;
-Lcom/android/internal/telephony/NetworkFactoryLegacyImpl$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/NetworkFactoryLegacyImpl$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/NetworkFactoryLegacyImpl$1;
-Lcom/android/internal/telephony/NetworkFactoryLegacyImpl$NetworkRequestInfo;
-Lcom/android/internal/telephony/NetworkFactoryLegacyImpl;
-Lcom/android/internal/telephony/NetworkFactoryShim;
-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$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/NetworkScanRequestTracker$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/NetworkScanRequestTracker$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/NetworkScanRequestTracker$$ExternalSyntheticLambda3;
-Lcom/android/internal/telephony/NetworkScanRequestTracker$1;
-Lcom/android/internal/telephony/NetworkScanRequestTracker$2;
-Lcom/android/internal/telephony/NetworkScanRequestTracker$NetworkScanRequestInfo;
-Lcom/android/internal/telephony/NetworkScanRequestTracker$NetworkScanRequestScheduler;
-Lcom/android/internal/telephony/NetworkScanRequestTracker;
-Lcom/android/internal/telephony/NetworkScanResult$1;
-Lcom/android/internal/telephony/NetworkScanResult;
-Lcom/android/internal/telephony/NetworkTypeController$1;
-Lcom/android/internal/telephony/NetworkTypeController$DefaultState;
-Lcom/android/internal/telephony/NetworkTypeController$IdleState;
-Lcom/android/internal/telephony/NetworkTypeController$LegacyState;
-Lcom/android/internal/telephony/NetworkTypeController$LteConnectedState;
-Lcom/android/internal/telephony/NetworkTypeController$NrConnectedState;
-Lcom/android/internal/telephony/NetworkTypeController$OverrideTimerRule;
-Lcom/android/internal/telephony/NetworkTypeController;
-Lcom/android/internal/telephony/NitzData;
-Lcom/android/internal/telephony/NitzStateMachine$DeviceState;
-Lcom/android/internal/telephony/NitzStateMachine$DeviceStateImpl;
-Lcom/android/internal/telephony/NitzStateMachine;
-Lcom/android/internal/telephony/OperatorInfo$1;
-Lcom/android/internal/telephony/OperatorInfo$State;
-Lcom/android/internal/telephony/OperatorInfo;
-Lcom/android/internal/telephony/PackageBasedTokenUtil;
-Lcom/android/internal/telephony/PackageChangeReceiver;
-Lcom/android/internal/telephony/Phone$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/Phone$NetworkSelectMessage;
-Lcom/android/internal/telephony/Phone$SilentRedialParam;
-Lcom/android/internal/telephony/Phone;
-Lcom/android/internal/telephony/PhoneConfigurationManager$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/PhoneConfigurationManager$1;
-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/PhoneSubInfoController$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda10;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda11;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda12;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda13;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda14;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda15;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda16;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda17;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda18;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda19;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda20;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda21;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda22;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda23;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda24;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda25;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda26;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda27;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda3;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda4;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda5;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda6;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda7;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda8;
-Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda9;
-Lcom/android/internal/telephony/PhoneSubInfoController$CallPhoneMethodHelper;
-Lcom/android/internal/telephony/PhoneSubInfoController$PermissionCheckHelper;
-Lcom/android/internal/telephony/PhoneSubInfoController;
-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$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/RILConstants$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/RILConstants;
-Lcom/android/internal/telephony/RILRequest$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/RILRequest;
-Lcom/android/internal/telephony/RadioBugDetector;
-Lcom/android/internal/telephony/RadioCapability;
-Lcom/android/internal/telephony/RadioConfig$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/RadioConfig;
-Lcom/android/internal/telephony/RadioIndication$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/RadioIndication$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/RadioIndication;
-Lcom/android/internal/telephony/RadioInterfaceCapabilityController;
-Lcom/android/internal/telephony/RadioNVItems;
-Lcom/android/internal/telephony/RadioResponse$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/RadioResponse$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/RadioResponse$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/RadioResponse;
-Lcom/android/internal/telephony/RatRatcheter;
-Lcom/android/internal/telephony/Registrant;
-Lcom/android/internal/telephony/RegistrantList;
-Lcom/android/internal/telephony/RegistrationFailedEvent;
-Lcom/android/internal/telephony/RestrictedState;
-Lcom/android/internal/telephony/RilWakelockInfo;
-Lcom/android/internal/telephony/SMSDispatcher$1;
-Lcom/android/internal/telephony/SMSDispatcher$ConfirmDialogListener;
-Lcom/android/internal/telephony/SMSDispatcher$DataSmsSender$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/SMSDispatcher$DataSmsSender;
-Lcom/android/internal/telephony/SMSDispatcher$MultipartSmsSender$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/SMSDispatcher$MultipartSmsSender;
-Lcom/android/internal/telephony/SMSDispatcher$SettingsObserver;
-Lcom/android/internal/telephony/SMSDispatcher$SmsSender$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/SMSDispatcher$SmsSender$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/SMSDispatcher$SmsSender;
-Lcom/android/internal/telephony/SMSDispatcher$SmsSenderCallback;
-Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;
-Lcom/android/internal/telephony/SMSDispatcher$TextSmsSender$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/SMSDispatcher$TextSmsSender;
-Lcom/android/internal/telephony/SMSDispatcher;
-Lcom/android/internal/telephony/ServiceStateTracker$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/ServiceStateTracker$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/ServiceStateTracker$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/ServiceStateTracker$$ExternalSyntheticLambda3;
-Lcom/android/internal/telephony/ServiceStateTracker$$ExternalSyntheticLambda4;
-Lcom/android/internal/telephony/ServiceStateTracker$$ExternalSyntheticLambda5;
-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/SlidingWindowEventCounter;
-Lcom/android/internal/telephony/Sms7BitEncodingTranslator;
-Lcom/android/internal/telephony/SmsAddress;
-Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;
-Lcom/android/internal/telephony/SmsApplication$SmsPackageMonitor;
-Lcom/android/internal/telephony/SmsApplication$SmsRoleListener;
-Lcom/android/internal/telephony/SmsApplication;
-Lcom/android/internal/telephony/SmsBroadcastUndelivered$1;
-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$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/SmsDispatchersController$1;
-Lcom/android/internal/telephony/SmsDispatchersController$DomainSelectionResolverProxy;
-Lcom/android/internal/telephony/SmsDispatchersController$SmsInjectionCallback;
-Lcom/android/internal/telephony/SmsDispatchersController;
-Lcom/android/internal/telephony/SmsHeader$ConcatRef;
-Lcom/android/internal/telephony/SmsHeader$MiscElt;
-Lcom/android/internal/telephony/SmsHeader$PortAddrs;
-Lcom/android/internal/telephony/SmsHeader$SpecialSmsMsg;
-Lcom/android/internal/telephony/SmsHeader;
-Lcom/android/internal/telephony/SmsMessageBase$SubmitPduBase;
-Lcom/android/internal/telephony/SmsMessageBase;
-Lcom/android/internal/telephony/SmsNumberUtils$NumberEntry;
-Lcom/android/internal/telephony/SmsNumberUtils;
-Lcom/android/internal/telephony/SmsPermissions;
-Lcom/android/internal/telephony/SmsRawData$1;
-Lcom/android/internal/telephony/SmsRawData;
-Lcom/android/internal/telephony/SmsResponse;
-Lcom/android/internal/telephony/SmsStorageMonitor$1;
-Lcom/android/internal/telephony/SmsStorageMonitor;
-Lcom/android/internal/telephony/SmsUsageMonitor$1;
-Lcom/android/internal/telephony/SmsUsageMonitor$SettingsObserver;
-Lcom/android/internal/telephony/SmsUsageMonitor$SettingsObserverHandler;
-Lcom/android/internal/telephony/SmsUsageMonitor$ShortCodePatternMatcher;
-Lcom/android/internal/telephony/SmsUsageMonitor;
-Lcom/android/internal/telephony/SomeArgs;
-Lcom/android/internal/telephony/State;
-Lcom/android/internal/telephony/StateMachine$LogRec;
-Lcom/android/internal/telephony/StateMachine$LogRecords;
-Lcom/android/internal/telephony/StateMachine$SmHandler$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/StateMachine$SmHandler$HaltingState;
-Lcom/android/internal/telephony/StateMachine$SmHandler$QuittingState;
-Lcom/android/internal/telephony/StateMachine$SmHandler$StateInfo;
-Lcom/android/internal/telephony/StateMachine$SmHandler;
-Lcom/android/internal/telephony/StateMachine;
-Lcom/android/internal/telephony/TelephonyCapabilities;
-Lcom/android/internal/telephony/TelephonyCommonStatsLog;
-Lcom/android/internal/telephony/TelephonyComponentFactory$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/TelephonyComponentFactory$InjectedComponents$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/TelephonyComponentFactory$InjectedComponents$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/TelephonyComponentFactory$InjectedComponents$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/TelephonyComponentFactory$InjectedComponents$$ExternalSyntheticLambda3;
-Lcom/android/internal/telephony/TelephonyComponentFactory$InjectedComponents$$ExternalSyntheticLambda4;
-Lcom/android/internal/telephony/TelephonyComponentFactory$InjectedComponents;
-Lcom/android/internal/telephony/TelephonyComponentFactory;
-Lcom/android/internal/telephony/TelephonyDevController;
-Lcom/android/internal/telephony/TelephonyFacade;
-Lcom/android/internal/telephony/TelephonyPermissions;
-Lcom/android/internal/telephony/TelephonyStatsLog;
-Lcom/android/internal/telephony/TelephonyTester$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/TelephonyTester$1;
-Lcom/android/internal/telephony/TelephonyTester;
-Lcom/android/internal/telephony/TimeUtils;
-Lcom/android/internal/telephony/UUSInfo;
-Lcom/android/internal/telephony/UiccPhoneBookController;
-Lcom/android/internal/telephony/UserIcons;
-Lcom/android/internal/telephony/VisualVoicemailSmsFilter$1;
-Lcom/android/internal/telephony/VisualVoicemailSmsFilter$FullMessage;
-Lcom/android/internal/telephony/VisualVoicemailSmsFilter$PhoneAccountHandleConverter;
-Lcom/android/internal/telephony/VisualVoicemailSmsFilter;
-Lcom/android/internal/telephony/VisualVoicemailSmsParser$WrappedMessageData;
-Lcom/android/internal/telephony/VisualVoicemailSmsParser;
-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/WapPushManagerParams;
-Lcom/android/internal/telephony/WapPushOverSms$DecodedResult;
-Lcom/android/internal/telephony/WapPushOverSms;
-Lcom/android/internal/telephony/WspTypeDecoder;
-Lcom/android/internal/telephony/build/SdkLevel;
-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$2;
-Lcom/android/internal/telephony/cat/CatCmdMessage$BrowserSettings;
-Lcom/android/internal/telephony/cat/CatCmdMessage$BrowserTerminationCauses;
-Lcom/android/internal/telephony/cat/CatCmdMessage$CallSettings;
-Lcom/android/internal/telephony/cat/CatCmdMessage$SetupEventListConstants;
-Lcom/android/internal/telephony/cat/CatCmdMessage$SetupEventListSettings;
-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$1;
-Lcom/android/internal/telephony/cat/CommandDetails;
-Lcom/android/internal/telephony/cat/CommandParams;
-Lcom/android/internal/telephony/cat/CommandParamsFactory$1;
-Lcom/android/internal/telephony/cat/CommandParamsFactory;
-Lcom/android/internal/telephony/cat/ComprehensionTlv;
-Lcom/android/internal/telephony/cat/ComprehensionTlvTag;
-Lcom/android/internal/telephony/cat/DTTZResponseData;
-Lcom/android/internal/telephony/cat/DeviceIdentities;
-Lcom/android/internal/telephony/cat/DisplayTextParams;
-Lcom/android/internal/telephony/cat/Duration$1;
-Lcom/android/internal/telephony/cat/Duration$TimeUnit;
-Lcom/android/internal/telephony/cat/Duration;
-Lcom/android/internal/telephony/cat/FontSize;
-Lcom/android/internal/telephony/cat/GetInkeyInputResponseData;
-Lcom/android/internal/telephony/cat/GetInputParams;
-Lcom/android/internal/telephony/cat/IconId;
-Lcom/android/internal/telephony/cat/IconLoader;
-Lcom/android/internal/telephony/cat/ImageDescriptor;
-Lcom/android/internal/telephony/cat/Input$1;
-Lcom/android/internal/telephony/cat/Input;
-Lcom/android/internal/telephony/cat/Item$1;
-Lcom/android/internal/telephony/cat/Item;
-Lcom/android/internal/telephony/cat/ItemsIconId;
-Lcom/android/internal/telephony/cat/LanguageParams;
-Lcom/android/internal/telephony/cat/LanguageResponseData;
-Lcom/android/internal/telephony/cat/LaunchBrowserMode;
-Lcom/android/internal/telephony/cat/LaunchBrowserParams;
-Lcom/android/internal/telephony/cat/Menu$1;
-Lcom/android/internal/telephony/cat/Menu;
-Lcom/android/internal/telephony/cat/PlayToneParams;
-Lcom/android/internal/telephony/cat/PresentationType;
-Lcom/android/internal/telephony/cat/ResponseData;
-Lcom/android/internal/telephony/cat/ResultCode;
-Lcom/android/internal/telephony/cat/ResultException$1;
-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/SelectItemParams;
-Lcom/android/internal/telephony/cat/SelectItemResponseData;
-Lcom/android/internal/telephony/cat/SetEventListParams;
-Lcom/android/internal/telephony/cat/TextAlignment;
-Lcom/android/internal/telephony/cat/TextAttribute;
-Lcom/android/internal/telephony/cat/TextColor;
-Lcom/android/internal/telephony/cat/TextMessage$1;
-Lcom/android/internal/telephony/cat/TextMessage;
-Lcom/android/internal/telephony/cat/Tone$1;
-Lcom/android/internal/telephony/cat/Tone;
-Lcom/android/internal/telephony/cat/ToneSettings$1;
-Lcom/android/internal/telephony/cat/ToneSettings;
-Lcom/android/internal/telephony/cat/ValueObject;
-Lcom/android/internal/telephony/cat/ValueParser;
-Lcom/android/internal/telephony/cdma/CdmaCallWaitingNotification;
-Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler$$ExternalSyntheticLambda0;
-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/CdmaInformationRecords$CdmaDisplayInfoRec;
-Lcom/android/internal/telephony/cdma/CdmaInformationRecords$CdmaLineControlInfoRec;
-Lcom/android/internal/telephony/cdma/CdmaInformationRecords$CdmaNumberInfoRec;
-Lcom/android/internal/telephony/cdma/CdmaInformationRecords$CdmaRedirectingNumberInfoRec;
-Lcom/android/internal/telephony/cdma/CdmaInformationRecords$CdmaSignalInfoRec;
-Lcom/android/internal/telephony/cdma/CdmaInformationRecords$CdmaT53AudioControlInfoRec;
-Lcom/android/internal/telephony/cdma/CdmaInformationRecords$CdmaT53ClirInfoRec;
-Lcom/android/internal/telephony/cdma/CdmaInformationRecords;
-Lcom/android/internal/telephony/cdma/CdmaMmiCode;
-Lcom/android/internal/telephony/cdma/CdmaSMSDispatcher;
-Lcom/android/internal/telephony/cdma/CdmaSmsBroadcastConfigInfo;
-Lcom/android/internal/telephony/cdma/CdmaSubscriptionSourceManager;
-Lcom/android/internal/telephony/cdma/EriInfo;
-Lcom/android/internal/telephony/cdma/EriManager$EriDisplayInformation;
-Lcom/android/internal/telephony/cdma/EriManager$EriFile;
-Lcom/android/internal/telephony/cdma/EriManager;
-Lcom/android/internal/telephony/cdma/SignalToneUtil;
-Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/cdma/SmsMessage;
-Lcom/android/internal/telephony/cdma/sms/BearerData$CodingException;
-Lcom/android/internal/telephony/cdma/sms/BearerData$TimeStamp;
-Lcom/android/internal/telephony/cdma/sms/BearerData;
-Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress;
-Lcom/android/internal/telephony/cdma/sms/CdmaSmsSubaddress;
-Lcom/android/internal/telephony/cdma/sms/SmsEnvelope;
-Lcom/android/internal/telephony/cdma/sms/UserData;
-Lcom/android/internal/telephony/cdnr/BrandOverrideEfData;
-Lcom/android/internal/telephony/cdnr/CarrierConfigEfData;
-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$WfcCarrierNameFormatter;
-Lcom/android/internal/telephony/cdnr/CarrierDisplayNameResolver;
-Lcom/android/internal/telephony/cdnr/EfData;
-Lcom/android/internal/telephony/cdnr/EriEfData;
-Lcom/android/internal/telephony/cdnr/RuimEfData;
-Lcom/android/internal/telephony/cdnr/UsimEfData;
-Lcom/android/internal/telephony/d2d/Communicator$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/d2d/Communicator$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/d2d/Communicator$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/d2d/Communicator$$ExternalSyntheticLambda3;
-Lcom/android/internal/telephony/d2d/Communicator$$ExternalSyntheticLambda4;
-Lcom/android/internal/telephony/d2d/Communicator$Callback;
-Lcom/android/internal/telephony/d2d/Communicator$Message;
-Lcom/android/internal/telephony/d2d/Communicator;
-Lcom/android/internal/telephony/d2d/DtmfAdapter;
-Lcom/android/internal/telephony/d2d/DtmfTransport$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/d2d/DtmfTransport$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/d2d/DtmfTransport$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/d2d/DtmfTransport;
-Lcom/android/internal/telephony/d2d/MessageTypeAndValueHelper;
-Lcom/android/internal/telephony/d2d/RtpAdapter$Callback;
-Lcom/android/internal/telephony/d2d/RtpAdapter;
-Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda3;
-Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda4;
-Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda5;
-Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda6;
-Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda7;
-Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda8;
-Lcom/android/internal/telephony/d2d/RtpTransport;
-Lcom/android/internal/telephony/d2d/Timeouts$Adapter;
-Lcom/android/internal/telephony/d2d/Timeouts;
-Lcom/android/internal/telephony/d2d/TransportProtocol$Callback;
-Lcom/android/internal/telephony/d2d/TransportProtocol;
-Lcom/android/internal/telephony/data/DataCallback;
-Lcom/android/internal/telephony/data/DataNetworkController$DataNetworkControllerCallback;
-Lcom/android/internal/telephony/data/DataSettingsManager$DataSettingsManagerCallback;
-Lcom/android/internal/telephony/data/TelephonyNetworkFactory;
-Lcom/android/internal/telephony/emergency/EmergencyNumberTracker$1;
-Lcom/android/internal/telephony/emergency/EmergencyNumberTracker;
-Lcom/android/internal/telephony/euicc/EuiccCardController$10;
-Lcom/android/internal/telephony/euicc/EuiccCardController$11;
-Lcom/android/internal/telephony/euicc/EuiccCardController$12;
-Lcom/android/internal/telephony/euicc/EuiccCardController$13;
-Lcom/android/internal/telephony/euicc/EuiccCardController$14;
-Lcom/android/internal/telephony/euicc/EuiccCardController$15;
-Lcom/android/internal/telephony/euicc/EuiccCardController$16;
-Lcom/android/internal/telephony/euicc/EuiccCardController$17;
-Lcom/android/internal/telephony/euicc/EuiccCardController$18;
-Lcom/android/internal/telephony/euicc/EuiccCardController$19;
-Lcom/android/internal/telephony/euicc/EuiccCardController$1;
-Lcom/android/internal/telephony/euicc/EuiccCardController$20;
-Lcom/android/internal/telephony/euicc/EuiccCardController$21;
-Lcom/android/internal/telephony/euicc/EuiccCardController$22;
-Lcom/android/internal/telephony/euicc/EuiccCardController$2;
-Lcom/android/internal/telephony/euicc/EuiccCardController$3;
-Lcom/android/internal/telephony/euicc/EuiccCardController$4;
-Lcom/android/internal/telephony/euicc/EuiccCardController$5;
-Lcom/android/internal/telephony/euicc/EuiccCardController$6;
-Lcom/android/internal/telephony/euicc/EuiccCardController$7;
-Lcom/android/internal/telephony/euicc/EuiccCardController$8;
-Lcom/android/internal/telephony/euicc/EuiccCardController$9;
-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$1$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$10$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$10;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$11$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$11;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$12$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$12;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$13$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$13;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$14$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$14;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$15$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$15;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$1;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$2$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$2;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$3$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$3;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$4$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$4;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$5$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$5;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$6$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$6;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$7$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$7;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$8$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$8;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$9$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$9;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState;
-Lcom/android/internal/telephony/euicc/EuiccConnector$DeleteCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$DeleteRequest;
-Lcom/android/internal/telephony/euicc/EuiccConnector$DisconnectedState;
-Lcom/android/internal/telephony/euicc/EuiccConnector$DownloadCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$DownloadRequest;
-Lcom/android/internal/telephony/euicc/EuiccConnector$DumpEuiccServiceCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$EraseCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$EuiccPackageMonitor;
-Lcom/android/internal/telephony/euicc/EuiccConnector$GetAvailableMemoryInBytesCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$GetDefaultListCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$GetDefaultListRequest;
-Lcom/android/internal/telephony/euicc/EuiccConnector$GetEidCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$GetEuiccInfoCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$GetEuiccProfileInfoListCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$GetMetadataCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$GetMetadataRequest;
-Lcom/android/internal/telephony/euicc/EuiccConnector$GetOtaStatusCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$OtaStatusChangedCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$RetainSubscriptionsCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$SwitchCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$SwitchRequest;
-Lcom/android/internal/telephony/euicc/EuiccConnector$UnavailableState;
-Lcom/android/internal/telephony/euicc/EuiccConnector$UpdateNicknameCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$UpdateNicknameRequest;
-Lcom/android/internal/telephony/euicc/EuiccConnector;
-Lcom/android/internal/telephony/euicc/EuiccController$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/euicc/EuiccController$10;
-Lcom/android/internal/telephony/euicc/EuiccController$11;
-Lcom/android/internal/telephony/euicc/EuiccController$12;
-Lcom/android/internal/telephony/euicc/EuiccController$13;
-Lcom/android/internal/telephony/euicc/EuiccController$1;
-Lcom/android/internal/telephony/euicc/EuiccController$2;
-Lcom/android/internal/telephony/euicc/EuiccController$3;
-Lcom/android/internal/telephony/euicc/EuiccController$4;
-Lcom/android/internal/telephony/euicc/EuiccController$5;
-Lcom/android/internal/telephony/euicc/EuiccController$6;
-Lcom/android/internal/telephony/euicc/EuiccController$7;
-Lcom/android/internal/telephony/euicc/EuiccController$8;
-Lcom/android/internal/telephony/euicc/EuiccController$9;
-Lcom/android/internal/telephony/euicc/EuiccController$DownloadSubscriptionGetMetadataCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccController$GetDefaultListCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccController$GetMetadataCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccController;
-Lcom/android/internal/telephony/euicc/EuiccOperation$1;
-Lcom/android/internal/telephony/euicc/EuiccOperation$Action;
-Lcom/android/internal/telephony/euicc/EuiccOperation;
-Lcom/android/internal/telephony/euicc/IAuthenticateServerCallback$Stub;
-Lcom/android/internal/telephony/euicc/IAuthenticateServerCallback;
-Lcom/android/internal/telephony/euicc/ICancelSessionCallback$Stub;
-Lcom/android/internal/telephony/euicc/ICancelSessionCallback;
-Lcom/android/internal/telephony/euicc/IDeleteProfileCallback$Stub;
-Lcom/android/internal/telephony/euicc/IDeleteProfileCallback;
-Lcom/android/internal/telephony/euicc/IDisableProfileCallback$Stub;
-Lcom/android/internal/telephony/euicc/IDisableProfileCallback;
-Lcom/android/internal/telephony/euicc/IEuiccCardController$Stub$Proxy;
-Lcom/android/internal/telephony/euicc/IEuiccCardController$Stub;
-Lcom/android/internal/telephony/euicc/IEuiccCardController;
-Lcom/android/internal/telephony/euicc/IEuiccController$Stub$Proxy;
-Lcom/android/internal/telephony/euicc/IEuiccController$Stub;
-Lcom/android/internal/telephony/euicc/IEuiccController;
-Lcom/android/internal/telephony/euicc/IGetAllProfilesCallback$Stub;
-Lcom/android/internal/telephony/euicc/IGetAllProfilesCallback;
-Lcom/android/internal/telephony/euicc/IGetDefaultSmdpAddressCallback$Stub;
-Lcom/android/internal/telephony/euicc/IGetDefaultSmdpAddressCallback;
-Lcom/android/internal/telephony/euicc/IGetEuiccChallengeCallback$Stub;
-Lcom/android/internal/telephony/euicc/IGetEuiccChallengeCallback;
-Lcom/android/internal/telephony/euicc/IGetEuiccInfo1Callback$Stub;
-Lcom/android/internal/telephony/euicc/IGetEuiccInfo1Callback;
-Lcom/android/internal/telephony/euicc/IGetEuiccInfo2Callback$Stub;
-Lcom/android/internal/telephony/euicc/IGetEuiccInfo2Callback;
-Lcom/android/internal/telephony/euicc/IGetProfileCallback$Stub;
-Lcom/android/internal/telephony/euicc/IGetProfileCallback;
-Lcom/android/internal/telephony/euicc/IGetRulesAuthTableCallback$Stub;
-Lcom/android/internal/telephony/euicc/IGetRulesAuthTableCallback;
-Lcom/android/internal/telephony/euicc/IGetSmdsAddressCallback$Stub;
-Lcom/android/internal/telephony/euicc/IGetSmdsAddressCallback;
-Lcom/android/internal/telephony/euicc/IListNotificationsCallback$Stub;
-Lcom/android/internal/telephony/euicc/IListNotificationsCallback;
-Lcom/android/internal/telephony/euicc/ILoadBoundProfilePackageCallback$Stub;
-Lcom/android/internal/telephony/euicc/ILoadBoundProfilePackageCallback;
-Lcom/android/internal/telephony/euicc/IPrepareDownloadCallback$Stub;
-Lcom/android/internal/telephony/euicc/IPrepareDownloadCallback;
-Lcom/android/internal/telephony/euicc/IRemoveNotificationFromListCallback$Stub;
-Lcom/android/internal/telephony/euicc/IRemoveNotificationFromListCallback;
-Lcom/android/internal/telephony/euicc/IResetMemoryCallback$Stub;
-Lcom/android/internal/telephony/euicc/IResetMemoryCallback;
-Lcom/android/internal/telephony/euicc/IRetrieveNotificationCallback$Stub;
-Lcom/android/internal/telephony/euicc/IRetrieveNotificationCallback;
-Lcom/android/internal/telephony/euicc/IRetrieveNotificationListCallback$Stub;
-Lcom/android/internal/telephony/euicc/IRetrieveNotificationListCallback;
-Lcom/android/internal/telephony/euicc/ISetDefaultSmdpAddressCallback$Stub;
-Lcom/android/internal/telephony/euicc/ISetDefaultSmdpAddressCallback;
-Lcom/android/internal/telephony/euicc/ISetNicknameCallback$Stub;
-Lcom/android/internal/telephony/euicc/ISetNicknameCallback;
-Lcom/android/internal/telephony/euicc/ISwitchToProfileCallback$Stub;
-Lcom/android/internal/telephony/euicc/ISwitchToProfileCallback;
-Lcom/android/internal/telephony/flags/FeatureFlags;
-Lcom/android/internal/telephony/flags/FeatureFlagsImpl;
-Lcom/android/internal/telephony/flags/Flags;
-Lcom/android/internal/telephony/gsm/GsmInboundSmsHandler$GsmCbTestBroadcastReceiver;
-Lcom/android/internal/telephony/gsm/GsmInboundSmsHandler;
-Lcom/android/internal/telephony/gsm/GsmMmiCode$1;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;
-Lcom/android/internal/telephony/gsm/GsmSMSDispatcher;
-Lcom/android/internal/telephony/gsm/GsmSmsAddress;
-Lcom/android/internal/telephony/gsm/SimTlv;
-Lcom/android/internal/telephony/gsm/SmsBroadcastConfigInfo;
-Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;
-Lcom/android/internal/telephony/gsm/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/gsm/SmsMessage;
-Lcom/android/internal/telephony/gsm/SsData$RequestType;
-Lcom/android/internal/telephony/gsm/SsData$ServiceType;
-Lcom/android/internal/telephony/gsm/SsData$TeleserviceType;
-Lcom/android/internal/telephony/gsm/SsData;
-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/ImsConfigCompatAdapter;
-Lcom/android/internal/telephony/ims/ImsRegistrationCompatAdapter$1;
-Lcom/android/internal/telephony/ims/ImsRegistrationCompatAdapter;
-Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda10;
-Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda11;
-Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda12;
-Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda13;
-Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda3;
-Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda4;
-Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda5;
-Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda6;
-Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda7;
-Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda8;
-Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda9;
-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$ImsDynamicQueryManagerFactory;
-Lcom/android/internal/telephony/ims/ImsResolver$ImsServiceControllerFactory;
-Lcom/android/internal/telephony/ims/ImsResolver$ImsServiceInfo;
-Lcom/android/internal/telephony/ims/ImsResolver$OverrideConfig;
-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$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/ims/ImsServiceController$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/ims/ImsServiceController$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/ims/ImsServiceController$$ExternalSyntheticLambda3;
-Lcom/android/internal/telephony/ims/ImsServiceController$$ExternalSyntheticLambda4;
-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$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/ImsServiceControllerCompat;
-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/MmTelFeatureCompatAdapter$1;
-Lcom/android/internal/telephony/ims/MmTelFeatureCompatAdapter$2;
-Lcom/android/internal/telephony/ims/MmTelFeatureCompatAdapter$3;
-Lcom/android/internal/telephony/ims/MmTelFeatureCompatAdapter$4;
-Lcom/android/internal/telephony/ims/MmTelFeatureCompatAdapter$5;
-Lcom/android/internal/telephony/ims/MmTelFeatureCompatAdapter$ConfigListener;
-Lcom/android/internal/telephony/ims/MmTelFeatureCompatAdapter$ImsRegistrationListenerBase;
-Lcom/android/internal/telephony/ims/MmTelFeatureCompatAdapter;
-Lcom/android/internal/telephony/ims/MmTelInterfaceAdapter;
-Lcom/android/internal/telephony/imsphone/ImsExternalCall;
-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$$ExternalSyntheticLambda0;
-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$ImsDialArgs$Builder;
-Lcom/android/internal/telephony/imsphone/ImsPhone$ImsDialArgs;
-Lcom/android/internal/telephony/imsphone/ImsPhone$ImsManagerFactory;
-Lcom/android/internal/telephony/imsphone/ImsPhone$SS;
-Lcom/android/internal/telephony/imsphone/ImsPhone;
-Lcom/android/internal/telephony/imsphone/ImsPhoneBase;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCall;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$$ExternalSyntheticLambda3;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$10;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$11;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$12;
-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$CacheEntry;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$Config;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$ConnectorFactory;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$HoldSwapState;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$MmTelFeatureListener;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$PhoneStateListener;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$SharedPreferenceProxy;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$VtDataUsageProvider;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCommandInterface;
-Lcom/android/internal/telephony/imsphone/ImsPhoneConnection$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/imsphone/ImsPhoneConnection$MyHandler;
-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/imsphone/ImsRcsStatusListener;
-Lcom/android/internal/telephony/imsphone/ImsRegistrationCallbackHelper$1;
-Lcom/android/internal/telephony/imsphone/ImsRegistrationCallbackHelper$ImsRegistrationUpdate;
-Lcom/android/internal/telephony/imsphone/ImsRegistrationCallbackHelper;
-Lcom/android/internal/telephony/imsphone/ImsRttTextHandler$InCallReaderThread;
-Lcom/android/internal/telephony/imsphone/ImsRttTextHandler$NetworkWriter;
-Lcom/android/internal/telephony/imsphone/ImsRttTextHandler;
-Lcom/android/internal/telephony/metrics/AirplaneModeStats;
-Lcom/android/internal/telephony/metrics/CallQualityMetrics$TimestampedQualitySnapshot;
-Lcom/android/internal/telephony/metrics/CallQualityMetrics;
-Lcom/android/internal/telephony/metrics/CallSessionEventBuilder;
-Lcom/android/internal/telephony/metrics/CarrierIdMatchStats;
-Lcom/android/internal/telephony/metrics/DataCallSessionStats;
-Lcom/android/internal/telephony/metrics/DataStallRecoveryStats$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/metrics/DataStallRecoveryStats$1;
-Lcom/android/internal/telephony/metrics/DataStallRecoveryStats$2;
-Lcom/android/internal/telephony/metrics/DataStallRecoveryStats;
-Lcom/android/internal/telephony/metrics/ImsStats;
-Lcom/android/internal/telephony/metrics/InProgressCallSession;
-Lcom/android/internal/telephony/metrics/InProgressSmsSession;
-Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda10;
-Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda11;
-Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda3;
-Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda4;
-Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda5;
-Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda6;
-Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda7;
-Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda8;
-Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda9;
-Lcom/android/internal/telephony/metrics/MetricsCollector;
-Lcom/android/internal/telephony/metrics/ModemPowerMetrics$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/metrics/ModemPowerMetrics;
-Lcom/android/internal/telephony/metrics/ModemRestartStats;
-Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLambda3;
-Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLambda4;
-Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLambda5;
-Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLambda6;
-Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLambda7;
-Lcom/android/internal/telephony/metrics/PersistAtomsStorage$1;
-Lcom/android/internal/telephony/metrics/PersistAtomsStorage;
-Lcom/android/internal/telephony/metrics/ServiceStateStats$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/metrics/ServiceStateStats$TimestampedServiceState;
-Lcom/android/internal/telephony/metrics/ServiceStateStats;
-Lcom/android/internal/telephony/metrics/SimSlotState;
-Lcom/android/internal/telephony/metrics/SmsSessionEventBuilder;
-Lcom/android/internal/telephony/metrics/SmsStats;
-Lcom/android/internal/telephony/metrics/TelephonyEventBuilder;
-Lcom/android/internal/telephony/metrics/TelephonyMetrics$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/metrics/TelephonyMetrics$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/metrics/TelephonyMetrics$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/metrics/TelephonyMetrics$1;
-Lcom/android/internal/telephony/metrics/TelephonyMetrics$BwEstimationStats;
-Lcom/android/internal/telephony/metrics/TelephonyMetrics;
-Lcom/android/internal/telephony/metrics/VoiceCallRatTracker$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/metrics/VoiceCallRatTracker$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/metrics/VoiceCallRatTracker$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/metrics/VoiceCallRatTracker$$ExternalSyntheticLambda3;
-Lcom/android/internal/telephony/metrics/VoiceCallRatTracker$$ExternalSyntheticLambda4;
-Lcom/android/internal/telephony/metrics/VoiceCallRatTracker$$ExternalSyntheticLambda5;
-Lcom/android/internal/telephony/metrics/VoiceCallRatTracker$Key;
-Lcom/android/internal/telephony/metrics/VoiceCallRatTracker$Value;
-Lcom/android/internal/telephony/metrics/VoiceCallRatTracker;
-Lcom/android/internal/telephony/metrics/VoiceCallSessionStats$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/metrics/VoiceCallSessionStats$1;
-Lcom/android/internal/telephony/metrics/VoiceCallSessionStats;
-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/PersistAtomsProto$CarrierIdMismatch;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$CellularDataServiceSwitch;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$CellularServiceState;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$DataCallSession;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$EmergencyNumbersInfo;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$GbaEvent;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsDedicatedBearerEvent;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsDedicatedBearerListenerEvent;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationFeatureTagStats;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationServiceDescStats;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationStats;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationTermination;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$IncomingSms;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$NetworkRequests;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$NetworkRequestsV2;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$OutgoingShortCodeSms;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$OutgoingSms;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$PersistAtoms;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$PresenceNotifyEvent;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$RcsAcsProvisioningStats;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$RcsClientProvisioningStats;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteController;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteIncomingDatagram;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteOutgoingDatagram;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteProvision;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteSession;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteSosMessageRecommender;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$SipDelegateStats;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$SipMessageResponse;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$SipTransportFeatureTagStats;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$SipTransportSession;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$UceEventStats;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$UnmeteredNetworks;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$VoiceCallRatUsage;
-Lcom/android/internal/telephony/nano/PersistAtomsProto$VoiceCallSession;
-Lcom/android/internal/telephony/nano/StoredPinProto$EncryptedPin;
-Lcom/android/internal/telephony/nano/StoredPinProto$StoredPin$PinStatus;
-Lcom/android/internal/telephony/nano/StoredPinProto$StoredPin;
-Lcom/android/internal/telephony/nano/TelephonyProto$ActiveSubscriptionInfo;
-Lcom/android/internal/telephony/nano/TelephonyProto$BandwidthEstimatorStats$PerLevel;
-Lcom/android/internal/telephony/nano/TelephonyProto$BandwidthEstimatorStats$PerRat;
-Lcom/android/internal/telephony/nano/TelephonyProto$BandwidthEstimatorStats;
-Lcom/android/internal/telephony/nano/TelephonyProto$EmergencyNumberInfo;
-Lcom/android/internal/telephony/nano/TelephonyProto$ImsCapabilities;
-Lcom/android/internal/telephony/nano/TelephonyProto$ImsConnectionState$State;
-Lcom/android/internal/telephony/nano/TelephonyProto$ImsConnectionState;
-Lcom/android/internal/telephony/nano/TelephonyProto$ImsReasonInfo;
-Lcom/android/internal/telephony/nano/TelephonyProto$ImsServiceErrno;
-Lcom/android/internal/telephony/nano/TelephonyProto$ModemPowerStats;
-Lcom/android/internal/telephony/nano/TelephonyProto$NrMode;
-Lcom/android/internal/telephony/nano/TelephonyProto$PdpType;
-Lcom/android/internal/telephony/nano/TelephonyProto$RadioAccessTechnology;
-Lcom/android/internal/telephony/nano/TelephonyProto$RilDataCall$State;
-Lcom/android/internal/telephony/nano/TelephonyProto$RilDataCall;
-Lcom/android/internal/telephony/nano/TelephonyProto$RilErrno;
-Lcom/android/internal/telephony/nano/TelephonyProto$SimState;
-Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event$CBMessage;
-Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event$CBMessageType;
-Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event$CBPriority;
-Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event$Format;
-Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event$IncompleteSms;
-Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event$SmsType;
-Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event$Tech;
-Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event$Type;
-Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event;
-Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$AudioCodec;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$CallQuality$CallQualityLevel;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$CallQuality;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$CallQualitySummary;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$CallState;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$ImsCommand;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$PhoneState;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$RilCall$Type;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$RilCall;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$RilRequest;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$RilSrvccState;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$SignalStrength;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$Type;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$ApnType;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$CarrierIdMatching;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$CarrierIdMatchingResult;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$CarrierKeyChange$KeyType;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$CarrierKeyChange;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$DataSwitch$Reason;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$DataSwitch;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$EventState;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$ModemRestart;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$NetworkCapabilitiesInfo;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$NetworkValidationState;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$OnDemandDataSwitch;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilDeactivateDataCall$DeactivateReason;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilDeactivateDataCall;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilSetupDataCall$RilDataProfile;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilSetupDataCall;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilSetupDataCallResponse$RilDataCallFailCause;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilSetupDataCallResponse;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$Type;
-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$Domain;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState$FrequencyRange;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState$NetworkRegistrationInfo;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState$NrState;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState$RoamingType;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState$TelephonyOperator;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState$Transport;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonySettings$RilNetworkMode;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonySettings$WiFiCallingMode;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonySettings;
-Lcom/android/internal/telephony/nano/TelephonyProto$Time;
-Lcom/android/internal/telephony/nano/TelephonyProto$TimeInterval;
-Lcom/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory$$ExternalSyntheticLambda1;
-Lcom/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory$$ExternalSyntheticLambda2;
-Lcom/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory$1;
-Lcom/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory$NitzSignalInputFilterPredicateImpl;
-Lcom/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory$TrivalentPredicate;
-Lcom/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory;
-Lcom/android/internal/telephony/nitz/NitzStateMachineImpl$NitzSignalInputFilterPredicate;
-Lcom/android/internal/telephony/nitz/NitzStateMachineImpl$TimeZoneSuggester;
-Lcom/android/internal/telephony/nitz/NitzStateMachineImpl;
-Lcom/android/internal/telephony/nitz/TimeServiceHelper;
-Lcom/android/internal/telephony/nitz/TimeServiceHelperImpl;
-Lcom/android/internal/telephony/nitz/TimeZoneLookupHelper$CountryResult;
-Lcom/android/internal/telephony/nitz/TimeZoneLookupHelper;
-Lcom/android/internal/telephony/nitz/TimeZoneSuggesterImpl;
-Lcom/android/internal/telephony/phonenumbers/AlternateFormatsCountryCodeSet;
-Lcom/android/internal/telephony/phonenumbers/AsYouTypeFormatter;
-Lcom/android/internal/telephony/phonenumbers/CountryCodeToRegionCodeMap;
-Lcom/android/internal/telephony/phonenumbers/MetadataLoader;
-Lcom/android/internal/telephony/phonenumbers/NumberParseException$ErrorType;
-Lcom/android/internal/telephony/phonenumbers/NumberParseException;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberMatch;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberMatcher$NumberGroupingChecker;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberMatcher$State;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberMatcher;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberToCarrierMapper;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$1;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$2;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$Leniency$1;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$Leniency$2;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$Leniency$3$1;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$Leniency$3;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$Leniency$4$1;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$Leniency$4;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$Leniency;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$MatchType;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$PhoneNumberType;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$ValidationResult;
-Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil;
-Lcom/android/internal/telephony/phonenumbers/Phonemetadata$NumberFormat$Builder;
-Lcom/android/internal/telephony/phonenumbers/Phonemetadata$NumberFormat;
-Lcom/android/internal/telephony/phonenumbers/Phonemetadata$PhoneMetadata$Builder;
-Lcom/android/internal/telephony/phonenumbers/Phonemetadata$PhoneMetadata;
-Lcom/android/internal/telephony/phonenumbers/Phonemetadata$PhoneMetadataCollection$Builder;
-Lcom/android/internal/telephony/phonenumbers/Phonemetadata$PhoneMetadataCollection;
-Lcom/android/internal/telephony/phonenumbers/Phonemetadata$PhoneNumberDesc$Builder;
-Lcom/android/internal/telephony/phonenumbers/Phonemetadata$PhoneNumberDesc;
-Lcom/android/internal/telephony/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;
-Lcom/android/internal/telephony/phonenumbers/Phonenumber$PhoneNumber;
-Lcom/android/internal/telephony/phonenumbers/ShortNumberInfo$ShortNumberCost;
-Lcom/android/internal/telephony/phonenumbers/ShortNumberInfo;
-Lcom/android/internal/telephony/phonenumbers/ShortNumbersRegionCodeSet;
-Lcom/android/internal/telephony/phonenumbers/internal/MatcherApi;
-Lcom/android/internal/telephony/phonenumbers/internal/RegexBasedMatcher;
-Lcom/android/internal/telephony/phonenumbers/internal/RegexCache$LRUCache$1;
-Lcom/android/internal/telephony/phonenumbers/internal/RegexCache$LRUCache;
-Lcom/android/internal/telephony/phonenumbers/internal/RegexCache;
-Lcom/android/internal/telephony/phonenumbers/metadata/DefaultMetadataDependenciesProvider;
-Lcom/android/internal/telephony/phonenumbers/metadata/init/ClassPathResourceMetadataLoader;
-Lcom/android/internal/telephony/phonenumbers/metadata/init/MetadataParser;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/BlockingMetadataBootstrappingGuard;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/CompositeMetadataContainer;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/FormattingMetadataSource;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/FormattingMetadataSourceImpl;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/MapBackedMetadataContainer$1;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/MapBackedMetadataContainer$2;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/MapBackedMetadataContainer$KeyProvider;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/MapBackedMetadataContainer;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/MetadataBootstrappingGuard;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/MetadataContainer;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/MetadataSource;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/MetadataSourceImpl;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/MultiFileModeFileNameProvider;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/NonGeographicalEntityMetadataSource;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/PhoneMetadataFileNameProvider;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/RegionMetadataSource;
-Lcom/android/internal/telephony/phonenumbers/metadata/source/RegionMetadataSourceImpl;
-Lcom/android/internal/telephony/phonenumbers/prefixmapper/DefaultMapStorage;
-Lcom/android/internal/telephony/phonenumbers/prefixmapper/FlyweightMapStorage;
-Lcom/android/internal/telephony/phonenumbers/prefixmapper/MappingFileProvider;
-Lcom/android/internal/telephony/phonenumbers/prefixmapper/PhonePrefixMap;
-Lcom/android/internal/telephony/phonenumbers/prefixmapper/PhonePrefixMapStorageStrategy;
-Lcom/android/internal/telephony/phonenumbers/prefixmapper/PrefixFileReader;
-Lcom/android/internal/telephony/phonenumbers/prefixmapper/PrefixTimeZonesMap;
-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/Extension$1;
-Lcom/android/internal/telephony/protobuf/nano/Extension$PrimitiveExtension;
-Lcom/android/internal/telephony/protobuf/nano/Extension;
-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/MapFactories$1;
-Lcom/android/internal/telephony/protobuf/nano/MapFactories$DefaultMapFactory;
-Lcom/android/internal/telephony/protobuf/nano/MapFactories$MapFactory;
-Lcom/android/internal/telephony/protobuf/nano/MapFactories;
-Lcom/android/internal/telephony/protobuf/nano/MessageNano;
-Lcom/android/internal/telephony/protobuf/nano/MessageNanoPrinter;
-Lcom/android/internal/telephony/protobuf/nano/UnknownFieldData;
-Lcom/android/internal/telephony/protobuf/nano/WireFormatNano;
-Lcom/android/internal/telephony/protobuf/nano/android/ParcelableExtendableMessageNano;
-Lcom/android/internal/telephony/protobuf/nano/android/ParcelableMessageNano;
-Lcom/android/internal/telephony/protobuf/nano/android/ParcelableMessageNanoCreator;
-Lcom/android/internal/telephony/satellite/PointingAppController;
-Lcom/android/internal/telephony/satellite/SatelliteModemInterface;
-Lcom/android/internal/telephony/satellite/SatelliteSessionController;
-Lcom/android/internal/telephony/satellite/nano/SatelliteConfigData$CarrierSupportedSatelliteServicesProto;
-Lcom/android/internal/telephony/satellite/nano/SatelliteConfigData$SatelliteConfigProto;
-Lcom/android/internal/telephony/satellite/nano/SatelliteConfigData$SatelliteProviderCapabilityProto;
-Lcom/android/internal/telephony/satellite/nano/SatelliteConfigData$SatelliteRegionProto;
-Lcom/android/internal/telephony/satellite/nano/SatelliteConfigData$TelephonyConfigProto;
-Lcom/android/internal/telephony/security/NullCipherNotifier;
-Lcom/android/internal/telephony/subscription/SubscriptionManagerService$SubscriptionManagerServiceCallback;
-Lcom/android/internal/telephony/test/SimulatedRadioControl;
-Lcom/android/internal/telephony/test/TestConferenceEventPackageParser;
-Lcom/android/internal/telephony/uicc/AdnCapacity$1;
-Lcom/android/internal/telephony/uicc/AdnCapacity;
-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/CarrierAppInstallReceiver;
-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$AuthAsyncResponse;
-Lcom/android/internal/telephony/uicc/IccRecords$IccRecordLoaded;
-Lcom/android/internal/telephony/uicc/IccRecords$OperatorPlmnInfo;
-Lcom/android/internal/telephony/uicc/IccRecords$PlmnNetworkName;
-Lcom/android/internal/telephony/uicc/IccRecords;
-Lcom/android/internal/telephony/uicc/IccRefreshResponse;
-Lcom/android/internal/telephony/uicc/IccServiceTable;
-Lcom/android/internal/telephony/uicc/IccSlotStatus;
-Lcom/android/internal/telephony/uicc/IccUtils;
-Lcom/android/internal/telephony/uicc/IccVmFixedException;
-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/PinStorage$1;
-Lcom/android/internal/telephony/uicc/PinStorage;
-Lcom/android/internal/telephony/uicc/PlmnActRecord$1;
-Lcom/android/internal/telephony/uicc/PlmnActRecord;
-Lcom/android/internal/telephony/uicc/ReceivedPhonebookRecords;
-Lcom/android/internal/telephony/uicc/RuimFileHandler;
-Lcom/android/internal/telephony/uicc/RuimRecords$EfCsimCdmaHomeLoaded;
-Lcom/android/internal/telephony/uicc/RuimRecords$EfCsimEprlLoaded;
-Lcom/android/internal/telephony/uicc/RuimRecords$EfCsimImsimLoaded;
-Lcom/android/internal/telephony/uicc/RuimRecords$EfCsimLiLoaded;
-Lcom/android/internal/telephony/uicc/RuimRecords$EfCsimMdnLoaded;
-Lcom/android/internal/telephony/uicc/RuimRecords$EfCsimMipUppLoaded;
-Lcom/android/internal/telephony/uicc/RuimRecords$EfCsimSpnLoaded;
-Lcom/android/internal/telephony/uicc/RuimRecords$EfPlLoaded;
-Lcom/android/internal/telephony/uicc/RuimRecords;
-Lcom/android/internal/telephony/uicc/SIMFileHandler;
-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/ShowInstallAppNotificationReceiver;
-Lcom/android/internal/telephony/uicc/SimPhonebookRecord$Builder;
-Lcom/android/internal/telephony/uicc/SimPhonebookRecord;
-Lcom/android/internal/telephony/uicc/SimPhonebookRecordCache$$ExternalSyntheticLambda0;
-Lcom/android/internal/telephony/uicc/SimPhonebookRecordCache$UpdateRequest;
-Lcom/android/internal/telephony/uicc/SimPhonebookRecordCache;
-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$1;
-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/Asn1Decoder;
-Lcom/android/internal/telephony/uicc/asn1/Asn1Node$Builder;
-Lcom/android/internal/telephony/uicc/asn1/Asn1Node;
-Lcom/android/internal/telephony/uicc/asn1/InvalidAsn1DataException;
-Lcom/android/internal/telephony/uicc/asn1/TagNotFoundException;
-Lcom/android/internal/telephony/uicc/euicc/EuiccCard$1;
-Lcom/android/internal/telephony/uicc/euicc/EuiccCard;
-Lcom/android/internal/telephony/uicc/euicc/EuiccCardErrorException;
-Lcom/android/internal/telephony/uicc/euicc/EuiccCardException;
-Lcom/android/internal/telephony/uicc/euicc/EuiccSpecVersion;
-Lcom/android/internal/telephony/uicc/euicc/Tags;
-Lcom/android/internal/telephony/uicc/euicc/apdu/ApduCommand;
-Lcom/android/internal/telephony/uicc/euicc/apdu/ApduException;
-Lcom/android/internal/telephony/uicc/euicc/apdu/ApduSender$1;
-Lcom/android/internal/telephony/uicc/euicc/apdu/ApduSender$2$1;
-Lcom/android/internal/telephony/uicc/euicc/apdu/ApduSender$2;
-Lcom/android/internal/telephony/uicc/euicc/apdu/ApduSender$3;
-Lcom/android/internal/telephony/uicc/euicc/apdu/ApduSender$4;
-Lcom/android/internal/telephony/uicc/euicc/apdu/ApduSender;
-Lcom/android/internal/telephony/uicc/euicc/apdu/ApduSenderResultCallback;
-Lcom/android/internal/telephony/uicc/euicc/apdu/CloseLogicalChannelInvocation;
-Lcom/android/internal/telephony/uicc/euicc/apdu/OpenLogicalChannelInvocation;
-Lcom/android/internal/telephony/uicc/euicc/apdu/RequestBuilder;
-Lcom/android/internal/telephony/uicc/euicc/apdu/RequestProvider;
-Lcom/android/internal/telephony/uicc/euicc/apdu/TransmitApduLogicalChannelInvocation;
-Lcom/android/internal/telephony/uicc/euicc/async/AsyncMessageInvocation;
-Lcom/android/internal/telephony/uicc/euicc/async/AsyncResultCallback;
-Lcom/android/internal/telephony/uicc/euicc/async/AsyncResultHelper$1;
-Lcom/android/internal/telephony/uicc/euicc/async/AsyncResultHelper$2;
-Lcom/android/internal/telephony/uicc/euicc/async/AsyncResultHelper;
-Lcom/android/internal/telephony/util/ArrayUtils;
-Lcom/android/internal/telephony/util/BitUtils;
-Lcom/android/internal/telephony/util/CollectionUtils;
-Lcom/android/internal/telephony/util/ConnectivityUtils;
-Lcom/android/internal/telephony/util/DnsPacket$DnsHeader;
-Lcom/android/internal/telephony/util/DnsPacket$DnsRecord;
-Lcom/android/internal/telephony/util/DnsPacket$ParseException;
-Lcom/android/internal/telephony/util/DnsPacket;
-Lcom/android/internal/telephony/util/DnsSdTxtRecord$1;
-Lcom/android/internal/telephony/util/DnsSdTxtRecord;
-Lcom/android/internal/telephony/util/HandlerExecutor;
-Lcom/android/internal/telephony/util/Inet4AddressUtils;
-Lcom/android/internal/telephony/util/InetAddressUtils;
-Lcom/android/internal/telephony/util/IpRange;
-Lcom/android/internal/telephony/util/IpUtils;
-Lcom/android/internal/telephony/util/LinkPropertiesUtils$CompareOrUpdateResult;
-Lcom/android/internal/telephony/util/LinkPropertiesUtils$CompareResult;
-Lcom/android/internal/telephony/util/LinkPropertiesUtils;
-Lcom/android/internal/telephony/util/LocaleUtils;
-Lcom/android/internal/telephony/util/LocationPermissionChecker;
-Lcom/android/internal/telephony/util/MacAddressUtils;
-Lcom/android/internal/telephony/util/NetUtils;
-Lcom/android/internal/telephony/util/NetworkCapabilitiesUtils;
-Lcom/android/internal/telephony/util/NetworkIdentityUtils;
-Lcom/android/internal/telephony/util/NetworkStackConstants;
-Lcom/android/internal/telephony/util/NotificationChannelController$1;
-Lcom/android/internal/telephony/util/NotificationChannelController;
-Lcom/android/internal/telephony/util/PermissionUtils;
-Lcom/android/internal/telephony/util/ProxyUtils;
-Lcom/android/internal/telephony/util/RemoteCallbackListExt;
-Lcom/android/internal/telephony/util/SMSDispatcherUtil;
-Lcom/android/internal/telephony/util/TelephonyUtils;
-Lcom/android/internal/telephony/util/VoicemailNotificationSettingsUtil;
-Lcom/android/internal/telephony/util/XmlUtils;
-Lcom/android/internal/textservice/ISpellCheckerService$Stub$Proxy;
-Lcom/android/internal/textservice/ISpellCheckerService$Stub;
-Lcom/android/internal/textservice/ISpellCheckerService;
-Lcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub$Proxy;
-Lcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub;
-Lcom/android/internal/textservice/ISpellCheckerServiceCallback;
-Lcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;
-Lcom/android/internal/textservice/ISpellCheckerSession$Stub;
-Lcom/android/internal/textservice/ISpellCheckerSession;
-Lcom/android/internal/textservice/ISpellCheckerSessionListener$Stub$Proxy;
-Lcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;
-Lcom/android/internal/textservice/ISpellCheckerSessionListener;
-Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;
-Lcom/android/internal/textservice/ITextServicesManager$Stub;
-Lcom/android/internal/textservice/ITextServicesManager;
-Lcom/android/internal/textservice/ITextServicesSessionListener$Stub$Proxy;
-Lcom/android/internal/textservice/ITextServicesSessionListener$Stub;
-Lcom/android/internal/textservice/ITextServicesSessionListener;
-Lcom/android/internal/transition/EpicenterTranslateClipReveal$1;
-Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;
-Lcom/android/internal/transition/EpicenterTranslateClipReveal$StateEvaluator;
-Lcom/android/internal/transition/EpicenterTranslateClipReveal$StateProperty;
-Lcom/android/internal/transition/EpicenterTranslateClipReveal;
-Lcom/android/internal/transition/TransitionConstants;
-Lcom/android/internal/usb/DumpUtils;
-Lcom/android/internal/util/AnnotationValidations;
-Lcom/android/internal/util/ArrayUtils;
-Lcom/android/internal/util/AsyncChannel$AsyncChannelConnection;
-Lcom/android/internal/util/AsyncChannel$DeathMonitor;
-Lcom/android/internal/util/AsyncChannel$SyncMessenger$SyncHandler;
-Lcom/android/internal/util/AsyncChannel$SyncMessenger;
-Lcom/android/internal/util/AsyncChannel;
-Lcom/android/internal/util/BitUtils;
-Lcom/android/internal/util/BitwiseInputStream$AccessException;
-Lcom/android/internal/util/BitwiseOutputStream$AccessException;
-Lcom/android/internal/util/CollectionUtils;
-Lcom/android/internal/util/ConcurrentUtils$1$1;
-Lcom/android/internal/util/ConcurrentUtils$1;
-Lcom/android/internal/util/ConcurrentUtils$DirectExecutor;
-Lcom/android/internal/util/ConcurrentUtils;
-Lcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;
-Lcom/android/internal/util/ContrastColorUtil;
-Lcom/android/internal/util/DumpUtils$1;
-Lcom/android/internal/util/DumpUtils$Dump;
-Lcom/android/internal/util/DumpUtils;
-Lcom/android/internal/util/EmergencyAffordanceManager;
-Lcom/android/internal/util/ExponentiallyBucketedHistogram;
-Lcom/android/internal/util/FastMath;
-Lcom/android/internal/util/FastPrintWriter$DummyWriter-IA;
-Lcom/android/internal/util/FastPrintWriter$DummyWriter;
-Lcom/android/internal/util/FastPrintWriter;
-Lcom/android/internal/util/FastXmlSerializer;
-Lcom/android/internal/util/FileRotator$FileInfo;
-Lcom/android/internal/util/FileRotator$Reader;
-Lcom/android/internal/util/FileRotator$Rewriter;
-Lcom/android/internal/util/FileRotator$Writer;
-Lcom/android/internal/util/FileRotator;
-Lcom/android/internal/util/FrameworkStatsLog;
-Lcom/android/internal/util/FunctionalUtils$RemoteExceptionIgnoringConsumer;
-Lcom/android/internal/util/FunctionalUtils$ThrowingBiFunction;
-Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;
-Lcom/android/internal/util/FunctionalUtils$ThrowingFunction;
-Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;
-Lcom/android/internal/util/FunctionalUtils$ThrowingSupplier;
-Lcom/android/internal/util/FunctionalUtils;
-Lcom/android/internal/util/GrowingArrayUtils;
-Lcom/android/internal/util/HeavyHitterSketch$HeavyHitterSketchImpl;
-Lcom/android/internal/util/HeavyHitterSketch;
-Lcom/android/internal/util/HexDump;
-Lcom/android/internal/util/IState;
-Lcom/android/internal/util/ImageUtils;
-Lcom/android/internal/util/IndentingPrintWriter;
-Lcom/android/internal/util/IntPair;
-Lcom/android/internal/util/JournaledFile;
-Lcom/android/internal/util/LatencyTracker$$ExternalSyntheticLambda0;
-Lcom/android/internal/util/LatencyTracker$$ExternalSyntheticLambda1;
-Lcom/android/internal/util/LatencyTracker$$ExternalSyntheticLambda2;
-Lcom/android/internal/util/LatencyTracker$Action;
-Lcom/android/internal/util/LatencyTracker$ActionProperties;
-Lcom/android/internal/util/LatencyTracker$FrameworkStatsLogEvent-IA;
-Lcom/android/internal/util/LatencyTracker$FrameworkStatsLogEvent;
-Lcom/android/internal/util/LatencyTracker$SLatencyTrackerHolder;
-Lcom/android/internal/util/LatencyTracker$Session$$ExternalSyntheticLambda0;
-Lcom/android/internal/util/LatencyTracker$Session;
-Lcom/android/internal/util/LatencyTracker;
-Lcom/android/internal/util/LineBreakBufferedWriter;
-Lcom/android/internal/util/LocalLog;
-Lcom/android/internal/util/MemInfoReader;
-Lcom/android/internal/util/MessageUtils$DuplicateConstantError;
-Lcom/android/internal/util/MessageUtils;
-Lcom/android/internal/util/NotificationMessagingUtil$1;
-Lcom/android/internal/util/NotificationMessagingUtil;
-Lcom/android/internal/util/ObjectUtils;
-Lcom/android/internal/util/Parcelling$BuiltIn$ForBoolean;
-Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedString;
-Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringArray;
-Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringList;
-Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringSet;
-Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringValueMap;
-Lcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;
-Lcom/android/internal/util/Parcelling$BuiltIn$ForUUID;
-Lcom/android/internal/util/Parcelling$Cache;
-Lcom/android/internal/util/Parcelling;
-Lcom/android/internal/util/ParseUtils;
-Lcom/android/internal/util/PerfettoTrigger;
-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$$ExternalSyntheticLambda0;
-Lcom/android/internal/util/RingBuffer$$ExternalSyntheticLambda1;
-Lcom/android/internal/util/RingBuffer;
-Lcom/android/internal/util/RingBufferIndices;
-Lcom/android/internal/util/ScreenshotHelper$1;
-Lcom/android/internal/util/ScreenshotHelper$2;
-Lcom/android/internal/util/ScreenshotHelper;
-Lcom/android/internal/util/StatLogger;
-Lcom/android/internal/util/State;
-Lcom/android/internal/util/StateMachine$LogRec;
-Lcom/android/internal/util/StateMachine$LogRecords-IA;
-Lcom/android/internal/util/StateMachine$LogRecords;
-Lcom/android/internal/util/StateMachine$SmHandler$HaltingState-IA;
-Lcom/android/internal/util/StateMachine$SmHandler$HaltingState;
-Lcom/android/internal/util/StateMachine$SmHandler$QuittingState-IA;
-Lcom/android/internal/util/StateMachine$SmHandler$QuittingState;
-Lcom/android/internal/util/StateMachine$SmHandler$StateInfo;
-Lcom/android/internal/util/StateMachine$SmHandler-IA;
-Lcom/android/internal/util/StateMachine$SmHandler;
-Lcom/android/internal/util/StateMachine;
-Lcom/android/internal/util/StringPool;
-Lcom/android/internal/util/SyncResultReceiver$TimeoutException;
-Lcom/android/internal/util/SyncResultReceiver;
-Lcom/android/internal/util/ToBooleanFunction;
-Lcom/android/internal/util/TokenBucket;
-Lcom/android/internal/util/TraceBuffer$ProtoOutputStreamProvider-IA;
-Lcom/android/internal/util/TraceBuffer$ProtoOutputStreamProvider;
-Lcom/android/internal/util/TraceBuffer$ProtoProvider;
-Lcom/android/internal/util/TraceBuffer;
-Lcom/android/internal/util/UserIcons;
-Lcom/android/internal/util/VirtualRefBasePtr;
-Lcom/android/internal/util/WakeupMessage;
-Lcom/android/internal/util/XmlPullParserWrapper;
-Lcom/android/internal/util/XmlSerializerWrapper;
-Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;
-Lcom/android/internal/util/XmlUtils$ReadMapCallback;
-Lcom/android/internal/util/XmlUtils$WriteMapCallback;
-Lcom/android/internal/util/XmlUtils;
-Lcom/android/internal/util/dump/DualDumpOutputStream$DumpField;
-Lcom/android/internal/util/dump/DualDumpOutputStream$DumpObject;
-Lcom/android/internal/util/dump/DualDumpOutputStream$Dumpable;
-Lcom/android/internal/util/dump/DualDumpOutputStream;
-Lcom/android/internal/util/dump/DumpUtils;
-Lcom/android/internal/util/function/DecConsumer;
-Lcom/android/internal/util/function/DecFunction;
-Lcom/android/internal/util/function/DecPredicate;
-Lcom/android/internal/util/function/DodecConsumer;
-Lcom/android/internal/util/function/DodecFunction;
-Lcom/android/internal/util/function/DodecPredicate;
-Lcom/android/internal/util/function/HeptConsumer;
-Lcom/android/internal/util/function/HeptFunction;
-Lcom/android/internal/util/function/HeptPredicate;
-Lcom/android/internal/util/function/HexConsumer;
-Lcom/android/internal/util/function/HexFunction;
-Lcom/android/internal/util/function/HexPredicate;
-Lcom/android/internal/util/function/LongObjPredicate;
-Lcom/android/internal/util/function/NonaConsumer;
-Lcom/android/internal/util/function/NonaFunction;
-Lcom/android/internal/util/function/NonaPredicate;
-Lcom/android/internal/util/function/OctConsumer;
-Lcom/android/internal/util/function/OctFunction;
-Lcom/android/internal/util/function/OctPredicate;
-Lcom/android/internal/util/function/QuadConsumer;
-Lcom/android/internal/util/function/QuadFunction;
-Lcom/android/internal/util/function/QuadPredicate;
-Lcom/android/internal/util/function/QuintConsumer;
-Lcom/android/internal/util/function/QuintFunction;
-Lcom/android/internal/util/function/QuintPredicate;
-Lcom/android/internal/util/function/TriConsumer;
-Lcom/android/internal/util/function/TriFunction;
-Lcom/android/internal/util/function/TriPredicate;
-Lcom/android/internal/util/function/UndecConsumer;
-Lcom/android/internal/util/function/UndecFunction;
-Lcom/android/internal/util/function/UndecPredicate;
-Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;
-Lcom/android/internal/util/function/pooled/OmniFunction;
-Lcom/android/internal/util/function/pooled/PooledLambda;
-Lcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType$ReturnType;
-Lcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType;
-Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;
-Lcom/android/internal/util/function/pooled/PooledPredicate;
-Lcom/android/internal/util/function/pooled/PooledRunnable;
-Lcom/android/internal/util/function/pooled/PooledSupplier$OfDouble;
-Lcom/android/internal/util/function/pooled/PooledSupplier$OfInt;
-Lcom/android/internal/util/function/pooled/PooledSupplier$OfLong;
-Lcom/android/internal/util/function/pooled/PooledSupplier;
-Lcom/android/internal/view/ActionBarPolicy;
-Lcom/android/internal/view/AppearanceRegion$1;
-Lcom/android/internal/view/AppearanceRegion;
-Lcom/android/internal/view/BaseIWindow;
-Lcom/android/internal/view/BaseSurfaceHolder;
-Lcom/android/internal/view/FloatingActionMode$1;
-Lcom/android/internal/view/FloatingActionMode$2;
-Lcom/android/internal/view/FloatingActionMode$3;
-Lcom/android/internal/view/FloatingActionMode$FloatingToolbarVisibilityHelper;
-Lcom/android/internal/view/FloatingActionMode;
-Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;
-Lcom/android/internal/view/IInputMethodManager$Stub;
-Lcom/android/internal/view/IInputMethodManager;
-Lcom/android/internal/view/OneShotPreDrawListener;
-Lcom/android/internal/view/RootViewSurfaceTaker;
-Lcom/android/internal/view/RotationPolicy$1;
-Lcom/android/internal/view/RotationPolicy$RotationPolicyListener$1;
-Lcom/android/internal/view/RotationPolicy$RotationPolicyListener;
-Lcom/android/internal/view/RotationPolicy;
-Lcom/android/internal/view/SurfaceCallbackHelper$1;
-Lcom/android/internal/view/SurfaceCallbackHelper;
-Lcom/android/internal/view/TooltipPopup;
-Lcom/android/internal/view/WindowManagerPolicyThread;
-Lcom/android/internal/view/menu/ActionMenuItem;
-Lcom/android/internal/view/menu/ActionMenuItemView$ActionMenuItemForwardingListener;
-Lcom/android/internal/view/menu/ActionMenuItemView$PopupCallback;
-Lcom/android/internal/view/menu/ActionMenuItemView;
-Lcom/android/internal/view/menu/BaseMenuPresenter;
-Lcom/android/internal/view/menu/ContextMenuBuilder;
-Lcom/android/internal/view/menu/IconMenuPresenter;
-Lcom/android/internal/view/menu/ListMenuPresenter;
-Lcom/android/internal/view/menu/MenuBuilder$Callback;
-Lcom/android/internal/view/menu/MenuBuilder$ItemInvoker;
-Lcom/android/internal/view/menu/MenuBuilder;
-Lcom/android/internal/view/menu/MenuHelper;
-Lcom/android/internal/view/menu/MenuItemImpl;
-Lcom/android/internal/view/menu/MenuPopupHelper$1;
-Lcom/android/internal/view/menu/MenuPopupHelper;
-Lcom/android/internal/view/menu/MenuPresenter$Callback;
-Lcom/android/internal/view/menu/MenuPresenter;
-Lcom/android/internal/view/menu/MenuView$ItemView;
-Lcom/android/internal/view/menu/MenuView;
-Lcom/android/internal/view/menu/ShowableListMenu;
-Lcom/android/internal/view/menu/SubMenuBuilder;
-Lcom/android/internal/widget/AbsActionBarView$VisibilityAnimListener;
-Lcom/android/internal/widget/AbsActionBarView;
-Lcom/android/internal/widget/ActionBarContainer$ActionBarBackgroundDrawable;
-Lcom/android/internal/widget/ActionBarContainer;
-Lcom/android/internal/widget/ActionBarContextView;
-Lcom/android/internal/widget/ActionBarOverlayLayout$1;
-Lcom/android/internal/widget/ActionBarOverlayLayout$2;
-Lcom/android/internal/widget/ActionBarOverlayLayout$3;
-Lcom/android/internal/widget/ActionBarOverlayLayout$4;
-Lcom/android/internal/widget/ActionBarOverlayLayout$5;
-Lcom/android/internal/widget/ActionBarOverlayLayout$ActionBarVisibilityCallback;
-Lcom/android/internal/widget/ActionBarOverlayLayout$LayoutParams;
-Lcom/android/internal/widget/ActionBarOverlayLayout;
-Lcom/android/internal/widget/AlertDialogLayout;
-Lcom/android/internal/widget/AutoScrollHelper$AbsListViewAutoScroller;
-Lcom/android/internal/widget/AutoScrollHelper;
-Lcom/android/internal/widget/BackgroundFallback;
-Lcom/android/internal/widget/ButtonBarLayout;
-Lcom/android/internal/widget/CachingIconView;
-Lcom/android/internal/widget/ConversationLayout$1;
-Lcom/android/internal/widget/ConversationLayout$TouchDelegateComposite;
-Lcom/android/internal/widget/ConversationLayout;
-Lcom/android/internal/widget/DecorCaptionView;
-Lcom/android/internal/widget/DecorContentParent;
-Lcom/android/internal/widget/DecorToolbar;
-Lcom/android/internal/widget/DialogTitle;
-Lcom/android/internal/widget/ExploreByTouchHelper;
-Lcom/android/internal/widget/ICheckCredentialProgressCallback$Stub$Proxy;
-Lcom/android/internal/widget/ICheckCredentialProgressCallback$Stub;
-Lcom/android/internal/widget/ICheckCredentialProgressCallback;
-Lcom/android/internal/widget/ILockSettings$Stub$Proxy;
-Lcom/android/internal/widget/ILockSettings$Stub;
-Lcom/android/internal/widget/ILockSettings;
-Lcom/android/internal/widget/IMessagingLayout;
-Lcom/android/internal/widget/ImageFloatingTextView;
-Lcom/android/internal/widget/ImageMessageConsumer;
-Lcom/android/internal/widget/ImageResolver;
-Lcom/android/internal/widget/LockPatternChecker$2;
-Lcom/android/internal/widget/LockPatternChecker$OnCheckCallback;
-Lcom/android/internal/widget/LockPatternChecker;
-Lcom/android/internal/widget/LockPatternUtils$1;
-Lcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;
-Lcom/android/internal/widget/LockPatternUtils$RequestThrottledException;
-Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$1;
-Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$H;
-Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;
-Lcom/android/internal/widget/LockPatternUtils$WrappedCallback;
-Lcom/android/internal/widget/LockPatternUtils;
-Lcom/android/internal/widget/LockPatternView$Cell;
-Lcom/android/internal/widget/LockSettingsInternal;
-Lcom/android/internal/widget/LockscreenCredential$1;
-Lcom/android/internal/widget/LockscreenCredential;
-Lcom/android/internal/widget/MessagingGroup$1;
-Lcom/android/internal/widget/MessagingGroup;
-Lcom/android/internal/widget/MessagingImageMessage;
-Lcom/android/internal/widget/MessagingLayout;
-Lcom/android/internal/widget/MessagingLinearLayout$LayoutParams;
-Lcom/android/internal/widget/MessagingLinearLayout$MessagingChild;
-Lcom/android/internal/widget/MessagingLinearLayout;
-Lcom/android/internal/widget/MessagingMessage;
-Lcom/android/internal/widget/MessagingMessageState;
-Lcom/android/internal/widget/MessagingPool;
-Lcom/android/internal/widget/MessagingPropertyAnimator$$ExternalSyntheticLambda0;
-Lcom/android/internal/widget/MessagingPropertyAnimator$1;
-Lcom/android/internal/widget/MessagingPropertyAnimator$2;
-Lcom/android/internal/widget/MessagingPropertyAnimator;
-Lcom/android/internal/widget/MessagingTextMessage;
-Lcom/android/internal/widget/NotificationActionListLayout$$ExternalSyntheticLambda0;
-Lcom/android/internal/widget/NotificationActionListLayout;
-Lcom/android/internal/widget/NotificationExpandButton;
-Lcom/android/internal/widget/NotificationOptimizedLinearLayout;
-Lcom/android/internal/widget/ObservableTextView;
-Lcom/android/internal/widget/PasswordValidationError;
-Lcom/android/internal/widget/RemeasuringLinearLayout;
-Lcom/android/internal/widget/ScrollBarUtils;
-Lcom/android/internal/widget/ScrollingTabContainerView;
-Lcom/android/internal/widget/ToolbarWidgetWrapper$1;
-Lcom/android/internal/widget/ToolbarWidgetWrapper;
-Lcom/android/internal/widget/VerifyCredentialResponse$1;
-Lcom/android/internal/widget/VerifyCredentialResponse$Builder;
-Lcom/android/internal/widget/VerifyCredentialResponse;
-Lcom/android/internal/widget/ViewClippingUtil$ClippingParameters;
-Lcom/android/internal/widget/ViewClippingUtil;
-Lcom/android/internal/widget/floatingtoolbar/FloatingToolbar$$ExternalSyntheticLambda0;
-Lcom/android/internal/widget/floatingtoolbar/FloatingToolbar$$ExternalSyntheticLambda1;
-Lcom/android/internal/widget/floatingtoolbar/FloatingToolbar;
-Lcom/android/internal/widget/floatingtoolbar/FloatingToolbarPopup;
-Lcom/android/media/flags/Flags;
-Lcom/android/modules/expresslog/Counter;
-Lcom/android/modules/expresslog/MetricIds;
-Lcom/android/modules/expresslog/StatsExpressLog;
-Lcom/android/modules/utils/BasicShellCommandHandler;
-Lcom/android/modules/utils/TypedXmlPullParser;
-Lcom/android/modules/utils/TypedXmlSerializer;
-Lcom/android/net/module/util/BitUtils;
-Lcom/android/net/module/util/Inet4AddressUtils;
-Lcom/android/net/module/util/InetAddressUtils;
-Lcom/android/net/module/util/IpRange;
-Lcom/android/net/module/util/LinkPropertiesUtils$CompareOrUpdateResult;
-Lcom/android/net/module/util/LinkPropertiesUtils$CompareResult;
-Lcom/android/net/module/util/LinkPropertiesUtils;
-Lcom/android/net/module/util/MacAddressUtils;
-Lcom/android/net/module/util/NetUtils;
-Lcom/android/net/module/util/NetworkCapabilitiesUtils;
-Lcom/android/net/module/util/NetworkIdentityUtils;
-Lcom/android/net/module/util/NetworkStackConstants;
-Lcom/android/net/module/util/ProxyUtils;
-Lcom/android/okhttp/Address;
-Lcom/android/okhttp/AndroidInternal;
-Lcom/android/okhttp/AndroidShimResponseCache;
-Lcom/android/okhttp/Authenticator;
-Lcom/android/okhttp/Cache$1;
-Lcom/android/okhttp/Cache$CacheResponseBody$1;
-Lcom/android/okhttp/Cache$CacheResponseBody;
-Lcom/android/okhttp/Cache$Entry;
-Lcom/android/okhttp/Cache;
-Lcom/android/okhttp/CacheControl$Builder;
-Lcom/android/okhttp/CacheControl;
-Lcom/android/okhttp/CertificatePinner$Builder;
-Lcom/android/okhttp/CertificatePinner;
-Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/ConfigAwareConnectionPool$1;
-Lcom/android/okhttp/ConfigAwareConnectionPool;
-Lcom/android/okhttp/Connection;
-Lcom/android/okhttp/ConnectionPool$1;
-Lcom/android/okhttp/ConnectionPool;
-Lcom/android/okhttp/ConnectionSpec$1;
-Lcom/android/okhttp/ConnectionSpec$Builder;
-Lcom/android/okhttp/ConnectionSpec;
-Lcom/android/okhttp/ConnectionSpecs;
-Lcom/android/okhttp/Dispatcher;
-Lcom/android/okhttp/Dns$1;
-Lcom/android/okhttp/Dns;
-Lcom/android/okhttp/Handshake;
-Lcom/android/okhttp/Headers$1;
-Lcom/android/okhttp/Headers$Builder;
-Lcom/android/okhttp/Headers;
-Lcom/android/okhttp/HttpHandler$CleartextURLFilter;
-Lcom/android/okhttp/HttpHandler;
-Lcom/android/okhttp/HttpUrl$1;
-Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
-Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl;
-Lcom/android/okhttp/Interceptor$Chain;
-Lcom/android/okhttp/MediaType;
-Lcom/android/okhttp/OkCacheContainer;
-Lcom/android/okhttp/OkHttpClient$1;
-Lcom/android/okhttp/OkHttpClient;
-Lcom/android/okhttp/OkUrlFactories;
-Lcom/android/okhttp/OkUrlFactory;
-Lcom/android/okhttp/Protocol;
-Lcom/android/okhttp/Request$1;
-Lcom/android/okhttp/Request$Builder;
-Lcom/android/okhttp/Request;
-Lcom/android/okhttp/RequestBody$2;
-Lcom/android/okhttp/RequestBody;
-Lcom/android/okhttp/Response$1;
-Lcom/android/okhttp/Response$Builder;
-Lcom/android/okhttp/Response;
-Lcom/android/okhttp/ResponseBody;
-Lcom/android/okhttp/Route;
-Lcom/android/okhttp/TlsVersion;
-Lcom/android/okhttp/internal/ConnectionSpecSelector;
-Lcom/android/okhttp/internal/DiskLruCache$1;
-Lcom/android/okhttp/internal/DiskLruCache$4;
-Lcom/android/okhttp/internal/DiskLruCache$Editor;
-Lcom/android/okhttp/internal/DiskLruCache$Entry;
-Lcom/android/okhttp/internal/DiskLruCache;
-Lcom/android/okhttp/internal/FaultHidingSink;
-Lcom/android/okhttp/internal/Internal;
-Lcom/android/okhttp/internal/InternalCache;
-Lcom/android/okhttp/internal/NamedRunnable;
-Lcom/android/okhttp/internal/OptionalMethod;
-Lcom/android/okhttp/internal/Platform;
-Lcom/android/okhttp/internal/RouteDatabase;
-Lcom/android/okhttp/internal/URLFilter;
-Lcom/android/okhttp/internal/Util$1;
-Lcom/android/okhttp/internal/Util;
-Lcom/android/okhttp/internal/Version;
-Lcom/android/okhttp/internal/framed/FrameWriter;
-Lcom/android/okhttp/internal/framed/FramedConnection$1;
-Lcom/android/okhttp/internal/framed/FramedConnection$Builder;
-Lcom/android/okhttp/internal/framed/FramedConnection$Listener$1;
-Lcom/android/okhttp/internal/framed/FramedConnection$Listener;
-Lcom/android/okhttp/internal/framed/FramedConnection;
-Lcom/android/okhttp/internal/framed/Header;
-Lcom/android/okhttp/internal/framed/PushObserver$1;
-Lcom/android/okhttp/internal/framed/PushObserver;
-Lcom/android/okhttp/internal/framed/Settings;
-Lcom/android/okhttp/internal/http/AuthenticatorAdapter;
-Lcom/android/okhttp/internal/http/CacheRequest;
-Lcom/android/okhttp/internal/http/CacheStrategy$1;
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;
-Lcom/android/okhttp/internal/http/CacheStrategy;
-Lcom/android/okhttp/internal/http/HeaderParser;
-Lcom/android/okhttp/internal/http/Http1xStream$1;
-Lcom/android/okhttp/internal/http/Http1xStream$AbstractSource;
-Lcom/android/okhttp/internal/http/Http1xStream$ChunkedSink;
-Lcom/android/okhttp/internal/http/Http1xStream$ChunkedSource;
-Lcom/android/okhttp/internal/http/Http1xStream$FixedLengthSink;
-Lcom/android/okhttp/internal/http/Http1xStream$FixedLengthSource;
-Lcom/android/okhttp/internal/http/Http1xStream;
-Lcom/android/okhttp/internal/http/Http2xStream;
-Lcom/android/okhttp/internal/http/HttpDate$1;
-Lcom/android/okhttp/internal/http/HttpDate;
-Lcom/android/okhttp/internal/http/HttpEngine$1;
-Lcom/android/okhttp/internal/http/HttpEngine$2;
-Lcom/android/okhttp/internal/http/HttpEngine$NetworkInterceptorChain;
-Lcom/android/okhttp/internal/http/HttpEngine;
-Lcom/android/okhttp/internal/http/HttpMethod;
-Lcom/android/okhttp/internal/http/HttpStream;
-Lcom/android/okhttp/internal/http/OkHeaders$1;
-Lcom/android/okhttp/internal/http/OkHeaders;
-Lcom/android/okhttp/internal/http/RealResponseBody;
-Lcom/android/okhttp/internal/http/RequestException;
-Lcom/android/okhttp/internal/http/RequestLine;
-Lcom/android/okhttp/internal/http/RetryableSink;
-Lcom/android/okhttp/internal/http/RouteException;
-Lcom/android/okhttp/internal/http/RouteSelector;
-Lcom/android/okhttp/internal/http/StatusLine;
-Lcom/android/okhttp/internal/http/StreamAllocation;
-Lcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;
-Lcom/android/okhttp/internal/huc/HttpURLConnectionImpl;
-Lcom/android/okhttp/internal/io/FileSystem$1;
-Lcom/android/okhttp/internal/io/FileSystem;
-Lcom/android/okhttp/internal/io/RealConnection;
-Lcom/android/okhttp/internal/tls/CertificateChainCleaner;
-Lcom/android/okhttp/internal/tls/OkHostnameVerifier;
-Lcom/android/okhttp/internal/tls/RealTrustRootIndex;
-Lcom/android/okhttp/internal/tls/TrustRootIndex;
-Lcom/android/okhttp/internalandroidapi/AndroidResponseCacheAdapter;
-Lcom/android/okhttp/internalandroidapi/Dns;
-Lcom/android/okhttp/internalandroidapi/HasCacheHolder$CacheHolder;
-Lcom/android/okhttp/internalandroidapi/HasCacheHolder;
-Lcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory$DnsAdapter;
-Lcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;
-Lcom/android/okhttp/okio/AsyncTimeout$1;
-Lcom/android/okhttp/okio/AsyncTimeout$2;
-Lcom/android/okhttp/okio/AsyncTimeout$Watchdog;
-Lcom/android/okhttp/okio/AsyncTimeout;
-Lcom/android/okhttp/okio/Buffer;
-Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSource;
-Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/ForwardingSink;
-Lcom/android/okhttp/okio/ForwardingSource;
-Lcom/android/okhttp/okio/ForwardingTimeout;
-Lcom/android/okhttp/okio/GzipSource;
-Lcom/android/okhttp/okio/InflaterSource;
-Lcom/android/okhttp/okio/Okio$1;
-Lcom/android/okhttp/okio/Okio$2;
-Lcom/android/okhttp/okio/Okio$3;
-Lcom/android/okhttp/okio/Okio;
-Lcom/android/okhttp/okio/RealBufferedSink$1;
-Lcom/android/okhttp/okio/RealBufferedSink;
-Lcom/android/okhttp/okio/RealBufferedSource;
-Lcom/android/okhttp/okio/Segment;
-Lcom/android/okhttp/okio/SegmentPool;
-Lcom/android/okhttp/okio/Sink;
-Lcom/android/okhttp/okio/Source;
-Lcom/android/okhttp/okio/Timeout$1;
-Lcom/android/okhttp/okio/Timeout;
-Lcom/android/okhttp/okio/Util;
-Lcom/android/org/bouncycastle/asn1/ASN1ApplicationSpecific;
-Lcom/android/org/bouncycastle/asn1/ASN1BitString;
-Lcom/android/org/bouncycastle/asn1/ASN1Boolean;
-Lcom/android/org/bouncycastle/asn1/ASN1Choice;
-Lcom/android/org/bouncycastle/asn1/ASN1Encodable;
-Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;
-Lcom/android/org/bouncycastle/asn1/ASN1Enumerated;
-Lcom/android/org/bouncycastle/asn1/ASN1Exception;
-Lcom/android/org/bouncycastle/asn1/ASN1External;
-Lcom/android/org/bouncycastle/asn1/ASN1GeneralizedTime;
-Lcom/android/org/bouncycastle/asn1/ASN1InputStream;
-Lcom/android/org/bouncycastle/asn1/ASN1Integer;
-Lcom/android/org/bouncycastle/asn1/ASN1Object;
-Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier$OidHandle;
-Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;
-Lcom/android/org/bouncycastle/asn1/ASN1OctetString;
-Lcom/android/org/bouncycastle/asn1/ASN1OctetStringParser;
-Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;
-Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
-Lcom/android/org/bouncycastle/asn1/ASN1Sequence$1;
-Lcom/android/org/bouncycastle/asn1/ASN1Sequence;
-Lcom/android/org/bouncycastle/asn1/ASN1SequenceParser;
-Lcom/android/org/bouncycastle/asn1/ASN1Set$1;
-Lcom/android/org/bouncycastle/asn1/ASN1Set;
-Lcom/android/org/bouncycastle/asn1/ASN1SetParser;
-Lcom/android/org/bouncycastle/asn1/ASN1StreamParser;
-Lcom/android/org/bouncycastle/asn1/ASN1String;
-Lcom/android/org/bouncycastle/asn1/ASN1TaggedObject;
-Lcom/android/org/bouncycastle/asn1/ASN1UTCTime;
-Lcom/android/org/bouncycastle/asn1/BERApplicationSpecific;
-Lcom/android/org/bouncycastle/asn1/BERApplicationSpecificParser;
-Lcom/android/org/bouncycastle/asn1/BEROctetString;
-Lcom/android/org/bouncycastle/asn1/BEROctetStringParser;
-Lcom/android/org/bouncycastle/asn1/BERSequence;
-Lcom/android/org/bouncycastle/asn1/BERSequenceParser;
-Lcom/android/org/bouncycastle/asn1/BERSet;
-Lcom/android/org/bouncycastle/asn1/BERSetParser;
-Lcom/android/org/bouncycastle/asn1/BERTaggedObjectParser;
-Lcom/android/org/bouncycastle/asn1/ConstructedOctetStream;
-Lcom/android/org/bouncycastle/asn1/DERBMPString;
-Lcom/android/org/bouncycastle/asn1/DERBitString;
-Lcom/android/org/bouncycastle/asn1/DERExternalParser;
-Lcom/android/org/bouncycastle/asn1/DERGeneralString;
-Lcom/android/org/bouncycastle/asn1/DERGraphicString;
-Lcom/android/org/bouncycastle/asn1/DERIA5String;
-Lcom/android/org/bouncycastle/asn1/DERNull;
-Lcom/android/org/bouncycastle/asn1/DERNumericString;
-Lcom/android/org/bouncycastle/asn1/DEROctetString;
-Lcom/android/org/bouncycastle/asn1/DEROutputStream;
-Lcom/android/org/bouncycastle/asn1/DERPrintableString;
-Lcom/android/org/bouncycastle/asn1/DERSequence;
-Lcom/android/org/bouncycastle/asn1/DERSet;
-Lcom/android/org/bouncycastle/asn1/DERT61String;
-Lcom/android/org/bouncycastle/asn1/DERTaggedObject;
-Lcom/android/org/bouncycastle/asn1/DERUTF8String;
-Lcom/android/org/bouncycastle/asn1/DERUniversalString;
-Lcom/android/org/bouncycastle/asn1/DERVideotexString;
-Lcom/android/org/bouncycastle/asn1/DERVisibleString;
-Lcom/android/org/bouncycastle/asn1/DLApplicationSpecific;
-Lcom/android/org/bouncycastle/asn1/DLBitString;
-Lcom/android/org/bouncycastle/asn1/DLExternal;
-Lcom/android/org/bouncycastle/asn1/DLFactory;
-Lcom/android/org/bouncycastle/asn1/DLSequence;
-Lcom/android/org/bouncycastle/asn1/DLSet;
-Lcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;
-Lcom/android/org/bouncycastle/asn1/InMemoryRepresentable;
-Lcom/android/org/bouncycastle/asn1/IndefiniteLengthInputStream;
-Lcom/android/org/bouncycastle/asn1/LazyEncodedSequence;
-Lcom/android/org/bouncycastle/asn1/LimitedInputStream;
-Lcom/android/org/bouncycastle/asn1/StreamUtil;
-Lcom/android/org/bouncycastle/asn1/bc/BCObjectIdentifiers;
-Lcom/android/org/bouncycastle/asn1/misc/MiscObjectIdentifiers;
-Lcom/android/org/bouncycastle/asn1/nist/NISTObjectIdentifiers;
-Lcom/android/org/bouncycastle/asn1/oiw/OIWObjectIdentifiers;
-Lcom/android/org/bouncycastle/asn1/pkcs/PKCSObjectIdentifiers;
-Lcom/android/org/bouncycastle/asn1/x500/X500Name;
-Lcom/android/org/bouncycastle/asn1/x500/style/AbstractX500NameStyle;
-Lcom/android/org/bouncycastle/asn1/x500/style/BCStyle;
-Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;
-Lcom/android/org/bouncycastle/asn1/x509/Certificate;
-Lcom/android/org/bouncycastle/asn1/x509/DSAParameter;
-Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
-Lcom/android/org/bouncycastle/asn1/x509/Time;
-Lcom/android/org/bouncycastle/asn1/x509/X509Name;
-Lcom/android/org/bouncycastle/asn1/x509/X509ObjectIdentifiers;
-Lcom/android/org/bouncycastle/asn1/x9/X9ECParameters;
-Lcom/android/org/bouncycastle/asn1/x9/X9ObjectIdentifiers;
-Lcom/android/org/bouncycastle/crypto/BlockCipher;
-Lcom/android/org/bouncycastle/crypto/BufferedBlockCipher;
-Lcom/android/org/bouncycastle/crypto/CipherParameters;
-Lcom/android/org/bouncycastle/crypto/CryptoException;
-Lcom/android/org/bouncycastle/crypto/CryptoServicesPermission;
-Lcom/android/org/bouncycastle/crypto/CryptoServicesRegistrar$Property;
-Lcom/android/org/bouncycastle/crypto/CryptoServicesRegistrar;
-Lcom/android/org/bouncycastle/crypto/DataLengthException;
-Lcom/android/org/bouncycastle/crypto/Digest;
-Lcom/android/org/bouncycastle/crypto/ExtendedDigest;
-Lcom/android/org/bouncycastle/crypto/InvalidCipherTextException;
-Lcom/android/org/bouncycastle/crypto/Mac;
-Lcom/android/org/bouncycastle/crypto/OutputLengthException;
-Lcom/android/org/bouncycastle/crypto/PBEParametersGenerator;
-Lcom/android/org/bouncycastle/crypto/RuntimeCryptoException;
-Lcom/android/org/bouncycastle/crypto/Wrapper;
-Lcom/android/org/bouncycastle/crypto/digests/AndroidDigestFactory;
-Lcom/android/org/bouncycastle/crypto/digests/AndroidDigestFactoryBouncyCastle;
-Lcom/android/org/bouncycastle/crypto/digests/AndroidDigestFactoryOpenSSL;
-Lcom/android/org/bouncycastle/crypto/digests/EncodableDigest;
-Lcom/android/org/bouncycastle/crypto/digests/GeneralDigest;
-Lcom/android/org/bouncycastle/crypto/digests/LongDigest;
-Lcom/android/org/bouncycastle/crypto/digests/MD5Digest;
-Lcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$MD5;
-Lcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA1;
-Lcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA224;
-Lcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA256;
-Lcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA384;
-Lcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA512;
-Lcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;
-Lcom/android/org/bouncycastle/crypto/digests/SHA1Digest;
-Lcom/android/org/bouncycastle/crypto/digests/SHA224Digest;
-Lcom/android/org/bouncycastle/crypto/digests/SHA256Digest;
-Lcom/android/org/bouncycastle/crypto/digests/SHA384Digest;
-Lcom/android/org/bouncycastle/crypto/digests/SHA512Digest;
-Lcom/android/org/bouncycastle/crypto/engines/AESEngine;
-Lcom/android/org/bouncycastle/crypto/engines/DESEngine;
-Lcom/android/org/bouncycastle/crypto/generators/OpenSSLPBEParametersGenerator;
-Lcom/android/org/bouncycastle/crypto/generators/PKCS12ParametersGenerator;
-Lcom/android/org/bouncycastle/crypto/generators/PKCS5S1ParametersGenerator;
-Lcom/android/org/bouncycastle/crypto/generators/PKCS5S2ParametersGenerator;
-Lcom/android/org/bouncycastle/crypto/io/MacInputStream;
-Lcom/android/org/bouncycastle/crypto/macs/HMac;
-Lcom/android/org/bouncycastle/crypto/modes/AEADBlockCipher;
-Lcom/android/org/bouncycastle/crypto/modes/CBCBlockCipher;
-Lcom/android/org/bouncycastle/crypto/paddings/BlockCipherPadding;
-Lcom/android/org/bouncycastle/crypto/paddings/PKCS7Padding;
-Lcom/android/org/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;
-Lcom/android/org/bouncycastle/crypto/params/AEADParameters;
-Lcom/android/org/bouncycastle/crypto/params/AsymmetricKeyParameter;
-Lcom/android/org/bouncycastle/crypto/params/DHParameters;
-Lcom/android/org/bouncycastle/crypto/params/DHValidationParameters;
-Lcom/android/org/bouncycastle/crypto/params/DSAKeyParameters;
-Lcom/android/org/bouncycastle/crypto/params/DSAParameters;
-Lcom/android/org/bouncycastle/crypto/params/DSAPublicKeyParameters;
-Lcom/android/org/bouncycastle/crypto/params/DSAValidationParameters;
-Lcom/android/org/bouncycastle/crypto/params/KeyParameter;
-Lcom/android/org/bouncycastle/crypto/params/ParametersWithIV;
-Lcom/android/org/bouncycastle/crypto/params/ParametersWithRandom;
-Lcom/android/org/bouncycastle/jcajce/PKCS12Key;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/DH$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/DH;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/DSA$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/RSA$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/RSA;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/dh/KeyFactorySpi;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/DSAUtil;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/KeyFactorySpi;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/CipherSpi$NoPadding;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/KeyFactorySpi;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/RSAUtil;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/BaseCipherSpi;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/BaseKeyFactorySpi;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/KeyUtil;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/CertificateFactory;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/PEMUtil$Boundaries;
-Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/PEMUtil;
-Lcom/android/org/bouncycastle/jcajce/provider/config/ConfigurableProvider;
-Lcom/android/org/bouncycastle/jcajce/provider/config/ProviderConfiguration;
-Lcom/android/org/bouncycastle/jcajce/provider/config/ProviderConfigurationPermission;
-Lcom/android/org/bouncycastle/jcajce/provider/digest/DigestAlgorithmProvider;
-Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA1$Mappings$$ExternalSyntheticOutline0;
-Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA1$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA1;
-Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA224$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA224;
-Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA256$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA256;
-Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA384$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA384;
-Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA512$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA512;
-Lcom/android/org/bouncycastle/jcajce/provider/keystore/BC$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/keystore/PKCS12$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$Std;
-Lcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$StoreEntry;
-Lcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/AES$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/AES;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/ARC4$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/ARC4;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/Blowfish$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/Blowfish;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/DES$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/DES;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/DESede$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/DESede;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2$BasePBKDF2;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2$BasePBKDF2WithHmacSHA1;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2$PBKDF2WithHmacSHA1UTF8;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPKCS12$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPKCS12;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBES2AlgorithmParameters$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBES2AlgorithmParameters;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/RC2$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/RC2;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/SymmetricAlgorithmProvider;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/Twofish$Mappings;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/Twofish;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$AEADGenericBlockCipher;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$GenericBlockCipher;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseSecretKeyFactory;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseWrapCipher$ErasableOutputStream;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseWrapCipher$InvalidKeyOrParametersException;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseWrapCipher;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/ClassUtil$1;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/ClassUtil;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/GcmSpecUtil$2;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/GcmSpecUtil;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util;
-Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE;
-Lcom/android/org/bouncycastle/jcajce/provider/util/AlgorithmProvider;
-Lcom/android/org/bouncycastle/jcajce/provider/util/AsymmetricAlgorithmProvider;
-Lcom/android/org/bouncycastle/jcajce/provider/util/AsymmetricKeyInfoConverter;
-Lcom/android/org/bouncycastle/jcajce/provider/util/DigestFactory;
-Lcom/android/org/bouncycastle/jcajce/spec/PBKDF2KeySpec;
-Lcom/android/org/bouncycastle/jcajce/util/BCJcaJceHelper;
-Lcom/android/org/bouncycastle/jcajce/util/DefaultJcaJceHelper;
-Lcom/android/org/bouncycastle/jcajce/util/JcaJceHelper;
-Lcom/android/org/bouncycastle/jce/X509Principal;
-Lcom/android/org/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
-Lcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider$1;
-Lcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider$PrivateProvider;
-Lcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider;
-Lcom/android/org/bouncycastle/jce/provider/BouncyCastleProviderConfiguration;
-Lcom/android/org/bouncycastle/jce/provider/CertStoreCollectionSpi;
-Lcom/android/org/bouncycastle/jce/provider/X509CRLObject;
-Lcom/android/org/bouncycastle/util/Arrays;
-Lcom/android/org/bouncycastle/util/BigIntegers;
-Lcom/android/org/bouncycastle/util/Integers;
-Lcom/android/org/bouncycastle/util/Memoable;
-Lcom/android/org/bouncycastle/util/Pack;
-Lcom/android/org/bouncycastle/util/Properties$1;
-Lcom/android/org/bouncycastle/util/Properties;
-Lcom/android/org/bouncycastle/util/Strings$1;
-Lcom/android/org/bouncycastle/util/Strings;
-Lcom/android/org/bouncycastle/util/encoders/Hex;
-Lcom/android/org/bouncycastle/util/encoders/HexEncoder;
-Lcom/android/org/bouncycastle/util/io/Streams;
-Lcom/android/org/kxml2/io/KXmlParser$ContentSource;
-Lcom/android/org/kxml2/io/KXmlParser$ValueContext;
-Lcom/android/phone/ecc/nano/CodedInputByteBufferNano;
-Lcom/android/phone/ecc/nano/CodedOutputByteBufferNano$OutOfSpaceException;
-Lcom/android/phone/ecc/nano/CodedOutputByteBufferNano;
-Lcom/android/phone/ecc/nano/ExtendableMessageNano;
-Lcom/android/phone/ecc/nano/FieldArray;
-Lcom/android/phone/ecc/nano/FieldData;
-Lcom/android/phone/ecc/nano/InternalNano;
-Lcom/android/phone/ecc/nano/InvalidProtocolBufferNanoException;
-Lcom/android/phone/ecc/nano/MessageNano;
-Lcom/android/phone/ecc/nano/MessageNanoPrinter;
-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/UnknownFieldData;
-Lcom/android/phone/ecc/nano/WireFormatNano;
-Lcom/android/sdksandbox/flags/Flags;
-Lcom/android/server/AppWidgetBackupBridge;
-Lcom/android/server/LocalServices;
-Lcom/android/server/WidgetBackupProvider;
-Lcom/android/server/am/nano/Capabilities;
-Lcom/android/server/am/nano/Capability;
-Lcom/android/server/backup/AccountManagerBackupHelper;
-Lcom/android/server/backup/AccountSyncSettingsBackupHelper;
-Lcom/android/server/backup/NotificationBackupHelper;
-Lcom/android/server/backup/PermissionBackupHelper;
-Lcom/android/server/backup/PreferredActivityBackupHelper;
-Lcom/android/server/backup/ShortcutBackupHelper;
-Lcom/android/server/backup/SliceBackupHelper;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfProgramEvent;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfStatistics;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ConnectStatistics;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DHCPEvent;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DNSLatencies;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DNSLookupBatch;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DefaultNetworkEvent;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityLog;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpProvisioningEvent;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpReachabilityEvent;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$NetworkEvent;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$NetworkId;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$NetworkStats;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$Pair;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$RaEvent;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ValidationProbeEvent;
-Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$WakeupStats;
-Lcom/android/server/criticalevents/nano/CriticalEventLogProto;
-Lcom/android/server/criticalevents/nano/CriticalEventLogStorageProto;
-Lcom/android/server/criticalevents/nano/CriticalEventProto$AppNotResponding;
-Lcom/android/server/criticalevents/nano/CriticalEventProto$HalfWatchdog;
-Lcom/android/server/criticalevents/nano/CriticalEventProto$InstallPackages;
-Lcom/android/server/criticalevents/nano/CriticalEventProto$JavaCrash;
-Lcom/android/server/criticalevents/nano/CriticalEventProto$NativeCrash;
-Lcom/android/server/criticalevents/nano/CriticalEventProto$SystemServerStarted;
-Lcom/android/server/criticalevents/nano/CriticalEventProto$Watchdog;
-Lcom/android/server/job/JobSchedulerInternal$JobStorePersistStats;
-Lcom/android/server/net/BaseNetdEventCallback;
-Lcom/android/server/net/BaseNetworkObserver;
-Lcom/android/server/sip/SipHelper;
-Lcom/android/server/sip/SipService$ConnectivityReceiver$1;
-Lcom/android/server/sip/SipService$ConnectivityReceiver;
-Lcom/android/server/sip/SipService$MyExecutor;
-Lcom/android/server/sip/SipService$SipAutoReg;
-Lcom/android/server/sip/SipService$SipKeepAliveProcessCallback;
-Lcom/android/server/sip/SipService$SipSessionGroupExt;
-Lcom/android/server/sip/SipService;
-Lcom/android/server/sip/SipSessionGroup$KeepAliveProcessCallback;
-Lcom/android/server/sip/SipSessionGroup$KeepAliveProcessCallbackProxy$1;
-Lcom/android/server/sip/SipSessionGroup$KeepAliveProcessCallbackProxy$2;
-Lcom/android/server/sip/SipSessionGroup$KeepAliveProcessCallbackProxy;
-Lcom/android/server/sip/SipSessionGroup$MakeCallCommand;
-Lcom/android/server/sip/SipSessionGroup$RegisterCommand;
-Lcom/android/server/sip/SipSessionGroup$SipSessionCallReceiverImpl;
-Lcom/android/server/sip/SipSessionGroup$SipSessionImpl$1;
-Lcom/android/server/sip/SipSessionGroup$SipSessionImpl$2$1;
-Lcom/android/server/sip/SipSessionGroup$SipSessionImpl$2;
-Lcom/android/server/sip/SipSessionGroup$SipSessionImpl$SessionTimer$1;
-Lcom/android/server/sip/SipSessionGroup$SipSessionImpl$SessionTimer;
-Lcom/android/server/sip/SipSessionGroup$SipSessionImpl$SipKeepAlive;
-Lcom/android/server/sip/SipSessionGroup$SipSessionImpl;
-Lcom/android/server/sip/SipSessionGroup;
-Lcom/android/server/sip/SipSessionListenerProxy$10;
-Lcom/android/server/sip/SipSessionListenerProxy$11;
-Lcom/android/server/sip/SipSessionListenerProxy$12;
-Lcom/android/server/sip/SipSessionListenerProxy$13;
-Lcom/android/server/sip/SipSessionListenerProxy$1;
-Lcom/android/server/sip/SipSessionListenerProxy$2;
-Lcom/android/server/sip/SipSessionListenerProxy$3;
-Lcom/android/server/sip/SipSessionListenerProxy$4;
-Lcom/android/server/sip/SipSessionListenerProxy$5;
-Lcom/android/server/sip/SipSessionListenerProxy$6;
-Lcom/android/server/sip/SipSessionListenerProxy$7;
-Lcom/android/server/sip/SipSessionListenerProxy$8;
-Lcom/android/server/sip/SipSessionListenerProxy$9;
-Lcom/android/server/sip/SipSessionListenerProxy;
-Lcom/android/server/sip/SipWakeLock;
-Lcom/android/server/sip/SipWakeupTimer$MyEvent;
-Lcom/android/server/sip/SipWakeupTimer$MyEventComparator;
-Lcom/android/server/sip/SipWakeupTimer;
-Lcom/android/server/usage/AppStandbyInternal$AppIdleStateChangeListener;
-Lcom/android/server/usage/AppStandbyInternal;
-Lcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;
-Lcom/android/service/ims/RcsSettingUtils$$ExternalSyntheticLambda0;
-Lcom/android/service/ims/RcsSettingUtils;
-Lcom/android/service/ims/Task;
-Lcom/android/service/ims/TaskManager$MessageData;
-Lcom/android/service/ims/TaskManager$MessageHandler;
-Lcom/android/service/ims/TaskManager;
-Lcom/android/service/ims/presence/ContactCapabilityResponse;
-Lcom/android/service/ims/presence/PresenceAvailabilityTask;
-Lcom/android/service/ims/presence/PresenceBase$PresencePublishState;
-Lcom/android/service/ims/presence/PresenceBase;
-Lcom/android/service/ims/presence/PresenceCapabilityTask;
-Lcom/android/service/ims/presence/PresencePublication$$ExternalSyntheticLambda0;
-Lcom/android/service/ims/presence/PresencePublication$1;
-Lcom/android/service/ims/presence/PresencePublication$PublishRequest;
-Lcom/android/service/ims/presence/PresencePublication$PublishType;
-Lcom/android/service/ims/presence/PresencePublication$StackPublishTriggerType;
-Lcom/android/service/ims/presence/PresencePublication;
-Lcom/android/service/ims/presence/PresencePublishTask;
-Lcom/android/service/ims/presence/PresencePublisher;
-Lcom/android/service/ims/presence/PresenceSubscriber;
-Lcom/android/service/ims/presence/PresenceTask;
-Lcom/android/service/ims/presence/PresenceUtils;
-Lcom/android/service/ims/presence/SubscribePublisher;
-Lcom/android/service/nano/StringListParamProto;
-Lcom/android/telephony/Rlog;
-Lcom/android/text/flags/FeatureFlags;
-Lcom/android/text/flags/FeatureFlagsImpl;
-Lcom/android/text/flags/Flags;
-Lcom/android/window/flags/FeatureFlags;
-Lcom/android/window/flags/FeatureFlagsImpl;
-Lcom/android/window/flags/Flags;
-Lcom/google/android/collect/Lists;
-Lcom/google/android/collect/Maps;
-Lcom/google/android/collect/Sets;
-Lcom/google/android/gles_jni/EGLConfigImpl;
-Lcom/google/android/gles_jni/EGLContextImpl;
-Lcom/google/android/gles_jni/EGLDisplayImpl;
-Lcom/google/android/gles_jni/EGLImpl;
-Lcom/google/android/gles_jni/EGLSurfaceImpl;
-Lcom/google/android/gles_jni/GLImpl;
-Lcom/google/android/mms/InvalidHeaderValueException;
-Lcom/google/android/mms/MmsException;
-Lcom/google/android/mms/pdu/EncodedStringValue;
-Lcom/google/android/mms/pdu/GenericPdu;
-Lcom/google/android/mms/pdu/NotificationInd;
-Lcom/google/android/mms/pdu/PduParser;
-Lcom/google/android/rappor/Encoder;
-Lcom/google/android/rappor/HmacDrbg;
-Lcom/sun/security/cert/internal/x509/X509V1CertImpl;
-Ldalvik/annotation/optimization/CriticalNative;
-Ldalvik/annotation/optimization/FastNative;
-Ldalvik/annotation/optimization/NeverCompile;
-Ldalvik/annotation/optimization/NeverInline;
-Ldalvik/system/AppSpecializationHooks;
-Ldalvik/system/BaseDexClassLoader$Reporter;
-Ldalvik/system/BaseDexClassLoader;
-Ldalvik/system/BlockGuard$2;
-Ldalvik/system/BlockGuard$BlockGuardPolicyException;
-Ldalvik/system/BlockGuard$Policy;
-Ldalvik/system/BlockGuard$VmPolicy;
-Ldalvik/system/BlockGuard;
-Ldalvik/system/ClassExt;
-Ldalvik/system/CloseGuard$DefaultReporter;
-Ldalvik/system/CloseGuard$Reporter;
-Ldalvik/system/CloseGuard$Tracker;
-Ldalvik/system/CloseGuard;
-Ldalvik/system/DelegateLastClassLoader;
-Ldalvik/system/DexClassLoader;
-Ldalvik/system/DexFile$DFEnum;
-Ldalvik/system/DexFile$OptimizationInfo-IA;
-Ldalvik/system/DexFile$OptimizationInfo;
-Ldalvik/system/DexFile;
-Ldalvik/system/DexPathList$$ExternalSyntheticLambda0;
-Ldalvik/system/DexPathList$Element;
-Ldalvik/system/DexPathList$NativeLibraryElement;
-Ldalvik/system/DexPathList;
-Ldalvik/system/EmulatedStackFrame$Range;
-Ldalvik/system/EmulatedStackFrame;
-Ldalvik/system/InMemoryDexClassLoader;
-Ldalvik/system/PathClassLoader;
-Ldalvik/system/RuntimeHooks;
-Ldalvik/system/SocketTagger$1;
-Ldalvik/system/SocketTagger;
-Ldalvik/system/VMDebug;
-Ldalvik/system/VMRuntime$HiddenApiUsageLogger;
-Ldalvik/system/VMRuntime$SdkVersionContainer;
-Ldalvik/system/VMRuntime;
-Ldalvik/system/VMStack;
-Ldalvik/system/ZipPathValidator$1;
-Ldalvik/system/ZipPathValidator$Callback;
-Ldalvik/system/ZipPathValidator;
-Ldalvik/system/ZygoteHooks;
-Lgov/nist/core/Debug;
-Lgov/nist/core/DuplicateNameValueList;
-Lgov/nist/core/GenericObject;
-Lgov/nist/core/GenericObjectList;
-Lgov/nist/core/Host;
-Lgov/nist/core/HostNameParser;
-Lgov/nist/core/HostPort;
-Lgov/nist/core/InternalErrorHandler;
-Lgov/nist/core/LexerCore;
-Lgov/nist/core/LogLevels;
-Lgov/nist/core/LogWriter;
-Lgov/nist/core/Match;
-Lgov/nist/core/MultiValueMap;
-Lgov/nist/core/MultiValueMapImpl;
-Lgov/nist/core/NameValue;
-Lgov/nist/core/NameValueList;
-Lgov/nist/core/PackageNames;
-Lgov/nist/core/ParserCore;
-Lgov/nist/core/Separators;
-Lgov/nist/core/ServerLogger;
-Lgov/nist/core/StackLogger;
-Lgov/nist/core/StringTokenizer;
-Lgov/nist/core/ThreadAuditor$ThreadHandle;
-Lgov/nist/core/ThreadAuditor;
-Lgov/nist/core/Token;
-Lgov/nist/core/net/AddressResolver;
-Lgov/nist/core/net/DefaultNetworkLayer;
-Lgov/nist/core/net/NetworkLayer;
-Lgov/nist/core/net/SslNetworkLayer;
-Lgov/nist/javax/sip/ClientTransactionExt;
-Lgov/nist/javax/sip/DefaultAddressResolver;
-Lgov/nist/javax/sip/DialogExt;
-Lgov/nist/javax/sip/DialogFilter;
-Lgov/nist/javax/sip/DialogTimeoutEvent$Reason;
-Lgov/nist/javax/sip/DialogTimeoutEvent;
-Lgov/nist/javax/sip/EventScanner;
-Lgov/nist/javax/sip/EventWrapper;
-Lgov/nist/javax/sip/ListeningPointExt;
-Lgov/nist/javax/sip/ListeningPointImpl;
-Lgov/nist/javax/sip/LogRecord;
-Lgov/nist/javax/sip/LogRecordFactory;
-Lgov/nist/javax/sip/NistSipMessageFactoryImpl;
-Lgov/nist/javax/sip/ResponseEventExt;
-Lgov/nist/javax/sip/SIPConstants;
-Lgov/nist/javax/sip/ServerTransactionExt;
-Lgov/nist/javax/sip/SipListenerExt;
-Lgov/nist/javax/sip/SipProviderExt;
-Lgov/nist/javax/sip/SipProviderImpl;
-Lgov/nist/javax/sip/SipStackExt;
-Lgov/nist/javax/sip/SipStackImpl;
-Lgov/nist/javax/sip/TransactionExt;
-Lgov/nist/javax/sip/Utils;
-Lgov/nist/javax/sip/UtilsExt;
-Lgov/nist/javax/sip/address/AddressFactoryImpl;
-Lgov/nist/javax/sip/address/AddressImpl;
-Lgov/nist/javax/sip/address/Authority;
-Lgov/nist/javax/sip/address/GenericURI;
-Lgov/nist/javax/sip/address/NetObject;
-Lgov/nist/javax/sip/address/NetObjectList;
-Lgov/nist/javax/sip/address/ParameterNames;
-Lgov/nist/javax/sip/address/RFC2396UrlDecoder;
-Lgov/nist/javax/sip/address/RouterExt;
-Lgov/nist/javax/sip/address/SipURIExt;
-Lgov/nist/javax/sip/address/SipUri;
-Lgov/nist/javax/sip/address/TelURLImpl;
-Lgov/nist/javax/sip/address/TelephoneNumber;
-Lgov/nist/javax/sip/address/UserInfo;
-Lgov/nist/javax/sip/clientauthutils/AccountManager;
-Lgov/nist/javax/sip/clientauthutils/AuthenticationHelper;
-Lgov/nist/javax/sip/clientauthutils/AuthenticationHelperImpl;
-Lgov/nist/javax/sip/clientauthutils/CredentialsCache$TimeoutTask;
-Lgov/nist/javax/sip/clientauthutils/CredentialsCache;
-Lgov/nist/javax/sip/clientauthutils/MessageDigestAlgorithm;
-Lgov/nist/javax/sip/clientauthutils/SecureAccountManager;
-Lgov/nist/javax/sip/clientauthutils/UserCredentialHash;
-Lgov/nist/javax/sip/clientauthutils/UserCredentials;
-Lgov/nist/javax/sip/header/Accept;
-Lgov/nist/javax/sip/header/AcceptEncoding;
-Lgov/nist/javax/sip/header/AcceptEncodingList;
-Lgov/nist/javax/sip/header/AcceptLanguage;
-Lgov/nist/javax/sip/header/AcceptLanguageList;
-Lgov/nist/javax/sip/header/AcceptList;
-Lgov/nist/javax/sip/header/AddressParameters;
-Lgov/nist/javax/sip/header/AddressParametersHeader;
-Lgov/nist/javax/sip/header/AlertInfo;
-Lgov/nist/javax/sip/header/AlertInfoList;
-Lgov/nist/javax/sip/header/Allow;
-Lgov/nist/javax/sip/header/AllowEvents;
-Lgov/nist/javax/sip/header/AllowEventsList;
-Lgov/nist/javax/sip/header/AllowList;
-Lgov/nist/javax/sip/header/AuthenticationHeader;
-Lgov/nist/javax/sip/header/AuthenticationInfo;
-Lgov/nist/javax/sip/header/AuthenticationInfoList;
-Lgov/nist/javax/sip/header/Authorization;
-Lgov/nist/javax/sip/header/AuthorizationList;
-Lgov/nist/javax/sip/header/CSeq;
-Lgov/nist/javax/sip/header/CallID;
-Lgov/nist/javax/sip/header/CallIdentifier;
-Lgov/nist/javax/sip/header/CallInfo;
-Lgov/nist/javax/sip/header/CallInfoList;
-Lgov/nist/javax/sip/header/Challenge;
-Lgov/nist/javax/sip/header/Contact;
-Lgov/nist/javax/sip/header/ContactList;
-Lgov/nist/javax/sip/header/ContentDisposition;
-Lgov/nist/javax/sip/header/ContentEncoding;
-Lgov/nist/javax/sip/header/ContentEncodingList;
-Lgov/nist/javax/sip/header/ContentLanguage;
-Lgov/nist/javax/sip/header/ContentLanguageList;
-Lgov/nist/javax/sip/header/ContentLength;
-Lgov/nist/javax/sip/header/ContentType;
-Lgov/nist/javax/sip/header/Credentials;
-Lgov/nist/javax/sip/header/ErrorInfo;
-Lgov/nist/javax/sip/header/ErrorInfoList;
-Lgov/nist/javax/sip/header/Event;
-Lgov/nist/javax/sip/header/Expires;
-Lgov/nist/javax/sip/header/ExtensionHeaderImpl;
-Lgov/nist/javax/sip/header/ExtensionHeaderList;
-Lgov/nist/javax/sip/header/From;
-Lgov/nist/javax/sip/header/HeaderExt;
-Lgov/nist/javax/sip/header/HeaderFactoryExt;
-Lgov/nist/javax/sip/header/HeaderFactoryImpl;
-Lgov/nist/javax/sip/header/InReplyTo;
-Lgov/nist/javax/sip/header/InReplyToList;
-Lgov/nist/javax/sip/header/Indentation;
-Lgov/nist/javax/sip/header/MaxForwards;
-Lgov/nist/javax/sip/header/MediaRange;
-Lgov/nist/javax/sip/header/MimeVersion;
-Lgov/nist/javax/sip/header/MinExpires;
-Lgov/nist/javax/sip/header/NameMap;
-Lgov/nist/javax/sip/header/Organization;
-Lgov/nist/javax/sip/header/ParameterNames;
-Lgov/nist/javax/sip/header/ParametersHeader;
-Lgov/nist/javax/sip/header/Priority;
-Lgov/nist/javax/sip/header/Protocol;
-Lgov/nist/javax/sip/header/ProxyAuthenticate;
-Lgov/nist/javax/sip/header/ProxyAuthenticateList;
-Lgov/nist/javax/sip/header/ProxyAuthorization;
-Lgov/nist/javax/sip/header/ProxyAuthorizationList;
-Lgov/nist/javax/sip/header/ProxyRequire;
-Lgov/nist/javax/sip/header/ProxyRequireList;
-Lgov/nist/javax/sip/header/RAck;
-Lgov/nist/javax/sip/header/RSeq;
-Lgov/nist/javax/sip/header/Reason;
-Lgov/nist/javax/sip/header/ReasonList;
-Lgov/nist/javax/sip/header/RecordRoute;
-Lgov/nist/javax/sip/header/RecordRouteList;
-Lgov/nist/javax/sip/header/ReferTo;
-Lgov/nist/javax/sip/header/ReplyTo;
-Lgov/nist/javax/sip/header/RequestLine;
-Lgov/nist/javax/sip/header/Require;
-Lgov/nist/javax/sip/header/RequireList;
-Lgov/nist/javax/sip/header/RetryAfter;
-Lgov/nist/javax/sip/header/Route;
-Lgov/nist/javax/sip/header/RouteList;
-Lgov/nist/javax/sip/header/SIPDate;
-Lgov/nist/javax/sip/header/SIPDateHeader;
-Lgov/nist/javax/sip/header/SIPETag;
-Lgov/nist/javax/sip/header/SIPHeader;
-Lgov/nist/javax/sip/header/SIPHeaderList;
-Lgov/nist/javax/sip/header/SIPHeaderNames;
-Lgov/nist/javax/sip/header/SIPHeaderNamesCache;
-Lgov/nist/javax/sip/header/SIPIfMatch;
-Lgov/nist/javax/sip/header/SIPObject;
-Lgov/nist/javax/sip/header/SIPObjectList;
-Lgov/nist/javax/sip/header/Server;
-Lgov/nist/javax/sip/header/SipRequestLine;
-Lgov/nist/javax/sip/header/SipStatusLine;
-Lgov/nist/javax/sip/header/StatusLine;
-Lgov/nist/javax/sip/header/Subject;
-Lgov/nist/javax/sip/header/SubscriptionState;
-Lgov/nist/javax/sip/header/Supported;
-Lgov/nist/javax/sip/header/SupportedList;
-Lgov/nist/javax/sip/header/TimeStamp;
-Lgov/nist/javax/sip/header/To;
-Lgov/nist/javax/sip/header/Unsupported;
-Lgov/nist/javax/sip/header/UnsupportedList;
-Lgov/nist/javax/sip/header/UserAgent;
-Lgov/nist/javax/sip/header/Via;
-Lgov/nist/javax/sip/header/ViaHeaderExt;
-Lgov/nist/javax/sip/header/ViaList;
-Lgov/nist/javax/sip/header/WWWAuthenticate;
-Lgov/nist/javax/sip/header/WWWAuthenticateList;
-Lgov/nist/javax/sip/header/Warning;
-Lgov/nist/javax/sip/header/WarningList;
-Lgov/nist/javax/sip/header/extensions/Join;
-Lgov/nist/javax/sip/header/extensions/JoinHeader;
-Lgov/nist/javax/sip/header/extensions/MinSE;
-Lgov/nist/javax/sip/header/extensions/MinSEHeader;
-Lgov/nist/javax/sip/header/extensions/References;
-Lgov/nist/javax/sip/header/extensions/ReferencesHeader;
-Lgov/nist/javax/sip/header/extensions/ReferredBy;
-Lgov/nist/javax/sip/header/extensions/ReferredByHeader;
-Lgov/nist/javax/sip/header/extensions/Replaces;
-Lgov/nist/javax/sip/header/extensions/ReplacesHeader;
-Lgov/nist/javax/sip/header/extensions/SessionExpires;
-Lgov/nist/javax/sip/header/extensions/SessionExpiresHeader;
-Lgov/nist/javax/sip/header/ims/AddressHeaderIms;
-Lgov/nist/javax/sip/header/ims/AuthorizationHeaderIms;
-Lgov/nist/javax/sip/header/ims/PAccessNetworkInfo;
-Lgov/nist/javax/sip/header/ims/PAccessNetworkInfoHeader;
-Lgov/nist/javax/sip/header/ims/PAssertedIdentity;
-Lgov/nist/javax/sip/header/ims/PAssertedIdentityHeader;
-Lgov/nist/javax/sip/header/ims/PAssertedIdentityList;
-Lgov/nist/javax/sip/header/ims/PAssertedService;
-Lgov/nist/javax/sip/header/ims/PAssertedServiceHeader;
-Lgov/nist/javax/sip/header/ims/PAssociatedURI;
-Lgov/nist/javax/sip/header/ims/PAssociatedURIHeader;
-Lgov/nist/javax/sip/header/ims/PAssociatedURIList;
-Lgov/nist/javax/sip/header/ims/PCalledPartyID;
-Lgov/nist/javax/sip/header/ims/PCalledPartyIDHeader;
-Lgov/nist/javax/sip/header/ims/PChargingFunctionAddresses;
-Lgov/nist/javax/sip/header/ims/PChargingFunctionAddressesHeader;
-Lgov/nist/javax/sip/header/ims/PChargingVector;
-Lgov/nist/javax/sip/header/ims/PChargingVectorHeader;
-Lgov/nist/javax/sip/header/ims/PMediaAuthorization;
-Lgov/nist/javax/sip/header/ims/PMediaAuthorizationHeader;
-Lgov/nist/javax/sip/header/ims/PMediaAuthorizationList;
-Lgov/nist/javax/sip/header/ims/PPreferredIdentity;
-Lgov/nist/javax/sip/header/ims/PPreferredIdentityHeader;
-Lgov/nist/javax/sip/header/ims/PPreferredService;
-Lgov/nist/javax/sip/header/ims/PPreferredServiceHeader;
-Lgov/nist/javax/sip/header/ims/PProfileKey;
-Lgov/nist/javax/sip/header/ims/PProfileKeyHeader;
-Lgov/nist/javax/sip/header/ims/PServedUser;
-Lgov/nist/javax/sip/header/ims/PServedUserHeader;
-Lgov/nist/javax/sip/header/ims/PUserDatabase;
-Lgov/nist/javax/sip/header/ims/PUserDatabaseHeader;
-Lgov/nist/javax/sip/header/ims/PVisitedNetworkID;
-Lgov/nist/javax/sip/header/ims/PVisitedNetworkIDHeader;
-Lgov/nist/javax/sip/header/ims/PVisitedNetworkIDList;
-Lgov/nist/javax/sip/header/ims/ParameterNamesIms;
-Lgov/nist/javax/sip/header/ims/Path;
-Lgov/nist/javax/sip/header/ims/PathHeader;
-Lgov/nist/javax/sip/header/ims/PathList;
-Lgov/nist/javax/sip/header/ims/Privacy;
-Lgov/nist/javax/sip/header/ims/PrivacyHeader;
-Lgov/nist/javax/sip/header/ims/PrivacyList;
-Lgov/nist/javax/sip/header/ims/SIPHeaderNamesIms;
-Lgov/nist/javax/sip/header/ims/SecurityAgree;
-Lgov/nist/javax/sip/header/ims/SecurityAgreeHeader;
-Lgov/nist/javax/sip/header/ims/SecurityClient;
-Lgov/nist/javax/sip/header/ims/SecurityClientHeader;
-Lgov/nist/javax/sip/header/ims/SecurityClientList;
-Lgov/nist/javax/sip/header/ims/SecurityServer;
-Lgov/nist/javax/sip/header/ims/SecurityServerHeader;
-Lgov/nist/javax/sip/header/ims/SecurityServerList;
-Lgov/nist/javax/sip/header/ims/SecurityVerify;
-Lgov/nist/javax/sip/header/ims/SecurityVerifyHeader;
-Lgov/nist/javax/sip/header/ims/SecurityVerifyList;
-Lgov/nist/javax/sip/header/ims/ServiceRoute;
-Lgov/nist/javax/sip/header/ims/ServiceRouteHeader;
-Lgov/nist/javax/sip/header/ims/ServiceRouteList;
-Lgov/nist/javax/sip/header/ims/WWWAuthenticateHeaderIms;
-Lgov/nist/javax/sip/message/Content;
-Lgov/nist/javax/sip/message/ContentImpl;
-Lgov/nist/javax/sip/message/HeaderIterator;
-Lgov/nist/javax/sip/message/ListMap;
-Lgov/nist/javax/sip/message/MessageExt;
-Lgov/nist/javax/sip/message/MessageFactoryExt;
-Lgov/nist/javax/sip/message/MessageFactoryImpl$1;
-Lgov/nist/javax/sip/message/MessageFactoryImpl;
-Lgov/nist/javax/sip/message/MessageObject;
-Lgov/nist/javax/sip/message/MultipartMimeContent;
-Lgov/nist/javax/sip/message/MultipartMimeContentImpl;
-Lgov/nist/javax/sip/message/RequestExt;
-Lgov/nist/javax/sip/message/ResponseExt;
-Lgov/nist/javax/sip/message/SIPDuplicateHeaderException;
-Lgov/nist/javax/sip/message/SIPMessage;
-Lgov/nist/javax/sip/message/SIPRequest;
-Lgov/nist/javax/sip/message/SIPResponse;
-Lgov/nist/javax/sip/parser/AcceptEncodingParser;
-Lgov/nist/javax/sip/parser/AcceptLanguageParser;
-Lgov/nist/javax/sip/parser/AcceptParser;
-Lgov/nist/javax/sip/parser/AddressParametersParser;
-Lgov/nist/javax/sip/parser/AddressParser;
-Lgov/nist/javax/sip/parser/AlertInfoParser;
-Lgov/nist/javax/sip/parser/AllowEventsParser;
-Lgov/nist/javax/sip/parser/AllowParser;
-Lgov/nist/javax/sip/parser/AuthenticationInfoParser;
-Lgov/nist/javax/sip/parser/AuthorizationParser;
-Lgov/nist/javax/sip/parser/CSeqParser;
-Lgov/nist/javax/sip/parser/CallIDParser;
-Lgov/nist/javax/sip/parser/CallInfoParser;
-Lgov/nist/javax/sip/parser/ChallengeParser;
-Lgov/nist/javax/sip/parser/ContactParser;
-Lgov/nist/javax/sip/parser/ContentDispositionParser;
-Lgov/nist/javax/sip/parser/ContentEncodingParser;
-Lgov/nist/javax/sip/parser/ContentLanguageParser;
-Lgov/nist/javax/sip/parser/ContentLengthParser;
-Lgov/nist/javax/sip/parser/ContentTypeParser;
-Lgov/nist/javax/sip/parser/DateParser;
-Lgov/nist/javax/sip/parser/ErrorInfoParser;
-Lgov/nist/javax/sip/parser/EventParser;
-Lgov/nist/javax/sip/parser/ExpiresParser;
-Lgov/nist/javax/sip/parser/FromParser;
-Lgov/nist/javax/sip/parser/HeaderParser;
-Lgov/nist/javax/sip/parser/InReplyToParser;
-Lgov/nist/javax/sip/parser/Lexer;
-Lgov/nist/javax/sip/parser/MaxForwardsParser;
-Lgov/nist/javax/sip/parser/MimeVersionParser;
-Lgov/nist/javax/sip/parser/MinExpiresParser;
-Lgov/nist/javax/sip/parser/OrganizationParser;
-Lgov/nist/javax/sip/parser/ParametersParser;
-Lgov/nist/javax/sip/parser/ParseExceptionListener;
-Lgov/nist/javax/sip/parser/Parser;
-Lgov/nist/javax/sip/parser/ParserFactory;
-Lgov/nist/javax/sip/parser/Pipeline$Buffer;
-Lgov/nist/javax/sip/parser/Pipeline$MyTimer;
-Lgov/nist/javax/sip/parser/Pipeline;
-Lgov/nist/javax/sip/parser/PipelinedMsgParser;
-Lgov/nist/javax/sip/parser/PriorityParser;
-Lgov/nist/javax/sip/parser/ProxyAuthenticateParser;
-Lgov/nist/javax/sip/parser/ProxyAuthorizationParser;
-Lgov/nist/javax/sip/parser/ProxyRequireParser;
-Lgov/nist/javax/sip/parser/RAckParser;
-Lgov/nist/javax/sip/parser/RSeqParser;
-Lgov/nist/javax/sip/parser/ReasonParser;
-Lgov/nist/javax/sip/parser/RecordRouteParser;
-Lgov/nist/javax/sip/parser/ReferToParser;
-Lgov/nist/javax/sip/parser/ReplyToParser;
-Lgov/nist/javax/sip/parser/RequestLineParser;
-Lgov/nist/javax/sip/parser/RequireParser;
-Lgov/nist/javax/sip/parser/RetryAfterParser;
-Lgov/nist/javax/sip/parser/RouteParser;
-Lgov/nist/javax/sip/parser/SIPETagParser;
-Lgov/nist/javax/sip/parser/SIPIfMatchParser;
-Lgov/nist/javax/sip/parser/SIPMessageListener;
-Lgov/nist/javax/sip/parser/ServerParser;
-Lgov/nist/javax/sip/parser/StatusLineParser;
-Lgov/nist/javax/sip/parser/StringMsgParser$1ParserThread;
-Lgov/nist/javax/sip/parser/StringMsgParser;
-Lgov/nist/javax/sip/parser/SubjectParser;
-Lgov/nist/javax/sip/parser/SubscriptionStateParser;
-Lgov/nist/javax/sip/parser/SupportedParser;
-Lgov/nist/javax/sip/parser/TimeStampParser;
-Lgov/nist/javax/sip/parser/ToParser;
-Lgov/nist/javax/sip/parser/TokenNames;
-Lgov/nist/javax/sip/parser/TokenTypes;
-Lgov/nist/javax/sip/parser/URLParser;
-Lgov/nist/javax/sip/parser/UnsupportedParser;
-Lgov/nist/javax/sip/parser/UserAgentParser;
-Lgov/nist/javax/sip/parser/ViaParser;
-Lgov/nist/javax/sip/parser/WWWAuthenticateParser;
-Lgov/nist/javax/sip/parser/WarningParser;
-Lgov/nist/javax/sip/parser/extensions/JoinParser;
-Lgov/nist/javax/sip/parser/extensions/MinSEParser;
-Lgov/nist/javax/sip/parser/extensions/ReferencesParser;
-Lgov/nist/javax/sip/parser/extensions/ReferredByParser;
-Lgov/nist/javax/sip/parser/extensions/ReplacesParser;
-Lgov/nist/javax/sip/parser/extensions/SessionExpiresParser;
-Lgov/nist/javax/sip/parser/ims/AddressHeaderParser;
-Lgov/nist/javax/sip/parser/ims/PAccessNetworkInfoParser;
-Lgov/nist/javax/sip/parser/ims/PAssertedIdentityParser;
-Lgov/nist/javax/sip/parser/ims/PAssertedServiceParser;
-Lgov/nist/javax/sip/parser/ims/PAssociatedURIParser;
-Lgov/nist/javax/sip/parser/ims/PCalledPartyIDParser;
-Lgov/nist/javax/sip/parser/ims/PChargingFunctionAddressesParser;
-Lgov/nist/javax/sip/parser/ims/PChargingVectorParser;
-Lgov/nist/javax/sip/parser/ims/PMediaAuthorizationParser;
-Lgov/nist/javax/sip/parser/ims/PPreferredIdentityParser;
-Lgov/nist/javax/sip/parser/ims/PPreferredServiceParser;
-Lgov/nist/javax/sip/parser/ims/PProfileKeyParser;
-Lgov/nist/javax/sip/parser/ims/PServedUserParser;
-Lgov/nist/javax/sip/parser/ims/PUserDatabaseParser;
-Lgov/nist/javax/sip/parser/ims/PVisitedNetworkIDParser;
-Lgov/nist/javax/sip/parser/ims/PathParser;
-Lgov/nist/javax/sip/parser/ims/PrivacyParser;
-Lgov/nist/javax/sip/parser/ims/SecurityAgreeParser;
-Lgov/nist/javax/sip/parser/ims/SecurityClientParser;
-Lgov/nist/javax/sip/parser/ims/SecurityServerParser;
-Lgov/nist/javax/sip/parser/ims/SecurityVerifyParser;
-Lgov/nist/javax/sip/parser/ims/ServiceRouteParser;
-Lgov/nist/javax/sip/parser/ims/TokenNamesIms;
-Lgov/nist/javax/sip/stack/DefaultMessageLogFactory;
-Lgov/nist/javax/sip/stack/DefaultRouter;
-Lgov/nist/javax/sip/stack/HandshakeCompletedListenerImpl;
-Lgov/nist/javax/sip/stack/HopImpl;
-Lgov/nist/javax/sip/stack/IOHandler;
-Lgov/nist/javax/sip/stack/MessageChannel;
-Lgov/nist/javax/sip/stack/MessageLog;
-Lgov/nist/javax/sip/stack/MessageProcessor;
-Lgov/nist/javax/sip/stack/RawMessageChannel;
-Lgov/nist/javax/sip/stack/SIPClientTransaction$TransactionTimer;
-Lgov/nist/javax/sip/stack/SIPClientTransaction;
-Lgov/nist/javax/sip/stack/SIPDialog$DialogDeleteIfNoAckSentTask;
-Lgov/nist/javax/sip/stack/SIPDialog$DialogDeleteTask;
-Lgov/nist/javax/sip/stack/SIPDialog$DialogTimerTask;
-Lgov/nist/javax/sip/stack/SIPDialog$LingerTimer;
-Lgov/nist/javax/sip/stack/SIPDialog$ReInviteSender;
-Lgov/nist/javax/sip/stack/SIPDialog;
-Lgov/nist/javax/sip/stack/SIPDialogErrorEvent;
-Lgov/nist/javax/sip/stack/SIPDialogEventListener;
-Lgov/nist/javax/sip/stack/SIPServerTransaction$ListenerExecutionMaxTimer;
-Lgov/nist/javax/sip/stack/SIPServerTransaction$ProvisionalResponseTask;
-Lgov/nist/javax/sip/stack/SIPServerTransaction$RetransmissionAlertTimerTask;
-Lgov/nist/javax/sip/stack/SIPServerTransaction$SendTrying;
-Lgov/nist/javax/sip/stack/SIPServerTransaction$TransactionTimer;
-Lgov/nist/javax/sip/stack/SIPServerTransaction;
-Lgov/nist/javax/sip/stack/SIPStackTimerTask;
-Lgov/nist/javax/sip/stack/SIPTransaction$LingerTimer;
-Lgov/nist/javax/sip/stack/SIPTransaction;
-Lgov/nist/javax/sip/stack/SIPTransactionErrorEvent;
-Lgov/nist/javax/sip/stack/SIPTransactionEventListener;
-Lgov/nist/javax/sip/stack/SIPTransactionStack$PingTimer;
-Lgov/nist/javax/sip/stack/SIPTransactionStack$RemoveForkedTransactionTimerTask;
-Lgov/nist/javax/sip/stack/SIPTransactionStack;
-Lgov/nist/javax/sip/stack/ServerLog;
-Lgov/nist/javax/sip/stack/ServerRequestInterface;
-Lgov/nist/javax/sip/stack/ServerResponseInterface;
-Lgov/nist/javax/sip/stack/StackMessageFactory;
-Lgov/nist/javax/sip/stack/TCPMessageChannel$1;
-Lgov/nist/javax/sip/stack/TCPMessageChannel;
-Lgov/nist/javax/sip/stack/TCPMessageProcessor;
-Lgov/nist/javax/sip/stack/TLSMessageChannel;
-Lgov/nist/javax/sip/stack/TLSMessageProcessor;
-Lgov/nist/javax/sip/stack/UDPMessageChannel$PingBackTimerTask;
-Lgov/nist/javax/sip/stack/UDPMessageChannel;
-Lgov/nist/javax/sip/stack/UDPMessageProcessor;
-Ljava/awt/font/NumericShaper;
-Ljava/awt/font/TextAttribute;
-Ljava/io/Bits;
-Ljava/io/BufferedInputStream;
-Ljava/io/BufferedReader;
-Ljava/io/BufferedWriter;
-Ljava/io/ByteArrayInputStream;
-Ljava/io/ByteArrayOutputStream;
-Ljava/io/CharArrayReader;
-Ljava/io/CharArrayWriter;
-Ljava/io/CharConversionException;
-Ljava/io/Closeable;
-Ljava/io/Console;
-Ljava/io/DataInput;
-Ljava/io/DataInputStream;
-Ljava/io/DataOutput;
-Ljava/io/DataOutputStream;
-Ljava/io/DefaultFileSystem;
-Ljava/io/EOFException;
-Ljava/io/ExpiringCache$1;
-Ljava/io/ExpiringCache;
-Ljava/io/Externalizable;
-Ljava/io/File$PathStatus;
-Ljava/io/File$TempDirectory;
-Ljava/io/File;
-Ljava/io/FileDescriptor$1;
-Ljava/io/FileDescriptor;
-Ljava/io/FileFilter;
-Ljava/io/FileInputStream$UseManualSkipException;
-Ljava/io/FileInputStream;
-Ljava/io/FileNotFoundException;
-Ljava/io/FileOutputStream;
-Ljava/io/FileReader;
-Ljava/io/FileSystem;
-Ljava/io/FileWriter;
-Ljava/io/FilenameFilter;
-Ljava/io/FilterInputStream;
-Ljava/io/FilterOutputStream;
-Ljava/io/FilterReader;
-Ljava/io/Flushable;
-Ljava/io/IOException;
-Ljava/io/InputStream;
-Ljava/io/InputStreamReader;
-Ljava/io/InterruptedIOException;
-Ljava/io/InvalidClassException;
-Ljava/io/InvalidObjectException;
-Ljava/io/LineNumberReader;
-Ljava/io/NotActiveException;
-Ljava/io/NotSerializableException;
-Ljava/io/ObjectInput;
-Ljava/io/ObjectInputStream$$ExternalSyntheticLambda0;
-Ljava/io/ObjectInputStream$1;
-Ljava/io/ObjectInputStream$BlockDataInputStream;
-Ljava/io/ObjectInputStream$Caches;
-Ljava/io/ObjectInputStream$GetField;
-Ljava/io/ObjectInputStream$GetFieldImpl;
-Ljava/io/ObjectInputStream$HandleTable$HandleList;
-Ljava/io/ObjectInputStream$HandleTable;
-Ljava/io/ObjectInputStream$PeekInputStream;
-Ljava/io/ObjectInputStream$ValidationList$1;
-Ljava/io/ObjectInputStream$ValidationList$Callback;
-Ljava/io/ObjectInputStream$ValidationList;
-Ljava/io/ObjectInputStream;
-Ljava/io/ObjectOutput;
-Ljava/io/ObjectOutputStream$1;
-Ljava/io/ObjectOutputStream$Caches;
-Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
-Ljava/io/ObjectOutputStream$HandleTable;
-Ljava/io/ObjectOutputStream$PutField;
-Ljava/io/ObjectOutputStream$PutFieldImpl;
-Ljava/io/ObjectOutputStream$ReplaceTable;
-Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda0;
-Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda1;
-Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda2;
-Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda3;
-Ljava/io/ObjectStreamClass$1;
-Ljava/io/ObjectStreamClass$2;
-Ljava/io/ObjectStreamClass$3;
-Ljava/io/ObjectStreamClass$4;
-Ljava/io/ObjectStreamClass$5;
-Ljava/io/ObjectStreamClass$Caches;
-Ljava/io/ObjectStreamClass$ClassDataSlot;
-Ljava/io/ObjectStreamClass$DefaultSUIDCompatibilityListener;
-Ljava/io/ObjectStreamClass$DeserializationConstructorsCache;
-Ljava/io/ObjectStreamClass$EntryFuture$1;
-Ljava/io/ObjectStreamClass$EntryFuture-IA;
-Ljava/io/ObjectStreamClass$EntryFuture;
-Ljava/io/ObjectStreamClass$ExceptionInfo;
-Ljava/io/ObjectStreamClass$FieldReflector;
-Ljava/io/ObjectStreamClass$FieldReflectorKey;
-Ljava/io/ObjectStreamClass$MemberSignature;
-Ljava/io/ObjectStreamClass$WeakClassKey;
-Ljava/io/ObjectStreamClass;
-Ljava/io/ObjectStreamConstants;
-Ljava/io/ObjectStreamException;
-Ljava/io/ObjectStreamField;
-Ljava/io/OptionalDataException;
-Ljava/io/OutputStream;
-Ljava/io/OutputStreamWriter;
-Ljava/io/PipedInputStream;
-Ljava/io/PipedOutputStream;
-Ljava/io/PrintStream;
-Ljava/io/PrintWriter;
-Ljava/io/PushbackInputStream;
-Ljava/io/PushbackReader;
-Ljava/io/RandomAccessFile;
-Ljava/io/Reader;
-Ljava/io/SequenceInputStream;
-Ljava/io/SerialCallbackContext;
-Ljava/io/Serializable;
-Ljava/io/SerializablePermission;
-Ljava/io/StreamCorruptedException;
-Ljava/io/StringBufferInputStream;
-Ljava/io/StringReader;
-Ljava/io/StringWriter;
-Ljava/io/SyncFailedException;
-Ljava/io/UTFDataFormatException;
-Ljava/io/UncheckedIOException;
-Ljava/io/UnsupportedEncodingException;
-Ljava/io/WriteAbortedException;
-Ljava/io/Writer;
-Ljava/lang/AbstractMethodError;
-Ljava/lang/AbstractStringBuilder$$ExternalSyntheticLambda0;
-Ljava/lang/AbstractStringBuilder$$ExternalSyntheticLambda1;
-Ljava/lang/AbstractStringBuilder;
-Ljava/lang/AndroidHardcodedSystemProperties;
-Ljava/lang/Appendable;
-Ljava/lang/ArithmeticException;
-Ljava/lang/ArrayIndexOutOfBoundsException;
-Ljava/lang/ArrayStoreException;
-Ljava/lang/AssertionError;
-Ljava/lang/AutoCloseable;
-Ljava/lang/Boolean;
-Ljava/lang/BootClassLoader;
-Ljava/lang/Byte$ByteCache;
-Ljava/lang/Byte;
-Ljava/lang/CaseMapper$1;
-Ljava/lang/CaseMapper;
-Ljava/lang/CharSequence$$ExternalSyntheticLambda0;
-Ljava/lang/CharSequence$$ExternalSyntheticLambda1;
-Ljava/lang/CharSequence$1CharIterator;
-Ljava/lang/CharSequence$1CodePointIterator;
-Ljava/lang/CharSequence;
-Ljava/lang/Character$CharacterCache;
-Ljava/lang/Character$Subset;
-Ljava/lang/Character$UnicodeBlock;
-Ljava/lang/Character;
-Ljava/lang/Class$$ExternalSyntheticLambda0;
-Ljava/lang/Class$$ExternalSyntheticLambda1;
-Ljava/lang/Class$Caches;
-Ljava/lang/Class;
-Ljava/lang/ClassCastException;
-Ljava/lang/ClassFormatError;
-Ljava/lang/ClassLoader$$ExternalSyntheticLambda0;
-Ljava/lang/ClassLoader$$ExternalSyntheticLambda1;
-Ljava/lang/ClassLoader$$ExternalSyntheticLambda2;
-Ljava/lang/ClassLoader$SystemClassLoader;
-Ljava/lang/ClassLoader;
-Ljava/lang/ClassNotFoundException;
-Ljava/lang/ClassValue$Entry;
-Ljava/lang/ClassValue;
-Ljava/lang/CloneNotSupportedException;
-Ljava/lang/Cloneable;
-Ljava/lang/Comparable;
-Ljava/lang/CompoundEnumeration;
-Ljava/lang/Daemons$Daemon;
-Ljava/lang/Daemons$FinalizerDaemon;
-Ljava/lang/Daemons$FinalizerWatchdogDaemon;
-Ljava/lang/Daemons$HeapTaskDaemon;
-Ljava/lang/Daemons$ReferenceQueueDaemon;
-Ljava/lang/Daemons;
-Ljava/lang/Deprecated;
-Ljava/lang/DexCache;
-Ljava/lang/Double;
-Ljava/lang/Enum$$ExternalSyntheticLambda0;
-Ljava/lang/Enum$1;
-Ljava/lang/Enum$EnumDesc;
-Ljava/lang/Enum;
-Ljava/lang/EnumConstantNotPresentException;
-Ljava/lang/Error;
-Ljava/lang/Exception;
-Ljava/lang/ExceptionInInitializerError;
-Ljava/lang/Float;
-Ljava/lang/IllegalAccessError;
-Ljava/lang/IllegalAccessException;
-Ljava/lang/IllegalArgumentException;
-Ljava/lang/IllegalMonitorStateException;
-Ljava/lang/IllegalStateException;
-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;
-Ljava/lang/InternalError;
-Ljava/lang/InterruptedException;
-Ljava/lang/Iterable;
-Ljava/lang/LinkageError;
-Ljava/lang/Long$LongCache;
-Ljava/lang/Long;
-Ljava/lang/Math$RandomNumberGeneratorHolder;
-Ljava/lang/Math;
-Ljava/lang/NegativeArraySizeException;
-Ljava/lang/NoClassDefFoundError;
-Ljava/lang/NoSuchFieldError;
-Ljava/lang/NoSuchFieldException;
-Ljava/lang/NoSuchMethodError;
-Ljava/lang/NoSuchMethodException;
-Ljava/lang/NullPointerException;
-Ljava/lang/Number;
-Ljava/lang/NumberFormatException;
-Ljava/lang/Object;
-Ljava/lang/OutOfMemoryError;
-Ljava/lang/Package;
-Ljava/lang/Process;
-Ljava/lang/ProcessBuilder$NullInputStream;
-Ljava/lang/ProcessBuilder$NullOutputStream;
-Ljava/lang/ProcessBuilder$Redirect$1;
-Ljava/lang/ProcessBuilder$Redirect$2;
-Ljava/lang/ProcessBuilder$Redirect;
-Ljava/lang/ProcessBuilder;
-Ljava/lang/ProcessEnvironment$ExternalData;
-Ljava/lang/ProcessEnvironment$StringEnvironment;
-Ljava/lang/ProcessEnvironment$Value;
-Ljava/lang/ProcessEnvironment$Variable;
-Ljava/lang/ProcessEnvironment;
-Ljava/lang/ProcessImpl;
-Ljava/lang/Readable;
-Ljava/lang/Record;
-Ljava/lang/ReflectiveOperationException;
-Ljava/lang/Runnable;
-Ljava/lang/Runtime;
-Ljava/lang/RuntimeException;
-Ljava/lang/RuntimePermission;
-Ljava/lang/SecurityException;
-Ljava/lang/SecurityManager;
-Ljava/lang/Short$ShortCache;
-Ljava/lang/Short;
-Ljava/lang/StackFrameInfo;
-Ljava/lang/StackOverflowError;
-Ljava/lang/StackStreamFactory$AbstractStackWalker;
-Ljava/lang/StackStreamFactory;
-Ljava/lang/StackTraceElement;
-Ljava/lang/StackWalker$Option;
-Ljava/lang/StackWalker$StackFrame;
-Ljava/lang/StackWalker;
-Ljava/lang/StrictMath;
-Ljava/lang/String$$ExternalSyntheticLambda0;
-Ljava/lang/String$$ExternalSyntheticLambda1;
-Ljava/lang/String$$ExternalSyntheticLambda2;
-Ljava/lang/String$$ExternalSyntheticLambda3;
-Ljava/lang/String$CaseInsensitiveComparator-IA;
-Ljava/lang/String;
-Ljava/lang/StringBuffer;
-Ljava/lang/StringBuilder;
-Ljava/lang/StringFactory;
-Ljava/lang/StringIndexOutOfBoundsException;
-Ljava/lang/StringLatin1$CharsSpliterator;
-Ljava/lang/StringLatin1$LinesSpliterator;
-Ljava/lang/StringLatin1;
-Ljava/lang/StringUTF16$CharsSpliterator;
-Ljava/lang/StringUTF16$CharsSpliteratorForString;
-Ljava/lang/StringUTF16$CodePointsSpliterator;
-Ljava/lang/StringUTF16$CodePointsSpliteratorForString;
-Ljava/lang/StringUTF16;
-Ljava/lang/System$PropertiesWithNonOverrideableDefaults;
-Ljava/lang/System;
-Ljava/lang/Thread$1;
-Ljava/lang/Thread$Caches;
-Ljava/lang/Thread$State;
-Ljava/lang/Thread$UncaughtExceptionHandler;
-Ljava/lang/Thread$WeakClassKey;
-Ljava/lang/Thread;
-Ljava/lang/ThreadDeath;
-Ljava/lang/ThreadGroup;
-Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
-Ljava/lang/ThreadLocal$ThreadLocalMap-IA;
-Ljava/lang/ThreadLocal$ThreadLocalMap;
-Ljava/lang/Throwable$PrintStreamOrWriter-IA;
-Ljava/lang/Throwable$PrintStreamOrWriter;
-Ljava/lang/Throwable$SentinelHolder;
-Ljava/lang/Throwable$WrappedPrintStream;
-Ljava/lang/Throwable$WrappedPrintWriter;
-Ljava/lang/Throwable;
-Ljava/lang/TypeNotPresentException;
-Ljava/lang/UNIXProcess$1;
-Ljava/lang/UNIXProcess$2;
-Ljava/lang/UNIXProcess$3;
-Ljava/lang/UNIXProcess$ProcessPipeInputStream;
-Ljava/lang/UNIXProcess$ProcessPipeOutputStream;
-Ljava/lang/UNIXProcess$ProcessReaperThreadFactory$1;
-Ljava/lang/UNIXProcess$ProcessReaperThreadFactory;
-Ljava/lang/UNIXProcess;
-Ljava/lang/UnsatisfiedLinkError;
-Ljava/lang/UnsupportedClassVersionError;
-Ljava/lang/UnsupportedOperationException;
-Ljava/lang/VMClassLoader;
-Ljava/lang/VerifyError;
-Ljava/lang/VirtualMachineError;
-Ljava/lang/Void;
-Ljava/lang/annotation/Annotation;
-Ljava/lang/annotation/AnnotationTypeMismatchException;
-Ljava/lang/annotation/Documented;
-Ljava/lang/annotation/IncompleteAnnotationException;
-Ljava/lang/annotation/Inherited;
-Ljava/lang/annotation/Retention;
-Ljava/lang/annotation/Target;
-Ljava/lang/constant/ClassDesc;
-Ljava/lang/constant/Constable;
-Ljava/lang/constant/ConstantDesc;
-Ljava/lang/constant/ConstantDescs;
-Ljava/lang/constant/ConstantUtils;
-Ljava/lang/constant/DirectMethodHandleDesc$Kind;
-Ljava/lang/constant/DirectMethodHandleDesc;
-Ljava/lang/constant/DirectMethodHandleDescImpl$1;
-Ljava/lang/constant/DirectMethodHandleDescImpl;
-Ljava/lang/constant/DynamicConstantDesc$AnonymousDynamicConstantDesc;
-Ljava/lang/constant/DynamicConstantDesc;
-Ljava/lang/constant/MethodHandleDesc$1;
-Ljava/lang/constant/MethodHandleDesc;
-Ljava/lang/constant/MethodTypeDesc;
-Ljava/lang/constant/MethodTypeDescImpl;
-Ljava/lang/constant/PrimitiveClassDescImpl;
-Ljava/lang/constant/ReferenceClassDescImpl;
-Ljava/lang/invoke/ArrayElementVarHandle;
-Ljava/lang/invoke/ByteArrayViewVarHandle;
-Ljava/lang/invoke/ByteBufferViewVarHandle;
-Ljava/lang/invoke/CallSite;
-Ljava/lang/invoke/ConstantCallSite;
-Ljava/lang/invoke/FieldVarHandle;
-Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/MethodHandleImpl$HandleInfo;
-Ljava/lang/invoke/MethodHandleImpl;
-Ljava/lang/invoke/MethodHandleInfo;
-Ljava/lang/invoke/MethodHandleStatics;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda0;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda10;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda11;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda12;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda13;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda14;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda15;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda16;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda17;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda18;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda19;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda1;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda20;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda21;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda22;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda23;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda24;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda25;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda2;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda3;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda4;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda5;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda6;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda7;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda8;
-Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda9;
-Ljava/lang/invoke/MethodHandles$Lookup;
-Ljava/lang/invoke/MethodHandles;
-Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;
-Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;
-Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodTypeForm;
-Ljava/lang/invoke/SerializedLambda;
-Ljava/lang/invoke/StaticFieldVarHandle;
-Ljava/lang/invoke/Transformers$AlwaysThrow;
-Ljava/lang/invoke/Transformers$ArrayConstructor;
-Ljava/lang/invoke/Transformers$ArrayLength;
-Ljava/lang/invoke/Transformers$AsTypeAdapter;
-Ljava/lang/invoke/Transformers$BindTo;
-Ljava/lang/invoke/Transformers$CatchException;
-Ljava/lang/invoke/Transformers$CollectArguments;
-Ljava/lang/invoke/Transformers$Collector;
-Ljava/lang/invoke/Transformers$Construct;
-Ljava/lang/invoke/Transformers$DropArguments;
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;
-Ljava/lang/invoke/Transformers$FilterArguments;
-Ljava/lang/invoke/Transformers$FilterReturnValue;
-Ljava/lang/invoke/Transformers$FoldArguments;
-Ljava/lang/invoke/Transformers$GuardWithTest;
-Ljava/lang/invoke/Transformers$InsertArguments;
-Ljava/lang/invoke/Transformers$Invoker;
-Ljava/lang/invoke/Transformers$Loop;
-Ljava/lang/invoke/Transformers$PermuteArguments;
-Ljava/lang/invoke/Transformers$ReferenceArrayElementGetter;
-Ljava/lang/invoke/Transformers$ReferenceArrayElementSetter;
-Ljava/lang/invoke/Transformers$ReferenceIdentity;
-Ljava/lang/invoke/Transformers$Spreader;
-Ljava/lang/invoke/Transformers$TableSwitch;
-Ljava/lang/invoke/Transformers$Transformer;
-Ljava/lang/invoke/Transformers$TryFinally;
-Ljava/lang/invoke/Transformers$VarargsCollector;
-Ljava/lang/invoke/Transformers$ZeroValue;
-Ljava/lang/invoke/TypeDescriptor$OfField;
-Ljava/lang/invoke/TypeDescriptor$OfMethod;
-Ljava/lang/invoke/TypeDescriptor;
-Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessType;
-Ljava/lang/invoke/VarHandle$VarHandleDesc$Kind;
-Ljava/lang/invoke/VarHandle;
-Ljava/lang/invoke/WrongMethodTypeException;
-Ljava/lang/ref/Cleaner$1;
-Ljava/lang/ref/Cleaner$Cleanable;
-Ljava/lang/ref/Cleaner;
-Ljava/lang/ref/FinalizerReference$Sentinel-IA;
-Ljava/lang/ref/FinalizerReference$Sentinel;
-Ljava/lang/ref/FinalizerReference;
-Ljava/lang/ref/PhantomReference;
-Ljava/lang/ref/Reference$SinkHolder$1;
-Ljava/lang/ref/Reference$SinkHolder;
-Ljava/lang/ref/Reference;
-Ljava/lang/ref/ReferenceQueue;
-Ljava/lang/ref/SoftReference;
-Ljava/lang/ref/WeakReference;
-Ljava/lang/reflect/AccessibleObject;
-Ljava/lang/reflect/AnnotatedElement;
-Ljava/lang/reflect/Array;
-Ljava/lang/reflect/Constructor;
-Ljava/lang/reflect/Executable$GenericInfo;
-Ljava/lang/reflect/Executable;
-Ljava/lang/reflect/Field;
-Ljava/lang/reflect/GenericArrayType;
-Ljava/lang/reflect/GenericDeclaration;
-Ljava/lang/reflect/GenericSignatureFormatError;
-Ljava/lang/reflect/InvocationHandler;
-Ljava/lang/reflect/InvocationTargetException;
-Ljava/lang/reflect/MalformedParametersException;
-Ljava/lang/reflect/Member;
-Ljava/lang/reflect/Method$1;
-Ljava/lang/reflect/Method;
-Ljava/lang/reflect/Modifier;
-Ljava/lang/reflect/Parameter;
-Ljava/lang/reflect/ParameterizedType;
-Ljava/lang/reflect/Proxy$1;
-Ljava/lang/reflect/Proxy$Key1;
-Ljava/lang/reflect/Proxy$Key2;
-Ljava/lang/reflect/Proxy$KeyFactory-IA;
-Ljava/lang/reflect/Proxy$KeyFactory;
-Ljava/lang/reflect/Proxy$KeyX;
-Ljava/lang/reflect/Proxy$ProxyClassFactory-IA;
-Ljava/lang/reflect/Proxy$ProxyClassFactory;
-Ljava/lang/reflect/Proxy;
-Ljava/lang/reflect/RecordComponent;
-Ljava/lang/reflect/ReflectPermission;
-Ljava/lang/reflect/Type;
-Ljava/lang/reflect/TypeVariable;
-Ljava/lang/reflect/UndeclaredThrowableException;
-Ljava/lang/reflect/WeakCache$CacheKey;
-Ljava/lang/reflect/WeakCache$CacheValue;
-Ljava/lang/reflect/WeakCache$Factory;
-Ljava/lang/reflect/WeakCache$LookupValue;
-Ljava/lang/reflect/WeakCache$Value;
-Ljava/lang/reflect/WeakCache;
-Ljava/lang/reflect/WildcardType;
-Ljava/math/BigDecimal$1;
-Ljava/math/BigDecimal$LongOverflow;
-Ljava/math/BigDecimal$StringBuilderHelper;
-Ljava/math/BigDecimal;
-Ljava/math/BigInteger$UnsafeHolder;
-Ljava/math/BigInteger;
-Ljava/math/MathContext;
-Ljava/math/MutableBigInteger;
-Ljava/math/RoundingMode;
-Ljava/net/AbstractPlainDatagramSocketImpl;
-Ljava/net/AbstractPlainSocketImpl;
-Ljava/net/AddressCache$AddressCacheEntry;
-Ljava/net/AddressCache$AddressCacheKey;
-Ljava/net/AddressCache;
-Ljava/net/Authenticator$RequestorType;
-Ljava/net/Authenticator;
-Ljava/net/BindException;
-Ljava/net/ConnectException;
-Ljava/net/CookieHandler;
-Ljava/net/CookieManager$CookiePathComparator;
-Ljava/net/CookieManager;
-Ljava/net/CookiePolicy$1;
-Ljava/net/CookiePolicy$2;
-Ljava/net/CookiePolicy$3;
-Ljava/net/CookiePolicy;
-Ljava/net/CookieStore;
-Ljava/net/DatagramPacket;
-Ljava/net/DatagramSocket$1;
-Ljava/net/DatagramSocket;
-Ljava/net/DatagramSocketImpl;
-Ljava/net/DatagramSocketImplFactory;
-Ljava/net/DefaultDatagramSocketImplFactory;
-Ljava/net/DefaultInterface;
-Ljava/net/HttpCookie$10;
-Ljava/net/HttpCookie$11;
-Ljava/net/HttpCookie$1;
-Ljava/net/HttpCookie$2;
-Ljava/net/HttpCookie$3;
-Ljava/net/HttpCookie$4;
-Ljava/net/HttpCookie$5;
-Ljava/net/HttpCookie$6;
-Ljava/net/HttpCookie$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;
-Ljava/net/Inet4Address;
-Ljava/net/Inet6Address$Inet6AddressHolder-IA;
-Ljava/net/Inet6Address$Inet6AddressHolder;
-Ljava/net/Inet6Address;
-Ljava/net/InetAddress$1;
-Ljava/net/InetAddress;
-Ljava/net/InetAddressImpl;
-Ljava/net/InetSocketAddress$InetSocketAddressHolder-IA;
-Ljava/net/InetSocketAddress$InetSocketAddressHolder;
-Ljava/net/InetSocketAddress;
-Ljava/net/InterfaceAddress;
-Ljava/net/JarURLConnection;
-Ljava/net/MalformedURLException;
-Ljava/net/MulticastSocket;
-Ljava/net/NetPermission;
-Ljava/net/NetworkInterface$1checkedAddresses;
-Ljava/net/NetworkInterface;
-Ljava/net/NoRouteToHostException;
-Ljava/net/Parts;
-Ljava/net/PasswordAuthentication;
-Ljava/net/PlainDatagramSocketImpl;
-Ljava/net/PlainSocketImpl;
-Ljava/net/PortUnreachableException;
-Ljava/net/ProtocolException;
-Ljava/net/ProtocolFamily;
-Ljava/net/Proxy$Type;
-Ljava/net/Proxy;
-Ljava/net/ProxySelector;
-Ljava/net/ResponseCache;
-Ljava/net/ServerSocket$1;
-Ljava/net/ServerSocket;
-Ljava/net/Socket$1;
-Ljava/net/Socket$2;
-Ljava/net/Socket$3;
-Ljava/net/Socket;
-Ljava/net/SocketAddress;
-Ljava/net/SocketException;
-Ljava/net/SocketImpl;
-Ljava/net/SocketImplFactory;
-Ljava/net/SocketOption;
-Ljava/net/SocketOptions;
-Ljava/net/SocketPermission;
-Ljava/net/SocketTimeoutException;
-Ljava/net/SocksConsts;
-Ljava/net/SocksSocketImpl;
-Ljava/net/StandardProtocolFamily;
-Ljava/net/StandardSocketOptions$StdSocketOption;
-Ljava/net/StandardSocketOptions;
-Ljava/net/URI$Parser;
-Ljava/net/URI;
-Ljava/net/URISyntaxException;
-Ljava/net/URL;
-Ljava/net/URLConnection;
-Ljava/net/URLDecoder;
-Ljava/net/URLEncoder;
-Ljava/net/URLStreamHandler;
-Ljava/net/URLStreamHandlerFactory;
-Ljava/net/UnknownHostException;
-Ljava/net/UnknownServiceException;
-Ljava/nio/Bits;
-Ljava/nio/Buffer;
-Ljava/nio/BufferMismatch;
-Ljava/nio/BufferOverflowException;
-Ljava/nio/BufferUnderflowException;
-Ljava/nio/ByteBuffer;
-Ljava/nio/ByteBufferAsCharBuffer;
-Ljava/nio/ByteBufferAsDoubleBuffer;
-Ljava/nio/ByteBufferAsLongBuffer;
-Ljava/nio/ByteBufferAsShortBuffer;
-Ljava/nio/ByteOrder;
-Ljava/nio/CharBuffer;
-Ljava/nio/DirectByteBuffer$MemoryRef;
-Ljava/nio/DoubleBuffer;
-Ljava/nio/FloatBuffer;
-Ljava/nio/HeapIntBuffer;
-Ljava/nio/IntBuffer;
-Ljava/nio/InvalidMarkException;
-Ljava/nio/LongBuffer;
-Ljava/nio/MappedByteBuffer;
-Ljava/nio/NIOAccess;
-Ljava/nio/NioUtils;
-Ljava/nio/ReadOnlyBufferException;
-Ljava/nio/ShortBuffer;
-Ljava/nio/StringCharBuffer;
-Ljava/nio/channels/AlreadyConnectedException;
-Ljava/nio/channels/AsynchronousChannel;
-Ljava/nio/channels/AsynchronousCloseException;
-Ljava/nio/channels/AsynchronousFileChannel;
-Ljava/nio/channels/ByteChannel;
-Ljava/nio/channels/CancelledKeyException;
-Ljava/nio/channels/Channel;
-Ljava/nio/channels/Channels$1;
-Ljava/nio/channels/Channels$WritableByteChannelImpl;
-Ljava/nio/channels/Channels;
-Ljava/nio/channels/ClosedByInterruptException;
-Ljava/nio/channels/ClosedChannelException;
-Ljava/nio/channels/ClosedSelectorException;
-Ljava/nio/channels/ConnectionPendingException;
-Ljava/nio/channels/DatagramChannel;
-Ljava/nio/channels/FileChannel$MapMode;
-Ljava/nio/channels/FileChannel;
-Ljava/nio/channels/FileLock;
-Ljava/nio/channels/FileLockInterruptionException;
-Ljava/nio/channels/GatheringByteChannel;
-Ljava/nio/channels/IllegalBlockingModeException;
-Ljava/nio/channels/IllegalSelectorException;
-Ljava/nio/channels/InterruptibleChannel;
-Ljava/nio/channels/MulticastChannel;
-Ljava/nio/channels/NetworkChannel;
-Ljava/nio/channels/NoConnectionPendingException;
-Ljava/nio/channels/NonReadableChannelException;
-Ljava/nio/channels/NonWritableChannelException;
-Ljava/nio/channels/OverlappingFileLockException;
-Ljava/nio/channels/ReadableByteChannel;
-Ljava/nio/channels/ScatteringByteChannel;
-Ljava/nio/channels/SeekableByteChannel;
-Ljava/nio/channels/SelectableChannel;
-Ljava/nio/channels/SelectionKey;
-Ljava/nio/channels/Selector;
-Ljava/nio/channels/ServerSocketChannel;
-Ljava/nio/channels/SocketChannel;
-Ljava/nio/channels/UnresolvedAddressException;
-Ljava/nio/channels/UnsupportedAddressTypeException;
-Ljava/nio/channels/WritableByteChannel;
-Ljava/nio/channels/spi/AbstractInterruptibleChannel$1;
-Ljava/nio/channels/spi/AbstractInterruptibleChannel;
-Ljava/nio/channels/spi/AbstractSelectableChannel;
-Ljava/nio/channels/spi/AbstractSelectionKey;
-Ljava/nio/channels/spi/AbstractSelector$1;
-Ljava/nio/channels/spi/AbstractSelector;
-Ljava/nio/channels/spi/AsynchronousChannelProvider;
-Ljava/nio/channels/spi/SelectorProvider$1;
-Ljava/nio/channels/spi/SelectorProvider;
-Ljava/nio/charset/CharacterCodingException;
-Ljava/nio/charset/Charset;
-Ljava/nio/charset/CharsetDecoder;
-Ljava/nio/charset/CharsetEncoder;
-Ljava/nio/charset/CoderMalfunctionError;
-Ljava/nio/charset/CoderResult$Cache;
-Ljava/nio/charset/CoderResult;
-Ljava/nio/charset/CodingErrorAction;
-Ljava/nio/charset/IllegalCharsetNameException;
-Ljava/nio/charset/StandardCharsets;
-Ljava/nio/charset/UnsupportedCharsetException;
-Ljava/nio/charset/spi/CharsetProvider;
-Ljava/nio/file/AccessDeniedException;
-Ljava/nio/file/AccessMode;
-Ljava/nio/file/CopyMoveHelper;
-Ljava/nio/file/CopyOption;
-Ljava/nio/file/DirectoryIteratorException;
-Ljava/nio/file/DirectoryStream$Filter;
-Ljava/nio/file/DirectoryStream;
-Ljava/nio/file/FileAlreadyExistsException;
-Ljava/nio/file/FileSystem;
-Ljava/nio/file/FileSystemException;
-Ljava/nio/file/FileSystems$DefaultFileSystemHolder$1;
-Ljava/nio/file/FileSystems$DefaultFileSystemHolder;
-Ljava/nio/file/FileSystems;
-Ljava/nio/file/FileVisitResult;
-Ljava/nio/file/FileVisitor;
-Ljava/nio/file/Files$AcceptAllFilter;
-Ljava/nio/file/Files;
-Ljava/nio/file/InvalidPathException;
-Ljava/nio/file/LinkOption;
-Ljava/nio/file/NoSuchFileException;
-Ljava/nio/file/NotDirectoryException;
-Ljava/nio/file/OpenOption;
-Ljava/nio/file/Path;
-Ljava/nio/file/Paths;
-Ljava/nio/file/ProviderMismatchException;
-Ljava/nio/file/SecureDirectoryStream;
-Ljava/nio/file/SimpleFileVisitor;
-Ljava/nio/file/StandardCopyOption;
-Ljava/nio/file/StandardOpenOption;
-Ljava/nio/file/Watchable;
-Ljava/nio/file/attribute/AttributeView;
-Ljava/nio/file/attribute/BasicFileAttributeView;
-Ljava/nio/file/attribute/BasicFileAttributes;
-Ljava/nio/file/attribute/FileAttribute;
-Ljava/nio/file/attribute/FileAttributeView;
-Ljava/nio/file/attribute/FileOwnerAttributeView;
-Ljava/nio/file/attribute/FileTime;
-Ljava/nio/file/attribute/PosixFileAttributeView;
-Ljava/nio/file/attribute/PosixFileAttributes;
-Ljava/nio/file/spi/FileSystemProvider;
-Ljava/security/AccessControlContext;
-Ljava/security/AccessControlException;
-Ljava/security/AccessController;
-Ljava/security/AlgorithmConstraints;
-Ljava/security/AlgorithmParameters;
-Ljava/security/AlgorithmParametersSpi;
-Ljava/security/AllPermission;
-Ljava/security/BasicPermission;
-Ljava/security/CodeSigner;
-Ljava/security/CodeSource;
-Ljava/security/CryptoPrimitive;
-Ljava/security/DigestException;
-Ljava/security/DigestInputStream;
-Ljava/security/GeneralSecurityException;
-Ljava/security/Guard;
-Ljava/security/InvalidAlgorithmParameterException;
-Ljava/security/InvalidKeyException;
-Ljava/security/InvalidParameterException;
-Ljava/security/Key;
-Ljava/security/KeyException;
-Ljava/security/KeyFactory;
-Ljava/security/KeyFactorySpi;
-Ljava/security/KeyManagementException;
-Ljava/security/KeyPair;
-Ljava/security/KeyPairGenerator$Delegate;
-Ljava/security/KeyPairGenerator;
-Ljava/security/KeyPairGeneratorSpi;
-Ljava/security/KeyStore$1;
-Ljava/security/KeyStore$CallbackHandlerProtection;
-Ljava/security/KeyStore$Entry;
-Ljava/security/KeyStore$LoadStoreParameter;
-Ljava/security/KeyStore$PasswordProtection;
-Ljava/security/KeyStore$PrivateKeyEntry;
-Ljava/security/KeyStore$ProtectionParameter;
-Ljava/security/KeyStore$SecretKeyEntry;
-Ljava/security/KeyStore$SimpleLoadStoreParameter;
-Ljava/security/KeyStore$TrustedCertificateEntry;
-Ljava/security/KeyStore;
-Ljava/security/KeyStoreException;
-Ljava/security/KeyStoreSpi;
-Ljava/security/MessageDigest;
-Ljava/security/MessageDigestSpi;
-Ljava/security/NoSuchAlgorithmException;
-Ljava/security/NoSuchProviderException;
-Ljava/security/Permission;
-Ljava/security/PermissionCollection;
-Ljava/security/Permissions;
-Ljava/security/Principal;
-Ljava/security/PrivateKey;
-Ljava/security/PrivilegedAction;
-Ljava/security/PrivilegedActionException;
-Ljava/security/PrivilegedExceptionAction;
-Ljava/security/ProtectionDomain;
-Ljava/security/Provider$EngineDescription;
-Ljava/security/Provider$Service-IA;
-Ljava/security/Provider$Service;
-Ljava/security/Provider$ServiceKey-IA;
-Ljava/security/Provider$ServiceKey;
-Ljava/security/Provider$UString;
-Ljava/security/Provider;
-Ljava/security/ProviderException;
-Ljava/security/PublicKey;
-Ljava/security/SecureRandom;
-Ljava/security/SecureRandomParameters;
-Ljava/security/SecureRandomSpi;
-Ljava/security/Security$1;
-Ljava/security/Security;
-Ljava/security/SecurityPermission;
-Ljava/security/Signature$CipherAdapter;
-Ljava/security/Signature;
-Ljava/security/SignatureException;
-Ljava/security/SignatureSpi;
-Ljava/security/Timestamp;
-Ljava/security/UnrecoverableEntryException;
-Ljava/security/UnrecoverableKeyException;
-Ljava/security/cert/CRL;
-Ljava/security/cert/CRLException;
-Ljava/security/cert/CRLReason;
-Ljava/security/cert/CertPath;
-Ljava/security/cert/CertPathBuilderException;
-Ljava/security/cert/CertPathChecker;
-Ljava/security/cert/CertPathHelperImpl;
-Ljava/security/cert/CertPathParameters;
-Ljava/security/cert/CertPathValidator;
-Ljava/security/cert/CertPathValidatorException$BasicReason;
-Ljava/security/cert/CertPathValidatorException$Reason;
-Ljava/security/cert/CertPathValidatorException;
-Ljava/security/cert/CertPathValidatorResult;
-Ljava/security/cert/CertPathValidatorSpi;
-Ljava/security/cert/CertSelector;
-Ljava/security/cert/CertStore;
-Ljava/security/cert/CertStoreException;
-Ljava/security/cert/CertStoreParameters;
-Ljava/security/cert/CertStoreSpi;
-Ljava/security/cert/Certificate;
-Ljava/security/cert/CertificateEncodingException;
-Ljava/security/cert/CertificateException;
-Ljava/security/cert/CertificateExpiredException;
-Ljava/security/cert/CertificateFactory;
-Ljava/security/cert/CertificateFactorySpi;
-Ljava/security/cert/CertificateNotYetValidException;
-Ljava/security/cert/CertificateParsingException;
-Ljava/security/cert/CertificateRevokedException;
-Ljava/security/cert/CollectionCertStoreParameters;
-Ljava/security/cert/Extension;
-Ljava/security/cert/PKIXCertPathChecker;
-Ljava/security/cert/PKIXCertPathValidatorResult;
-Ljava/security/cert/PKIXParameters;
-Ljava/security/cert/PKIXReason;
-Ljava/security/cert/PKIXRevocationChecker$Option;
-Ljava/security/cert/PKIXRevocationChecker;
-Ljava/security/cert/PolicyNode;
-Ljava/security/cert/PolicyQualifierInfo;
-Ljava/security/cert/TrustAnchor;
-Ljava/security/cert/X509CRL;
-Ljava/security/cert/X509CRLEntry;
-Ljava/security/cert/X509CertSelector;
-Ljava/security/cert/X509Certificate;
-Ljava/security/cert/X509Extension;
-Ljava/security/interfaces/DSAKey;
-Ljava/security/interfaces/DSAParams;
-Ljava/security/interfaces/DSAPublicKey;
-Ljava/security/interfaces/ECKey;
-Ljava/security/interfaces/ECPrivateKey;
-Ljava/security/interfaces/ECPublicKey;
-Ljava/security/interfaces/RSAKey;
-Ljava/security/interfaces/RSAPrivateCrtKey;
-Ljava/security/interfaces/RSAPrivateKey;
-Ljava/security/interfaces/RSAPublicKey;
-Ljava/security/spec/AlgorithmParameterSpec;
-Ljava/security/spec/DSAParameterSpec;
-Ljava/security/spec/DSAPublicKeySpec;
-Ljava/security/spec/ECField;
-Ljava/security/spec/ECFieldF2m;
-Ljava/security/spec/ECFieldFp;
-Ljava/security/spec/ECGenParameterSpec;
-Ljava/security/spec/ECParameterSpec;
-Ljava/security/spec/ECPoint;
-Ljava/security/spec/ECPrivateKeySpec;
-Ljava/security/spec/ECPublicKeySpec;
-Ljava/security/spec/EllipticCurve;
-Ljava/security/spec/EncodedKeySpec;
-Ljava/security/spec/InvalidKeySpecException;
-Ljava/security/spec/InvalidParameterSpecException;
-Ljava/security/spec/KeySpec;
-Ljava/security/spec/MGF1ParameterSpec;
-Ljava/security/spec/NamedParameterSpec;
-Ljava/security/spec/PKCS8EncodedKeySpec;
-Ljava/security/spec/PSSParameterSpec;
-Ljava/security/spec/RSAKeyGenParameterSpec;
-Ljava/security/spec/RSAPrivateCrtKeySpec;
-Ljava/security/spec/RSAPrivateKeySpec;
-Ljava/security/spec/RSAPublicKeySpec;
-Ljava/security/spec/X509EncodedKeySpec;
-Ljava/sql/Date;
-Ljava/sql/SQLException;
-Ljava/sql/Time;
-Ljava/sql/Timestamp;
-Ljava/text/AttributedCharacterIterator$Attribute;
-Ljava/text/AttributedCharacterIterator;
-Ljava/text/AttributedString;
-Ljava/text/Bidi;
-Ljava/text/BreakIterator;
-Ljava/text/CalendarBuilder;
-Ljava/text/CharacterIterator;
-Ljava/text/CharacterIteratorFieldDelegate;
-Ljava/text/ChoiceFormat;
-Ljava/text/CollationElementIterator;
-Ljava/text/CollationKey;
-Ljava/text/Collator;
-Ljava/text/DateFormat$Field;
-Ljava/text/DateFormat;
-Ljava/text/DateFormatSymbols;
-Ljava/text/DecimalFormat$1;
-Ljava/text/DecimalFormat;
-Ljava/text/DecimalFormatSymbols;
-Ljava/text/DontCareFieldPosition$1;
-Ljava/text/DontCareFieldPosition;
-Ljava/text/FieldPosition$Delegate-IA;
-Ljava/text/FieldPosition$Delegate;
-Ljava/text/FieldPosition;
-Ljava/text/Format$Field;
-Ljava/text/Format$FieldDelegate;
-Ljava/text/Format;
-Ljava/text/IcuIteratorWrapper;
-Ljava/text/MessageFormat$Field;
-Ljava/text/MessageFormat;
-Ljava/text/Normalizer$Form$$ExternalSyntheticLambda0;
-Ljava/text/Normalizer$Form$$ExternalSyntheticLambda1;
-Ljava/text/Normalizer$Form$$ExternalSyntheticLambda2;
-Ljava/text/Normalizer$Form$$ExternalSyntheticLambda3;
-Ljava/text/Normalizer$Form;
-Ljava/text/Normalizer;
-Ljava/text/NumberFormat$Field;
-Ljava/text/NumberFormat$Style;
-Ljava/text/NumberFormat;
-Ljava/text/ParseException;
-Ljava/text/ParsePosition;
-Ljava/text/RuleBasedCollator;
-Ljava/text/SimpleDateFormat;
-Ljava/text/StringCharacterIterator;
-Ljava/time/Clock;
-Ljava/time/DateTimeException;
-Ljava/time/DayOfWeek;
-Ljava/time/Duration;
-Ljava/time/Instant$1;
-Ljava/time/Instant;
-Ljava/time/InstantSource;
-Ljava/time/LocalDate$1;
-Ljava/time/LocalDate;
-Ljava/time/LocalDateTime;
-Ljava/time/LocalTime$1;
-Ljava/time/LocalTime;
-Ljava/time/Month;
-Ljava/time/OffsetDateTime;
-Ljava/time/Period;
-Ljava/time/Year;
-Ljava/time/ZoneId;
-Ljava/time/ZoneOffset;
-Ljava/time/ZonedDateTime$$ExternalSyntheticLambda0;
-Ljava/time/ZonedDateTime$1;
-Ljava/time/ZonedDateTime;
-Ljava/time/chrono/AbstractChronology;
-Ljava/time/chrono/ChronoLocalDate;
-Ljava/time/chrono/ChronoLocalDateTime;
-Ljava/time/chrono/ChronoPeriod;
-Ljava/time/chrono/ChronoZonedDateTime;
-Ljava/time/chrono/Chronology;
-Ljava/time/chrono/IsoChronology;
-Ljava/time/format/DateTimeFormatter$$ExternalSyntheticLambda0;
-Ljava/time/format/DateTimeFormatter$$ExternalSyntheticLambda1;
-Ljava/time/format/DateTimeFormatter;
-Ljava/time/format/DateTimeFormatterBuilder$$ExternalSyntheticLambda0;
-Ljava/time/format/DateTimeFormatterBuilder$1;
-Ljava/time/format/DateTimeFormatterBuilder$2;
-Ljava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$DayPeriod$$ExternalSyntheticLambda0;
-Ljava/time/format/DateTimeFormatterBuilder$DayPeriod;
-Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$PadPrinterParserDecorator;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI-IA;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree-IA;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
-Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;
-Ljava/time/format/DateTimeFormatterBuilder$StringLiteralPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder;
-Ljava/time/format/DateTimeParseContext;
-Ljava/time/format/DateTimeParseException;
-Ljava/time/format/DateTimePrintContext$1;
-Ljava/time/format/DateTimePrintContext;
-Ljava/time/format/DateTimeTextProvider$1;
-Ljava/time/format/DateTimeTextProvider$LocaleStore;
-Ljava/time/format/DateTimeTextProvider;
-Ljava/time/format/DecimalStyle;
-Ljava/time/format/Parsed;
-Ljava/time/format/ResolverStyle;
-Ljava/time/format/SignStyle;
-Ljava/time/format/TextStyle;
-Ljava/time/temporal/ChronoField;
-Ljava/time/temporal/ChronoUnit;
-Ljava/time/temporal/IsoFields$Field$1;
-Ljava/time/temporal/IsoFields$Field$2;
-Ljava/time/temporal/IsoFields$Field$3;
-Ljava/time/temporal/IsoFields$Field$4;
-Ljava/time/temporal/IsoFields$Field;
-Ljava/time/temporal/IsoFields$Unit;
-Ljava/time/temporal/IsoFields;
-Ljava/time/temporal/JulianFields$Field;
-Ljava/time/temporal/JulianFields;
-Ljava/time/temporal/Temporal;
-Ljava/time/temporal/TemporalAccessor;
-Ljava/time/temporal/TemporalAdjuster;
-Ljava/time/temporal/TemporalAdjusters$$ExternalSyntheticLambda11;
-Ljava/time/temporal/TemporalAdjusters$$ExternalSyntheticLambda1;
-Ljava/time/temporal/TemporalAdjusters$$ExternalSyntheticLambda3;
-Ljava/time/temporal/TemporalAdjusters$$ExternalSyntheticLambda6;
-Ljava/time/temporal/TemporalAdjusters$$ExternalSyntheticLambda8;
-Ljava/time/temporal/TemporalAdjusters;
-Ljava/time/temporal/TemporalAmount;
-Ljava/time/temporal/TemporalField;
-Ljava/time/temporal/TemporalQueries$1;
-Ljava/time/temporal/TemporalQueries$2;
-Ljava/time/temporal/TemporalQueries$3;
-Ljava/time/temporal/TemporalQueries$4;
-Ljava/time/temporal/TemporalQueries$5;
-Ljava/time/temporal/TemporalQueries$6;
-Ljava/time/temporal/TemporalQueries$7;
-Ljava/time/temporal/TemporalQueries;
-Ljava/time/temporal/TemporalQuery;
-Ljava/time/temporal/TemporalUnit;
-Ljava/time/temporal/UnsupportedTemporalTypeException;
-Ljava/time/temporal/ValueRange;
-Ljava/time/zone/IcuZoneRulesProvider$ZoneRulesCache;
-Ljava/time/zone/IcuZoneRulesProvider;
-Ljava/time/zone/ZoneOffsetTransition;
-Ljava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;
-Ljava/time/zone/ZoneOffsetTransitionRule;
-Ljava/time/zone/ZoneRules;
-Ljava/time/zone/ZoneRulesException;
-Ljava/time/zone/ZoneRulesProvider;
-Ljava/util/AbstractCollection;
-Ljava/util/AbstractList$Itr-IA;
-Ljava/util/AbstractList$ListItr;
-Ljava/util/AbstractList$RandomAccessSpliterator;
-Ljava/util/AbstractList$RandomAccessSubList;
-Ljava/util/AbstractList$SubList$1;
-Ljava/util/AbstractList$SubList;
-Ljava/util/AbstractList;
-Ljava/util/AbstractMap$1;
-Ljava/util/AbstractMap$2$1;
-Ljava/util/AbstractMap$SimpleEntry;
-Ljava/util/AbstractMap$SimpleImmutableEntry;
-Ljava/util/AbstractMap$ViewCollection;
-Ljava/util/AbstractMap;
-Ljava/util/AbstractQueue;
-Ljava/util/AbstractSequentialList;
-Ljava/util/AbstractSet;
-Ljava/util/ArrayDeque$$ExternalSyntheticLambda1;
-Ljava/util/ArrayDeque;
-Ljava/util/ArrayList$ArrayListSpliterator;
-Ljava/util/ArrayList$ListItr;
-Ljava/util/ArrayList$SubList$2;
-Ljava/util/ArrayList;
-Ljava/util/ArrayPrefixHelpers$CumulateTask;
-Ljava/util/ArrayPrefixHelpers$DoubleCumulateTask;
-Ljava/util/ArrayPrefixHelpers$IntCumulateTask;
-Ljava/util/ArrayPrefixHelpers$LongCumulateTask;
-Ljava/util/Arrays$$ExternalSyntheticLambda0;
-Ljava/util/Arrays$$ExternalSyntheticLambda1;
-Ljava/util/Arrays$$ExternalSyntheticLambda2;
-Ljava/util/Arrays$$ExternalSyntheticLambda3;
-Ljava/util/Arrays$NaturalOrder;
-Ljava/util/Arrays;
-Ljava/util/ArraysParallelSortHelpers$FJObject$Sorter;
-Ljava/util/Base64$Decoder;
-Ljava/util/Base64$Encoder;
-Ljava/util/Base64;
-Ljava/util/BitSet;
-Ljava/util/Calendar$$ExternalSyntheticLambda0;
-Ljava/util/Calendar$Builder;
-Ljava/util/Calendar;
-Ljava/util/Collection;
-Ljava/util/Collections$2;
-Ljava/util/Collections$3;
-Ljava/util/Collections$AsLIFOQueue;
-Ljava/util/Collections$CheckedCollection;
-Ljava/util/Collections$CheckedList;
-Ljava/util/Collections$CheckedMap;
-Ljava/util/Collections$CheckedNavigableMap;
-Ljava/util/Collections$CheckedNavigableSet;
-Ljava/util/Collections$CheckedQueue;
-Ljava/util/Collections$CheckedRandomAccessList;
-Ljava/util/Collections$CheckedSet;
-Ljava/util/Collections$CheckedSortedMap;
-Ljava/util/Collections$CheckedSortedSet;
-Ljava/util/Collections$CopiesList;
-Ljava/util/Collections$EmptyEnumeration;
-Ljava/util/Collections$EmptyList-IA;
-Ljava/util/Collections$EmptyListIterator;
-Ljava/util/Collections$EmptyMap-IA;
-Ljava/util/Collections$EmptySet-IA;
-Ljava/util/Collections$ReverseComparator2;
-Ljava/util/Collections$ReverseComparator;
-Ljava/util/Collections$SequencedSetFromMap;
-Ljava/util/Collections$SynchronizedList;
-Ljava/util/Collections$SynchronizedNavigableMap;
-Ljava/util/Collections$SynchronizedNavigableSet;
-Ljava/util/Collections$SynchronizedSet;
-Ljava/util/Collections$SynchronizedSortedMap;
-Ljava/util/Collections$SynchronizedSortedSet;
-Ljava/util/Collections$UnmodifiableList$1;
-Ljava/util/Collections$UnmodifiableList;
-Ljava/util/Collections$UnmodifiableNavigableMap$EmptyNavigableMap;
-Ljava/util/Collections$UnmodifiableNavigableMap;
-Ljava/util/Collections$UnmodifiableNavigableSet$EmptyNavigableSet;
-Ljava/util/Collections$UnmodifiableNavigableSet;
-Ljava/util/Collections$UnmodifiableSequencedCollection;
-Ljava/util/Collections$UnmodifiableSequencedMap;
-Ljava/util/Collections$UnmodifiableSequencedSet;
-Ljava/util/Collections$UnmodifiableSortedMap;
-Ljava/util/Collections;
-Ljava/util/ComparableTimSort;
-Ljava/util/Comparator$$ExternalSyntheticLambda1;
-Ljava/util/Comparator$$ExternalSyntheticLambda2;
-Ljava/util/Comparator$$ExternalSyntheticLambda3;
-Ljava/util/Comparator$$ExternalSyntheticLambda4;
-Ljava/util/Comparator$$ExternalSyntheticLambda5;
-Ljava/util/Comparator;
-Ljava/util/Comparators$NaturalOrderComparator;
-Ljava/util/Comparators$NullComparator;
-Ljava/util/ConcurrentModificationException;
-Ljava/util/Currency;
-Ljava/util/Date;
-Ljava/util/Deque;
-Ljava/util/Dictionary;
-Ljava/util/DoubleSummaryStatistics;
-Ljava/util/DualPivotQuicksort$Sorter-IA;
-Ljava/util/DualPivotQuicksort$Sorter;
-Ljava/util/DualPivotQuicksort;
-Ljava/util/DuplicateFormatFlagsException;
-Ljava/util/EmptyStackException;
-Ljava/util/EnumMap$1;
-Ljava/util/EnumMap$EntryIterator$Entry-IA;
-Ljava/util/EnumMap$EntryIterator$Entry;
-Ljava/util/EnumMap$EntryIterator-IA;
-Ljava/util/EnumMap$EntryIterator;
-Ljava/util/EnumMap$EntrySet-IA;
-Ljava/util/EnumMap$EntrySet;
-Ljava/util/EnumMap$EnumMapIterator-IA;
-Ljava/util/EnumMap$EnumMapIterator;
-Ljava/util/EnumMap$KeyIterator-IA;
-Ljava/util/EnumMap$KeyIterator;
-Ljava/util/EnumMap$KeySet-IA;
-Ljava/util/EnumMap$KeySet;
-Ljava/util/EnumMap$ValueIterator-IA;
-Ljava/util/EnumMap$ValueIterator;
-Ljava/util/EnumMap$Values-IA;
-Ljava/util/EnumMap$Values;
-Ljava/util/EnumMap;
-Ljava/util/EnumSet$SerializationProxy;
-Ljava/util/EnumSet;
-Ljava/util/Enumeration;
-Ljava/util/EventListener;
-Ljava/util/EventObject;
-Ljava/util/FormatFlagsConversionMismatchException;
-Ljava/util/Formattable;
-Ljava/util/Formatter$Conversion;
-Ljava/util/Formatter$DateTime;
-Ljava/util/Formatter$FixedString;
-Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$FormatSpecifier;
-Ljava/util/Formatter$FormatSpecifierParser;
-Ljava/util/Formatter$FormatString;
-Ljava/util/Formatter;
-Ljava/util/FormatterClosedException;
-Ljava/util/HashMap$EntrySpliterator;
-Ljava/util/HashMap$HashIterator;
-Ljava/util/HashMap$HashMapSpliterator;
-Ljava/util/HashMap$KeySpliterator;
-Ljava/util/HashMap$UnsafeHolder;
-Ljava/util/HashMap$ValueSpliterator;
-Ljava/util/HashMap;
-Ljava/util/HashSet;
-Ljava/util/Hashtable$EntrySet-IA;
-Ljava/util/Hashtable$EntrySet;
-Ljava/util/Hashtable$HashtableEntry;
-Ljava/util/Hashtable$KeySet-IA;
-Ljava/util/Hashtable$KeySet;
-Ljava/util/Hashtable$ValueCollection-IA;
-Ljava/util/Hashtable$ValueCollection;
-Ljava/util/Hashtable;
-Ljava/util/HexFormat;
-Ljava/util/IdentityHashMap$EntryIterator$Entry-IA;
-Ljava/util/IdentityHashMap$EntryIterator$Entry;
-Ljava/util/IdentityHashMap$EntryIterator-IA;
-Ljava/util/IdentityHashMap$EntryIterator;
-Ljava/util/IdentityHashMap$EntrySet-IA;
-Ljava/util/IdentityHashMap$EntrySet;
-Ljava/util/IdentityHashMap$IdentityHashMapIterator-IA;
-Ljava/util/IdentityHashMap$IdentityHashMapIterator;
-Ljava/util/IdentityHashMap$KeyIterator-IA;
-Ljava/util/IdentityHashMap$KeyIterator;
-Ljava/util/IdentityHashMap$KeySet-IA;
-Ljava/util/IdentityHashMap$KeySet;
-Ljava/util/IdentityHashMap$ValueIterator-IA;
-Ljava/util/IdentityHashMap$ValueIterator;
-Ljava/util/IdentityHashMap$Values-IA;
-Ljava/util/IdentityHashMap$Values;
-Ljava/util/IdentityHashMap;
-Ljava/util/IllegalFormatCodePointException;
-Ljava/util/IllegalFormatConversionException;
-Ljava/util/IllegalFormatException;
-Ljava/util/IllegalFormatFlagsException;
-Ljava/util/IllegalFormatPrecisionException;
-Ljava/util/IllegalFormatWidthException;
-Ljava/util/IllformedLocaleException;
-Ljava/util/ImmutableCollections$AbstractImmutableCollection;
-Ljava/util/ImmutableCollections$AbstractImmutableList;
-Ljava/util/ImmutableCollections$AbstractImmutableMap;
-Ljava/util/ImmutableCollections$AbstractImmutableSet;
-Ljava/util/ImmutableCollections$Access$1;
-Ljava/util/ImmutableCollections$Access;
-Ljava/util/ImmutableCollections$ListN-IA;
-Ljava/util/ImmutableCollections$MapN$1;
-Ljava/util/ImmutableCollections$MapN$MapNIterator;
-Ljava/util/ImmutableCollections$SubList;
-Ljava/util/ImmutableCollections;
-Ljava/util/InputMismatchException;
-Ljava/util/Iterator;
-Ljava/util/JumboEnumSet$EnumSetIterator;
-Ljava/util/JumboEnumSet;
-Ljava/util/KeyValueHolder;
-Ljava/util/LinkedHashMap$LinkedHashIterator;
-Ljava/util/LinkedHashMap$ReversedLinkedHashMapView;
-Ljava/util/LinkedHashMap;
-Ljava/util/LinkedHashSet;
-Ljava/util/LinkedList$DescendingIterator-IA;
-Ljava/util/LinkedList$Node;
-Ljava/util/LinkedList;
-Ljava/util/List;
-Ljava/util/ListIterator;
-Ljava/util/ListResourceBundle;
-Ljava/util/Locale$Builder;
-Ljava/util/Locale$Cache;
-Ljava/util/Locale$Category;
-Ljava/util/Locale$FilteringMode;
-Ljava/util/Locale$IsoCountryCode$1;
-Ljava/util/Locale$IsoCountryCode$2;
-Ljava/util/Locale$IsoCountryCode$3;
-Ljava/util/Locale$IsoCountryCode;
-Ljava/util/Locale$LanguageRange;
-Ljava/util/Locale$LocaleKey-IA;
-Ljava/util/Locale$LocaleKey;
-Ljava/util/Locale$NoImagePreloadHolder;
-Ljava/util/Locale-IA;
-Ljava/util/Locale;
-Ljava/util/LongSummaryStatistics;
-Ljava/util/Map$Entry;
-Ljava/util/Map;
-Ljava/util/MissingFormatArgumentException;
-Ljava/util/MissingFormatWidthException;
-Ljava/util/MissingResourceException;
-Ljava/util/NavigableMap;
-Ljava/util/NavigableSet;
-Ljava/util/NoSuchElementException;
-Ljava/util/Objects;
-Ljava/util/Observable;
-Ljava/util/Observer;
-Ljava/util/Optional;
-Ljava/util/OptionalDouble;
-Ljava/util/OptionalInt;
-Ljava/util/PrimitiveIterator$OfInt$$ExternalSyntheticLambda0;
-Ljava/util/PrimitiveIterator$OfInt;
-Ljava/util/PrimitiveIterator;
-Ljava/util/PriorityQueue;
-Ljava/util/Properties$EntrySet;
-Ljava/util/Properties$LineReader;
-Ljava/util/Properties;
-Ljava/util/PropertyPermission;
-Ljava/util/PropertyResourceBundle;
-Ljava/util/Queue;
-Ljava/util/Random;
-Ljava/util/RandomAccess;
-Ljava/util/RegularEnumSet$EnumSetIterator;
-Ljava/util/RegularEnumSet;
-Ljava/util/ResourceBundle$1;
-Ljava/util/ResourceBundle$BundleReference;
-Ljava/util/ResourceBundle$CacheKey;
-Ljava/util/ResourceBundle$CacheKeyReference;
-Ljava/util/ResourceBundle$Control$$ExternalSyntheticLambda0;
-Ljava/util/ResourceBundle$Control$1;
-Ljava/util/ResourceBundle$Control$CandidateListCache;
-Ljava/util/ResourceBundle$Control;
-Ljava/util/ResourceBundle$KeyElementReference;
-Ljava/util/ResourceBundle$RBClassLoader$1;
-Ljava/util/ResourceBundle$RBClassLoader;
-Ljava/util/ResourceBundle$SingleFormatControl;
-Ljava/util/ResourceBundle;
-Ljava/util/ReverseOrderListView;
-Ljava/util/Scanner$PatternLRUCache;
-Ljava/util/Scanner;
-Ljava/util/SequencedCollection;
-Ljava/util/SequencedMap$1SeqEntrySet;
-Ljava/util/SequencedMap$1SeqKeySet;
-Ljava/util/SequencedMap$1SeqValues;
-Ljava/util/SequencedMap;
-Ljava/util/SequencedSet;
-Ljava/util/ServiceConfigurationError;
-Ljava/util/ServiceLoader$1;
-Ljava/util/ServiceLoader$2;
-Ljava/util/ServiceLoader$LazyClassPathLookupIterator;
-Ljava/util/ServiceLoader;
-Ljava/util/Set;
-Ljava/util/SimpleTimeZone$Cache;
-Ljava/util/SimpleTimeZone;
-Ljava/util/SortedMap;
-Ljava/util/SortedSet;
-Ljava/util/Spliterator$OfDouble;
-Ljava/util/Spliterator$OfInt;
-Ljava/util/Spliterator$OfLong;
-Ljava/util/Spliterator$OfPrimitive;
-Ljava/util/Spliterator;
-Ljava/util/Spliterators$ArraySpliterator;
-Ljava/util/Spliterators$EmptySpliterator$OfDouble;
-Ljava/util/Spliterators$EmptySpliterator$OfInt;
-Ljava/util/Spliterators$EmptySpliterator$OfLong;
-Ljava/util/Spliterators$EmptySpliterator$OfRef;
-Ljava/util/Spliterators$EmptySpliterator;
-Ljava/util/Spliterators$IntArraySpliterator;
-Ljava/util/Spliterators$IteratorSpliterator;
-Ljava/util/Spliterators;
-Ljava/util/Stack;
-Ljava/util/StringJoiner;
-Ljava/util/StringTokenizer;
-Ljava/util/TaskQueue;
-Ljava/util/TimSort;
-Ljava/util/TimeZone;
-Ljava/util/Timer$ThreadReaper;
-Ljava/util/Timer;
-Ljava/util/TimerTask;
-Ljava/util/TimerThread;
-Ljava/util/TooManyListenersException;
-Ljava/util/TreeMap$AscendingSubMap$AscendingEntrySetView;
-Ljava/util/TreeMap$AscendingSubMap;
-Ljava/util/TreeMap$DescendingSubMap;
-Ljava/util/TreeMap$NavigableSubMap$DescendingSubMapKeyIterator;
-Ljava/util/TreeMap$NavigableSubMap$EntrySetView;
-Ljava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;
-Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;
-Ljava/util/TreeMap$NavigableSubMap;
-Ljava/util/TreeMap$PrivateEntryIterator;
-Ljava/util/TreeMap$ValueIterator;
-Ljava/util/TreeMap$Values;
-Ljava/util/TreeMap;
-Ljava/util/TreeSet;
-Ljava/util/Tripwire$$ExternalSyntheticLambda0;
-Ljava/util/Tripwire;
-Ljava/util/UUID$Holder;
-Ljava/util/UUID;
-Ljava/util/UnknownFormatConversionException;
-Ljava/util/UnknownFormatFlagsException;
-Ljava/util/Vector$1;
-Ljava/util/Vector$Itr-IA;
-Ljava/util/Vector$Itr;
-Ljava/util/Vector;
-Ljava/util/WeakHashMap$Entry;
-Ljava/util/WeakHashMap$EntryIterator-IA;
-Ljava/util/WeakHashMap$EntryIterator;
-Ljava/util/WeakHashMap$EntrySet-IA;
-Ljava/util/WeakHashMap$EntrySet;
-Ljava/util/WeakHashMap$HashIterator;
-Ljava/util/WeakHashMap$KeyIterator-IA;
-Ljava/util/WeakHashMap$KeySet-IA;
-Ljava/util/WeakHashMap$ValueIterator-IA;
-Ljava/util/WeakHashMap$ValueIterator;
-Ljava/util/WeakHashMap$Values-IA;
-Ljava/util/WeakHashMap$Values;
-Ljava/util/WeakHashMap;
-Ljava/util/concurrent/AbstractExecutorService;
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs;
-Ljava/util/concurrent/ArrayBlockingQueue;
-Ljava/util/concurrent/BlockingDeque;
-Ljava/util/concurrent/BlockingQueue;
-Ljava/util/concurrent/Callable;
-Ljava/util/concurrent/CancellationException;
-Ljava/util/concurrent/CompletableFuture$AltResult;
-Ljava/util/concurrent/CompletableFuture$AsyncRun;
-Ljava/util/concurrent/CompletableFuture$AsyncSupply;
-Ljava/util/concurrent/CompletableFuture$AsynchronousCompletionTask;
-Ljava/util/concurrent/CompletableFuture$Completion;
-Ljava/util/concurrent/CompletableFuture$Signaller;
-Ljava/util/concurrent/CompletableFuture$UniCompletion;
-Ljava/util/concurrent/CompletableFuture$UniWhenComplete;
-Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletionException;
-Ljava/util/concurrent/CompletionStage;
-Ljava/util/concurrent/ConcurrentHashMap$BaseIterator;
-Ljava/util/concurrent/ConcurrentHashMap$BulkTask;
-Ljava/util/concurrent/ConcurrentHashMap$CollectionView;
-Ljava/util/concurrent/ConcurrentHashMap$CounterCell;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachEntryTask;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachKeyTask;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachMappingTask;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedEntryTask;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedKeyTask;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedMappingTask;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedValueTask;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachValueTask;
-Ljava/util/concurrent/ConcurrentHashMap$ForwardingNode;
-Ljava/util/concurrent/ConcurrentHashMap$KeyIterator;
-Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
-Ljava/util/concurrent/ConcurrentHashMap$KeySpliterator;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;
-Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;
-Ljava/util/concurrent/ConcurrentHashMap$ReservationNode;
-Ljava/util/concurrent/ConcurrentHashMap$SearchEntriesTask;
-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;
-Ljava/util/concurrent/ConcurrentHashMap;
-Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque;
-Ljava/util/concurrent/ConcurrentLinkedQueue$$ExternalSyntheticLambda0;
-Ljava/util/concurrent/ConcurrentLinkedQueue$$ExternalSyntheticLambda2;
-Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
-Ljava/util/concurrent/ConcurrentLinkedQueue;
-Ljava/util/concurrent/ConcurrentMap$$ExternalSyntheticLambda0;
-Ljava/util/concurrent/ConcurrentMap;
-Ljava/util/concurrent/ConcurrentNavigableMap;
-Ljava/util/concurrent/ConcurrentSkipListMap$Index;
-Ljava/util/concurrent/ConcurrentSkipListMap$Iter;
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;
-Ljava/util/concurrent/ConcurrentSkipListMap$ValueIterator;
-Ljava/util/concurrent/ConcurrentSkipListMap$Values;
-Ljava/util/concurrent/ConcurrentSkipListMap;
-Ljava/util/concurrent/ConcurrentSkipListSet;
-Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda2;
-Ljava/util/concurrent/CopyOnWriteArraySet;
-Ljava/util/concurrent/CountDownLatch$Sync;
-Ljava/util/concurrent/CountDownLatch;
-Ljava/util/concurrent/CountedCompleter;
-Ljava/util/concurrent/DelayQueue;
-Ljava/util/concurrent/Delayed;
-Ljava/util/concurrent/ExecutionException;
-Ljava/util/concurrent/Executor;
-Ljava/util/concurrent/ExecutorService;
-Ljava/util/concurrent/Executors$DefaultThreadFactory;
-Ljava/util/concurrent/Executors$DelegatedExecutorService;
-Ljava/util/concurrent/Executors$RunnableAdapter;
-Ljava/util/concurrent/Executors;
-Ljava/util/concurrent/ForkJoinPool$1;
-Ljava/util/concurrent/ForkJoinPool$DefaultCommonPoolForkJoinWorkerThreadFactory;
-Ljava/util/concurrent/ForkJoinPool$DefaultForkJoinWorkerThreadFactory;
-Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory;
-Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;
-Ljava/util/concurrent/ForkJoinPool;
-Ljava/util/concurrent/ForkJoinTask$Aux;
-Ljava/util/concurrent/ForkJoinTask;
-Ljava/util/concurrent/ForkJoinWorkerThread;
-Ljava/util/concurrent/Future;
-Ljava/util/concurrent/FutureTask$WaitNode;
-Ljava/util/concurrent/FutureTask;
-Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;
-Ljava/util/concurrent/LinkedBlockingDeque$Itr;
-Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque;
-Ljava/util/concurrent/LinkedBlockingQueue$Itr;
-Ljava/util/concurrent/LinkedBlockingQueue$Node;
-Ljava/util/concurrent/LinkedBlockingQueue;
-Ljava/util/concurrent/Phaser;
-Ljava/util/concurrent/PriorityBlockingQueue;
-Ljava/util/concurrent/RejectedExecutionException;
-Ljava/util/concurrent/RejectedExecutionHandler;
-Ljava/util/concurrent/RunnableFuture;
-Ljava/util/concurrent/RunnableScheduledFuture;
-Ljava/util/concurrent/ScheduledExecutorService;
-Ljava/util/concurrent/ScheduledFuture;
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;
-Ljava/util/concurrent/Semaphore$FairSync;
-Ljava/util/concurrent/Semaphore$NonfairSync;
-Ljava/util/concurrent/Semaphore$Sync;
-Ljava/util/concurrent/Semaphore;
-Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;
-Ljava/util/concurrent/SynchronousQueue$TransferQueue;
-Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
-Ljava/util/concurrent/SynchronousQueue$TransferStack;
-Ljava/util/concurrent/SynchronousQueue$Transferer;
-Ljava/util/concurrent/SynchronousQueue;
-Ljava/util/concurrent/ThreadFactory;
-Ljava/util/concurrent/ThreadLocalRandom;
-Ljava/util/concurrent/ThreadPoolExecutor$AbortPolicy;
-Ljava/util/concurrent/ThreadPoolExecutor$DiscardPolicy;
-Ljava/util/concurrent/TimeUnit$1;
-Ljava/util/concurrent/TimeUnit;
-Ljava/util/concurrent/TimeoutException;
-Ljava/util/concurrent/atomic/AtomicBoolean;
-Ljava/util/concurrent/atomic/AtomicInteger;
-Ljava/util/concurrent/atomic/AtomicIntegerArray;
-Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;
-Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
-Ljava/util/concurrent/atomic/AtomicLong;
-Ljava/util/concurrent/atomic/AtomicLongArray;
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater;
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
-Ljava/util/concurrent/atomic/AtomicReference;
-Ljava/util/concurrent/atomic/AtomicReferenceArray;
-Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;
-Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
-Ljava/util/concurrent/atomic/LongAdder;
-Ljava/util/concurrent/atomic/Striped64$1;
-Ljava/util/concurrent/atomic/Striped64$Cell;
-Ljava/util/concurrent/atomic/Striped64;
-Ljava/util/concurrent/locks/AbstractOwnableSynchronizer;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ExclusiveNode;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$SharedNode;
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;
-Ljava/util/concurrent/locks/Condition;
-Ljava/util/concurrent/locks/Lock;
-Ljava/util/concurrent/locks/LockSupport;
-Ljava/util/concurrent/locks/ReadWriteLock;
-Ljava/util/concurrent/locks/ReentrantLock$FairSync;
-Ljava/util/concurrent/locks/ReentrantLock$NonfairSync;
-Ljava/util/concurrent/locks/ReentrantLock$Sync;
-Ljava/util/concurrent/locks/ReentrantLock;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock;
-Ljava/util/function/BiConsumer;
-Ljava/util/function/BiFunction$$ExternalSyntheticLambda0;
-Ljava/util/function/BiFunction;
-Ljava/util/function/BiPredicate;
-Ljava/util/function/BinaryOperator$$ExternalSyntheticLambda0;
-Ljava/util/function/BinaryOperator;
-Ljava/util/function/BooleanSupplier;
-Ljava/util/function/Consumer$$ExternalSyntheticLambda0;
-Ljava/util/function/Consumer;
-Ljava/util/function/DoubleBinaryOperator;
-Ljava/util/function/DoubleConsumer;
-Ljava/util/function/DoubleSupplier;
-Ljava/util/function/DoubleUnaryOperator$$ExternalSyntheticLambda0;
-Ljava/util/function/DoubleUnaryOperator$$ExternalSyntheticLambda1;
-Ljava/util/function/DoubleUnaryOperator;
-Ljava/util/function/Function$$ExternalSyntheticLambda0;
-Ljava/util/function/Function$$ExternalSyntheticLambda1;
-Ljava/util/function/Function$$ExternalSyntheticLambda2;
-Ljava/util/function/Function;
-Ljava/util/function/IntBinaryOperator;
-Ljava/util/function/IntConsumer;
-Ljava/util/function/IntFunction;
-Ljava/util/function/IntPredicate;
-Ljava/util/function/IntSupplier;
-Ljava/util/function/IntToDoubleFunction;
-Ljava/util/function/IntToLongFunction;
-Ljava/util/function/IntUnaryOperator;
-Ljava/util/function/LongBinaryOperator;
-Ljava/util/function/LongConsumer;
-Ljava/util/function/LongFunction;
-Ljava/util/function/LongPredicate;
-Ljava/util/function/LongSupplier;
-Ljava/util/function/LongUnaryOperator;
-Ljava/util/function/ObjDoubleConsumer;
-Ljava/util/function/ObjIntConsumer;
-Ljava/util/function/ObjLongConsumer;
-Ljava/util/function/Predicate;
-Ljava/util/function/Supplier;
-Ljava/util/function/ToDoubleBiFunction;
-Ljava/util/function/ToDoubleFunction;
-Ljava/util/function/ToIntBiFunction;
-Ljava/util/function/ToIntFunction;
-Ljava/util/function/ToLongBiFunction;
-Ljava/util/function/ToLongFunction;
-Ljava/util/function/UnaryOperator;
-Ljava/util/jar/Attributes$Name;
-Ljava/util/jar/Attributes;
-Ljava/util/jar/JarEntry;
-Ljava/util/jar/JarException;
-Ljava/util/jar/JarFile$JarEntryIterator;
-Ljava/util/jar/JarFile$JarFileEntry;
-Ljava/util/jar/JarFile;
-Ljava/util/jar/JarVerifier$3;
-Ljava/util/jar/JarVerifier$VerifierStream;
-Ljava/util/jar/JarVerifier;
-Ljava/util/jar/Manifest$FastInputStream;
-Ljava/util/jar/Manifest;
-Ljava/util/logging/ConsoleHandler;
-Ljava/util/logging/ErrorManager;
-Ljava/util/logging/FileHandler$1;
-Ljava/util/logging/FileHandler$InitializationErrorManager-IA;
-Ljava/util/logging/FileHandler$InitializationErrorManager;
-Ljava/util/logging/FileHandler$MeteredStream;
-Ljava/util/logging/FileHandler;
-Ljava/util/logging/Filter;
-Ljava/util/logging/Formatter;
-Ljava/util/logging/Handler;
-Ljava/util/logging/Level$KnownLevel;
-Ljava/util/logging/Level;
-Ljava/util/logging/LogManager$1;
-Ljava/util/logging/LogManager$2;
-Ljava/util/logging/LogManager$3;
-Ljava/util/logging/LogManager$4;
-Ljava/util/logging/LogManager$5;
-Ljava/util/logging/LogManager$6;
-Ljava/util/logging/LogManager$7;
-Ljava/util/logging/LogManager$Cleaner;
-Ljava/util/logging/LogManager$LogNode;
-Ljava/util/logging/LogManager$LoggerContext$1;
-Ljava/util/logging/LogManager$LoggerContext;
-Ljava/util/logging/LogManager$LoggerWeakRef;
-Ljava/util/logging/LogManager$RootLogger;
-Ljava/util/logging/LogManager$SystemLoggerContext;
-Ljava/util/logging/LogManager;
-Ljava/util/logging/LogRecord;
-Ljava/util/logging/Logger$1;
-Ljava/util/logging/Logger$LoggerBundle;
-Ljava/util/logging/Logger$SystemLoggerHelper$1;
-Ljava/util/logging/Logger$SystemLoggerHelper;
-Ljava/util/logging/Logger;
-Ljava/util/logging/LoggingPermission;
-Ljava/util/logging/LoggingProxyImpl;
-Ljava/util/logging/SimpleFormatter;
-Ljava/util/logging/StreamHandler;
-Ljava/util/logging/XMLFormatter;
-Ljava/util/prefs/AbstractPreferences;
-Ljava/util/prefs/BackingStoreException;
-Ljava/util/prefs/FileSystemPreferences$3;
-Ljava/util/prefs/FileSystemPreferences;
-Ljava/util/prefs/FileSystemPreferencesFactory;
-Ljava/util/prefs/Preferences;
-Ljava/util/prefs/PreferencesFactory;
-Ljava/util/random/RandomGenerator;
-Ljava/util/regex/ASCII;
-Ljava/util/regex/MatchResult;
-Ljava/util/regex/Matcher;
-Ljava/util/regex/Pattern;
-Ljava/util/regex/PatternSyntaxException;
-Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda0;
-Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda2;
-Ljava/util/stream/AbstractPipeline;
-Ljava/util/stream/AbstractSpinedBuffer;
-Ljava/util/stream/BaseStream;
-Ljava/util/stream/Collector$Characteristics;
-Ljava/util/stream/Collector;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda0;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda13;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda15;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda1;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda20;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda21;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda22;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda23;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda24;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda25;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda26;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda27;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda28;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda30;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda34;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda37;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda39;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda41;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda42;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda45;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda47;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda48;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda49;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda4;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda50;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda51;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda52;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda53;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda54;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda56;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda57;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda63;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda64;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda65;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda66;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda68;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda69;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda72;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda73;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda74;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda75;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda76;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda77;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda79;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda80;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda82;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda87;
-Ljava/util/stream/Collectors$$ExternalSyntheticLambda94;
-Ljava/util/stream/Collectors$CollectorImpl;
-Ljava/util/stream/Collectors;
-Ljava/util/stream/DistinctOps$1$1;
-Ljava/util/stream/DistinctOps$1$2;
-Ljava/util/stream/DistinctOps;
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda0;
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda4;
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda5;
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda7;
-Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda9;
-Ljava/util/stream/DoublePipeline$StatelessOp;
-Ljava/util/stream/DoublePipeline;
-Ljava/util/stream/DoubleStream;
-Ljava/util/stream/FindOps$FindOp;
-Ljava/util/stream/FindOps$FindSink$OfInt$$ExternalSyntheticLambda0;
-Ljava/util/stream/FindOps$FindSink$OfInt$$ExternalSyntheticLambda1;
-Ljava/util/stream/FindOps$FindSink$OfInt;
-Ljava/util/stream/FindOps$FindSink$OfRef$$ExternalSyntheticLambda0;
-Ljava/util/stream/FindOps$FindSink$OfRef$$ExternalSyntheticLambda1;
-Ljava/util/stream/FindOps$FindSink$OfRef;
-Ljava/util/stream/FindOps$FindSink;
-Ljava/util/stream/FindOps;
-Ljava/util/stream/ForEachOps$ForEachOp$OfInt;
-Ljava/util/stream/ForEachOps$ForEachOp$OfRef;
-Ljava/util/stream/ForEachOps$ForEachOp;
-Ljava/util/stream/ForEachOps;
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda0;
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda10;
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda11;
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda12;
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda1;
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda5;
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda7;
-Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda8;
-Ljava/util/stream/IntPipeline$1$1;
-Ljava/util/stream/IntPipeline$4$1;
-Ljava/util/stream/IntPipeline$9;
-Ljava/util/stream/IntPipeline$StatelessOp;
-Ljava/util/stream/IntPipeline;
-Ljava/util/stream/IntStream;
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda2;
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda3;
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda4;
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda7;
-Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda9;
-Ljava/util/stream/LongPipeline$StatelessOp;
-Ljava/util/stream/LongPipeline;
-Ljava/util/stream/LongStream;
-Ljava/util/stream/MatchOps$$ExternalSyntheticLambda0;
-Ljava/util/stream/MatchOps$$ExternalSyntheticLambda1;
-Ljava/util/stream/MatchOps$$ExternalSyntheticLambda3;
-Ljava/util/stream/MatchOps$1MatchSink;
-Ljava/util/stream/MatchOps$2MatchSink;
-Ljava/util/stream/MatchOps$3MatchSink;
-Ljava/util/stream/MatchOps$BooleanTerminalSink;
-Ljava/util/stream/MatchOps$MatchKind;
-Ljava/util/stream/MatchOps$MatchOp;
-Ljava/util/stream/MatchOps;
-Ljava/util/stream/Node$Builder$OfInt;
-Ljava/util/stream/Node$Builder;
-Ljava/util/stream/Node$OfDouble;
-Ljava/util/stream/Node$OfInt;
-Ljava/util/stream/Node$OfLong;
-Ljava/util/stream/Node$OfPrimitive;
-Ljava/util/stream/Node;
-Ljava/util/stream/Nodes$ArrayNode;
-Ljava/util/stream/Nodes$EmptyNode$OfDouble;
-Ljava/util/stream/Nodes$EmptyNode$OfInt;
-Ljava/util/stream/Nodes$EmptyNode$OfLong;
-Ljava/util/stream/Nodes$EmptyNode$OfRef;
-Ljava/util/stream/Nodes$EmptyNode;
-Ljava/util/stream/Nodes$FixedNodeBuilder;
-Ljava/util/stream/Nodes$IntArrayNode;
-Ljava/util/stream/Nodes$IntFixedNodeBuilder;
-Ljava/util/stream/Nodes$IntSpinedNodeBuilder;
-Ljava/util/stream/Nodes$SpinedNodeBuilder;
-Ljava/util/stream/Nodes$ToArrayTask$OfInt-IA;
-Ljava/util/stream/Nodes$ToArrayTask$OfInt;
-Ljava/util/stream/Nodes$ToArrayTask$OfPrimitive-IA;
-Ljava/util/stream/Nodes$ToArrayTask$OfPrimitive;
-Ljava/util/stream/Nodes$ToArrayTask$OfRef-IA;
-Ljava/util/stream/Nodes$ToArrayTask$OfRef;
-Ljava/util/stream/Nodes$ToArrayTask;
-Ljava/util/stream/Nodes;
-Ljava/util/stream/PipelineHelper;
-Ljava/util/stream/ReduceOps$10;
-Ljava/util/stream/ReduceOps$12;
-Ljava/util/stream/ReduceOps$12ReducingSink;
-Ljava/util/stream/ReduceOps$15;
-Ljava/util/stream/ReduceOps$1;
-Ljava/util/stream/ReduceOps$1ReducingSink;
-Ljava/util/stream/ReduceOps$2;
-Ljava/util/stream/ReduceOps$2ReducingSink;
-Ljava/util/stream/ReduceOps$3;
-Ljava/util/stream/ReduceOps$3ReducingSink;
-Ljava/util/stream/ReduceOps$5;
-Ljava/util/stream/ReduceOps$5ReducingSink;
-Ljava/util/stream/ReduceOps$6;
-Ljava/util/stream/ReduceOps$8;
-Ljava/util/stream/ReduceOps$8ReducingSink;
-Ljava/util/stream/ReduceOps$AccumulatingSink;
-Ljava/util/stream/ReduceOps$Box;
-Ljava/util/stream/ReduceOps$ReduceOp;
-Ljava/util/stream/ReduceOps;
-Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda0;
-Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda1;
-Ljava/util/stream/ReferencePipeline$15$1;
-Ljava/util/stream/ReferencePipeline$2$1;
-Ljava/util/stream/ReferencePipeline$3$1;
-Ljava/util/stream/ReferencePipeline$4$1;
-Ljava/util/stream/ReferencePipeline$5$1;
-Ljava/util/stream/ReferencePipeline$5;
-Ljava/util/stream/ReferencePipeline$6$1;
-Ljava/util/stream/ReferencePipeline$6;
-Ljava/util/stream/ReferencePipeline$7$1;
-Ljava/util/stream/ReferencePipeline$7;
-Ljava/util/stream/ReferencePipeline$StatefulOp;
-Ljava/util/stream/ReferencePipeline$StatelessOp;
-Ljava/util/stream/ReferencePipeline;
-Ljava/util/stream/Sink$ChainedInt;
-Ljava/util/stream/Sink$ChainedReference;
-Ljava/util/stream/Sink$OfDouble;
-Ljava/util/stream/Sink$OfInt;
-Ljava/util/stream/Sink$OfLong;
-Ljava/util/stream/Sink;
-Ljava/util/stream/SliceOps$1$1;
-Ljava/util/stream/SliceOps$1;
-Ljava/util/stream/SliceOps;
-Ljava/util/stream/SortedOps$AbstractRefSortingSink;
-Ljava/util/stream/SortedOps$RefSortingSink$$ExternalSyntheticLambda0;
-Ljava/util/stream/SortedOps$RefSortingSink;
-Ljava/util/stream/SortedOps$SizedRefSortingSink;
-Ljava/util/stream/SortedOps;
-Ljava/util/stream/SpinedBuffer$OfInt;
-Ljava/util/stream/SpinedBuffer$OfPrimitive;
-Ljava/util/stream/SpinedBuffer;
-Ljava/util/stream/Stream$Builder;
-Ljava/util/stream/Stream;
-Ljava/util/stream/StreamOpFlag$MaskBuilder;
-Ljava/util/stream/StreamOpFlag$Type;
-Ljava/util/stream/StreamOpFlag;
-Ljava/util/stream/StreamShape;
-Ljava/util/stream/StreamSpliterators$AbstractWrappingSpliterator;
-Ljava/util/stream/StreamSpliterators$InfiniteSupplyingSpliterator$OfRef;
-Ljava/util/stream/StreamSpliterators$InfiniteSupplyingSpliterator;
-Ljava/util/stream/StreamSpliterators$WrappingSpliterator;
-Ljava/util/stream/StreamSupport;
-Ljava/util/stream/Streams$1;
-Ljava/util/stream/Streams$2;
-Ljava/util/stream/Streams$AbstractStreamBuilderImpl-IA;
-Ljava/util/stream/Streams$AbstractStreamBuilderImpl;
-Ljava/util/stream/Streams$ConcatSpliterator$OfRef;
-Ljava/util/stream/Streams$ConcatSpliterator;
-Ljava/util/stream/Streams$RangeIntSpliterator;
-Ljava/util/stream/Streams$StreamBuilderImpl;
-Ljava/util/stream/Streams;
-Ljava/util/stream/TerminalOp;
-Ljava/util/stream/TerminalSink;
-Ljava/util/stream/Tripwire$$ExternalSyntheticLambda0;
-Ljava/util/stream/Tripwire;
-Ljava/util/zip/Adler32;
-Ljava/util/zip/CRC32;
-Ljava/util/zip/CheckedInputStream;
-Ljava/util/zip/Checksum$1;
-Ljava/util/zip/Checksum;
-Ljava/util/zip/DataFormatException;
-Ljava/util/zip/Deflater$DeflaterZStreamRef;
-Ljava/util/zip/Deflater;
-Ljava/util/zip/DeflaterOutputStream;
-Ljava/util/zip/GZIPInputStream$1;
-Ljava/util/zip/GZIPOutputStream;
-Ljava/util/zip/Inflater$InflaterZStreamRef-IA;
-Ljava/util/zip/Inflater$InflaterZStreamRef;
-Ljava/util/zip/Inflater;
-Ljava/util/zip/InflaterInputStream;
-Ljava/util/zip/ZipCoder$UTF8ZipCoder;
-Ljava/util/zip/ZipCoder;
-Ljava/util/zip/ZipConstants;
-Ljava/util/zip/ZipEntry;
-Ljava/util/zip/ZipError;
-Ljava/util/zip/ZipException;
-Ljava/util/zip/ZipFile$CleanableResource;
-Ljava/util/zip/ZipFile$InflaterCleanupAction;
-Ljava/util/zip/ZipFile$Source$End-IA;
-Ljava/util/zip/ZipFile$Source$End;
-Ljava/util/zip/ZipFile$Source$Key;
-Ljava/util/zip/ZipFile$Source;
-Ljava/util/zip/ZipFile$ZipEntryIterator;
-Ljava/util/zip/ZipFile$ZipFileInflaterInputStream;
-Ljava/util/zip/ZipFile$ZipFileInputStream;
-Ljava/util/zip/ZipFile;
-Ljava/util/zip/ZipInputStream;
-Ljava/util/zip/ZipOutputStream;
-Ljava/util/zip/ZipUtils;
-Ljavax/crypto/AEADBadTagException;
-Ljavax/crypto/BadPaddingException;
-Ljavax/crypto/Cipher$CipherSpiAndProvider;
-Ljavax/crypto/Cipher$InitParams;
-Ljavax/crypto/Cipher$InitType;
-Ljavax/crypto/Cipher$NeedToSet;
-Ljavax/crypto/Cipher$SpiAndProviderUpdater;
-Ljavax/crypto/Cipher$Transform;
-Ljavax/crypto/Cipher;
-Ljavax/crypto/CipherInputStream;
-Ljavax/crypto/CipherOutputStream;
-Ljavax/crypto/CipherSpi;
-Ljavax/crypto/CryptoPermissions;
-Ljavax/crypto/IllegalBlockSizeException;
-Ljavax/crypto/JarVerifier$1;
-Ljavax/crypto/JarVerifier;
-Ljavax/crypto/JceSecurity$1;
-Ljavax/crypto/JceSecurity;
-Ljavax/crypto/KeyAgreement;
-Ljavax/crypto/KeyAgreementSpi;
-Ljavax/crypto/KeyGenerator;
-Ljavax/crypto/KeyGeneratorSpi;
-Ljavax/crypto/Mac;
-Ljavax/crypto/MacSpi;
-Ljavax/crypto/NoSuchPaddingException;
-Ljavax/crypto/NullCipher;
-Ljavax/crypto/SecretKey;
-Ljavax/crypto/SecretKeyFactory;
-Ljavax/crypto/SecretKeyFactorySpi;
-Ljavax/crypto/ShortBufferException;
-Ljavax/crypto/interfaces/DHKey;
-Ljavax/crypto/interfaces/DHPrivateKey;
-Ljavax/crypto/interfaces/DHPublicKey;
-Ljavax/crypto/interfaces/PBEKey;
-Ljavax/crypto/spec/DESKeySpec;
-Ljavax/crypto/spec/DESedeKeySpec;
-Ljavax/crypto/spec/DHParameterSpec;
-Ljavax/crypto/spec/DHPrivateKeySpec;
-Ljavax/crypto/spec/DHPublicKeySpec;
-Ljavax/crypto/spec/GCMParameterSpec;
-Ljavax/crypto/spec/IvParameterSpec;
-Ljavax/crypto/spec/OAEPParameterSpec;
-Ljavax/crypto/spec/PBEKeySpec;
-Ljavax/crypto/spec/PBEParameterSpec;
-Ljavax/crypto/spec/PSource$PSpecified;
-Ljavax/crypto/spec/PSource;
-Ljavax/crypto/spec/SecretKeySpec;
-Ljavax/microedition/khronos/egl/EGL10;
-Ljavax/microedition/khronos/egl/EGL11;
-Ljavax/microedition/khronos/egl/EGL;
-Ljavax/microedition/khronos/egl/EGLConfig;
-Ljavax/microedition/khronos/egl/EGLContext;
-Ljavax/microedition/khronos/egl/EGLDisplay;
-Ljavax/microedition/khronos/egl/EGLSurface;
-Ljavax/microedition/khronos/opengles/GL10;
-Ljavax/microedition/khronos/opengles/GL10Ext;
-Ljavax/microedition/khronos/opengles/GL11;
-Ljavax/microedition/khronos/opengles/GL11Ext;
-Ljavax/microedition/khronos/opengles/GL11ExtensionPack;
-Ljavax/microedition/khronos/opengles/GL;
-Ljavax/net/DefaultSocketFactory;
-Ljavax/net/ServerSocketFactory;
-Ljavax/net/SocketFactory;
-Ljavax/net/ssl/DefaultSSLServerSocketFactory;
-Ljavax/net/ssl/DefaultSSLSocketFactory;
-Ljavax/net/ssl/ExtendedSSLSession;
-Ljavax/net/ssl/HandshakeCompletedEvent;
-Ljavax/net/ssl/HandshakeCompletedListener;
-Ljavax/net/ssl/HostnameVerifier;
-Ljavax/net/ssl/HttpsURLConnection$NoPreloadHolder;
-Ljavax/net/ssl/HttpsURLConnection;
-Ljavax/net/ssl/KeyManager;
-Ljavax/net/ssl/KeyManagerFactory$1;
-Ljavax/net/ssl/KeyManagerFactory;
-Ljavax/net/ssl/KeyManagerFactorySpi;
-Ljavax/net/ssl/ManagerFactoryParameters;
-Ljavax/net/ssl/SNIHostName;
-Ljavax/net/ssl/SNIMatcher;
-Ljavax/net/ssl/SNIServerName;
-Ljavax/net/ssl/SSLContext;
-Ljavax/net/ssl/SSLContextSpi;
-Ljavax/net/ssl/SSLEngine;
-Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
-Ljavax/net/ssl/SSLEngineResult$Status;
-Ljavax/net/ssl/SSLEngineResult;
-Ljavax/net/ssl/SSLException;
-Ljavax/net/ssl/SSLHandshakeException;
-Ljavax/net/ssl/SSLParameters;
-Ljavax/net/ssl/SSLPeerUnverifiedException;
-Ljavax/net/ssl/SSLPermission;
-Ljavax/net/ssl/SSLProtocolException;
-Ljavax/net/ssl/SSLServerSocket;
-Ljavax/net/ssl/SSLServerSocketFactory;
-Ljavax/net/ssl/SSLSession;
-Ljavax/net/ssl/SSLSessionBindingEvent;
-Ljavax/net/ssl/SSLSessionBindingListener;
-Ljavax/net/ssl/SSLSessionContext;
-Ljavax/net/ssl/SSLSocket;
-Ljavax/net/ssl/SSLSocketFactory$1;
-Ljavax/net/ssl/SSLSocketFactory;
-Ljavax/net/ssl/StandardConstants;
-Ljavax/net/ssl/TrustManager;
-Ljavax/net/ssl/TrustManagerFactory$1;
-Ljavax/net/ssl/TrustManagerFactory;
-Ljavax/net/ssl/TrustManagerFactorySpi;
-Ljavax/net/ssl/X509ExtendedKeyManager;
-Ljavax/net/ssl/X509ExtendedTrustManager;
-Ljavax/net/ssl/X509KeyManager;
-Ljavax/net/ssl/X509TrustManager;
-Ljavax/security/auth/Destroyable;
-Ljavax/security/auth/callback/Callback;
-Ljavax/security/auth/callback/CallbackHandler;
-Ljavax/security/auth/callback/PasswordCallback;
-Ljavax/security/auth/callback/UnsupportedCallbackException;
-Ljavax/security/auth/x500/X500Principal;
-Ljavax/security/cert/Certificate;
-Ljavax/security/cert/CertificateEncodingException;
-Ljavax/security/cert/CertificateException;
-Ljavax/security/cert/X509Certificate$1;
-Ljavax/security/cert/X509Certificate;
-Ljavax/sip/ClientTransaction;
-Ljavax/sip/Dialog;
-Ljavax/sip/DialogDoesNotExistException;
-Ljavax/sip/DialogState;
-Ljavax/sip/DialogTerminatedEvent;
-Ljavax/sip/IOExceptionEvent;
-Ljavax/sip/InvalidArgumentException;
-Ljavax/sip/ListeningPoint;
-Ljavax/sip/ObjectInUseException;
-Ljavax/sip/PeerUnavailableException;
-Ljavax/sip/ProviderDoesNotExistException;
-Ljavax/sip/RequestEvent;
-Ljavax/sip/ResponseEvent;
-Ljavax/sip/ServerTransaction;
-Ljavax/sip/SipException;
-Ljavax/sip/SipFactory;
-Ljavax/sip/SipListener;
-Ljavax/sip/SipProvider;
-Ljavax/sip/SipStack;
-Ljavax/sip/Timeout;
-Ljavax/sip/TimeoutEvent;
-Ljavax/sip/Transaction;
-Ljavax/sip/TransactionAlreadyExistsException;
-Ljavax/sip/TransactionDoesNotExistException;
-Ljavax/sip/TransactionState;
-Ljavax/sip/TransactionTerminatedEvent;
-Ljavax/sip/TransactionUnavailableException;
-Ljavax/sip/TransportNotSupportedException;
-Ljavax/sip/address/Address;
-Ljavax/sip/address/AddressFactory;
-Ljavax/sip/address/Hop;
-Ljavax/sip/address/Router;
-Ljavax/sip/address/SipURI;
-Ljavax/sip/address/TelURL;
-Ljavax/sip/address/URI;
-Ljavax/sip/header/AcceptEncodingHeader;
-Ljavax/sip/header/AcceptHeader;
-Ljavax/sip/header/AcceptLanguageHeader;
-Ljavax/sip/header/AlertInfoHeader;
-Ljavax/sip/header/AllowEventsHeader;
-Ljavax/sip/header/AllowHeader;
-Ljavax/sip/header/AuthenticationInfoHeader;
-Ljavax/sip/header/AuthorizationHeader;
-Ljavax/sip/header/CSeqHeader;
-Ljavax/sip/header/CallIdHeader;
-Ljavax/sip/header/CallInfoHeader;
-Ljavax/sip/header/ContactHeader;
-Ljavax/sip/header/ContentDispositionHeader;
-Ljavax/sip/header/ContentEncodingHeader;
-Ljavax/sip/header/ContentLanguageHeader;
-Ljavax/sip/header/ContentLengthHeader;
-Ljavax/sip/header/ContentTypeHeader;
-Ljavax/sip/header/DateHeader;
-Ljavax/sip/header/Encoding;
-Ljavax/sip/header/ErrorInfoHeader;
-Ljavax/sip/header/EventHeader;
-Ljavax/sip/header/ExpiresHeader;
-Ljavax/sip/header/ExtensionHeader;
-Ljavax/sip/header/FromHeader;
-Ljavax/sip/header/Header;
-Ljavax/sip/header/HeaderAddress;
-Ljavax/sip/header/HeaderFactory;
-Ljavax/sip/header/InReplyToHeader;
-Ljavax/sip/header/MaxForwardsHeader;
-Ljavax/sip/header/MediaType;
-Ljavax/sip/header/MimeVersionHeader;
-Ljavax/sip/header/MinExpiresHeader;
-Ljavax/sip/header/OptionTag;
-Ljavax/sip/header/OrganizationHeader;
-Ljavax/sip/header/Parameters;
-Ljavax/sip/header/PriorityHeader;
-Ljavax/sip/header/ProxyAuthenticateHeader;
-Ljavax/sip/header/ProxyAuthorizationHeader;
-Ljavax/sip/header/ProxyRequireHeader;
-Ljavax/sip/header/RAckHeader;
-Ljavax/sip/header/RSeqHeader;
-Ljavax/sip/header/ReasonHeader;
-Ljavax/sip/header/RecordRouteHeader;
-Ljavax/sip/header/ReferToHeader;
-Ljavax/sip/header/ReplyToHeader;
-Ljavax/sip/header/RequireHeader;
-Ljavax/sip/header/RetryAfterHeader;
-Ljavax/sip/header/RouteHeader;
-Ljavax/sip/header/SIPETagHeader;
-Ljavax/sip/header/SIPIfMatchHeader;
-Ljavax/sip/header/ServerHeader;
-Ljavax/sip/header/SubjectHeader;
-Ljavax/sip/header/SubscriptionStateHeader;
-Ljavax/sip/header/SupportedHeader;
-Ljavax/sip/header/TimeStampHeader;
-Ljavax/sip/header/ToHeader;
-Ljavax/sip/header/TooManyHopsException;
-Ljavax/sip/header/UnsupportedHeader;
-Ljavax/sip/header/UserAgentHeader;
-Ljavax/sip/header/ViaHeader;
-Ljavax/sip/header/WWWAuthenticateHeader;
-Ljavax/sip/header/WarningHeader;
-Ljavax/sip/message/Message;
-Ljavax/sip/message/MessageFactory;
-Ljavax/sip/message/Request;
-Ljavax/sip/message/Response;
-Ljavax/xml/datatype/DatatypeConfigurationException;
-Ljavax/xml/datatype/DatatypeConstants$Field;
-Ljavax/xml/datatype/DatatypeConstants;
-Ljavax/xml/datatype/Duration;
-Ljavax/xml/namespace/QName;
-Ljavax/xml/parsers/DocumentBuilder;
-Ljavax/xml/parsers/DocumentBuilderFactory;
-Ljavax/xml/parsers/ParserConfigurationException;
-Ljavax/xml/parsers/SAXParser;
-Ljavax/xml/parsers/SAXParserFactory;
-Ljdk/internal/access/JavaIOFileDescriptorAccess;
-Ljdk/internal/access/JavaObjectInputStreamAccess;
-Ljdk/internal/access/JavaUtilCollectionAccess;
-Ljdk/internal/access/SharedSecrets;
-Ljdk/internal/math/FDBigInteger;
-Ljdk/internal/math/FloatingDecimal$1;
-Ljdk/internal/math/FloatingDecimal$ASCIIToBinaryConverter;
-Ljdk/internal/math/FloatingDecimal$BinaryToASCIIConverter;
-Ljdk/internal/math/FloatingDecimal$ExceptionalBinaryToASCIIBuffer;
-Ljdk/internal/math/FloatingDecimal$HexFloatPattern;
-Ljdk/internal/math/FloatingDecimal;
-Ljdk/internal/math/FormattedFloatingDecimal$1;
-Ljdk/internal/math/FormattedFloatingDecimal$Form;
-Ljdk/internal/math/FormattedFloatingDecimal;
-Ljdk/internal/misc/TerminatingThreadLocal$1;
-Ljdk/internal/misc/TerminatingThreadLocal;
-Ljdk/internal/misc/Unsafe;
-Ljdk/internal/misc/UnsafeConstants;
-Ljdk/internal/misc/VM;
-Ljdk/internal/ref/CleanerFactory;
-Ljdk/internal/ref/CleanerImpl$PhantomCleanableRef;
-Ljdk/internal/ref/CleanerImpl;
-Ljdk/internal/ref/PhantomCleanable;
-Ljdk/internal/reflect/Reflection;
-Ljdk/internal/util/ArraysSupport;
-Ljdk/internal/util/NullableKeyValueHolder;
-Ljdk/internal/util/Preconditions;
-Ljdk/internal/util/StaticProperty;
-Ljdk/internal/util/random/RandomSupport;
-Llibcore/content/type/MimeMap$$ExternalSyntheticLambda0;
-Llibcore/content/type/MimeMap$Builder$Element;
-Llibcore/content/type/MimeMap$Builder;
-Llibcore/content/type/MimeMap$MemoizingSupplier;
-Llibcore/content/type/MimeMap-IA;
-Llibcore/content/type/MimeMap;
-Llibcore/icu/CollationKeyICU;
-Llibcore/icu/DateIntervalFormat;
-Llibcore/icu/DecimalFormatData;
-Llibcore/icu/ICU;
-Llibcore/icu/LocaleData;
-Llibcore/icu/SimpleDateFormatData;
-Llibcore/icu/TimeZoneNames$1;
-Llibcore/icu/TimeZoneNames$ZoneStringsCache;
-Llibcore/icu/TimeZoneNames;
-Llibcore/internal/StringPool;
-Llibcore/io/AsynchronousCloseMonitor;
-Llibcore/io/BufferIterator;
-Llibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection$1;
-Llibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection;
-Llibcore/io/ClassPathURLStreamHandler;
-Llibcore/io/ForwardingOs;
-Llibcore/io/IoBridge;
-Llibcore/io/IoTracker$Mode;
-Llibcore/io/IoTracker;
-Llibcore/io/IoUtils$FileReader;
-Llibcore/io/IoUtils;
-Llibcore/io/Libcore;
-Llibcore/io/Linux;
-Llibcore/io/Memory;
-Llibcore/io/MemoryMappedFile;
-Llibcore/io/NioBufferIterator;
-Llibcore/io/Os;
-Llibcore/io/Streams;
-Llibcore/math/NativeBN;
-Llibcore/net/InetAddressUtils;
-Llibcore/net/NetworkSecurityPolicy$DefaultNetworkSecurityPolicy;
-Llibcore/net/NetworkSecurityPolicy;
-Llibcore/net/event/NetworkEventDispatcher;
-Llibcore/net/event/NetworkEventListener;
-Llibcore/net/http/Dns;
-Llibcore/net/http/HttpDate$1;
-Llibcore/net/http/HttpDate;
-Llibcore/net/http/HttpURLConnectionFactory;
-Llibcore/reflect/AnnotatedElements;
-Llibcore/reflect/AnnotationFactory;
-Llibcore/reflect/AnnotationMember$DefaultValues;
-Llibcore/reflect/AnnotationMember;
-Llibcore/reflect/GenericArrayTypeImpl;
-Llibcore/reflect/GenericSignatureParser;
-Llibcore/reflect/ListOfTypes;
-Llibcore/reflect/ListOfVariables;
-Llibcore/reflect/ParameterizedTypeImpl;
-Llibcore/reflect/RecordComponents;
-Llibcore/reflect/TypeVariableImpl;
-Llibcore/reflect/Types;
-Llibcore/reflect/WildcardTypeImpl;
-Llibcore/util/ArrayUtils;
-Llibcore/util/BasicLruCache;
-Llibcore/util/CharsetUtils;
-Llibcore/util/CollectionUtils;
-Llibcore/util/EmptyArray;
-Llibcore/util/FP16;
-Llibcore/util/HexEncoding;
-Llibcore/util/NativeAllocationRegistry$CleanerRunner;
-Llibcore/util/NativeAllocationRegistry$CleanerThunk;
-Llibcore/util/Objects;
-Llibcore/util/SneakyThrow;
-Llibcore/util/XmlObjectFactory;
-Lorg/apache/harmony/dalvik/ddmc/Chunk;
-Lorg/apache/harmony/dalvik/ddmc/ChunkHandler;
-Lorg/apache/harmony/dalvik/ddmc/DdmServer;
-Lorg/apache/harmony/dalvik/ddmc/DdmVmInternal;
-Lorg/apache/harmony/xml/ExpatAttributes;
-Lorg/apache/harmony/xml/ExpatException;
-Lorg/apache/harmony/xml/ExpatParser$CurrentAttributes-IA;
-Lorg/apache/harmony/xml/ExpatParser$CurrentAttributes;
-Lorg/apache/harmony/xml/ExpatParser$ExpatLocator-IA;
-Lorg/apache/harmony/xml/ExpatParser$ExpatLocator;
-Lorg/apache/harmony/xml/ExpatParser$ParseException;
-Lorg/apache/harmony/xml/ExpatParser;
-Lorg/apache/harmony/xml/ExpatReader;
-Lorg/apache/harmony/xml/dom/AttrImpl;
-Lorg/apache/harmony/xml/dom/CDATASectionImpl;
-Lorg/apache/harmony/xml/dom/CharacterDataImpl;
-Lorg/apache/harmony/xml/dom/CommentImpl;
-Lorg/apache/harmony/xml/dom/DOMImplementationImpl;
-Lorg/apache/harmony/xml/dom/DocumentTypeImpl;
-Lorg/apache/harmony/xml/dom/EntityReferenceImpl;
-Lorg/apache/harmony/xml/dom/InnerNodeImpl;
-Lorg/apache/harmony/xml/dom/LeafNodeImpl;
-Lorg/apache/harmony/xml/dom/NodeImpl$1;
-Lorg/apache/harmony/xml/dom/NodeImpl;
-Lorg/apache/harmony/xml/dom/NodeListImpl;
-Lorg/apache/harmony/xml/dom/ProcessingInstructionImpl;
-Lorg/apache/harmony/xml/parsers/DocumentBuilderFactoryImpl;
-Lorg/apache/harmony/xml/parsers/DocumentBuilderImpl;
-Lorg/apache/harmony/xml/parsers/SAXParserFactoryImpl;
-Lorg/apache/harmony/xml/parsers/SAXParserImpl;
-Lorg/apache/http/conn/ConnectTimeoutException;
-Lorg/apache/http/conn/scheme/HostNameResolver;
-Lorg/apache/http/conn/scheme/LayeredSocketFactory;
-Lorg/apache/http/conn/scheme/SocketFactory;
-Lorg/apache/http/conn/ssl/AbstractVerifier;
-Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier;
-Lorg/apache/http/conn/ssl/AndroidDistinguishedNameParser;
-Lorg/apache/http/conn/ssl/BrowserCompatHostnameVerifier;
-Lorg/apache/http/conn/ssl/SSLSocketFactory$NoPreloadHolder;
-Lorg/apache/http/conn/ssl/SSLSocketFactory;
-Lorg/apache/http/conn/ssl/StrictHostnameVerifier;
-Lorg/apache/http/conn/ssl/X509HostnameVerifier;
-Lorg/apache/http/params/CoreConnectionPNames;
-Lorg/apache/http/params/HttpConnectionParams;
-Lorg/apache/http/params/HttpParams;
-Lorg/ccil/cowan/tagsoup/AutoDetector;
-Lorg/ccil/cowan/tagsoup/CommandLine;
-Lorg/ccil/cowan/tagsoup/Element;
-Lorg/ccil/cowan/tagsoup/ElementType;
-Lorg/ccil/cowan/tagsoup/HTMLModels;
-Lorg/ccil/cowan/tagsoup/HTMLScanner;
-Lorg/ccil/cowan/tagsoup/HTMLSchema;
-Lorg/ccil/cowan/tagsoup/PYXScanner;
-Lorg/ccil/cowan/tagsoup/PYXWriter;
-Lorg/ccil/cowan/tagsoup/Parser$1;
-Lorg/ccil/cowan/tagsoup/Parser;
-Lorg/ccil/cowan/tagsoup/ScanHandler;
-Lorg/ccil/cowan/tagsoup/Scanner;
-Lorg/ccil/cowan/tagsoup/Schema;
-Lorg/ccil/cowan/tagsoup/XMLWriter;
-Lorg/ccil/cowan/tagsoup/jaxp/JAXPTest;
-Lorg/ccil/cowan/tagsoup/jaxp/SAX1ParserAdapter$AttributesWrapper;
-Lorg/ccil/cowan/tagsoup/jaxp/SAX1ParserAdapter$DocHandlerWrapper;
-Lorg/ccil/cowan/tagsoup/jaxp/SAX1ParserAdapter;
-Lorg/ccil/cowan/tagsoup/jaxp/SAXFactoryImpl;
-Lorg/ccil/cowan/tagsoup/jaxp/SAXParserImpl;
-Lorg/json/JSON;
-Lorg/json/JSONArray;
-Lorg/json/JSONException;
-Lorg/json/JSONObject$1;
-Lorg/json/JSONObject;
-Lorg/json/JSONStringer$Scope;
-Lorg/json/JSONStringer;
-Lorg/json/JSONTokener;
-Lorg/w3c/dom/Attr;
-Lorg/w3c/dom/CDATASection;
-Lorg/w3c/dom/CharacterData;
-Lorg/w3c/dom/Comment;
-Lorg/w3c/dom/DOMException;
-Lorg/w3c/dom/DOMImplementation;
-Lorg/w3c/dom/Document;
-Lorg/w3c/dom/DocumentFragment;
-Lorg/w3c/dom/DocumentType;
-Lorg/w3c/dom/Element;
-Lorg/w3c/dom/EntityReference;
-Lorg/w3c/dom/Node;
-Lorg/w3c/dom/NodeList;
-Lorg/w3c/dom/ProcessingInstruction;
-Lorg/w3c/dom/Text;
-Lorg/w3c/dom/TypeInfo;
-Lorg/xml/sax/AttributeList;
-Lorg/xml/sax/Attributes;
-Lorg/xml/sax/ContentHandler;
-Lorg/xml/sax/DTDHandler;
-Lorg/xml/sax/DocumentHandler;
-Lorg/xml/sax/EntityResolver;
-Lorg/xml/sax/ErrorHandler;
-Lorg/xml/sax/InputSource;
-Lorg/xml/sax/Locator;
-Lorg/xml/sax/Parser;
-Lorg/xml/sax/SAXException;
-Lorg/xml/sax/SAXNotRecognizedException;
-Lorg/xml/sax/SAXNotSupportedException;
-Lorg/xml/sax/SAXParseException;
-Lorg/xml/sax/XMLFilter;
-Lorg/xml/sax/XMLReader;
-Lorg/xml/sax/ext/DeclHandler;
-Lorg/xml/sax/ext/DefaultHandler2;
-Lorg/xml/sax/ext/EntityResolver2;
-Lorg/xml/sax/ext/LexicalHandler;
-Lorg/xml/sax/helpers/AttributesImpl;
-Lorg/xml/sax/helpers/DefaultHandler;
-Lorg/xml/sax/helpers/LocatorImpl;
-Lorg/xml/sax/helpers/NamespaceSupport;
-Lorg/xml/sax/helpers/XMLFilterImpl;
-Lorg/xmlpull/v1/XmlPullParser;
-Lorg/xmlpull/v1/XmlPullParserException;
-Lorg/xmlpull/v1/XmlPullParserFactory;
-Lorg/xmlpull/v1/XmlSerializer;
-Lsun/invoke/util/BytecodeDescriptor;
-Lsun/invoke/util/VerifyAccess;
-Lsun/invoke/util/Wrapper$Format;
-Lsun/invoke/util/Wrapper;
-Lsun/misc/ASCIICaseInsensitiveComparator;
-Lsun/misc/CharacterEncoder;
-Lsun/misc/Cleaner$1;
-Lsun/misc/Cleaner;
-Lsun/misc/CompoundEnumeration;
-Lsun/misc/HexDumpEncoder;
-Lsun/misc/IOUtils;
-Lsun/misc/LRUCache;
-Lsun/misc/Unsafe;
-Lsun/misc/VM;
-Lsun/misc/Version;
-Lsun/net/ConnectionResetException;
-Lsun/net/NetHooks;
-Lsun/net/NetProperties$1;
-Lsun/net/NetProperties;
-Lsun/net/ResourceManager;
-Lsun/net/SocksProxy;
-Lsun/net/spi/DefaultProxySelector$1;
-Lsun/net/spi/DefaultProxySelector$NonProxyInfo;
-Lsun/net/spi/DefaultProxySelector;
-Lsun/net/spi/nameservice/NameService;
-Lsun/net/util/IPAddressUtil;
-Lsun/net/www/ParseUtil;
-Lsun/net/www/protocol/file/Handler;
-Lsun/net/www/protocol/ftp/Handler;
-Lsun/net/www/protocol/jar/Handler;
-Lsun/nio/ch/AbstractPollArrayWrapper;
-Lsun/nio/ch/AbstractPollSelectorImpl;
-Lsun/nio/ch/AllocatedNativeObject;
-Lsun/nio/ch/AsynchronousFileChannelImpl;
-Lsun/nio/ch/ChannelInputStream;
-Lsun/nio/ch/DatagramChannelImpl;
-Lsun/nio/ch/DatagramDispatcher;
-Lsun/nio/ch/DefaultSelectorProvider;
-Lsun/nio/ch/DirectBuffer;
-Lsun/nio/ch/FileChannelImpl$SimpleFileLockTable;
-Lsun/nio/ch/FileChannelImpl$Unmapper-IA;
-Lsun/nio/ch/FileChannelImpl$Unmapper;
-Lsun/nio/ch/FileDescriptorHolderSocketImpl;
-Lsun/nio/ch/FileDispatcher;
-Lsun/nio/ch/FileDispatcherImpl;
-Lsun/nio/ch/FileKey;
-Lsun/nio/ch/FileLockImpl;
-Lsun/nio/ch/FileLockTable;
-Lsun/nio/ch/IOStatus;
-Lsun/nio/ch/IOUtil;
-Lsun/nio/ch/Interruptible;
-Lsun/nio/ch/LinuxAsynchronousChannelProvider;
-Lsun/nio/ch/NativeDispatcher;
-Lsun/nio/ch/NativeObject;
-Lsun/nio/ch/NativeThread;
-Lsun/nio/ch/NativeThreadSet;
-Lsun/nio/ch/Net$1;
-Lsun/nio/ch/Net$3;
-Lsun/nio/ch/Net;
-Lsun/nio/ch/PollArrayWrapper;
-Lsun/nio/ch/PollSelectorImpl;
-Lsun/nio/ch/PollSelectorProvider;
-Lsun/nio/ch/SelChImpl;
-Lsun/nio/ch/SelectionKeyImpl;
-Lsun/nio/ch/SelectorImpl;
-Lsun/nio/ch/SelectorProviderImpl;
-Lsun/nio/ch/ServerSocketChannelImpl;
-Lsun/nio/ch/SharedFileLockTable$FileLockReference;
-Lsun/nio/ch/SharedFileLockTable;
-Lsun/nio/ch/SocketAdaptor$1;
-Lsun/nio/ch/SocketAdaptor$2;
-Lsun/nio/ch/SocketAdaptor$SocketInputStream;
-Lsun/nio/ch/SocketAdaptor;
-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;
-Lsun/nio/cs/ArrayEncoder;
-Lsun/nio/cs/StreamDecoder;
-Lsun/nio/cs/StreamEncoder;
-Lsun/nio/cs/ThreadLocalCoders$1;
-Lsun/nio/cs/ThreadLocalCoders$2;
-Lsun/nio/cs/ThreadLocalCoders$Cache;
-Lsun/nio/cs/ThreadLocalCoders;
-Lsun/nio/fs/AbstractBasicFileAttributeView;
-Lsun/nio/fs/AbstractFileSystemProvider;
-Lsun/nio/fs/AbstractPath;
-Lsun/nio/fs/DefaultFileSystemProvider;
-Lsun/nio/fs/DynamicFileAttributeView;
-Lsun/nio/fs/FileOwnerAttributeViewImpl;
-Lsun/nio/fs/LinuxFileSystemProvider;
-Lsun/nio/fs/NativeBuffer$Deallocator;
-Lsun/nio/fs/NativeBuffer;
-Lsun/nio/fs/NativeBuffers;
-Lsun/nio/fs/UnixChannelFactory$1;
-Lsun/nio/fs/UnixChannelFactory$Flags;
-Lsun/nio/fs/UnixChannelFactory;
-Lsun/nio/fs/UnixConstants;
-Lsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;
-Lsun/nio/fs/UnixDirectoryStream;
-Lsun/nio/fs/UnixException;
-Lsun/nio/fs/UnixFileAttributeViews$Basic;
-Lsun/nio/fs/UnixFileAttributeViews$Posix;
-Lsun/nio/fs/UnixFileAttributeViews;
-Lsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;
-Lsun/nio/fs/UnixFileAttributes;
-Lsun/nio/fs/UnixFileKey;
-Lsun/nio/fs/UnixFileModeAttribute;
-Lsun/nio/fs/UnixFileStoreAttributes;
-Lsun/nio/fs/UnixFileSystem;
-Lsun/nio/fs/UnixFileSystemProvider$3;
-Lsun/nio/fs/UnixFileSystemProvider;
-Lsun/nio/fs/UnixMountEntry;
-Lsun/nio/fs/UnixNativeDispatcher;
-Lsun/nio/fs/UnixSecureDirectoryStream;
-Lsun/nio/fs/Util;
-Lsun/reflect/Reflection;
-Lsun/reflect/misc/ReflectUtil;
-Lsun/security/action/GetBooleanAction;
-Lsun/security/action/GetIntegerAction;
-Lsun/security/action/GetPropertyAction;
-Lsun/security/jca/GetInstance$Instance-IA;
-Lsun/security/jca/GetInstance$Instance;
-Lsun/security/jca/GetInstance;
-Lsun/security/jca/JCAUtil$CachedSecureRandomHolder;
-Lsun/security/jca/JCAUtil;
-Lsun/security/jca/ProviderConfig$1;
-Lsun/security/jca/ProviderConfig$2;
-Lsun/security/jca/ProviderConfig$3;
-Lsun/security/jca/ProviderConfig;
-Lsun/security/jca/ProviderList$1;
-Lsun/security/jca/ProviderList$2;
-Lsun/security/jca/ProviderList$3;
-Lsun/security/jca/ProviderList$ServiceList$1;
-Lsun/security/jca/ProviderList$ServiceList;
-Lsun/security/jca/ProviderList;
-Lsun/security/jca/Providers;
-Lsun/security/jca/ServiceId;
-Lsun/security/pkcs/ContentInfo;
-Lsun/security/pkcs/ESSCertId;
-Lsun/security/pkcs/PKCS7$VerbatimX509Certificate;
-Lsun/security/pkcs/PKCS7$WrappedX509Certificate;
-Lsun/security/pkcs/PKCS7;
-Lsun/security/pkcs/PKCS9Attribute;
-Lsun/security/pkcs/PKCS9Attributes;
-Lsun/security/pkcs/ParsingException;
-Lsun/security/pkcs/SignerInfo;
-Lsun/security/provider/CertPathProvider;
-Lsun/security/provider/X509Factory;
-Lsun/security/provider/certpath/AdaptableX509CertSelector;
-Lsun/security/provider/certpath/AlgorithmChecker;
-Lsun/security/provider/certpath/BasicChecker;
-Lsun/security/provider/certpath/CertId;
-Lsun/security/provider/certpath/CertPathHelper;
-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/OCSP;
-Lsun/security/provider/certpath/OCSPResponse$ResponseStatus;
-Lsun/security/provider/certpath/OCSPResponse$SingleResponse-IA;
-Lsun/security/provider/certpath/OCSPResponse$SingleResponse;
-Lsun/security/provider/certpath/OCSPResponse;
-Lsun/security/provider/certpath/PKIX$ValidatorParams;
-Lsun/security/provider/certpath/PKIX;
-Lsun/security/provider/certpath/PKIXCertPathValidator;
-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-IA;
-Lsun/security/provider/certpath/RevocationChecker$RevocationProperties;
-Lsun/security/provider/certpath/RevocationChecker;
-Lsun/security/timestamp/TimestampToken;
-Lsun/security/util/AbstractAlgorithmConstraints$1;
-Lsun/security/util/AbstractAlgorithmConstraints;
-Lsun/security/util/AlgorithmDecomposer;
-Lsun/security/util/AnchorCertificates$1;
-Lsun/security/util/AnchorCertificates;
-Lsun/security/util/BitArray;
-Lsun/security/util/ByteArrayLexOrder;
-Lsun/security/util/ByteArrayTagOrder;
-Lsun/security/util/Cache$EqualByteArray;
-Lsun/security/util/Cache;
-Lsun/security/util/CertConstraintParameters;
-Lsun/security/util/Debug;
-Lsun/security/util/DerEncoder;
-Lsun/security/util/DerIndefLenConverter;
-Lsun/security/util/DerInputBuffer;
-Lsun/security/util/DerInputStream;
-Lsun/security/util/DerOutputStream;
-Lsun/security/util/DerValue;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraints;
-Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;
-Lsun/security/util/DisabledAlgorithmConstraints$jdkCAConstraint;
-Lsun/security/util/DisabledAlgorithmConstraints;
-Lsun/security/util/FilePaths;
-Lsun/security/util/KeyUtil;
-Lsun/security/util/Length;
-Lsun/security/util/ManifestDigester$Entry;
-Lsun/security/util/ManifestDigester$Position;
-Lsun/security/util/ManifestDigester;
-Lsun/security/util/ManifestEntryVerifier$SunProviderHolder;
-Lsun/security/util/ManifestEntryVerifier;
-Lsun/security/util/MemoryCache$CacheEntry;
-Lsun/security/util/MemoryCache$HardCacheEntry;
-Lsun/security/util/MemoryCache$SoftCacheEntry;
-Lsun/security/util/MemoryCache;
-Lsun/security/util/ObjectIdentifier;
-Lsun/security/util/PropertyExpander;
-Lsun/security/util/Resources;
-Lsun/security/util/ResourcesMgr$1;
-Lsun/security/util/ResourcesMgr;
-Lsun/security/util/SecurityConstants;
-Lsun/security/util/SignatureFileVerifier;
-Lsun/security/x509/AVA;
-Lsun/security/x509/AVAComparator;
-Lsun/security/x509/AVAKeyword;
-Lsun/security/x509/AccessDescription;
-Lsun/security/x509/AlgorithmId;
-Lsun/security/x509/AuthorityInfoAccessExtension;
-Lsun/security/x509/AuthorityKeyIdentifierExtension;
-Lsun/security/x509/BasicConstraintsExtension;
-Lsun/security/x509/CRLDistributionPointsExtension;
-Lsun/security/x509/CRLNumberExtension;
-Lsun/security/x509/CRLReasonCodeExtension;
-Lsun/security/x509/CertAttrSet;
-Lsun/security/x509/CertificateAlgorithmId;
-Lsun/security/x509/CertificateExtensions;
-Lsun/security/x509/CertificateIssuerExtension;
-Lsun/security/x509/CertificatePoliciesExtension;
-Lsun/security/x509/CertificatePolicyId;
-Lsun/security/x509/CertificatePolicyMap;
-Lsun/security/x509/CertificatePolicySet;
-Lsun/security/x509/CertificateSerialNumber;
-Lsun/security/x509/CertificateValidity;
-Lsun/security/x509/CertificateVersion;
-Lsun/security/x509/CertificateX509Key;
-Lsun/security/x509/DNSName;
-Lsun/security/x509/DeltaCRLIndicatorExtension;
-Lsun/security/x509/DistributionPoint;
-Lsun/security/x509/EDIPartyName;
-Lsun/security/x509/ExtendedKeyUsageExtension;
-Lsun/security/x509/Extension;
-Lsun/security/x509/FreshestCRLExtension;
-Lsun/security/x509/GeneralName;
-Lsun/security/x509/GeneralNameInterface;
-Lsun/security/x509/GeneralNames;
-Lsun/security/x509/IPAddressName;
-Lsun/security/x509/InhibitAnyPolicyExtension;
-Lsun/security/x509/IssuerAlternativeNameExtension;
-Lsun/security/x509/IssuingDistributionPointExtension;
-Lsun/security/x509/KeyIdentifier;
-Lsun/security/x509/KeyUsageExtension;
-Lsun/security/x509/NameConstraintsExtension;
-Lsun/security/x509/NetscapeCertTypeExtension$MapEntry;
-Lsun/security/x509/NetscapeCertTypeExtension;
-Lsun/security/x509/OCSPNoCheckExtension;
-Lsun/security/x509/OIDMap$OIDInfo;
-Lsun/security/x509/OIDMap;
-Lsun/security/x509/OIDName;
-Lsun/security/x509/OtherName;
-Lsun/security/x509/PKIXExtensions;
-Lsun/security/x509/PolicyConstraintsExtension;
-Lsun/security/x509/PolicyInformation;
-Lsun/security/x509/PolicyMappingsExtension;
-Lsun/security/x509/PrivateKeyUsageExtension;
-Lsun/security/x509/RDN;
-Lsun/security/x509/RFC822Name;
-Lsun/security/x509/SerialNumber;
-Lsun/security/x509/SubjectAlternativeNameExtension;
-Lsun/security/x509/SubjectInfoAccessExtension;
-Lsun/security/x509/SubjectKeyIdentifierExtension;
-Lsun/security/x509/URIName;
-Lsun/security/x509/UniqueIdentity;
-Lsun/security/x509/UnparseableExtension;
-Lsun/security/x509/X500Name$1;
-Lsun/security/x509/X500Name;
-Lsun/security/x509/X509AttributeName;
-Lsun/security/x509/X509CRLImpl;
-Lsun/security/x509/X509CertImpl;
-Lsun/security/x509/X509CertInfo;
-Lsun/security/x509/X509Key;
-Lsun/util/calendar/AbstractCalendar;
-Lsun/util/calendar/BaseCalendar$Date;
-Lsun/util/calendar/BaseCalendar;
-Lsun/util/calendar/CalendarDate;
-Lsun/util/calendar/CalendarSystem$GregorianHolder;
-Lsun/util/calendar/CalendarSystem;
-Lsun/util/calendar/CalendarUtils;
-Lsun/util/calendar/Era;
-Lsun/util/calendar/Gregorian$Date;
-Lsun/util/calendar/Gregorian;
-Lsun/util/calendar/ImmutableGregorianDate;
-Lsun/util/calendar/JulianCalendar$Date;
-Lsun/util/calendar/JulianCalendar;
-Lsun/util/calendar/LocalGregorianCalendar;
-Lsun/util/locale/BaseLocale$Cache;
-Lsun/util/locale/BaseLocale$Key-IA;
-Lsun/util/locale/BaseLocale$Key;
-Lsun/util/locale/BaseLocale-IA;
-Lsun/util/locale/BaseLocale;
-Lsun/util/locale/Extension;
-Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar-IA;
-Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar;
-Lsun/util/locale/InternalLocaleBuilder;
-Lsun/util/locale/LanguageTag;
-Lsun/util/locale/LocaleExtensions;
-Lsun/util/locale/LocaleMatcher;
-Lsun/util/locale/LocaleObjectCache$CacheEntry;
-Lsun/util/locale/LocaleObjectCache;
-Lsun/util/locale/LocaleSyntaxException;
-Lsun/util/locale/LocaleUtils;
-Lsun/util/locale/ParseStatus;
-Lsun/util/locale/StringTokenIterator;
-Lsun/util/locale/UnicodeLocaleExtension;
-Lsun/util/locale/provider/CalendarDataUtility;
-Lsun/util/logging/LoggingProxy;
-Lsun/util/logging/LoggingSupport$1;
-Lsun/util/logging/LoggingSupport$2;
-Lsun/util/logging/LoggingSupport;
-Lsun/util/logging/PlatformLogger$1;
-Lsun/util/logging/PlatformLogger$DefaultLoggerProxy;
-Lsun/util/logging/PlatformLogger$JavaLoggerProxy;
-Lsun/util/logging/PlatformLogger$Level;
-Lsun/util/logging/PlatformLogger$LoggerProxy;
-Lsun/util/logging/PlatformLogger;
-[B
-[C
-[D
-[F
-[I
-[J
-[Landroid/accounts/Account;
-[Landroid/accounts/AuthenticatorDescription;
-[Landroid/animation/Animator;
-[Landroid/animation/Keyframe$FloatKeyframe;
-[Landroid/animation/Keyframe$IntKeyframe;
-[Landroid/animation/Keyframe$ObjectKeyframe;
-[Landroid/animation/Keyframe;
-[Landroid/animation/PropertyValuesHolder;
-[Landroid/app/AppOpInfo;
-[Landroid/app/BackStackState;
-[Landroid/app/FragmentState;
-[Landroid/app/LoaderManagerImpl;
-[Landroid/app/Notification$Action;
-[Landroid/app/NotificationChannel;
-[Landroid/app/NotificationChannelGroup;
-[Landroid/app/Person;
-[Landroid/app/RemoteInput;
-[Landroid/app/RemoteInputHistoryItem;
-[Landroid/app/VoiceInteractor$Request;
-[Landroid/app/admin/PasswordMetrics$ComplexityBucket;
-[Landroid/app/assist/AssistStructure$ViewNode;
-[Landroid/app/job/JobInfo$TriggerContentUri;
-[Landroid/app/slice/SliceItem;
-[Landroid/app/slice/SliceSpec;
-[Landroid/audio/policy/configuration/V7_0/AudioUsage;
-[Landroid/content/AttributionSourceState;
-[Landroid/content/ComponentCallbacks;
-[Landroid/content/ComponentName;
-[Landroid/content/ContentProviderResult;
-[Landroid/content/ContentValues;
-[Landroid/content/Intent;
-[Landroid/content/IntentFilter;
-[Landroid/content/SyncAdapterType;
-[Landroid/content/UndoOwner;
-[Landroid/content/pm/ActivityInfo;
-[Landroid/content/pm/Attribution;
-[Landroid/content/pm/ConfigurationInfo;
-[Landroid/content/pm/FeatureGroupInfo;
-[Landroid/content/pm/FeatureInfo;
-[Landroid/content/pm/InstrumentationInfo;
-[Landroid/content/pm/PackageParser$NewPermissionInfo;
-[Landroid/content/pm/PackagePartitions$SystemPartition;
-[Landroid/content/pm/PathPermission;
-[Landroid/content/pm/PermissionInfo;
-[Landroid/content/pm/ProviderInfo;
-[Landroid/content/pm/ServiceInfo;
-[Landroid/content/pm/SharedLibraryInfo;
-[Landroid/content/pm/Signature;
-[Landroid/content/pm/VerifierInfo;
-[Landroid/content/res/ApkAssets;
-[Landroid/content/res/ColorStateList;
-[Landroid/content/res/Configuration;
-[Landroid/content/res/FontResourcesParser$FontFileResourceEntry;
-[Landroid/content/res/XmlBlock;
-[Landroid/content/res/loader/ResourcesLoader;
-[Landroid/content/res/loader/ResourcesProvider;
-[Landroid/database/Cursor;
-[Landroid/database/CursorWindow;
-[Landroid/database/sqlite/SQLiteConnection$Operation;
-[Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;
-[Landroid/graphics/Bitmap$CompressFormat;
-[Landroid/graphics/Bitmap$Config;
-[Landroid/graphics/Bitmap;
-[Landroid/graphics/BlendMode;
-[Landroid/graphics/BlurMaskFilter$Blur;
-[Landroid/graphics/Canvas$EdgeType;
-[Landroid/graphics/ColorSpace$Adaptation;
-[Landroid/graphics/ColorSpace$Model;
-[Landroid/graphics/ColorSpace$Named;
-[Landroid/graphics/ColorSpace$RenderIntent;
-[Landroid/graphics/ColorSpace;
-[Landroid/graphics/Insets;
-[Landroid/graphics/Interpolator$Result;
-[Landroid/graphics/Matrix$ScaleToFit;
-[Landroid/graphics/Matrix;
-[Landroid/graphics/Paint$Align;
-[Landroid/graphics/Paint$Cap;
-[Landroid/graphics/Paint$Join;
-[Landroid/graphics/Paint$Style;
-[Landroid/graphics/Path$Direction;
-[Landroid/graphics/Path$FillType;
-[Landroid/graphics/Path$Op;
-[Landroid/graphics/Point;
-[Landroid/graphics/PointF;
-[Landroid/graphics/PorterDuff$Mode;
-[Landroid/graphics/Rect;
-[Landroid/graphics/Region$Op;
-[Landroid/graphics/RenderNode$PositionUpdateListener;
-[Landroid/graphics/Shader$TileMode;
-[Landroid/graphics/Typeface;
-[Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;
-[Landroid/graphics/drawable/Drawable;
-[Landroid/graphics/drawable/GradientDrawable$Orientation;
-[Landroid/graphics/drawable/LayerDrawable$ChildDrawable;
-[Landroid/graphics/drawable/RippleForeground;
-[Landroid/graphics/fonts/FontVariationAxis;
-[Landroid/hardware/CameraStatus;
-[Landroid/hardware/biometrics/BiometricSourceType;
-[Landroid/hardware/camera2/params/Capability;
-[Landroid/hardware/camera2/params/Face;
-[Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;
-[Landroid/hardware/camera2/params/LensIntrinsicsSample;
-[Landroid/hardware/camera2/params/MandatoryStreamCombination$ReprocessType;
-[Landroid/hardware/camera2/params/MandatoryStreamCombination$SizeThreshold;
-[Landroid/hardware/camera2/params/MandatoryStreamCombination$StreamCombinationTemplate;
-[Landroid/hardware/camera2/params/MandatoryStreamCombination$StreamTemplate;
-[Landroid/hardware/camera2/params/MandatoryStreamCombination;
-[Landroid/hardware/camera2/params/MeteringRectangle;
-[Landroid/hardware/camera2/params/OisSample;
-[Landroid/hardware/camera2/params/RecommendedStreamConfiguration;
-[Landroid/hardware/camera2/params/StreamConfiguration;
-[Landroid/hardware/camera2/params/StreamConfigurationDuration;
-[Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination;
-[Landroid/hardware/display/WifiDisplay;
-[Landroid/hardware/location/MemoryRegion;
-[Landroid/hardware/location/NanoAppRpcService;
-[Landroid/hardware/security/keymint/KeyParameter;
-[Landroid/icu/impl/CacheValue$Strength;
-[Landroid/icu/impl/CacheValue;
-[Landroid/icu/impl/CalType;
-[Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingPattern;
-[Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingType;
-[Landroid/icu/impl/DayPeriodRules$CutoffType;
-[Landroid/icu/impl/DayPeriodRules$DayPeriod;
-[Landroid/icu/impl/DayPeriodRules;
-[Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$CurrencySink$EntrypointTable;
-[Landroid/icu/impl/ICUResourceBundle$OpenType;
-[Landroid/icu/impl/LocaleDisplayNamesImpl$CapitalizationContextUsage;
-[Landroid/icu/impl/LocaleDisplayNamesImpl$DataTableType;
-[Landroid/icu/impl/StandardPlural;
-[Landroid/icu/impl/StaticUnicodeSets$Key;
-[Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;
-[Landroid/icu/impl/TimeZoneGenericNames$Pattern;
-[Landroid/icu/impl/TimeZoneNamesImpl$ZNames$NameTypeIndex;
-[Landroid/icu/impl/Trie2$ValueWidth;
-[Landroid/icu/impl/UCharacterName$AlgorithmName;
-[Landroid/icu/impl/UCharacterProperty$BinaryProperty;
-[Landroid/icu/impl/UCharacterProperty$IntProperty;
-[Landroid/icu/impl/ValidIdentifiers$Datasubtype;
-[Landroid/icu/impl/ValidIdentifiers$Datatype;
-[Landroid/icu/impl/coll/CollationRuleParser$Position;
-[Landroid/icu/impl/coll/FCDIterCollationIterator$State;
-[Landroid/icu/impl/duration/TimeUnit;
-[Landroid/icu/impl/locale/KeyTypeData$KeyInfoType;
-[Landroid/icu/impl/locale/KeyTypeData$SpecialType;
-[Landroid/icu/impl/locale/KeyTypeData$TypeInfoType;
-[Landroid/icu/impl/locale/KeyTypeData$ValueType;
-[Landroid/icu/impl/locale/LSR;
-[Landroid/icu/impl/locale/LocaleValidityChecker$SpecialCase;
-[Landroid/icu/impl/number/CompactData$CompactType;
-[Landroid/icu/impl/number/DecimalFormatProperties$ParseMode;
-[Landroid/icu/impl/number/Modifier$Signum;
-[Landroid/icu/impl/number/Modifier;
-[Landroid/icu/impl/number/Padder$PadPosition;
-[Landroid/icu/impl/number/PatternStringUtils$PatternSignType;
-[Landroid/icu/impl/units/MeasureUnitImpl$CompoundPart;
-[Landroid/icu/impl/units/MeasureUnitImpl$InitialCompoundPart;
-[Landroid/icu/impl/units/MeasureUnitImpl$PowerPart;
-[Landroid/icu/impl/units/MeasureUnitImpl$UnitsParser$Token$Type;
-[Landroid/icu/lang/UCharacter$UnicodeBlock;
-[Landroid/icu/lang/UScript$ScriptUsage;
-[Landroid/icu/lang/UScriptRun$ParenStackEntry;
-[Landroid/icu/number/NumberFormatter$DecimalSeparatorDisplay;
-[Landroid/icu/number/NumberFormatter$GroupingStrategy;
-[Landroid/icu/number/NumberFormatter$RoundingPriority;
-[Landroid/icu/number/NumberFormatter$SignDisplay;
-[Landroid/icu/number/NumberFormatter$TrailingZeroDisplay;
-[Landroid/icu/number/NumberFormatter$UnitWidth;
-[Landroid/icu/number/NumberRangeFormatter$RangeCollapse;
-[Landroid/icu/number/NumberRangeFormatter$RangeIdentityFallback;
-[Landroid/icu/number/NumberRangeFormatter$RangeIdentityResult;
-[Landroid/icu/number/NumberSkeletonImpl$ParseState;
-[Landroid/icu/number/NumberSkeletonImpl$StemEnum;
-[Landroid/icu/text/AlphabeticIndex$Bucket$LabelType;
-[Landroid/icu/text/Bidi$IsoRun;
-[Landroid/icu/text/Bidi$Isolate;
-[Landroid/icu/text/Bidi$Opening;
-[Landroid/icu/text/Bidi$Point;
-[Landroid/icu/text/BidiRun;
-[Landroid/icu/text/BidiTransform$Mirroring;
-[Landroid/icu/text/BidiTransform$Order;
-[Landroid/icu/text/BidiTransform$ReorderingScheme;
-[Landroid/icu/text/CharsetRecog_sbcs$NGramsPlusLang;
-[Landroid/icu/text/CompactDecimalFormat$CompactStyle;
-[Landroid/icu/text/ConstrainedFieldPosition$ConstraintType;
-[Landroid/icu/text/DateFormat$BooleanAttribute;
-[Landroid/icu/text/DateFormat$Field;
-[Landroid/icu/text/DateFormat$HourCycle;
-[Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
-[Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-[Landroid/icu/text/DateTimePatternGenerator$DTPGflags;
-[Landroid/icu/text/DateTimePatternGenerator$DisplayWidth;
-[Landroid/icu/text/DisplayContext$Type;
-[Landroid/icu/text/DisplayContext;
-[Landroid/icu/text/IDNA$Error;
-[Landroid/icu/text/ListFormatter$Type;
-[Landroid/icu/text/ListFormatter$Width;
-[Landroid/icu/text/LocaleDisplayNames$DialectHandling;
-[Landroid/icu/text/MeasureFormat$FormatWidth;
-[Landroid/icu/text/MessagePattern$ApostropheMode;
-[Landroid/icu/text/MessagePattern$ArgType;
-[Landroid/icu/text/MessagePattern$Part$Type;
-[Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
-[Landroid/icu/text/Normalizer2$Mode;
-[Landroid/icu/text/PluralRules$KeywordStatus;
-[Landroid/icu/text/PluralRules$Operand;
-[Landroid/icu/text/PluralRules$PluralType;
-[Landroid/icu/text/PluralRules$SampleType;
-[Landroid/icu/text/RBBIRuleParseTable$RBBIRuleTableElement;
-[Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;
-[Landroid/icu/text/RelativeDateTimeFormatter$Direction;
-[Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-[Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeUnit;
-[Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;
-[Landroid/icu/text/RelativeDateTimeFormatter$Style;
-[Landroid/icu/text/SearchIterator$ElementComparisonType;
-[Landroid/icu/text/SimpleDateFormat$ContextValue;
-[Landroid/icu/text/SpoofChecker$RestrictionLevel;
-[Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;
-[Landroid/icu/text/TimeZoneFormat$OffsetFields;
-[Landroid/icu/text/TimeZoneFormat$ParseOption;
-[Landroid/icu/text/TimeZoneFormat$Style;
-[Landroid/icu/text/TimeZoneFormat$TimeType;
-[Landroid/icu/text/TimeZoneNames$NameType;
-[Landroid/icu/text/UnicodeSet$ComparisonStyle;
-[Landroid/icu/text/UnicodeSet$SpanCondition;
-[Landroid/icu/text/UnicodeSet;
-[Landroid/icu/text/UnicodeSetSpanner$CountMethod;
-[Landroid/icu/text/UnicodeSetSpanner$TrimOption;
-[Landroid/icu/util/BasicTimeZone$LocalOption;
-[Landroid/icu/util/BytesTrie$Result;
-[Landroid/icu/util/CodePointMap$RangeOption;
-[Landroid/icu/util/CodePointMap;
-[Landroid/icu/util/CodePointTrie$Type;
-[Landroid/icu/util/CodePointTrie$ValueWidth;
-[Landroid/icu/util/Currency$CurrencyUsage;
-[Landroid/icu/util/GenderInfo$Gender;
-[Landroid/icu/util/GenderInfo$ListGenderStyle;
-[Landroid/icu/util/Holiday;
-[Landroid/icu/util/IslamicCalendar$CalculationType;
-[Landroid/icu/util/LocaleMatcher$Demotion;
-[Landroid/icu/util/LocaleMatcher$Direction;
-[Landroid/icu/util/LocaleMatcher$FavorSubtag;
-[Landroid/icu/util/Measure;
-[Landroid/icu/util/MeasureUnit$Complexity;
-[Landroid/icu/util/MeasureUnit$MeasurePrefix;
-[Landroid/icu/util/Region$RegionType;
-[Landroid/icu/util/StringTrieBuilder$Node;
-[Landroid/icu/util/StringTrieBuilder$Option;
-[Landroid/icu/util/StringTrieBuilder$State;
-[Landroid/icu/util/TimeArrayTimeZoneRule;
-[Landroid/icu/util/TimeZone$SystemTimeZoneType;
-[Landroid/icu/util/TimeZoneRule;
-[Landroid/icu/util/ULocale$AvailableType;
-[Landroid/icu/util/ULocale$Category;
-[Landroid/icu/util/ULocale$Minimize;
-[Landroid/icu/util/ULocale;
-[Landroid/icu/util/UResourceBundle$RootType;
-[Landroid/icu/util/UniversalTimeScale$TimeScaleData;
-[Landroid/media/AudioAttributes;
-[Landroid/media/AudioDeviceInfo;
-[Landroid/media/AudioGain;
-[Landroid/media/AudioPatch;
-[Landroid/media/AudioPort;
-[Landroid/media/AudioPortConfig;
-[Landroid/media/DrmInitData$SchemeInitData;
-[Landroid/media/ExifInterface$ExifTag;
-[Landroid/media/ImageReader$SurfaceImage$SurfacePlane;
-[Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane;
-[Landroid/media/MediaCodecInfo$CodecCapabilities;
-[Landroid/media/MediaCodecInfo$CodecProfileLevel;
-[Landroid/media/MediaCodecInfo$Feature;
-[Landroid/media/MediaCodecInfo;
-[Landroid/media/MediaPlayer$TrackInfo;
-[Landroid/media/MediaTimeProvider$OnMediaTimeListener;
-[Landroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;
-[Landroid/net/LocalSocketAddress$Namespace;
-[Landroid/net/NetworkKey;
-[Landroid/net/Uri;
-[Landroid/net/rtp/AudioCodec;
-[Landroid/os/AsyncTask$Status;
-[Landroid/os/BatteryConsumer$Key;
-[Landroid/os/BatteryStats$BitDescription;
-[Landroid/os/BatteryStats$IntToString;
-[Landroid/os/BatteryStats$LongCounter;
-[Landroid/os/Bundle;
-[Landroid/os/DdmSyncState$Stage;
-[Landroid/os/Debug$MemoryInfo;
-[Landroid/os/IBinder;
-[Landroid/os/MessageQueue$IdleHandler;
-[Landroid/os/ParcelFileDescriptor;
-[Landroid/os/ParcelUuid;
-[Landroid/os/Parcelable;
-[Landroid/os/PatternMatcher;
-[Landroid/os/PersistableBundle;
-[Landroid/os/SystemService$State;
-[Landroid/os/Temperature;
-[Landroid/os/UserHandle;
-[Landroid/os/VibratorInfo;
-[Landroid/os/health/HealthKeys$SortedIntArray;
-[Landroid/os/storage/DiskInfo;
-[Landroid/os/storage/StorageVolume;
-[Landroid/os/storage/VolumeInfo;
-[Landroid/os/storage/VolumeRecord;
-[Landroid/os/vibrator/VibrationEffectSegment;
-[Landroid/provider/FontsContract$FontInfo;
-[Landroid/renderscript/Element$DataKind;
-[Landroid/renderscript/Element$DataType;
-[Landroid/renderscript/RenderScript$ContextType;
-[Landroid/service/notification/NotificationListenerService$Ranking;
-[Landroid/service/notification/StatusBarNotification;
-[Landroid/service/notification/ZenModeConfig$ZenRule;
-[Landroid/service/wallpaper/EngineWindowPage;
-[Landroid/sysprop/CryptoProperties$state_values;
-[Landroid/sysprop/CryptoProperties$type_values;
-[Landroid/system/StructCapUserData;
-[Landroid/system/StructIfaddrs;
-[Landroid/system/StructPollfd;
-[Landroid/system/keystore2/Authorization;
-[Landroid/system/suspend/internal/WakeLockInfo;
-[Landroid/telephony/ActivityStatsTechSpecificInfo;
-[Landroid/telephony/LocationAccessPolicy$LocationPermissionResult;
-[Landroid/telephony/SmsMessage$MessageClass;
-[Landroid/telephony/SubscriptionPlan;
-[Landroid/telephony/TelephonyManager$MultiSimVariants;
-[Landroid/telephony/UiccAccessRule;
-[Landroid/telephony/gsm/SmsMessage$MessageClass;
-[Landroid/text/DynamicLayout$ChangeWatcher;
-[Landroid/text/InputFilter;
-[Landroid/text/Layout$Alignment;
-[Landroid/text/Layout$Directions;
-[Landroid/text/PrecomputedText$ParagraphInfo;
-[Landroid/text/Selection$MemoryTextWatcher;
-[Landroid/text/SpanWatcher;
-[Landroid/text/TextLine;
-[Landroid/text/TextUtils$TruncateAt;
-[Landroid/text/TextWatcher;
-[Landroid/text/method/MultiTapKeyListener;
-[Landroid/text/method/QwertyKeyListener$Replaced;
-[Landroid/text/method/QwertyKeyListener;
-[Landroid/text/method/TextKeyListener$Capitalize;
-[Landroid/text/method/TextKeyListener;
-[Landroid/text/method/Touch$DragState;
-[Landroid/text/style/AlignmentSpan;
-[Landroid/text/style/CharacterStyle;
-[Landroid/text/style/ClickableSpan;
-[Landroid/text/style/LeadingMarginSpan;
-[Landroid/text/style/LineBackgroundSpan;
-[Landroid/text/style/LineBreakConfigSpan;
-[Landroid/text/style/LineHeightSpan;
-[Landroid/text/style/MetricAffectingSpan;
-[Landroid/text/style/ParagraphStyle;
-[Landroid/text/style/ReplacementSpan;
-[Landroid/text/style/SpellCheckSpan;
-[Landroid/text/style/SuggestionSpan;
-[Landroid/text/style/TabStopSpan;
-[Landroid/text/style/URLSpan;
-[Landroid/util/ArrayMap;
-[Landroid/util/DataUnit;
-[Landroid/util/JsonScope;
-[Landroid/util/JsonToken;
-[Landroid/util/LongSparseArray;
-[Landroid/util/Pair;
-[Landroid/util/Range;
-[Landroid/util/Rational;
-[Landroid/util/Size;
-[Landroid/util/SparseIntArray;
-[Landroid/util/Xml$Encoding;
-[Landroid/util/apk/DataSource;
-[Landroid/view/AppTransitionAnimationSpec;
-[Landroid/view/Choreographer$CallbackQueue;
-[Landroid/view/Choreographer$FrameTimeline;
-[Landroid/view/Display$Mode;
-[Landroid/view/Display;
-[Landroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;
-[Landroid/view/HandlerActionQueue$HandlerAction;
-[Landroid/view/InsetsFrameProvider;
-[Landroid/view/InsetsSource;
-[Landroid/view/InsetsSourceControl;
-[Landroid/view/MenuItem;
-[Landroid/view/MotionEvent$PointerCoords;
-[Landroid/view/MotionEvent$PointerProperties;
-[Landroid/view/RemoteAnimationTarget;
-[Landroid/view/RoundedCorner;
-[Landroid/view/SurfaceControl$DisplayMode;
-[Landroid/view/SurfaceHolder$Callback;
-[Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;
-[Landroid/view/View$AttachInfo$InvalidateInfo;
-[Landroid/view/View;
-[Landroid/view/WindowManager$LayoutParams;
-[Landroid/view/accessibility/CaptioningManager$CaptionStyle;
-[Landroid/view/autofill/AutofillId;
-[Landroid/view/inputmethod/CompletionInfo;
-[Landroid/view/inputmethod/InputMethodSubtype;
-[Landroid/view/textservice/SentenceSuggestionsInfo;
-[Landroid/view/textservice/SuggestionsInfo;
-[Landroid/view/textservice/TextInfo;
-[Landroid/webkit/ConsoleMessage$MessageLevel;
-[Landroid/webkit/FindAddress$ZipRange;
-[Landroid/webkit/WebMessagePort;
-[Landroid/webkit/WebSettings$LayoutAlgorithm;
-[Landroid/webkit/WebSettings$PluginState;
-[Landroid/webkit/WebSettings$RenderPriority;
-[Landroid/webkit/WebSettings$ZoomDensity;
-[Landroid/widget/Editor$TextRenderNode;
-[Landroid/widget/Editor$TextViewPositionListener;
-[Landroid/widget/GridLayout$Arc;
-[Landroid/widget/GridLayout$Bounds;
-[Landroid/widget/GridLayout$Interval;
-[Landroid/widget/GridLayout$MutableInt;
-[Landroid/widget/GridLayout$Spec;
-[Landroid/widget/ImageView$ScaleType;
-[Landroid/widget/SpellChecker$RemoveReason;
-[Landroid/widget/SpellChecker$SpellParser;
-[Landroid/widget/TextView$BufferType;
-[Landroid/widget/TextView$ChangeWatcher;
-[Landroid/window/TransitionFilter$Requirement;
-[Lcom/android/framework/protobuf/GeneratedMessageLite$MethodToInvoke;
-[Lcom/android/framework/protobuf/MessageInfoFactory;
-[Lcom/android/framework/protobuf/ProtoSyntax;
-[Lcom/android/i18n/phonenumbers/NumberParseException$ErrorType;
-[Lcom/android/i18n/phonenumbers/PhoneNumberMatcher$State;
-[Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency;
-[Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType;
-[Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;
-[Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
-[Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;
-[Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;
-[Lcom/android/i18n/phonenumbers/ShortNumberInfo$ShortNumberCost;
-[Lcom/android/internal/app/ResolverActivity$ActionTitle;
-[Lcom/android/internal/graphics/drawable/BackgroundBlurDrawable$BlurRegion;
-[Lcom/android/internal/os/PowerProfile$CpuClusterKey;
-[Lcom/android/internal/os/ZygoteServer$UsapPoolRefillAction;
-[Lcom/android/internal/policy/PhoneWindow$PanelFeatureState;
-[Lcom/android/internal/protolog/ProtoLogGroup;
-[Lcom/android/internal/statusbar/LetterboxDetails;
-[Lcom/android/internal/statusbar/NotificationVisibility$NotificationLocation;
-[Lcom/android/internal/telephony/Call$SrvccState;
-[Lcom/android/internal/telephony/Call$State;
-[Lcom/android/internal/telephony/CommandException$Error;
-[Lcom/android/internal/telephony/Connection$PostDialState;
-[Lcom/android/internal/telephony/DctConstants$Activity;
-[Lcom/android/internal/telephony/DctConstants$State;
-[Lcom/android/internal/telephony/DriverCall$State;
-[Lcom/android/internal/telephony/IccCardConstants$State;
-[Lcom/android/internal/telephony/MmiCode$State;
-[Lcom/android/internal/telephony/OperatorInfo$State;
-[Lcom/android/internal/telephony/Phone;
-[Lcom/android/internal/telephony/PhoneConstants$DataState;
-[Lcom/android/internal/telephony/PhoneConstants$State;
-[Lcom/android/internal/telephony/PhoneInternalInterface$DataActivityState;
-[Lcom/android/internal/telephony/PhoneInternalInterface$SuppService;
-[Lcom/android/internal/telephony/SmsConstants$MessageClass;
-[Lcom/android/internal/telephony/cat/AppInterface$CommandType;
-[Lcom/android/internal/telephony/cat/ComprehensionTlvTag;
-[Lcom/android/internal/telephony/cat/Duration$TimeUnit;
-[Lcom/android/internal/telephony/cat/FontSize;
-[Lcom/android/internal/telephony/cat/LaunchBrowserMode;
-[Lcom/android/internal/telephony/cat/PresentationType;
-[Lcom/android/internal/telephony/cat/ResultCode;
-[Lcom/android/internal/telephony/cat/TextAlignment;
-[Lcom/android/internal/telephony/cat/TextColor;
-[Lcom/android/internal/telephony/cat/Tone;
-[Lcom/android/internal/telephony/gsm/SsData$RequestType;
-[Lcom/android/internal/telephony/gsm/SsData$ServiceType;
-[Lcom/android/internal/telephony/gsm/SsData$TeleserviceType;
-[Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$HoldSwapState;
-[Lcom/android/internal/telephony/nano/PersistAtomsProto$CellularDataServiceSwitch;
-[Lcom/android/internal/telephony/nano/PersistAtomsProto$CellularServiceState;
-[Lcom/android/internal/telephony/nano/PersistAtomsProto$DataCallSession;
-[Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationStats;
-[Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationTermination;
-[Lcom/android/internal/telephony/nano/PersistAtomsProto$IncomingSms;
-[Lcom/android/internal/telephony/nano/PersistAtomsProto$NetworkRequests;
-[Lcom/android/internal/telephony/nano/PersistAtomsProto$OutgoingSms;
-[Lcom/android/internal/telephony/nano/PersistAtomsProto$VoiceCallRatUsage;
-[Lcom/android/internal/telephony/nano/PersistAtomsProto$VoiceCallSession;
-[Lcom/android/internal/telephony/phonenumbers/NumberParseException$ErrorType;
-[Lcom/android/internal/telephony/phonenumbers/PhoneNumberMatcher$State;
-[Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$Leniency;
-[Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$MatchType;
-[Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;
-[Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$PhoneNumberType;
-[Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$ValidationResult;
-[Lcom/android/internal/telephony/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;
-[Lcom/android/internal/telephony/phonenumbers/ShortNumberInfo$ShortNumberCost;
-[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/IccCardStatus$CardState;
-[Lcom/android/internal/telephony/uicc/IccCardStatus$PinState;
-[Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState;
-[Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;
-[Lcom/android/internal/util/StateMachine$SmHandler$StateInfo;
-[Lcom/android/internal/view/AppearanceRegion;
-[Lcom/android/okhttp/CipherSuite;
-[Lcom/android/okhttp/ConnectionSpec;
-[Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
-[Lcom/android/okhttp/Protocol;
-[Lcom/android/okhttp/TlsVersion;
-[Lcom/android/okhttp/okio/ByteString;
-[Lcom/android/org/bouncycastle/asn1/ASN1Encodable;
-[Lcom/android/org/bouncycastle/asn1/ASN1Enumerated;
-[Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;
-[Lcom/android/org/bouncycastle/asn1/ASN1OctetString;
-[Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
-[Lcom/android/org/bouncycastle/crypto/params/DHParameters;
-[Lcom/android/org/bouncycastle/crypto/params/DSAParameters;
-[Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/PEMUtil$Boundaries;
-[Lcom/android/org/kxml2/io/KXmlParser$ValueContext;
-[Ldalvik/system/DexPathList$Element;
-[Ldalvik/system/DexPathList$NativeLibraryElement;
-[Lgov/nist/javax/sip/DialogTimeoutEvent$Reason;
-[Ljava/io/File$PathStatus;
-[Ljava/io/File;
-[Ljava/io/ObjectInputStream$HandleTable$HandleList;
-[Ljava/io/ObjectStreamClass$ClassDataSlot;
-[Ljava/io/ObjectStreamClass$MemberSignature;
-[Ljava/io/ObjectStreamField;
-[Ljava/lang/Byte;
-[Ljava/lang/CharSequence;
-[Ljava/lang/Character$UnicodeBlock;
-[Ljava/lang/Character;
-[Ljava/lang/Class;
-[Ljava/lang/ClassValue$Entry;
-[Ljava/lang/Comparable;
-[Ljava/lang/Daemons$Daemon;
-[Ljava/lang/Double;
-[Ljava/lang/Enum;
-[Ljava/lang/Integer;
-[Ljava/lang/Long;
-[Ljava/lang/Number;
-[Ljava/lang/Object;
-[Ljava/lang/Package;
-[Ljava/lang/ProcessBuilder$Redirect;
-[Ljava/lang/Runnable;
-[Ljava/lang/Short;
-[Ljava/lang/StackTraceElement;
-[Ljava/lang/StackWalker$Option;
-[Ljava/lang/String;
-[Ljava/lang/StringBuilder;
-[Ljava/lang/Thread$State;
-[Ljava/lang/Thread;
-[Ljava/lang/ThreadGroup;
-[Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
-[Ljava/lang/Throwable;
-[Ljava/lang/annotation/Annotation;
-[Ljava/lang/constant/ClassDesc;
-[Ljava/lang/constant/Constable;
-[Ljava/lang/constant/ConstantDesc;
-[Ljava/lang/constant/DirectMethodHandleDesc$Kind;
-[Ljava/lang/invoke/MethodHandle;
-[Ljava/lang/invoke/MethodType;
-[Ljava/lang/invoke/TypeDescriptor$OfField;
-[Ljava/lang/invoke/VarHandle$AccessMode;
-[Ljava/lang/invoke/VarHandle$AccessType;
-[Ljava/lang/invoke/VarHandle$VarHandleDesc$Kind;
-[Ljava/lang/ref/WeakReference;
-[Ljava/lang/reflect/AccessibleObject;
-[Ljava/lang/reflect/Constructor;
-[Ljava/lang/reflect/Field;
-[Ljava/lang/reflect/Method;
-[Ljava/lang/reflect/Parameter;
-[Ljava/lang/reflect/RecordComponent;
-[Ljava/lang/reflect/Type;
-[Ljava/lang/reflect/TypeVariable;
-[Ljava/math/BigDecimal;
-[Ljava/math/BigInteger;
-[Ljava/math/RoundingMode;
-[Ljava/net/Authenticator$RequestorType;
-[Ljava/net/InetAddress;
-[Ljava/net/InterfaceAddress;
-[Ljava/net/NetworkInterface;
-[Ljava/net/Proxy$Type;
-[Ljava/net/StandardProtocolFamily;
-[Ljava/nio/ByteBuffer;
-[Ljava/nio/channels/SelectionKey;
-[Ljava/nio/charset/CoderResult;
-[Ljava/nio/file/AccessMode;
-[Ljava/nio/file/CopyOption;
-[Ljava/nio/file/FileVisitResult;
-[Ljava/nio/file/LinkOption;
-[Ljava/nio/file/OpenOption;
-[Ljava/nio/file/StandardCopyOption;
-[Ljava/nio/file/StandardOpenOption;
-[Ljava/nio/file/attribute/FileAttribute;
-[Ljava/security/CodeSigner;
-[Ljava/security/CryptoPrimitive;
-[Ljava/security/Permission;
-[Ljava/security/Principal;
-[Ljava/security/ProtectionDomain;
-[Ljava/security/Provider;
-[Ljava/security/cert/CRLReason;
-[Ljava/security/cert/CertPathValidatorException$BasicReason;
-[Ljava/security/cert/Certificate;
-[Ljava/security/cert/PKIXReason;
-[Ljava/security/cert/PKIXRevocationChecker$Option;
-[Ljava/security/cert/X509CRL;
-[Ljava/security/cert/X509Certificate;
-[Ljava/text/DateFormat$Field;
-[Ljava/text/Format;
-[Ljava/text/Normalizer$Form;
-[Ljava/text/NumberFormat$Style;
-[Ljava/time/DayOfWeek;
-[Ljava/time/LocalDateTime;
-[Ljava/time/LocalTime;
-[Ljava/time/Month;
-[Ljava/time/ZoneOffset;
-[Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;
-[Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;
-[Ljava/time/format/ResolverStyle;
-[Ljava/time/format/SignStyle;
-[Ljava/time/format/TextStyle;
-[Ljava/time/temporal/ChronoField;
-[Ljava/time/temporal/ChronoUnit;
-[Ljava/time/temporal/IsoFields$Field;
-[Ljava/time/temporal/IsoFields$Unit;
-[Ljava/time/temporal/JulianFields$Field;
-[Ljava/time/temporal/TemporalUnit;
-[Ljava/time/zone/ZoneOffsetTransition;
-[Ljava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;
-[Ljava/time/zone/ZoneOffsetTransitionRule;
-[Ljava/util/Comparators$NaturalOrderComparator;
-[Ljava/util/Enumeration;
-[Ljava/util/Formatter$Flags;
-[Ljava/util/HashMap$Node;
-[Ljava/util/Hashtable$HashtableEntry;
-[Ljava/util/List;
-[Ljava/util/Locale$Category;
-[Ljava/util/Locale$FilteringMode;
-[Ljava/util/Locale$IsoCountryCode;
-[Ljava/util/Locale;
-[Ljava/util/Map$Entry;
-[Ljava/util/TimerTask;
-[Ljava/util/WeakHashMap$Entry;
-[Ljava/util/concurrent/ConcurrentHashMap$CounterCell;
-[Ljava/util/concurrent/ConcurrentHashMap$Node;
-[Ljava/util/concurrent/ConcurrentHashMap$Segment;
-[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
-[Ljava/util/concurrent/ForkJoinTask;
-[Ljava/util/concurrent/RunnableScheduledFuture;
-[Ljava/util/concurrent/TimeUnit;
-[Ljava/util/concurrent/atomic/Striped64$Cell;
-[Ljava/util/logging/Handler;
-[Ljava/util/prefs/AbstractPreferences;
-[Ljava/util/regex/Pattern;
-[Ljava/util/stream/Collector$Characteristics;
-[Ljava/util/stream/MatchOps$MatchKind;
-[Ljava/util/stream/StreamOpFlag$Type;
-[Ljava/util/stream/StreamOpFlag;
-[Ljava/util/stream/StreamShape;
-[Ljavax/crypto/Cipher$InitType;
-[Ljavax/crypto/Cipher$NeedToSet;
-[Ljavax/microedition/khronos/egl/EGLConfig;
-[Ljavax/net/ssl/KeyManager;
-[Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
-[Ljavax/net/ssl/SSLEngineResult$Status;
-[Ljavax/net/ssl/TrustManager;
-[Ljavax/security/auth/callback/Callback;
-[Ljavax/security/cert/X509Certificate;
-[Ljavax/sip/DialogState;
-[Ljavax/sip/Timeout;
-[Ljavax/sip/TransactionState;
-[Ljdk/internal/math/FDBigInteger;
-[Ljdk/internal/math/FormattedFloatingDecimal$Form;
-[Llibcore/io/ClassPathURLStreamHandler;
-[Llibcore/io/IoTracker$Mode;
-[Llibcore/reflect/AnnotationMember$DefaultValues;
-[Llibcore/reflect/AnnotationMember;
-[Lorg/json/JSONStringer$Scope;
-[Lsun/invoke/util/Wrapper;
-[Lsun/nio/ch/SelectionKeyImpl;
-[Lsun/nio/fs/NativeBuffer;
-[Lsun/security/jca/ProviderConfig;
-[Lsun/security/jca/ServiceId;
-[Lsun/security/pkcs/SignerInfo;
-[Lsun/security/provider/certpath/OCSP$RevocationStatus$CertStatus;
-[Lsun/security/provider/certpath/OCSPResponse$ResponseStatus;
-[Lsun/security/provider/certpath/RevocationChecker$Mode;
-[Lsun/security/util/DerEncoder;
-[Lsun/security/util/DerOutputStream;
-[Lsun/security/util/DerValue;
-[Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
-[Lsun/security/util/ObjectIdentifier;
-[Lsun/security/x509/AVA;
-[Lsun/security/x509/AlgorithmId;
-[Lsun/security/x509/NetscapeCertTypeExtension$MapEntry;
-[Lsun/security/x509/RDN;
-[Lsun/util/calendar/Era;
-[Lsun/util/locale/BaseLocale;
-[Lsun/util/logging/PlatformLogger$Level;
-[S
-[Z
-[[B
-[[D
-[[I
-[[J
-[[Landroid/graphics/Rect;
-[[Landroid/media/ExifInterface$ExifTag;
-[[Landroid/widget/GridLayout$Arc;
-[[Lcom/android/internal/widget/LockPatternView$Cell;
-[[Ljava/lang/Byte;
-[[Ljava/lang/Class;
-[[Ljava/lang/Object;
-[[Ljava/lang/String;
-[[Ljava/lang/annotation/Annotation;
-[[Ljava/lang/invoke/MethodHandle;
-[[Ljava/math/BigInteger;
-[[Z
diff --git a/core/api/current.txt b/core/api/current.txt
index 664dfe980b49..67b328057efe 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -8822,6 +8822,7 @@ package android.app.appfunctions {
field @NonNull public static final android.os.Parcelable.Creator<android.app.appfunctions.ExecuteAppFunctionResponse> CREATOR;
field public static final String PROPERTY_RETURN_VALUE = "returnValue";
field public static final int RESULT_APP_UNKNOWN_ERROR = 2; // 0x2
+ field public static final int RESULT_CANCELLED = 7; // 0x7
field public static final int RESULT_DENIED = 1; // 0x1
field public static final int RESULT_DISABLED = 6; // 0x6
field public static final int RESULT_INTERNAL_ERROR = 3; // 0x3
@@ -11480,8 +11481,8 @@ package android.content {
field @FlaggedApi("android.service.chooser.chooser_payload_toggling") public static final String EXTRA_CHOOSER_FOCUSED_ITEM_POSITION = "android.intent.extra.CHOOSER_FOCUSED_ITEM_POSITION";
field public static final String EXTRA_CHOOSER_MODIFY_SHARE_ACTION = "android.intent.extra.CHOOSER_MODIFY_SHARE_ACTION";
field public static final String EXTRA_CHOOSER_REFINEMENT_INTENT_SENDER = "android.intent.extra.CHOOSER_REFINEMENT_INTENT_SENDER";
- field @FlaggedApi("android.service.chooser.enable_chooser_result") public static final String EXTRA_CHOOSER_RESULT = "android.intent.extra.CHOOSER_RESULT";
- field @FlaggedApi("android.service.chooser.enable_chooser_result") public static final String EXTRA_CHOOSER_RESULT_INTENT_SENDER = "android.intent.extra.CHOOSER_RESULT_INTENT_SENDER";
+ field public static final String EXTRA_CHOOSER_RESULT = "android.intent.extra.CHOOSER_RESULT";
+ field public static final String EXTRA_CHOOSER_RESULT_INTENT_SENDER = "android.intent.extra.CHOOSER_RESULT_INTENT_SENDER";
field public static final String EXTRA_CHOOSER_TARGETS = "android.intent.extra.CHOOSER_TARGETS";
field public static final String EXTRA_CHOSEN_COMPONENT = "android.intent.extra.CHOSEN_COMPONENT";
field public static final String EXTRA_CHOSEN_COMPONENT_INTENT_SENDER = "android.intent.extra.CHOSEN_COMPONENT_INTENT_SENDER";
@@ -40652,7 +40653,7 @@ package android.service.chooser {
method @NonNull public android.service.chooser.ChooserAction build();
}
- @FlaggedApi("android.service.chooser.enable_chooser_result") public final class ChooserResult implements android.os.Parcelable {
+ public final class ChooserResult implements android.os.Parcelable {
method public int describeContents();
method @Nullable public android.content.ComponentName getSelectedComponent();
method public int getType();
diff --git a/core/api/module-lib-current.txt b/core/api/module-lib-current.txt
index 8447a7feb54e..287e7874be41 100644
--- a/core/api/module-lib-current.txt
+++ b/core/api/module-lib-current.txt
@@ -604,6 +604,7 @@ package android.telephony {
public class TelephonyManager {
method @NonNull public static int[] getAllNetworkTypes();
+ method @FlaggedApi("android.os.mainline_vcn_platform_api") @NonNull @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public java.util.Set<java.lang.String> getPackagesWithCarrierPrivileges();
}
}
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index 20bcf5fdf6fb..1a1f3548fa74 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -13046,6 +13046,7 @@ package android.service.notification {
method public void onPanelHidden();
method public void onPanelRevealed(int);
method public void onSuggestedReplySent(@NonNull String, @NonNull CharSequence, int);
+ method @FlaggedApi("android.service.notification.notification_classification") public final void setAdjustmentTypeSupportedState(@NonNull String, boolean);
method public final void unsnoozeNotification(@NonNull String);
field public static final String ACTION_NOTIFICATION_ASSISTANT_DETAIL_SETTINGS = "android.service.notification.action.NOTIFICATION_ASSISTANT_DETAIL_SETTINGS";
field @FlaggedApi("android.service.notification.notification_classification") public static final String ACTION_NOTIFICATION_ASSISTANT_FEEDBACK_SETTINGS = "android.service.notification.action.NOTIFICATION_ASSISTANT_FEEDBACK_SETTINGS";
diff --git a/core/api/test-current.txt b/core/api/test-current.txt
index 0a10920154b8..9bcdf959a6a7 100644
--- a/core/api/test-current.txt
+++ b/core/api/test-current.txt
@@ -396,6 +396,7 @@ package android.app {
method public void cleanUpCallersAfter(long);
method @FlaggedApi("android.app.modes_api") @NonNull public android.service.notification.ZenPolicy getDefaultZenPolicy();
method public android.content.ComponentName getEffectsSuppressor();
+ method @FlaggedApi("android.service.notification.notification_classification") @NonNull public java.util.Set<java.lang.String> getUnsupportedAdjustmentTypes();
method public boolean isNotificationPolicyAccessGrantedForPackage(@NonNull String);
method @FlaggedApi("android.app.modes_api") public boolean removeAutomaticZenRule(@NonNull String, boolean);
method @FlaggedApi("android.app.api_rich_ongoing") public void setCanPostPromotedNotifications(@NonNull String, int, boolean);
@@ -3123,7 +3124,7 @@ package android.service.autofill.augmented {
package android.service.chooser {
- @FlaggedApi("android.service.chooser.enable_chooser_result") public final class ChooserResult implements android.os.Parcelable {
+ public final class ChooserResult implements android.os.Parcelable {
ctor public ChooserResult(int, @Nullable android.content.ComponentName, boolean);
}
diff --git a/core/java/Android.bp b/core/java/Android.bp
index 99046328b1e2..2fa418a0ca58 100644
--- a/core/java/Android.bp
+++ b/core/java/Android.bp
@@ -660,7 +660,7 @@ java_library {
java_library {
name: "protolog-groups",
srcs: [
- "com/android/internal/protolog/ProtoLogGroup.java",
+ "com/android/internal/protolog/WmProtoLogGroups.java",
":protolog-common-src",
],
}
diff --git a/core/java/android/app/INotificationManager.aidl b/core/java/android/app/INotificationManager.aidl
index 8a54b5d4ec4f..3b2aab4591a5 100644
--- a/core/java/android/app/INotificationManager.aidl
+++ b/core/java/android/app/INotificationManager.aidl
@@ -160,8 +160,8 @@ interface INotificationManager
void requestBindProvider(in ComponentName component);
void requestUnbindProvider(in IConditionProvider token);
- void setNotificationsShownFromListener(in INotificationListener token, in String[] keys);
+ void setNotificationsShownFromListener(in INotificationListener token, in String[] keys);
ParceledListSlice getActiveNotificationsFromListener(in INotificationListener token, in String[] keys, int trim);
ParceledListSlice getSnoozedNotificationsFromListener(in INotificationListener token, int trim);
void clearRequestedListenerHints(in INotificationListener token);
@@ -261,4 +261,7 @@ interface INotificationManager
void setCanBePromoted(String pkg, int uid, boolean promote, boolean fromUser);
boolean appCanBePromoted(String pkg, int uid);
boolean canBePromoted(String pkg);
+
+ void setAdjustmentTypeSupportedState(in INotificationListener token, String key, boolean supported);
+ List<String> getUnsupportedAdjustmentTypes();
}
diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java
index c7b84ae6283b..dfed1f738e44 100644
--- a/core/java/android/app/NotificationManager.java
+++ b/core/java/android/app/NotificationManager.java
@@ -68,9 +68,11 @@ import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Set;
import java.util.concurrent.Executor;
/**
@@ -3094,4 +3096,19 @@ public class NotificationManager {
}
}
+ /**
+ * Returns the list of {@link Adjustment} keys that the current approved
+ * {@link android.service.notification.NotificationAssistantService} does not support.
+ * @hide
+ */
+ @TestApi
+ @FlaggedApi(android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION)
+ public @NonNull Set<String> getUnsupportedAdjustmentTypes() {
+ INotificationManager service = getService();
+ try {
+ return new HashSet<>(service.getUnsupportedAdjustmentTypes());
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
}
diff --git a/core/java/android/app/TaskInfo.java b/core/java/android/app/TaskInfo.java
index 99e622053fee..af242dda9341 100644
--- a/core/java/android/app/TaskInfo.java
+++ b/core/java/android/app/TaskInfo.java
@@ -35,6 +35,7 @@ import android.os.Build;
import android.os.IBinder;
import android.os.Parcel;
import android.view.DisplayCutout;
+import android.view.WindowInsets;
import android.window.WindowContainerToken;
import java.util.ArrayList;
@@ -329,6 +330,13 @@ public class TaskInfo {
public long capturedLinkTimestamp;
/**
+ * The requested visible types of insets.
+ * @hide
+ */
+ @WindowInsets.Type.InsetsType
+ public int requestedVisibleTypes;
+
+ /**
* Encapsulate specific App Compat information.
* @hide
*/
@@ -465,6 +473,7 @@ public class TaskInfo {
&& lastNonFullscreenBounds == this.lastNonFullscreenBounds
&& Objects.equals(capturedLink, that.capturedLink)
&& capturedLinkTimestamp == that.capturedLinkTimestamp
+ && requestedVisibleTypes == that.requestedVisibleTypes
&& appCompatTaskInfo.equalsForTaskOrganizer(that.appCompatTaskInfo);
}
@@ -539,6 +548,7 @@ public class TaskInfo {
lastNonFullscreenBounds = source.readTypedObject(Rect.CREATOR);
capturedLink = source.readTypedObject(Uri.CREATOR);
capturedLinkTimestamp = source.readLong();
+ requestedVisibleTypes = source.readInt();
appCompatTaskInfo = source.readTypedObject(AppCompatTaskInfo.CREATOR);
}
@@ -591,6 +601,7 @@ public class TaskInfo {
dest.writeTypedObject(lastNonFullscreenBounds, flags);
dest.writeTypedObject(capturedLink, flags);
dest.writeLong(capturedLinkTimestamp);
+ dest.writeInt(requestedVisibleTypes);
dest.writeTypedObject(appCompatTaskInfo, flags);
}
@@ -633,6 +644,7 @@ public class TaskInfo {
+ " lastNonFullscreenBounds=" + lastNonFullscreenBounds
+ " capturedLink=" + capturedLink
+ " capturedLinkTimestamp=" + capturedLinkTimestamp
+ + " requestedVisibleTypes=" + requestedVisibleTypes
+ " appCompatTaskInfo=" + appCompatTaskInfo
+ "}";
}
diff --git a/core/java/android/app/admin/flags/flags.aconfig b/core/java/android/app/admin/flags/flags.aconfig
index d9f886d41aa8..fd583773d4e9 100644
--- a/core/java/android/app/admin/flags/flags.aconfig
+++ b/core/java/android/app/admin/flags/flags.aconfig
@@ -323,9 +323,9 @@ flag {
}
flag {
- name: "dont_read_policy_definition"
+ name: "dont_write_policy_definition"
namespace: "enterprise"
- description: "Rely on <policy-key-entry> to determine policy definition and ignore <policy-definition-entry>"
+ description: "Don't write redundant policy-definition-entry tags"
bug: "335663055"
metadata {
purpose: PURPOSE_BUGFIX
diff --git a/core/java/android/app/appfunctions/AppFunctionManager.java b/core/java/android/app/appfunctions/AppFunctionManager.java
index 6797a51e59f4..439d988e2588 100644
--- a/core/java/android/app/appfunctions/AppFunctionManager.java
+++ b/core/java/android/app/appfunctions/AppFunctionManager.java
@@ -305,17 +305,18 @@ public final class AppFunctionManager {
@Override
public void onError(@NonNull ParcelableException exception) {
- mExecutor.execute(() -> {
- if (IllegalArgumentException.class.isAssignableFrom(
- exception.getCause().getClass())) {
- mCallback.onError((IllegalArgumentException) exception.getCause());
- } else if (SecurityException.class.isAssignableFrom(
- exception.getCause().getClass())) {
- mCallback.onError((SecurityException) exception.getCause());
- } else {
- mCallback.onError(exception);
- }
- });
+ mExecutor.execute(
+ () -> {
+ if (IllegalArgumentException.class.isAssignableFrom(
+ exception.getCause().getClass())) {
+ mCallback.onError((IllegalArgumentException) exception.getCause());
+ } else if (SecurityException.class.isAssignableFrom(
+ exception.getCause().getClass())) {
+ mCallback.onError((SecurityException) exception.getCause());
+ } else {
+ mCallback.onError(exception);
+ }
+ });
}
}
}
diff --git a/core/java/android/app/appfunctions/ExecuteAppFunctionResponse.java b/core/java/android/app/appfunctions/ExecuteAppFunctionResponse.java
index 4ed0a1b50a08..2851e92bd57f 100644
--- a/core/java/android/app/appfunctions/ExecuteAppFunctionResponse.java
+++ b/core/java/android/app/appfunctions/ExecuteAppFunctionResponse.java
@@ -102,6 +102,12 @@ public final class ExecuteAppFunctionResponse implements Parcelable {
/** The caller tried to execute a disabled app function. */
public static final int RESULT_DISABLED = 6;
+ /**
+ * The operation was cancelled. Use this error code to report that a cancellation is done after
+ * receiving a cancellation signal.
+ */
+ public static final int RESULT_CANCELLED = 7;
+
/** The result code of the app function execution. */
@ResultCode private final int mResultCode;
@@ -278,6 +284,7 @@ public final class ExecuteAppFunctionResponse implements Parcelable {
RESULT_INVALID_ARGUMENT,
RESULT_TIMED_OUT,
RESULT_DISABLED,
+ RESULT_CANCELLED
})
@Retention(RetentionPolicy.SOURCE)
public @interface ResultCode {}
diff --git a/core/java/android/app/appfunctions/SafeOneTimeExecuteAppFunctionCallback.java b/core/java/android/app/appfunctions/SafeOneTimeExecuteAppFunctionCallback.java
index 86fc36960203..00182447e9a8 100644
--- a/core/java/android/app/appfunctions/SafeOneTimeExecuteAppFunctionCallback.java
+++ b/core/java/android/app/appfunctions/SafeOneTimeExecuteAppFunctionCallback.java
@@ -72,4 +72,12 @@ public class SafeOneTimeExecuteAppFunctionCallback {
mOnDispatchCallback.accept(result);
}
}
+
+ /**
+ * Disables this callback. Subsequent calls to {@link #onResult(ExecuteAppFunctionResponse)}
+ * will be ignored.
+ */
+ public void disable() {
+ mOnResultCalled.set(true);
+ }
}
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 044178c4f6aa..9a93ec4d3b40 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -1064,11 +1064,7 @@ public class Intent implements Parcelable, Cloneable {
}
if (sender != null) {
- if (android.service.chooser.Flags.enableChooserResult()) {
- intent.putExtra(EXTRA_CHOOSER_RESULT_INTENT_SENDER, sender);
- } else {
- intent.putExtra(EXTRA_CHOSEN_COMPONENT_INTENT_SENDER, sender);
- }
+ intent.putExtra(EXTRA_CHOOSER_RESULT_INTENT_SENDER, sender);
}
// Migrate any clip data and flags from target.
@@ -6425,7 +6421,6 @@ public class Intent implements Parcelable, Cloneable {
* activity. The IntentSender will have the extra {@link #EXTRA_CHOOSER_RESULT} describing
* the result.
*/
- @FlaggedApi(android.service.chooser.Flags.FLAG_ENABLE_CHOOSER_RESULT)
public static final String EXTRA_CHOOSER_RESULT_INTENT_SENDER =
"android.intent.extra.CHOOSER_RESULT_INTENT_SENDER";
@@ -6435,7 +6430,6 @@ public class Intent implements Parcelable, Cloneable {
* An instance is supplied to the optional IntentSender provided to
* {@link #createChooser(Intent, CharSequence, IntentSender)} when the session completes.
*/
- @FlaggedApi(android.service.chooser.Flags.FLAG_ENABLE_CHOOSER_RESULT)
public static final String EXTRA_CHOOSER_RESULT = "android.intent.extra.CHOOSER_RESULT";
/**
diff --git a/core/java/android/content/pm/TEST_MAPPING b/core/java/android/content/pm/TEST_MAPPING
index 2cdae21bde92..44f2a4ca38e2 100644
--- a/core/java/android/content/pm/TEST_MAPPING
+++ b/core/java/android/content/pm/TEST_MAPPING
@@ -114,6 +114,17 @@
]
},
{
+ "name": "CtsPackageInstallerCUJDeviceAdminTestCases",
+ "options":[
+ {
+ "exclude-annotation":"androidx.test.filters.FlakyTest"
+ },
+ {
+ "exclude-annotation":"org.junit.Ignore"
+ }
+ ]
+ },
+ {
"name": "CtsPackageInstallerCUJInstallationTestCases",
"options":[
{
@@ -125,6 +136,17 @@
]
},
{
+ "name": "CtsPackageInstallerCUJMultiUsersTestCases",
+ "options":[
+ {
+ "exclude-annotation":"androidx.test.filters.FlakyTest"
+ },
+ {
+ "exclude-annotation":"org.junit.Ignore"
+ }
+ ]
+ },
+ {
"name": "CtsPackageInstallerCUJUninstallationTestCases",
"options":[
{
diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java
index 1b21bdf7ba45..9e3a9b389b05 100644
--- a/core/java/android/hardware/camera2/CameraManager.java
+++ b/core/java/android/hardware/camera2/CameraManager.java
@@ -69,6 +69,7 @@ import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.ServiceSpecificException;
import android.os.SystemProperties;
+import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.Log;
@@ -80,6 +81,7 @@ import com.android.internal.camera.flags.Flags;
import com.android.internal.util.ArrayUtils;
import java.lang.ref.WeakReference;
+import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
@@ -2157,6 +2159,12 @@ public final class CameraManager {
private final Set<Set<DeviceCameraInfo>> mConcurrentCameraIdCombinations = new ArraySet<>();
+ // Diagnostic messages for ArrayIndexOutOfBoundsException in extractCameraIdListLocked
+ // b/367649718
+ private static final int DEVICE_STATUS_ARRAY_SIZE = 10;
+ private final ArrayDeque<String> mDeviceStatusHistory =
+ new ArrayDeque<>(DEVICE_STATUS_ARRAY_SIZE);
+
// Registered availability callbacks and their executors
private final ArrayMap<AvailabilityCallback, Executor> mCallbackMap = new ArrayMap<>();
@@ -2274,6 +2282,10 @@ public final class CameraManager {
}
try {
+ addDeviceStatusHistoryLocked(TextUtils.formatSimple(
+ "connectCameraServiceLocked(E): tid(%d): mDeviceStatus size %d",
+ Thread.currentThread().getId(), mDeviceStatus.size()));
+
CameraStatus[] cameraStatuses = cameraService.addListener(this);
for (CameraStatus cameraStatus : cameraStatuses) {
DeviceCameraInfo info = new DeviceCameraInfo(cameraStatus.cameraId,
@@ -2296,6 +2308,10 @@ public final class CameraManager {
}
}
mCameraService = cameraService;
+
+ addDeviceStatusHistoryLocked(TextUtils.formatSimple(
+ "connectCameraServiceLocked(X): tid(%d): mDeviceStatus size %d",
+ Thread.currentThread().getId(), mDeviceStatus.size()));
} catch (ServiceSpecificException e) {
// Unexpected failure
throw new IllegalStateException("Failed to register a camera service listener", e);
@@ -2349,18 +2365,28 @@ public final class CameraManager {
}
private String[] extractCameraIdListLocked(int deviceId, int devicePolicy) {
- List<String> cameraIds = new ArrayList<>();
- for (int i = 0; i < mDeviceStatus.size(); i++) {
- int status = mDeviceStatus.valueAt(i);
- DeviceCameraInfo info = mDeviceStatus.keyAt(i);
- if (status == ICameraServiceListener.STATUS_NOT_PRESENT
- || status == ICameraServiceListener.STATUS_ENUMERATING
- || shouldHideCamera(deviceId, devicePolicy, info)) {
- continue;
+ addDeviceStatusHistoryLocked(TextUtils.formatSimple(
+ "extractCameraIdListLocked(E): tid(%d): mDeviceStatus size %d",
+ Thread.currentThread().getId(), mDeviceStatus.size()));
+ try {
+ List<String> cameraIds = new ArrayList<>();
+ for (int i = 0; i < mDeviceStatus.size(); i++) {
+ int status = mDeviceStatus.valueAt(i);
+ DeviceCameraInfo info = mDeviceStatus.keyAt(i);
+ if (status == ICameraServiceListener.STATUS_NOT_PRESENT
+ || status == ICameraServiceListener.STATUS_ENUMERATING
+ || shouldHideCamera(deviceId, devicePolicy, info)) {
+ continue;
+ }
+ cameraIds.add(info.mCameraId);
}
- cameraIds.add(info.mCameraId);
+ return cameraIds.toArray(new String[0]);
+ } catch (ArrayIndexOutOfBoundsException e) {
+ String message = e.getMessage();
+ String messageWithHistory = message + ": {"
+ + String.join(" -> ", mDeviceStatusHistory) + "}";
+ throw new ArrayIndexOutOfBoundsException(messageWithHistory);
}
- return cameraIds.toArray(new String[0]);
}
private Set<Set<String>> extractConcurrentCameraIdListLocked(int deviceId,
@@ -2488,6 +2514,10 @@ public final class CameraManager {
synchronized (mLock) {
connectCameraServiceLocked();
try {
+ addDeviceStatusHistoryLocked(TextUtils.formatSimple(
+ "getCameraIdListNoLazy(E): tid(%d): mDeviceStatus size %d",
+ Thread.currentThread().getId(), mDeviceStatus.size()));
+
// The purpose of the addListener, removeListener pair here is to get a fresh
// list of camera ids from cameraserver. We do this since for in test processes,
// changes can happen w.r.t non-changeable permissions (eg: SYSTEM_CAMERA
@@ -2521,6 +2551,9 @@ public final class CameraManager {
onStatusChangedLocked(ICameraServiceListener.STATUS_NOT_PRESENT, info);
mTorchStatus.remove(info);
}
+ addDeviceStatusHistoryLocked(TextUtils.formatSimple(
+ "getCameraIdListNoLazy(X): tid(%d): mDeviceStatus size %d",
+ Thread.currentThread().getId(), mDeviceStatus.size()));
} catch (ServiceSpecificException e) {
// Unexpected failure
throw new IllegalStateException("Failed to register a camera service listener",
@@ -3209,7 +3242,13 @@ public final class CameraManager {
public void onStatusChanged(int status, String cameraId, int deviceId)
throws RemoteException {
synchronized(mLock) {
+ addDeviceStatusHistoryLocked(
+ TextUtils.formatSimple("onStatusChanged(E): tid(%d): mDeviceStatus size %d",
+ Thread.currentThread().getId(), mDeviceStatus.size()));
onStatusChangedLocked(status, new DeviceCameraInfo(cameraId, deviceId));
+ addDeviceStatusHistoryLocked(
+ TextUtils.formatSimple("onStatusChanged(X): tid(%d): mDeviceStatus size %d",
+ Thread.currentThread().getId(), mDeviceStatus.size()));
}
}
@@ -3352,6 +3391,10 @@ public final class CameraManager {
*/
public void binderDied() {
synchronized(mLock) {
+ addDeviceStatusHistoryLocked(
+ TextUtils.formatSimple("binderDied(E): tid(%d): mDeviceStatus size %d",
+ Thread.currentThread().getId(), mDeviceStatus.size()));
+
// Only do this once per service death
if (mCameraService == null) return;
@@ -3380,6 +3423,10 @@ public final class CameraManager {
mConcurrentCameraIdCombinations.clear();
scheduleCameraServiceReconnectionLocked();
+
+ addDeviceStatusHistoryLocked(
+ TextUtils.formatSimple("binderDied(X): tid(%d): mDeviceStatus size %d",
+ Thread.currentThread().getId(), mDeviceStatus.size()));
}
}
@@ -3409,5 +3456,13 @@ public final class CameraManager {
return Objects.hash(mCameraId, mDeviceId);
}
}
+
+ private void addDeviceStatusHistoryLocked(String log) {
+ if (mDeviceStatusHistory.size() == DEVICE_STATUS_ARRAY_SIZE) {
+ mDeviceStatusHistory.removeFirst();
+ }
+ mDeviceStatusHistory.addLast(log);
+ }
+
} // CameraManagerGlobal
} // CameraManager
diff --git a/core/java/android/hardware/display/DisplayManagerInternal.java b/core/java/android/hardware/display/DisplayManagerInternal.java
index 73b5d947c0fe..e5980972d590 100644
--- a/core/java/android/hardware/display/DisplayManagerInternal.java
+++ b/core/java/android/hardware/display/DisplayManagerInternal.java
@@ -431,6 +431,17 @@ public abstract class DisplayManagerInternal {
*/
public abstract IntArray getDisplayGroupIds();
+
+ /**
+ * Get all display ids belonging to the display group with given id.
+ */
+ public abstract int[] getDisplayIdsForGroup(int groupId);
+
+ /**
+ * Get the mapping of display group ids to the display ids that belong to them.
+ */
+ public abstract SparseArray<int[]> getDisplayIdsByGroupsIds();
+
/**
* Get all available display ids.
*/
diff --git a/core/java/android/hardware/input/input_framework.aconfig b/core/java/android/hardware/input/input_framework.aconfig
index 75683f607c35..99eeca98bce0 100644
--- a/core/java/android/hardware/input/input_framework.aconfig
+++ b/core/java/android/hardware/input/input_framework.aconfig
@@ -106,9 +106,6 @@ flag {
description: "Manage key gestures through Input APIs"
is_exported: true
bug: "358569822"
- metadata {
- purpose: PURPOSE_BUGFIX
- }
}
flag {
diff --git a/core/java/android/os/BatteryConsumer.java b/core/java/android/os/BatteryConsumer.java
index 492b82543fcc..b0ecca790b80 100644
--- a/core/java/android/os/BatteryConsumer.java
+++ b/core/java/android/os/BatteryConsumer.java
@@ -69,6 +69,7 @@ public abstract class BatteryConsumer {
POWER_COMPONENT_AMBIENT_DISPLAY,
POWER_COMPONENT_IDLE,
POWER_COMPONENT_REATTRIBUTED_TO_OTHER_CONSUMERS,
+ POWER_COMPONENT_BASE,
})
@Retention(RetentionPolicy.SOURCE)
public @interface PowerComponent {
@@ -101,8 +102,10 @@ public abstract class BatteryConsumer {
// The value should be negative or zero.
public static final int POWER_COMPONENT_REATTRIBUTED_TO_OTHER_CONSUMERS =
OsProtoEnums.POWER_COMPONENT_REATTRIBUTED_TO_OTHER_CONSUMERS; // 17
-
- public static final int POWER_COMPONENT_COUNT = 18;
+ // Power component ID that is used for technical purposes of attribution of time-in-state
+ // for UIDs and other general computations not associated with specific hardware.
+ public static final int POWER_COMPONENT_BASE = 18;
+ public static final int POWER_COMPONENT_COUNT = 19;
public static final int FIRST_CUSTOM_POWER_COMPONENT_ID = 1000;
public static final int LAST_CUSTOM_POWER_COMPONENT_ID = 9999;
@@ -129,6 +132,7 @@ public abstract class BatteryConsumer {
sPowerComponentNames[POWER_COMPONENT_AMBIENT_DISPLAY] = "ambient_display";
sPowerComponentNames[POWER_COMPONENT_IDLE] = "idle";
sPowerComponentNames[POWER_COMPONENT_REATTRIBUTED_TO_OTHER_CONSUMERS] = "reattributed";
+ sPowerComponentNames[POWER_COMPONENT_BASE] = ""; // Top-level, no need for a name
}
/**
@@ -211,6 +215,7 @@ public abstract class BatteryConsumer {
private static final IntArray SUPPORTED_POWER_COMPONENTS_PER_PROCESS_STATE;
static {
int[] supportedPowerComponents = {
+ POWER_COMPONENT_BASE,
POWER_COMPONENT_CPU,
POWER_COMPONENT_MOBILE_RADIO,
POWER_COMPONENT_WIFI,
@@ -220,7 +225,9 @@ public abstract class BatteryConsumer {
POWER_COMPONENT_FLASHLIGHT,
POWER_COMPONENT_CAMERA,
POWER_COMPONENT_GNSS,
- POWER_COMPONENT_SENSORS};
+ POWER_COMPONENT_SENSORS,
+ POWER_COMPONENT_WAKELOCK,
+ };
Arrays.sort(supportedPowerComponents);
SUPPORTED_POWER_COMPONENTS_PER_PROCESS_STATE = IntArray.wrap(supportedPowerComponents);
};
@@ -939,7 +946,7 @@ public abstract class BatteryConsumer {
));
// Declare Keys for all process states, if needed
- if (includeProcessStateData) {
+ if (includeProcessStateData || componentId == POWER_COMPONENT_BASE) {
boolean isSupported = SUPPORTED_POWER_COMPONENTS_PER_PROCESS_STATE
.binarySearch(componentId) >= 0
|| componentId >= FIRST_CUSTOM_POWER_COMPONENT_ID;
@@ -1126,6 +1133,13 @@ public abstract class BatteryConsumer {
return (T) this;
}
+ @SuppressWarnings("unchecked")
+ @NonNull
+ public T addUsageDurationMillis(Key key, long componentUsageTimeMillis) {
+ mPowerComponentsBuilder.addUsageDurationMillis(key, componentUsageTimeMillis);
+ return (T) this;
+ }
+
/**
* Returns the total power accumulated by this builder so far. It may change
* by the time the {@code build()} method is called.
diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java
index 996a288ef59d..b9b5295f89b6 100644
--- a/core/java/android/os/BatteryStats.java
+++ b/core/java/android/os/BatteryStats.java
@@ -1950,7 +1950,8 @@ public abstract class BatteryStats {
// STATES bits that are used for Power Stats tracking
public static final int IMPORTANT_FOR_POWER_STATS_STATES =
- STATE_GPS_ON_FLAG | STATE_SENSOR_ON_FLAG | STATE_AUDIO_ON_FLAG;
+ STATE_GPS_ON_FLAG | STATE_SENSOR_ON_FLAG | STATE_AUDIO_ON_FLAG
+ | STATE_WAKE_LOCK_FLAG;
@UnsupportedAppUsage
public int states;
@@ -3625,6 +3626,21 @@ public abstract class BatteryStats {
public abstract int getLearnedBatteryCapacity();
/**
+ * Returns best known estimate of the battery capacity in milli-amp-hours.
+ */
+ public int getBatteryCapacity() {
+ int batteryCapacityUah = getLearnedBatteryCapacity();
+ if (batteryCapacityUah > 0) {
+ return batteryCapacityUah / 1000;
+ }
+ batteryCapacityUah = getMinLearnedBatteryCapacity();
+ if (batteryCapacityUah > 0) {
+ return batteryCapacityUah / 1000;
+ }
+ return getEstimatedBatteryCapacity();
+ }
+
+ /**
* Return the array of discharge step durations.
*/
public abstract LevelStepTracker getDischargeLevelStepTracker();
diff --git a/core/java/android/os/PowerComponents.java b/core/java/android/os/PowerComponents.java
index 9200db31279a..f4e3f3b6e430 100644
--- a/core/java/android/os/PowerComponents.java
+++ b/core/java/android/os/PowerComponents.java
@@ -17,6 +17,7 @@ package android.os;
import static android.os.BatteryConsumer.BatteryConsumerDataLayout.POWER_MODEL_NOT_INCLUDED;
import static android.os.BatteryConsumer.POWER_COMPONENT_ANY;
+import static android.os.BatteryConsumer.POWER_COMPONENT_BASE;
import static android.os.BatteryConsumer.POWER_STATE_ANY;
import static android.os.BatteryConsumer.POWER_STATE_UNSPECIFIED;
import static android.os.BatteryConsumer.PROCESS_STATE_ANY;
@@ -184,6 +185,10 @@ class PowerComponents {
@BatteryConsumer.PowerState int powerState, boolean skipEmptyComponents) {
StringBuilder sb = new StringBuilder();
for (@BatteryConsumer.PowerComponentId int id : mData.layout.powerComponentIds) {
+ if (id == POWER_COMPONENT_BASE) {
+ continue;
+ }
+
dump(sb, id, PROCESS_STATE_ANY, screenState, powerState, skipEmptyComponents);
if (mData.layout.processStateDataIncluded) {
for (int processState = 0; processState < BatteryConsumer.PROCESS_STATE_COUNT;
@@ -491,6 +496,14 @@ class PowerComponents {
return this;
}
+ @NonNull
+ public Builder addUsageDurationMillis(BatteryConsumer.Key key,
+ long componentUsageDurationMillis) {
+ mData.putLong(key.mDurationColumnIndex,
+ mData.getLong(key.mDurationColumnIndex) + componentUsageDurationMillis);
+ return this;
+ }
+
public void addPowerAndDuration(PowerComponents.Builder other) {
addPowerAndDuration(other.mData);
}
diff --git a/core/java/android/os/UidBatteryConsumer.java b/core/java/android/os/UidBatteryConsumer.java
index 9b5a378d6591..7f7ef0467e08 100644
--- a/core/java/android/os/UidBatteryConsumer.java
+++ b/core/java/android/os/UidBatteryConsumer.java
@@ -70,10 +70,7 @@ public final class UidBatteryConsumer extends BatteryConsumer {
static final int COLUMN_INDEX_UID = BatteryConsumer.COLUMN_COUNT;
static final int COLUMN_INDEX_PACKAGE_WITH_HIGHEST_DRAIN = COLUMN_INDEX_UID + 1;
- static final int COLUMN_INDEX_TIME_IN_FOREGROUND = COLUMN_INDEX_UID + 2;
- static final int COLUMN_INDEX_TIME_IN_BACKGROUND = COLUMN_INDEX_UID + 3;
- static final int COLUMN_INDEX_TIME_IN_FOREGROUND_SERVICE = COLUMN_INDEX_UID + 4;
- static final int COLUMN_COUNT = BatteryConsumer.COLUMN_COUNT + 5;
+ static final int COLUMN_COUNT = BatteryConsumer.COLUMN_COUNT + 2;
UidBatteryConsumer(BatteryConsumerData data) {
super(data);
@@ -100,10 +97,10 @@ public final class UidBatteryConsumer extends BatteryConsumer {
public long getTimeInStateMs(@State int state) {
switch (state) {
case STATE_BACKGROUND:
- return mData.getInt(COLUMN_INDEX_TIME_IN_BACKGROUND)
- + mData.getInt(COLUMN_INDEX_TIME_IN_FOREGROUND_SERVICE);
+ return getTimeInProcessStateMs(PROCESS_STATE_BACKGROUND)
+ + getTimeInProcessStateMs(PROCESS_STATE_FOREGROUND_SERVICE);
case STATE_FOREGROUND:
- return mData.getInt(COLUMN_INDEX_TIME_IN_FOREGROUND);
+ return getTimeInProcessStateMs(PROCESS_STATE_FOREGROUND);
}
return 0;
}
@@ -112,13 +109,9 @@ public final class UidBatteryConsumer extends BatteryConsumer {
* Returns the amount of time in milliseconds this UID spent in the specified process state.
*/
public long getTimeInProcessStateMs(@ProcessState int state) {
- switch (state) {
- case PROCESS_STATE_BACKGROUND:
- return mData.getInt(COLUMN_INDEX_TIME_IN_BACKGROUND);
- case PROCESS_STATE_FOREGROUND:
- return mData.getInt(COLUMN_INDEX_TIME_IN_FOREGROUND);
- case PROCESS_STATE_FOREGROUND_SERVICE:
- return mData.getInt(COLUMN_INDEX_TIME_IN_FOREGROUND_SERVICE);
+ Key key = getKey(POWER_COMPONENT_BASE, state);
+ if (key != null) {
+ return getUsageDurationMillis(key);
}
return 0;
}
@@ -130,20 +123,16 @@ public final class UidBatteryConsumer extends BatteryConsumer {
pw.print(": ");
pw.print(BatteryStats.formatCharge(getConsumedPower()));
- if (mData.layout.processStateDataIncluded) {
- StringBuilder sb = new StringBuilder();
- appendProcessStateData(sb, BatteryConsumer.PROCESS_STATE_FOREGROUND,
- skipEmptyComponents);
- appendProcessStateData(sb, BatteryConsumer.PROCESS_STATE_BACKGROUND,
- skipEmptyComponents);
- appendProcessStateData(sb, BatteryConsumer.PROCESS_STATE_FOREGROUND_SERVICE,
- skipEmptyComponents);
- appendProcessStateData(sb, BatteryConsumer.PROCESS_STATE_CACHED,
- skipEmptyComponents);
- pw.println(sb);
- } else {
- pw.println();
- }
+ StringBuilder sb = new StringBuilder();
+ appendProcessStateData(sb, BatteryConsumer.PROCESS_STATE_FOREGROUND,
+ skipEmptyComponents);
+ appendProcessStateData(sb, BatteryConsumer.PROCESS_STATE_BACKGROUND,
+ skipEmptyComponents);
+ appendProcessStateData(sb, BatteryConsumer.PROCESS_STATE_FOREGROUND_SERVICE,
+ skipEmptyComponents);
+ appendProcessStateData(sb, BatteryConsumer.PROCESS_STATE_CACHED,
+ skipEmptyComponents);
+ pw.println(sb);
pw.print(" ");
mPowerComponents.dump(pw, SCREEN_STATE_ANY, POWER_STATE_ANY, skipEmptyComponents);
@@ -190,12 +179,20 @@ public final class UidBatteryConsumer extends BatteryConsumer {
boolean skipEmptyComponents) {
Dimensions dimensions = new Dimensions(POWER_COMPONENT_ANY, processState);
final double power = mPowerComponents.getConsumedPower(dimensions);
- if (power == 0 && skipEmptyComponents) {
+
+ Key key = getKey(POWER_COMPONENT_BASE, processState);
+ long durationMs = key != null ? mPowerComponents.getUsageDurationMillis(key) : 0;
+ if (power == 0 && durationMs == 0 && skipEmptyComponents) {
return;
}
sb.append(" ").append(processStateToString(processState)).append(": ")
.append(BatteryStats.formatCharge(power));
+ if (durationMs != 0) {
+ sb.append(" (");
+ BatteryStats.formatTimeMsNoSpace(sb, durationMs);
+ sb.append(")");
+ }
}
/** Serializes this object to XML */
@@ -322,10 +319,10 @@ public final class UidBatteryConsumer extends BatteryConsumer {
public Builder setTimeInStateMs(@State int state, long timeInStateMs) {
switch (state) {
case STATE_FOREGROUND:
- mData.putLong(COLUMN_INDEX_TIME_IN_FOREGROUND, timeInStateMs);
+ setTimeInProcessStateMs(PROCESS_STATE_FOREGROUND, timeInStateMs);
break;
case STATE_BACKGROUND:
- mData.putLong(COLUMN_INDEX_TIME_IN_BACKGROUND, timeInStateMs);
+ setTimeInProcessStateMs(PROCESS_STATE_BACKGROUND, timeInStateMs);
break;
default:
throw new IllegalArgumentException("Unsupported state: " + state);
@@ -339,18 +336,9 @@ public final class UidBatteryConsumer extends BatteryConsumer {
*/
@NonNull
public Builder setTimeInProcessStateMs(@ProcessState int state, long timeInProcessStateMs) {
- switch (state) {
- case PROCESS_STATE_FOREGROUND:
- mData.putLong(COLUMN_INDEX_TIME_IN_FOREGROUND, timeInProcessStateMs);
- break;
- case PROCESS_STATE_BACKGROUND:
- mData.putLong(COLUMN_INDEX_TIME_IN_BACKGROUND, timeInProcessStateMs);
- break;
- case PROCESS_STATE_FOREGROUND_SERVICE:
- mData.putLong(COLUMN_INDEX_TIME_IN_FOREGROUND_SERVICE, timeInProcessStateMs);
- break;
- default:
- throw new IllegalArgumentException("Unsupported process state: " + state);
+ Key key = getKey(POWER_COMPONENT_BASE, state);
+ if (key != null) {
+ mData.putLong(key.mDurationColumnIndex, timeInProcessStateMs);
}
return this;
}
@@ -368,17 +356,6 @@ public final class UidBatteryConsumer extends BatteryConsumer {
*/
public Builder add(UidBatteryConsumer consumer) {
mPowerComponentsBuilder.addPowerAndDuration(consumer.mPowerComponents);
-
- setTimeInProcessStateMs(PROCESS_STATE_FOREGROUND,
- mData.getLong(COLUMN_INDEX_TIME_IN_FOREGROUND)
- + consumer.getTimeInProcessStateMs(PROCESS_STATE_FOREGROUND));
- setTimeInProcessStateMs(PROCESS_STATE_BACKGROUND,
- mData.getLong(COLUMN_INDEX_TIME_IN_BACKGROUND)
- + consumer.getTimeInProcessStateMs(PROCESS_STATE_BACKGROUND));
- setTimeInProcessStateMs(PROCESS_STATE_FOREGROUND_SERVICE,
- mData.getLong(COLUMN_INDEX_TIME_IN_FOREGROUND_SERVICE)
- + consumer.getTimeInProcessStateMs(PROCESS_STATE_FOREGROUND_SERVICE));
-
if (mPackageWithHighestDrain == PACKAGE_NAME_UNINITIALIZED) {
mPackageWithHighestDrain = consumer.getPackageWithHighestDrain();
} else if (!TextUtils.equals(mPackageWithHighestDrain,
diff --git a/core/java/android/os/image/flags/trade_in_mode_flags.aconfig b/core/java/android/os/image/flags/trade_in_mode_flags.aconfig
new file mode 100644
index 000000000000..e2e56ef70d62
--- /dev/null
+++ b/core/java/android/os/image/flags/trade_in_mode_flags.aconfig
@@ -0,0 +1,11 @@
+package: "com.android.tradeinmode.flags"
+container: "system"
+
+flag {
+ name: "enable_trade_in_mode"
+ is_exported: true
+ namespace: "phoenix"
+ description: "Enable Trade-in Mode"
+ bug: "332683751"
+ is_fixed_read_only: true
+}
diff --git a/core/java/android/security/attestationverification/AttestationVerificationManager.java b/core/java/android/security/attestationverification/AttestationVerificationManager.java
index acf33822b3c7..ca4d417ad8fe 100644
--- a/core/java/android/security/attestationverification/AttestationVerificationManager.java
+++ b/core/java/android/security/attestationverification/AttestationVerificationManager.java
@@ -79,9 +79,7 @@ public class AttestationVerificationManager {
* is also associated with a particular connection.
*
* <p>The {@code callback} is called with a result and {@link VerificationToken} (which may be
- * null). The result is an integer (see constants in this class with the prefix {@code RESULT_}.
- * The result is {@link #RESULT_SUCCESS} when at least one verifier has passed its checks. The
- * token may be used in calls to other parts of the system.
+ * null). The result is an integer (see constants in {@link VerificationResultFlags}).
*
* <p>It's expected that a verifier will be able to decode and understand the passed values,
* otherwise fail to verify. {@code attestation} should contain some type data to prevent parse
@@ -108,7 +106,7 @@ public class AttestationVerificationManager {
@NonNull Bundle requirements,
@NonNull byte[] attestation,
@NonNull @CallbackExecutor Executor executor,
- @NonNull BiConsumer<@VerificationResult Integer, VerificationToken> callback) {
+ @NonNull BiConsumer<@VerificationResultFlags Integer, VerificationToken> callback) {
try {
AndroidFuture<IVerificationResult> resultCallback = new AndroidFuture<>();
resultCallback.thenAccept(result -> {
@@ -155,7 +153,7 @@ public class AttestationVerificationManager {
*/
@RequiresPermission(Manifest.permission.USE_ATTESTATION_VERIFICATION_SERVICE)
@CheckResult
- @VerificationResult
+ @VerificationResultFlags
public int verifyToken(
@NonNull AttestationProfile profile,
@LocalBindingType int localBindingType,
@@ -280,30 +278,66 @@ public class AttestationVerificationManager {
*/
public static final int TYPE_CHALLENGE = 3;
- /** @hide */
- @IntDef(
- prefix = {"RESULT_"},
- value = {
- RESULT_UNKNOWN,
- RESULT_SUCCESS,
- RESULT_FAILURE,
- })
- @Retention(RetentionPolicy.SOURCE)
+ /**
+ * Verification result returned from {@link #verifyAttestation}.
+ *
+ * A value of {@code 0} indicates success. Otherwise, a bit flag is set from first failing stage
+ * below:
+ * <ol>
+ * <li> The received attestation's integrity (e.g. the certificate signatures) is validated.
+ * If this fails, {@link #FLAG_FAILURE_CERTS} will be returned with all other bits unset.
+ * <li> The local binding requirements are checked. If this fails,
+ * {@link #FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS} is returned with all other bits unset.
+ * <li> The profile requirements are checked. If this fails, a bit flag will be returned with
+ * some of the these bits set to indicate the type of profile requirement failure:
+ * {@link #FLAG_FAILURE_UNSUPPORTED_PROFILE}, {@link #FLAG_FAILURE_KEYSTORE_REQUIREMENTS},
+ * {@link #FLAG_FAILURE_BOOT_STATE}, and {@link #FLAG_FAILURE_PATCH_LEVEL_DIFF}.
+ * </ol>
+ *
+ * Note: The reason of the failure must be not be provided to the remote device.
+ *
+ * @hide
+ */
+ @IntDef(flag = true, prefix = {"FLAG_FAILURE_"},
+ value = {
+ FLAG_FAILURE_UNKNOWN,
+ FLAG_FAILURE_UNSUPPORTED_PROFILE,
+ FLAG_FAILURE_CERTS,
+ FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS,
+ FLAG_FAILURE_KEYSTORE_REQUIREMENTS,
+ FLAG_FAILURE_BOOT_STATE,
+ FLAG_FAILURE_PATCH_LEVEL_DIFF,
+ })
@Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE})
- public @interface VerificationResult {
- }
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface VerificationResultFlags{}
- /** The result of the verification is unknown because it has a value unknown to this SDK. */
- public static final int RESULT_UNKNOWN = 0;
+ /** Flag: If there are unknown failures e.g. runtime exception. 0 = no, 1 = yes. */
+ public static final int FLAG_FAILURE_UNKNOWN = 1;
- /** The result of the verification was successful. */
- public static final int RESULT_SUCCESS = 1;
+ /** Flag: If the AVF profile is supported. 0 = supported, 1 = not supported */
+ public static final int FLAG_FAILURE_UNSUPPORTED_PROFILE = 1 << 1;
/**
- * The result of the attestation verification was failure. The attestation could not be
- * verified.
+ * Flag: Result bit for certs verification e.g. loading, generating, parsing certs.
+ * 0 = success, 1 = failure
*/
- public static final int RESULT_FAILURE = 2;
+ public static final int FLAG_FAILURE_CERTS = 1 << 2;
+
+ /** Flag: Result bit for local binding requirements verification. 0 = success, 1 = failure. */
+ public static final int FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS = 1 << 3;
+
+ /**
+ * Flag: Result bit for KeyStore requirements verification.
+ * 0 = success, 1 = failure.
+ */
+ public static final int FLAG_FAILURE_KEYSTORE_REQUIREMENTS = 1 << 4;
+
+ /** Flag: Result bit for boot state verification. 0 = success, 1 = failure */
+ public static final int FLAG_FAILURE_BOOT_STATE = 1 << 5;
+
+ /** Flag: Result bit for patch level diff checks. 0 = success, 1 = failure. */
+ public static final int FLAG_FAILURE_PATCH_LEVEL_DIFF = 1 << 6;
/**
* Requirements bundle parameter key for a public key, a byte array.
@@ -351,26 +385,4 @@ public class AttestationVerificationManager {
}
return text + "(" + localBindingType + ")";
}
-
- /** @hide */
- public static String verificationResultCodeToString(@VerificationResult int resultCode) {
- final String text;
- switch (resultCode) {
- case RESULT_UNKNOWN:
- text = "UNKNOWN";
- break;
-
- case RESULT_SUCCESS:
- text = "SUCCESS";
- break;
-
- case RESULT_FAILURE:
- text = "FAILURE";
- break;
-
- default:
- return Integer.toString(resultCode);
- }
- return text + "(" + resultCode + ")";
- }
}
diff --git a/core/java/android/security/attestationverification/AttestationVerificationService.java b/core/java/android/security/attestationverification/AttestationVerificationService.java
index 26c3051f7f38..01668d729282 100644
--- a/core/java/android/security/attestationverification/AttestationVerificationService.java
+++ b/core/java/android/security/attestationverification/AttestationVerificationService.java
@@ -20,7 +20,7 @@ import android.annotation.CheckResult;
import android.annotation.NonNull;
import android.app.Service;
import android.os.Bundle;
-import android.security.attestationverification.AttestationVerificationManager.VerificationResult;
+import android.security.attestationverification.AttestationVerificationManager.VerificationResultFlags;
/**
* A verifier which can be implemented by apps to verify an attestation (as described in {@link
@@ -93,7 +93,7 @@ public abstract class AttestationVerificationService extends Service {
* byte[], java.util.concurrent.Executor, java.util.function.BiConsumer)
*/
@CheckResult
- @VerificationResult
+ @VerificationResultFlags
public abstract int onVerifyPeerDeviceAttestation(
@NonNull Bundle requirements,
@NonNull byte[] attestation);
diff --git a/core/java/android/security/attestationverification/VerificationToken.java b/core/java/android/security/attestationverification/VerificationToken.java
index ae26823a9c7d..015010c52755 100644
--- a/core/java/android/security/attestationverification/VerificationToken.java
+++ b/core/java/android/security/attestationverification/VerificationToken.java
@@ -21,7 +21,7 @@ import android.os.Binder;
import android.os.Bundle;
import android.os.Parcelable;
import android.security.attestationverification.AttestationVerificationManager.LocalBindingType;
-import android.security.attestationverification.AttestationVerificationManager.VerificationResult;
+import android.security.attestationverification.AttestationVerificationManager.VerificationResultFlags;
import com.android.internal.util.DataClass;
import com.android.internal.util.Parcelling;
@@ -41,10 +41,6 @@ import java.util.function.BiConsumer;
* @hide
* @see Bundle#putParcelable(String, Parcelable)
*/
-@DataClass(
- genConstructor = false,
- genHiddenBuilder = true
-)
public final class VerificationToken implements Parcelable {
/**
@@ -69,17 +65,18 @@ public final class VerificationToken implements Parcelable {
private final Bundle mRequirements;
/**
- * The result of the {@link AttestationVerificationManager#verifyAttestation(int, int, Bundle,
- * byte[], Executor, BiConsumer)} call. This value is kept hidden to prevent token holders from
- * accidentally reading this value without calling {@code verifyToken}. Do <b>not</b> use this
- * value directly; call {@link AttestationVerificationManager#verifyToken(VerificationToken,
- * Duration)} to verify a valid token and it will return this value.
+ * The result of the {@link AttestationVerificationManager#verifyAttestation(AttestationProfile,
+ * int, Bundle, byte[], Executor, BiConsumer)} call. This value is kept hidden to prevent token
+ * holders from accidentally reading this value without calling {@code verifyToken}. Do
+ * <b>not</b> use this value directly; call {@link AttestationVerificationManager#verifyToken(
+ * AttestationProfile, int, Bundle, VerificationToken, Duration)} to verify a valid token and it
+ * will return this value.
*
* If the token is valid, this value is returned directly by {#verifyToken}.
*
* @hide
*/
- @VerificationResult
+ @VerificationResultFlags
private final int mVerificationResult;
/**
@@ -111,28 +108,13 @@ public final class VerificationToken implements Parcelable {
private int mUid;
- // Code below generated by codegen v1.0.23.
- //
- // DO NOT MODIFY!
- // CHECKSTYLE:OFF Generated code
- //
- // To regenerate run:
- // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/security/attestationverification/VerificationToken.java
- //
- // To exclude the generated code from IntelliJ auto-formatting enable (one-time):
- // Settings > Editor > Code Style > Formatter Control
- //@formatter:off
-
-
- @DataClass.Generated.Member
- /* package-private */ VerificationToken(
+ VerificationToken(
@NonNull AttestationProfile attestationProfile,
@LocalBindingType int localBindingType,
@NonNull Bundle requirements,
- @VerificationResult int verificationResult,
+ @VerificationResultFlags int verificationResult,
@NonNull java.time.Instant verificationTime,
- @NonNull byte[] hmac,
- int uid) {
+ @NonNull byte[] hmac) {
this.mAttestationProfile = attestationProfile;
com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, mAttestationProfile);
@@ -144,62 +126,61 @@ public final class VerificationToken implements Parcelable {
NonNull.class, null, mRequirements);
this.mVerificationResult = verificationResult;
com.android.internal.util.AnnotationValidations.validate(
- VerificationResult.class, null, mVerificationResult);
+ VerificationResultFlags.class, null, mVerificationResult);
this.mVerificationTime = verificationTime;
com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, mVerificationTime);
this.mHmac = hmac;
com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, mHmac);
- this.mUid = uid;
-
- // onConstructed(); // You can define this method to get a callback
}
/**
* The attestation profile which was used to perform the verification.
+ *
+ * @hide
*/
- @DataClass.Generated.Member
public @NonNull AttestationProfile getAttestationProfile() {
return mAttestationProfile;
}
/**
* The local binding type of the local binding data used to perform the verification.
+ *
+ * @hide
*/
- @DataClass.Generated.Member
public @LocalBindingType int getLocalBindingType() {
return mLocalBindingType;
}
/**
* The requirements used to perform the verification.
+ *
+ * @hide
*/
- @DataClass.Generated.Member
public @NonNull Bundle getRequirements() {
return mRequirements;
}
/**
- * The result of the {@link AttestationVerificationManager#verifyAttestation(int, int, Bundle,
- * byte[], Executor, BiConsumer)} call. This value is kept hidden to prevent token holders from
- * accidentally reading this value without calling {@code verifyToken}. Do <b>not</b> use this
- * value directly; call {@link AttestationVerificationManager#verifyToken(VerificationToken,
- * Duration)} to verify a valid token and it will return this value.
+ * The result of the {@link AttestationVerificationManager#verifyAttestation(AttestationProfile,
+ * int, Bundle, byte[], Executor, BiConsumer)} call. This value is kept hidden to prevent token
+ * holders from accidentally reading this value without calling {@code verifyToken}. Do
+ * <b>not</b> use this value directly; call {@link AttestationVerificationManager#verifyToken(
+ * AttestationProfile, int, Bundle, VerificationToken, Duration)} to verify a valid token and it
+ * will return this value.
*
* If the token is valid, this value is returned directly by {#verifyToken}.
*
* @hide
*/
- @DataClass.Generated.Member
- public @VerificationResult int getVerificationResult() {
+ public @VerificationResultFlags int getVerificationResult() {
return mVerificationResult;
}
/**
* Time when the token was generated, set by the system.
*/
- @DataClass.Generated.Member
public @NonNull java.time.Instant getVerificationTime() {
return mVerificationTime;
}
@@ -212,25 +193,10 @@ public final class VerificationToken implements Parcelable {
*
* @hide
*/
- @DataClass.Generated.Member
public @NonNull byte[] getHmac() {
return mHmac;
}
- /**
- * The UID of the process which called {@code verifyAttestation} to create the token, as
- * returned by {@link Binder#getCallingUid()}. Calls to {@code verifyToken} will fail if the UID
- * of calling process does not match this value. This ensures that tokens cannot be shared
- * between UIDs.
- *
- * @hide
- */
- @DataClass.Generated.Member
- public int getUid() {
- return mUid;
- }
-
- @DataClass.Generated.Member
static Parcelling<java.time.Instant> sParcellingForVerificationTime =
Parcelling.Cache.get(
ForInstant.class);
@@ -242,7 +208,6 @@ public final class VerificationToken implements Parcelable {
}
@Override
- @DataClass.Generated.Member
public void writeToParcel(@NonNull android.os.Parcel dest, int flags) {
// You can override field parcelling by defining methods like:
// void parcelFieldName(Parcel dest, int flags) { ... }
@@ -253,27 +218,24 @@ public final class VerificationToken implements Parcelable {
dest.writeInt(mVerificationResult);
sParcellingForVerificationTime.parcel(mVerificationTime, dest, flags);
dest.writeByteArray(mHmac);
- dest.writeInt(mUid);
}
@Override
- @DataClass.Generated.Member
public int describeContents() { return 0; }
/** @hide */
@SuppressWarnings({"unchecked", "RedundantCast"})
- @DataClass.Generated.Member
- /* package-private */ VerificationToken(@NonNull android.os.Parcel in) {
+ VerificationToken(@NonNull android.os.Parcel in) {
// You can override field unparcelling by defining methods like:
// static FieldType unparcelFieldName(Parcel in) { ... }
- AttestationProfile attestationProfile = (AttestationProfile) in.readTypedObject(AttestationProfile.CREATOR);
+ AttestationProfile attestationProfile = (AttestationProfile) in.readTypedObject(
+ AttestationProfile.CREATOR);
int localBindingType = in.readInt();
Bundle requirements = in.readBundle();
int verificationResult = in.readInt();
java.time.Instant verificationTime = sParcellingForVerificationTime.unparcel(in);
byte[] hmac = in.createByteArray();
- int uid = in.readInt();
this.mAttestationProfile = attestationProfile;
com.android.internal.util.AnnotationValidations.validate(
@@ -286,19 +248,15 @@ public final class VerificationToken implements Parcelable {
NonNull.class, null, mRequirements);
this.mVerificationResult = verificationResult;
com.android.internal.util.AnnotationValidations.validate(
- VerificationResult.class, null, mVerificationResult);
+ VerificationResultFlags.class, null, mVerificationResult);
this.mVerificationTime = verificationTime;
com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, mVerificationTime);
this.mHmac = hmac;
com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, mHmac);
- this.mUid = uid;
-
- // onConstructed(); // You can define this method to get a callback
}
- @DataClass.Generated.Member
public static final @NonNull Parcelable.Creator<VerificationToken> CREATOR
= new Parcelable.Creator<VerificationToken>() {
@Override
@@ -317,16 +275,14 @@ public final class VerificationToken implements Parcelable {
* @hide
*/
@SuppressWarnings("WeakerAccess")
- @DataClass.Generated.Member
public static final class Builder {
private @NonNull AttestationProfile mAttestationProfile;
private @LocalBindingType int mLocalBindingType;
private @NonNull Bundle mRequirements;
- private @VerificationResult int mVerificationResult;
+ private @VerificationResultFlags int mVerificationResult;
private @NonNull java.time.Instant mVerificationTime;
private @NonNull byte[] mHmac;
- private int mUid;
private long mBuilderFieldsSet = 0L;
@@ -340,34 +296,29 @@ public final class VerificationToken implements Parcelable {
* @param requirements
* The requirements used to perform the verification.
* @param verificationResult
- * The result of the {@link AttestationVerificationManager#verifyAttestation(int, int, Bundle,
- * byte[], Executor, BiConsumer)} call. This value is kept hidden to prevent token holders from
- * accidentally reading this value without calling {@code verifyToken}. Do <b>not</b> use this
- * value directly; call {@link AttestationVerificationManager#verifyToken(VerificationToken,
- * Duration)} to verify a valid token and it will return this value.
+ * The result of the {@link AttestationVerificationManager#verifyAttestation(
+ * AttestationProfile, int, Bundle, byte[], Executor, BiConsumer)} call. This value is
+ * kept hidden to prevent token holders from accidentally reading this value without
+ * calling {@code verifyToken}. Do <b>not</b> use this value directly; call {@link
+ * AttestationVerificationManager#verifyToken(AttestationProfile, int, Bundle,
+ * VerificationToken, Duration)} to verify a valid token and it will return this value.
*
* If the token is valid, this value is returned directly by {#verifyToken}.
* @param verificationTime
* Time when the token was generated, set by the system.
* @param hmac
- * A Hash-based message authentication code used to verify the contents and authenticity of the
- * rest of the token. The hash is created using a secret key known only to the system server.
- * When verifying the token, the system re-hashes the token and verifies the generated HMAC is
- * the same.
- * @param uid
- * The UID of the process which called {@code verifyAttestation} to create the token, as
- * returned by {@link Binder#getCallingUid()}. Calls to {@code verifyToken} will fail if the UID
- * of calling process does not match this value. This ensures that tokens cannot be shared
- * between UIDs.
+ * A Hash-based message authentication code used to verify the contents and authenticity
+ * of the rest of the token. The hash is created using a secret key known only to the
+ * system server. When verifying the token, the system re-hashes the token and verifies
+ * the generated HMAC is the same.
*/
public Builder(
@NonNull AttestationProfile attestationProfile,
@LocalBindingType int localBindingType,
@NonNull Bundle requirements,
- @VerificationResult int verificationResult,
+ @VerificationResultFlags int verificationResult,
@NonNull java.time.Instant verificationTime,
- @NonNull byte[] hmac,
- int uid) {
+ @NonNull byte[] hmac) {
mAttestationProfile = attestationProfile;
com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, mAttestationProfile);
@@ -379,20 +330,20 @@ public final class VerificationToken implements Parcelable {
NonNull.class, null, mRequirements);
mVerificationResult = verificationResult;
com.android.internal.util.AnnotationValidations.validate(
- VerificationResult.class, null, mVerificationResult);
+ VerificationResultFlags.class, null, mVerificationResult);
mVerificationTime = verificationTime;
com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, mVerificationTime);
mHmac = hmac;
com.android.internal.util.AnnotationValidations.validate(
NonNull.class, null, mHmac);
- mUid = uid;
}
/**
* The attestation profile which was used to perform the verification.
+ *
+ * @hide
*/
- @DataClass.Generated.Member
public @NonNull Builder setAttestationProfile(@NonNull AttestationProfile value) {
checkNotUsed();
mBuilderFieldsSet |= 0x1;
@@ -402,8 +353,9 @@ public final class VerificationToken implements Parcelable {
/**
* The local binding type of the local binding data used to perform the verification.
+ *
+ * @hide
*/
- @DataClass.Generated.Member
public @NonNull Builder setLocalBindingType(@LocalBindingType int value) {
checkNotUsed();
mBuilderFieldsSet |= 0x2;
@@ -413,8 +365,9 @@ public final class VerificationToken implements Parcelable {
/**
* The requirements used to perform the verification.
+ *
+ * @hide
*/
- @DataClass.Generated.Member
public @NonNull Builder setRequirements(@NonNull Bundle value) {
checkNotUsed();
mBuilderFieldsSet |= 0x4;
@@ -423,18 +376,18 @@ public final class VerificationToken implements Parcelable {
}
/**
- * The result of the {@link AttestationVerificationManager#verifyAttestation(int, int, Bundle,
- * byte[], Executor, BiConsumer)} call. This value is kept hidden to prevent token holders from
- * accidentally reading this value without calling {@code verifyToken}. Do <b>not</b> use this
- * value directly; call {@link AttestationVerificationManager#verifyToken(VerificationToken,
- * Duration)} to verify a valid token and it will return this value.
+ * The result of the {@link AttestationVerificationManager#verifyAttestation(
+ * AttestationProfile, int, Bundle, byte[], Executor, BiConsumer)} call. This value is kept
+ * hidden to prevent token holders from accidentally reading this value without calling
+ * {@code verifyToken}. Do <b>not</b> use this value directly; call {@link
+ * AttestationVerificationManager#verifyToken(AttestationProfile, int, Bundle,
+ * VerificationToken, Duration)} to verify a valid token and it will return this value.
*
* If the token is valid, this value is returned directly by {#verifyToken}.
*
* @hide
*/
- @DataClass.Generated.Member
- public @NonNull Builder setVerificationResult(@VerificationResult int value) {
+ public @NonNull Builder setVerificationResult(@VerificationResultFlags int value) {
checkNotUsed();
mBuilderFieldsSet |= 0x8;
mVerificationResult = value;
@@ -444,7 +397,6 @@ public final class VerificationToken implements Parcelable {
/**
* Time when the token was generated, set by the system.
*/
- @DataClass.Generated.Member
public @NonNull Builder setVerificationTime(@NonNull java.time.Instant value) {
checkNotUsed();
mBuilderFieldsSet |= 0x10;
@@ -453,14 +405,13 @@ public final class VerificationToken implements Parcelable {
}
/**
- * A Hash-based message authentication code used to verify the contents and authenticity of the
- * rest of the token. The hash is created using a secret key known only to the system server.
- * When verifying the token, the system re-hashes the token and verifies the generated HMAC is
- * the same.
+ * A Hash-based message authentication code used to verify the contents and authenticity of
+ * the rest of the token. The hash is created using a secret key known only to the system
+ * server. When verifying the token, the system re-hashes the token and verifies the
+ * generated HMAC is the same.
*
* @hide
*/
- @DataClass.Generated.Member
public @NonNull Builder setHmac(@NonNull byte... value) {
checkNotUsed();
mBuilderFieldsSet |= 0x20;
@@ -468,26 +419,10 @@ public final class VerificationToken implements Parcelable {
return this;
}
- /**
- * The UID of the process which called {@code verifyAttestation} to create the token, as
- * returned by {@link Binder#getCallingUid()}. Calls to {@code verifyToken} will fail if the UID
- * of calling process does not match this value. This ensures that tokens cannot be shared
- * between UIDs.
- *
- * @hide
- */
- @DataClass.Generated.Member
- public @NonNull Builder setUid(int value) {
- checkNotUsed();
- mBuilderFieldsSet |= 0x40;
- mUid = value;
- return this;
- }
-
/** Builds the instance. This builder should not be touched after calling this! */
public @NonNull VerificationToken build() {
checkNotUsed();
- mBuilderFieldsSet |= 0x80; // Mark builder used
+ mBuilderFieldsSet |= 0x40; // Mark builder used
VerificationToken o = new VerificationToken(
mAttestationProfile,
@@ -495,29 +430,15 @@ public final class VerificationToken implements Parcelable {
mRequirements,
mVerificationResult,
mVerificationTime,
- mHmac,
- mUid);
+ mHmac);
return o;
}
private void checkNotUsed() {
- if ((mBuilderFieldsSet & 0x80) != 0) {
+ if ((mBuilderFieldsSet & 0x40) != 0) {
throw new IllegalStateException(
"This Builder should not be reused. Use a new Builder instance instead");
}
}
}
-
- @DataClass.Generated(
- time = 1633629747234L,
- codegenVersion = "1.0.23",
- sourceFile = "frameworks/base/core/java/android/security/attestationverification/VerificationToken.java",
- inputSignatures = "private final @android.annotation.NonNull android.security.attestationverification.AttestationProfile mAttestationProfile\nprivate final @android.security.attestationverification.AttestationVerificationManager.LocalBindingType int mLocalBindingType\nprivate final @android.annotation.NonNull android.os.Bundle mRequirements\nprivate final @android.security.attestationverification.AttestationVerificationManager.VerificationResult int mVerificationResult\nprivate final @android.annotation.NonNull @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInstant.class) java.time.Instant mVerificationTime\nprivate final @android.annotation.NonNull byte[] mHmac\nprivate int mUid\nclass VerificationToken extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genConstructor=false, genHiddenBuilder=true)")
- @Deprecated
- private void __metadata() {}
-
-
- //@formatter:on
- // End of generated code
-
}
diff --git a/core/java/android/service/chooser/ChooserResult.java b/core/java/android/service/chooser/ChooserResult.java
index 2d56ec730836..9e6c4ff5d24e 100644
--- a/core/java/android/service/chooser/ChooserResult.java
+++ b/core/java/android/service/chooser/ChooserResult.java
@@ -16,7 +16,6 @@
package android.service.chooser;
-import android.annotation.FlaggedApi;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -41,7 +40,6 @@ import java.util.Objects;
*
* @see Intent#EXTRA_CHOOSER_RESULT_INTENT_SENDER
*/
-@FlaggedApi(android.service.chooser.Flags.FLAG_ENABLE_CHOOSER_RESULT)
public final class ChooserResult implements Parcelable {
/**
diff --git a/core/java/android/service/notification/NotificationAssistantService.java b/core/java/android/service/notification/NotificationAssistantService.java
index 48d7cf768e77..7b7058e83acc 100644
--- a/core/java/android/service/notification/NotificationAssistantService.java
+++ b/core/java/android/service/notification/NotificationAssistantService.java
@@ -393,6 +393,23 @@ public abstract class NotificationAssistantService extends NotificationListenerS
}
}
+ /**
+ * Informs the notification manager about what {@link Adjustment Adjustments} are supported by
+ * this NAS.
+ *
+ * For backwards compatibility, we assume all Adjustment types are supported by the NAS.
+ */
+ @FlaggedApi(Flags.FLAG_NOTIFICATION_CLASSIFICATION)
+ public final void setAdjustmentTypeSupportedState(@NonNull @Adjustment.Keys String key,
+ boolean supported) {
+ if (!isBound()) return;
+ try {
+ getNotificationInterface().setAdjustmentTypeSupportedState(mWrapper, key, supported);
+ } catch (android.os.RemoteException ex) {
+ Log.v(TAG, "Unable to contact notification manager", ex);
+ }
+ }
+
private class NotificationAssistantServiceWrapper extends NotificationListenerWrapper {
@Override
public void onNotificationEnqueuedWithChannel(IStatusBarNotificationHolder sbnHolder,
diff --git a/core/java/android/service/notification/ZenModeDiff.java b/core/java/android/service/notification/ZenModeDiff.java
index 60a7d6b5a3be..a9c57909e1c1 100644
--- a/core/java/android/service/notification/ZenModeDiff.java
+++ b/core/java/android/service/notification/ZenModeDiff.java
@@ -16,6 +16,7 @@
package android.service.notification;
+import android.annotation.FlaggedApi;
import android.annotation.IntDef;
import android.annotation.Nullable;
import android.app.Flags;
@@ -663,4 +664,338 @@ public class ZenModeDiff {
return mActiveDiff != null && !mActiveDiff.to();
}
}
+
+ /**
+ * Diff class representing a change between two
+ * {@link android.service.notification.ZenDeviceEffects}.
+ */
+ @FlaggedApi(Flags.FLAG_MODES_API)
+ public static class DeviceEffectsDiff extends BaseDiff {
+ public static final String FIELD_GRAYSCALE = "mGrayscale";
+ public static final String FIELD_SUPPRESS_AMBIENT_DISPLAY = "mSuppressAmbientDisplay";
+ public static final String FIELD_DIM_WALLPAPER = "mDimWallpaper";
+ public static final String FIELD_NIGHT_MODE = "mNightMode";
+ public static final String FIELD_DISABLE_AUTO_BRIGHTNESS = "mDisableAutoBrightness";
+ public static final String FIELD_DISABLE_TAP_TO_WAKE = "mDisableTapToWake";
+ public static final String FIELD_DISABLE_TILT_TO_WAKE = "mDisableTiltToWake";
+ public static final String FIELD_DISABLE_TOUCH = "mDisableTouch";
+ public static final String FIELD_MINIMIZE_RADIO_USAGE = "mMinimizeRadioUsage";
+ public static final String FIELD_MAXIMIZE_DOZE = "mMaximizeDoze";
+ public static final String FIELD_EXTRA_EFFECTS = "mExtraEffects";
+ // NOTE: new field strings must match the variable names in ZenDeviceEffects
+
+ /**
+ * Create a DeviceEffectsDiff representing the difference between two ZenDeviceEffects
+ * objects.
+ * @param from previous ZenDeviceEffects
+ * @param to new ZenDeviceEffects
+ * @return The diff between the two given ZenDeviceEffects
+ */
+ public DeviceEffectsDiff(ZenDeviceEffects from, ZenDeviceEffects to) {
+ super(from, to);
+ // Short-circuit the both-null case
+ if (from == null && to == null) {
+ return;
+ }
+ if (hasExistenceChange()) {
+ // either added or removed; return here. otherwise (they're not both null) there's
+ // field diffs.
+ return;
+ }
+
+ // Compare all fields, knowing there's some diff and that neither is null.
+ if (from.shouldDisplayGrayscale() != to.shouldDisplayGrayscale()) {
+ addField(FIELD_GRAYSCALE, new FieldDiff<>(from.shouldDisplayGrayscale(),
+ to.shouldDisplayGrayscale()));
+ }
+ if (from.shouldSuppressAmbientDisplay() != to.shouldSuppressAmbientDisplay()) {
+ addField(FIELD_SUPPRESS_AMBIENT_DISPLAY,
+ new FieldDiff<>(from.shouldSuppressAmbientDisplay(),
+ to.shouldSuppressAmbientDisplay()));
+ }
+ if (from.shouldDimWallpaper() != to.shouldDimWallpaper()) {
+ addField(FIELD_DIM_WALLPAPER, new FieldDiff<>(from.shouldDimWallpaper(),
+ to.shouldDimWallpaper()));
+ }
+ if (from.shouldUseNightMode() != to.shouldUseNightMode()) {
+ addField(FIELD_NIGHT_MODE, new FieldDiff<>(from.shouldUseNightMode(),
+ to.shouldUseNightMode()));
+ }
+ if (from.shouldDisableAutoBrightness() != to.shouldDisableAutoBrightness()) {
+ addField(FIELD_DISABLE_AUTO_BRIGHTNESS,
+ new FieldDiff<>(from.shouldDisableAutoBrightness(),
+ to.shouldDisableAutoBrightness()));
+ }
+ if (from.shouldDisableTapToWake() != to.shouldDisableTapToWake()) {
+ addField(FIELD_DISABLE_TAP_TO_WAKE, new FieldDiff<>(from.shouldDisableTapToWake(),
+ to.shouldDisableTapToWake()));
+ }
+ if (from.shouldDisableTiltToWake() != to.shouldDisableTiltToWake()) {
+ addField(FIELD_DISABLE_TILT_TO_WAKE,
+ new FieldDiff<>(from.shouldDisableTiltToWake(),
+ to.shouldDisableTiltToWake()));
+ }
+ if (from.shouldDisableTouch() != to.shouldDisableTouch()) {
+ addField(FIELD_DISABLE_TOUCH, new FieldDiff<>(from.shouldDisableTouch(),
+ to.shouldDisableTouch()));
+ }
+ if (from.shouldMinimizeRadioUsage() != to.shouldMinimizeRadioUsage()) {
+ addField(FIELD_MINIMIZE_RADIO_USAGE,
+ new FieldDiff<>(from.shouldMinimizeRadioUsage(),
+ to.shouldMinimizeRadioUsage()));
+ }
+ if (from.shouldMaximizeDoze() != to.shouldMaximizeDoze()) {
+ addField(FIELD_MAXIMIZE_DOZE, new FieldDiff<>(from.shouldMaximizeDoze(),
+ to.shouldMaximizeDoze()));
+ }
+ if (!Objects.equals(from.getExtraEffects(), to.getExtraEffects())) {
+ addField(FIELD_EXTRA_EFFECTS, new FieldDiff<>(from.getExtraEffects(),
+ to.getExtraEffects()));
+ }
+ }
+
+ /**
+ * Returns whether this object represents an actual diff.
+ */
+ @Override
+ public boolean hasDiff() {
+ return hasExistenceChange() || hasFieldDiffs();
+ }
+
+ @Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder("ZenDeviceEffectsDiff{");
+ if (!hasDiff()) {
+ sb.append("no changes");
+ }
+
+ // If added or deleted, we just append that.
+ if (hasExistenceChange()) {
+ if (wasAdded()) {
+ sb.append("added");
+ } else if (wasRemoved()) {
+ sb.append("removed");
+ }
+ }
+
+ // Append all of the individual field diffs
+ boolean first = true;
+ for (String key : fieldNamesWithDiff()) {
+ FieldDiff diff = getDiffForField(key);
+ if (diff == null) {
+ // The diff should not have null diffs added, but we add this to be defensive.
+ continue;
+ }
+ if (first) {
+ first = false;
+ } else {
+ sb.append(", ");
+ }
+
+ sb.append(key);
+ sb.append(":");
+ sb.append(diff);
+ }
+
+ return sb.append("}").toString();
+ }
+ }
+
+ /**
+ * Diff class representing a change between two {@link android.service.notification.ZenPolicy}.
+ */
+ @FlaggedApi(Flags.FLAG_MODES_API)
+ public static class PolicyDiff extends BaseDiff {
+ public static final String FIELD_PRIORITY_CATEGORY_REMINDERS =
+ "mPriorityCategories_Reminders";
+ public static final String FIELD_PRIORITY_CATEGORY_EVENTS = "mPriorityCategories_Events";
+ public static final String FIELD_PRIORITY_CATEGORY_MESSAGES =
+ "mPriorityCategories_Messages";
+ public static final String FIELD_PRIORITY_CATEGORY_CALLS = "mPriorityCategories_Calls";
+ public static final String FIELD_PRIORITY_CATEGORY_REPEAT_CALLERS =
+ "mPriorityCategories_RepeatCallers";
+ public static final String FIELD_PRIORITY_CATEGORY_ALARMS = "mPriorityCategories_Alarms";
+ public static final String FIELD_PRIORITY_CATEGORY_MEDIA = "mPriorityCategories_Media";
+ public static final String FIELD_PRIORITY_CATEGORY_SYSTEM = "mPriorityCategories_System";
+ public static final String FIELD_PRIORITY_CATEGORY_CONVERSATIONS =
+ "mPriorityCategories_Conversations";
+
+ public static final String FIELD_VISUAL_EFFECT_FULL_SCREEN_INTENT =
+ "mVisualEffects_FullScreenIntent";
+ public static final String FIELD_VISUAL_EFFECT_LIGHTS = "mVisualEffects_Lights";
+ public static final String FIELD_VISUAL_EFFECT_PEEK = "mVisualEffects_Peek";
+ public static final String FIELD_VISUAL_EFFECT_STATUS_BAR = "mVisualEffects_StatusBar";
+ public static final String FIELD_VISUAL_EFFECT_BADGE = "mVisualEffects_Badge";
+ public static final String FIELD_VISUAL_EFFECT_AMBIENT = "mVisualEffects_Ambient";
+ public static final String FIELD_VISUAL_EFFECT_NOTIFICATION_LIST =
+ "mVisualEffects_NotificationList";
+
+ public static final String FIELD_PRIORITY_MESSAGES = "mPriorityMessages";
+ public static final String FIELD_PRIORITY_CALLS = "mPriorityCalls";
+ public static final String FIELD_CONVERSATION_SENDERS = "mConversationSenders";
+ public static final String FIELD_ALLOW_CHANNELS = "mAllowChannels";
+
+ /**
+ * Create a PolicyDiff representing the difference between two ZenPolicy objects.
+ *
+ * @param from previous ZenPolicy
+ * @param to new ZenPolicy
+ * @return The diff between the two given ZenPolicy
+ */
+ public PolicyDiff(ZenPolicy from, ZenPolicy to) {
+ super(from, to);
+ // Short-circuit the both-null case
+ if (from == null && to == null) {
+ return;
+ }
+ if (hasExistenceChange()) {
+ // either added or removed; return here. otherwise (they're not both null) there's
+ // field diffs.
+ return;
+ }
+
+ // Compare all fields, knowing there's some diff and that neither is null.
+ if (from.getPriorityCategoryReminders() != to.getPriorityCategoryReminders()) {
+ addField(FIELD_PRIORITY_CATEGORY_REMINDERS,
+ new FieldDiff<>(from.getPriorityCategoryReminders(),
+ to.getPriorityCategoryReminders()));
+ }
+ if (from.getPriorityCategoryEvents() != to.getPriorityCategoryEvents()) {
+ addField(FIELD_PRIORITY_CATEGORY_EVENTS,
+ new FieldDiff<>(from.getPriorityCategoryEvents(),
+ to.getPriorityCategoryEvents()));
+ }
+ if (from.getPriorityCategoryMessages() != to.getPriorityCategoryMessages()) {
+ addField(FIELD_PRIORITY_CATEGORY_MESSAGES,
+ new FieldDiff<>(from.getPriorityCategoryMessages(),
+ to.getPriorityCategoryMessages()));
+ }
+ if (from.getPriorityCategoryCalls() != to.getPriorityCategoryCalls()) {
+ addField(FIELD_PRIORITY_CATEGORY_CALLS,
+ new FieldDiff<>(from.getPriorityCategoryCalls(),
+ to.getPriorityCategoryCalls()));
+ }
+ if (from.getPriorityCategoryRepeatCallers() != to.getPriorityCategoryRepeatCallers()) {
+ addField(FIELD_PRIORITY_CATEGORY_REPEAT_CALLERS,
+ new FieldDiff<>(from.getPriorityCategoryRepeatCallers(),
+ to.getPriorityCategoryRepeatCallers()));
+ }
+ if (from.getPriorityCategoryAlarms() != to.getPriorityCategoryAlarms()) {
+ addField(FIELD_PRIORITY_CATEGORY_ALARMS,
+ new FieldDiff<>(from.getPriorityCategoryAlarms(),
+ to.getPriorityCategoryAlarms()));
+ }
+ if (from.getPriorityCategoryMedia() != to.getPriorityCategoryMedia()) {
+ addField(FIELD_PRIORITY_CATEGORY_MEDIA,
+ new FieldDiff<>(from.getPriorityCategoryMedia(),
+ to.getPriorityCategoryMedia()));
+ }
+ if (from.getPriorityCategorySystem() != to.getPriorityCategorySystem()) {
+ addField(FIELD_PRIORITY_CATEGORY_SYSTEM,
+ new FieldDiff<>(from.getPriorityCategorySystem(),
+ to.getPriorityCategorySystem()));
+ }
+ if (from.getPriorityCategoryConversations() != to.getPriorityCategoryConversations()) {
+ addField(FIELD_PRIORITY_CATEGORY_CONVERSATIONS,
+ new FieldDiff<>(from.getPriorityCategoryConversations(),
+ to.getPriorityCategoryConversations()));
+ }
+ if (from.getVisualEffectFullScreenIntent() != to.getVisualEffectFullScreenIntent()) {
+ addField(FIELD_VISUAL_EFFECT_FULL_SCREEN_INTENT,
+ new FieldDiff<>(from.getVisualEffectFullScreenIntent(),
+ to.getVisualEffectFullScreenIntent()));
+ }
+ if (from.getVisualEffectLights() != to.getVisualEffectLights()) {
+ addField(FIELD_VISUAL_EFFECT_LIGHTS,
+ new FieldDiff<>(from.getVisualEffectLights(), to.getVisualEffectLights()));
+ }
+ if (from.getVisualEffectPeek() != to.getVisualEffectPeek()) {
+ addField(FIELD_VISUAL_EFFECT_PEEK, new FieldDiff<>(from.getVisualEffectPeek(),
+ to.getVisualEffectPeek()));
+ }
+ if (from.getVisualEffectStatusBar() != to.getVisualEffectStatusBar()) {
+ addField(FIELD_VISUAL_EFFECT_STATUS_BAR,
+ new FieldDiff<>(from.getVisualEffectStatusBar(),
+ to.getVisualEffectStatusBar()));
+ }
+ if (from.getVisualEffectBadge() != to.getVisualEffectBadge()) {
+ addField(FIELD_VISUAL_EFFECT_BADGE, new FieldDiff<>(from.getVisualEffectBadge(),
+ to.getVisualEffectBadge()));
+ }
+ if (from.getVisualEffectAmbient() != to.getVisualEffectAmbient()) {
+ addField(FIELD_VISUAL_EFFECT_AMBIENT, new FieldDiff<>(from.getVisualEffectAmbient(),
+ to.getVisualEffectAmbient()));
+ }
+ if (from.getVisualEffectNotificationList() != to.getVisualEffectNotificationList()) {
+ addField(FIELD_VISUAL_EFFECT_NOTIFICATION_LIST,
+ new FieldDiff<>(from.getVisualEffectNotificationList(),
+ to.getVisualEffectNotificationList()));
+ }
+ if (from.getPriorityMessageSenders() != to.getPriorityMessageSenders()) {
+ addField(FIELD_PRIORITY_MESSAGES, new FieldDiff<>(from.getPriorityMessageSenders(),
+ to.getPriorityMessageSenders()));
+ }
+ if (from.getPriorityCallSenders() != to.getPriorityCallSenders()) {
+ addField(FIELD_PRIORITY_CALLS, new FieldDiff<>(from.getPriorityCallSenders(),
+ to.getPriorityCallSenders()));
+ }
+ if (from.getPriorityConversationSenders() != to.getPriorityConversationSenders()) {
+ addField(FIELD_CONVERSATION_SENDERS,
+ new FieldDiff<>(from.getPriorityConversationSenders(),
+ to.getPriorityConversationSenders()));
+ }
+ if (from.getPriorityChannelsAllowed() != to.getPriorityChannelsAllowed()) {
+ addField(FIELD_ALLOW_CHANNELS, new FieldDiff<>(from.getPriorityChannelsAllowed(),
+ to.getPriorityChannelsAllowed()));
+ }
+ }
+
+ /**
+ * Returns whether this object represents an actual diff.
+ */
+ @Override
+ public boolean hasDiff() {
+ return hasExistenceChange() || hasFieldDiffs();
+ }
+
+ @Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder("ZenPolicyDiff{");
+ // The diff should not have null diffs added, but we add this to be defensive.
+ if (!hasDiff()) {
+ sb.append("no changes");
+ }
+
+ // If added or deleted, we just append that.
+ if (hasExistenceChange()) {
+ if (wasAdded()) {
+ sb.append("added");
+ } else if (wasRemoved()) {
+ sb.append("removed");
+ }
+ }
+
+ // Go through all of the individual fields
+ boolean first = true;
+ for (String key : fieldNamesWithDiff()) {
+ FieldDiff diff = getDiffForField(key);
+ if (diff == null) {
+ // this shouldn't happen...
+ continue;
+ }
+ if (first) {
+ first = false;
+ } else {
+ sb.append(", ");
+ }
+
+ sb.append(key);
+ sb.append(":");
+ sb.append(diff);
+ }
+
+ return sb.append("}").toString();
+ }
+ }
+
}
diff --git a/core/java/android/service/notification/ZenPolicy.java b/core/java/android/service/notification/ZenPolicy.java
index be0d7b3a72f2..4cff67e24a0f 100644
--- a/core/java/android/service/notification/ZenPolicy.java
+++ b/core/java/android/service/notification/ZenPolicy.java
@@ -29,6 +29,8 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.util.proto.ProtoOutputStream;
+import androidx.annotation.VisibleForTesting;
+
import java.io.ByteArrayOutputStream;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -207,8 +209,10 @@ public final class ZenPolicy implements Parcelable {
/**
* Total number of priority categories. Keep updated with any updates to PriorityCategory enum.
+ * If this changes, you must update {@link ZenModeDiff.PolicyDiff} to include new categories.
* @hide
*/
+ @VisibleForTesting
public static final int NUM_PRIORITY_CATEGORIES = 9;
/** @hide */
@@ -241,8 +245,10 @@ public final class ZenPolicy implements Parcelable {
/**
* Total number of visual effects. Keep updated with any updates to VisualEffect enum.
+ * If this changes, you must update {@link ZenModeDiff.PolicyDiff} to include new categories.
* @hide
*/
+ @VisibleForTesting
public static final int NUM_VISUAL_EFFECTS = 7;
/** @hide */
diff --git a/core/java/android/view/InputEventCompatProcessor.java b/core/java/android/view/InputEventCompatProcessor.java
index ff8407a40cf5..50d81f4b6eec 100644
--- a/core/java/android/view/InputEventCompatProcessor.java
+++ b/core/java/android/view/InputEventCompatProcessor.java
@@ -18,6 +18,9 @@ package android.view;
import android.content.Context;
import android.os.Build;
+import android.os.Handler;
+
+import com.android.window.flags.Flags;
import java.util.ArrayList;
import java.util.List;
@@ -32,50 +35,102 @@ public class InputEventCompatProcessor {
protected Context mContext;
protected int mTargetSdkVersion;
+ private final LetterboxScrollProcessor mLetterboxScrollProcessor;
/** List of events to be used to return the processed events */
- private List<InputEvent> mProcessedEvents;
+ private final List<InputEvent> mProcessedEvents;
public InputEventCompatProcessor(Context context) {
+ this(context, null);
+ }
+
+ public InputEventCompatProcessor(Context context, Handler handler) {
mContext = context;
mTargetSdkVersion = context.getApplicationInfo().targetSdkVersion;
+ if (Flags.scrollingFromLetterbox()) {
+ mLetterboxScrollProcessor = new LetterboxScrollProcessor(mContext, handler);
+ } else {
+ mLetterboxScrollProcessor = null;
+ }
+
mProcessedEvents = new ArrayList<>();
}
+
/**
* Processes the InputEvent for compatibility before it is sent to the app, allowing for the
* generation of more than one event if necessary.
*
- * @param e The InputEvent to process
- * @return The list of adjusted events, or null if no adjustments are needed. Do not keep a
- * reference to the output as the list is reused.
+ * @param inputEvent The InputEvent to process.
+ * @return The list of adjusted events, or null if no adjustments are needed. The list is empty
+ * if the event should be ignored. Do not keep a reference to the output as the list is reused.
*/
- public List<InputEvent> processInputEventForCompatibility(InputEvent e) {
- if (mTargetSdkVersion < Build.VERSION_CODES.M && e instanceof MotionEvent) {
- mProcessedEvents.clear();
- MotionEvent motion = (MotionEvent) e;
- final int mask =
- MotionEvent.BUTTON_STYLUS_PRIMARY | MotionEvent.BUTTON_STYLUS_SECONDARY;
- final int buttonState = motion.getButtonState();
- final int compatButtonState = (buttonState & mask) >> 4;
- if (compatButtonState != 0) {
- motion.setButtonState(buttonState | compatButtonState);
+ public List<InputEvent> processInputEventForCompatibility(InputEvent inputEvent) {
+ mProcessedEvents.clear();
+
+ // Process the event for StylusButtonCompatibility.
+ final InputEvent stylusCompatEvent = processStylusButtonCompatibility(inputEvent);
+
+ // Process the event for LetterboxScrollCompatibility.
+ List<MotionEvent> letterboxScrollCompatEvents = processLetterboxScrollCompatibility(
+ stylusCompatEvent != null ? stylusCompatEvent : inputEvent);
+
+ // If no adjustments are needed for LetterboxCompatibility.
+ if (letterboxScrollCompatEvents == null) {
+ // If stylus compatibility made adjustments, return that adjusted event.
+ if (stylusCompatEvent != null) {
+ mProcessedEvents.add(stylusCompatEvent);
+ return mProcessedEvents;
}
- mProcessedEvents.add(motion);
- return mProcessedEvents;
+ // Otherwise, return null to indicate no adjustments.
+ return null;
}
- return null;
+
+ // Otherwise if LetterboxCompatibility made adjustments, return the list of adjusted events.
+ mProcessedEvents.addAll(letterboxScrollCompatEvents);
+ return mProcessedEvents;
}
/**
* Processes the InputEvent for compatibility before it is finished by calling
* InputEventReceiver#finishInputEvent().
*
- * @param e The InputEvent to process
- * @return The InputEvent to finish, or null if it should not be finished
+ * @param inputEvent The InputEvent to process.
+ * @return The InputEvent to finish, or null if it should not be finished.
*/
- public InputEvent processInputEventBeforeFinish(InputEvent e) {
+ public InputEvent processInputEventBeforeFinish(InputEvent inputEvent) {
+ if (mLetterboxScrollProcessor != null && inputEvent instanceof MotionEvent motionEvent) {
+ // LetterboxScrollProcessor may have generated events while processing motion events.
+ return mLetterboxScrollProcessor.processMotionEventBeforeFinish(motionEvent);
+ }
+
// No changes needed
- return e;
+ return inputEvent;
+ }
+
+
+ private List<MotionEvent> processLetterboxScrollCompatibility(InputEvent inputEvent) {
+ if (mLetterboxScrollProcessor != null
+ && inputEvent instanceof MotionEvent motionEvent
+ && motionEvent.getAction() != MotionEvent.ACTION_OUTSIDE) {
+ return mLetterboxScrollProcessor.processMotionEvent(motionEvent);
+ }
+ return null;
+ }
+
+
+ private InputEvent processStylusButtonCompatibility(InputEvent inputEvent) {
+ if (mTargetSdkVersion < Build.VERSION_CODES.M && inputEvent instanceof MotionEvent) {
+ MotionEvent motion = (MotionEvent) inputEvent;
+ final int mask =
+ MotionEvent.BUTTON_STYLUS_PRIMARY | MotionEvent.BUTTON_STYLUS_SECONDARY;
+ final int buttonState = motion.getButtonState();
+ final int compatButtonState = (buttonState & mask) >> 4;
+ if (compatButtonState != 0) {
+ motion.setButtonState(buttonState | compatButtonState);
+ }
+ return motion;
+ }
+ return null;
}
}
diff --git a/core/java/android/view/LetterboxScrollProcessor.java b/core/java/android/view/LetterboxScrollProcessor.java
new file mode 100644
index 000000000000..dc736d6abf7d
--- /dev/null
+++ b/core/java/android/view/LetterboxScrollProcessor.java
@@ -0,0 +1,194 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.view;
+
+import android.annotation.Nullable;
+import android.content.Context;
+import android.graphics.Rect;
+import android.os.Handler;
+
+import androidx.annotation.NonNull;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
+
+/**
+ * {@link MotionEvent} processor that forwards scrolls on the letterbox area to the app's view
+ * hierarchy by translating the coordinates to app's inbound area.
+ *
+ * @hide
+ */
+public class LetterboxScrollProcessor {
+
+ private enum LetterboxScrollState {
+ AWAITING_GESTURE_START,
+ GESTURE_STARTED_IN_APP,
+ GESTURE_STARTED_OUTSIDE_APP,
+ SCROLLING_STARTED_OUTSIDE_APP
+ }
+
+ @NonNull private LetterboxScrollState mState = LetterboxScrollState.AWAITING_GESTURE_START;
+ @NonNull private final List<MotionEvent> mProcessedEvents = new ArrayList<>();
+
+ @NonNull private final GestureDetector mScrollDetector;
+ @NonNull private final Context mContext;
+
+ /** IDs of events generated from this class */
+ private final Set<Integer> mGeneratedEventIds = new HashSet<>();
+
+ public LetterboxScrollProcessor(@NonNull Context context, @Nullable Handler handler) {
+ mContext = context;
+ mScrollDetector = new GestureDetector(context, new ScrollListener(), handler);
+ }
+
+ /**
+ * Processes the MotionEvent. If the gesture is started in the app's bounds, or moves over the
+ * app then the motion events are not adjusted. Motion events from outside the app's
+ * bounds that are detected as a scroll gesture are adjusted to be over the app's bounds.
+ * Otherwise (if the events are outside the app's bounds and not part of a scroll gesture), the
+ * motion events are ignored.
+ *
+ * @param motionEvent The MotionEvent to process.
+ * @return The list of adjusted events, or null if no adjustments are needed. The list is empty
+ * if the event should be ignored. Do not keep a reference to the output as the list is reused.
+ */
+ public List<MotionEvent> processMotionEvent(MotionEvent motionEvent) {
+ mProcessedEvents.clear();
+ final Rect appBounds = getAppBounds();
+
+ // Set state at the start of the gesture (when ACTION_DOWN is received)
+ if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
+ if (isOutsideAppBounds(motionEvent, appBounds)) {
+ mState = LetterboxScrollState.GESTURE_STARTED_OUTSIDE_APP;
+ } else {
+ mState = LetterboxScrollState.GESTURE_STARTED_IN_APP;
+ }
+ }
+
+ boolean makeNoAdjustments = false;
+
+ switch (mState) {
+ case AWAITING_GESTURE_START:
+ case GESTURE_STARTED_IN_APP:
+ // Do not adjust events if gesture is started in or is over the app.
+ makeNoAdjustments = true;
+ break;
+
+ case GESTURE_STARTED_OUTSIDE_APP:
+ // Send offset events to the scroll-detector. These events are not added to
+ // mProcessedEvents and are therefore ignored until detected as part of a scroll.
+ applyOffset(motionEvent, appBounds);
+ mScrollDetector.onTouchEvent(motionEvent);
+ // If scroll-detector triggered, then the state is changed to
+ // SCROLLING_STARTED_OUTSIDE_APP (scroll detector can only trigger after an
+ // ACTION_MOVE event is received).
+ if (mState == LetterboxScrollState.SCROLLING_STARTED_OUTSIDE_APP) {
+ // Also, include ACTION_MOVE motion event that triggered the scroll-detector.
+ mProcessedEvents.add(motionEvent);
+ }
+ break;
+
+ // Once scroll-detector has detected scrolling, offset is applied to the gesture.
+ case SCROLLING_STARTED_OUTSIDE_APP:
+ if (isOutsideAppBounds(motionEvent, appBounds)) {
+ // Offset the event to be over the app if the event is out-of-bounds.
+ applyOffset(motionEvent, appBounds);
+ } else {
+ // Otherwise, the gesture is already over the app so stop offsetting it.
+ mState = LetterboxScrollState.GESTURE_STARTED_IN_APP;
+ }
+ mProcessedEvents.add(motionEvent);
+ break;
+ }
+
+ // Reset state at the end of the gesture
+ if (motionEvent.getAction() == MotionEvent.ACTION_UP
+ || motionEvent.getAction() == MotionEvent.ACTION_CANCEL) {
+ mState = LetterboxScrollState.AWAITING_GESTURE_START;
+ }
+
+ if (makeNoAdjustments) return null;
+ return mProcessedEvents;
+ }
+
+
+ /**
+ * Processes the InputEvent for compatibility before it is finished by calling
+ * InputEventReceiver#finishInputEvent().
+ *
+ * @param motionEvent The MotionEvent to process.
+ * @return The motionEvent to finish, or null if it should not be finished.
+ */
+ public InputEvent processMotionEventBeforeFinish(MotionEvent motionEvent) {
+ if (mGeneratedEventIds.remove(motionEvent.getId())) return null;
+ return motionEvent;
+ }
+
+ private Rect getAppBounds() {
+ return mContext.getResources().getConfiguration().windowConfiguration.getBounds();
+ }
+
+ private boolean isOutsideAppBounds(MotionEvent motionEvent, Rect appBounds) {
+ return motionEvent.getX() < 0 || motionEvent.getX() >= appBounds.width()
+ || motionEvent.getY() < 0 || motionEvent.getY() >= appBounds.height();
+ }
+
+ private void applyOffset(MotionEvent event, Rect appBounds) {
+ float horizontalOffset = calculateOffset(event.getX(), appBounds.width());
+ float verticalOffset = calculateOffset(event.getY(), appBounds.height());
+ // Apply the offset to the motion event so it is over the app's view.
+ event.offsetLocation(horizontalOffset, verticalOffset);
+ }
+
+ private float calculateOffset(float eventCoord, int appBoundary) {
+ if (eventCoord < 0) {
+ return -eventCoord;
+ } else if (eventCoord >= appBoundary) {
+ return -(eventCoord - appBoundary + 1);
+ } else {
+ return 0;
+ }
+ }
+
+ private class ScrollListener extends GestureDetector.SimpleOnGestureListener {
+ private ScrollListener() {}
+
+ @Override
+ public boolean onScroll(
+ @Nullable MotionEvent actionDownEvent,
+ @NonNull MotionEvent actionMoveEvent,
+ float distanceX,
+ float distanceY) {
+ // Inject in-bounds ACTION_DOWN event before continuing gesture with offset.
+ final MotionEvent newActionDownEvent = MotionEvent.obtain(
+ Objects.requireNonNull(actionDownEvent));
+ Rect appBounds = getAppBounds();
+ applyOffset(newActionDownEvent, appBounds);
+ mGeneratedEventIds.add(newActionDownEvent.getId());
+ mProcessedEvents.add(newActionDownEvent);
+
+ // Change state when onScroll method is triggered - at this point, the passed event is
+ // known to be 'part of' a scroll gesture.
+ mState = LetterboxScrollState.SCROLLING_STARTED_OUTSIDE_APP;
+
+ return super.onScroll(actionDownEvent, actionMoveEvent, distanceX, distanceY);
+ }
+ }
+}
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 0ed0e60f6b4d..1b62cfdf5dcb 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -42,6 +42,7 @@ import static android.view.flags.Flags.FLAG_TOOLKIT_SET_FRAME_RATE_READ_ONLY;
import static android.view.flags.Flags.FLAG_VIEW_VELOCITY_API;
import static android.view.flags.Flags.enableUseMeasureCacheDuringForceLayout;
import static android.view.flags.Flags.sensitiveContentAppProtection;
+import static android.view.flags.Flags.toolkitFrameRateAnimationBugfix25q1;
import static android.view.flags.Flags.toolkitFrameRateBySizeReadOnly;
import static android.view.flags.Flags.toolkitFrameRateDefaultNormalReadOnly;
import static android.view.flags.Flags.toolkitFrameRateSmallUsesPercentReadOnly;
@@ -2458,13 +2459,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
toolkitFrameRateDefaultNormalReadOnly();
private static final boolean sToolkitFrameRateBySizeReadOnlyFlagValue =
toolkitFrameRateBySizeReadOnly();
-
private static final boolean sToolkitFrameRateSmallUsesPercentReadOnlyFlagValue =
toolkitFrameRateSmallUsesPercentReadOnly();
private static final boolean sToolkitFrameRateViewEnablingReadOnlyFlagValue =
toolkitFrameRateViewEnablingReadOnly();
private static boolean sToolkitFrameRateVelocityMappingReadOnlyFlagValue =
toolkitFrameRateVelocityMappingReadOnly();
+ private static boolean sToolkitFrameRateAnimationBugfix25q1FlagValue =
+ toolkitFrameRateAnimationBugfix25q1();
// Used to set frame rate compatibility.
@Surface.FrameRateCompatibility int mFrameRateCompatibility =
@@ -24429,6 +24431,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
invalidationTransform = t;
}
+ // Increase the frame rate if there is a transformation that applies a matrix.
+ if (sToolkitFrameRateAnimationBugfix25q1FlagValue
+ && ((t.getTransformationType() & Transformation.TYPE_MATRIX) != 0)) {
+ mPrivateFlags4 |= PFLAG4_HAS_VIEW_PROPERTY_INVALIDATION;
+ mPrivateFlags4 |= PFLAG4_HAS_MOVED;
+ }
+
if (more) {
if (!a.willChangeBounds()) {
if ((flags & (ViewGroup.FLAG_OPTIMIZE_INVALIDATE | ViewGroup.FLAG_ANIMATION_DONE)) ==
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index ac208b57788d..40a75fdcaa06 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -1283,7 +1283,7 @@ public final class ViewRootImpl implements ViewParent,
R.string.config_inputEventCompatProcessorOverrideClassName);
if (processorOverrideName.isEmpty()) {
// No compatibility processor override, using default.
- mInputCompatProcessor = new InputEventCompatProcessor(context);
+ mInputCompatProcessor = new InputEventCompatProcessor(context, mHandler);
} else {
InputEventCompatProcessor compatProcessor = null;
try {
diff --git a/core/java/android/view/accessibility/flags/accessibility_flags.aconfig b/core/java/android/view/accessibility/flags/accessibility_flags.aconfig
index 513587eacfa7..b9e97502cad7 100644
--- a/core/java/android/view/accessibility/flags/accessibility_flags.aconfig
+++ b/core/java/android/view/accessibility/flags/accessibility_flags.aconfig
@@ -4,6 +4,13 @@ container: "system"
# NOTE: Keep alphabetized to help limit merge conflicts from multiple simultaneous editors.
flag {
+ name: "a11y_expansion_state_api"
+ namespace: "accessibility"
+ description: "Enables new APIs for an app to convey if a node is expanded or collapsed."
+ bug: "362782536"
+}
+
+flag {
name: "a11y_overlay_callbacks"
is_exported: true
namespace: "accessibility"
diff --git a/core/java/android/view/flags/refresh_rate_flags.aconfig b/core/java/android/view/flags/refresh_rate_flags.aconfig
index e3054da51a29..7b049278731d 100644
--- a/core/java/android/view/flags/refresh_rate_flags.aconfig
+++ b/core/java/android/view/flags/refresh_rate_flags.aconfig
@@ -111,4 +111,12 @@ flag {
description: "Feature flag to enable the functionality on views for the dVRR feature"
bug: "335874198"
is_fixed_read_only: true
+}
+
+flag {
+ name: "toolkit_frame_rate_animation_bugfix_25q1"
+ namespace: "toolkit"
+ description: "Feature flag to enable the fix for applyLegacyAnimation for VRR V QPR2"
+ bug: "335874198"
+ is_fixed_read_only: true
} \ No newline at end of file
diff --git a/core/java/android/window/flags/DesktopModeFlags.java b/core/java/android/window/flags/DesktopModeFlags.java
index 944a106bf441..47af50dac930 100644
--- a/core/java/android/window/flags/DesktopModeFlags.java
+++ b/core/java/android/window/flags/DesktopModeFlags.java
@@ -64,7 +64,8 @@ public enum DesktopModeFlags {
ENABLE_WINDOWING_EDGE_DRAG_RESIZE(Flags::enableWindowingEdgeDragResize, true),
ENABLE_DESKTOP_WINDOWING_TASKBAR_RUNNING_APPS(
Flags::enableDesktopWindowingTaskbarRunningApps, true),
- ENABLE_DESKTOP_WINDOWING_TRANSITIONS(Flags::enableDesktopWindowingTransitions, false);
+ ENABLE_DESKTOP_WINDOWING_TRANSITIONS(Flags::enableDesktopWindowingTransitions, false),
+ ENABLE_DESKTOP_WINDOWING_EXIT_TRANSITIONS(Flags::enableDesktopWindowingExitTransitions, false);
private static final String TAG = "DesktopModeFlagsUtil";
// Function called to obtain aconfig flag value.
diff --git a/core/java/com/android/internal/os/BatteryStatsHistory.java b/core/java/com/android/internal/os/BatteryStatsHistory.java
index 5c270e0e874c..d61785e5f3e9 100644
--- a/core/java/com/android/internal/os/BatteryStatsHistory.java
+++ b/core/java/com/android/internal/os/BatteryStatsHistory.java
@@ -48,6 +48,7 @@ import com.android.internal.annotations.VisibleForTesting;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.ConcurrentModificationException;
@@ -1745,9 +1746,12 @@ public class BatteryStatsHistory {
mHistoryAddTmp.setTo(mHistoryLastWritten);
mHistoryAddTmp.wakelockTag = null;
mHistoryAddTmp.wakeReasonTag = null;
+ mHistoryAddTmp.powerStats = null;
+ mHistoryAddTmp.processStateChange = null;
mHistoryAddTmp.eventCode = HistoryItem.EVENT_NONE;
mHistoryAddTmp.states &= ~HistoryItem.STATE_CPU_RUNNING_FLAG;
writeHistoryItem(wakeElapsedTimeMs, uptimeMs, mHistoryAddTmp);
+
}
}
mHistoryCur.states |= HistoryItem.STATE_CPU_RUNNING_FLAG;
@@ -2453,6 +2457,20 @@ public class BatteryStatsHistory {
}
/**
+ * Prints battery stats history for debugging.
+ */
+ public void dump(PrintWriter pw, long startTimeMs, long endTimeMs) {
+ BatteryStats.HistoryPrinter printer = new BatteryStats.HistoryPrinter();
+ try (BatteryStatsHistoryIterator iterate = iterate(startTimeMs, endTimeMs)) {
+ while (iterate.hasNext()) {
+ HistoryItem next = iterate.next();
+ printer.printNextItem(pw, next, 0, false, true);
+ }
+ }
+ pw.flush();
+ }
+
+ /**
* Writes/reads an array of longs into Parcel using a compact format, where small integers use
* fewer bytes. It is a bit more expensive than just writing the long into the parcel,
* but at scale saves a lot of storage and allows recording of longer battery history.
diff --git a/core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java b/core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java
index cff42fbcfcc5..4d0cd27fb037 100644
--- a/core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java
+++ b/core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java
@@ -893,7 +893,7 @@ public class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProto
}
}
- private static class Message {
+ protected static class Message {
@Nullable
private final Long mMessageHash;
private final int mMessageMask;
@@ -918,12 +918,17 @@ public class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProto
}
@Nullable
- private String getMessage() {
+ protected Long getMessageHash() {
+ return mMessageHash;
+ }
+
+ @Nullable
+ protected String getMessage() {
return mMessageString;
}
@Nullable
- private String getMessage(@NonNull ProtoLogViewerConfigReader viewerConfigReader) {
+ protected String getMessage(@NonNull ProtoLogViewerConfigReader viewerConfigReader) {
if (mMessageString != null) {
return mMessageString;
}
diff --git a/core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java b/core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java
index e382ac1513e0..8d37899f8602 100644
--- a/core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java
+++ b/core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java
@@ -110,12 +110,12 @@ public class ProtoLogConfigurationServiceImpl extends IProtoLogConfigurationServ
private final ViewerConfigFileTracer mViewerConfigFileTracer;
public ProtoLogConfigurationServiceImpl() {
- this(ProtoLogDataSource::new, ProtoLogConfigurationServiceImpl::dumpTransitionTraceConfig);
+ this(ProtoLogDataSource::new, ProtoLogConfigurationServiceImpl::dumpViewerConfig);
}
@VisibleForTesting
public ProtoLogConfigurationServiceImpl(@NonNull ProtoLogDataSourceBuilder dataSourceBuilder) {
- this(dataSourceBuilder, ProtoLogConfigurationServiceImpl::dumpTransitionTraceConfig);
+ this(dataSourceBuilder, ProtoLogConfigurationServiceImpl::dumpViewerConfig);
}
@VisibleForTesting
@@ -375,7 +375,7 @@ public class ProtoLogConfigurationServiceImpl extends IProtoLogConfigurationServ
mRunningInstances.remove(instanceIdx);
}
- private static void dumpTransitionTraceConfig(@NonNull ProtoLogDataSource dataSource,
+ private static void dumpViewerConfig(@NonNull ProtoLogDataSource dataSource,
@NonNull String viewerConfigFilePath) {
Utils.dumpViewerConfig(dataSource, () -> {
try {
diff --git a/core/java/com/android/internal/protolog/ProtoLogGroup.java b/core/java/com/android/internal/protolog/ProtoLogGroup.java
index bb3507caf7f4..65218702110a 100644
--- a/core/java/com/android/internal/protolog/ProtoLogGroup.java
+++ b/core/java/com/android/internal/protolog/ProtoLogGroup.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2020 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,108 +16,35 @@
package com.android.internal.protolog;
+import android.annotation.NonNull;
+
import com.android.internal.protolog.common.IProtoLogGroup;
-import java.util.UUID;
+public class ProtoLogGroup implements IProtoLogGroup {
-/**
- * Defines logging groups for ProtoLog.
- *
- * This file is used by the ProtoLogTool to generate optimized logging code. All of its dependencies
- * must be included in services.core.wm.protologgroups build target.
- */
-public enum ProtoLogGroup implements IProtoLogGroup {
- WM_ERROR(true, true, true, Consts.TAG_WM),
- WM_DEBUG_ORIENTATION(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_FOCUS_LIGHT(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_BOOT(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_RESIZE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_ADD_REMOVE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_CONFIGURATION(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_SWITCH(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_CONTAINERS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_FOCUS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_IMMERSIVE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_LOCKTASK(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_STATES(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_TASKS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_STARTING_WINDOW(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_SHOW_TRANSACTIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_SHOW_SURFACE_ALLOC(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_APP_TRANSITIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_ANIM(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
- WM_DEBUG_APP_TRANSITIONS_ANIM(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_RECENTS_ANIMATIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_DRAW(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
- WM_DEBUG_REMOTE_ANIMATIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_SCREEN_ON(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
- WM_DEBUG_KEEP_SCREEN_ON(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- 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),
- WM_DEBUG_WINDOW_ORGANIZER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_SYNC_ENGINE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_WINDOW_TRANSITIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_WINDOW_TRANSITIONS_MIN(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true,
- Consts.TAG_WM),
- WM_DEBUG_WINDOW_INSETS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- WM_DEBUG_CONTENT_RECORDING(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true,
- Consts.TAG_WM),
- WM_DEBUG_WALLPAPER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
- WM_DEBUG_BACK_PREVIEW(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true,
- "CoreBackPreview"),
- WM_DEBUG_DREAM(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true, Consts.TAG_WM),
-
- WM_DEBUG_DIMMER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
- WM_DEBUG_TPL(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
- WM_DEBUG_EMBEDDED_WINDOWS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
- Consts.TAG_WM),
- TEST_GROUP(true, true, false, "WindowManagerProtoLogTest");
-
- private final boolean mEnabled;
- private volatile boolean mLogToProto;
- private volatile boolean mLogToLogcat;
+ /** The name should be unique across the codebase. */
+ @NonNull
+ private final String mName;
+ @NonNull
private final String mTag;
+ private final boolean mEnabled;
+ private boolean mLogToProto;
+ private boolean mLogToLogcat;
+
+ public ProtoLogGroup(@NonNull String name) {
+ this(name, name);
+ }
- /**
- * @param enabled set to false to exclude all log statements for this group from
- * compilation,
- * they will not be available in runtime.
- * @param logToProto enable binary logging for the group
- * @param logToLogcat enable text logging for the group
- * @param tag name of the source of the logged message
- */
- ProtoLogGroup(boolean enabled, boolean logToProto, boolean logToLogcat, String tag) {
- this.mEnabled = enabled;
- this.mLogToProto = logToProto;
- this.mLogToLogcat = logToLogcat;
- this.mTag = tag;
+ public ProtoLogGroup(@NonNull String name, @NonNull String tag) {
+ this(name, tag, true);
+ }
+
+ public ProtoLogGroup(@NonNull String name, @NonNull String tag, boolean enabled) {
+ mName = name;
+ mTag = tag;
+ mEnabled = enabled;
+ mLogToProto = enabled;
+ mLogToLogcat = enabled;
}
@Override
@@ -125,6 +52,7 @@ public enum ProtoLogGroup implements IProtoLogGroup {
return mEnabled;
}
+ @Deprecated
@Override
public boolean isLogToProto() {
return mLogToProto;
@@ -136,37 +64,30 @@ public enum ProtoLogGroup implements IProtoLogGroup {
}
@Override
- public boolean isLogToAny() {
- return mLogToLogcat || mLogToProto;
- }
-
- @Override
+ @NonNull
public String getTag() {
return mTag;
}
+ @Deprecated
@Override
public void setLogToProto(boolean logToProto) {
- this.mLogToProto = logToProto;
+ mLogToProto = logToProto;
}
@Override
public void setLogToLogcat(boolean logToLogcat) {
- this.mLogToLogcat = logToLogcat;
+ mLogToLogcat = logToLogcat;
}
@Override
- public int getId() {
- return Consts.START_ID + this.ordinal();
+ @NonNull
+ public String name() {
+ return mName;
}
- private static class Consts {
- private static final String TAG_WM = "WindowManager";
-
- private static final boolean ENABLE_DEBUG = true;
- private static final boolean ENABLE_LOG_TO_PROTO_DEBUG = true;
- private static final int START_ID = (int) (
- UUID.nameUUIDFromBytes(ProtoLogGroup.class.getName().getBytes())
- .getMostSignificantBits() % Integer.MAX_VALUE);
+ @Override
+ public int getId() {
+ return mName.hashCode();
}
}
diff --git a/core/java/com/android/internal/protolog/WmProtoLogGroups.java b/core/java/com/android/internal/protolog/WmProtoLogGroups.java
new file mode 100644
index 000000000000..4bd5d24b71e2
--- /dev/null
+++ b/core/java/com/android/internal/protolog/WmProtoLogGroups.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.internal.protolog;
+
+import com.android.internal.protolog.common.IProtoLogGroup;
+
+import java.util.UUID;
+
+/**
+ * Defines logging groups for ProtoLog.
+ *
+ * This file is used by the ProtoLogTool to generate optimized logging code. All of its dependencies
+ * must be included in services.core.wm.protologgroups build target.
+ */
+public enum WmProtoLogGroups implements IProtoLogGroup {
+ WM_ERROR(true, true, true, Consts.TAG_WM),
+ WM_DEBUG_ORIENTATION(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_FOCUS_LIGHT(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_BOOT(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_RESIZE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_ADD_REMOVE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_CONFIGURATION(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_SWITCH(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_CONTAINERS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_FOCUS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_IMMERSIVE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_LOCKTASK(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_STATES(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_TASKS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_STARTING_WINDOW(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_SHOW_TRANSACTIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_SHOW_SURFACE_ALLOC(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_APP_TRANSITIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_ANIM(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
+ WM_DEBUG_APP_TRANSITIONS_ANIM(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_RECENTS_ANIMATIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_DRAW(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
+ WM_DEBUG_REMOTE_ANIMATIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_SCREEN_ON(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
+ WM_DEBUG_KEEP_SCREEN_ON(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_SLEEP_TOKEN(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true,
+ 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),
+ WM_DEBUG_WINDOW_ORGANIZER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_SYNC_ENGINE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_WINDOW_TRANSITIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_WINDOW_TRANSITIONS_MIN(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true,
+ Consts.TAG_WM),
+ WM_DEBUG_WINDOW_INSETS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ WM_DEBUG_CONTENT_RECORDING(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true,
+ Consts.TAG_WM),
+ WM_DEBUG_WALLPAPER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
+ WM_DEBUG_BACK_PREVIEW(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true,
+ "CoreBackPreview"),
+ WM_DEBUG_DREAM(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true, Consts.TAG_WM),
+
+ WM_DEBUG_DIMMER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
+ WM_DEBUG_TPL(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM),
+ WM_DEBUG_EMBEDDED_WINDOWS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
+ TEST_GROUP(true, true, false, "WindowManagerProtoLogTest");
+
+ private final boolean mEnabled;
+ private volatile boolean mLogToProto;
+ private volatile boolean mLogToLogcat;
+ private final String mTag;
+
+ /**
+ * @param enabled set to false to exclude all log statements for this group from
+ * compilation,
+ * they will not be available in runtime.
+ * @param logToProto enable binary logging for the group
+ * @param logToLogcat enable text logging for the group
+ * @param tag name of the source of the logged message
+ */
+ WmProtoLogGroups(boolean enabled, boolean logToProto, boolean logToLogcat, String tag) {
+ this.mEnabled = enabled;
+ this.mLogToProto = logToProto;
+ this.mLogToLogcat = logToLogcat;
+ this.mTag = tag;
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return mEnabled;
+ }
+
+ @Override
+ public boolean isLogToProto() {
+ return mLogToProto;
+ }
+
+ @Override
+ public boolean isLogToLogcat() {
+ return mLogToLogcat;
+ }
+
+ @Override
+ public boolean isLogToAny() {
+ return mLogToLogcat || mLogToProto;
+ }
+
+ @Override
+ public String getTag() {
+ return mTag;
+ }
+
+ @Override
+ public void setLogToProto(boolean logToProto) {
+ this.mLogToProto = logToProto;
+ }
+
+ @Override
+ public void setLogToLogcat(boolean logToLogcat) {
+ this.mLogToLogcat = logToLogcat;
+ }
+
+ @Override
+ public int getId() {
+ return Consts.START_ID + this.ordinal();
+ }
+
+ private static class Consts {
+ private static final String TAG_WM = "WindowManager";
+
+ private static final boolean ENABLE_DEBUG = true;
+ private static final boolean ENABLE_LOG_TO_PROTO_DEBUG = true;
+ private static final int START_ID = (int) (
+ UUID.nameUUIDFromBytes(WmProtoLogGroups.class.getName().getBytes())
+ .getMostSignificantBits() % Integer.MAX_VALUE);
+ }
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/CompanionOperation.java b/core/java/com/android/internal/widget/remotecompose/core/CompanionOperation.java
index 2d365368a013..deae9a571e12 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/CompanionOperation.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/CompanionOperation.java
@@ -27,9 +27,5 @@ public interface CompanionOperation {
* @param operations command is to be added
*/
void read(WireBuffer buffer, List<Operation> operations);
-
- // Debugging / Documentation utility functions
- String name();
- int id();
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java b/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java
index effbbe2f0c1d..18be4809998c 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java
@@ -15,16 +15,23 @@
*/
package com.android.internal.widget.remotecompose.core;
+import com.android.internal.widget.remotecompose.core.operations.ComponentValue;
import com.android.internal.widget.remotecompose.core.operations.NamedVariable;
import com.android.internal.widget.remotecompose.core.operations.RootContentBehavior;
import com.android.internal.widget.remotecompose.core.operations.Theme;
+import com.android.internal.widget.remotecompose.core.operations.layout.ClickModifierEnd;
+import com.android.internal.widget.remotecompose.core.operations.layout.ClickModifierOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.Component;
import com.android.internal.widget.remotecompose.core.operations.layout.ComponentEnd;
import com.android.internal.widget.remotecompose.core.operations.layout.ComponentStartOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.LayoutComponent;
import com.android.internal.widget.remotecompose.core.operations.layout.RootLayoutComponent;
+import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ComponentModifiers;
+import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ModifierOperation;
+import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
@@ -34,6 +41,8 @@ import java.util.Set;
*/
public class CoreDocument {
+ private static final boolean DEBUG = false;
+
ArrayList<Operation> mOperations;
RootLayoutComponent mRootLayoutComponent = null;
@@ -57,6 +66,8 @@ public class CoreDocument {
RemoteComposeBuffer mBuffer = new RemoteComposeBuffer(mRemoteComposeState);
+ private int mLastId = 1; // last component id when inflating the file
+
public String getContentDescription() {
return mContentDescription;
}
@@ -303,6 +314,59 @@ public class CoreDocument {
return null;
}
+ /**
+ * Returns a string representation of the component hierarchy of the document
+ *
+ * @return a standardized string representation of the component hierarchy
+ */
+ public String displayHierarchy() {
+ StringSerializer serializer = new StringSerializer();
+ for (Operation op : mOperations) {
+ if (op instanceof RootLayoutComponent) {
+ ((RootLayoutComponent) op).displayHierarchy((Component) op, 0, serializer);
+ } else if (op instanceof SerializableToString) {
+ ((SerializableToString) op).serializeToString(0, serializer);
+ }
+ }
+ return serializer.toString();
+ }
+
+ /**
+ * Callback interface for host actions
+ */
+ public interface ActionCallback {
+ // TODO: add payload support
+ void onAction(String name);
+ }
+
+ HashSet<ActionCallback> mActionListeners = new HashSet<ActionCallback>();
+
+ /**
+ * Warn action listeners for the given named action
+ * @param name the action name
+ */
+ public void runNamedAction(String name) {
+ for (ActionCallback callback : mActionListeners) {
+ callback.onAction(name);
+ }
+ }
+
+ /**
+ * Add a callback for handling the named host actions
+ *
+ * @param callback
+ */
+ public void addActionCallback(ActionCallback callback) {
+ mActionListeners.add(callback);
+ }
+
+ /**
+ * Clear existing callbacks for named host actions
+ */
+ public void clearActionCallbacks() {
+ mActionListeners.clear();
+ }
+
public interface ClickCallbacks {
void click(int id, String metadata);
}
@@ -403,7 +467,7 @@ public class CoreDocument {
}
}
if (mRootLayoutComponent != null) {
- mRootLayoutComponent.assignIds();
+ mRootLayoutComponent.assignIds(mLastId);
}
}
@@ -417,7 +481,9 @@ public class CoreDocument {
ArrayList<Component> components = new ArrayList<>();
ArrayList<Operation> finalOperationsList = new ArrayList<>();
ArrayList<Operation> ops = finalOperationsList;
+ ClickModifierOperation currentClickModifier = null;
+ mLastId = -1;
for (Operation o : operations) {
if (o instanceof ComponentStartOperation) {
Component component = (Component) o;
@@ -426,6 +492,9 @@ public class CoreDocument {
currentComponent = component;
ops.add(currentComponent);
ops = currentComponent.getList();
+ if (component.getComponentId() < mLastId) {
+ mLastId = component.getComponentId();
+ }
} else if (o instanceof ComponentEnd) {
if (currentComponent instanceof LayoutComponent) {
((LayoutComponent) currentComponent).inflate();
@@ -437,6 +506,14 @@ public class CoreDocument {
} else {
ops = finalOperationsList;
}
+ } else if (o instanceof ClickModifierOperation) {
+ // TODO: refactor to add container <- component...
+ currentClickModifier = (ClickModifierOperation) o;
+ ops = ((ClickModifierOperation) o).getList();
+ } else if (o instanceof ClickModifierEnd) {
+ ops = currentComponent.getList();
+ ops.add(currentClickModifier);
+ currentClickModifier = null;
} else {
ops.add(o);
}
@@ -444,12 +521,46 @@ public class CoreDocument {
return ops;
}
+ private HashMap<Integer, Component> mComponentMap = new HashMap<Integer, Component>();
+
+ private void registerVariables(RemoteContext context, ArrayList<Operation> list) {
+ for (Operation op : list) {
+ if (op instanceof VariableSupport) {
+ ((VariableSupport) op).updateVariables(context);
+ ((VariableSupport) op).registerListening(context);
+ }
+ if (op instanceof Component) {
+ mComponentMap.put(((Component) op).getComponentId(), (Component) op);
+ registerVariables(context, ((Component) op).getList());
+ }
+ if (op instanceof ComponentValue) {
+ ComponentValue v = (ComponentValue) op;
+ Component component = mComponentMap.get(v.getComponentId());
+ if (component != null) {
+ component.addComponentValue(v);
+ } else {
+ System.out.println("=> Component not found for id " + v.getComponentId());
+ }
+ }
+ if (op instanceof ComponentModifiers) {
+ for (ModifierOperation modifier : ((ComponentModifiers) op).getList()) {
+ if (modifier instanceof VariableSupport) {
+ ((VariableSupport) modifier).updateVariables(context);
+ ((VariableSupport) modifier).registerListening(context);
+ }
+ }
+ }
+ op.apply(context);
+ }
+ }
+
/**
* Called when an initialization is needed, allowing the document to eg load
* resources / cache them.
*/
public void initializeContext(RemoteContext context) {
mRemoteComposeState.reset();
+ mRemoteComposeState.setContext(context);
mClickAreas.clear();
mRemoteComposeState.setNextId(RemoteComposeState.START_ID);
context.mDocument = this;
@@ -458,15 +569,8 @@ public class CoreDocument {
context.mMode = RemoteContext.ContextMode.DATA;
mTimeVariables.updateTime(context);
- for (Operation op : mOperations) {
- if (op instanceof VariableSupport) {
- ((VariableSupport) op).updateVariables(context);
- ((VariableSupport) op).registerListening(context);
- }
- op.apply(context);
- }
+ registerVariables(context, mOperations);
context.mMode = RemoteContext.ContextMode.UNSET;
-
}
///////////////////////////////////////////////////////////////////////////////////////////////
@@ -529,15 +633,27 @@ public class CoreDocument {
}
/**
+ * Returns the list of set click listeners
+ *
+ * @return set of click listeners
+ */
+ public HashSet<CoreDocument.ClickCallbacks> getClickListeners() {
+ return mClickListeners;
+ }
+
+ /**
* Passing a click event to the document. This will possibly result in calling the click
* listeners.
*/
- public void onClick(float x, float y) {
+ public void onClick(RemoteContext context, float x, float y) {
for (ClickAreaRepresentation clickArea : mClickAreas) {
if (clickArea.contains(x, y)) {
warnClickListeners(clickArea);
}
}
+ if (mRootLayoutComponent != null) {
+ mRootLayoutComponent.onClick(context, this, x, y);
+ }
}
/**
@@ -551,6 +667,9 @@ public class CoreDocument {
warnClickListeners(clickArea);
}
}
+ for (ClickCallbacks listener : mClickListeners) {
+ listener.click(id, "");
+ }
}
/**
@@ -627,13 +746,17 @@ public class CoreDocument {
* @param theme the theme we want to use for this document.
*/
public void paint(RemoteContext context, int theme) {
- context.mMode = RemoteContext.ContextMode.PAINT;
+ long time = System.nanoTime();
+ context.getPaintContext().clearNeedsRepaint();
+ context.mMode = RemoteContext.ContextMode.UNSET;
// current theme starts as UNSPECIFIED, until a Theme setter
// operation gets executed and modify it.
context.setTheme(Theme.UNSPECIFIED);
context.mRemoteComposeState = mRemoteComposeState;
+ context.mRemoteComposeState.setContext(context);
+
if (mContentSizing == RootContentBehavior.SIZING_SCALE) {
// we need to add canvas transforms ops here
computeScale(context.mWidth, context.mHeight, mScaleOutput);
@@ -643,8 +766,8 @@ public class CoreDocument {
context.mPaintContext.scale(mScaleOutput[0], mScaleOutput[1]);
}
mTimeVariables.updateTime(context);
- context.loadFloat(RemoteContext.ID_WINDOW_WIDTH, getWidth());
- context.loadFloat(RemoteContext.ID_WINDOW_HEIGHT, getHeight());
+ context.loadFloat(RemoteContext.ID_WINDOW_WIDTH, context.mWidth);
+ context.loadFloat(RemoteContext.ID_WINDOW_HEIGHT, context.mHeight);
mRepaintNext = context.updateOps();
if (mRootLayoutComponent != null) {
if (context.mWidth != mRootLayoutComponent.getWidth()
@@ -654,10 +777,19 @@ public class CoreDocument {
if (mRootLayoutComponent.needsMeasure()) {
mRootLayoutComponent.layout(context);
}
+ // TODO -- this should be specifically about applying animation, not paint
+ mRootLayoutComponent.paint(context.getPaintContext());
+ // TODO -- should be able to remove this
+ mRootLayoutComponent.updateVariables(context);
+ if (DEBUG) {
+ String hierarchy = mRootLayoutComponent.displayHierarchy();
+ System.out.println(hierarchy);
+ }
if (mRootLayoutComponent.doesNeedsRepaint()) {
mRepaintNext = 1;
}
}
+ context.mMode = RemoteContext.ContextMode.PAINT;
for (Operation op : mOperations) {
// operations will only be executed if no theme is set (ie UNSPECIFIED)
// or the theme is equal as the one passed in argument to paint.
@@ -671,8 +803,95 @@ public class CoreDocument {
op.apply(context);
}
}
+ if (context.getPaintContext().doesNeedsRepaint()
+ || (mRootLayoutComponent != null && mRootLayoutComponent.doesNeedsRepaint())) {
+ mRepaintNext = 1;
+ }
context.mMode = RemoteContext.ContextMode.UNSET;
+ // System.out.println(">> " + ( System.nanoTime() - time)*1E-6f+" ms");
+ }
+
+ public String[] getStats() {
+ ArrayList<String> ret = new ArrayList<>();
+ WireBuffer buffer = new WireBuffer();
+ int count = mOperations.size();
+ HashMap<String, int[]> map = new HashMap<>();
+ for (Operation mOperation : mOperations) {
+ Class<? extends Operation> c = mOperation.getClass();
+ int[] values;
+ if (map.containsKey(c.getSimpleName())) {
+ values = map.get(c.getSimpleName());
+ } else {
+ values = new int[2];
+ map.put(c.getSimpleName(), values);
+ }
+
+ values[0] += 1;
+ values[1] += sizeOfComponent(mOperation, buffer);
+ if (mOperation instanceof Component) {
+ Component com = (Component) mOperation;
+ count += addChildren(com, map, buffer);
+
+ }
+ }
+
+ ret.add(0, "number of operations : " + count);
+
+ for (String s : map.keySet()) {
+ int[] v = map.get(s);
+ ret.add(s + " : " + v[0] + ":" + v[1]);
+ }
+ return ret.toArray(new String[0]);
+ }
+
+ private int sizeOfComponent(Operation com, WireBuffer tmp) {
+ tmp.reset(100);
+ com.write(tmp);
+ int size = tmp.getSize();
+ tmp.reset(100);
+ return size;
}
+ private int addChildren(Component base, HashMap<String, int[]> map, WireBuffer tmp) {
+ int count = base.mList.size();
+ for (Operation mOperation : base.mList) {
+ Class<? extends Operation> c = mOperation.getClass();
+ int[] values;
+ if (map.containsKey(c.getSimpleName())) {
+ values = map.get(c.getSimpleName());
+ } else {
+ values = new int[2];
+ map.put(c.getSimpleName(), values);
+ }
+ values[0] += 1;
+ values[1] += sizeOfComponent(mOperation, tmp);
+ if (mOperation instanceof Component) {
+ count += addChildren((Component) mOperation, map, tmp);
+ }
+ }
+ return count;
+ }
+
+ public String toNestedString() {
+ StringBuilder ret = new StringBuilder();
+ for (Operation mOperation : mOperations) {
+ ret.append(mOperation.toString());
+ ret.append("\n");
+ if (mOperation instanceof Component) {
+ toNestedString((Component) mOperation, ret, " ");
+ }
+ }
+ return ret.toString();
+ }
+
+ private void toNestedString(Component base, StringBuilder ret, String indent) {
+ for (Operation mOperation : base.mList) {
+ ret.append(mOperation.toString());
+ ret.append("\n");
+ if (mOperation instanceof Component) {
+ toNestedString((Component) mOperation, ret, indent + " ");
+ }
+ }
+ }
}
diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRedirect.java b/core/java/com/android/internal/widget/remotecompose/core/DocumentedCompanion.java
index b582ccf7b656..661cf7cf4491 100644
--- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRedirect.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/DocumentedCompanion.java
@@ -13,23 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package android.ravenwood.annotation;
+package com.android.internal.widget.remotecompose.core;
-import static java.lang.annotation.ElementType.METHOD;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+public interface DocumentedCompanion extends CompanionOperation , DocumentedCompanionOperation {
-/**
- * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY
- * QUESTIONS ABOUT IT.
- *
- * TODO: Javadoc
- *
- * @hide
- */
-@Target({METHOD})
-@Retention(RetentionPolicy.CLASS)
-public @interface RavenwoodRedirect {
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/Operations.java b/core/java/com/android/internal/widget/remotecompose/core/Operations.java
index 9cb024bd234e..4a25b5eff3c9 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/Operations.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/Operations.java
@@ -21,6 +21,10 @@ import com.android.internal.widget.remotecompose.core.operations.ClipPath;
import com.android.internal.widget.remotecompose.core.operations.ClipRect;
import com.android.internal.widget.remotecompose.core.operations.ColorConstant;
import com.android.internal.widget.remotecompose.core.operations.ColorExpression;
+import com.android.internal.widget.remotecompose.core.operations.ComponentValue;
+import com.android.internal.widget.remotecompose.core.operations.DataListFloat;
+import com.android.internal.widget.remotecompose.core.operations.DataListIds;
+import com.android.internal.widget.remotecompose.core.operations.DataMapIds;
import com.android.internal.widget.remotecompose.core.operations.DrawArc;
import com.android.internal.widget.remotecompose.core.operations.DrawBitmap;
import com.android.internal.widget.remotecompose.core.operations.DrawBitmapInt;
@@ -54,24 +58,35 @@ import com.android.internal.widget.remotecompose.core.operations.TextData;
import com.android.internal.widget.remotecompose.core.operations.TextFromFloat;
import com.android.internal.widget.remotecompose.core.operations.TextMerge;
import com.android.internal.widget.remotecompose.core.operations.Theme;
+import com.android.internal.widget.remotecompose.core.operations.layout.CanvasContent;
+import com.android.internal.widget.remotecompose.core.operations.layout.ClickModifierEnd;
+import com.android.internal.widget.remotecompose.core.operations.layout.ClickModifierOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.ComponentEnd;
import com.android.internal.widget.remotecompose.core.operations.layout.ComponentStart;
import com.android.internal.widget.remotecompose.core.operations.layout.LayoutComponentContent;
import com.android.internal.widget.remotecompose.core.operations.layout.RootLayoutComponent;
import com.android.internal.widget.remotecompose.core.operations.layout.animation.AnimationSpec;
import com.android.internal.widget.remotecompose.core.operations.layout.managers.BoxLayout;
+import com.android.internal.widget.remotecompose.core.operations.layout.managers.CanvasLayout;
import com.android.internal.widget.remotecompose.core.operations.layout.managers.ColumnLayout;
import com.android.internal.widget.remotecompose.core.operations.layout.managers.RowLayout;
+import com.android.internal.widget.remotecompose.core.operations.layout.managers.TextLayout;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.BackgroundModifierOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.BorderModifierOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ClipRectModifierOperation;
+import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ComponentVisibilityOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.HeightModifierOperation;
+import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.HostActionOperation;
+import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.HostNamedActionOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.PaddingModifierOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RoundedClipRectModifierOperation;
+import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ValueIntegerChangeActionOperation;
+import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ValueStringChangeActionOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.WidthModifierOperation;
import com.android.internal.widget.remotecompose.core.operations.utilities.IntMap;
import com.android.internal.widget.remotecompose.core.types.BooleanConstant;
import com.android.internal.widget.remotecompose.core.types.IntegerConstant;
+import com.android.internal.widget.remotecompose.core.types.LongConstant;
/**
* List of operations supported in a RemoteCompose document
@@ -130,6 +145,10 @@ public class Operations {
public static final int DATA_INT = 140;
public static final int DATA_BOOLEAN = 143;
public static final int INTEGER_EXPRESSION = 144;
+ public static final int ID_MAP = 145;
+ public static final int ID_LIST = 146;
+ public static final int FLOAT_LIST = 147;
+ public static final int DATA_LONG = 148;
/////////////////////////////////////////======================
@@ -142,6 +161,10 @@ public class Operations {
public static final int LAYOUT_BOX = 202;
public static final int LAYOUT_ROW = 203;
public static final int LAYOUT_COLUMN = 204;
+ public static final int LAYOUT_CANVAS = 205;
+ public static final int LAYOUT_CANVAS_CONTENT = 207;
+
+ public static final int LAYOUT_TEXT = 208;
public static final int COMPONENT_START = 2;
public static final int COMPONENT_END = 3;
public static final int MODIFIER_WIDTH = 16;
@@ -151,73 +174,110 @@ public class Operations {
public static final int MODIFIER_PADDING = 58;
public static final int MODIFIER_CLIP_RECT = 108;
public static final int MODIFIER_ROUNDED_CLIP_RECT = 54;
+
+ public static final int MODIFIER_CLICK = 59;
+
+ public static final int MODIFIER_CLICK_END = 214;
+
+ public static final int MODIFIER_VISIBILITY = 211;
+ public static final int HOST_ACTION = 209;
+ public static final int HOST_NAMED_ACTION = 210;
+
+ public static final int VALUE_INTEGER_CHANGE_ACTION = 212;
+ public static final int VALUE_STRING_CHANGE_ACTION = 213;
+
public static final int ANIMATION_SPEC = 14;
- public static IntMap<CompanionOperation> map = new IntMap<>();
+ public static final int COMPONENT_VALUE = 150;
+
+ public static UniqueIntMap<CompanionOperation> map = new UniqueIntMap<>();
+
+ static class UniqueIntMap<T> extends IntMap<T> {
+ @Override
+ public T put(int key, T value) {
+ assert null == get(key) : "Opcode " + key + " already used in Operations !";
+ return super.put(key, value);
+ }
+ }
static {
- map.put(HEADER, Header.COMPANION);
- map.put(DRAW_BITMAP_INT, DrawBitmapInt.COMPANION);
- map.put(DATA_BITMAP, BitmapData.COMPANION);
- map.put(DATA_TEXT, TextData.COMPANION);
- map.put(THEME, Theme.COMPANION);
- map.put(CLICK_AREA, ClickArea.COMPANION);
- map.put(ROOT_CONTENT_BEHAVIOR, RootContentBehavior.COMPANION);
- map.put(ROOT_CONTENT_DESCRIPTION, RootContentDescription.COMPANION);
-
- map.put(DRAW_ARC, DrawArc.COMPANION);
- map.put(DRAW_BITMAP, DrawBitmap.COMPANION);
- map.put(DRAW_CIRCLE, DrawCircle.COMPANION);
- map.put(DRAW_LINE, DrawLine.COMPANION);
- map.put(DRAW_OVAL, DrawOval.COMPANION);
- map.put(DRAW_PATH, DrawPath.COMPANION);
- map.put(DRAW_RECT, DrawRect.COMPANION);
- map.put(DRAW_ROUND_RECT, DrawRoundRect.COMPANION);
- map.put(DRAW_TEXT_ON_PATH, DrawTextOnPath.COMPANION);
- map.put(DRAW_TEXT_RUN, DrawText.COMPANION);
- map.put(DRAW_TWEEN_PATH, DrawTweenPath.COMPANION);
- map.put(DATA_PATH, PathData.COMPANION);
- map.put(PAINT_VALUES, PaintData.COMPANION);
- map.put(MATRIX_RESTORE, MatrixRestore.COMPANION);
- map.put(MATRIX_ROTATE, MatrixRotate.COMPANION);
- map.put(MATRIX_SAVE, MatrixSave.COMPANION);
- map.put(MATRIX_SCALE, MatrixScale.COMPANION);
- map.put(MATRIX_SKEW, MatrixSkew.COMPANION);
- map.put(MATRIX_TRANSLATE, MatrixTranslate.COMPANION);
- map.put(CLIP_PATH, ClipPath.COMPANION);
- map.put(CLIP_RECT, ClipRect.COMPANION);
- map.put(DATA_SHADER, ShaderData.COMPANION);
- map.put(DATA_FLOAT, FloatConstant.COMPANION);
- map.put(ANIMATED_FLOAT, FloatExpression.COMPANION);
- map.put(DRAW_TEXT_ANCHOR, DrawTextAnchored.COMPANION);
- map.put(COLOR_EXPRESSIONS, ColorExpression.COMPANION);
- map.put(TEXT_FROM_FLOAT, TextFromFloat.COMPANION);
- map.put(TEXT_MERGE, TextMerge.COMPANION);
- map.put(NAMED_VARIABLE, NamedVariable.COMPANION);
- map.put(COLOR_CONSTANT, ColorConstant.COMPANION);
- map.put(DATA_INT, IntegerConstant.COMPANION);
- map.put(INTEGER_EXPRESSION, IntegerExpression.COMPANION);
- map.put(DATA_BOOLEAN, BooleanConstant.COMPANION);
+ map.put(HEADER, Header::read);
+ map.put(DRAW_BITMAP_INT, DrawBitmapInt::read);
+ map.put(DATA_BITMAP, BitmapData::read);
+ map.put(DATA_TEXT, TextData::read);
+ map.put(THEME, Theme::read);
+ map.put(CLICK_AREA, ClickArea::read);
+ map.put(ROOT_CONTENT_BEHAVIOR, RootContentBehavior::read);
+ map.put(ROOT_CONTENT_DESCRIPTION, RootContentDescription::read);
+
+ map.put(DRAW_ARC, DrawArc::read);
+ map.put(DRAW_BITMAP, DrawBitmap::read);
+ map.put(DRAW_CIRCLE, DrawCircle::read);
+ map.put(DRAW_LINE, DrawLine::read);
+ map.put(DRAW_OVAL, DrawOval::read);
+ map.put(DRAW_PATH, DrawPath::read);
+ map.put(DRAW_RECT, DrawRect::read);
+ map.put(DRAW_ROUND_RECT, DrawRoundRect::read);
+ map.put(DRAW_TEXT_ON_PATH, DrawTextOnPath::read);
+ map.put(DRAW_TEXT_RUN, DrawText::read);
+ map.put(DRAW_TWEEN_PATH, DrawTweenPath::read);
+ map.put(DATA_PATH, PathData::read);
+ map.put(PAINT_VALUES, PaintData::read);
+ map.put(MATRIX_RESTORE, MatrixRestore::read);
+ map.put(MATRIX_ROTATE, MatrixRotate::read);
+ map.put(MATRIX_SAVE, MatrixSave::read);
+ map.put(MATRIX_SCALE, MatrixScale::read);
+ map.put(MATRIX_SKEW, MatrixSkew::read);
+ map.put(MATRIX_TRANSLATE, MatrixTranslate::read);
+ map.put(CLIP_PATH, ClipPath::read);
+ map.put(CLIP_RECT, ClipRect::read);
+ map.put(DATA_SHADER, ShaderData::read);
+ map.put(DATA_FLOAT, FloatConstant::read);
+ map.put(ANIMATED_FLOAT, FloatExpression::read);
+ map.put(DRAW_TEXT_ANCHOR, DrawTextAnchored::read);
+ map.put(COLOR_EXPRESSIONS, ColorExpression::read);
+ map.put(TEXT_FROM_FLOAT, TextFromFloat::read);
+ map.put(TEXT_MERGE, TextMerge::read);
+ map.put(NAMED_VARIABLE, NamedVariable::read);
+ map.put(COLOR_CONSTANT, ColorConstant::read);
+ map.put(DATA_INT, IntegerConstant::read);
+ map.put(INTEGER_EXPRESSION, IntegerExpression::read);
+ map.put(DATA_BOOLEAN, BooleanConstant::read);
+ map.put(ID_MAP, DataMapIds::read);
+ map.put(ID_LIST, DataListIds::read);
+ map.put(FLOAT_LIST, DataListFloat::read);
+ map.put(DATA_LONG, LongConstant::read);
// Layout
- map.put(COMPONENT_START, ComponentStart.COMPANION);
- map.put(COMPONENT_END, ComponentEnd.COMPANION);
- map.put(ANIMATION_SPEC, AnimationSpec.COMPANION);
-
- map.put(MODIFIER_WIDTH, WidthModifierOperation.COMPANION);
- map.put(MODIFIER_HEIGHT, HeightModifierOperation.COMPANION);
- map.put(MODIFIER_PADDING, PaddingModifierOperation.COMPANION);
- map.put(MODIFIER_BACKGROUND, BackgroundModifierOperation.COMPANION);
- map.put(MODIFIER_BORDER, BorderModifierOperation.COMPANION);
- map.put(MODIFIER_ROUNDED_CLIP_RECT, RoundedClipRectModifierOperation.COMPANION);
- map.put(MODIFIER_CLIP_RECT, ClipRectModifierOperation.COMPANION);
-
- map.put(LAYOUT_ROOT, RootLayoutComponent.COMPANION);
- map.put(LAYOUT_CONTENT, LayoutComponentContent.COMPANION);
- map.put(LAYOUT_BOX, BoxLayout.COMPANION);
- map.put(LAYOUT_COLUMN, ColumnLayout.COMPANION);
- map.put(LAYOUT_ROW, RowLayout.COMPANION);
- }
+ map.put(COMPONENT_START, ComponentStart::read);
+ map.put(COMPONENT_END, ComponentEnd::read);
+ map.put(ANIMATION_SPEC, AnimationSpec::read);
+ map.put(MODIFIER_WIDTH, WidthModifierOperation::read);
+ map.put(MODIFIER_HEIGHT, HeightModifierOperation::read);
+ map.put(MODIFIER_PADDING, PaddingModifierOperation::read);
+ map.put(MODIFIER_BACKGROUND, BackgroundModifierOperation::read);
+ map.put(MODIFIER_BORDER, BorderModifierOperation::read);
+ map.put(MODIFIER_ROUNDED_CLIP_RECT, RoundedClipRectModifierOperation::read);
+ map.put(MODIFIER_CLIP_RECT, ClipRectModifierOperation::read);
+ map.put(MODIFIER_CLICK, ClickModifierOperation::read);
+ map.put(MODIFIER_CLICK_END, ClickModifierEnd::read);
+ map.put(MODIFIER_VISIBILITY, ComponentVisibilityOperation::read);
+ map.put(HOST_ACTION, HostActionOperation::read);
+ map.put(HOST_NAMED_ACTION, HostNamedActionOperation::read);
+ map.put(VALUE_INTEGER_CHANGE_ACTION, ValueIntegerChangeActionOperation::read);
+ map.put(VALUE_STRING_CHANGE_ACTION, ValueStringChangeActionOperation::read);
+
+ map.put(LAYOUT_ROOT, RootLayoutComponent::read);
+ map.put(LAYOUT_CONTENT, LayoutComponentContent::read);
+ map.put(LAYOUT_BOX, BoxLayout::read);
+ map.put(LAYOUT_COLUMN, ColumnLayout::read);
+ map.put(LAYOUT_ROW, RowLayout::read);
+ map.put(LAYOUT_CANVAS, CanvasLayout::read);
+ map.put(LAYOUT_CANVAS_CONTENT, CanvasContent::read);
+ map.put(LAYOUT_TEXT, TextLayout::read);
+
+ map.put(COMPONENT_VALUE, ComponentValue::read);
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/PaintContext.java b/core/java/com/android/internal/widget/remotecompose/core/PaintContext.java
index 665fcb749db8..4770b122d172 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/PaintContext.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/PaintContext.java
@@ -21,12 +21,23 @@ import com.android.internal.widget.remotecompose.core.operations.paint.PaintBund
* Specify an abstract paint context used by RemoteCompose commands to draw
*/
public abstract class PaintContext {
- protected RemoteContext mContext;
+ public static final int TEXT_MEASURE_MONOSPACE_WIDTH = 0x01;
+ public static final int TEXT_MEASURE_FONT_HEIGHT = 0x02;
+ protected RemoteContext mContext;
+ private boolean mNeedsRepaint = false;
public RemoteContext getContext() {
return mContext;
}
+ public boolean doesNeedsRepaint() {
+ return mNeedsRepaint;
+ }
+
+ public void clearNeedsRepaint() {
+ mNeedsRepaint = false;
+ }
+
public PaintContext(RemoteContext context) {
this.mContext = context;
}
@@ -111,13 +122,16 @@ public abstract class PaintContext {
* @param textId
* @param start
* @param end if end is -1 it means the whole string
- * @param monospace measure with better support for monospace
+ * @param flags how to measure:
+ * TEXT_MEASURE_MONOSPACE_WIDTH - measure as a monospace font
+ * TEXT_MEASURE_FULL_HEIGHT - measure bounds of the given string using the
+ * max ascend and descent of the font (not just of the measured text)
* @param bounds the bounds (left, top, right, bottom)
*/
public abstract void getTextBounds(int textId,
int start,
int end,
- boolean monospace,
+ int flags,
float[]bounds);
/**
@@ -267,5 +281,8 @@ public abstract class PaintContext {
System.out.println("[LOG] " + content);
}
+ public void needsRepaint() {
+ mNeedsRepaint = true;
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java b/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java
index 333951ba2386..6b1828f0448f 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java
@@ -21,6 +21,10 @@ import com.android.internal.widget.remotecompose.core.operations.ClipPath;
import com.android.internal.widget.remotecompose.core.operations.ClipRect;
import com.android.internal.widget.remotecompose.core.operations.ColorConstant;
import com.android.internal.widget.remotecompose.core.operations.ColorExpression;
+import com.android.internal.widget.remotecompose.core.operations.ComponentValue;
+import com.android.internal.widget.remotecompose.core.operations.DataListFloat;
+import com.android.internal.widget.remotecompose.core.operations.DataListIds;
+import com.android.internal.widget.remotecompose.core.operations.DataMapIds;
import com.android.internal.widget.remotecompose.core.operations.DrawArc;
import com.android.internal.widget.remotecompose.core.operations.DrawBitmap;
import com.android.internal.widget.remotecompose.core.operations.DrawBitmapInt;
@@ -54,19 +58,23 @@ import com.android.internal.widget.remotecompose.core.operations.TextFromFloat;
import com.android.internal.widget.remotecompose.core.operations.TextMerge;
import com.android.internal.widget.remotecompose.core.operations.Theme;
import com.android.internal.widget.remotecompose.core.operations.Utils;
+import com.android.internal.widget.remotecompose.core.operations.layout.CanvasContent;
import com.android.internal.widget.remotecompose.core.operations.layout.ComponentEnd;
import com.android.internal.widget.remotecompose.core.operations.layout.ComponentStart;
import com.android.internal.widget.remotecompose.core.operations.layout.LayoutComponentContent;
import com.android.internal.widget.remotecompose.core.operations.layout.RootLayoutComponent;
import com.android.internal.widget.remotecompose.core.operations.layout.managers.BoxLayout;
+import com.android.internal.widget.remotecompose.core.operations.layout.managers.CanvasLayout;
import com.android.internal.widget.remotecompose.core.operations.layout.managers.ColumnLayout;
import com.android.internal.widget.remotecompose.core.operations.layout.managers.RowLayout;
+import com.android.internal.widget.remotecompose.core.operations.layout.managers.TextLayout;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.BackgroundModifierOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.BorderModifierOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ClipRectModifierOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.PaddingModifierOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RoundedClipRectModifierOperation;
import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle;
+import com.android.internal.widget.remotecompose.core.operations.utilities.NanMap;
import com.android.internal.widget.remotecompose.core.operations.utilities.easing.FloatAnimation;
import com.android.internal.widget.remotecompose.core.types.IntegerConstant;
@@ -97,6 +105,9 @@ public class RemoteComposeBuffer {
RemoteComposeState mRemoteComposeState;
private static final boolean DEBUG = false;
+ private int mLastComponentId = 0;
+ private int mGeneratedComponentId = -1;
+
/**
* Provides an abstract buffer to encode/decode RemoteCompose operations
*
@@ -114,6 +125,12 @@ public class RemoteComposeBuffer {
public void reset(int expectedSize) {
mBuffer.reset(expectedSize);
mRemoteComposeState.reset();
+ mLastComponentId = 0;
+ mGeneratedComponentId = -1;
+ }
+
+ public int getLastComponentId() {
+ return mLastComponentId;
}
public Platform getPlatform() {
@@ -146,11 +163,11 @@ public class RemoteComposeBuffer {
*/
public void header(int width, int height, String contentDescription,
float density, long capabilities) {
- Header.COMPANION.apply(mBuffer, width, height, density, capabilities);
+ Header.apply(mBuffer, width, height, density, capabilities);
int contentDescriptionId = 0;
if (contentDescription != null) {
contentDescriptionId = addText(contentDescription);
- RootContentDescription.COMPANION.apply(mBuffer, contentDescriptionId);
+ RootContentDescription.apply(mBuffer, contentDescriptionId);
}
}
@@ -187,15 +204,15 @@ public class RemoteComposeBuffer {
String contentDescription) {
int imageId = mRemoteComposeState.dataGetId(image);
if (imageId == -1) {
- imageId = mRemoteComposeState.cache(image);
+ imageId = mRemoteComposeState.cacheData(image);
byte[] data = mPlatform.imageToByteArray(image);
- BitmapData.COMPANION.apply(mBuffer, imageId, imageWidth, imageHeight, data);
+ BitmapData.apply(mBuffer, imageId, imageWidth, imageHeight, data);
}
int contentDescriptionId = 0;
if (contentDescription != null) {
contentDescriptionId = addText(contentDescription);
}
- DrawBitmapInt.COMPANION.apply(
+ DrawBitmapInt.apply(
mBuffer, imageId, srcLeft, srcTop, srcRight, srcBottom,
dstLeft, dstTop, dstRight, dstBottom, contentDescriptionId
);
@@ -210,8 +227,8 @@ public class RemoteComposeBuffer {
public int addText(String text) {
int id = mRemoteComposeState.dataGetId(text);
if (id == -1) {
- id = mRemoteComposeState.cache(text);
- TextData.COMPANION.apply(mBuffer, id, text);
+ id = mRemoteComposeState.cacheData(text);
+ TextData.apply(mBuffer, id, text);
}
return id;
}
@@ -244,7 +261,7 @@ public class RemoteComposeBuffer {
if (metadata != null) {
metadataId = addText(metadata);
}
- ClickArea.COMPANION.apply(mBuffer, id, contentDescriptionId,
+ ClickArea.apply(mBuffer, id, contentDescriptionId,
left, top, right, bottom, metadataId);
}
@@ -268,7 +285,7 @@ public class RemoteComposeBuffer {
* The LAYOUT_*_FIXED modes will use the intrinsic document size
*/
public void setRootContentBehavior(int scroll, int alignment, int sizing, int mode) {
- RootContentBehavior.COMPANION.apply(mBuffer, scroll, alignment, sizing, mode);
+ RootContentBehavior.apply(mBuffer, scroll, alignment, sizing, mode);
}
/**
@@ -298,7 +315,7 @@ public class RemoteComposeBuffer {
float bottom,
float startAngle,
float sweepAngle) {
- DrawArc.COMPANION.apply(mBuffer, left, top, right, bottom, startAngle, sweepAngle);
+ DrawArc.apply(mBuffer, left, top, right, bottom, startAngle, sweepAngle);
}
/**
@@ -317,18 +334,18 @@ public class RemoteComposeBuffer {
String contentDescription) {
int imageId = mRemoteComposeState.dataGetId(image);
if (imageId == -1) {
- imageId = mRemoteComposeState.cache(image);
+ imageId = mRemoteComposeState.cacheData(image);
byte[] data = mPlatform.imageToByteArray(image);
int imageWidth = mPlatform.getImageWidth(image);
int imageHeight = mPlatform.getImageHeight(image);
- BitmapData.COMPANION.apply(mBuffer, imageId, imageWidth, imageHeight, data);
+ BitmapData.apply(mBuffer, imageId, imageWidth, imageHeight, data);
}
int contentDescriptionId = 0;
if (contentDescription != null) {
contentDescriptionId = addText(contentDescription);
}
- DrawBitmap.COMPANION.apply(
+ DrawBitmap.apply(
mBuffer, imageId, left, top, right, bottom, contentDescriptionId
);
}
@@ -342,7 +359,7 @@ public class RemoteComposeBuffer {
* @param radius The radius of the circle to be drawn
*/
public void addDrawCircle(float centerX, float centerY, float radius) {
- DrawCircle.COMPANION.apply(mBuffer, centerX, centerY, radius);
+ DrawCircle.apply(mBuffer, centerX, centerY, radius);
}
/**
@@ -355,7 +372,7 @@ public class RemoteComposeBuffer {
* @param y2 The y-coordinate of the end point of the line
*/
public void addDrawLine(float x1, float y1, float x2, float y2) {
- DrawLine.COMPANION.apply(mBuffer, x1, y1, x2, y2);
+ DrawLine.apply(mBuffer, x1, y1, x2, y2);
}
/**
@@ -367,7 +384,7 @@ public class RemoteComposeBuffer {
* @param bottom bottom coordinate of oval
*/
public void addDrawOval(float left, float top, float right, float bottom) {
- DrawOval.COMPANION.apply(mBuffer, left, top, right, bottom);
+ DrawOval.apply(mBuffer, left, top, right, bottom);
}
/**
@@ -392,7 +409,7 @@ public class RemoteComposeBuffer {
* @param pathId
*/
public void addDrawPath(int pathId) {
- DrawPath.COMPANION.apply(mBuffer, pathId);
+ DrawPath.apply(mBuffer, pathId);
}
/**
@@ -404,7 +421,7 @@ public class RemoteComposeBuffer {
* @param bottom bottom coordinate of rectangle to be drawn
*/
public void addDrawRect(float left, float top, float right, float bottom) {
- DrawRect.COMPANION.apply(mBuffer, left, top, right, bottom);
+ DrawRect.apply(mBuffer, left, top, right, bottom);
}
/**
@@ -419,7 +436,7 @@ public class RemoteComposeBuffer {
*/
public void addDrawRoundRect(float left, float top, float right, float bottom,
float radiusX, float radiusY) {
- DrawRoundRect.COMPANION.apply(mBuffer, left, top, right, bottom, radiusX, radiusY);
+ DrawRoundRect.apply(mBuffer, left, top, right, bottom, radiusX, radiusY);
}
/**
@@ -436,7 +453,7 @@ public class RemoteComposeBuffer {
pathId = addPathData(path);
}
int textId = addText(text);
- DrawTextOnPath.COMPANION.apply(mBuffer, textId, pathId, hOffset, vOffset);
+ DrawTextOnPath.apply(mBuffer, textId, pathId, hOffset, vOffset);
}
/**
@@ -461,7 +478,7 @@ public class RemoteComposeBuffer {
float y,
boolean rtl) {
int textId = addText(text);
- DrawText.COMPANION.apply(
+ DrawText.apply(
mBuffer, textId, start, end,
contextStart, contextEnd, x, y, rtl);
}
@@ -487,7 +504,7 @@ public class RemoteComposeBuffer {
float x,
float y,
boolean rtl) {
- DrawText.COMPANION.apply(
+ DrawText.apply(
mBuffer, textId, start, end,
contextStart, contextEnd, x, y, rtl);
}
@@ -520,7 +537,7 @@ public class RemoteComposeBuffer {
float panY,
int flags) {
int textId = addText(text);
- DrawTextAnchored.COMPANION.apply(
+ DrawTextAnchored.apply(
mBuffer, textId,
x, y,
panX, panY,
@@ -545,7 +562,7 @@ public class RemoteComposeBuffer {
*/
public int textMerge(int id1, int id2) {
int textId = addText(id1 + "+" + id2);
- TextMerge.COMPANION.apply(mBuffer, textId, id1, id2);
+ TextMerge.apply(mBuffer, textId, id1, id2);
return textId;
}
@@ -571,10 +588,10 @@ public class RemoteComposeBuffer {
+ "(" + digitsBefore + "," + digitsAfter + "," + flags + ")";
int id = mRemoteComposeState.dataGetId(placeHolder);
if (id == -1) {
- id = mRemoteComposeState.cache(placeHolder);
- // TextData.COMPANION.apply(mBuffer, id, text);
+ id = mRemoteComposeState.cacheData(placeHolder);
+ // TextData.apply(mBuffer, id, text);
}
- TextFromFloat.COMPANION.apply(mBuffer, id, value, digitsBefore,
+ TextFromFloat.apply(mBuffer, id, value, digitsBefore,
digitsAfter, flags);
return id;
}
@@ -607,7 +624,7 @@ public class RemoteComposeBuffer {
float panY,
int flags) {
- DrawTextAnchored.COMPANION.apply(
+ DrawTextAnchored.apply(
mBuffer, textId,
x, y,
panX, panY,
@@ -655,7 +672,7 @@ public class RemoteComposeBuffer {
float tween,
float start,
float stop) {
- DrawTweenPath.COMPANION.apply(
+ DrawTweenPath.apply(
mBuffer, path1Id, path2Id,
tween, start, stop);
}
@@ -668,8 +685,8 @@ public class RemoteComposeBuffer {
*/
public int addPathData(Object path) {
float[] pathData = mPlatform.pathToFloatArray(path);
- int id = mRemoteComposeState.cache(path);
- PathData.COMPANION.apply(mBuffer, id, pathData);
+ int id = mRemoteComposeState.cacheData(path);
+ PathData.apply(mBuffer, id, pathData);
return id;
}
@@ -678,7 +695,7 @@ public class RemoteComposeBuffer {
* @param paint
*/
public void addPaint(PaintBundle paint) {
- PaintData.COMPANION.apply(mBuffer, paint);
+ PaintData.apply(mBuffer, paint);
}
///////////////////////////////////////////////////////////////////////////////////////////////
@@ -697,6 +714,18 @@ public class RemoteComposeBuffer {
}
}
+ public static void readNextOperation(WireBuffer buffer, ArrayList<Operation> operations) {
+ int opId = buffer.readByte();
+ if (DEBUG) {
+ Utils.log(">> " + opId);
+ }
+ CompanionOperation operation = Operations.map.get(opId);
+ if (operation == null) {
+ throw new RuntimeException("Unknown operation encountered " + opId);
+ }
+ operation.read(buffer, operations);
+ }
+
RemoteComposeBuffer copy() {
ArrayList<Operation> operations = new ArrayList<>();
inflateFromBuffer(operations);
@@ -705,7 +734,7 @@ public class RemoteComposeBuffer {
}
public void setTheme(int theme) {
- Theme.COMPANION.apply(mBuffer, theme);
+ Theme.apply(mBuffer, theme);
}
static String version() {
@@ -743,6 +772,12 @@ public class RemoteComposeBuffer {
return buffer;
}
+ /**
+ * Write the given RemoteComposeBuffer to the given file
+ *
+ * @param buffer a RemoteComposeBuffer
+ * @param file a target file
+ */
public void write(RemoteComposeBuffer buffer, File file) {
try {
FileOutputStream fd = new FileOutputStream(file);
@@ -750,7 +785,7 @@ public class RemoteComposeBuffer {
fd.flush();
fd.close();
} catch (Exception ex) {
- ex.printStackTrace();
+ throw new RuntimeException(ex);
}
}
@@ -766,8 +801,7 @@ public class RemoteComposeBuffer {
System.arraycopy(bytes, 0, buffer.mBuffer.mBuffer, 0, bytes.length);
buffer.mBuffer.mSize = bytes.length;
} catch (Exception e) {
- e.printStackTrace();
- // todo decide how to handel this stuff
+ throw new RuntimeException(e);
}
}
@@ -794,7 +828,7 @@ public class RemoteComposeBuffer {
* @param skewY The amount to skew in Y
*/
public void addMatrixSkew(float skewX, float skewY) {
- MatrixSkew.COMPANION.apply(mBuffer, skewX, skewY);
+ MatrixSkew.apply(mBuffer, skewX, skewY);
}
/**
@@ -803,7 +837,7 @@ public class RemoteComposeBuffer {
* Do not call restore() more times than save() was called.
*/
public void addMatrixRestore() {
- MatrixRestore.COMPANION.apply(mBuffer);
+ MatrixRestore.apply(mBuffer);
}
/**
@@ -815,7 +849,7 @@ public class RemoteComposeBuffer {
* existed before the save() will be reinstated.
*/
public void addMatrixSave() {
- MatrixSave.COMPANION.apply(mBuffer);
+ MatrixSave.apply(mBuffer);
}
/**
@@ -826,7 +860,7 @@ public class RemoteComposeBuffer {
* @param centerY The y-coord for the pivot point (unchanged by the rotation)
*/
public void addMatrixRotate(float angle, float centerX, float centerY) {
- MatrixRotate.COMPANION.apply(mBuffer, angle, centerX, centerY);
+ MatrixRotate.apply(mBuffer, angle, centerX, centerY);
}
/**
@@ -836,7 +870,7 @@ public class RemoteComposeBuffer {
* @param dy The distance to translate in Y
*/
public void addMatrixTranslate(float dx, float dy) {
- MatrixTranslate.COMPANION.apply(mBuffer, dx, dy);
+ MatrixTranslate.apply(mBuffer, dx, dy);
}
/**
@@ -846,7 +880,7 @@ public class RemoteComposeBuffer {
* @param scaleY The amount to scale in Y
*/
public void addMatrixScale(float scaleX, float scaleY) {
- MatrixScale.COMPANION.apply(mBuffer, scaleX, scaleY, Float.NaN, Float.NaN);
+ MatrixScale.apply(mBuffer, scaleX, scaleY, Float.NaN, Float.NaN);
}
/**
@@ -858,7 +892,7 @@ public class RemoteComposeBuffer {
* @param centerY The y-coord for the pivot point (unchanged by the scale)
*/
public void addMatrixScale(float scaleX, float scaleY, float centerX, float centerY) {
- MatrixScale.COMPANION.apply(mBuffer, scaleX, scaleY, centerX, centerY);
+ MatrixScale.apply(mBuffer, scaleX, scaleY, centerX, centerY);
}
/**
@@ -866,47 +900,47 @@ public class RemoteComposeBuffer {
* @param pathId 0 clears the clip
*/
public void addClipPath(int pathId) {
- ClipPath.COMPANION.apply(mBuffer, pathId);
+ ClipPath.apply(mBuffer, pathId);
}
/**
- * Sets the clip based on clip rect
- * @param left
- * @param top
- * @param right
- * @param bottom
+ * Sets the clip based on clip rec
+ * @param left left coordinate of the clip rectangle
+ * @param top top coordinate of the clip rectangle
+ * @param right right coordinate of the clip rectangle
+ * @param bottom bottom coordinate of the clip rectangle
*/
public void addClipRect(float left, float top, float right, float bottom) {
- ClipRect.COMPANION.apply(mBuffer, left, top, right, bottom);
+ ClipRect.apply(mBuffer, left, top, right, bottom);
}
/**
* Add a float return a NaN number pointing to that float
- * @param value
- * @return
+ * @param value the value of the float
+ * @return the nan id of float
*/
public float addFloat(float value) {
int id = mRemoteComposeState.cacheFloat(value);
- FloatConstant.COMPANION.apply(mBuffer, id, value);
+ FloatConstant.apply(mBuffer, id, value);
return Utils.asNan(id);
}
/**
* Add a Integer return an id number pointing to that float.
- * @param value
- * @return
+ * @param value adds an integer and assigns it an id
+ * @return the id of the integer to be used
*/
public int addInteger(int value) {
int id = mRemoteComposeState.cacheInteger(value);
- IntegerConstant.COMPANION.apply(mBuffer, id, value);
+ IntegerConstant.apply(mBuffer, id, value);
return id;
}
/**
* Add a IntegerId as float ID.
* @param id id to be converted
- * @return
+ * @return the id wrapped in a NaN
*/
public float asFloatId(int id) {
return Utils.asNan(id);
@@ -918,8 +952,8 @@ public class RemoteComposeBuffer {
* @return NaN id of the result of the calculation
*/
public float addAnimatedFloat(float... value) {
- int id = mRemoteComposeState.cache(value);
- FloatExpression.COMPANION.apply(mBuffer, id, value, null);
+ int id = mRemoteComposeState.cacheData(value);
+ FloatExpression.apply(mBuffer, id, value, null);
return Utils.asNan(id);
}
@@ -931,8 +965,80 @@ public class RemoteComposeBuffer {
* @return NaN id of the result of the calculation
*/
public float addAnimatedFloat(float[] value, float[] animation) {
- int id = mRemoteComposeState.cache(value);
- FloatExpression.COMPANION.apply(mBuffer, id, value, animation);
+ int id = mRemoteComposeState.cacheData(value);
+ FloatExpression.apply(mBuffer, id, value, animation);
+ return Utils.asNan(id);
+ }
+
+
+ /**
+ * add a float array
+ *
+ * @param values
+ *
+ * @return the id of the array, encoded as a float NaN
+ */
+ public float addFloatArray(float[] values) {
+ int id = mRemoteComposeState.cacheData(values, NanMap.TYPE_ARRAY);
+ DataListFloat.apply(mBuffer, id, values);
+ return Utils.asNan(id);
+ }
+
+ /**
+ * This creates a list of individual floats
+ * @param values array of floats to be individually stored
+ *
+ * @return id of the list
+ */
+ public float addFloatList(float[] values) {
+ int []listId = new int[values.length];
+ for (int i = 0; i < listId.length; i++) {
+ listId[i] = mRemoteComposeState.cacheFloat(values[i]);
+ FloatConstant.apply(mBuffer, listId[i], values[i]);
+ }
+ return addList(listId);
+ }
+
+ /**
+ * This creates a list of individual floats
+ * @param listId array id to be stored
+ *
+ * @return id of the list
+ */
+ public float addList(int[] listId) {
+ int id = mRemoteComposeState.cacheData(listId, NanMap.TYPE_ARRAY);
+ DataListIds.apply(mBuffer, id, listId);
+ return Utils.asNan(id);
+ }
+
+ /**
+ * add a float map
+ *
+ * @param keys
+ * @param values
+ *
+ * @return the id of the map, encoded as a float NaN
+ */
+ public float addFloatMap(String[]keys, float[] values) {
+ int []listId = new int[values.length];
+ for (int i = 0; i < listId.length; i++) {
+ listId[i] = mRemoteComposeState.cacheFloat(values[i]);
+ FloatConstant.apply(mBuffer, listId[i], values[i]);
+ }
+ return addMap(keys, listId);
+ }
+
+ /**
+ * add an int map
+ *
+ * @param keys
+ * @param listId
+ *
+ * @return the id of the map, encoded as a float NaN
+ */
+ public float addMap(String []keys, int[] listId) {
+ int id = mRemoteComposeState.cacheData(listId, NanMap.TYPE_ARRAY);
+ DataMapIds.apply(mBuffer, id, keys, listId);
return Utils.asNan(id);
}
@@ -940,22 +1046,22 @@ public class RemoteComposeBuffer {
* Add and integer expression
* @param mask defines which elements are operators or variables
* @param value array of values to calculate maximum 32
- * @return
+ * @return the id as an integer
*/
public int addIntegerExpression(int mask, int[] value) {
- int id = mRemoteComposeState.cache(value);
- IntegerExpression.COMPANION.apply(mBuffer, id, mask, value);
+ int id = mRemoteComposeState.cacheData(value);
+ IntegerExpression.apply(mBuffer, id, mask, value);
return id;
}
/**
* Add a simple color
- * @param color
+ * @param color the RGB color value
* @return id that represents that color
*/
public int addColor(int color) {
ColorConstant c = new ColorConstant(0, color);
- short id = (short) mRemoteComposeState.cache(c);
+ short id = (short) mRemoteComposeState.cacheData(c);
c.mColorId = id;
c.write(mBuffer);
return id;
@@ -964,14 +1070,14 @@ public class RemoteComposeBuffer {
/**
* Add a color that represents the tween between two colors
- * @param color1
- * @param color2
- * @param tween
+ * @param color1 the ARGB value of the first color
+ * @param color2 the ARGB value of the second color
+ * @param tween the interpolation bet
* @return id of the color (color ids are short)
*/
public short addColorExpression(int color1, int color2, float tween) {
ColorExpression c = new ColorExpression(0, 0, color1, color2, tween);
- short id = (short) mRemoteComposeState.cache(c);
+ short id = (short) mRemoteComposeState.cacheData(c);
c.mId = id;
c.write(mBuffer);
return id;
@@ -980,14 +1086,14 @@ public class RemoteComposeBuffer {
/**
* Add a color that represents the tween between two colors where color1
* is the id of a color
- * @param color1
- * @param color2
- * @param tween
+ * @param color1 id of color
+ * @param color2 rgb color value
+ * @param tween the tween between color1 and color2 (1 = color2)
* @return id of the color (color ids are short)
*/
public short addColorExpression(short color1, int color2, float tween) {
ColorExpression c = new ColorExpression(0, 1, color1, color2, tween);
- short id = (short) mRemoteComposeState.cache(c);
+ short id = (short) mRemoteComposeState.cacheData(c);
c.mId = id;
c.write(mBuffer);
return id;
@@ -996,14 +1102,14 @@ public class RemoteComposeBuffer {
/**
* Add a color that represents the tween between two colors where color2
* is the id of a color
- * @param color1
- * @param color2
- * @param tween
+ * @param color1 the ARGB value of the first color
+ * @param color2 id of the second color
+ * @param tween the tween between color1 and color2 (1 = color2)
* @return id of the color (color ids are short)
*/
public short addColorExpression(int color1, short color2, float tween) {
ColorExpression c = new ColorExpression(0, 2, color1, color2, tween);
- short id = (short) mRemoteComposeState.cache(c);
+ short id = (short) mRemoteComposeState.cacheData(c);
c.mId = id;
c.write(mBuffer);
return id;
@@ -1012,30 +1118,30 @@ public class RemoteComposeBuffer {
/**
* Add a color that represents the tween between two colors where color1 &
* color2 are the ids of colors
- * @param color1
- * @param color2
- * @param tween
+ * @param color1 id of the first color
+ * @param color2 id of the second color
+ * @param tween the tween between color1 and color2 (1 = color2)
* @return id of the color (color ids are short)
*/
public short addColorExpression(short color1, short color2, float tween) {
ColorExpression c = new ColorExpression(0, 3, color1, color2, tween);
- short id = (short) mRemoteComposeState.cache(c);
+ short id = (short) mRemoteComposeState.cacheData(c);
c.mId = id;
c.write(mBuffer);
return id;
}
/**
- * Color calculated by Hue saturation and value.
- * (as floats they can be variables used to create color transitions)
- * @param hue
- * @param sat
- * @param value
+ * Color calculated by Hue saturation and value.
+ * (as floats they can be variables used to create color transitions)
+ * @param hue the Hue
+ * @param sat the saturation
+ * @param value the value
* @return id of the color (color ids are short)
*/
public short addColorExpression(float hue, float sat, float value) {
ColorExpression c = new ColorExpression(0, hue, sat, value);
- short id = (short) mRemoteComposeState.cache(c);
+ short id = (short) mRemoteComposeState.cacheData(c);
c.mId = id;
c.write(mBuffer);
return id;
@@ -1044,15 +1150,15 @@ public class RemoteComposeBuffer {
/**
* Color calculated by Alpha, Hue saturation and value.
* (as floats they can be variables used to create color transitions)
- * @param alpha
- * @param hue
- * @param sat
- * @param value
+ * @param alpha the Alpha
+ * @param hue the hue
+ * @param sat the saturation
+ * @param value the value
* @return id of the color (color ids are short)
*/
public short addColorExpression(int alpha, float hue, float sat, float value) {
ColorExpression c = new ColorExpression(0, alpha, hue, sat, value);
- short id = (short) mRemoteComposeState.cache(c);
+ short id = (short) mRemoteComposeState.cacheData(c);
c.mId = id;
c.write(mBuffer);
return id;
@@ -1061,11 +1167,11 @@ public class RemoteComposeBuffer {
/**
* create and animation based on description and return as an array of
* floats. see addAnimatedFloat
- * @param duration
- * @param type
- * @param spec
- * @param initialValue
- * @param wrap
+ * @param duration the duration of the aimation
+ * @param type the type of animation
+ * @param spec the parameters of the animation if any
+ * @param initialValue the initial value if it animates to a start
+ * @param wrap the wraps value so (e.g 360 so angles 355 would animate to 5)
* @return
*/
public static float[] packAnimation(float duration,
@@ -1083,39 +1189,49 @@ public class RemoteComposeBuffer {
* @param name Name of the color
*/
public void setColorName(int id, String name) {
- NamedVariable.COMPANION.apply(mBuffer, id,
+ NamedVariable.apply(mBuffer, id,
NamedVariable.COLOR_TYPE, name);
}
/**
+ * This defines the name of the string given the id
+ *
+ * @param id of the string
+ * @param name name of the string
+ */
+ public void setStringName(int id, String name) {
+ NamedVariable.apply(mBuffer, id,
+ NamedVariable.STRING_TYPE, name);
+ }
+
+ /**
+ * Returns a usable component id -- either the one passed in parameter if not -1
+ * or a generated one.
+ *
+ * @param id the current component id (if -1, we'll generate a new one)
+ *
+ * @return a usable component id
+ */
+ private int getComponentId(int id) {
+ int resolvedId = 0;
+ if (id != -1) {
+ resolvedId = id;
+ } else {
+ mGeneratedComponentId--;
+ resolvedId = mGeneratedComponentId;
+ }
+ return resolvedId;
+ }
+
+ /**
* Add a component start tag
* @param type type of component
* @param id component id
*/
public void addComponentStart(int type, int id) {
- switch (type) {
- case ComponentStart.ROOT_LAYOUT: {
- RootLayoutComponent.COMPANION.apply(mBuffer);
- } break;
- case ComponentStart.LAYOUT_CONTENT: {
- LayoutComponentContent.COMPANION.apply(mBuffer);
- } break;
- case ComponentStart.LAYOUT_BOX: {
- BoxLayout.COMPANION.apply(mBuffer, id, -1,
- BoxLayout.CENTER, BoxLayout.CENTER);
- } break;
- case ComponentStart.LAYOUT_ROW: {
- RowLayout.COMPANION.apply(mBuffer, id, -1,
- RowLayout.START, RowLayout.TOP, 0f);
- } break;
- case ComponentStart.LAYOUT_COLUMN: {
- ColumnLayout.COMPANION.apply(mBuffer, id, -1,
- ColumnLayout.START, ColumnLayout.TOP, 0f);
- } break;
- default:
- ComponentStart.Companion.apply(mBuffer,
- type, id, 0f, 0f);
- }
+ mLastComponentId = getComponentId(id);
+ ComponentStart.apply(mBuffer,
+ type, mLastComponentId, 0f, 0f);
}
/**
@@ -1130,7 +1246,7 @@ public class RemoteComposeBuffer {
* Add a component end tag
*/
public void addComponentEnd() {
- ComponentEnd.Companion.apply(mBuffer);
+ ComponentEnd.apply(mBuffer);
}
/**
@@ -1143,7 +1259,7 @@ public class RemoteComposeBuffer {
float g = ((color >> 8) & 0xff) / 255.0f;
float b = ((color) & 0xff) / 255.0f;
float a = ((color >> 24) & 0xff) / 255.0f;
- BackgroundModifierOperation.COMPANION.apply(mBuffer, 0f, 0f, 0f, 0f,
+ BackgroundModifierOperation.apply(mBuffer, 0f, 0f, 0f, 0f,
r, g, b, a, shape);
}
@@ -1160,7 +1276,7 @@ public class RemoteComposeBuffer {
float g = ((color >> 8) & 0xff) / 255.0f;
float b = ((color) & 0xff) / 255.0f;
float a = ((color >> 24) & 0xff) / 255.0f;
- BorderModifierOperation.COMPANION.apply(mBuffer, 0f, 0f, 0f, 0f,
+ BorderModifierOperation.apply(mBuffer, 0f, 0f, 0f, 0f,
borderWidth, borderRoundedCorner, r, g, b, a, shape);
}
@@ -1172,10 +1288,9 @@ public class RemoteComposeBuffer {
* @param bottom bottom padding
*/
public void addModifierPadding(float left, float top, float right, float bottom) {
- PaddingModifierOperation.COMPANION.apply(mBuffer, left, top, right, bottom);
+ PaddingModifierOperation.apply(mBuffer, left, top, right, bottom);
}
-
/**
* Sets the clip based on rounded clip rect
* @param topStart
@@ -1185,30 +1300,138 @@ public class RemoteComposeBuffer {
*/
public void addRoundClipRectModifier(float topStart, float topEnd,
float bottomStart, float bottomEnd) {
- RoundedClipRectModifierOperation.COMPANION.apply(mBuffer,
+ RoundedClipRectModifierOperation.apply(mBuffer,
topStart, topEnd, bottomStart, bottomEnd);
}
+ /**
+ * Add a clip rect modifier
+ */
public void addClipRectModifier() {
- ClipRectModifierOperation.COMPANION.apply(mBuffer);
+ ClipRectModifierOperation.apply(mBuffer);
}
+ /**
+ * Add a box start tag
+ *
+ * @param componentId component id
+ * @param animationId animation id
+ * @param horizontal horizontal alignment
+ * @param vertical vertical alignment
+ */
public void addBoxStart(int componentId, int animationId,
int horizontal, int vertical) {
- BoxLayout.COMPANION.apply(mBuffer, componentId, animationId,
+ mLastComponentId = getComponentId(componentId);
+ BoxLayout.apply(mBuffer, mLastComponentId, animationId,
horizontal, vertical);
}
+ /**
+ * Add a row start tag
+ *
+ * @param componentId component id
+ * @param animationId animation id
+ * @param horizontal horizontal alignment
+ * @param vertical vertical alignment
+ * @param spacedBy spacing between items
+ */
public void addRowStart(int componentId, int animationId,
int horizontal, int vertical, float spacedBy) {
- RowLayout.COMPANION.apply(mBuffer, componentId, animationId,
+ mLastComponentId = getComponentId(componentId);
+ RowLayout.apply(mBuffer, mLastComponentId, animationId,
horizontal, vertical, spacedBy);
}
+ /**
+ * Add a column start tag
+ *
+ * @param componentId component id
+ * @param animationId animation id
+ * @param horizontal horizontal alignment
+ * @param vertical vertical alignment
+ * @param spacedBy spacing between items
+ */
public void addColumnStart(int componentId, int animationId,
int horizontal, int vertical, float spacedBy) {
- ColumnLayout.COMPANION.apply(mBuffer, componentId, animationId,
+ mLastComponentId = getComponentId(componentId);
+ ColumnLayout.apply(mBuffer, mLastComponentId, animationId,
horizontal, vertical, spacedBy);
}
+
+ /**
+ * Add a canvas start tag
+ * @param componentId component id
+ * @param animationId animation id
+ */
+ public void addCanvasStart(int componentId, int animationId) {
+ mLastComponentId = getComponentId(componentId);
+ CanvasLayout.apply(mBuffer, mLastComponentId, animationId);
+ }
+
+ /**
+ * Add a canvas content start tag
+ * @param componentId component id
+ */
+ public void addCanvasContentStart(int componentId) {
+ mLastComponentId = getComponentId(componentId);
+ CanvasContent.apply(mBuffer, mLastComponentId);
+ }
+
+ /**
+ * Add a root start tag
+ */
+ public void addRootStart() {
+ mLastComponentId = getComponentId(-1);
+ RootLayoutComponent.apply(mBuffer, mLastComponentId);
+ }
+
+ /**
+ * Add a content start tag
+ */
+ public void addContentStart() {
+ mLastComponentId = getComponentId(-1);
+ LayoutComponentContent.apply(mBuffer, mLastComponentId);
+ }
+
+ /**
+ * Add a component width value
+ * @param id id of the value
+ */
+ public void addComponentWidthValue(int id) {
+ ComponentValue.apply(mBuffer, ComponentValue.WIDTH, mLastComponentId, id);
+ }
+
+ /**
+ * Add a component height value
+ *
+ * @param id id of the value
+ */
+ public void addComponentHeightValue(int id) {
+ ComponentValue.apply(mBuffer, ComponentValue.HEIGHT, mLastComponentId, id);
+ }
+
+ /**
+ * Add a text component start tag
+ *
+ * @param componentId component id
+ * @param animationId animation id
+ * @param textId id of the text
+ * @param color color of the text
+ * @param fontSize font size
+ * @param fontStyle font style (0 : Normal, 1 : Italic)
+ * @param fontWeight font weight (1 to 1000, normal is 400)
+ * @param fontFamily font family or null
+ */
+ public void addTextComponentStart(int componentId, int animationId,
+ int textId, int color, float fontSize,
+ int fontStyle, float fontWeight, String fontFamily) {
+ mLastComponentId = getComponentId(componentId);
+ int fontFamilyId = -1;
+ if (fontFamily != null) {
+ fontFamilyId = addText(fontFamily);
+ }
+ TextLayout.apply(mBuffer, mLastComponentId, animationId, textId, color, fontSize,
+ fontStyle, fontWeight, fontFamilyId);
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeState.java b/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeState.java
index 6b06a544be40..839522e29fdb 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeState.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeState.java
@@ -20,7 +20,11 @@ import static com.android.internal.widget.remotecompose.core.RemoteContext.ID_TI
import static com.android.internal.widget.remotecompose.core.RemoteContext.ID_TIME_IN_SEC;
import static com.android.internal.widget.remotecompose.core.RemoteContext.ID_WINDOW_HEIGHT;
import static com.android.internal.widget.remotecompose.core.RemoteContext.ID_WINDOW_WIDTH;
+import static com.android.internal.widget.remotecompose.core.operations.utilities.NanMap.START_ARRAY;
+import static com.android.internal.widget.remotecompose.core.operations.utilities.NanMap.START_VAR;
+import com.android.internal.widget.remotecompose.core.operations.utilities.ArrayAccess;
+import com.android.internal.widget.remotecompose.core.operations.utilities.CollectionsAccess;
import com.android.internal.widget.remotecompose.core.operations.utilities.IntFloatMap;
import com.android.internal.widget.remotecompose.core.operations.utilities.IntIntMap;
import com.android.internal.widget.remotecompose.core.operations.utilities.IntMap;
@@ -32,18 +36,28 @@ import java.util.HashMap;
* Represents runtime state for a RemoteCompose document
* State includes things like the value of variables
*/
-public class RemoteComposeState {
+public class RemoteComposeState implements CollectionsAccess {
public static final int START_ID = 42;
private static final int MAX_FLOATS = 500;
private static final int MAX_COLORS = 200;
+
+ private static final int MAX_DATA = 1000;
private final IntMap<Object> mIntDataMap = new IntMap<>();
private final IntMap<Boolean> mIntWrittenMap = new IntMap<>();
- private final HashMap<Object, Integer> mDataIntMap = new HashMap();
+ private final HashMap<Object, Integer> mDataIntMap = new HashMap<>();
private final IntFloatMap mFloatMap = new IntFloatMap(); // efficient cache
private final IntIntMap mIntegerMap = new IntIntMap(); // efficient cache
private final IntIntMap mColorMap = new IntIntMap(); // efficient cache
+
private final boolean[] mColorOverride = new boolean[MAX_COLORS];
+ private final IntMap<ArrayAccess> mCollectionMap = new IntMap<>();
+
+ private final boolean[] mDataOverride = new boolean[MAX_DATA];
+ private final boolean[] mIntegerOverride = new boolean[MAX_DATA];
+
private int mNextId = START_ID;
+ private int[] mIdMaps = new int[]{START_ID, START_VAR, START_ARRAY};
+ private RemoteContext mRemoteContext = null;
/**
@@ -70,8 +84,8 @@ public class RemoteComposeState {
/**
* Return the id of an item from the cache.
*/
- public int dataGetId(Object image) {
- Integer res = mDataIntMap.get(image);
+ public int dataGetId(Object data) {
+ Integer res = mDataIntMap.get(data);
if (res == null) {
return -1;
}
@@ -79,29 +93,31 @@ public class RemoteComposeState {
}
/**
- * Add an image to the cache. Generates an id for the image and adds it to the cache based on
+ * Add an item to the cache. Generates an id for the item and adds it to the cache based on
* that id.
*/
- public int cache(Object image) {
+ public int cacheData(Object item) {
int id = nextId();
- mDataIntMap.put(image, id);
- mIntDataMap.put(id, image);
+ mDataIntMap.put(item, id);
+ mIntDataMap.put(id, item);
return id;
}
/**
- * Insert an item in the cache
+ * Add an item to the cache. Generates an id for the item and adds it to the cache based on
+ * that id.
*/
- public void cache(int id, Object item) {
+ public int cacheData(Object item, int type) {
+ int id = nextId(type);
mDataIntMap.put(item, id);
mIntDataMap.put(id, item);
+ return id;
}
/**
* Insert an item in the cache
*/
- public void update(int id, Object item) {
- mDataIntMap.remove(mIntDataMap.get(id));
+ public void cacheData(int id, Object item) {
mDataIntMap.put(item, id);
mIntDataMap.put(id, item);
}
@@ -109,20 +125,36 @@ public class RemoteComposeState {
/**
* Insert an item in the cache
*/
- public int cacheFloat(float item) {
- int id = nextId();
- mFloatMap.put(id, item);
- mIntegerMap.put(id, (int) item);
- return id;
+ public void updateData(int id, Object item) {
+ if (!mDataOverride[id]) {
+ mDataIntMap.remove(mIntDataMap.get(id));
+ mDataIntMap.put(item, id);
+ mIntDataMap.put(id, item);
+ updateListeners(id);
+ }
+ }
+
+ /**
+ * Adds a data Override.
+ *
+ * @param id
+ * @param item the new value
+ */
+ public void overrideData(int id, Object item) {
+ mDataIntMap.remove(mIntDataMap.get(id));
+ mDataIntMap.put(item, id);
+ mIntDataMap.put(id, item);
+ mDataOverride[id] = true;
+ updateListeners(id);
}
/**
* Insert an item in the cache
*/
- public int cacheInteger(int item) {
+ public int cacheFloat(float item) {
int id = nextId();
- mIntegerMap.put(id, item);
mFloatMap.put(id, item);
+ mIntegerMap.put(id, (int) item);
return id;
}
@@ -139,14 +171,41 @@ public class RemoteComposeState {
public void updateFloat(int id, float item) {
mFloatMap.put(id, item);
mIntegerMap.put(id, (int) item);
+ updateListeners(id);
+ }
+
+ /**
+ * Insert an item in the cache
+ */
+ public int cacheInteger(int item) {
+ int id = nextId();
+ mIntegerMap.put(id, item);
+ mFloatMap.put(id, item);
+ return id;
}
/**
* Insert an integer item in the cache
*/
public void updateInteger(int id, int item) {
- mFloatMap.put(id, item);
- mIntegerMap.put(id, item);
+ if (!mIntegerOverride[id]) {
+ mFloatMap.put(id, item);
+ mIntegerMap.put(id, item);
+ updateListeners(id);
+ }
+ }
+
+ /**
+ * Adds a integer Override.
+ *
+ * @param id
+ * @param value the new value
+ */
+ public void overrideInteger(int id, int value) {
+ mIntegerMap.put(id, value);
+ mFloatMap.put(id, value);
+ mIntegerOverride[id] = true;
+ updateListeners(id);
}
/**
@@ -190,11 +249,21 @@ public class RemoteComposeState {
return;
}
mColorMap.put(id, color);
+ updateListeners(id);
+ }
+
+ private void updateListeners(int id) {
+ ArrayList<VariableSupport> v = mVarListeners.get(id);
+ if (v != null && mRemoteContext != null) {
+ for (VariableSupport c : v) {
+ c.updateVariables(mRemoteContext);
+ }
+ }
}
/**
* Adds a colorOverride.
- * This is a list of ids and there colors optimized for playback;
+ * This is a list of ids and their colors optimized for playback;
*
* @param id
* @param color
@@ -214,6 +283,26 @@ public class RemoteComposeState {
}
/**
+ * Clear the data override
+ *
+ * @param id the data id to clear
+ */
+ public void clearDataOverride(int id) {
+ mDataOverride[id] = false;
+ updateListeners(id);
+ }
+
+ /**
+ * Clear the integer override
+ *
+ * @param id the integer id to clear
+ */
+ public void clearIntegerOverride(int id) {
+ mIntegerOverride[id] = false;
+ updateListeners(id);
+ }
+
+ /**
* Method to determine if a cached value has been written to the documents WireBuffer based on
* its id.
*/
@@ -231,8 +320,9 @@ public class RemoteComposeState {
/**
* Clear the record of the values that have been written to the WireBuffer.
*/
- void reset() {
+ public void reset() {
mIntWrittenMap.clear();
+ mDataIntMap.clear();
}
/**
@@ -245,6 +335,18 @@ public class RemoteComposeState {
}
/**
+ * Get the next available id
+ *
+ * @return
+ */
+ public int nextId(int type) {
+ if (0 == type) {
+ return mNextId++;
+ }
+ return mIdMaps[type]++;
+ }
+
+ /**
* Set the next id
*
* @param id
@@ -316,4 +418,25 @@ public class RemoteComposeState {
updateFloat(ID_WINDOW_HEIGHT, height);
}
+ public void addCollection(int id, ArrayAccess collection) {
+ mCollectionMap.put(id & 0xFFFFF, collection);
+ }
+
+ @Override
+ public float getFloatValue(int id, int index) {
+ return mCollectionMap.get(id & 0xFFFFF).getFloatValue(index);
+ }
+ @Override
+ public float[] getFloats(int id) {
+ return mCollectionMap.get(id & 0xFFFFF).getFloats();
+ }
+
+ @Override
+ public int getFloatsLength(int id) {
+ return mCollectionMap.get(id & 0xFFFFF).getFloatsLength();
+ }
+
+ public void setContext(RemoteContext context) {
+ mRemoteContext = context;
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java b/core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java
index 893dcce30842..0df0aa04ec9c 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java
@@ -20,6 +20,13 @@ import com.android.internal.widget.remotecompose.core.operations.ShaderData;
import com.android.internal.widget.remotecompose.core.operations.Theme;
import com.android.internal.widget.remotecompose.core.operations.Utils;
import com.android.internal.widget.remotecompose.core.operations.layout.Component;
+import com.android.internal.widget.remotecompose.core.operations.utilities.ArrayAccess;
+import com.android.internal.widget.remotecompose.core.operations.utilities.CollectionsAccess;
+
+import java.time.LocalDateTime;
+import java.time.OffsetDateTime;
+import java.time.ZoneId;
+import java.time.ZoneOffset;
/**
* Specify an abstract context used to playback RemoteCompose documents
@@ -57,8 +64,18 @@ public abstract class RemoteContext {
}
/**
+ * Provide access to the table of collections
+ *
+ * @return the CollectionsAccess implementation
+ */
+ public CollectionsAccess getCollectionsAccess() {
+ return mRemoteComposeState;
+ }
+
+ /**
* Load a path under an id.
* Paths can be use in clip drawPath and drawTweenPath
+ *
* @param instanceId
* @param floatPath
*/
@@ -67,22 +84,24 @@ public abstract class RemoteContext {
/**
* Associate a name with a give id.
*
- * @param varName
- * @param varId
- * @param varType
+ * @param varName the name
+ * @param varId the id (color,integer,float etc.)
+ * @param varType thetype
*/
public abstract void loadVariableName(String varName, int varId, int varType);
/**
* Save a color under a given id
- * @param id
- * @param color
+ *
+ * @param id the id of the color
+ * @param color the color to set
*/
public abstract void loadColor(int id, int color);
/**
* Set the animation time allowing the creator to control animation rates
- * @param time
+ *
+ * @param time the animation time in seconds
*/
public void setAnimationTime(float time) {
mAnimationTime = time;
@@ -90,6 +109,7 @@ public abstract class RemoteContext {
/**
* gets the time animation clock as float in seconds
+ *
* @return a monotonic time in seconds (arbitrary zero point)
*/
public float getAnimationTime() {
@@ -100,11 +120,60 @@ public abstract class RemoteContext {
/**
* Set the value of a named Color.
* This overrides the color in the document
- * @param colorName
- * @param color
+ *
+ * @param colorName the name of the color to override
+ * @param color Override the default color
*/
public abstract void setNamedColorOverride(String colorName, int color);
+ /**
+ * Set the value of a named String.
+ * This overrides the string in the document
+ * @param stringName the name of the string to override
+ * @param value Override the default string
+ */
+ public abstract void setNamedStringOverride(String stringName, String value);
+
+
+ /**
+ * Allows to clear a named String.
+ *
+ * If an override exists, we revert back to the default value in the document.
+ *
+ * @param stringName the name of the string to override
+ */
+ public abstract void clearNamedStringOverride(String stringName);
+
+ /**
+ * Set the value of a named Integer.
+ * This overrides the integer in the document
+ * @param integerName the name of the integer to override
+ * @param value Override the default integer
+ */
+ public abstract void setNamedIntegerOverride(String integerName, int value);
+
+ /**
+ * Allows to clear a named Integer.
+ *
+ * If an override exists, we revert back to the default value in the document.
+ *
+ * @param integerName the name of the integer to override
+ */
+ public abstract void clearNamedIntegerOverride(String integerName);
+
+
+ /**
+ * Support Collections by registering this collection
+ *
+ * @param id id of the collection
+ * @param collection the collection under this id
+ */
+ public abstract void addCollection(int id, ArrayAccess collection);
+
+ public abstract void runAction(int id, String metadata);
+
+ public abstract void runNamedAction(int textId);
+
/**
* The context can be used in a few different mode, allowing operations to skip being executed:
@@ -112,7 +181,7 @@ public abstract class RemoteContext {
* - DATA : only operations dealing with DATA (eg loading a bitmap) should execute
* - PAINT : only operations painting should execute
*/
- public enum ContextMode {
+ public enum ContextMode {
UNSET, DATA, PAINT
}
@@ -174,21 +243,21 @@ public abstract class RemoteContext {
/**
* Sets the way the player handles the content
*
- * @param scroll set the horizontal behavior (NONE|SCROLL_HORIZONTAL|SCROLL_VERTICAL)
+ * @param scroll set the horizontal behavior (NONE|SCROLL_HORIZONTAL|SCROLL_VERTICAL)
* @param alignment set the alignment of the content (TOP|CENTER|BOTTOM|START|END)
- * @param sizing set the type of sizing for the content (NONE|SIZING_LAYOUT|SIZING_SCALE)
- * @param mode set the mode of sizing, either LAYOUT modes or SCALE modes
- * the LAYOUT modes are:
- * - LAYOUT_MATCH_PARENT
- * - LAYOUT_WRAP_CONTENT
- * or adding an horizontal mode and a vertical mode:
- * - LAYOUT_HORIZONTAL_MATCH_PARENT
- * - LAYOUT_HORIZONTAL_WRAP_CONTENT
- * - LAYOUT_HORIZONTAL_FIXED
- * - LAYOUT_VERTICAL_MATCH_PARENT
- * - LAYOUT_VERTICAL_WRAP_CONTENT
- * - LAYOUT_VERTICAL_FIXED
- * The LAYOUT_*_FIXED modes will use the intrinsic document size
+ * @param sizing set the type of sizing for the content (NONE|SIZING_LAYOUT|SIZING_SCALE)
+ * @param mode set the mode of sizing, either LAYOUT modes or SCALE modes
+ * the LAYOUT modes are:
+ * - LAYOUT_MATCH_PARENT
+ * - LAYOUT_WRAP_CONTENT
+ * or adding an horizontal mode and a vertical mode:
+ * - LAYOUT_HORIZONTAL_MATCH_PARENT
+ * - LAYOUT_HORIZONTAL_WRAP_CONTENT
+ * - LAYOUT_HORIZONTAL_FIXED
+ * - LAYOUT_VERTICAL_MATCH_PARENT
+ * - LAYOUT_VERTICAL_WRAP_CONTENT
+ * - LAYOUT_VERTICAL_FIXED
+ * The LAYOUT_*_FIXED modes will use the intrinsic document size
*/
public void setRootContentBehavior(int scroll, int alignment, int sizing, int mode) {
mDocument.setRootContentBehavior(scroll, alignment, sizing, mode);
@@ -196,6 +265,7 @@ public abstract class RemoteContext {
/**
* Set a content description for the document
+ *
* @param contentDescriptionId the text id pointing at the description
*/
public void setDocumentContentDescription(int contentDescriptionId) {
@@ -209,94 +279,112 @@ public abstract class RemoteContext {
/**
* Save a bitmap under an imageId
- * @param imageId
- * @param width
- * @param height
- * @param bitmap
+ *
+ * @param imageId the id of the image
+ * @param width the width of the image
+ * @param height the height of the image
+ * @param bitmap the bytes that represent the image
*/
public abstract void loadBitmap(int imageId, int width, int height, byte[] bitmap);
/**
* Save a string under a given id
- * @param id
- * @param text
+ *
+ * @param id the id of the string
+ * @param text the value to set
*/
public abstract void loadText(int id, String text);
/**
* Get a string given an id
- * @param id
+ *
+ * @param id the id of the string
* @return
*/
public abstract String getText(int id);
/**
* Load a float
- * @param id
- * @param value
+ *
+ * @param id id of the float
+ * @param value the value to set
*/
public abstract void loadFloat(int id, float value);
/**
- * Load a float
- * @param id
- * @param value
+ * Load a integer
+ *
+ * @param id id of the integer
+ * @param value the value to set
*/
public abstract void loadInteger(int id, int value);
+
+ public abstract void overrideInteger(int id, int value);
+
+ public abstract void overrideText(int id, int valueId);
+
/**
* Load an animated float associated with an id
* Todo: Remove?
- * @param id
- * @param animatedFloat
+ *
+ * @param id the id of the float
+ * @param animatedFloat The animated float
*/
public abstract void loadAnimatedFloat(int id, FloatExpression animatedFloat);
/**
* Save a shader under and ID
- * @param id
- * @param value
+ *
+ * @param id the id of the Shader
+ * @param value the shader
*/
public abstract void loadShader(int id, ShaderData value);
/**
* Get a float given an id
- * @param id
- * @return
+ *
+ * @param id the id of the float
+ * @return the value of the float
*/
public abstract float getFloat(int id);
/**
- * Get a float given an id
- * @param id
- * @return
+ * Get a Integer given an id
+ *
+ * @param id of the integer
+ * @return the value
*/
public abstract int getInteger(int id);
/**
* Get the color given and ID
- * @param id
- * @return
+ *
+ * @param id of the color
+ * @return the color
*/
public abstract int getColor(int id);
/**
* called to notify system that a command is interested in a variable
- * @param id
- * @param variableSupport
+ *
+ * @param id track when this id changes value
+ * @param variableSupport call back when value changes
*/
public abstract void listensTo(int id, VariableSupport variableSupport);
/**
* Notify commands with variables have changed
- * @return
+ *
+ * @return the number of ms to next update
*/
public abstract int updateOps();
/**
* Get a shader given the id
- * @param id
- * @return
+ *
+ * @param id get a shader given the id
+ * @return The shader
*/
public abstract ShaderData getShader(int id);
@@ -352,6 +440,55 @@ public abstract class RemoteContext {
///////////////////////////////////////////////////////////////////////////////////////////////
// Click handling
///////////////////////////////////////////////////////////////////////////////////////////////
+ public static boolean isTime(float fl) {
+ int value = Utils.idFromNan(fl);
+ return value >= ID_CONTINUOUS_SEC && value <= ID_DAY_OF_MONTH;
+ }
+
+ public static float getTime(float fl) {
+ LocalDateTime dateTime = LocalDateTime.now();
+ // This define the time in the format
+ // seconds run from Midnight=0 quantized to seconds hour 0..3599
+ // minutes run from Midnight=0 quantized to minutes 0..1439
+ // hours run from Midnight=0 quantized to Hours 0-23
+ // CONTINUOUS_SEC is seconds from midnight looping every hour 0-3600
+ // CONTINUOUS_SEC is accurate to milliseconds due to float precession
+ // ID_OFFSET_TO_UTC is the offset from UTC in sec (typically / 3600f)
+ int value = Utils.idFromNan(fl);
+ int month = dateTime.getMonth().getValue();
+ int hour = dateTime.getHour();
+ int minute = dateTime.getMinute();
+ int seconds = dateTime.getSecond();
+ int currentMinute = hour * 60 + minute;
+ int currentSeconds = minute * 60 + seconds;
+ float sec = currentSeconds + dateTime.getNano() * 1E-9f;
+ int day_week = dateTime.getDayOfWeek().getValue();
+
+
+ ZoneId zone = ZoneId.systemDefault();
+ OffsetDateTime offsetDateTime = dateTime.atZone(zone).toOffsetDateTime();
+ ZoneOffset offset = offsetDateTime.getOffset();
+ switch (value) {
+ case ID_OFFSET_TO_UTC:
+ return offset.getTotalSeconds();
+ case ID_CONTINUOUS_SEC:
+ return sec;
+ case ID_TIME_IN_SEC:
+ return currentSeconds;
+ case ID_TIME_IN_MIN:
+ return currentMinute;
+ case ID_TIME_IN_HR:
+ return hour;
+ case ID_CALENDAR_MONTH:
+ case ID_DAY_OF_MONTH:
+ return month;
+ case ID_WEEK_DAY:
+ return day_week;
+ }
+ return fl;
+ }
+
+
public abstract void addClickArea(
int id,
diff --git a/core/java/com/android/internal/widget/remotecompose/core/SerializableToString.java b/core/java/com/android/internal/widget/remotecompose/core/SerializableToString.java
new file mode 100644
index 000000000000..8f9741dd4195
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/SerializableToString.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core;
+
+import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
+
+public interface SerializableToString {
+ void serializeToString(int indent, StringSerializer serializer);
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/VariableSupport.java b/core/java/com/android/internal/widget/remotecompose/core/VariableSupport.java
index d59b1bc65256..ee6d5798bdb2 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/VariableSupport.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/VariableSupport.java
@@ -17,7 +17,7 @@ package com.android.internal.widget.remotecompose.core;
/**
* Interface for operators that interact with variables
- * Threw this they register to listen to particular variables
+ * Through this they register to listen to particular variables
* and are notified when they change
*/
public interface VariableSupport {
diff --git a/core/java/com/android/internal/widget/remotecompose/core/documentation/DocumentedCompanionOperation.java b/core/java/com/android/internal/widget/remotecompose/core/documentation/DocumentedCompanionOperation.java
index 6a98b78f569d..4b84291aa5fe 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/documentation/DocumentedCompanionOperation.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/documentation/DocumentedCompanionOperation.java
@@ -15,8 +15,6 @@
*/
package com.android.internal.widget.remotecompose.core.documentation;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
-
-public interface DocumentedCompanionOperation extends CompanionOperation {
+public interface DocumentedCompanionOperation {
void documentation(DocumentationBuilder doc);
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/documentation/Operation.java b/core/java/com/android/internal/widget/remotecompose/core/documentation/Operation.java
index 643b925ae637..9ccb2be9969a 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/documentation/Operation.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/documentation/Operation.java
@@ -27,6 +27,10 @@ public class Operation {
public static final int BYTE = 6;
public static final int VALUE = 7;
public static final int LONG = 8;
+ public static final int SHORT = 9;
+
+ public static final int FLOAT_ARRAY = 10;
+ public static final int INT_ARRAY = 11;
String mCategory;
int mId;
@@ -38,7 +42,7 @@ public class Operation {
ArrayList<StringPair> mExamples = new ArrayList<>();
ArrayList<OperationField> mFields = new ArrayList<>();
-
+ String mVarSize = "";
int mExamplesWidth = 100;
int mExamplesHeight = 100;
@@ -53,6 +57,9 @@ public class Operation {
case (BYTE): return "BYTE";
case (VALUE): return "VALUE";
case (LONG): return "LONG";
+ case (SHORT): return "SHORT";
+ case (FLOAT_ARRAY): return "FLOAT[]";
+ case (INT_ARRAY): return "INT[]";
}
return "UNKNOWN";
}
@@ -88,10 +95,18 @@ public class Operation {
return mWIP;
}
+ public String getVarSize() {
+ return mVarSize;
+ }
+
public int getSizeFields() {
int size = 0;
+ mVarSize = "";
for (OperationField field : mFields) {
- size += field.getSize();
+ size += Math.max(0, field.getSize());
+ if (field.getSize() < 0) {
+ mVarSize += " + " + field.getVarSize() + " x 4";
+ }
}
return size;
}
@@ -121,6 +136,11 @@ public class Operation {
return this;
}
+ public Operation field(int type, String name, String varSize, String description) {
+ mFields.add(new OperationField(type, name, varSize, description));
+ return this;
+ }
+
public Operation possibleValues(String name, int value) {
if (!mFields.isEmpty()) {
mFields.get(mFields.size() - 1).possibleValue(name, "" + value);
diff --git a/core/java/com/android/internal/widget/remotecompose/core/documentation/OperationField.java b/core/java/com/android/internal/widget/remotecompose/core/documentation/OperationField.java
index fc73f4ed63f8..0dd3039f5f4d 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/documentation/OperationField.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/documentation/OperationField.java
@@ -21,6 +21,8 @@ public class OperationField {
int mType;
String mName;
String mDescription;
+ String mVarSize = null;
+
ArrayList<StringPair> mPossibleValues = new ArrayList<>();
public OperationField(int type, String name, String description) {
@@ -28,6 +30,14 @@ public class OperationField {
mName = name;
mDescription = description;
}
+
+ public OperationField(int type, String name, String varSize, String description) {
+ mType = type;
+ mName = name;
+ mDescription = description;
+ mVarSize = varSize;
+ }
+
public int getType() {
return mType;
}
@@ -40,18 +50,28 @@ public class OperationField {
public ArrayList<StringPair> getPossibleValues() {
return mPossibleValues;
}
+
+
public void possibleValue(String name, String value) {
mPossibleValues.add(new StringPair(name, value));
}
public boolean hasEnumeratedValues() {
return !mPossibleValues.isEmpty();
}
+
+ public String getVarSize() {
+ return mVarSize;
+ }
+
public int getSize() {
switch (mType) {
case (Operation.BYTE) : return 1;
case (Operation.INT) : return 4;
case (Operation.FLOAT) : return 4;
case (Operation.LONG) : return 8;
+ case (Operation.SHORT) : return 2;
+ case (Operation.INT_ARRAY): return -1;
+ case (Operation.FLOAT_ARRAY): return -1;
default : return 0;
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/BitmapData.java b/core/java/com/android/internal/widget/remotecompose/core/operations/BitmapData.java
index f1863225b766..58be641f608a 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/BitmapData.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/BitmapData.java
@@ -15,11 +15,16 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT_ARRAY;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.SerializableToString;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
import java.util.List;
@@ -28,15 +33,15 @@ import java.util.List;
* On getting an Image during a draw call the bitmap is compressed and saved
* in playback the image is decompressed
*/
-public class BitmapData implements Operation {
+public class BitmapData implements Operation, SerializableToString {
+ private static final int OP_CODE = Operations.DATA_BITMAP;
+ private static final String CLASS_NAME = "BitmapData";
int mImageId;
int mImageWidth;
int mImageHeight;
byte[] mBitmap;
public static final int MAX_IMAGE_DIMENSION = 8000;
- public static final Companion COMPANION = new Companion();
-
public BitmapData(int imageId, int width, int height, byte[] bitmap) {
this.mImageId = imageId;
this.mImageWidth = width;
@@ -44,9 +49,17 @@ public class BitmapData implements Operation {
this.mBitmap = bitmap;
}
+ public int getWidth() {
+ return mImageWidth;
+ }
+
+ public int getHeight() {
+ return mImageHeight;
+ }
+
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mImageId, mImageWidth, mImageHeight, mBitmap);
+ apply(buffer, mImageId, mImageWidth, mImageHeight, mBitmap);
}
@Override
@@ -54,42 +67,51 @@ public class BitmapData implements Operation {
return "BITMAP DATA " + mImageId;
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
- @Override
- public String name() {
- return "BitmapData";
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
- @Override
- public int id() {
- return Operations.DATA_BITMAP;
- }
+ public static int id() {
+ return OP_CODE;
+ }
- public void apply(WireBuffer buffer, int imageId, int width, int height, byte[] bitmap) {
- buffer.start(Operations.DATA_BITMAP);
- buffer.writeInt(imageId);
- buffer.writeInt(width);
- buffer.writeInt(height);
- buffer.writeBuffer(bitmap);
- }
+ public static void apply(WireBuffer buffer, int imageId, int width, int height, byte[] bitmap) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(imageId);
+ buffer.writeInt(width);
+ buffer.writeInt(height);
+ buffer.writeBuffer(bitmap);
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int imageId = buffer.readInt();
- int width = buffer.readInt();
- int height = buffer.readInt();
- if (width < 1
- || height < 1
- || height > MAX_IMAGE_DIMENSION
- || width > MAX_IMAGE_DIMENSION) {
- throw new RuntimeException("Dimension of image is invalid " + width + "x" + height);
- }
- byte[] bitmap = buffer.readBuffer();
- operations.add(new BitmapData(imageId, width, height, bitmap));
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int imageId = buffer.readInt();
+ int width = buffer.readInt();
+ int height = buffer.readInt();
+ if (width < 1
+ || height < 1
+ || height > MAX_IMAGE_DIMENSION
+ || width > MAX_IMAGE_DIMENSION) {
+ throw new RuntimeException("Dimension of image is invalid " + width + "x" + height);
}
+ byte[] bitmap = buffer.readBuffer();
+ operations.add(new BitmapData(imageId, width, height, bitmap));
+ }
+
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Data Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Bitmap data")
+ .field(INT, "id", "id of bitmap data")
+ .field(INT, "width",
+ "width of the image")
+ .field(INT, "height",
+ "height of the image")
+ .field(INT_ARRAY, "values", "length",
+ "Array of ints");
}
@Override
@@ -102,4 +124,9 @@ public class BitmapData implements Operation {
return indent + toString();
}
+ public void serializeToString(int indent, StringSerializer serializer) {
+ serializer.append(indent, CLASS_NAME
+ + " id " + mImageId + " (" + mImageWidth + "x" + mImageHeight + ")");
+ }
+
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/ClickArea.java b/core/java/com/android/internal/widget/remotecompose/core/operations/ClickArea.java
index a3cd1973f647..e72e24a0b85a 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/ClickArea.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ClickArea.java
@@ -15,12 +15,14 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteComposeOperation;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
@@ -28,6 +30,8 @@ import java.util.List;
* Add a click area to the document
*/
public class ClickArea implements RemoteComposeOperation {
+ private static final int OP_CODE = Operations.CLICK_AREA;
+ private static final String CLASS_NAME = "ClickArea";
int mId;
int mContentDescription;
float mLeft;
@@ -36,18 +40,16 @@ public class ClickArea implements RemoteComposeOperation {
float mBottom;
int mMetadata;
- public static final Companion COMPANION = new Companion();
-
/**
* Add a click area to the document
*
- * @param id the id of the click area, which will be reported in the listener
- * callback on the player
+ * @param id the id of the click area, which will be reported in the listener
+ * callback on the player
* @param contentDescription the content description (used for accessibility, as a textID)
- * @param left left coordinate of the area bounds
- * @param top top coordinate of the area bounds
- * @param right right coordinate of the area bounds
- * @param bottom bottom coordinate of the area bounds
+ * @param left left coordinate of the area bounds
+ * @param top top coordinate of the area bounds
+ * @param right right coordinate of the area bounds
+ * @param bottom bottom coordinate of the area bounds
* @param metadata associated metadata, user-provided (as a textID, pointing to a string)
*/
public ClickArea(int id, int contentDescription,
@@ -65,7 +67,7 @@ public class ClickArea implements RemoteComposeOperation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mId, mContentDescription, mLeft, mTop, mRight, mBottom, mMetadata);
+ apply(buffer, mId, mContentDescription, mLeft, mTop, mRight, mBottom, mMetadata);
}
@Override
@@ -89,44 +91,57 @@ public class ClickArea implements RemoteComposeOperation {
return indent + toString();
}
- public static class Companion implements CompanionOperation {
- private Companion() {}
+ public static String name() {
+ return CLASS_NAME;
+ }
- @Override
- public String name() {
- return "ClickArea";
- }
- @Override
- public int id() {
- return Operations.CLICK_AREA;
- }
+ public static int id() {
+ return OP_CODE;
+ }
- public void apply(WireBuffer buffer, int id, int contentDescription,
- float left, float top, float right, float bottom,
- int metadata) {
- buffer.start(Operations.CLICK_AREA);
- buffer.writeInt(id);
- buffer.writeInt(contentDescription);
- buffer.writeFloat(left);
- buffer.writeFloat(top);
- buffer.writeFloat(right);
- buffer.writeFloat(bottom);
- buffer.writeInt(metadata);
- }
+ public static void apply(WireBuffer buffer, int id, int contentDescription,
+ float left, float top, float right, float bottom,
+ int metadata) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(id);
+ buffer.writeInt(contentDescription);
+ buffer.writeFloat(left);
+ buffer.writeFloat(top);
+ buffer.writeFloat(right);
+ buffer.writeFloat(bottom);
+ buffer.writeInt(metadata);
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int id = buffer.readInt();
- int contentDescription = buffer.readInt();
- float left = buffer.readFloat();
- float top = buffer.readFloat();
- float right = buffer.readFloat();
- float bottom = buffer.readFloat();
- int metadata = buffer.readInt();
- ClickArea clickArea = new ClickArea(id, contentDescription,
- left, top, right, bottom, metadata);
- operations.add(clickArea);
- }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int id = buffer.readInt();
+ int contentDescription = buffer.readInt();
+ float left = buffer.readFloat();
+ float top = buffer.readFloat();
+ float right = buffer.readFloat();
+ float bottom = buffer.readFloat();
+ int metadata = buffer.readInt();
+ ClickArea clickArea = new ClickArea(id, contentDescription,
+ left, top, right, bottom, metadata);
+ operations.add(clickArea);
+ }
+
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Canvas Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Define a region you can click on")
+ .field(FLOAT, "left",
+ "The left side of the region")
+ .field(FLOAT, "top",
+ "The top of the region")
+ .field(FLOAT, "right",
+ "The right side of the region")
+ .field(FLOAT, "bottom",
+ "The bottom of the region")
+ .field(FLOAT, "metadata",
+ "user defined string accessible in callback");
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/ClipPath.java b/core/java/com/android/internal/widget/remotecompose/core/operations/ClipPath.java
index e6d5fe7043fd..d77d53cca963 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/ClipPath.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ClipPath.java
@@ -15,12 +15,14 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.PaintOperation;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
@@ -30,7 +32,8 @@ import java.util.List;
* TODO allow id 0 to mean null?
*/
public class ClipPath extends PaintOperation {
- public static final Companion COMPANION = new Companion();
+ private static final int OP_CODE = Operations.CLIP_PATH;
+ private static final String CLASS_NAME = "ClipPath";
int mId;
int mRegionOp;
@@ -39,17 +42,25 @@ public class ClipPath extends PaintOperation {
mRegionOp = regionOp;
}
- public static final int REPLACE = Companion.PATH_CLIP_REPLACE;
- public static final int DIFFERENCE = Companion.PATH_CLIP_DIFFERENCE;
- public static final int INTERSECT = Companion.PATH_CLIP_INTERSECT;
- public static final int UNION = Companion.PATH_CLIP_UNION;
- public static final int XOR = Companion.PATH_CLIP_XOR;
- public static final int REVERSE_DIFFERENCE = Companion.PATH_CLIP_REVERSE_DIFFERENCE;
- public static final int UNDEFINED = Companion.PATH_CLIP_UNDEFINED;
+ public static final int PATH_CLIP_REPLACE = 0;
+ public static final int PATH_CLIP_DIFFERENCE = 1;
+ public static final int PATH_CLIP_INTERSECT = 2;
+ public static final int PATH_CLIP_UNION = 3;
+ public static final int PATH_CLIP_XOR = 4;
+ public static final int PATH_CLIP_REVERSE_DIFFERENCE = 5;
+ public static final int PATH_CLIP_UNDEFINED = 6;
+
+ public static final int REPLACE = PATH_CLIP_REPLACE;
+ public static final int DIFFERENCE = PATH_CLIP_DIFFERENCE;
+ public static final int INTERSECT = PATH_CLIP_INTERSECT;
+ public static final int UNION = PATH_CLIP_UNION;
+ public static final int XOR = PATH_CLIP_XOR;
+ public static final int REVERSE_DIFFERENCE = PATH_CLIP_REVERSE_DIFFERENCE;
+ public static final int UNDEFINED = PATH_CLIP_UNDEFINED;
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mId);
+ apply(buffer, mId);
}
@Override
@@ -57,43 +68,40 @@ public class ClipPath extends PaintOperation {
return "ClipPath " + mId + ";";
}
- public static class Companion implements CompanionOperation {
- public static final int PATH_CLIP_REPLACE = 0;
- public static final int PATH_CLIP_DIFFERENCE = 1;
- public static final int PATH_CLIP_INTERSECT = 2;
- public static final int PATH_CLIP_UNION = 3;
- public static final int PATH_CLIP_XOR = 4;
- public static final int PATH_CLIP_REVERSE_DIFFERENCE = 5;
- public static final int PATH_CLIP_UNDEFINED = 6;
-
- private Companion() {
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int pack = buffer.readInt();
- int id = pack & 0xFFFFF;
- int regionOp = pack >> 24;
- ClipPath op = new ClipPath(id, regionOp);
- operations.add(op);
- }
-
- @Override
- public String name() {
- return "ClipPath";
- }
-
- @Override
- public int id() {
- return Operations.CLIP_PATH;
- }
-
- public void apply(WireBuffer buffer, int id) {
- buffer.start(Operations.CLIP_PATH);
- buffer.writeInt(id);
- }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int pack = buffer.readInt();
+ int id = pack & 0xFFFFF;
+ int regionOp = pack >> 24;
+ ClipPath op = new ClipPath(id, regionOp);
+ operations.add(op);
+ }
+
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static void apply(WireBuffer buffer, int id) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(id);
}
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Canvas Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Intersect the current clip with the path")
+ .field(INT, "id",
+ "id of the path");
+ }
+
+
@Override
public void paint(PaintContext context) {
context.clipPath(mId, mRegionOp);
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/ClipRect.java b/core/java/com/android/internal/widget/remotecompose/core/operations/ClipRect.java
index 613ecebf9100..ec9b6fe483c9 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/ClipRect.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ClipRect.java
@@ -15,24 +15,61 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+
+import java.util.List;
/**
* Support clip with a rectangle
*/
public class ClipRect extends DrawBase4 {
- public static final Companion COMPANION =
- new Companion(Operations.CLIP_RECT) {
- @Override
- public Operation construct(float x1,
- float y1,
- float x2,
- float y2) {
- return new ClipRect(x1, y1, x2, y2);
- }
- };
+ public static final int OP_CODE = Operations.CLIP_RECT;
+ public static final String CLASS_NAME = "ClipRect";
+
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ Maker m = ClipRect::new;
+ read(m, buffer, operations);
+ }
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+
+ protected void write(WireBuffer buffer,
+ float v1,
+ float v2,
+ float v3,
+ float v4) {
+ apply(buffer, v1, v2, v3, v4);
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Expressions Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Intersect the current clip with rectangle")
+ .field(FLOAT, "left",
+ "The left side of the rectangle to intersect with the current clip")
+ .field(FLOAT, "top",
+ "The top of the rectangle to intersect with the current clip")
+ .field(FLOAT, "right",
+ "The right side of the rectangle to intersect with the current clip")
+ .field(FLOAT, "bottom",
+ "The bottom of the rectangle to intersect with the current clip");
+ }
+
public ClipRect(
float left,
@@ -40,11 +77,28 @@ public class ClipRect extends DrawBase4 {
float right,
float bottom) {
super(left, top, right, bottom);
- mName = "ClipRect";
+ mName = CLASS_NAME;
}
@Override
public void paint(PaintContext context) {
context.clipRect(mX1, mY1, mX2, mY2);
}
+
+ /**
+ * Writes out the clipRect to the buffer
+ *
+ * @param buffer buffer to write to
+ * @param x1 start x of DrawOval
+ * @param y1 start y of the DrawOval
+ * @param x2 end x of the DrawOval
+ * @param y2 end y of the DrawOval
+ */
+ public static void apply(WireBuffer buffer,
+ float x1,
+ float y1,
+ float x2,
+ float y2) {
+ write(buffer, OP_CODE, x1, y1, x2, y2);
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/ColorConstant.java b/core/java/com/android/internal/widget/remotecompose/core/operations/ColorConstant.java
index 15c208f2de61..2562e18b386c 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/ColorConstant.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ColorConstant.java
@@ -15,11 +15,13 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
@@ -28,9 +30,10 @@ import java.util.List;
* Mainly for colors in theming.
*/
public class ColorConstant implements Operation {
+ private static final int OP_CODE = Operations.COLOR_CONSTANT;
+ private static final String CLASS_NAME = "ColorConstant";
public int mColorId;
public int mColor;
- public static final Companion COMPANION = new Companion();
public ColorConstant(int colorId, int color) {
this.mColorId = colorId;
@@ -39,7 +42,7 @@ public class ColorConstant implements Operation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mColorId, mColor);
+ apply(buffer, mColorId, mColor);
}
@Override
@@ -47,39 +50,42 @@ public class ColorConstant implements Operation {
return "ColorConstant[" + mColorId + "] = " + Utils.colorInt(mColor) + "";
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
- @Override
- public String name() {
- return "ColorConstant";
- }
+ public static int id() {
+ return OP_CODE;
+ }
- @Override
- public int id() {
- return Operations.COLOR_CONSTANT;
- }
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer
+ * @param colorId
+ * @param color
+ */
+ public static void apply(WireBuffer buffer, int colorId, int color) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(colorId);
+ buffer.writeInt(color);
+ }
- /**
- * Writes out the operation to the buffer
- *
- * @param buffer
- * @param colorId
- * @param color
- */
- public void apply(WireBuffer buffer, int colorId, int color) {
- buffer.start(Operations.COLOR_CONSTANT);
- buffer.writeInt(colorId);
- buffer.writeInt(color);
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int colorId = buffer.readInt();
+ int color = buffer.readInt();
+ operations.add(new ColorConstant(colorId, color));
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int colorId = buffer.readInt();
- int color = buffer.readInt();
- operations.add(new ColorConstant(colorId, color));
- }
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Expressions Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Define a Color")
+ .field(INT, "id",
+ "Id of the color")
+ .field(INT, "color",
+ "32 bit ARGB color");
}
@Override
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/ColorExpression.java b/core/java/com/android/internal/widget/remotecompose/core/operations/ColorExpression.java
index 7d28cea35850..96d667465e8f 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/ColorExpression.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ColorExpression.java
@@ -15,12 +15,15 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.VariableSupport;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
@@ -34,6 +37,8 @@ import java.util.List;
* mMode = 4 H S V mode
*/
public class ColorExpression implements Operation, VariableSupport {
+ private static final int OP_CODE = Operations.COLOR_EXPRESSIONS;
+ private static final String CLASS_NAME = "ColorExpression";
public int mId;
int mMode;
public int mColor1;
@@ -52,8 +57,8 @@ public class ColorExpression implements Operation, VariableSupport {
public float mOutTween = 0.0f;
public int mOutColor1;
public int mOutColor2;
- public static final Companion COMPANION = new Companion();
public static final int HSV_MODE = 4;
+
public ColorExpression(int id, float hue, float sat, float value) {
mMode = HSV_MODE;
mAlpha = 0xFF;
@@ -64,6 +69,7 @@ public class ColorExpression implements Operation, VariableSupport {
mColor2 = Float.floatToRawIntBits(sat);
mTween = value;
}
+
public ColorExpression(int id, int alpha, float hue, float sat, float value) {
mMode = HSV_MODE;
mAlpha = alpha;
@@ -90,7 +96,6 @@ public class ColorExpression implements Operation, VariableSupport {
this.mOutTween = tween;
this.mOutColor1 = color1;
this.mOutColor2 = color2;
-
}
@Override
@@ -163,13 +168,12 @@ public class ColorExpression implements Operation, VariableSupport {
context.loadColor(mId,
Utils.interpolateColor(mOutColor1, mOutColor2, mOutTween));
}
-
}
@Override
public void write(WireBuffer buffer) {
int mode = mMode | (mAlpha << 16);
- COMPANION.apply(buffer, mId, mode, mColor1, mColor2, mTween);
+ apply(buffer, mId, mode, mColor1, mColor2, mTween);
}
@Override
@@ -187,51 +191,66 @@ public class ColorExpression implements Operation, VariableSupport {
+ Utils.floatToString(mTween) + ")";
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
- @Override
- public String name() {
- return "ColorExpression";
- }
- @Override
- public int id() {
- return Operations.COLOR_EXPRESSIONS;
- }
+ public static int id() {
+ return OP_CODE;
+ }
- /**
- * Call to write a ColorExpression object on the buffer
- * @param buffer
- * @param id of the ColorExpression object
- * @param mode if colors are id or actual values
- * @param color1
- * @param color2
- * @param tween
- */
- public void apply(WireBuffer buffer,
- int id, int mode,
- int color1, int color2, float tween) {
- buffer.start(Operations.COLOR_EXPRESSIONS);
- buffer.writeInt(id);
- buffer.writeInt(mode);
- buffer.writeInt(color1);
- buffer.writeInt(color2);
- buffer.writeFloat(tween);
+ /**
+ * Call to write a ColorExpression object on the buffer
+ *
+ * @param buffer
+ * @param id of the ColorExpression object
+ * @param mode if colors are id or actual values
+ * @param color1
+ * @param color2
+ * @param tween
+ */
+ public static void apply(WireBuffer buffer,
+ int id, int mode,
+ int color1, int color2, float tween) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(id);
+ buffer.writeInt(mode);
+ buffer.writeInt(color1);
+ buffer.writeInt(color2);
+ buffer.writeFloat(tween);
- }
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int id = buffer.readInt();
- int mode = buffer.readInt();
- int color1 = buffer.readInt();
- int color2 = buffer.readInt();
- float tween = buffer.readFloat();
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int id = buffer.readInt();
+ int mode = buffer.readInt();
+ int color1 = buffer.readInt();
+ int color2 = buffer.readInt();
+ float tween = buffer.readFloat();
+
+ operations.add(new ColorExpression(id, mode, color1, color2, tween));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Expressions Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("A Color defined by an expression")
+ .field(INT, "id", "Id of the color")
+ .field(INT, "mode", "The use of the next 3 fields")
+ .possibleValues("COLOR_COLOR_INTERPOLATE", 0)
+ .possibleValues("COLOR_ID_INTERPOLATE", 1)
+ .possibleValues("ID_COLOR_INTERPOLATE", 2)
+ .possibleValues("ID_ID_INTERPOLATE", 3)
+ .possibleValues("HSV", 4)
+ .field(INT, "color1",
+ "32 bit ARGB color")
+ .field(INT, "color2",
+ "32 bit ARGB color")
+ .field(FLOAT, "tween",
+ "32 bit ARGB color");
- operations.add(new ColorExpression(id, mode, color1, color2, tween));
- }
}
@Override
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/ComponentValue.java b/core/java/com/android/internal/widget/remotecompose/core/operations/ComponentValue.java
new file mode 100644
index 000000000000..22fe673bc072
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ComponentValue.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.operations;
+
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
+import com.android.internal.widget.remotecompose.core.Operation;
+import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.SerializableToString;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
+
+import java.util.List;
+
+public class ComponentValue implements Operation, SerializableToString {
+ public static final int OP_CODE = Operations.COMPONENT_VALUE;
+ public static final String CLASS_NAME = "ComponentValue";
+
+ public static final int WIDTH = 0;
+ public static final int HEIGHT = 1;
+
+ private int mType = WIDTH;
+ private int mComponentID = -1;
+ private int mValueId = -1;
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+ @Override
+ public String toString() {
+ return CLASS_NAME + "(" + mType + ", " + mComponentID + ", " + mValueId + ")";
+ }
+
+ public int getType() {
+ return mType;
+ }
+
+ public int getComponentId() {
+ return mComponentID;
+ }
+
+ public int getValueId() {
+ return mValueId;
+ }
+
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer, mType, mComponentID, mValueId);
+ }
+
+ @Override
+ public void apply(RemoteContext context) {
+ // Nothing
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int type = buffer.readInt();
+ int componentId = buffer.readInt();
+ int valueId = buffer.readInt();
+ ComponentValue op = new ComponentValue(type, componentId, valueId);
+ operations.add(op);
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Expressions Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Encode a component-related value (eg its width, height etc.)")
+ .field(INT, "TYPE",
+ "The type of value, either WIDTH(0) or HEIGHT(1)")
+ .field(INT, "COMPONENT_ID",
+ "The component id to reference")
+ .field(INT, "VALUE_ID",
+ "The id of the RemoteFloat representing the described"
+ + " component value, which can be used in expressions");
+ }
+
+ public ComponentValue(int type, int componentId, int valueId) {
+ mType = type;
+ mComponentID = componentId;
+ mValueId = valueId;
+ }
+
+ /**
+ * Writes out the ComponentValue to the buffer
+ *
+ * @param buffer buffer to write to
+ * @param type type of value (WIDTH or HEIGHT)
+ * @param componentId component id to reference
+ * @param valueId remote float used to represent the component value
+ */
+ public static void apply(WireBuffer buffer,
+ int type,
+ int componentId,
+ int valueId) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(type);
+ buffer.writeInt(componentId);
+ buffer.writeInt(valueId);
+ }
+
+ @Override
+ public String deepToString(String indent) {
+ return null;
+ }
+
+ public void serializeToString(int indent, StringSerializer serializer) {
+ String type = "WIDTH";
+ if (mType == HEIGHT) {
+ type = "HEIGHT";
+ }
+ serializer.append(indent, CLASS_NAME
+ + " value " + mValueId + " set to "
+ + type + " of Component " + mComponentID);
+ }
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DataListFloat.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DataListFloat.java
new file mode 100644
index 000000000000..edcb5fef7766
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DataListFloat.java
@@ -0,0 +1,127 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.operations;
+
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT_ARRAY;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
+import com.android.internal.widget.remotecompose.core.Operation;
+import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.VariableSupport;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+import com.android.internal.widget.remotecompose.core.operations.utilities.ArrayAccess;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class DataListFloat implements VariableSupport, ArrayAccess, Operation {
+ private static final int OP_CODE = Operations.FLOAT_LIST;
+ private static final String CLASS_NAME = "IdListData";
+ int mId;
+ float[] mValues;
+ private static final int MAX_FLOAT_ARRAY = 2000;
+
+ public DataListFloat(int id, float[] values) {
+ mId = id;
+ mValues = values;
+ }
+
+ @Override
+ public void updateVariables(RemoteContext context) {
+ // TODO add support for variables in arrays
+ }
+
+ @Override
+ public void registerListening(RemoteContext context) {
+ context.addCollection(mId, this);
+ for (float value : mValues) {
+ if (Utils.isVariable(value)) {
+ context.listensTo(Utils.idFromNan(value), this);
+ }
+ }
+ }
+
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer, mId, mValues);
+ }
+
+ @Override
+ public String toString() {
+ return "DataListFloat[A_" + (mId & 0xFFFF) + "] " + Arrays.toString(mValues);
+ }
+
+ public static void apply(WireBuffer buffer, int id, float[] values) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(id);
+ buffer.writeInt(values.length);
+ for (int i = 0; i < values.length; i++) {
+ buffer.writeFloat(values[i]);
+ }
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int id = buffer.readInt();
+ int len = buffer.readInt();
+ if (len > MAX_FLOAT_ARRAY) {
+ throw new RuntimeException(len + " map entries more than max = " + MAX_FLOAT_ARRAY);
+ }
+ float[] values = new float[len];
+ for (int i = 0; i < values.length; i++) {
+ values[i] = buffer.readFloat();
+ }
+ DataListFloat data = new DataListFloat(id, values);
+ operations.add(data);
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Data Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("a list of Floats")
+ .field(INT, "id", "id the array (2xxxxx)")
+ .field(INT, "length", "number of floats")
+ .field(FLOAT_ARRAY, "values", "length",
+ "array of floats");
+ }
+
+ @Override
+ public String deepToString(String indent) {
+ return indent + toString();
+ }
+
+ @Override
+ public void apply(RemoteContext context) {
+ context.addCollection(mId, this);
+ }
+
+ @Override
+ public float getFloatValue(int index) {
+ return mValues[index];
+ }
+
+ @Override
+ public float[] getFloats() {
+ return mValues;
+ }
+
+ @Override
+ public int getFloatsLength() {
+ return mValues.length;
+ }
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DataListIds.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DataListIds.java
new file mode 100644
index 000000000000..bde376e59d9c
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DataListIds.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.operations;
+
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT_ARRAY;
+
+import com.android.internal.widget.remotecompose.core.Operation;
+import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.VariableSupport;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+import com.android.internal.widget.remotecompose.core.operations.utilities.ArrayAccess;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class DataListIds implements VariableSupport, ArrayAccess, Operation {
+ private static final int OP_CODE = Operations.ID_LIST;
+ private static final String CLASS_NAME = "IdListData";
+ int mId;
+ int[] mIds;
+ float[] mValues;
+ private static final int MAX_LIST = 2000;
+
+ public DataListIds(int id, int[] ids) {
+ mId = id;
+ mIds = ids;
+ mValues = new float[ids.length];
+ }
+
+ @Override
+ public void updateVariables(RemoteContext context) {
+ for (int i = 0; i < mIds.length; i++) {
+ int id = mIds[i];
+ mValues[i] = context.getFloat(id);
+ }
+ }
+
+ @Override
+ public void registerListening(RemoteContext context) {
+ for (int mId : mIds) {
+ context.listensTo(mId, this);
+ }
+ }
+
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer, mId, mIds);
+ }
+
+ @Override
+ public String toString() {
+ return "map " + "\"" + Arrays.toString(mIds) + "\"";
+ }
+
+ public static void apply(WireBuffer buffer, int id, int[] ids) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(id);
+ buffer.writeInt(ids.length);
+ for (int i = 0; i < ids.length; i++) {
+ buffer.writeInt(ids[i]);
+ }
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int id = buffer.readInt();
+ int len = buffer.readInt();
+ if (len > MAX_LIST) {
+ throw new RuntimeException(len + " list entries more than max = " + MAX_LIST);
+ }
+ int[] ids = new int[len];
+ for (int i = 0; i < ids.length; i++) {
+ ids[i] = buffer.readInt();
+ }
+ DataListIds data = new DataListIds(id, ids);
+ operations.add(data);
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Data Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("a list of id's")
+ .field(INT, "id", "id the array")
+ .field(INT, "length", "number of ids")
+ .field(INT_ARRAY, "ids[n]", "length",
+ "ids of other variables");
+
+ }
+
+ @Override
+ public String deepToString(String indent) {
+ return indent + toString();
+ }
+
+ @Override
+ public void apply(RemoteContext context) {
+ context.addCollection(mId, this);
+ }
+
+ @Override
+ public float getFloatValue(int index) {
+ return mValues[index];
+ }
+
+ @Override
+ public float[] getFloats() {
+ return mValues;
+ }
+
+ @Override
+ public int getFloatsLength() {
+ return mValues.length;
+ }
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DataMapIds.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DataMapIds.java
new file mode 100644
index 000000000000..53143dcf8211
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DataMapIds.java
@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.operations;
+
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.UTF8;
+
+import com.android.internal.widget.remotecompose.core.Operation;
+import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.VariableSupport;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+import com.android.internal.widget.remotecompose.core.operations.utilities.ArrayAccess;
+
+import java.util.List;
+
+public class DataMapIds implements VariableSupport, ArrayAccess, Operation {
+ private static final int OP_CODE = Operations.ID_MAP;
+ private static final String CLASS_NAME = "IdMapData";
+ int mId;
+ String[] mNames;
+ int[] mIds;
+ float[] mValues;
+ private static final int MAX_MAP = 2000;
+
+ public DataMapIds(int id, String[] names, int[] ids) {
+ mId = id;
+ mNames = names;
+ mIds = ids;
+ mValues = new float[ids.length];
+
+ }
+
+ @Override
+ public void updateVariables(RemoteContext context) {
+ for (int i = 0; i < mIds.length; i++) {
+ int id = mIds[i];
+ mValues[i] = context.getFloat(id);
+ }
+ }
+
+ @Override
+ public void registerListening(RemoteContext context) {
+ for (int mId : mIds) {
+ context.listensTo(mId, this);
+ }
+ }
+
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer, mId, mNames, mIds);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder("DataMapIds ");
+ for (int i = 0; i < mNames.length; i++) {
+ if (i != 0) {
+ builder.append(" ");
+ }
+ builder.append(mNames[i]);
+ builder.append("[");
+ builder.append(mIds[i]);
+ builder.append("]");
+
+ }
+ return builder.toString();
+ }
+
+ public static void apply(WireBuffer buffer, int id, String[] names, int[] ids) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(id);
+ buffer.writeInt(names.length);
+ for (int i = 0; i < names.length; i++) {
+ buffer.writeUTF8(names[i]);
+ buffer.writeInt(ids[i]);
+ }
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int id = buffer.readInt();
+ int len = buffer.readInt();
+ if (len > MAX_MAP) {
+ throw new RuntimeException(len + " map entries more than max = " + MAX_MAP);
+ }
+ String[] names = new String[len];
+ int[] ids = new int[len];
+ for (int i = 0; i < names.length; i++) {
+ names[i] = buffer.readUTF8();
+ ids[i] = buffer.readInt();
+ }
+ DataMapIds data = new DataMapIds(id, names, ids);
+ operations.add(data);
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Data Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Encode a collection of name id pairs")
+ .field(INT, "id", "id the array")
+ .field(INT, "length", "number of entries")
+ .field(INT, "names[0]", "length",
+ "path encoded as floats")
+ .field(UTF8, "id[0]", "length",
+ "path encoded as floats");
+ }
+
+ @Override
+ public String deepToString(String indent) {
+ return indent + toString();
+ }
+
+ @Override
+ public void apply(RemoteContext context) {
+ context.addCollection(mId, this);
+ }
+
+ @Override
+ public float getFloatValue(int index) {
+ return mValues[index];
+ }
+
+ @Override
+ public float[] getFloats() {
+ return mValues;
+ }
+
+ @Override
+ public int getFloatsLength() {
+ return mValues.length;
+ }
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawArc.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawArc.java
index c1768647bde6..d37722917b27 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawArc.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawArc.java
@@ -15,23 +15,85 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+
+import java.util.List;
public class DrawArc extends DrawBase6 {
- public static final Companion COMPANION =
- new Companion(Operations.DRAW_ARC) {
- @Override
- public Operation construct(float v1,
- float v2,
- float v3,
- float v4,
- float v5,
- float v6) {
- return new DrawArc(v1, v2, v3, v4, v5, v6);
- }
- };
+ public static final int OP_CODE = Operations.DRAW_ARC;
+ private static final String CLASS_NAME = "DrawArc";
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ Maker m = DrawArc::new;
+ read(m, buffer, operations);
+ }
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ /**
+ * Writes out the operation to the buffer
+ * @param buffer the buffer to write to
+ * @param v1 The left side of the Oval
+ * @param v2 The top of the Oval
+ * @param v3 The right side of the Oval
+ * @param v4 The bottom of the Oval
+ * @param v5 Starting angle (in degrees) where the arc begins
+ * @param v6 Sweep angle (in degrees) measured clockwise
+ */
+ public static void apply(WireBuffer buffer,
+ float v1,
+ float v2,
+ float v3,
+ float v4,
+ float v5,
+ float v6) {
+ buffer.start(OP_CODE);
+ buffer.writeFloat(v1);
+ buffer.writeFloat(v2);
+ buffer.writeFloat(v3);
+ buffer.writeFloat(v4);
+ buffer.writeFloat(v5);
+ buffer.writeFloat(v6);
+ }
+
+ protected void write(WireBuffer buffer,
+ float v1,
+ float v2,
+ float v3,
+ float v4,
+ float v5,
+ float v6) {
+ apply(buffer, v1, v2, v3, v4, v5, v6);
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Canvas Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Draw the specified arc"
+ + "which will be scaled to fit inside the specified oval")
+ .field(FLOAT, "left",
+ "The left side of the Oval")
+ .field(FLOAT, "top",
+ "The top of the Oval")
+ .field(FLOAT, "right",
+ "The right side of the Oval")
+ .field(FLOAT, "bottom",
+ "The bottom of the Oval")
+ .field(FLOAT, "startAngle",
+ "Starting angle (in degrees) where the arc begins")
+ .field(FLOAT, "sweepAngle",
+ "Sweep angle (in degrees) measured clockwise");
+ }
+
public DrawArc(float v1,
float v2,
@@ -43,7 +105,6 @@ public class DrawArc extends DrawBase6 {
mName = "DrawArc";
}
- @Override
public void paint(PaintContext context) {
context.drawArc(mV1, mV2, mV3, mV4, mV5, mV6);
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase2.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase2.java
index 0963c1337b70..97eb76bfaaa9 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase2.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase2.java
@@ -17,9 +17,7 @@ package com.android.internal.widget.remotecompose.core.operations;
import static com.android.internal.widget.remotecompose.core.operations.Utils.floatToString;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
import com.android.internal.widget.remotecompose.core.Operation;
-import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintOperation;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.VariableSupport;
@@ -32,14 +30,6 @@ import java.util.List;
*/
public abstract class DrawBase2 extends PaintOperation
implements VariableSupport {
- public static final Companion COMPANION =
- new Companion(Operations.DRAW_CIRCLE) {
- @Override
- public Operation construct(float x1, float y1) {
- // subclass should return new DrawX(x1, y1);
- return null;
- }
- };
protected String mName = "DrawRectBase";
float mV1;
float mV2;
@@ -71,9 +61,17 @@ public abstract class DrawBase2 extends PaintOperation
}
}
+
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mV1, mV2);
+ write(buffer, mV1, mV2);
+ }
+
+ protected abstract void write(WireBuffer buffer, float v1, float v2);
+
+ protected interface Maker {
+ DrawBase2 create(float v1,
+ float v2);
}
@Override
@@ -81,54 +79,42 @@ public abstract class DrawBase2 extends PaintOperation
return mName + " " + floatToString(mV1) + " " + floatToString(mV2);
}
- public static class Companion implements CompanionOperation {
- public final int OP_CODE;
- protected Companion(int code) {
- OP_CODE = code;
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- float v1 = buffer.readFloat();
- float v2 = buffer.readFloat();
+ public static void read(Maker maker, WireBuffer buffer, List<Operation> operations) {
+ float v1 = buffer.readFloat();
+ float v2 = buffer.readFloat();
- Operation op = construct(v1, v2);
- operations.add(op);
- }
+ Operation op = maker.create(v1, v2);
+ operations.add(op);
+ }
- /**
- * Override to construct a 2 float value operation
- * @param x1
- * @param y1
- * @return
- */
- public Operation construct(float x1, float y1) {
- return null;
- }
+ /**
+ * Override to construct a 2 float value operation
+ *
+ * @param x1
+ * @param y1
+ * @return
+ */
+ public Operation construct(float x1, float y1) {
+ return null;
+ }
- @Override
- public String name() {
- return "DrawRect";
- }
- @Override
- public int id() {
- return OP_CODE;
- }
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer
+ * @param opCode
+ * @param x1
+ * @param y1
+ */
+ protected static void write(WireBuffer buffer,
+ int opCode,
+ float x1,
+ float y1) {
+ buffer.start(opCode);
+ buffer.writeFloat(x1);
+ buffer.writeFloat(y1);
- /**
- * Writes out the operation to the buffer
- * @param buffer
- * @param x1
- * @param y1
- */
- public void apply(WireBuffer buffer,
- float x1,
- float y1) {
- buffer.start(OP_CODE);
- buffer.writeFloat(x1);
- buffer.writeFloat(y1);
- }
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase3.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase3.java
index 5a4a9f3754df..2d1d3eb4b78c 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase3.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase3.java
@@ -17,9 +17,7 @@ package com.android.internal.widget.remotecompose.core.operations;
import static com.android.internal.widget.remotecompose.core.operations.Utils.floatToString;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
import com.android.internal.widget.remotecompose.core.Operation;
-import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintOperation;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.VariableSupport;
@@ -32,14 +30,7 @@ import java.util.List;
*/
public abstract class DrawBase3 extends PaintOperation
implements VariableSupport {
- public static final Companion COMPANION =
- new Companion(Operations.DRAW_CIRCLE) {
- @Override
- public Operation construct(float x1, float y1, float x2) {
- // subclass should return new DrawX(x1, y1, x2, y2);
- return null;
- }
- };
+
protected String mName = "DrawRectBase";
float mV1;
float mV2;
@@ -86,7 +77,18 @@ public abstract class DrawBase3 extends PaintOperation
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mV1, mV2, mV3);
+ write(buffer, mV1, mV2, mV3);
+ }
+
+ protected abstract void write(WireBuffer buffer,
+ float v1,
+ float v2,
+ float v3);
+
+ interface Maker {
+ DrawBase3 create(float v1,
+ float v2,
+ float v3);
}
@Override
@@ -95,63 +97,26 @@ public abstract class DrawBase3 extends PaintOperation
+ " " + floatToString(mV3);
}
- public static class Companion implements CompanionOperation {
- public final int OP_CODE;
-
- protected Companion(int code) {
- OP_CODE = code;
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- float v1 = buffer.readFloat();
- float v2 = buffer.readFloat();
- float v3 = buffer.readFloat();
-
- Operation op = construct(v1, v2, v3);
- operations.add(op);
- }
-
- /**
- * Construct and Operation from the 3 variables.
- * This must be overridden by subclasses
- * @param x1
- * @param y1
- * @param x2
- * @return
- */
- public Operation construct(float x1,
- float y1,
- float x2) {
- return null;
- }
-
- @Override
- public String name() {
- return "DrawRect";
- }
-
- @Override
- public int id() {
- return OP_CODE;
- }
-
- /**
- * Writes out the operation to the buffer
- * @param buffer
- * @param x1
- * @param y1
- * @param x2
- */
- public void apply(WireBuffer buffer,
- float x1,
- float y1,
- float x2) {
- buffer.start(OP_CODE);
- buffer.writeFloat(x1);
- buffer.writeFloat(y1);
- buffer.writeFloat(x2);
+ public static void read(Maker maker, WireBuffer buffer, List<Operation> operations) {
+ float v1 = buffer.readFloat();
+ float v2 = buffer.readFloat();
+ float v3 = buffer.readFloat();
+ Operation op = maker.create(v1, v2, v3);
+ operations.add(op);
+ }
- }
+ /**
+ * Construct and Operation from the 3 variables.
+ * This must be overridden by subclasses
+ *
+ * @param x1
+ * @param y1
+ * @param x2
+ * @return
+ */
+ public Operation construct(float x1,
+ float y1,
+ float x2) {
+ return null;
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase4.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase4.java
index 53a3aa917d0f..943c5a44b5ac 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase4.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase4.java
@@ -17,9 +17,7 @@ package com.android.internal.widget.remotecompose.core.operations;
import static com.android.internal.widget.remotecompose.core.operations.Utils.floatToString;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
import com.android.internal.widget.remotecompose.core.Operation;
-import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintOperation;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.VariableSupport;
@@ -32,14 +30,6 @@ import java.util.List;
*/
public abstract class DrawBase4 extends PaintOperation
implements VariableSupport {
- public static final Companion COMPANION =
- new Companion(Operations.DRAW_RECT) {
- @Override
- public Operation construct(float x1, float y1, float x2, float y2) {
- // return new DrawRectBase(x1, y1, x2, y2);
- return null;
- }
- };
protected String mName = "DrawRectBase";
protected float mX1;
protected float mY1;
@@ -96,7 +86,20 @@ public abstract class DrawBase4 extends PaintOperation
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mX1, mY1, mX2, mY2);
+ write(buffer, mX1, mY1, mX2, mY2);
+ }
+
+ protected abstract void write(WireBuffer buffer,
+ float v1,
+ float v2,
+ float v3,
+ float v4);
+
+ protected interface Maker {
+ DrawBase4 create(float v1,
+ float v2,
+ float v3,
+ float v4);
}
@Override
@@ -105,67 +108,54 @@ public abstract class DrawBase4 extends PaintOperation
+ " " + floatToString(mX2Value, mX2) + " " + floatToString(mY2Value, mY2);
}
- public static class Companion implements CompanionOperation {
- public final int OP_CODE;
-
- protected Companion(int code) {
- OP_CODE = code;
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- float sLeft = buffer.readFloat();
- float srcTop = buffer.readFloat();
- float srcRight = buffer.readFloat();
- float srcBottom = buffer.readFloat();
-
- Operation op = construct(sLeft, srcTop, srcRight, srcBottom);
- operations.add(op);
- }
+ public static void read(Maker maker, WireBuffer buffer, List<Operation> operations) {
+ float v1 = buffer.readFloat();
+ float v2 = buffer.readFloat();
+ float v3 = buffer.readFloat();
+ float v4 = buffer.readFloat();
- /**
- * Construct and Operation from the 3 variables.
- * @param x1
- * @param y1
- * @param x2
- * @param y2
- * @return
- */
- public Operation construct(float x1,
- float y1,
- float x2,
- float y2) {
- return null;
- }
+ Operation op = maker.create(v1, v2, v3, v4);
+ operations.add(op);
+ }
- @Override
- public String name() {
- return "DrawRect";
- }
+ /**
+ * Construct and Operation from the 3 variables.
+ *
+ * @param x1
+ * @param y1
+ * @param x2
+ * @param y2
+ * @return
+ */
+ public Operation construct(float x1,
+ float y1,
+ float x2,
+ float y2) {
+ return null;
+ }
- @Override
- public int id() {
- return OP_CODE;
- }
- /**
- * Writes out the operation to the buffer
- * @param buffer
- * @param x1
- * @param y1
- * @param x2
- * @param y2
- */
- public void apply(WireBuffer buffer,
- float x1,
- float y1,
- float x2,
- float y2) {
- buffer.start(OP_CODE);
- buffer.writeFloat(x1);
- buffer.writeFloat(y1);
- buffer.writeFloat(x2);
- buffer.writeFloat(y2);
- }
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer
+ * @param opCode
+ * @param x1
+ * @param y1
+ * @param x2
+ * @param y2
+ */
+ protected static void write(WireBuffer buffer,
+ int opCode,
+ float x1,
+ float y1,
+ float x2,
+ float y2) {
+ buffer.start(opCode);
+ buffer.writeFloat(x1);
+ buffer.writeFloat(y1);
+ buffer.writeFloat(x2);
+ buffer.writeFloat(y2);
}
}
+
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase6.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase6.java
index 2f4335e7f412..767a36d03ace 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase6.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase6.java
@@ -17,9 +17,7 @@ package com.android.internal.widget.remotecompose.core.operations;
import static com.android.internal.widget.remotecompose.core.operations.Utils.floatToString;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
import com.android.internal.widget.remotecompose.core.Operation;
-import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintOperation;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.VariableSupport;
@@ -32,13 +30,6 @@ import java.util.List;
*/
public abstract class DrawBase6 extends PaintOperation
implements VariableSupport {
- public static final Companion COMPANION =
- new Companion(Operations.DRAW_RECT) {
- public Operation construct(float x1, float y1, float x2, float y2) {
- // return new DrawRectBase(x1, y1, x2, y2);
- return null;
- }
- };
protected String mName = "DrawRectBase";
float mV1;
float mV2;
@@ -115,88 +106,67 @@ public abstract class DrawBase6 extends PaintOperation
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mV1, mV2, mV3, mV4, mV5, mV6);
+ write(buffer, mV1, mV2, mV3, mV4, mV5, mV6);
}
+ protected abstract void write(WireBuffer buffer,
+ float v1,
+ float v2,
+ float v3,
+ float v4,
+ float v5,
+ float v6);
+
@Override
public String toString() {
return mName + " " + floatToString(mV1) + " " + floatToString(mV2)
+ " " + floatToString(mV3) + " " + floatToString(mV4);
}
- public static class Companion implements CompanionOperation {
- public final int OP_CODE;
-
- protected Companion(int code) {
- OP_CODE = code;
- }
+ interface Maker {
+ DrawBase6 create(float v1,
+ float v2,
+ float v3,
+ float v4,
+ float v5,
+ float v6);
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- float sv1 = buffer.readFloat();
- float sv2 = buffer.readFloat();
- float sv3 = buffer.readFloat();
- float sv4 = buffer.readFloat();
- float sv5 = buffer.readFloat();
- float sv6 = buffer.readFloat();
-
- Operation op = construct(sv1, sv2, sv3, sv4, sv5, sv6);
- operations.add(op);
- }
+ public static void read(Maker build, WireBuffer buffer, List<Operation> operations) {
+ float sv1 = buffer.readFloat();
+ float sv2 = buffer.readFloat();
+ float sv3 = buffer.readFloat();
+ float sv4 = buffer.readFloat();
+ float sv5 = buffer.readFloat();
+ float sv6 = buffer.readFloat();
- /**
- * writes out a the operation to the buffer.
- * @param v1
- * @param v2
- * @param v3
- * @param v4
- * @param v5
- * @param v6
- * @return
- */
- public Operation construct(float v1,
- float v2,
- float v3,
- float v4,
- float v5,
- float v6) {
- return null;
- }
+ Operation op = build.create(sv1, sv2, sv3, sv4, sv5, sv6);
+ operations.add(op);
+ }
- @Override
- public String name() {
- return "DrawRect";
- }
+ /**
+ * writes out a the operation to the buffer.
+ *
+ * @param v1
+ * @param v2
+ * @param v3
+ * @param v4
+ * @param v5
+ * @param v6
+ * @return
+ */
+ public Operation construct(float v1,
+ float v2,
+ float v3,
+ float v4,
+ float v5,
+ float v6) {
+ return null;
+ }
- @Override
- public int id() {
- return OP_CODE;
- }
- /**
- * Writes out the operation to the buffer
- * @param buffer
- * @param v1
- * @param v2
- * @param v3
- * @param v4
- * @param v5
- * @param v6
- */
- public void apply(WireBuffer buffer,
- float v1,
- float v2,
- float v3,
- float v4,
- float v5,
- float v6) {
- buffer.start(OP_CODE);
- buffer.writeFloat(v1);
- buffer.writeFloat(v2);
- buffer.writeFloat(v3);
- buffer.writeFloat(v4);
- buffer.writeFloat(v5);
- buffer.writeFloat(v6);
- }
+ public static String name() {
+ return "DrawBase6";
}
+
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmap.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmap.java
index ca40d12fd3f9..2748f4c3c369 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmap.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmap.java
@@ -15,7 +15,9 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
@@ -23,11 +25,13 @@ import com.android.internal.widget.remotecompose.core.PaintOperation;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.VariableSupport;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
public class DrawBitmap extends PaintOperation implements VariableSupport {
- public static final Companion COMPANION = new Companion();
+ private static final int OP_CODE = Operations.DRAW_BITMAP;
+ private static final String CLASS_NAME = "DrawBitmap";
float mLeft;
float mTop;
float mRight;
@@ -84,7 +88,7 @@ public class DrawBitmap extends PaintOperation implements VariableSupport {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mId, mLeft, mTop, mRight, mBottom, mDescriptionId);
+ apply(buffer, mId, mLeft, mTop, mRight, mBottom, mDescriptionId);
}
@Override
@@ -93,51 +97,59 @@ public class DrawBitmap extends PaintOperation implements VariableSupport {
+ " " + mRight + " " + mBottom + ";";
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int id = buffer.readInt();
+ float sLeft = buffer.readFloat();
+ float srcTop = buffer.readFloat();
+ float srcRight = buffer.readFloat();
+ float srcBottom = buffer.readFloat();
+ int discriptionId = buffer.readInt();
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int id = buffer.readInt();
- float sLeft = buffer.readFloat();
- float srcTop = buffer.readFloat();
- float srcRight = buffer.readFloat();
- float srcBottom = buffer.readFloat();
- int discriptionId = buffer.readInt();
-
- DrawBitmap op = new DrawBitmap(id, sLeft, srcTop, srcRight, srcBottom, discriptionId);
- operations.add(op);
- }
+ DrawBitmap op = new DrawBitmap(id, sLeft, srcTop, srcRight, srcBottom, discriptionId);
+ operations.add(op);
+ }
- @Override
- public String name() {
- return "DrawOval";
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
- @Override
- public int id() {
- return Operations.DRAW_BITMAP;
- }
+ public static int id() {
+ return OP_CODE;
+ }
- public void apply(WireBuffer buffer,
- int id,
- float left,
- float top,
- float right,
- float bottom,
- int descriptionId) {
- buffer.start(Operations.DRAW_BITMAP);
- buffer.writeInt(id);
- buffer.writeFloat(left);
- buffer.writeFloat(top);
- buffer.writeFloat(right);
- buffer.writeFloat(bottom);
- buffer.writeInt(descriptionId);
- }
+ public static void apply(WireBuffer buffer,
+ int id,
+ float left,
+ float top,
+ float right,
+ float bottom,
+ int descriptionId) {
+ buffer.start(Operations.DRAW_BITMAP);
+ buffer.writeInt(id);
+ buffer.writeFloat(left);
+ buffer.writeFloat(top);
+ buffer.writeFloat(right);
+ buffer.writeFloat(bottom);
+ buffer.writeInt(descriptionId);
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Draw Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Draw a bitmap")
+ .field(INT, "id", "id of float")
+ .field(FLOAT, "left",
+ "The left side of the image")
+ .field(FLOAT, "top",
+ "The top of the image")
+ .field(FLOAT, "right",
+ "The right side of the image")
+ .field(FLOAT, "bottom",
+ "The bottom of the image")
+ .field(INT, "descriptionId", "id of string");
}
- @Override
public void paint(PaintContext context) {
context.drawBitmap(mId, mOutputLeft,
mOutputTop,
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmapInt.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmapInt.java
index c2a56e7256d6..561d52720a67 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmapInt.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmapInt.java
@@ -15,12 +15,14 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.PaintOperation;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
@@ -28,6 +30,8 @@ import java.util.List;
* Operation to draw a given cached bitmap
*/
public class DrawBitmapInt extends PaintOperation {
+ private static final int OP_CODE = Operations.DRAW_BITMAP_INT;
+ private static final String CLASS_NAME = "DrawBitmapInt";
int mImageId;
int mSrcLeft;
int mSrcTop;
@@ -38,7 +42,6 @@ public class DrawBitmapInt extends PaintOperation {
int mDstRight;
int mDstBottom;
int mContentDescId = 0;
- public static final Companion COMPANION = new Companion();
public DrawBitmapInt(int imageId,
int srcLeft,
@@ -64,7 +67,7 @@ public class DrawBitmapInt extends PaintOperation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mImageId, mSrcLeft, mSrcTop, mSrcRight, mSrcBottom,
+ apply(buffer, mImageId, mSrcLeft, mSrcTop, mSrcRight, mSrcBottom,
mDstLeft, mDstTop, mDstRight, mDstBottom, mContentDescId);
}
@@ -75,54 +78,73 @@ public class DrawBitmapInt extends PaintOperation {
+ "- " + mDstLeft + " " + mDstTop + " " + mDstRight + " " + mDstBottom + ";";
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
-
- @Override
- public String name() {
- return "DrawBitmapInt";
- }
-
- @Override
- public int id() {
- return Operations.DRAW_BITMAP;
- }
-
- public void apply(WireBuffer buffer, int imageId,
- int srcLeft, int srcTop, int srcRight, int srcBottom,
- int dstLeft, int dstTop, int dstRight, int dstBottom,
- int cdId) {
- buffer.start(Operations.DRAW_BITMAP_INT);
- buffer.writeInt(imageId);
- buffer.writeInt(srcLeft);
- buffer.writeInt(srcTop);
- buffer.writeInt(srcRight);
- buffer.writeInt(srcBottom);
- buffer.writeInt(dstLeft);
- buffer.writeInt(dstTop);
- buffer.writeInt(dstRight);
- buffer.writeInt(dstBottom);
- buffer.writeInt(cdId);
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int imageId = buffer.readInt();
- int sLeft = buffer.readInt();
- int srcTop = buffer.readInt();
- int srcRight = buffer.readInt();
- int srcBottom = buffer.readInt();
- int dstLeft = buffer.readInt();
- int dstTop = buffer.readInt();
- int dstRight = buffer.readInt();
- int dstBottom = buffer.readInt();
- int cdId = buffer.readInt();
- DrawBitmapInt op = new DrawBitmapInt(imageId, sLeft, srcTop, srcRight, srcBottom,
- dstLeft, dstTop, dstRight, dstBottom, cdId);
-
- operations.add(op);
- }
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static void apply(WireBuffer buffer, int imageId,
+ int srcLeft, int srcTop, int srcRight, int srcBottom,
+ int dstLeft, int dstTop, int dstRight, int dstBottom,
+ int cdId) {
+ buffer.start(Operations.DRAW_BITMAP_INT);
+ buffer.writeInt(imageId);
+ buffer.writeInt(srcLeft);
+ buffer.writeInt(srcTop);
+ buffer.writeInt(srcRight);
+ buffer.writeInt(srcBottom);
+ buffer.writeInt(dstLeft);
+ buffer.writeInt(dstTop);
+ buffer.writeInt(dstRight);
+ buffer.writeInt(dstBottom);
+ buffer.writeInt(cdId);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int imageId = buffer.readInt();
+ int sLeft = buffer.readInt();
+ int srcTop = buffer.readInt();
+ int srcRight = buffer.readInt();
+ int srcBottom = buffer.readInt();
+ int dstLeft = buffer.readInt();
+ int dstTop = buffer.readInt();
+ int dstRight = buffer.readInt();
+ int dstBottom = buffer.readInt();
+ int cdId = buffer.readInt();
+ DrawBitmapInt op = new DrawBitmapInt(imageId, sLeft, srcTop, srcRight, srcBottom,
+ dstLeft, dstTop, dstRight, dstBottom, cdId);
+
+ operations.add(op);
+ }
+
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Draw Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Draw a bitmap using integer coordinates")
+ .field(INT, "id", "id of bitmap")
+ .field(INT, "srcLeft",
+ "The left side of the image")
+ .field(INT, "srcTop",
+ "The top of the image")
+ .field(INT, "srcRight",
+ "The right side of the image")
+ .field(INT, "srcBottom",
+ "The bottom of the image")
+ .field(INT, "dstLeft",
+ "The left side of the image")
+ .field(INT, "dstTop",
+ "The top of the image")
+ .field(INT, "dstRight",
+ "The right side of the image")
+ .field(INT, "dstBottom",
+ "The bottom of the image")
+ .field(INT, "cdId", "id of string");
}
@Override
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawCircle.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawCircle.java
index 3a22e4f72720..e39a19171cf0 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawCircle.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawCircle.java
@@ -1,31 +1,80 @@
package com.android.internal.widget.remotecompose.core.operations;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+
+import java.util.List;
public class DrawCircle extends DrawBase3 {
- public static final Companion COMPANION =
- new Companion(Operations.DRAW_CIRCLE) {
- @Override
- public Operation construct(float x1,
- float y1,
- float x2
- ) {
- return new DrawCircle(x1, y1, x2);
- }
- };
+ private static final int OP_CODE = Operations.DRAW_CIRCLE;
+ private static final String CLASS_NAME = "DrawCircle";
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ Maker m = DrawCircle::new;
+ read(m, buffer, operations);
+ }
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Canvas Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Draw a Circle")
+ .field(FLOAT, "centerX",
+ "The x-coordinate of the center of the circle to be drawn")
+ .field(FLOAT, "centerY",
+ "The y-coordinate of the center of the circle to be drawn")
+ .field(FLOAT, "radius",
+ "The radius of the circle to be drawn");
+ }
+
+ protected void write(WireBuffer buffer,
+ float v1,
+ float v2,
+ float v3) {
+ apply(buffer, v1, v2, v3);
+ }
public DrawCircle(
float left,
float top,
float right) {
super(left, top, right);
- mName = "DrawCircle";
+ mName = CLASS_NAME;
}
@Override
public void paint(PaintContext context) {
context.drawCircle(mV1, mV2, mV3);
}
+
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer
+ * @param x1
+ * @param y1
+ * @param x2
+ */
+ public static void apply(WireBuffer buffer,
+ float x1,
+ float y1,
+ float x2) {
+ buffer.start(OP_CODE);
+ buffer.writeFloat(x1);
+ buffer.writeFloat(y1);
+ buffer.writeFloat(x2);
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawLine.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawLine.java
index c70c6eaa449d..a7276b56049f 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawLine.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawLine.java
@@ -15,20 +15,58 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
+import com.android.internal.widget.remotecompose.core.SerializableToString;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
+
+import java.util.List;
+
+public class DrawLine extends DrawBase4 implements SerializableToString {
+ private static final int OP_CODE = Operations.DRAW_LINE;
+ private static final String CLASS_NAME = "DrawLine";
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ Maker m = DrawLine::new;
+ read(m, buffer, operations);
+ }
-public class DrawLine extends DrawBase4 {
- public static final Companion COMPANION = new Companion(Operations.DRAW_LINE) {
- @Override
- public Operation construct(float x1,
- float y1,
- float x2,
- float y2) {
- return new DrawLine(x1, y1, x2, y2);
- }
- };
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Canvas Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Draw a line segment")
+ .field(FLOAT, "startX",
+ "The x-coordinate of the start point of the line")
+ .field(FLOAT, "startY",
+ "The y-coordinate of the start point of the line")
+ .field(FLOAT, "endX",
+ "The x-coordinate of the end point of the line")
+ .field(FLOAT, "endY",
+ "The y-coordinate of the end point of the line");
+ }
+
+ protected void write(WireBuffer buffer,
+ float v1,
+ float v2,
+ float v3,
+ float v4) {
+ apply(buffer, v1, v2, v3, v4);
+ }
public DrawLine(
float left,
@@ -41,10 +79,45 @@ public class DrawLine extends DrawBase4 {
@Override
public void paint(PaintContext context) {
- context.drawLine(mX1,
- mY1,
- mX2,
- mY2);
+ context.drawLine(mX1, mY1, mX2, mY2);
+ }
+
+ /**
+ * Writes out the DrawLine to the buffer
+ *
+ * @param buffer buffer to write to
+ * @param x1 start x of line
+ * @param y1 start y of the line
+ * @param x2 end x of the line
+ * @param y2 end y of the line
+ */
+ public static void apply(WireBuffer buffer,
+ float x1,
+ float y1,
+ float x2,
+ float y2) {
+ write(buffer, OP_CODE, x1, y1, x2, y2);
}
+ public void serializeToString(int indent, StringSerializer serializer) {
+ String x1 = "" + mX1;
+ if (Float.isNaN(mX1Value)) {
+ x1 = "[" + Utils.idFromNan(mX1Value) + " = " + mX1 + "]";
+ }
+ String y1 = "" + mY1;
+ if (Float.isNaN(mY1Value)) {
+ y1 = "[" + Utils.idFromNan(mY1Value) + " = " + mY1 + "]";
+ }
+ String x2 = "" + mX2;
+ if (Float.isNaN(mX2Value)) {
+ x2 = "[" + Utils.idFromNan(mX2Value) + " = " + mX2 + "]";
+ }
+ String y2 = "" + mY2;
+ if (Float.isNaN(mY2Value)) {
+ y2 = "[" + Utils.idFromNan(mY2Value) + " = " + mY2 + "]";
+ }
+ serializer.append(indent, CLASS_NAME
+ + "(" + x1 + ", " + y1 + ", " + x2 + ", " + y2 + ")"
+ );
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawOval.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawOval.java
index ba1799422e80..01761efbb9ed 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawOval.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawOval.java
@@ -15,21 +15,60 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+
+import java.util.List;
public class DrawOval extends DrawBase4 {
- public static final Companion COMPANION =
- new Companion(Operations.DRAW_OVAL) {
- @Override
- public Operation construct(float x1,
- float y1,
- float x2,
- float y2) {
- return new DrawOval(x1, y1, x2, y2);
- }
- };
+ private static final int OP_CODE = Operations.DRAW_OVAL;
+ private static final String CLASS_NAME = "DrawOval";
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ Maker m = DrawOval::new;
+ read(m, buffer, operations);
+ }
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Canvas Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Draw the specified oval")
+ .field(FLOAT, "left",
+ "The left side of the oval")
+ .field(FLOAT, "top",
+ "The top of the oval")
+ .field(FLOAT, "right",
+ "The right side of the oval")
+ .field(FLOAT, "bottom",
+ "The bottom of the oval");
+ }
+
+ protected void write(WireBuffer buffer,
+ float v1,
+ float v2,
+ float v3,
+ float v4) {
+ apply(buffer, v1, v2, v3, v4);
+ }
+
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer, mX1, mY1, mX2, mY2);
+ }
public DrawOval(
float left,
@@ -37,11 +76,27 @@ public class DrawOval extends DrawBase4 {
float right,
float bottom) {
super(left, top, right, bottom);
- mName = "DrawOval";
+ mName = CLASS_NAME;
}
@Override
public void paint(PaintContext context) {
context.drawOval(mX1, mY1, mX2, mY2);
}
+ /**
+ * Writes out the DrawOval to the buffer
+ *
+ * @param buffer buffer to write to
+ * @param x1 start x of DrawOval
+ * @param y1 start y of the DrawOval
+ * @param x2 end x of the DrawOval
+ * @param y2 end y of the DrawOval
+ */
+ public static void apply(WireBuffer buffer,
+ float x1,
+ float y1,
+ float x2,
+ float y2) {
+ write(buffer, OP_CODE, x1, y1, x2, y2);
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawPath.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawPath.java
index 6dbc5a628c98..bc2c53a9a5ba 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawPath.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawPath.java
@@ -15,17 +15,21 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.PaintOperation;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
public class DrawPath extends PaintOperation {
- public static final Companion COMPANION = new Companion();
+ private static final int OP_CODE = Operations.DRAW_PATH;
+ private static final String CLASS_NAME = "DrawPath";
+
int mId;
float mStart = 0;
float mEnd = 1;
@@ -36,7 +40,7 @@ public class DrawPath extends PaintOperation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mId);
+ apply(buffer, mId);
}
@Override
@@ -44,33 +48,36 @@ public class DrawPath extends PaintOperation {
return "DrawPath " + "[" + mId + "]" + ", " + mStart + ", " + mEnd;
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int id = buffer.readInt();
- DrawPath op = new DrawPath(id);
- operations.add(op);
- }
-
- @Override
- public String name() {
- return "DrawPath";
- }
-
- @Override
- public int id() {
- return Operations.DRAW_PATH;
- }
-
- public void apply(WireBuffer buffer, int id) {
- buffer.start(Operations.DRAW_PATH);
- buffer.writeInt(id);
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int id = buffer.readInt();
+ DrawPath op = new DrawPath(id);
+ operations.add(op);
}
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+
+ public static int id() {
+ return Operations.DRAW_PATH;
+ }
+
+ public static void apply(WireBuffer buffer, int id) {
+ buffer.start(Operations.DRAW_PATH);
+ buffer.writeInt(id);
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Draw Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Draw a bitmap using integer coordinates")
+ .field(INT, "id", "id of path");
+ }
+
+
@Override
public void paint(PaintContext context) {
context.drawPath(mId, mStart, mEnd);
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawRect.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawRect.java
index 633aed4a4dbe..ad17fe743b76 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawRect.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawRect.java
@@ -15,24 +15,60 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+
+import java.util.List;
/**
* Draw a Rectangle
*/
public class DrawRect extends DrawBase4 {
- public static final Companion COMPANION =
- new Companion(Operations.DRAW_RECT) {
- @Override
- public Operation construct(float x1,
- float y1,
- float x2,
- float y2) {
- return new DrawRect(x1, y1, x2, y2);
- }
- };
+ private static final int OP_CODE = Operations.DRAW_RECT;
+ private static final String CLASS_NAME = "DrawRect";
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ Maker m = DrawRect::new;
+ read(m, buffer, operations);
+ }
+
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Canvas Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Draw the specified rectangle")
+ .field(FLOAT, "left",
+ "The left side of the rectangle")
+ .field(FLOAT, "top",
+ "The top of the rectangle")
+ .field(FLOAT, "right",
+ "The right side of the rectangle")
+ .field(FLOAT, "bottom",
+ "The bottom of the rectangle");
+ }
+
+
+ protected void write(WireBuffer buffer,
+ float v1,
+ float v2,
+ float v3,
+ float v4) {
+ apply(buffer, v1, v2, v3, v4);
+ }
public DrawRect(
float left,
@@ -40,7 +76,7 @@ public class DrawRect extends DrawBase4 {
float right,
float bottom) {
super(left, top, right, bottom);
- mName = "DrawRect";
+ mName = CLASS_NAME;
}
@Override
@@ -48,4 +84,20 @@ public class DrawRect extends DrawBase4 {
context.drawRect(mX1, mY1, mX2, mY2);
}
+ /**
+ * Writes out the DrawRect to the buffer
+ *
+ * @param buffer buffer to write to
+ * @param x1 left x of rect
+ * @param y1 top y of the rect
+ * @param x2 right x of the rect
+ * @param y2 bottom y of the rect
+ */
+ public static void apply(WireBuffer buffer,
+ float x1,
+ float y1,
+ float x2,
+ float y2) {
+ write(buffer, OP_CODE, x1, y1, x2, y2);
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawRoundRect.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawRoundRect.java
index b9d0a6728b95..908e03a5191c 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawRoundRect.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawRoundRect.java
@@ -15,26 +15,89 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+
+import java.util.List;
/**
* Draw a rounded rectangle
*/
public class DrawRoundRect extends DrawBase6 {
- public static final Companion COMPANION =
- new Companion(Operations.DRAW_ROUND_RECT) {
- @Override
- public Operation construct(float v1,
- float v2,
- float v3,
- float v4,
- float v5,
- float v6) {
- return new DrawRoundRect(v1, v2, v3, v4, v5, v6);
- }
- };
+ private static final int OP_CODE = Operations.DRAW_ROUND_RECT;
+ private static final String CLASS_NAME = "DrawRoundRect";
+
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ Maker m = DrawRoundRect::new;
+ read(m, buffer, operations);
+ }
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer The buffer to write to
+ * @param v1 The left side of the rect
+ * @param v2 The top of the rect
+ * @param v3 The right side of the rect
+ * @param v4 The bottom of the rect
+ * @param v5 The x-radius of the oval used to round the corners
+ * @param v6 The y-radius of the oval used to round the corners
+ */
+ public static void apply(WireBuffer buffer,
+ float v1,
+ float v2,
+ float v3,
+ float v4,
+ float v5,
+ float v6) {
+ buffer.start(OP_CODE);
+ buffer.writeFloat(v1);
+ buffer.writeFloat(v2);
+ buffer.writeFloat(v3);
+ buffer.writeFloat(v4);
+ buffer.writeFloat(v5);
+ buffer.writeFloat(v6);
+ }
+
+ protected void write(WireBuffer buffer,
+ float v1,
+ float v2,
+ float v3,
+ float v4,
+ float v5,
+ float v6) {
+ apply(buffer, v1, v2, v3, v4, v5, v6);
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Canvas Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Draw the specified round-rect")
+ .field(FLOAT, "left",
+ "The left side of the rect")
+ .field(FLOAT, "top",
+ "The top of the rect")
+ .field(FLOAT, "right",
+ "The right side of the rect")
+ .field(FLOAT, "bottom",
+ "The bottom of the rect")
+ .field(FLOAT, "rx",
+ "The x-radius of the oval used to round the corners")
+ .field(FLOAT, "sweepAngle",
+ "The y-radius of the oval used to round the corners");
+ }
+
public DrawRoundRect(float v1,
float v2,
@@ -43,7 +106,7 @@ public class DrawRoundRect extends DrawBase6 {
float v5,
float v6) {
super(v1, v2, v3, v4, v5, v6);
- mName = "ClipRect";
+ mName = CLASS_NAME;
}
@Override
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawText.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawText.java
index f8f8afdf68cd..60dddc2d610e 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawText.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawText.java
@@ -15,20 +15,28 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.BOOLEAN;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+import static com.android.internal.widget.remotecompose.core.operations.Utils.floatToString;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.PaintOperation;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.VariableSupport;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
/**
* Draw Text
*/
-public class DrawText extends PaintOperation {
- public static final Companion COMPANION = new Companion();
+public class DrawText extends PaintOperation implements VariableSupport {
+ private static final int OP_CODE = Operations.DRAW_TEXT_RUN;
+ private static final String CLASS_NAME = "DrawText";
int mTextID;
int mStart = 0;
int mEnd = 0;
@@ -36,6 +44,8 @@ public class DrawText extends PaintOperation {
int mContextEnd = 0;
float mX = 0f;
float mY = 0f;
+ float mOutX = 0f;
+ float mOutY = 0f;
boolean mRtl = false;
public DrawText(int textID,
@@ -51,86 +61,124 @@ public class DrawText extends PaintOperation {
mEnd = end;
mContextStart = contextStart;
mContextEnd = contextEnd;
- mX = x;
- mY = y;
+ mOutX = mX = x;
+ mOutY = mY = y;
mRtl = rtl;
}
@Override
+ public void updateVariables(RemoteContext context) {
+ mOutX = (Float.isNaN(mX))
+ ? context.getFloat(Utils.idFromNan(mX)) : mX;
+ mOutY = (Float.isNaN(mY))
+ ? context.getFloat(Utils.idFromNan(mY)) : mY;
+ }
+
+ @Override
+ public void registerListening(RemoteContext context) {
+ if (Float.isNaN(mX)) {
+ context.listensTo(Utils.idFromNan(mX), this);
+ }
+ if (Float.isNaN(mY)) {
+ context.listensTo(Utils.idFromNan(mY), this);
+ }
+ }
+
+ @Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mTextID, mStart, mEnd, mContextStart, mContextEnd, mX, mY, mRtl);
+ apply(buffer, mTextID, mStart, mEnd, mContextStart, mContextEnd, mX, mY, mRtl);
}
@Override
public String toString() {
- return "DrawTextRun [" + mTextID + "] " + mStart + ", " + mEnd + ", " + mX + ", " + mY;
+ return "DrawTextRun [" + mTextID + "] " + mStart + ", " + mEnd + ", "
+ + floatToString(mX, mOutX) + ", " + floatToString(mY, mOutY);
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int text = buffer.readInt();
+ int start = buffer.readInt();
+ int end = buffer.readInt();
+ int contextStart = buffer.readInt();
+ int contextEnd = buffer.readInt();
+ float x = buffer.readFloat();
+ float y = buffer.readFloat();
+ boolean rtl = buffer.readBoolean();
+ DrawText op = new DrawText(text, start, end, contextStart, contextEnd, x, y, rtl);
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int text = buffer.readInt();
- int start = buffer.readInt();
- int end = buffer.readInt();
- int contextStart = buffer.readInt();
- int contextEnd = buffer.readInt();
- float x = buffer.readFloat();
- float y = buffer.readFloat();
- boolean rtl = buffer.readBoolean();
- DrawText op = new DrawText(text, start, end, contextStart, contextEnd, x, y, rtl);
-
- operations.add(op);
- }
+ operations.add(op);
+ }
- @Override
- public String name() {
- return "";
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
- @Override
- public int id() {
- return 0;
- }
- /**
- * Writes out the operation to the buffer
- * @param buffer
- * @param textID
- * @param start
- * @param end
- * @param contextStart
- * @param contextEnd
- * @param x
- * @param y
- * @param rtl
- */
- public void apply(WireBuffer buffer,
- int textID,
- int start,
- int end,
- int contextStart,
- int contextEnd,
- float x,
- float y,
- boolean rtl) {
- buffer.start(Operations.DRAW_TEXT_RUN);
- buffer.writeInt(textID);
- buffer.writeInt(start);
- buffer.writeInt(end);
- buffer.writeInt(contextStart);
- buffer.writeInt(contextEnd);
- buffer.writeFloat(x);
- buffer.writeFloat(y);
- buffer.writeBoolean(rtl);
- }
+ public static int id() {
+ return OP_CODE;
}
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer write the command to the buffer
+ * @param textID id of the text
+ * @param start Start position
+ * @param end end position
+ * @param contextStart start of the context
+ * @param contextEnd end of the context
+ * @param x position of where to draw
+ * @param y position of where to draw
+ * @param rtl is it Right to Left text
+ */
+ public static void apply(WireBuffer buffer,
+ int textID,
+ int start,
+ int end,
+ int contextStart,
+ int contextEnd,
+ float x,
+ float y,
+ boolean rtl) {
+ buffer.start(Operations.DRAW_TEXT_RUN);
+ buffer.writeInt(textID);
+ buffer.writeInt(start);
+ buffer.writeInt(end);
+ buffer.writeInt(contextStart);
+ buffer.writeInt(contextEnd);
+ buffer.writeFloat(x);
+ buffer.writeFloat(y);
+ buffer.writeBoolean(rtl);
+ }
+
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Draw Operations",
+ id(),
+ CLASS_NAME)
+ .description("Draw a run of text, all in a single direction")
+ .field(INT, "textId", "id of bitmap")
+ .field(INT, "start",
+ "The start of the text to render. -1=end of string")
+ .field(INT, "end",
+ "The end of the text to render")
+ .field(INT, "contextStart",
+ "the index of the start of the shaping context")
+ .field(INT, "contextEnd",
+ "the index of the end of the shaping context")
+ .field(FLOAT, "x",
+ "The x position at which to draw the text")
+ .field(FLOAT, "y",
+ "The y position at which to draw the text")
+ .field(BOOLEAN, "RTL",
+ "Whether the run is in RTL direction");
+ }
+
+
@Override
public void paint(PaintContext context) {
- context.drawTextRun(mTextID, mStart, mEnd, mContextStart, mContextEnd, mX, mY, mRtl);
+ context.drawTextRun(mTextID, mStart, mEnd, mContextStart,
+ mContextEnd, mOutX, mOutY, mRtl);
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextAnchored.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextAnchored.java
index 4f0641f34d84..242bc2575cee 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextAnchored.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextAnchored.java
@@ -15,7 +15,9 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
@@ -23,6 +25,7 @@ import com.android.internal.widget.remotecompose.core.PaintOperation;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.VariableSupport;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
@@ -30,7 +33,8 @@ import java.util.List;
* Draw Text in Anchored to a point
*/
public class DrawTextAnchored extends PaintOperation implements VariableSupport {
- public static final Companion COMPANION = new Companion();
+ private static final int OP_CODE = Operations.DRAW_TEXT_ANCHOR;
+ private static final String CLASS_NAME = "DrawTextAnchored";
int mTextID;
float mX;
float mY;
@@ -91,7 +95,7 @@ public class DrawTextAnchored extends PaintOperation implements VariableSupport
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mTextID, mX,
+ apply(buffer, mTextID, mX,
mY,
mPanX,
mPanY,
@@ -113,64 +117,77 @@ public class DrawTextAnchored extends PaintOperation implements VariableSupport
return Float.toString(v);
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int textID = buffer.readInt();
+ float x = buffer.readFloat();
+ float y = buffer.readFloat();
+ float panX = buffer.readFloat();
+ float panY = buffer.readFloat();
+ int flags = buffer.readInt();
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int textID = buffer.readInt();
- float x = buffer.readFloat();
- float y = buffer.readFloat();
- float panX = buffer.readFloat();
- float panY = buffer.readFloat();
- int flags = buffer.readInt();
-
- DrawTextAnchored op = new DrawTextAnchored(textID,
- x, y,
- panX, panY,
- flags);
-
- operations.add(op);
- }
+ DrawTextAnchored op = new DrawTextAnchored(textID,
+ x, y,
+ panX, panY,
+ flags);
- @Override
- public String name() {
- return "";
- }
+ operations.add(op);
+ }
- @Override
- public int id() {
- return 0;
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
- /**
- * Writes out the operation to the buffer
- * @param buffer
- * @param textID
- * @param x
- * @param y
- * @param panX
- * @param panY
- * @param flags
- */
- public void apply(WireBuffer buffer,
- int textID,
- float x,
- float y,
- float panX,
- float panY,
- int flags) {
- buffer.start(Operations.DRAW_TEXT_ANCHOR);
- buffer.writeInt(textID);
- buffer.writeFloat(x);
- buffer.writeFloat(y);
- buffer.writeFloat(panX);
- buffer.writeFloat(panY);
- buffer.writeInt(flags);
- }
+ public static int id() {
+ return OP_CODE;
+ }
+
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer The buffer to write to
+ * @param textID The id of the text data
+ * @param x The x-position of the anchor point
+ * @param y The y-position of the anchor point
+ * @param panX The pan from left(-1) to right(1) 0 being centered
+ * @param panY The pan from top(-1) to bottom(1) 0 being centered
+ * @param flags Change the behaviour
+ */
+ public static void apply(WireBuffer buffer,
+ int textID,
+ float x,
+ float y,
+ float panX,
+ float panY,
+ int flags) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(textID);
+ buffer.writeFloat(x);
+ buffer.writeFloat(y);
+ buffer.writeFloat(panX);
+ buffer.writeFloat(panY);
+ buffer.writeInt(flags);
}
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Draw Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Draw text centered about an anchor point")
+ .field(INT, "textId", "id of bitmap")
+ .field(FLOAT, "x",
+ "The x-position of the anchor point")
+ .field(FLOAT, "y",
+ "The y-position of the anchor point")
+ .field(FLOAT, "panX",
+ "The pan from left(-1) to right(1) 0 being centered")
+ .field(FLOAT, "panY",
+ "The pan from top(-1) to bottom(1) 0 being centered")
+ .field(INT, "flags",
+ "Change the behaviour");
+
+ }
+
+
float[] mBounds = new float[4];
private float getHorizontalOffset() {
@@ -194,8 +211,9 @@ public class DrawTextAnchored extends PaintOperation implements VariableSupport
@Override
public void paint(PaintContext context) {
- context.getTextBounds(mTextID, 0, -1,
- (mFlags & ANCHOR_MONOSPACE_MEASURE) != 0, mBounds);
+ int flags = ((mFlags & ANCHOR_MONOSPACE_MEASURE) != 0)
+ ? PaintContext.TEXT_MEASURE_MONOSPACE_WIDTH : 0;
+ context.getTextBounds(mTextID, 0, -1, flags, mBounds);
float x = mOutX + getHorizontalOffset();
float y = (Float.isNaN(mOutPanY)) ? mOutY : mOutY + getVerticalOffset();
context.drawTextRun(mTextID, 0, -1, 0, 1, x, y,
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextOnPath.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextOnPath.java
index b1a01724c315..d69362bd7a7d 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextOnPath.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextOnPath.java
@@ -15,78 +15,117 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+import static com.android.internal.widget.remotecompose.core.operations.Utils.floatToString;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.PaintOperation;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.VariableSupport;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
/**
* Draw text along a path.
*/
-public class DrawTextOnPath extends PaintOperation {
- public static final Companion COMPANION = new Companion();
+public class DrawTextOnPath extends PaintOperation implements VariableSupport {
+ private static final int OP_CODE = Operations.DRAW_TEXT_ON_PATH;
+ private static final String CLASS_NAME = "DrawTextOnPath";
int mPathId;
public int mTextId;
float mVOffset;
float mHOffset;
+ float mOutVOffset;
+ float mOutHOffset;
public DrawTextOnPath(int textId, int pathId, float hOffset, float vOffset) {
mPathId = pathId;
mTextId = textId;
- mHOffset = vOffset;
- mVOffset = hOffset;
+ mOutHOffset = mHOffset = vOffset;
+ mOutVOffset = mVOffset = hOffset;
+ }
+
+
+ @Override
+ public void updateVariables(RemoteContext context) {
+ mOutHOffset = (Float.isNaN(mHOffset))
+ ? context.getFloat(Utils.idFromNan(mHOffset)) : mHOffset;
+ mOutVOffset = (Float.isNaN(mVOffset))
+ ? context.getFloat(Utils.idFromNan(mVOffset)) : mVOffset;
+
+ }
+
+ @Override
+ public void registerListening(RemoteContext context) {
+ if (Float.isNaN(mHOffset)) {
+ context.listensTo(Utils.idFromNan(mHOffset), this);
+ }
+ if (Float.isNaN(mVOffset)) {
+ context.listensTo(Utils.idFromNan(mVOffset), this);
+ }
}
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mTextId, mPathId, mHOffset, mVOffset);
+ apply(buffer, mTextId, mPathId, mHOffset, mVOffset);
}
@Override
public String toString() {
return "DrawTextOnPath [" + mTextId + "] [" + mPathId + "] "
- + mHOffset + ", " + mVOffset;
+ + floatToString(mHOffset, mOutHOffset) + ", "
+ + floatToString(mVOffset, mOutVOffset);
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int textId = buffer.readInt();
+ int pathId = buffer.readInt();
+ float hOffset = buffer.readFloat();
+ float vOffset = buffer.readFloat();
+ DrawTextOnPath op = new DrawTextOnPath(textId, pathId, hOffset, vOffset);
+ operations.add(op);
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int textId = buffer.readInt();
- int pathId = buffer.readInt();
- float hOffset = buffer.readFloat();
- float vOffset = buffer.readFloat();
- DrawTextOnPath op = new DrawTextOnPath(textId, pathId, hOffset, vOffset);
- operations.add(op);
- }
+ public static String name() {
+ return "DrawTextOnPath";
+ }
- @Override
- public String name() {
- return "DrawTextOnPath";
- }
- @Override
- public int id() {
- return Operations.DRAW_TEXT_ON_PATH;
- }
+ public static int id() {
+ return Operations.DRAW_TEXT_ON_PATH;
+ }
- public void apply(WireBuffer buffer, int textId, int pathId, float hOffset, float vOffset) {
- buffer.start(Operations.DRAW_TEXT_ON_PATH);
- buffer.writeInt(textId);
- buffer.writeInt(pathId);
- buffer.writeFloat(hOffset);
- buffer.writeFloat(vOffset);
- }
+ public static void apply(WireBuffer buffer, int textId, int pathId,
+ float hOffset, float vOffset) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(textId);
+ buffer.writeInt(pathId);
+ buffer.writeFloat(hOffset);
+ buffer.writeFloat(vOffset);
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Draw Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Draw text along path object")
+ .field(INT, "textId",
+ "id of the text")
+ .field(INT, "pathId",
+ "id of the path")
+ .field(FLOAT, "xOffset",
+ "x Shift of the text")
+ .field(FLOAT, "yOffset",
+ "y Shift of the text");
}
@Override
public void paint(PaintContext context) {
- context.drawTextOnPath(mTextId, mPathId, mHOffset, mVOffset);
+ context.drawTextOnPath(mTextId, mPathId, mOutHOffset, mOutVOffset);
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTweenPath.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTweenPath.java
index 48fc94ee5f27..354726319c45 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTweenPath.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTweenPath.java
@@ -15,20 +15,30 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+import static com.android.internal.widget.remotecompose.core.operations.Utils.floatToString;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.PaintOperation;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.VariableSupport;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
-public class DrawTweenPath extends PaintOperation {
- public static final Companion COMPANION = new Companion();
+public class DrawTweenPath extends PaintOperation implements VariableSupport {
+ private static final int OP_CODE = Operations.DRAW_TWEEN_PATH;
+ private static final String CLASS_NAME = "DrawTweenPath";
float mTween;
float mStart;
float mStop;
+ float mOutTween;
+ float mOutStart;
+ float mOutStop;
int mPath1Id;
int mPath2Id;
@@ -38,16 +48,39 @@ public class DrawTweenPath extends PaintOperation {
float tween,
float start,
float stop) {
- mTween = tween;
- mStart = start;
- mStop = stop;
+ mOutTween = mTween = tween;
+ mOutStart = mStart = start;
+ mOutStop = mStop = stop;
mPath1Id = path1Id;
mPath2Id = path2Id;
}
@Override
+ public void updateVariables(RemoteContext context) {
+ mOutTween = (Float.isNaN(mTween))
+ ? context.getFloat(Utils.idFromNan(mTween)) : mTween;
+ mOutStart = (Float.isNaN(mStart))
+ ? context.getFloat(Utils.idFromNan(mStart)) : mStart;
+ mOutStop = (Float.isNaN(mStop))
+ ? context.getFloat(Utils.idFromNan(mStop)) : mStop;
+ }
+
+ @Override
+ public void registerListening(RemoteContext context) {
+ if (Float.isNaN(mTween)) {
+ context.listensTo(Utils.idFromNan(mTween), this);
+ }
+ if (Float.isNaN(mStart)) {
+ context.listensTo(Utils.idFromNan(mStart), this);
+ }
+ if (Float.isNaN(mStop)) {
+ context.listensTo(Utils.idFromNan(mStop), this);
+ }
+ }
+
+ @Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mPath1Id,
+ apply(buffer, mPath1Id,
mPath2Id,
mTween,
mStart,
@@ -57,58 +90,74 @@ public class DrawTweenPath extends PaintOperation {
@Override
public String toString() {
return "DrawTweenPath " + mPath1Id + " " + mPath2Id
- + " " + mTween + " " + mStart + " "
- + "- " + mStop;
+ + " " + floatToString(mTween, mOutTween) + " "
+ + floatToString(mStart, mOutStart) + " "
+ + "- " + floatToString(mStop, mOutStop);
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int path1Id = buffer.readInt();
- int path2Id = buffer.readInt();
- float tween = buffer.readFloat();
- float start = buffer.readFloat();
- float stop = buffer.readFloat();
- DrawTweenPath op = new DrawTweenPath(path1Id, path2Id,
- tween, start, stop);
- operations.add(op);
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int path1Id = buffer.readInt();
+ int path2Id = buffer.readInt();
+ float tween = buffer.readFloat();
+ float start = buffer.readFloat();
+ float stop = buffer.readFloat();
+ DrawTweenPath op = new DrawTweenPath(path1Id, path2Id,
+ tween, start, stop);
+ operations.add(op);
+ }
- @Override
- public String name() {
- return "DrawTweenPath";
- }
- @Override
- public int id() {
- return Operations.DRAW_TWEEN_PATH;
- }
+ public static String name() {
+ return "DrawTweenPath";
+ }
+
+
+ public static int id() {
+ return Operations.DRAW_TWEEN_PATH;
+ }
+
+ public static void apply(WireBuffer buffer,
+ int path1Id,
+ int path2Id,
+ float tween,
+ float start,
+ float stop) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(path1Id);
+ buffer.writeInt(path2Id);
+ buffer.writeFloat(tween);
+ buffer.writeFloat(start);
+ buffer.writeFloat(stop);
+ }
+
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Draw Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Draw text along path object")
+ .field(INT, "pathId1",
+ "id of path 1")
+ .field(INT, "pathId2",
+ "id of path 2")
+ .field(FLOAT, "tween",
+ "interpolate between the two paths")
+ .field(FLOAT, "start",
+ "trim the start of the path")
+ .field(FLOAT, "yOffset",
+ "trim the end of the path");
- public void apply(WireBuffer buffer,
- int path1Id,
- int path2Id,
- float tween,
- float start,
- float stop) {
- buffer.start(Operations.DRAW_TWEEN_PATH);
- buffer.writeInt(path1Id);
- buffer.writeInt(path2Id);
- buffer.writeFloat(tween);
- buffer.writeFloat(start);
- buffer.writeFloat(stop);
- }
}
+
@Override
public void paint(PaintContext context) {
context.drawTweenPath(mPath1Id,
mPath2Id,
- mTween,
- mStart,
- mStop);
+ mOutTween,
+ mOutStart,
+ mOutStop);
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/FloatConstant.java b/core/java/com/android/internal/widget/remotecompose/core/operations/FloatConstant.java
index 576b53f9fc6c..31b8ff6db58b 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/FloatConstant.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/FloatConstant.java
@@ -15,11 +15,14 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
@@ -27,10 +30,10 @@ import java.util.List;
* Operation to deal with Text data
*/
public class FloatConstant implements Operation {
+ private static final int OP_CODE = Operations.DATA_FLOAT;
+ private static final String CLASS_NAME = "FloatConstant";
public int mTextId;
public float mValue;
- public static final Companion COMPANION = new Companion();
- public static final int MAX_STRING_SIZE = 4000;
public FloatConstant(int textId, float value) {
this.mTextId = textId;
@@ -39,46 +42,52 @@ public class FloatConstant implements Operation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mTextId, mValue);
+ apply(buffer, mTextId, mValue);
}
@Override
public String toString() {
- return "FloatConstant[" + mTextId + "] = " + mValue + "";
+ return "FloatConstant[" + mTextId + "] = " + mValue;
+ }
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+
+ public static int id() {
+ return OP_CODE;
}
- public static class Companion implements CompanionOperation {
- private Companion() {}
-
- @Override
- public String name() {
- return "FloatExpression";
- }
-
- @Override
- public int id() {
- return Operations.DATA_FLOAT;
- }
-
- /**
- * Writes out the operation to the buffer
- * @param buffer
- * @param textId
- * @param value
- */
- public void apply(WireBuffer buffer, int textId, float value) {
- buffer.start(Operations.DATA_FLOAT);
- buffer.writeInt(textId);
- buffer.writeFloat(value);
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int textId = buffer.readInt();
-
- float value = buffer.readFloat();
- operations.add(new FloatConstant(textId, value));
- }
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer write command to this buffer
+ * @param id the id
+ * @param value the value of the float
+ */
+ public static void apply(WireBuffer buffer, int id, float value) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(id);
+ buffer.writeFloat(value);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int textId = buffer.readInt();
+
+ float value = buffer.readFloat();
+ operations.add(new FloatConstant(textId, value));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Expressions Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("A float and its associated id")
+ .field(INT, "id", "id of float")
+ .field(FLOAT, "value",
+ "32-bit float value");
+
}
@Override
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/FloatExpression.java b/core/java/com/android/internal/widget/remotecompose/core/operations/FloatExpression.java
index 354f41b813e0..e3df1eb0da26 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/FloatExpression.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/FloatExpression.java
@@ -15,13 +15,19 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT_ARRAY;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.SHORT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.VariableSupport;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import com.android.internal.widget.remotecompose.core.operations.utilities.AnimatedFloatExpression;
+import com.android.internal.widget.remotecompose.core.operations.utilities.NanMap;
import com.android.internal.widget.remotecompose.core.operations.utilities.easing.FloatAnimation;
import java.util.Arrays;
@@ -35,6 +41,8 @@ import java.util.List;
* The floats represent a RPN style calculator
*/
public class FloatExpression implements Operation, VariableSupport {
+ private static final int OP_CODE = Operations.ANIMATED_FLOAT;
+ private static final String CLASS_NAME = "FloatExpression";
public int mId;
public float[] mSrcValue;
public float[] mSrcAnimation;
@@ -42,8 +50,7 @@ public class FloatExpression implements Operation, VariableSupport {
public float[] mPreCalcValue;
private float mLastChange = Float.NaN;
AnimatedFloatExpression mExp = new AnimatedFloatExpression();
- public static final Companion COMPANION = new Companion();
- public static final int MAX_STRING_SIZE = 4000;
+ public static final int MAX_EXPRESSION_SIZE = 32;
public FloatExpression(int id, float[] value, float[] animation) {
this.mId = id;
@@ -59,11 +66,12 @@ public class FloatExpression implements Operation, VariableSupport {
if (mPreCalcValue == null || mPreCalcValue.length != mSrcValue.length) {
mPreCalcValue = new float[mSrcValue.length];
}
- //Utils.log("updateVariables ");
+
boolean value_changed = false;
for (int i = 0; i < mSrcValue.length; i++) {
float v = mSrcValue[i];
- if (Float.isNaN(v) && !AnimatedFloatExpression.isMathOperator(v)) {
+ if (Float.isNaN(v) && !AnimatedFloatExpression.isMathOperator(v)
+ && !NanMap.isDataVariable(v)) {
float newValue = context.getFloat(Utils.idFromNan(v));
if (mFloatAnimation != null) {
if (mPreCalcValue[i] != newValue) {
@@ -91,9 +99,9 @@ public class FloatExpression implements Operation, VariableSupport {
@Override
public void registerListening(RemoteContext context) {
- for (int i = 0; i < mSrcValue.length; i++) {
- float v = mSrcValue[i];
- if (Float.isNaN(v) && !AnimatedFloatExpression.isMathOperator(v)) {
+ for (float v : mSrcValue) {
+ if (Float.isNaN(v) && !AnimatedFloatExpression.isMathOperator(v)
+ && !NanMap.isDataVariable(v)) {
context.listensTo(Utils.idFromNan(v), this);
}
}
@@ -110,13 +118,14 @@ public class FloatExpression implements Operation, VariableSupport {
float f = mFloatAnimation.get(t - mLastChange);
context.loadFloat(mId, f);
} else {
- context.loadFloat(mId, mExp.eval(Arrays.copyOf(mPreCalcValue, mPreCalcValue.length)));
+ context.loadFloat(mId, mExp.eval(context.getCollectionsAccess(),
+ Arrays.copyOf(mPreCalcValue, mPreCalcValue.length)));
}
}
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mId, mSrcValue, mSrcAnimation);
+ apply(buffer, mId, mSrcValue, mSrcAnimation);
}
@Override
@@ -124,78 +133,96 @@ public class FloatExpression implements Operation, VariableSupport {
String[] labels = new String[mSrcValue.length];
for (int i = 0; i < mSrcValue.length; i++) {
if (Float.isNaN(mSrcValue[i])) {
- labels[i] = "[" + Utils.idFromNan(mSrcValue[i]) + "]";
+ labels[i] = "[" + Utils.idStringFromNan(mSrcValue[i]) + "]";
}
-
+ }
+ if (mPreCalcValue == null) {
+ return "FloatExpression[" + mId + "] = ("
+ + AnimatedFloatExpression.toString(mSrcValue, labels) + ")";
}
return "FloatExpression[" + mId + "] = ("
+ AnimatedFloatExpression.toString(mPreCalcValue, labels) + ")";
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
- @Override
- public String name() {
- return "FloatExpression";
- }
+ public static int id() {
+ return OP_CODE;
+ }
- @Override
- public int id() {
- return Operations.ANIMATED_FLOAT;
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer The buffer to write to
+ * @param id the id of the resulting float
+ * @param value the float expression array
+ * @param animation the animation expression array
+ */
+ public static void apply(WireBuffer buffer, int id, float[] value, float[] animation) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(id);
+
+ int len = value.length;
+ if (animation != null) {
+ len |= (animation.length << 16);
}
+ buffer.writeInt(len);
- /**
- * Writes out the operation to the buffer
- * @param buffer
- * @param id
- * @param value
- * @param animation
- */
- public void apply(WireBuffer buffer, int id, float[] value, float[] animation) {
- buffer.start(Operations.ANIMATED_FLOAT);
- buffer.writeInt(id);
-
- int len = value.length;
- if (animation != null) {
- len |= (animation.length << 16);
+ for (float v : value) {
+ buffer.writeFloat(v);
+ }
+ if (animation != null) {
+ for (float v : animation) {
+ buffer.writeFloat(v);
}
- buffer.writeInt(len);
+ }
- for (int i = 0; i < value.length; i++) {
- buffer.writeFloat(value[i]);
- }
- if (animation != null) {
- for (int i = 0; i < animation.length; i++) {
- buffer.writeFloat(animation[i]);
- }
- }
+ }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int id = buffer.readInt();
+ int len = buffer.readInt();
+ int valueLen = len & 0xFFFF;
+ if (valueLen > MAX_EXPRESSION_SIZE) {
+ throw new RuntimeException("Float expression to long");
+ }
+ int animLen = (len >> 16) & 0xFFFF;
+ float[] values = new float[valueLen];
+ for (int i = 0; i < values.length; i++) {
+ values[i] = buffer.readFloat();
}
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int id = buffer.readInt();
- int len = buffer.readInt();
- int valueLen = len & 0xFFFF;
- int animLen = (len >> 16) & 0xFFFF;
- float[] values = new float[valueLen];
- for (int i = 0; i < values.length; i++) {
- values[i] = buffer.readFloat();
- }
-
- float[] animation;
- if (animLen != 0) {
- animation = new float[animLen];
- for (int i = 0; i < animation.length; i++) {
- animation[i] = buffer.readFloat();
- }
- } else {
- animation = null;
+ float[] animation;
+ if (animLen != 0) {
+ animation = new float[animLen];
+ for (int i = 0; i < animation.length; i++) {
+ animation[i] = buffer.readFloat();
}
- operations.add(new FloatExpression(id, values, animation));
+ } else {
+ animation = null;
}
+ operations.add(new FloatExpression(id, values, animation));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Expressions Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("A Float expression")
+ .field(INT, "id", "The id of the Color")
+ .field(SHORT, "expression_length", "expression length")
+ .field(SHORT, "animation_length", "animation description length")
+ .field(FLOAT_ARRAY, "expression", "expression_length",
+ "Sequence of Floats representing and expression")
+ .field(FLOAT_ARRAY, "AnimationSpec", "animation_length",
+ "Sequence of Floats representing animation curve")
+ .field(FLOAT, "duration", "> time in sec")
+ .field(INT, "bits", "> WRAP|INITALVALUE | TYPE ")
+ .field(FLOAT_ARRAY, "spec", "> [SPEC PARAMETERS] ")
+ .field(FLOAT, "initialValue", "> [Initial value] ")
+ .field(FLOAT, "wrapValue", "> [Wrap value] ");
}
@Override
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/Header.java b/core/java/com/android/internal/widget/remotecompose/core/operations/Header.java
index 9a1f37b22de5..099bce886b22 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/Header.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/Header.java
@@ -24,7 +24,6 @@ import com.android.internal.widget.remotecompose.core.RemoteComposeOperation;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
-import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation;
import java.util.List;
@@ -35,6 +34,8 @@ import java.util.List;
* as the dimensions of the document in pixels.
*/
public class Header implements RemoteComposeOperation {
+ private static final int OP_CODE = Operations.HEADER;
+ private static final String CLASS_NAME = "Header";
public static final int MAJOR_VERSION = 0;
public static final int MINOR_VERSION = 1;
public static final int PATCH_VERSION = 0;
@@ -49,7 +50,6 @@ public class Header implements RemoteComposeOperation {
float mDensity;
long mCapabilities;
- public static final Companion COMPANION = new Companion();
/**
* It encodes the version of the document (following semantic versioning) as well
@@ -76,7 +76,7 @@ public class Header implements RemoteComposeOperation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mWidth, mHeight, mDensity, mCapabilities);
+ apply(buffer, mWidth, mHeight, mDensity, mCapabilities);
}
@Override
@@ -96,59 +96,51 @@ public class Header implements RemoteComposeOperation {
return toString();
}
- public static class Companion implements DocumentedCompanionOperation {
- private Companion() {
- }
-
- @Override
- public String name() {
- return "Header";
- }
-
- @Override
- public int id() {
- return Operations.HEADER;
- }
-
- public void apply(WireBuffer buffer, int width, int height,
- float density, long capabilities) {
- buffer.start(Operations.HEADER);
- buffer.writeInt(MAJOR_VERSION); // major version number of the protocol
- buffer.writeInt(MINOR_VERSION); // minor version number of the protocol
- buffer.writeInt(PATCH_VERSION); // patch version number of the protocol
- buffer.writeInt(width);
- buffer.writeInt(height);
- // buffer.writeFloat(density);
- buffer.writeLong(capabilities);
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int majorVersion = buffer.readInt();
- int minorVersion = buffer.readInt();
- int patchVersion = buffer.readInt();
- int width = buffer.readInt();
- int height = buffer.readInt();
- // float density = buffer.readFloat();
- float density = 1f;
- long capabilities = buffer.readLong();
- Header header = new Header(majorVersion, minorVersion, patchVersion,
- width, height, density, capabilities);
- operations.add(header);
- }
-
- @Override
- public void documentation(DocumentationBuilder doc) {
- doc.operation("Protocol Operations", id(), name())
- .description("Document metadata, containing the version,"
- + " original size & density, capabilities mask")
- .field(INT, "MAJOR_VERSION", "Major version")
- .field(INT, "MINOR_VERSION", "Minor version")
- .field(INT, "PATCH_VERSION", "Patch version")
- .field(INT, "WIDTH", "Major version")
- .field(INT, "HEIGHT", "Major version")
- // .field(FLOAT, "DENSITY", "Major version")
- .field(LONG, "CAPABILITIES", "Major version");
- }
+ public static String name() {
+ return CLASS_NAME;
}
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static void apply(WireBuffer buffer, int width, int height,
+ float density, long capabilities) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(MAJOR_VERSION); // major version number of the protocol
+ buffer.writeInt(MINOR_VERSION); // minor version number of the protocol
+ buffer.writeInt(PATCH_VERSION); // patch version number of the protocol
+ buffer.writeInt(width);
+ buffer.writeInt(height);
+ // buffer.writeFloat(density); TODO fix or remove
+ buffer.writeLong(capabilities);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int majorVersion = buffer.readInt();
+ int minorVersion = buffer.readInt();
+ int patchVersion = buffer.readInt();
+ int width = buffer.readInt();
+ int height = buffer.readInt();
+ // float density = buffer.readFloat();
+ float density = 1f;
+ long capabilities = buffer.readLong();
+ Header header = new Header(majorVersion, minorVersion, patchVersion,
+ width, height, density, capabilities);
+ operations.add(header);
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Protocol Operations", OP_CODE, CLASS_NAME)
+ .description("Document metadata, containing the version,"
+ + " original size & density, capabilities mask")
+ .field(INT, "MAJOR_VERSION", "Major version")
+ .field(INT, "MINOR_VERSION", "Minor version")
+ .field(INT, "PATCH_VERSION", "Patch version")
+ .field(INT, "WIDTH", "Major version")
+ .field(INT, "HEIGHT", "Major version")
+ // .field(FLOAT, "DENSITY", "Major version")
+ .field(LONG, "CAPABILITIES", "Major version");
+ }
+
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/IntegerExpression.java b/core/java/com/android/internal/widget/remotecompose/core/operations/IntegerExpression.java
index d52df5d2bcea..11730f358eaf 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/IntegerExpression.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/IntegerExpression.java
@@ -15,12 +15,15 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT_ARRAY;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.VariableSupport;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import com.android.internal.widget.remotecompose.core.operations.utilities.IntegerExpressionEvaluator;
import java.util.Arrays;
@@ -34,13 +37,14 @@ import java.util.List;
* The floats represent a RPN style calculator
*/
public class IntegerExpression implements Operation, VariableSupport {
+ private static final int OP_CODE = Operations.INTEGER_EXPRESSION;
+ private static final String CLASS_NAME = "IntegerExpression";
public int mId;
private int mMask;
private int mPreMask;
public int[] mSrcValue;
public int[] mPreCalcValue;
private float mLastChange = Float.NaN;
- public static final Companion COMPANION = new Companion();
public static final int MAX_STRING_SIZE = 4000;
IntegerExpressionEvaluator mExp = new IntegerExpressionEvaluator();
@@ -89,7 +93,7 @@ public class IntegerExpression implements Operation, VariableSupport {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mId, mMask, mSrcValue);
+ apply(buffer, mId, mMask, mSrcValue);
}
@Override
@@ -112,51 +116,57 @@ public class IntegerExpression implements Operation, VariableSupport {
return "IntegerExpression[" + mId + "] = (" + s + ")";
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
- @Override
- public String name() {
- return "FloatExpression";
- }
+ public static int id() {
+ return OP_CODE;
+ }
- @Override
- public int id() {
- return Operations.INTEGER_EXPRESSION;
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer buffer to write to
+ * @param id the id of the integer
+ * @param mask the mask bits of ints & operators or variables
+ * @param value array of integers to be evaluated
+ */
+ public static void apply(WireBuffer buffer, int id, int mask, int[] value) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(id);
+ buffer.writeInt(mask);
+ buffer.writeInt(value.length);
+ for (int opMask : value) {
+ buffer.writeInt(opMask);
}
+ }
- /**
- * Writes out the operation to the buffer
- *
- * @param buffer
- * @param id
- * @param mask
- * @param value
- */
- public void apply(WireBuffer buffer, int id, int mask, int[] value) {
- buffer.start(Operations.INTEGER_EXPRESSION);
- buffer.writeInt(id);
- buffer.writeInt(mask);
- buffer.writeInt(value.length);
- for (int i = 0; i < value.length; i++) {
- buffer.writeInt(value[i]);
- }
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int id = buffer.readInt();
+ int mask = buffer.readInt();
+ int len = buffer.readInt();
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int id = buffer.readInt();
- int mask = buffer.readInt();
- int len = buffer.readInt();
+ int[] values = new int[len];
+ for (int i = 0; i < values.length; i++) {
+ values[i] = buffer.readInt();
+ }
- int[] values = new int[len];
- for (int i = 0; i < values.length; i++) {
- values[i] = buffer.readInt();
- }
+ operations.add(new IntegerExpression(id, mask, values));
+ }
- operations.add(new IntegerExpression(id, mask, values));
- }
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Data Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Expression that computes an integer")
+ .field(INT, "id", "id of integer")
+ .field(INT, "mask",
+ "bits representing operators or other id's")
+ .field(INT, "length",
+ "length of array")
+ .field(INT_ARRAY, "values", "length",
+ "Array of ints");
}
@Override
@@ -166,8 +176,9 @@ public class IntegerExpression implements Operation, VariableSupport {
/**
* given the "i" position in the mask is this an ID
- * @param mask 32 bit mask used for defining numbers vs other
- * @param i the bit in question
+ *
+ * @param mask 32 bit mask used for defining numbers vs other
+ * @param i the bit in question
* @param value the value
* @return true if this is an ID
*/
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRestore.java b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRestore.java
index 0dad45ce356b..f3f9a5142a24 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRestore.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRestore.java
@@ -15,24 +15,30 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.PaintOperation;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
public class MatrixRestore extends PaintOperation {
- public static final Companion COMPANION = new Companion();
-
+ private static final int OP_CODE = Operations.MATRIX_RESTORE;
+ private static final String CLASS_NAME = "MatrixRestore";
public MatrixRestore() {
}
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer);
+ apply(buffer);
+ }
+
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ MatrixRestore op = new MatrixRestore();
+ operations.add(op);
}
@Override
@@ -40,32 +46,28 @@ public class MatrixRestore extends PaintOperation {
return "MatrixRestore";
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
+ public static String name() {
+ return CLASS_NAME;
+ }
- MatrixRestore op = new MatrixRestore();
- operations.add(op);
- }
- @Override
- public String name() {
- return "MatrixRestore";
- }
+ public static int id() {
+ return OP_CODE;
+ }
- @Override
- public int id() {
- return Operations.MATRIX_RESTORE;
- }
+ public static void apply(WireBuffer buffer) {
+ buffer.start(OP_CODE);
+ }
- public void apply(WireBuffer buffer) {
- buffer.start(Operations.MATRIX_RESTORE);
- }
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Canvas Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Restore the matrix and clip");
}
+
@Override
public void paint(PaintContext context) {
context.matrixRestore();
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRotate.java b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRotate.java
index bbf41351a1c5..9cc82fc05e69 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRotate.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRotate.java
@@ -15,29 +15,81 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+
+import java.util.List;
public class MatrixRotate extends DrawBase3 {
- public static final Companion COMPANION =
- new Companion(Operations.MATRIX_ROTATE) {
- @Override
- public Operation construct(float rotate,
- float pivotX,
- float pivotY
- ) {
- return new MatrixRotate(rotate, pivotX, pivotY);
- }
- };
+ public static final int OP_CODE = Operations.MATRIX_ROTATE;
+ private static final String CLASS_NAME = "MatrixRotate";
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ Maker m = new Maker() {
+ @Override
+ public DrawBase3 create(float v1, float v2, float v3) {
+ return new MatrixRotate(v1, v2, v3);
+ }
+ };
+ read(m, buffer, operations);
+ }
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Canvas Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("apply rotation to matrix")
+ .field(FLOAT, "rotate", "Angle to rotate")
+ .field(FLOAT, "pivotX", "X Pivot point")
+ .field(FLOAT, "pivotY", "Y Pivot point");
+ }
+
+
+ protected void write(WireBuffer buffer,
+ float v1,
+ float v2,
+ float v3) {
+ apply(buffer, v1, v2, v3);
+ }
public MatrixRotate(float rotate, float pivotX, float pivotY) {
super(rotate, pivotX, pivotY);
- mName = "MatrixRotate";
+ mName = CLASS_NAME;
}
@Override
public void paint(PaintContext context) {
context.matrixRotate(mV1, mV2, mV3);
}
+
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer The buffer to write into
+ * @param x1 Angle to rotate
+ * @param y1 X Pivot point
+ * @param x2 Y Pivot point
+ */
+ public static void apply(WireBuffer buffer,
+ float x1,
+ float y1,
+ float x2) {
+ buffer.start(OP_CODE);
+ buffer.writeFloat(x1);
+ buffer.writeFloat(y1);
+ buffer.writeFloat(x2);
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSave.java b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSave.java
index d3d5bfba8992..a47ed6b9f99a 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSave.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSave.java
@@ -15,25 +15,22 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.PaintOperation;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
public class MatrixSave extends PaintOperation {
- public static final Companion COMPANION = new Companion();
-
- public MatrixSave() {
-
- }
+ private static final int OP_CODE = Operations.MATRIX_SAVE;
+ private static final String CLASS_NAME = "MatrixSave";
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer);
+ apply(buffer);
}
@Override
@@ -41,30 +38,29 @@ public class MatrixSave extends PaintOperation {
return "MatrixSave;";
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ MatrixSave op = new MatrixSave();
+ operations.add(op);
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
+ public static String name() {
+ return CLASS_NAME;
+ }
- MatrixSave op = new MatrixSave();
- operations.add(op);
- }
- @Override
- public String name() {
- return "Matrix";
- }
+ public static int id() {
+ return OP_CODE;
+ }
- @Override
- public int id() {
- return Operations.MATRIX_SAVE;
- }
+ public static void apply(WireBuffer buffer) {
+ buffer.start(Operations.MATRIX_SAVE);
+ }
- public void apply(WireBuffer buffer) {
- buffer.start(Operations.MATRIX_SAVE);
- }
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Canvas Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Save the matrix and clip to a stack");
}
@Override
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixScale.java b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixScale.java
index 04b940ba16c8..769e798eb6b2 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixScale.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixScale.java
@@ -15,30 +15,81 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+
+import java.util.List;
public class MatrixScale extends DrawBase4 {
- public static final Companion COMPANION =
- new Companion(Operations.MATRIX_SCALE) {
- @Override
- public Operation construct(float scaleX,
- float scaleY,
- float centerX,
- float centerY
- ) {
- return new MatrixScale(scaleX, scaleY, centerX, centerY);
- }
- };
+ public static final int OP_CODE = Operations.MATRIX_SCALE;
+ public static final String CLASS_NAME = "MatrixScale";
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ Maker m = MatrixScale::new;
+ read(m, buffer, operations);
+ }
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+
+ protected void write(WireBuffer buffer,
+ float v1,
+ float v2,
+ float v3,
+ float v4) {
+ apply(buffer, v1, v2, v3, v4);
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Canvas Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Draw the specified Oval")
+ .field(FLOAT, "scaleX",
+ "The amount to scale in X")
+ .field(FLOAT, "scaleY",
+ "The amount to scale in Y")
+ .field(FLOAT, "pivotX",
+ "The x-coordinate for the pivot point")
+ .field(FLOAT, "pivotY",
+ "The y-coordinate for the pivot point");
+ }
public MatrixScale(float scaleX, float scaleY, float centerX, float centerY) {
super(scaleX, scaleY, centerX, centerY);
- mName = "MatrixScale";
+ mName = CLASS_NAME;
}
@Override
public void paint(PaintContext context) {
context.matrixScale(mX1, mY1, mX2, mY2);
}
+
+ /**
+ * Writes out the DrawOval to the buffer
+ *
+ * @param buffer buffer to write to
+ * @param x1 start x of DrawOval
+ * @param y1 start y of the DrawOval
+ * @param x2 end x of the DrawOval
+ * @param y2 end y of the DrawOval
+ */
+ public static void apply(WireBuffer buffer,
+ float x1,
+ float y1,
+ float x2,
+ float y2) {
+ write(buffer, OP_CODE, x1, y1, x2, y2);
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSkew.java b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSkew.java
index a3888997c758..34f71b4d1a91 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSkew.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSkew.java
@@ -15,65 +15,74 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
-import com.android.internal.widget.remotecompose.core.PaintOperation;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
-public class MatrixSkew extends PaintOperation {
- public static final Companion COMPANION = new Companion();
- float mSkewX, mSkewY;
+public class MatrixSkew extends DrawBase2 {
+ public static final int OP_CODE = Operations.MATRIX_SKEW;
+ public static final String CLASS_NAME = "MatrixSkew";
- public MatrixSkew(float skewX, float skewY) {
- mSkewX = skewX;
- mSkewY = skewY;
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ Maker m = MatrixSkew::new;
+ read(m, buffer, operations);
}
- @Override
- public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mSkewX, mSkewY);
+ public static int id() {
+ return OP_CODE;
}
- @Override
- public String toString() {
- return "DrawArc " + mSkewY + ", " + mSkewY + ";";
+ public static String name() {
+ return CLASS_NAME;
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- float skewX = buffer.readFloat();
- float skewY = buffer.readFloat();
- MatrixSkew op = new MatrixSkew(skewX, skewY);
- operations.add(op);
- }
+ protected void write(WireBuffer buffer,
+ float v1,
+ float v2) {
+ apply(buffer, v1, v2);
+ }
- @Override
- public String name() {
- return "Matrix";
- }
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Canvas Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Current matrix with the specified skew.")
+ .field(FLOAT, "skewX",
+ "The amount to skew in X")
+ .field(FLOAT, "skewY",
+ "The amount to skew in Y");
+ }
- @Override
- public int id() {
- return Operations.MATRIX_SKEW;
- }
- public void apply(WireBuffer buffer, float skewX, float skewY) {
- buffer.start(Operations.MATRIX_SKEW);
- buffer.writeFloat(skewX);
- buffer.writeFloat(skewY);
- }
+ public MatrixSkew(float skewX, float skewY) {
+ super(skewX, skewY);
+ mName = CLASS_NAME;
}
@Override
public void paint(PaintContext context) {
- context.matrixSkew(mSkewX, mSkewY);
+ context.matrixSkew(mV1, mV2);
+ }
+
+ /**
+ * Writes out the DrawOval to the buffer
+ *
+ * @param buffer buffer to write to
+ * @param x1 start x of DrawOval
+ * @param y1 start y of the DrawOval
+ */
+ public static void apply(WireBuffer buffer,
+ float x1,
+ float y1
+ ) {
+ write(buffer, OP_CODE, x1, y1);
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixTranslate.java b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixTranslate.java
index 4f34e987e064..8561343c0015 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixTranslate.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixTranslate.java
@@ -15,28 +15,71 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+
+import java.util.List;
public class MatrixTranslate extends DrawBase2 {
- public static final Companion COMPANION =
- new Companion(Operations.MATRIX_TRANSLATE) {
- @Override
- public Operation construct(float x1,
- float y1
- ) {
- return new MatrixTranslate(x1, y1);
- }
- };
+ public static final int OP_CODE = Operations.MATRIX_TRANSLATE;
+ public static final String CLASS_NAME = "MatrixTranslate";
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ Maker m = MatrixTranslate::new;
+ read(m, buffer, operations);
+ }
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+ protected void write(WireBuffer buffer,
+ float v1,
+ float v2) {
+ apply(buffer, v1, v2);
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Canvas Operations",
+ OP_CODE,
+ "MatrixTranslate")
+ .description("Preconcat the current matrix with the specified translation")
+ .field(FLOAT, "dx",
+ "The distance to translate in X")
+ .field(FLOAT, "dy",
+ "The distance to translate in Y");
+
+ }
public MatrixTranslate(float translateX, float translateY) {
super(translateX, translateY);
- mName = "MatrixTranslate";
+ mName = CLASS_NAME;
}
@Override
public void paint(PaintContext context) {
context.matrixTranslate(mV1, mV2);
}
+
+ /**
+ * Writes out the DrawOval to the buffer
+ *
+ * @param buffer buffer to write to
+ * @param x1 start x of DrawOval
+ * @param y1 start y of the DrawOval
+ */
+ public static void apply(WireBuffer buffer,
+ float x1,
+ float y1) {
+ write(buffer, OP_CODE, x1, y1);
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/NamedVariable.java b/core/java/com/android/internal/widget/remotecompose/core/operations/NamedVariable.java
index ae27f5ff450b..2cf83cd6caec 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/NamedVariable.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/NamedVariable.java
@@ -15,11 +15,14 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.UTF8;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
@@ -27,14 +30,16 @@ import java.util.List;
* Operation to deal with Text data
*/
public class NamedVariable implements Operation {
+ private static final int OP_CODE = Operations.NAMED_VARIABLE;
+ private static final String CLASS_NAME = "NamedVariable";
public int mVarId;
public String mVarName;
public int mVarType;
- public static final Companion COMPANION = new Companion();
public static final int MAX_STRING_SIZE = 4000;
public static final int COLOR_TYPE = 2;
public static final int FLOAT_TYPE = 1;
public static final int STRING_TYPE = 0;
+
public NamedVariable(int varId, int varType, String name) {
this.mVarId = varId;
this.mVarType = varType;
@@ -43,7 +48,7 @@ public class NamedVariable implements Operation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mVarId, mVarType, mVarName);
+ apply(buffer, mVarId, mVarType, mVarName);
}
@Override
@@ -52,41 +57,44 @@ public class NamedVariable implements Operation {
+ Utils.trimString(mVarName, 10) + "\" type=" + mVarType;
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
- @Override
- public String name() {
- return "TextData";
- }
+ public static int id() {
+ return OP_CODE;
+ }
- @Override
- public int id() {
- return Operations.DATA_TEXT;
- }
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer The buffer to write into
+ * @param varId id to label
+ * @param varType The type of variable
+ * @param text String
+ */
+ public static void apply(WireBuffer buffer, int varId, int varType, String text) {
+ buffer.start(Operations.NAMED_VARIABLE);
+ buffer.writeInt(varId);
+ buffer.writeInt(varType);
+ buffer.writeUTF8(text);
+ }
- /**
- * Writes out the operation to the buffer
- * @param buffer
- * @param varId
- * @param varType
- * @param text
- */
- public void apply(WireBuffer buffer, int varId, int varType, String text) {
- buffer.start(Operations.NAMED_VARIABLE);
- buffer.writeInt(varId);
- buffer.writeInt(varType);
- buffer.writeUTF8(text);
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int varId = buffer.readInt();
+ int varType = buffer.readInt();
+ String text = buffer.readUTF8(MAX_STRING_SIZE);
+ operations.add(new NamedVariable(varId, varType, text));
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int varId = buffer.readInt();
- int varType = buffer.readInt();
- String text = buffer.readUTF8(MAX_STRING_SIZE);
- operations.add(new NamedVariable(varId, varType, text));
- }
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Data Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Add a string name for an ID")
+ .field(INT, "varId", "id to label")
+ .field(INT, "varType", "The type of variable")
+ .field(UTF8, "name", "String");
}
@Override
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/PaintData.java b/core/java/com/android/internal/widget/remotecompose/core/operations/PaintData.java
index 0807bcdcfebb..ae7a89279320 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/PaintData.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/PaintData.java
@@ -15,7 +15,9 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT_ARRAY;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
@@ -23,13 +25,15 @@ import com.android.internal.widget.remotecompose.core.PaintOperation;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.VariableSupport;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle;
import java.util.List;
public class PaintData extends PaintOperation implements VariableSupport {
+ private static final int OP_CODE = Operations.PAINT_VALUES;
+ private static final String CLASS_NAME = "PaintData";
public PaintBundle mPaintData = new PaintBundle();
- public static final Companion COMPANION = new Companion();
public static final int MAX_STRING_SIZE = 4000;
public PaintData() {
@@ -47,7 +51,7 @@ public class PaintData extends PaintOperation implements VariableSupport {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mPaintData);
+ apply(buffer, mPaintData);
}
@Override
@@ -55,31 +59,34 @@ public class PaintData extends PaintOperation implements VariableSupport {
return "PaintData " + "\"" + mPaintData + "\"";
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
-
- @Override
- public String name() {
- return "TextData";
- }
-
- @Override
- public int id() {
- return Operations.PAINT_VALUES;
- }
-
- public void apply(WireBuffer buffer, PaintBundle paintBundle) {
- buffer.start(Operations.PAINT_VALUES);
- paintBundle.writeBundle(buffer);
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- PaintData data = new PaintData();
- data.mPaintData.readBundle(buffer);
- operations.add(data);
- }
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static void apply(WireBuffer buffer, PaintBundle paintBundle) {
+ buffer.start(Operations.PAINT_VALUES);
+ paintBundle.writeBundle(buffer);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ PaintData data = new PaintData();
+ data.mPaintData.readBundle(buffer);
+ operations.add(data);
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Data Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Encode a Paint ")
+ .field(INT, "length", "id string")
+ .field(INT_ARRAY, "paint", "length",
+ "path encoded as floats");
}
@Override
@@ -91,5 +98,4 @@ public class PaintData extends PaintOperation implements VariableSupport {
public void paint(PaintContext context) {
context.applyPaint(mPaintData);
}
-
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/PathData.java b/core/java/com/android/internal/widget/remotecompose/core/operations/PathData.java
index e467e7b7f31e..91352d914a99 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/PathData.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/PathData.java
@@ -15,18 +15,22 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT_ARRAY;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.VariableSupport;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.Arrays;
import java.util.List;
public class PathData implements Operation, VariableSupport {
- public static final Companion COMPANION = new Companion();
+ private static final int OP_CODE = Operations.DATA_PATH;
+ private static final String CLASS_NAME = "PathData";
int mInstanceId;
float[] mFloatPath;
float[] mOutputPath;
@@ -52,16 +56,16 @@ public class PathData implements Operation, VariableSupport {
@Override
public void registerListening(RemoteContext context) {
- for (int i = 0; i < mFloatPath.length; i++) {
- if (Float.isNaN(mFloatPath[i])) {
- context.listensTo(Utils.idFromNan(mFloatPath[i]), this);
+ for (float v : mFloatPath) {
+ if (Float.isNaN(v)) {
+ context.listensTo(Utils.idFromNan(v), this);
}
}
}
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mInstanceId, mOutputPath);
+ apply(buffer, mInstanceId, mOutputPath);
}
@Override
@@ -113,42 +117,45 @@ public class PathData implements Operation, VariableSupport {
public static final float CLOSE_NAN = Utils.asNan(CLOSE);
public static final float DONE_NAN = Utils.asNan(DONE);
- public static class Companion implements CompanionOperation {
-
- private Companion() {
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
- @Override
- public String name() {
- return "BitmapData";
- }
+ public static int id() {
+ return OP_CODE;
+ }
- @Override
- public int id() {
- return Operations.DATA_PATH;
+ public static void apply(WireBuffer buffer, int id, float[] data) {
+ buffer.start(Operations.DATA_PATH);
+ buffer.writeInt(id);
+ buffer.writeInt(data.length);
+ for (float datum : data) {
+ buffer.writeFloat(datum);
}
+ }
- public void apply(WireBuffer buffer, int id, float[] data) {
- buffer.start(Operations.DATA_PATH);
- buffer.writeInt(id);
- buffer.writeInt(data.length);
- for (int i = 0; i < data.length; i++) {
- buffer.writeFloat(data[i]);
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int imageId = buffer.readInt();
+ int len = buffer.readInt();
+ float[] data = new float[len];
+ for (int i = 0; i < data.length; i++) {
+ data[i] = buffer.readFloat();
}
+ operations.add(new PathData(imageId, data));
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int imageId = buffer.readInt();
- int len = buffer.readInt();
- float[] data = new float[len];
- for (int i = 0; i < data.length; i++) {
- data[i] = buffer.readFloat();
- }
- operations.add(new PathData(imageId, data));
- }
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Data Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Encode a Path ")
+ .field(INT, "id", "id string")
+ .field(INT, "length", "id string")
+ .field(FLOAT_ARRAY, "pathData", "length",
+ "path encoded as floats");
}
+
public static String pathString(float[] path) {
if (path == null) {
return "null";
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/RootContentBehavior.java b/core/java/com/android/internal/widget/remotecompose/core/operations/RootContentBehavior.java
index 997e8dc791ed..33f997fc7266 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/RootContentBehavior.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/RootContentBehavior.java
@@ -15,14 +15,14 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import android.util.Log;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteComposeOperation;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
@@ -33,7 +33,8 @@ import java.util.List;
* as the dimensions of the document in pixels.
*/
public class RootContentBehavior implements RemoteComposeOperation {
-
+ private static final int OP_CODE = Operations.ROOT_CONTENT_BEHAVIOR;
+ private static final String CLASS_NAME = "RootContentBehavior";
int mScroll = NONE;
int mSizing = NONE;
@@ -94,8 +95,6 @@ public class RootContentBehavior implements RemoteComposeOperation {
public static final int SCALE_CROP = 5;
public static final int SCALE_FILL_BOUNDS = 6;
- public static final Companion COMPANION = new Companion();
-
/**
* Sets the way the player handles the content
*
@@ -123,7 +122,7 @@ public class RootContentBehavior implements RemoteComposeOperation {
mScroll = scroll;
break;
default: {
- Log.e(TAG, "incorrect scroll value " + scroll);
+ System.out.println(TAG + "incorrect scroll value " + scroll);
}
}
if (alignment == ALIGNMENT_CENTER) {
@@ -140,14 +139,14 @@ public class RootContentBehavior implements RemoteComposeOperation {
if (validHorizontalAlignment && validVerticalAlignment) {
mAlignment = alignment;
} else {
- Log.e(TAG, "incorrect alignment "
+ System.out.println(TAG + "incorrect alignment "
+ " h: " + horizontalContentAlignment
+ " v: " + verticalContentAlignment);
}
}
switch (sizing) {
case SIZING_LAYOUT: {
- Log.e(TAG, "sizing_layout is not yet supported");
+ System.out.println(TAG + "sizing_layout is not yet supported");
}
break;
case SIZING_SCALE: {
@@ -155,12 +154,12 @@ public class RootContentBehavior implements RemoteComposeOperation {
}
break;
default: {
- Log.e(TAG, "incorrect sizing value " + sizing);
+ System.out.println(TAG + "incorrect sizing value " + sizing);
}
}
if (mSizing == SIZING_LAYOUT) {
if (mode != NONE) {
- Log.e(TAG, "mode for sizing layout is not yet supported");
+ System.out.println(TAG + "mode for sizing layout is not yet supported");
}
} else if (mSizing == SIZING_SCALE) {
switch (mode) {
@@ -173,7 +172,7 @@ public class RootContentBehavior implements RemoteComposeOperation {
mMode = mode;
break;
default: {
- Log.e(TAG, "incorrect mode for scale sizing, mode: " + mode);
+ System.out.println(TAG + "incorrect mode for scale sizing, mode: " + mode);
}
}
}
@@ -181,7 +180,7 @@ public class RootContentBehavior implements RemoteComposeOperation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mScroll, mAlignment, mSizing, mMode);
+ apply(buffer, mScroll, mAlignment, mSizing, mMode);
}
@Override
@@ -200,37 +199,67 @@ public class RootContentBehavior implements RemoteComposeOperation {
return toString();
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
- @Override
- public String name() {
- return "RootContentBehavior";
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
- @Override
- public int id() {
- return Operations.ROOT_CONTENT_BEHAVIOR;
- }
- public void apply(WireBuffer buffer, int scroll, int alignment, int sizing, int mode) {
- buffer.start(Operations.ROOT_CONTENT_BEHAVIOR);
- buffer.writeInt(scroll);
- buffer.writeInt(alignment);
- buffer.writeInt(sizing);
- buffer.writeInt(mode);
- }
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static void apply(WireBuffer buffer, int scroll, int alignment, int sizing, int mode) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(scroll);
+ buffer.writeInt(alignment);
+ buffer.writeInt(sizing);
+ buffer.writeInt(mode);
+ }
+
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int scroll = buffer.readInt();
+ int alignment = buffer.readInt();
+ int sizing = buffer.readInt();
+ int mode = buffer.readInt();
+ RootContentBehavior rootContentBehavior =
+ new RootContentBehavior(scroll, alignment, sizing, mode);
+ operations.add(rootContentBehavior);
+ }
+
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Protocol Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Describes the behaviour of the root")
+ .field(INT, "scroll", "scroll")
+ .possibleValues("SCROLL_HORIZONTAL", SCROLL_HORIZONTAL)
+ .possibleValues("SCROLL_VERTICAL", SCROLL_VERTICAL)
+ .field(INT, "alignment", "alignment")
+ .possibleValues("ALIGNMENT_TOP", ALIGNMENT_TOP)
+ .possibleValues("ALIGNMENT_VERTICAL_CENTER", ALIGNMENT_VERTICAL_CENTER)
+ .possibleValues("ALIGNMENT_BOTTOM", ALIGNMENT_BOTTOM)
+ .possibleValues("ALIGNMENT_START", ALIGNMENT_START)
+ .possibleValues("ALIGNMENT_START", ALIGNMENT_START)
+ .possibleValues("ALIGNMENT_END", ALIGNMENT_END)
+ .field(INT, "sizing", "sizing")
+ .possibleValues("SCALE_INSIDE", SCALE_INSIDE)
+ .possibleValues("SCALE_FIT", SCALE_FIT)
+ .possibleValues("SCALE_FILL_WIDTH", SCALE_FILL_WIDTH)
+ .possibleValues("SCALE_FILL_HEIGHT", SCALE_FILL_HEIGHT)
+ .possibleValues("SCALE_CROP", SCALE_CROP)
+ .possibleValues("SCALE_FILL_BOUNDS", SCALE_FILL_BOUNDS)
+ .field(INT, "mode", "mode")
+ .possibleValues("LAYOUT_HORIZONTAL_MATCH_PARENT", LAYOUT_HORIZONTAL_MATCH_PARENT)
+ .possibleValues("LAYOUT_HORIZONTAL_WRAP_CONTENT", LAYOUT_HORIZONTAL_WRAP_CONTENT)
+ .possibleValues("LAYOUT_HORIZONTAL_FIXED", LAYOUT_HORIZONTAL_FIXED)
+ .possibleValues("LAYOUT_VERTICAL_MATCH_PARENT", LAYOUT_VERTICAL_MATCH_PARENT)
+ .possibleValues("LAYOUT_VERTICAL_WRAP_CONTENT", LAYOUT_VERTICAL_WRAP_CONTENT)
+ .possibleValues("LAYOUT_VERTICAL_FIXED", LAYOUT_VERTICAL_FIXED)
+ .possibleValues("LAYOUT_MATCH_PARENT", LAYOUT_MATCH_PARENT)
+ .possibleValues("LAYOUT_WRAP_CONTENT", LAYOUT_WRAP_CONTENT);
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int scroll = buffer.readInt();
- int alignment = buffer.readInt();
- int sizing = buffer.readInt();
- int mode = buffer.readInt();
- RootContentBehavior rootContentBehavior =
- new RootContentBehavior(scroll, alignment, sizing, mode);
- operations.add(rootContentBehavior);
- }
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/RootContentDescription.java b/core/java/com/android/internal/widget/remotecompose/core/operations/RootContentDescription.java
index 076b28edf981..e1533eefae53 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/RootContentDescription.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/RootContentDescription.java
@@ -15,12 +15,14 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteComposeOperation;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
@@ -28,10 +30,10 @@ import java.util.List;
* Describe a content description for the document
*/
public class RootContentDescription implements RemoteComposeOperation {
+ private static final int OP_CODE = Operations.ROOT_CONTENT_DESCRIPTION;
+ private static final String CLASS_NAME = "RootContentDescription";
int mContentDescription;
- public static final Companion COMPANION = new Companion();
-
/**
* Encodes a content description for the document
*
@@ -43,7 +45,7 @@ public class RootContentDescription implements RemoteComposeOperation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mContentDescription);
+ apply(buffer, mContentDescription);
}
@Override
@@ -61,29 +63,32 @@ public class RootContentDescription implements RemoteComposeOperation {
return toString();
}
- public static class Companion implements CompanionOperation {
- private Companion() {}
-
- @Override
- public String name() {
- return "RootContentDescription";
- }
-
- @Override
- public int id() {
- return Operations.ROOT_CONTENT_DESCRIPTION;
- }
-
- public void apply(WireBuffer buffer, int contentDescription) {
- buffer.start(Operations.ROOT_CONTENT_DESCRIPTION);
- buffer.writeInt(contentDescription);
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int contentDescription = buffer.readInt();
- RootContentDescription header = new RootContentDescription(contentDescription);
- operations.add(header);
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static void apply(WireBuffer buffer, int contentDescription) {
+ buffer.start(Operations.ROOT_CONTENT_DESCRIPTION);
+ buffer.writeInt(contentDescription);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int contentDescription = buffer.readInt();
+ RootContentDescription header = new RootContentDescription(contentDescription);
+ operations.add(header);
+ }
+
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Protocol Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Content description of root")
+ .field(INT, "id", "id of Int");
+
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/ShaderData.java b/core/java/com/android/internal/widget/remotecompose/core/operations/ShaderData.java
index 8463ac576774..c4dde6e0d358 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/ShaderData.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ShaderData.java
@@ -15,12 +15,19 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.BYTE;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT_ARRAY;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT_ARRAY;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.SHORT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.UTF8;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.VariableSupport;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.Arrays;
import java.util.HashMap;
@@ -32,6 +39,8 @@ import java.util.List;
* in playback the image is decompressed
*/
public class ShaderData implements Operation, VariableSupport {
+ private static final int OP_CODE = Operations.DATA_SHADER;
+ private static final String CLASS_NAME = "ShaderData";
int mShaderTextId; // the actual text of a shader
int mShaderID; // allows shaders to be referenced by number
HashMap<String, float[]> mUniformRawFloatMap = null;
@@ -39,10 +48,6 @@ public class ShaderData implements Operation, VariableSupport {
HashMap<String, int[]> mUniformIntMap = null;
HashMap<String, Integer> mUniformBitmapMap = null;
- public static final int MAX_IMAGE_DIMENSION = 8000;
-
- public static final Companion COMPANION = new Companion();
-
public ShaderData(int shaderID,
int shaderTextId,
HashMap<String, float[]> floatMap,
@@ -81,7 +86,8 @@ public class ShaderData implements Operation, VariableSupport {
/**
* get names of all known floats
- * @return
+ *
+ * @return Names of all uniform floats or empty array
*/
public String[] getUniformFloatNames() {
if (mUniformFloatMap == null) return new String[0];
@@ -90,8 +96,9 @@ public class ShaderData implements Operation, VariableSupport {
/**
* Get float values associated with the name
- * @param name
- * @return
+ *
+ * @param name name of uniform
+ * @return value of uniform
*/
public float[] getUniformFloats(String name) {
return mUniformFloatMap.get(name);
@@ -99,7 +106,8 @@ public class ShaderData implements Operation, VariableSupport {
/**
* get the name of all know uniform integers
- * @return
+ *
+ * @return Name of all integer uniforms
*/
public String[] getUniformIntegerNames() {
if (mUniformIntMap == null) return new String[0];
@@ -108,8 +116,9 @@ public class ShaderData implements Operation, VariableSupport {
/**
* Get Int value associated with the name
- * @param name
- * @return
+ *
+ * @param name Name of uniform
+ * @return value of uniform
*/
public int[] getUniformInts(String name) {
return mUniformIntMap.get(name);
@@ -117,7 +126,8 @@ public class ShaderData implements Operation, VariableSupport {
/**
* get list of uniform Bitmaps
- * @return
+ *
+ * @return Name of all bitmap uniforms
*/
public String[] getUniformBitmapNames() {
if (mUniformBitmapMap == null) return new String[0];
@@ -126,8 +136,9 @@ public class ShaderData implements Operation, VariableSupport {
/**
* Get a bitmap stored under that name
- * @param name
- * @return
+ *
+ * @param name Name of bitmap uniform
+ * @return Bitmap ID
*/
public int getUniformBitmapId(String name) {
return mUniformBitmapMap.get(name);
@@ -135,7 +146,7 @@ public class ShaderData implements Operation, VariableSupport {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mShaderID, mShaderTextId,
+ apply(buffer, mShaderID, mShaderTextId,
mUniformFloatMap, mUniformIntMap, mUniformBitmapMap);
}
@@ -165,136 +176,150 @@ public class ShaderData implements Operation, VariableSupport {
public void registerListening(RemoteContext context) {
for (String name : mUniformRawFloatMap.keySet()) {
float[] value = mUniformRawFloatMap.get(name);
- for (int i = 0; i < value.length; i++) {
- if (Float.isNaN(value[i])) {
- context.listensTo(Utils.idFromNan(value[i]), this);
+ for (float v : value) {
+ if (Float.isNaN(v)) {
+ context.listensTo(Utils.idFromNan(v), this);
}
}
}
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
- @Override
- public String name() {
- return "BitmapData";
- }
+ public static int id() {
+ return OP_CODE;
+ }
- @Override
- public int id() {
- return Operations.DATA_SHADER;
- }
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer buffer to write into
+ * @param shaderID id of shader
+ * @param shaderTextId id of text of shader
+ * @param floatMap the map of float uniforms
+ * @param intMap the map of int uniforms
+ * @param bitmapMap the map of bitmap uniforms
+ */
+ public static void apply(WireBuffer buffer, int shaderID, int shaderTextId,
+ HashMap<String, float[]> floatMap,
+ HashMap<String, int[]> intMap,
+ HashMap<String, Integer> bitmapMap) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(shaderID);
+
+ buffer.writeInt(shaderTextId);
+ int floatSize = (floatMap == null) ? 0 : floatMap.size();
+ int intSize = (intMap == null) ? 0 : intMap.size();
+ int bitmapSize = (bitmapMap == null) ? 0 : bitmapMap.size();
+ int sizes = floatSize | (intSize << 8) | (bitmapSize << 16);
+ buffer.writeInt(sizes);
+
+ if (floatSize > 0) {
- /**
- * Writes out the operation to the buffer
- * @param buffer
- * @param shaderID
- * @param shaderTextId
- * @param floatMap
- * @param intMap
- * @param bitmapMap
- */
- public void apply(WireBuffer buffer, int shaderID, int shaderTextId,
- HashMap<String, float[]> floatMap,
- HashMap<String, int[]> intMap,
- HashMap<String, Integer> bitmapMap) {
- buffer.start(Operations.DATA_SHADER);
- buffer.writeInt(shaderID);
-
- buffer.writeInt(shaderTextId);
- int floatSize = (floatMap == null) ? 0 : floatMap.size();
- int intSize = (intMap == null) ? 0 : intMap.size();
- int bitmapSize = (bitmapMap == null) ? 0 : bitmapMap.size();
- int sizes = floatSize | (intSize << 8) | (bitmapSize << 16);
- buffer.writeInt(sizes);
-
- if (floatSize > 0) {
-
- for (String name : floatMap.keySet()) {
- buffer.writeUTF8(name);
- float[] values = floatMap.get(name);
- buffer.writeInt(values.length);
-
- for (int i = 0; i < values.length; i++) {
- buffer.writeFloat(values[i]);
- }
- }
- }
+ for (String name : floatMap.keySet()) {
+ buffer.writeUTF8(name);
+ float[] values = floatMap.get(name);
+ buffer.writeInt(values.length);
- if (intSize > 0) {
- for (String name : intMap.keySet()) {
- buffer.writeUTF8(name);
- int[] values = intMap.get(name);
- buffer.writeInt(values.length);
- for (int i = 0; i < values.length; i++) {
- buffer.writeInt(values[i]);
- }
+ for (float value : values) {
+ buffer.writeFloat(value);
}
}
- if (bitmapSize > 0) {
- for (String name : bitmapMap.keySet()) {
- buffer.writeUTF8(name);
- int value = bitmapMap.get(name);
+ }
+
+ if (intSize > 0) {
+ for (String name : intMap.keySet()) {
+ buffer.writeUTF8(name);
+ int[] values = intMap.get(name);
+ buffer.writeInt(values.length);
+ for (int value : values) {
buffer.writeInt(value);
}
}
}
+ if (bitmapSize > 0) {
+ for (String name : bitmapMap.keySet()) {
+ buffer.writeUTF8(name);
+ int value = bitmapMap.get(name);
+ buffer.writeInt(value);
+ }
+ }
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int shaderID = buffer.readInt();
- int shaderTextId = buffer.readInt();
- HashMap<String, float[]> floatMap = null;
- HashMap<String, int[]> intMap = null;
- HashMap<String, Integer> bitmapMap = null;
-
- int sizes = buffer.readInt();
-
- int floatMapSize = sizes & 0xFF;
- if (floatMapSize > 0) {
- floatMap = new HashMap<>();
- for (int i = 0; i < floatMapSize; i++) {
- String name = buffer.readUTF8();
- int len = buffer.readInt();
- float[] val = new float[len];
-
- for (int j = 0; j < len; j++) {
- val[j] = buffer.readFloat();
- }
- floatMap.put(name, val);
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int shaderID = buffer.readInt();
+ int shaderTextId = buffer.readInt();
+ HashMap<String, float[]> floatMap = null;
+ HashMap<String, int[]> intMap = null;
+ HashMap<String, Integer> bitmapMap = null;
+
+ int sizes = buffer.readInt();
+
+ int floatMapSize = sizes & 0xFF;
+ if (floatMapSize > 0) {
+ floatMap = new HashMap<>();
+ for (int i = 0; i < floatMapSize; i++) {
+ String name = buffer.readUTF8();
+ int len = buffer.readInt();
+ float[] val = new float[len];
+
+ for (int j = 0; j < len; j++) {
+ val[j] = buffer.readFloat();
}
+
+ floatMap.put(name, val);
}
- int intMapSize = (sizes >> 8) & 0xFF;
+ }
+ int intMapSize = (sizes >> 8) & 0xFF;
- if (intMapSize > 0) {
+ if (intMapSize > 0) {
- intMap = new HashMap<>();
- for (int i = 0; i < intMapSize; i++) {
- String name = buffer.readUTF8();
- int len = buffer.readInt();
- int[] val = new int[len];
- for (int j = 0; j < len; j++) {
- val[j] = buffer.readInt();
- }
- intMap.put(name, val);
+ intMap = new HashMap<>();
+ for (int i = 0; i < intMapSize; i++) {
+ String name = buffer.readUTF8();
+ int len = buffer.readInt();
+ int[] val = new int[len];
+ for (int j = 0; j < len; j++) {
+ val[j] = buffer.readInt();
}
+ intMap.put(name, val);
}
- int bitmapMapSize = (sizes >> 16) & 0xFF;
-
- if (bitmapMapSize > 0) {
- bitmapMap = new HashMap<>();
- for (int i = 0; i < bitmapMapSize; i++) {
- String name = buffer.readUTF8();
- int val = buffer.readInt();
- bitmapMap.put(name, val);
- }
+ }
+ int bitmapMapSize = (sizes >> 16) & 0xFF;
+
+ if (bitmapMapSize > 0) {
+ bitmapMap = new HashMap<>();
+ for (int i = 0; i < bitmapMapSize; i++) {
+ String name = buffer.readUTF8();
+ int val = buffer.readInt();
+ bitmapMap.put(name, val);
}
- operations.add(new ShaderData(shaderID, shaderTextId,
- floatMap, intMap, bitmapMap));
}
+ operations.add(new ShaderData(shaderID, shaderTextId,
+ floatMap, intMap, bitmapMap));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Data Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Shader")
+ .field(INT, "shaderID", "id of shader")
+ .field(BYTE, " floatSize", "number of float uniforms")
+ .field(BYTE, " intSize", "number of int uniform")
+ .field(SHORT, " intSize", "number of int uniform")
+ .field(UTF8, "floatName", "name of float uniform")
+ .field(INT, "length", "length")
+ .field(FLOAT_ARRAY, "VALUE", "float uniform (max 4)")
+ .field(UTF8, "IntName", "id of shader text")
+ .field(INT, "length", "length of uniform")
+ .field(INT_ARRAY, "VALUE", "int uniform (max 4)")
+ .field(UTF8, "bitmapName", "name of bitmap")
+ .field(INT, "VALUE", "id of bitmap");
+
}
@Override
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/TextData.java b/core/java/com/android/internal/widget/remotecompose/core/operations/TextData.java
index ed1344975256..b49cb7664495 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/TextData.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/TextData.java
@@ -15,21 +15,27 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.UTF8;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.SerializableToString;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
import java.util.List;
/**
* Operation to deal with Text data
*/
-public class TextData implements Operation {
+public class TextData implements Operation, SerializableToString {
+ private static final int OP_CODE = Operations.DATA_TEXT;
+ private static final String CLASS_NAME = "TextData";
public int mTextId;
public String mText;
- public static final Companion COMPANION = new Companion();
public static final int MAX_STRING_SIZE = 4000;
public TextData(int textId, String text) {
@@ -39,7 +45,7 @@ public class TextData implements Operation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mTextId, mText);
+ apply(buffer, mTextId, mText);
}
@Override
@@ -48,35 +54,41 @@ public class TextData implements Operation {
+ Utils.trimString(mText, 10) + "\"";
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
-
- @Override
- public String name() {
- return "TextData";
- }
-
- @Override
- public int id() {
- return Operations.DATA_TEXT;
- }
-
- public void apply(WireBuffer buffer, int textId, String text) {
- buffer.start(Operations.DATA_TEXT);
- buffer.writeInt(textId);
- buffer.writeUTF8(text);
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int textId = buffer.readInt();
-
- String text = buffer.readUTF8(MAX_STRING_SIZE);
- operations.add(new TextData(textId, text));
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static void apply(WireBuffer buffer, int textId, String text) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(textId);
+ buffer.writeUTF8(text);
+ }
+
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int textId = buffer.readInt();
+
+ String text = buffer.readUTF8(MAX_STRING_SIZE);
+ operations.add(new TextData(textId, text));
}
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Data Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Encode a string ")
+ .field(INT, "id", "id string")
+ .field(UTF8, "text",
+ "encode text as a string");
+ }
+
+
@Override
public void apply(RemoteContext context) {
context.loadText(mTextId, mText);
@@ -86,4 +98,14 @@ public class TextData implements Operation {
public String deepToString(String indent) {
return indent + toString();
}
+
+ @Override
+ public void serializeToString(int indent, StringSerializer serializer) {
+ serializer.append(indent, getSerializedName() + "<" + mTextId
+ + "> = \"" + mText + "\"");
+ }
+
+ private String getSerializedName() {
+ return "DATA_TEXT";
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/TextFromFloat.java b/core/java/com/android/internal/widget/remotecompose/core/operations/TextFromFloat.java
index 65a39a1eba04..8f235dcca28c 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/TextFromFloat.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/TextFromFloat.java
@@ -15,12 +15,15 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.SHORT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.VariableSupport;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import com.android.internal.widget.remotecompose.core.operations.utilities.StringUtils;
import java.util.List;
@@ -31,13 +34,14 @@ import java.util.List;
* before and after define number of digits before and after the decimal point
*/
public class TextFromFloat implements Operation, VariableSupport {
+ private static final int OP_CODE = Operations.TEXT_FROM_FLOAT;
+ private static final String CLASS_NAME = "TextFromFloat";
public int mTextId;
public float mValue;
public float mOutValue;
public short mDigitsBefore;
public short mDigitsAfter;
public int mFlags;
- public static final Companion COMPANION = new Companion();
public static final int MAX_STRING_SIZE = 4000;
char mPre = ' ';
char mAfter = ' ';
@@ -83,7 +87,7 @@ public class TextFromFloat implements Operation, VariableSupport {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mTextId, mValue, mDigitsAfter, mDigitsBefore, mFlags);
+ apply(buffer, mTextId, mValue, mDigitsAfter, mDigitsBefore, mFlags);
}
@Override
@@ -99,10 +103,8 @@ public class TextFromFloat implements Operation, VariableSupport {
if (Float.isNaN(mValue)) {
mOutValue = context.getFloat(Utils.idFromNan(mValue));
}
-
}
-
@Override
public void registerListening(RemoteContext context) {
if (Float.isNaN(mValue)) {
@@ -110,53 +112,63 @@ public class TextFromFloat implements Operation, VariableSupport {
}
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
- @Override
- public String name() {
- return "TextData";
- }
+ public static int id() {
+ return OP_CODE;
+ }
- @Override
- public int id() {
- return Operations.TEXT_FROM_FLOAT;
- }
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer buffer to write to
+ * @param textId the id of the output text
+ * @param value the float value to be turned into strings
+ * @param digitsBefore the digits before the decimal point
+ * @param digitsAfter the digits after the decimal point
+ * @param flags flags that control if and how to fill the empty spots
+ */
+ public static void apply(WireBuffer buffer, int textId,
+ float value, short digitsBefore,
+ short digitsAfter, int flags) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(textId);
+ buffer.writeFloat(value);
+ buffer.writeInt((digitsBefore << 16) | digitsAfter);
+ buffer.writeInt(flags);
- /**
- * Writes out the operation to the buffer
- * @param buffer
- * @param textId
- * @param value
- * @param digitsBefore
- * @param digitsAfter
- * @param flags
- */
- public void apply(WireBuffer buffer, int textId,
- float value, short digitsBefore,
- short digitsAfter, int flags) {
- buffer.start(Operations.TEXT_FROM_FLOAT);
- buffer.writeInt(textId);
- buffer.writeFloat(value);
- buffer.writeInt((digitsBefore << 16) | digitsAfter);
- buffer.writeInt(flags);
+ }
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int textId = buffer.readInt();
+ float value = buffer.readFloat();
+ int tmp = buffer.readInt();
+ short post = (short) (tmp & 0xFFFF);
+ short pre = (short) ((tmp >> 16) & 0xFFFF);
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int textId = buffer.readInt();
- float value = buffer.readFloat();
- int tmp = buffer.readInt();
- short post = (short) (tmp & 0xFFFF);
- short pre = (short) ((tmp >> 16) & 0xFFFF);
+ int flags = buffer.readInt();
+ operations.add(new TextFromFloat(textId, value, pre, post, flags));
+ }
- int flags = buffer.readInt();
- operations.add(new TextFromFloat(textId, value, pre, post, flags));
- }
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Expressions Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Draw text along path object")
+ .field(INT, "textId",
+ "id of the text generated")
+ .field(INT, "value",
+ "Value to add")
+ .field(SHORT, "prePoint",
+ "digits before the decimal point")
+ .field(SHORT, "pstPoint",
+ "digit after the decimal point")
+ .field(INT, "flags", "options on padding");
}
+
@Override
public void apply(RemoteContext context) {
float v = mOutValue;
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/TextMerge.java b/core/java/com/android/internal/widget/remotecompose/core/operations/TextMerge.java
index a0fc854f38f4..dd7822308a94 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/TextMerge.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/TextMerge.java
@@ -15,11 +15,13 @@
*/
package com.android.internal.widget.remotecompose.core.operations;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
@@ -27,11 +29,11 @@ import java.util.List;
* Operation to deal with Text data
*/
public class TextMerge implements Operation {
+ private static final int OP_CODE = Operations.TEXT_MERGE;
+ private static final String CLASS_NAME = "TextMerge";
public int mTextId;
public int mSrcId1;
public int mSrcId2;
- public static final Companion COMPANION = new Companion();
- public static final int MAX_STRING_SIZE = 4000;
public TextMerge(int textId, int srcId1, int srcId2) {
this.mTextId = textId;
@@ -41,7 +43,7 @@ public class TextMerge implements Operation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mTextId, mSrcId1, mSrcId2);
+ apply(buffer, mTextId, mSrcId1, mSrcId2);
}
@Override
@@ -49,42 +51,49 @@ public class TextMerge implements Operation {
return "TextMerge[" + mTextId + "] = [" + mSrcId1 + " ] + [ " + mSrcId2 + "]";
}
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
-
- @Override
- public String name() {
- return "TextData";
- }
-
- @Override
- public int id() {
- return Operations.TEXT_MERGE;
- }
-
- /**
- * Writes out the operation to the buffer
- * @param buffer
- * @param textId
- * @param srcId1
- * @param srcId2
- */
- public void apply(WireBuffer buffer, int textId, int srcId1, int srcId2) {
- buffer.start(Operations.TEXT_MERGE);
- buffer.writeInt(textId);
- buffer.writeInt(srcId1);
- buffer.writeInt(srcId2);
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int textId = buffer.readInt();
- int srcId1 = buffer.readInt();
- int srcId2 = buffer.readInt();
-
- operations.add(new TextMerge(textId, srcId1, srcId2));
- }
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer buffer to write to
+ * @param textId id of the text
+ * @param srcId1 source text 1
+ * @param srcId2 source text 2
+ */
+ public static void apply(WireBuffer buffer, int textId, int srcId1, int srcId2) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(textId);
+ buffer.writeInt(srcId1);
+ buffer.writeInt(srcId2);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int textId = buffer.readInt();
+ int srcId1 = buffer.readInt();
+ int srcId2 = buffer.readInt();
+
+ operations.add(new TextMerge(textId, srcId1, srcId2));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Data Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Merge two string into one")
+ .field(INT, "textId",
+ "id of the text")
+ .field(INT, "srcTextId1",
+ "id of the path")
+ .field(INT, "srcTextId1",
+ "x Shift of the text");
}
@Override
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/Theme.java b/core/java/com/android/internal/widget/remotecompose/core/operations/Theme.java
index f98299770570..52ae7fe5ab4b 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/Theme.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/Theme.java
@@ -23,7 +23,6 @@ import com.android.internal.widget.remotecompose.core.RemoteComposeOperation;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
-import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation;
import java.util.List;
@@ -34,13 +33,13 @@ import java.util.List;
*
*/
public class Theme implements RemoteComposeOperation {
+ private static final int OP_CODE = Operations.THEME;
+ private static final String CLASS_NAME = "Theme";
int mTheme;
public static final int UNSPECIFIED = -1;
public static final int DARK = -2;
public static final int LIGHT = -3;
- public static final Companion COMPANION = new Companion();
-
/**
* we can then filter operations depending on the chosen theme.
*
@@ -55,7 +54,7 @@ public class Theme implements RemoteComposeOperation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mTheme);
+ apply(buffer, mTheme);
}
@Override
@@ -73,38 +72,32 @@ public class Theme implements RemoteComposeOperation {
return indent + toString();
}
- public static class Companion implements DocumentedCompanionOperation {
- private Companion() {}
-
- @Override
- public String name() {
- return "Theme";
- }
-
- @Override
- public int id() {
- return Operations.THEME;
- }
-
- public void apply(WireBuffer buffer, int theme) {
- buffer.start(Operations.THEME);
- buffer.writeInt(theme);
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int theme = buffer.readInt();
- operations.add(new Theme(theme));
- }
-
- @Override
- public void documentation(DocumentationBuilder doc) {
- doc.operation("Protocol Operations", id(), name())
- .description("Set a theme")
- .field(INT, "THEME", "theme id")
- .possibleValues("UNSPECIFIED", Theme.UNSPECIFIED)
- .possibleValues("DARK", Theme.DARK)
- .possibleValues("LIGHT", Theme.LIGHT);
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static void apply(WireBuffer buffer, int theme) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(theme);
+ }
+
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int theme = buffer.readInt();
+ operations.add(new Theme(theme));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Protocol Operations", OP_CODE, CLASS_NAME)
+ .description("Set a theme")
+ .field(INT, "THEME", "theme id")
+ .possibleValues("UNSPECIFIED", Theme.UNSPECIFIED)
+ .possibleValues("DARK", Theme.DARK)
+ .possibleValues("LIGHT", Theme.LIGHT);
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/Utils.java b/core/java/com/android/internal/widget/remotecompose/core/operations/Utils.java
index e9b0c3b11044..6e858c7e0215 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/Utils.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/Utils.java
@@ -25,7 +25,12 @@ public class Utils {
public static int idFromNan(float value) {
int b = Float.floatToRawIntBits(value);
- return b & 0xFFFFF;
+ return b & 0x3FFFFF;
+ }
+
+ public static String idStringFromNan(float value) {
+ int b = Float.floatToRawIntBits(value) & 0x3FFFFF;
+ return (b > 0xFFFFF) ? "A_" + (b & 0xFFFFF) : "" + b;
}
public static float getActualValue(float lr) {
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ActionOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ActionOperation.java
new file mode 100644
index 000000000000..7588c794190d
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ActionOperation.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.operations.layout;
+
+import com.android.internal.widget.remotecompose.core.CoreDocument;
+import com.android.internal.widget.remotecompose.core.Operation;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
+
+/**
+ * Operations representing actions on the document
+ */
+public interface ActionOperation extends Operation {
+ void serializeToString(int indent, StringSerializer serializer);
+ void runAction(RemoteContext context, CoreDocument document,
+ Component component, float x, float y);
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/CanvasContent.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/CanvasContent.java
new file mode 100644
index 000000000000..fd3501732e51
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/CanvasContent.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.operations.layout;
+
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
+import com.android.internal.widget.remotecompose.core.Operation;
+import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+
+import java.util.List;
+
+/**
+ * Represents the content of a CanvasLayout (i.e. contains the canvas commands)
+ */
+public class CanvasContent extends Component implements ComponentStartOperation {
+
+ public CanvasContent(int componentId, float x, float y,
+ float width, float height, Component parent, int animationId) {
+ super(parent, componentId, animationId, x, y, width, height);
+ }
+
+ public static String name() {
+ return "CanvasContent";
+ }
+
+ public static int id() {
+ return Operations.LAYOUT_CANVAS_CONTENT;
+ }
+
+ @Override protected String getSerializedName() {
+ return "CANVAS_CONTENT";
+ }
+
+ public static void apply(WireBuffer buffer, int componentId) {
+ buffer.start(Operations.LAYOUT_CANVAS_CONTENT);
+ buffer.writeInt(componentId);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int componentId = buffer.readInt();
+ operations.add(new CanvasContent(
+ componentId, 0, 0, 0, 0, null, -1));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", id(), name())
+ .field(INT, "COMPONENT_ID", "unique id for this component")
+ .description("Container for canvas commands.");
+ }
+
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer, mComponentId);
+ }
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ClickModifierEnd.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ClickModifierEnd.java
new file mode 100644
index 000000000000..f7c6ce24df14
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ClickModifierEnd.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.operations.layout;
+
+import com.android.internal.widget.remotecompose.core.Operation;
+import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+
+import java.util.List;
+
+public class ClickModifierEnd implements Operation {
+
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer);
+ }
+
+ @Override
+ public String toString() {
+ return "CLICK_END";
+ }
+
+ @Override
+ public void apply(RemoteContext context) {
+ // nothing
+ }
+
+ @Override
+ public String deepToString(String indent) {
+ return (indent != null ? indent : "") + toString();
+ }
+
+ public static String name() {
+ return "ClickModifierEnd";
+ }
+
+ public static int id() {
+ return Operations.MODIFIER_CLICK_END;
+ }
+
+ public static void apply(WireBuffer buffer) {
+ buffer.start(id());
+ }
+
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ operations.add(new ClickModifierEnd());
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", id(), name())
+ .description("End tag for click modifiers. This operation marks the end"
+ + "of a click modifier");
+ }
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ClickModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ClickModifierOperation.java
new file mode 100644
index 000000000000..d75f70b674c5
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ClickModifierOperation.java
@@ -0,0 +1,182 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.operations.layout;
+
+import com.android.internal.widget.remotecompose.core.CoreDocument;
+import com.android.internal.widget.remotecompose.core.Operation;
+import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.PaintContext;
+import com.android.internal.widget.remotecompose.core.PaintOperation;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+import com.android.internal.widget.remotecompose.core.operations.TextData;
+import com.android.internal.widget.remotecompose.core.operations.Utils;
+import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ModifierOperation;
+import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle;
+import com.android.internal.widget.remotecompose.core.operations.utilities.ColorUtils;
+import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
+import com.android.internal.widget.remotecompose.core.operations.utilities.easing.Easing;
+import com.android.internal.widget.remotecompose.core.operations.utilities.easing.FloatAnimation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Represents a click modifier + actions
+ */
+public class ClickModifierOperation extends PaintOperation
+ implements ModifierOperation, DecoratorComponent {
+ private static final int OP_CODE = Operations.MODIFIER_CLICK;
+
+
+ long mAnimateRippleStart = 0;
+ float mAnimateRippleX = 0f;
+ float mAnimateRippleY = 0f;
+ int mAnimateRippleDuration = 1000;
+
+ float mWidth = 0;
+ float mHeight = 0;
+
+ public float[] locationInWindow = new float[2];
+
+ PaintBundle mPaint = new PaintBundle();
+
+ public void animateRipple(float x, float y) {
+ mAnimateRippleStart = System.currentTimeMillis();
+ mAnimateRippleX = x;
+ mAnimateRippleY = y;
+ }
+ public ArrayList<Operation> mList = new ArrayList<>();
+
+ public ArrayList<Operation> getList() {
+ return mList;
+ }
+
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer);
+ }
+
+ @Override
+ public String toString() {
+ return "ClickModifier";
+ }
+
+ @Override
+ public void apply(RemoteContext context) {
+ for (Operation op : mList) {
+ if (op instanceof TextData) {
+ op.apply(context);
+ }
+ }
+ }
+
+ @Override
+ public String deepToString(String indent) {
+ return (indent != null ? indent : "") + toString();
+ }
+
+ @Override
+ public void paint(PaintContext context) {
+ if (mAnimateRippleStart == 0) {
+ return;
+ }
+ context.needsRepaint();
+
+ float progress = (System.currentTimeMillis() - mAnimateRippleStart);
+ progress /= (float) mAnimateRippleDuration;
+ if (progress > 1f) {
+ mAnimateRippleStart = 0;
+ }
+ progress = Math.min(1f, progress);
+ context.save();
+ context.savePaint();
+ mPaint.reset();
+
+ FloatAnimation anim1 = new FloatAnimation(Easing.CUBIC_STANDARD, 1f,
+ null, Float.NaN, Float.NaN);
+ anim1.setInitialValue(0f);
+ anim1.setTargetValue(1f);
+ float tween = anim1.get(progress);
+
+ FloatAnimation anim2 = new FloatAnimation(Easing.CUBIC_STANDARD, 0.5f,
+ null, Float.NaN, Float.NaN);
+ anim2.setInitialValue(0f);
+ anim2.setTargetValue(1f);
+ float tweenRadius = anim2.get(progress);
+
+ int startColor = ColorUtils.createColor(250, 250, 250, 180);
+ int endColor = ColorUtils.createColor(200, 200, 200, 0);
+ int paintedColor = Utils.interpolateColor(startColor, endColor, tween);
+
+ float radius = Math.max(mWidth, mHeight) * tweenRadius;
+ mPaint.setColor(paintedColor);
+ context.applyPaint(mPaint);
+ context.clipRect(0f, 0f, mWidth, mHeight);
+ context.drawCircle(mAnimateRippleX, mAnimateRippleY, radius);
+ context.restorePaint();
+ context.restore();
+ }
+
+ @Override
+ public void layout(RemoteContext context, float width, float height) {
+ mWidth = width;
+ mHeight = height;
+ }
+
+ @Override
+ public void serializeToString(int indent, StringSerializer serializer) {
+ serializer.append(indent, "CLICK_MODIFIER");
+ for (Operation o : mList) {
+ if (o instanceof ActionOperation) {
+ ((ActionOperation) o).serializeToString(indent + 1, serializer);
+ }
+ }
+ }
+
+ @Override
+ public void onClick(RemoteContext context, CoreDocument document,
+ Component component, float x, float y) {
+ locationInWindow[0] = 0f;
+ locationInWindow[1] = 0f;
+ component.getLocationInWindow(locationInWindow);
+ animateRipple(x - locationInWindow[0], y - locationInWindow[1]);
+ for (Operation o : mList) {
+ if (o instanceof ActionOperation) {
+ ((ActionOperation) o).runAction(context, document, component, x, y);
+ }
+ }
+ }
+
+ public static String name() {
+ return "ClickModifier";
+ }
+
+ public static void apply(WireBuffer buffer) {
+ buffer.start(OP_CODE);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ operations.add(new ClickModifierOperation());
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", OP_CODE, name())
+ .description("Click modifier. This operation contains"
+ + " a list of action executed on click");
+ }
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/Component.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/Component.java
index ee2e11be6c1e..fca0b1344a10 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/Component.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/Component.java
@@ -15,11 +15,17 @@
*/
package com.android.internal.widget.remotecompose.core.operations.layout;
+import com.android.internal.widget.remotecompose.core.CoreDocument;
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.PaintOperation;
import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.SerializableToString;
+import com.android.internal.widget.remotecompose.core.VariableSupport;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.operations.BitmapData;
+import com.android.internal.widget.remotecompose.core.operations.ComponentValue;
+import com.android.internal.widget.remotecompose.core.operations.TextData;
import com.android.internal.widget.remotecompose.core.operations.layout.animation.AnimateMeasure;
import com.android.internal.widget.remotecompose.core.operations.layout.animation.AnimationSpec;
import com.android.internal.widget.remotecompose.core.operations.layout.measure.ComponentMeasure;
@@ -30,11 +36,14 @@ import com.android.internal.widget.remotecompose.core.operations.paint.PaintBund
import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
import java.util.ArrayList;
+import java.util.HashSet;
/**
* Generic Component class
*/
-public class Component extends PaintOperation implements Measurable {
+public class Component extends PaintOperation implements Measurable, SerializableToString {
+
+ private static final boolean DEBUG = false;
protected int mComponentId = -1;
protected float mX;
@@ -44,6 +53,7 @@ public class Component extends PaintOperation implements Measurable {
protected Component mParent;
protected int mAnimationId = -1;
public Visibility mVisibility = Visibility.VISIBLE;
+ public Visibility mScheduledVisibility = Visibility.VISIBLE;
public ArrayList<Operation> mList = new ArrayList<>();
public PaintOperation mPreTranslate;
public boolean mNeedsMeasure = true;
@@ -52,22 +62,29 @@ public class Component extends PaintOperation implements Measurable {
public AnimationSpec mAnimationSpec = new AnimationSpec();
public boolean mFirstLayout = true;
PaintBundle mPaint = new PaintBundle();
+ protected HashSet<ComponentValue> mComponentValues = new HashSet<>();
+
public ArrayList<Operation> getList() {
return mList;
}
+
public float getX() {
return mX;
}
+
public float getY() {
return mY;
}
+
public float getWidth() {
return mWidth;
}
+
public float getHeight() {
return mHeight;
}
+
public int getComponentId() {
return mComponentId;
}
@@ -79,19 +96,55 @@ public class Component extends PaintOperation implements Measurable {
public Component getParent() {
return mParent;
}
+
public void setX(float value) {
mX = value;
}
+
public void setY(float value) {
mY = value;
}
+
public void setWidth(float value) {
mWidth = value;
}
+
public void setHeight(float value) {
mHeight = value;
}
+ /**
+ * Utility function to update variables referencing this component dimensions
+ *
+ * @param context the current context
+ */
+ private void updateComponentValues(RemoteContext context) {
+ if (DEBUG) {
+ System.out.println("UPDATE COMPONENT VALUES ("
+ + mComponentValues.size()
+ + ") FOR " + mComponentId);
+ }
+ for (ComponentValue v : mComponentValues) {
+ switch (v.getType()) {
+ case ComponentValue.WIDTH: {
+ context.loadFloat(v.getValueId(), mWidth);
+ if (DEBUG) {
+ System.out.println("Updating WIDTH for " + mComponentId + " to " + mWidth);
+ }
+ }
+ break;
+ case ComponentValue.HEIGHT: {
+ context.loadFloat(v.getValueId(), mHeight);
+ if (DEBUG) {
+ System.out.println("Updating HEIGHT for " + mComponentId
+ + " to " + mHeight);
+ }
+ }
+ break;
+ }
+ }
+ }
+
public void setComponentId(int id) {
mComponentId = id;
}
@@ -145,6 +198,30 @@ public class Component extends PaintOperation implements Measurable {
mParent = parent;
}
+ /**
+ * This traverses the component tree and make sure to
+ * update variables referencing the component dimensions as needed.
+ *
+ * @param context the current context
+ */
+ public void updateVariables(RemoteContext context) {
+ if (!mComponentValues.isEmpty()) {
+ updateComponentValues(context);
+ }
+ for (Operation o : mList) {
+ if (o instanceof Component) {
+ ((Component) o).updateVariables(context);
+ }
+ if (o instanceof VariableSupport) {
+ o.apply(context);
+ }
+ }
+ }
+
+ public void addComponentValue(ComponentValue v) {
+ mComponentValues.add(v);
+ }
+
public enum Visibility {
VISIBLE,
INVISIBLE,
@@ -161,6 +238,13 @@ public class Component extends PaintOperation implements Measurable {
return true;
}
+ public void setVisibility(Visibility visibility) {
+ if (visibility != mVisibility) {
+ mScheduledVisibility = visibility;
+ invalidateMeasure();
+ }
+ }
+
@Override
public void measure(PaintContext context, float minWidth, float maxWidth,
float minHeight, float maxHeight, MeasurePass measure) {
@@ -172,7 +256,8 @@ public class Component extends PaintOperation implements Measurable {
@Override
public void layout(RemoteContext context, MeasurePass measure) {
ComponentMeasure m = measure.get(this);
- if (!mFirstLayout && context.isAnimationEnabled()) {
+ if (!mFirstLayout && context.isAnimationEnabled()
+ && !(this instanceof LayoutComponentContent)) {
if (mAnimateMeasure == null) {
ComponentMeasure origin = new ComponentMeasure(mComponentId,
mX, mY, mWidth, mHeight, mVisibility);
@@ -190,8 +275,8 @@ public class Component extends PaintOperation implements Measurable {
} else {
mVisibility = m.getVisibility();
}
- mWidth = m.getW();
- mHeight = m.getH();
+ setWidth(m.getW());
+ setHeight(m.getH());
setLayoutPosition(m.getX(), m.getY());
mFirstLayout = false;
}
@@ -209,16 +294,16 @@ public class Component extends PaintOperation implements Measurable {
return x >= lx1 && x < lx2 && y >= ly1 && y < ly2;
}
- public void onClick(float x, float y) {
+ public void onClick(RemoteContext context, CoreDocument document, float x, float y) {
if (!contains(x, y)) {
return;
}
for (Operation op : mList) {
if (op instanceof Component) {
- ((Component) op).onClick(x, y);
+ ((Component) op).onClick(context, document, x, y);
}
if (op instanceof ComponentModifiers) {
- ((ComponentModifiers) op).onClick(x, y);
+ ((ComponentModifiers) op).onClick(context, document, this, x, y);
}
}
}
@@ -226,10 +311,11 @@ public class Component extends PaintOperation implements Measurable {
public void getLocationInWindow(float[] value) {
value[0] += mX;
value[1] += mY;
- if (mParent != null && mParent instanceof Component) {
+ if (mParent != null) {
if (mParent instanceof LayoutComponent) {
- value[0] += ((LayoutComponent) mParent).getMarginLeft();
- value[1] += ((LayoutComponent) mParent).getMarginTop();
+ LayoutComponent parent = (LayoutComponent) mParent;
+ value[0] += parent.getMarginLeft() + parent.getPaddingLeft();
+ value[1] += parent.getMarginTop() + parent.getPaddingTop();
}
mParent.getLocationInWindow(value);
}
@@ -248,10 +334,10 @@ public class Component extends PaintOperation implements Measurable {
public void serializeToString(int indent, StringSerializer serializer) {
serializer.append(indent, getSerializedName() + " [" + mComponentId
- + ":" + mAnimationId + "] = "
- + "[" + mX + ", " + mY + ", " + mWidth + ", " + mHeight + "] "
- + mVisibility
- // + " [" + mNeedsMeasure + ", " + mNeedsRepaint + "]"
+ + ":" + mAnimationId + "] = "
+ + "[" + mX + ", " + mY + ", " + mWidth + ", " + mHeight + "] "
+ + mVisibility
+ // + " [" + mNeedsMeasure + ", " + mNeedsRepaint + "]"
);
}
@@ -382,6 +468,9 @@ public class Component extends PaintOperation implements Measurable {
debugBox(this, context);
}
for (Operation op : mList) {
+ if (op instanceof BitmapData) {
+ ((BitmapData) op).apply(context.getContext());
+ }
if (op instanceof PaintOperation) {
((PaintOperation) op).paint(context);
}
@@ -435,6 +524,14 @@ public class Component extends PaintOperation implements Measurable {
}
}
+ public void getData(ArrayList<TextData> data) {
+ for (Operation op : mList) {
+ if (op instanceof TextData) {
+ data.add((TextData) op);
+ }
+ }
+ }
+
public int getComponentCount() {
int count = 0;
for (Operation op : mList) {
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentEnd.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentEnd.java
index 8a523a20cab1..71decd74a40b 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentEnd.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentEnd.java
@@ -20,17 +20,14 @@ import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
-import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation;
import java.util.List;
public class ComponentEnd implements Operation {
- public static final ComponentEnd.Companion COMPANION = new ComponentEnd.Companion();
-
@Override
public void write(WireBuffer buffer) {
- Companion.apply(buffer);
+ apply(buffer);
}
@Override
@@ -48,35 +45,30 @@ public class ComponentEnd implements Operation {
return (indent != null ? indent : "") + toString();
}
- public static class Companion implements DocumentedCompanionOperation {
- @Override
- public String name() {
- return "ComponentEnd";
- }
+ public static String name() {
+ return "ComponentEnd";
+ }
- @Override
- public int id() {
- return Operations.COMPONENT_END;
- }
+ public static int id() {
+ return Operations.COMPONENT_END;
+ }
- public static void apply(WireBuffer buffer) {
- buffer.start(Operations.COMPONENT_END);
- }
+ public static void apply(WireBuffer buffer) {
+ buffer.start(Operations.COMPONENT_END);
+ }
+
+ public static int size() {
+ return 1 + 4 + 4 + 4;
+ }
- public static int size() {
- return 1 + 4 + 4 + 4;
- }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- operations.add(new ComponentEnd());
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ operations.add(new ComponentEnd());
+ }
- @Override
- public void documentation(DocumentationBuilder doc) {
- doc.operation("Layout Operations", id(), name())
- .description("End tag for components / layouts. This operation marks the end"
- + "of a component");
- }
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", id(), name())
+ .description("End tag for components / layouts. This operation marks the end"
+ + "of a component");
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentStart.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentStart.java
index 5cfad2521403..32ef5ce8b278 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentStart.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentStart.java
@@ -23,14 +23,11 @@ import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
-import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation;
import java.util.List;
public class ComponentStart implements ComponentStartOperation {
- public static final ComponentStart.Companion COMPANION = new ComponentStart.Companion();
-
int mType = DEFAULT;
float mX;
float mY;
@@ -73,12 +70,12 @@ public class ComponentStart implements ComponentStartOperation {
@Override
public void write(WireBuffer buffer) {
- Companion.apply(buffer, mType, mComponentId, mWidth, mHeight);
+ apply(buffer, mType, mComponentId, mWidth, mHeight);
}
@Override
public String toString() {
- return "COMPONENT_START (type " + mType + " " + Companion.typeDescription(mType)
+ return "COMPONENT_START (type " + mType + " " + typeDescription(mType)
+ ") - (" + mX + ", " + mY + " - " + mWidth + " x " + mHeight + ")";
}
@@ -111,83 +108,75 @@ public class ComponentStart implements ComponentStartOperation {
public static final int LAYOUT_ROW = 15;
public static final int LAYOUT_COLUMN = 16;
- public static class Companion implements DocumentedCompanionOperation {
-
-
- public static String typeDescription(int type) {
- switch (type) {
- case DEFAULT:
- return "DEFAULT";
- case ROOT_LAYOUT:
- return "ROOT_LAYOUT";
- case LAYOUT:
- return "LAYOUT";
- case LAYOUT_CONTENT:
- return "CONTENT";
- case SCROLL_CONTENT:
- return "SCROLL_CONTENT";
- case BUTTON:
- return "BUTTON";
- case CHECKBOX:
- return "CHECKBOX";
- case TEXT:
- return "TEXT";
- case CURVED_TEXT:
- return "CURVED_TEXT";
- case STATE_HOST:
- return "STATE_HOST";
- case LOTTIE:
- return "LOTTIE";
- case CUSTOM:
- return "CUSTOM";
- case IMAGE:
- return "IMAGE";
- default:
- return "UNKNOWN";
- }
+ public static String typeDescription(int type) {
+ switch (type) {
+ case DEFAULT:
+ return "DEFAULT";
+ case ROOT_LAYOUT:
+ return "ROOT_LAYOUT";
+ case LAYOUT:
+ return "LAYOUT";
+ case LAYOUT_CONTENT:
+ return "CONTENT";
+ case SCROLL_CONTENT:
+ return "SCROLL_CONTENT";
+ case BUTTON:
+ return "BUTTON";
+ case CHECKBOX:
+ return "CHECKBOX";
+ case TEXT:
+ return "TEXT";
+ case CURVED_TEXT:
+ return "CURVED_TEXT";
+ case STATE_HOST:
+ return "STATE_HOST";
+ case LOTTIE:
+ return "LOTTIE";
+ case CUSTOM:
+ return "CUSTOM";
+ case IMAGE:
+ return "IMAGE";
+ default:
+ return "UNKNOWN";
}
+ }
- @Override
- public String name() {
- return "ComponentStart";
- }
+ public static String name() {
+ return "ComponentStart";
+ }
- @Override
- public int id() {
- return Operations.COMPONENT_START;
- }
+ public static int id() {
+ return Operations.COMPONENT_START;
+ }
- public static void apply(WireBuffer buffer, int type, int componentId,
- float width, float height) {
- buffer.start(Operations.COMPONENT_START);
- buffer.writeInt(type);
- buffer.writeInt(componentId);
- buffer.writeFloat(width);
- buffer.writeFloat(height);
- }
+ public static void apply(WireBuffer buffer, int type, int componentId,
+ float width, float height) {
+ buffer.start(Operations.COMPONENT_START);
+ buffer.writeInt(type);
+ buffer.writeInt(componentId);
+ buffer.writeFloat(width);
+ buffer.writeFloat(height);
+ }
- public static int size() {
- return 1 + 4 + 4 + 4;
- }
+ public static int size() {
+ return 1 + 4 + 4 + 4;
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int type = buffer.readInt();
- int componentId = buffer.readInt();
- float width = buffer.readFloat();
- float height = buffer.readFloat();
- operations.add(new ComponentStart(type, componentId, width, height));
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int type = buffer.readInt();
+ int componentId = buffer.readInt();
+ float width = buffer.readFloat();
+ float height = buffer.readFloat();
+ operations.add(new ComponentStart(type, componentId, width, height));
+ }
- @Override
- public void documentation(DocumentationBuilder doc) {
- doc.operation("Layout Operations", id(), name())
- .description("Basic component encapsulating draw commands."
- + "This is not resizable.")
- .field(INT, "TYPE", "Type of components")
- .field(INT, "COMPONENT_ID", "unique id for this component")
- .field(FLOAT, "WIDTH", "width of the component")
- .field(FLOAT, "HEIGHT", "height of the component");
- }
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", id(), name())
+ .description("Basic component encapsulating draw commands."
+ + "This is not resizable.")
+ .field(INT, "TYPE", "Type of components")
+ .field(INT, "COMPONENT_ID", "unique id for this component")
+ .field(FLOAT, "WIDTH", "width of the component")
+ .field(FLOAT, "HEIGHT", "height of the component");
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/DecoratorComponent.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/DecoratorComponent.java
index 941666aa90d7..71bf83913cfb 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/DecoratorComponent.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/DecoratorComponent.java
@@ -15,6 +15,7 @@
*/
package com.android.internal.widget.remotecompose.core.operations.layout;
+import com.android.internal.widget.remotecompose.core.CoreDocument;
import com.android.internal.widget.remotecompose.core.RemoteContext;
/**
@@ -23,5 +24,6 @@ import com.android.internal.widget.remotecompose.core.RemoteContext;
*/
public interface DecoratorComponent {
void layout(RemoteContext context, float width, float height);
- void onClick(float x, float y);
+ void onClick(RemoteContext context, CoreDocument document,
+ Component component, float x, float y);
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponent.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponent.java
index f198c4a9337b..f4c213159882 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponent.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponent.java
@@ -17,7 +17,13 @@ package com.android.internal.widget.remotecompose.core.operations.layout;
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.PaintContext;
+import com.android.internal.widget.remotecompose.core.operations.BitmapData;
+import com.android.internal.widget.remotecompose.core.operations.MatrixRestore;
+import com.android.internal.widget.remotecompose.core.operations.MatrixSave;
+import com.android.internal.widget.remotecompose.core.operations.MatrixTranslate;
+import com.android.internal.widget.remotecompose.core.operations.TextData;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ComponentModifiers;
+import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ComponentVisibilityOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.DimensionModifierOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.HeightModifierOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ModifierOperation;
@@ -56,40 +62,101 @@ public class LayoutComponent extends Component {
public float getMarginLeft() {
return mMarginLeft;
}
+
public float getMarginRight() {
return mMarginRight;
}
+
public float getMarginTop() {
return mMarginTop;
}
+
public float getMarginBottom() {
return mMarginBottom;
}
+ public float getPaddingLeft() {
+ return mPaddingLeft;
+ }
+
+ public float getPaddingTop() {
+ return mPaddingTop;
+ }
+
+ public float getPaddingRight() {
+ return mPaddingRight;
+ }
+
+ public float getPaddingBottom() {
+ return mPaddingBottom;
+ }
+
+
public WidthModifierOperation getWidthModifier() {
return mWidthModifier;
}
+
public HeightModifierOperation getHeightModifier() {
return mHeightModifier;
}
+ protected LayoutComponentContent mContent = null;
+
+ // Should be removed after ImageLayout is in
+ private static final boolean USE_IMAGE_TEMP_FIX = true;
+
public void inflate() {
+ ArrayList<TextData> data = new ArrayList<>();
for (Operation op : mList) {
if (op instanceof LayoutComponentContent) {
- ((LayoutComponentContent) op).mParent = this;
+ mContent = (LayoutComponentContent) op;
+ mContent.mParent = this;
mChildrenComponents.clear();
- ((LayoutComponentContent) op).getComponents(mChildrenComponents);
- if (mChildrenComponents.isEmpty()) {
- mChildrenComponents.add((Component) op);
+ LayoutComponentContent content = (LayoutComponentContent) op;
+ content.getComponents(mChildrenComponents);
+ if (USE_IMAGE_TEMP_FIX) {
+ if (mChildrenComponents.isEmpty() && !mContent.mList.isEmpty()) {
+ CanvasContent canvasContent =
+ new CanvasContent(-1, 0f, 0f, 0f, 0f, this, -1);
+ for (Operation opc : mContent.mList) {
+ if (opc instanceof BitmapData) {
+ canvasContent.mList.add(opc);
+ int w = ((BitmapData) opc).getWidth();
+ int h = ((BitmapData) opc).getHeight();
+ canvasContent.setWidth(w);
+ canvasContent.setHeight(h);
+ } else {
+ if (!((opc instanceof MatrixTranslate)
+ || (opc instanceof MatrixSave)
+ || (opc instanceof MatrixRestore))) {
+ canvasContent.mList.add(opc);
+ }
+ }
+ }
+ if (!canvasContent.mList.isEmpty()) {
+ mContent.mList.clear();
+ mChildrenComponents.add(canvasContent);
+ }
+ } else {
+ content.getData(data);
+ }
+ } else {
+ content.getData(data);
}
} else if (op instanceof ModifierOperation) {
+ if (op instanceof ComponentVisibilityOperation) {
+ ((ComponentVisibilityOperation) op).setParent(this);
+ }
mComponentModifiers.add((ModifierOperation) op);
+ } else if (op instanceof TextData) {
+ data.add((TextData) op);
} else {
// nothing
}
}
mList.clear();
+ mList.addAll(data);
mList.add(mComponentModifiers);
for (Component c : mChildrenComponents) {
c.mParent = this;
@@ -146,8 +213,8 @@ public class LayoutComponent extends Component {
if (mHeightModifier == null) {
mHeightModifier = new HeightModifierOperation(DimensionModifierOperation.Type.WRAP);
}
- mWidth = computeModifierDefinedWidth();
- mHeight = computeModifierDefinedHeight();
+ setWidth(computeModifierDefinedWidth());
+ setHeight(computeModifierDefinedHeight());
}
@Override
@@ -170,6 +237,7 @@ public class LayoutComponent extends Component {
context.restore();
}
+
/**
* Traverse the modifiers to compute indicated dimension
*/
@@ -195,6 +263,27 @@ public class LayoutComponent extends Component {
}
/**
+ * Traverse the modifiers to compute padding width
+ *
+ * @param padding output start and end padding values
+ * @return padding width
+ */
+ public float computeModifierDefinedPaddingWidth(float[] padding) {
+ float s = 0f;
+ float e = 0f;
+ for (Operation c : mComponentModifiers.getList()) {
+ if (c instanceof PaddingModifierOperation) {
+ PaddingModifierOperation pop = (PaddingModifierOperation) c;
+ s += pop.getLeft();
+ e += pop.getRight();
+ }
+ }
+ padding[0] = s;
+ padding[1] = e;
+ return s + e;
+ }
+
+ /**
* Traverse the modifiers to compute indicated dimension
*/
public float computeModifierDefinedHeight() {
@@ -217,4 +306,26 @@ public class LayoutComponent extends Component {
}
return t + h + b;
}
+
+ /**
+ * Traverse the modifiers to compute padding height
+ *
+ * @param padding output top and bottom padding values
+ * @return padding height
+ */
+ public float computeModifierDefinedPaddingHeight(float[] padding) {
+ float t = 0f;
+ float b = 0f;
+ for (Operation c : mComponentModifiers.getList()) {
+ if (c instanceof PaddingModifierOperation) {
+ PaddingModifierOperation pop = (PaddingModifierOperation) c;
+ t += pop.getTop();
+ b += pop.getBottom();
+ }
+ }
+ padding[0] = t;
+ padding[1] = b;
+ return t + b;
+ }
+
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponentContent.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponentContent.java
index 769ff6ac3e7d..5b3b54d3c423 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponentContent.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponentContent.java
@@ -15,11 +15,12 @@
*/
package com.android.internal.widget.remotecompose.core.operations.layout;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.WireBuffer;
import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
-import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation;
import java.util.List;
@@ -28,41 +29,44 @@ import java.util.List;
*/
public class LayoutComponentContent extends Component implements ComponentStartOperation {
- public static final LayoutComponentContent.Companion COMPANION =
- new LayoutComponentContent.Companion();
-
public LayoutComponentContent(int componentId, float x, float y,
float width, float height, Component parent, int animationId) {
super(parent, componentId, animationId, x, y, width, height);
}
- public static class Companion implements DocumentedCompanionOperation {
- @Override
- public String name() {
- return "LayoutContent";
- }
+ public static String name() {
+ return "LayoutContent";
+ }
+
+ public static int id() {
+ return Operations.LAYOUT_CONTENT;
+ }
+
+ @Override protected String getSerializedName() {
+ return "CONTENT";
+ }
- @Override
- public int id() {
- return Operations.LAYOUT_CONTENT;
- }
+ public static void apply(WireBuffer buffer, int componentId) {
+ buffer.start(Operations.LAYOUT_CONTENT);
+ buffer.writeInt(componentId);
+ }
- public void apply(WireBuffer buffer) {
- buffer.start(Operations.LAYOUT_CONTENT);
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int componentId = buffer.readInt();
+ operations.add(new LayoutComponentContent(
+ componentId, 0, 0, 0, 0, null, -1));
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- operations.add(new LayoutComponentContent(
- -1, 0, 0, 0, 0, null, -1));
- }
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", id(), name())
+ .field(INT, "COMPONENT_ID", "unique id for this component")
+ .description("Container for components. BoxLayout, RowLayout and ColumnLayout "
+ + "expects a LayoutComponentContent as a child, encapsulating the "
+ + "components that needs to be laid out.");
+ }
- @Override
- public void documentation(DocumentationBuilder doc) {
- doc.operation("Layout Operations", id(), name())
- .description("Container for components. BoxLayout, RowLayout and ColumnLayout "
- + "expects a LayoutComponentContent as a child, encapsulating the "
- + "components that needs to be laid out.");
- }
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer, mComponentId);
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/RootLayoutComponent.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/RootLayoutComponent.java
index dc13768992ce..bf1a4963d4c4 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/RootLayoutComponent.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/RootLayoutComponent.java
@@ -15,14 +15,16 @@
*/
package com.android.internal.widget.remotecompose.core.operations.layout;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.PaintOperation;
import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.SerializableToString;
import com.android.internal.widget.remotecompose.core.WireBuffer;
import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
-import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.measure.Measurable;
import com.android.internal.widget.remotecompose.core.operations.layout.measure.MeasurePass;
import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ComponentModifiers;
@@ -34,10 +36,6 @@ import java.util.List;
* Represents the root layout component. Entry point to the component tree layout/paint.
*/
public class RootLayoutComponent extends Component implements ComponentStartOperation {
-
- public static final RootLayoutComponent.Companion COMPANION =
- new RootLayoutComponent.Companion();
-
int mCurrentId = -1;
public RootLayoutComponent(int componentId, float x, float y,
@@ -52,7 +50,8 @@ public class RootLayoutComponent extends Component implements ComponentStartOper
@Override
public String toString() {
- return "ROOT (" + mX + ", " + mY + " - " + mWidth + " x " + mHeight + ") " + mVisibility;
+ return "ROOT " + mComponentId + " (" + mX + ", " + mY + " - "
+ + mWidth + " x " + mHeight + ") " + mVisibility;
}
@Override
@@ -61,18 +60,22 @@ public class RootLayoutComponent extends Component implements ComponentStartOper
+ "] = [" + mX + ", " + mY + ", " + mWidth + ", " + mHeight + "] " + mVisibility);
}
- public int getNextId() {
- mCurrentId--;
- return mCurrentId;
- }
-
- public void assignIds() {
+ /**
+ * Traverse the hierarchy and assign generated ids to component without ids.
+ * Most components would already have ids assigned during the document creation, but this
+ * allow us to take care of any components added during the inflation.
+ *
+ * @param lastId the last known generated id
+ */
+ public void assignIds(int lastId) {
+ mCurrentId = lastId;
assignId(this);
}
- void assignId(Component component) {
+ private void assignId(Component component) {
if (component.mComponentId == -1) {
- component.mComponentId = getNextId();
+ mCurrentId--;
+ component.mComponentId = mCurrentId;
}
for (Operation op : component.mList) {
if (op instanceof Component) {
@@ -135,39 +138,42 @@ public class RootLayoutComponent extends Component implements ComponentStartOper
for (Operation c : component.mList) {
if (c instanceof ComponentModifiers) {
((ComponentModifiers) c).serializeToString(indent + 1, serializer);
- }
- if (c instanceof Component) {
+ } else if (c instanceof Component) {
displayHierarchy((Component) c, indent + 1, serializer);
+ } else if (c instanceof SerializableToString) {
+ ((SerializableToString) c).serializeToString(indent + 1, serializer);
}
}
}
- public static class Companion implements DocumentedCompanionOperation {
- @Override
- public String name() {
- return "RootLayout";
- }
+ public static String name() {
+ return "RootLayout";
+ }
- @Override
- public int id() {
- return Operations.LAYOUT_ROOT;
- }
+ public static int id() {
+ return Operations.LAYOUT_ROOT;
+ }
- public void apply(WireBuffer buffer) {
- buffer.start(Operations.LAYOUT_ROOT);
- }
+ public static void apply(WireBuffer buffer, int componentId) {
+ buffer.start(Operations.LAYOUT_ROOT);
+ buffer.writeInt(componentId);
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- operations.add(new RootLayoutComponent(
- -1, 0, 0, 0, 0, null, -1));
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int componentId = buffer.readInt();
+ operations.add(new RootLayoutComponent(
+ componentId, 0, 0, 0, 0, null, -1));
+ }
- @Override
- public void documentation(DocumentationBuilder doc) {
- doc.operation("Layout Operations", id(), name())
- .description("Root element for a document. Other components / layout managers "
- + "are children in the component tree starting from this Root component.");
- }
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", id(), name())
+ .field(INT, "COMPONENT_ID", "unique id for this component")
+ .description("Root element for a document. Other components / layout managers "
+ + "are children in the component tree starting from this Root component.");
+ }
+
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer, mComponentId);
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimateMeasure.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimateMeasure.java
index 7c6bef425eef..1ada733e2cb2 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimateMeasure.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimateMeasure.java
@@ -75,7 +75,7 @@ public class AnimateMeasure {
mP = Math.min(elapsed / (float) mDuration, 1f);
//mP = motionEasing.get(mP);
mVp = Math.min(elapsed / (float) mDurationVisibilityChange, 1f);
- mVp = mVisibilityEasing.get(mVp);
+ // mVp = mVisibilityEasing.get(mVp);
}
public PaintBundle paint = new PaintBundle();
@@ -101,7 +101,6 @@ public class AnimateMeasure {
}
}
- mComponent.mVisibility = mTarget.getVisibility();
if (mOriginal.getVisibility() != mTarget.getVisibility()) {
if (mTarget.getVisibility() == Component.Visibility.GONE) {
switch (mExitAnimation) {
@@ -256,7 +255,7 @@ public class AnimateMeasure {
} else {
mComponent.paintingComponent(context);
}
- } else {
+ } else if (mTarget.getVisibility() == Component.Visibility.VISIBLE) {
mComponent.paintingComponent(context);
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimationSpec.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimationSpec.java
index 386d365ec033..0f7db36e8e01 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimationSpec.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimationSpec.java
@@ -15,11 +15,13 @@
*/
package com.android.internal.widget.remotecompose.core.operations.layout.animation;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import com.android.internal.widget.remotecompose.core.operations.utilities.easing.GeneralEasing;
import java.util.List;
@@ -28,9 +30,6 @@ import java.util.List;
* Basic component animation spec
*/
public class AnimationSpec implements Operation {
-
- public static final AnimationSpec.Companion COMPANION = new AnimationSpec.Companion();
-
int mAnimationId = -1;
int mMotionDuration = 300;
int mMotionEasingType = GeneralEasing.CUBIC_STANDARD;
@@ -103,7 +102,7 @@ public class AnimationSpec implements Operation {
@Override
public void write(WireBuffer buffer) {
- Companion.apply(buffer, mAnimationId, mMotionDuration, mMotionEasingType,
+ apply(buffer, mAnimationId, mMotionDuration, mMotionEasingType,
mVisibilityDuration, mVisibilityEasingType, mEnterAnimation, mExitAnimation);
}
@@ -117,70 +116,77 @@ public class AnimationSpec implements Operation {
return (indent != null ? indent : "") + toString();
}
- public static class Companion implements CompanionOperation {
- @Override
- public String name() {
- return "AnimationSpec";
- }
+ public static String name() {
+ return "AnimationSpec";
+ }
- @Override
- public int id() {
- return Operations.ANIMATION_SPEC;
- }
+ public static int id() {
+ return Operations.ANIMATION_SPEC;
+ }
- public static int animationToInt(ANIMATION animation) {
- return animation.ordinal();
- }
+ public static int animationToInt(ANIMATION animation) {
+ return animation.ordinal();
+ }
- public static ANIMATION intToAnimation(int value) {
- switch (value) {
- case 0:
- return ANIMATION.FADE_IN;
- case 1:
- return ANIMATION.FADE_OUT;
- case 2:
- return ANIMATION.SLIDE_LEFT;
- case 3:
- return ANIMATION.SLIDE_RIGHT;
- case 4:
- return ANIMATION.SLIDE_TOP;
- case 5:
- return ANIMATION.SLIDE_BOTTOM;
- case 6:
- return ANIMATION.ROTATE;
- case 7:
- return ANIMATION.PARTICLE;
- default:
- return ANIMATION.FADE_IN;
- }
+ public static ANIMATION intToAnimation(int value) {
+ switch (value) {
+ case 0:
+ return ANIMATION.FADE_IN;
+ case 1:
+ return ANIMATION.FADE_OUT;
+ case 2:
+ return ANIMATION.SLIDE_LEFT;
+ case 3:
+ return ANIMATION.SLIDE_RIGHT;
+ case 4:
+ return ANIMATION.SLIDE_TOP;
+ case 5:
+ return ANIMATION.SLIDE_BOTTOM;
+ case 6:
+ return ANIMATION.ROTATE;
+ case 7:
+ return ANIMATION.PARTICLE;
+ default:
+ return ANIMATION.FADE_IN;
}
+ }
- public static void apply(WireBuffer buffer, int animationId, int motionDuration,
- int motionEasingType, int visibilityDuration,
- int visibilityEasingType, ANIMATION enterAnimation,
- ANIMATION exitAnimation) {
- buffer.start(Operations.ANIMATION_SPEC);
- buffer.writeInt(animationId);
- buffer.writeInt(motionDuration);
- buffer.writeInt(motionEasingType);
- buffer.writeInt(visibilityDuration);
- buffer.writeInt(visibilityEasingType);
- buffer.writeInt(animationToInt(enterAnimation));
- buffer.writeInt(animationToInt(exitAnimation));
- }
+ public static void apply(WireBuffer buffer, int animationId, int motionDuration,
+ int motionEasingType, int visibilityDuration,
+ int visibilityEasingType, ANIMATION enterAnimation,
+ ANIMATION exitAnimation) {
+ buffer.start(Operations.ANIMATION_SPEC);
+ buffer.writeInt(animationId);
+ buffer.writeInt(motionDuration);
+ buffer.writeInt(motionEasingType);
+ buffer.writeInt(visibilityDuration);
+ buffer.writeInt(visibilityEasingType);
+ buffer.writeInt(animationToInt(enterAnimation));
+ buffer.writeInt(animationToInt(exitAnimation));
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int animationId = buffer.readInt();
+ int motionDuration = buffer.readInt();
+ int motionEasingType = buffer.readInt();
+ int visibilityDuration = buffer.readInt();
+ int visibilityEasingType = buffer.readInt();
+ ANIMATION enterAnimation = intToAnimation(buffer.readInt());
+ ANIMATION exitAnimation = intToAnimation(buffer.readInt());
+ AnimationSpec op = new AnimationSpec(animationId, motionDuration, motionEasingType,
+ visibilityDuration, visibilityEasingType, enterAnimation, exitAnimation);
+ operations.add(op);
+ }
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations",
+ id(),
+ name())
+ .description("define the animation")
+ .field(INT, "animationId", "")
+ .field(INT, "motionDuration", "")
+ .field(INT, "motionEasingType", "")
+ .field(INT, "visibilityDuration", "")
+ .field(INT, "visibilityEasingType", "");
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int animationId = buffer.readInt();
- int motionDuration = buffer.readInt();
- int motionEasingType = buffer.readInt();
- int visibilityDuration = buffer.readInt();
- int visibilityEasingType = buffer.readInt();
- ANIMATION enterAnimation = intToAnimation(buffer.readInt());
- ANIMATION exitAnimation = intToAnimation(buffer.readInt());
- AnimationSpec op = new AnimationSpec(animationId, motionDuration, motionEasingType,
- visibilityDuration, visibilityEasingType, enterAnimation, exitAnimation);
- operations.add(op);
- }
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/BoxLayout.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/BoxLayout.java
index fea8dd2de209..88a49a666cd7 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/BoxLayout.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/BoxLayout.java
@@ -22,7 +22,6 @@ import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
-import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.Component;
import com.android.internal.widget.remotecompose.core.operations.layout.ComponentStartOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.measure.ComponentMeasure;
@@ -42,7 +41,6 @@ public class BoxLayout extends LayoutManager implements ComponentStartOperation
public static final int TOP = 4;
public static final int BOTTOM = 5;
- public static final BoxLayout.Companion COMPANION = new BoxLayout.Companion();
int mHorizontalPositioning;
int mVerticalPositioning;
@@ -127,63 +125,63 @@ public class BoxLayout extends LayoutManager implements ComponentStartOperation
}
m.setX(tx);
m.setY(ty);
- m.setVisibility(child.mVisibility);
}
}
- public static class Companion implements DocumentedCompanionOperation {
- @Override
- public String name() {
- return "BoxLayout";
- }
+ public static String name() {
+ return "BoxLayout";
+ }
- @Override
- public int id() {
- return Operations.LAYOUT_BOX;
- }
+ public static int id() {
+ return Operations.LAYOUT_BOX;
+ }
- public void apply(WireBuffer buffer, int componentId, int animationId,
- int horizontalPositioning, int verticalPositioning) {
- buffer.start(Operations.LAYOUT_BOX);
- buffer.writeInt(componentId);
- buffer.writeInt(animationId);
- buffer.writeInt(horizontalPositioning);
- buffer.writeInt(verticalPositioning);
- }
+ public static void apply(WireBuffer buffer, int componentId, int animationId,
+ int horizontalPositioning, int verticalPositioning) {
+ buffer.start(Operations.LAYOUT_BOX);
+ buffer.writeInt(componentId);
+ buffer.writeInt(animationId);
+ buffer.writeInt(horizontalPositioning);
+ buffer.writeInt(verticalPositioning);
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int componentId = buffer.readInt();
- int animationId = buffer.readInt();
- int horizontalPositioning = buffer.readInt();
- int verticalPositioning = buffer.readInt();
- operations.add(new BoxLayout(null, componentId, animationId,
- horizontalPositioning, verticalPositioning));
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int componentId = buffer.readInt();
+ int animationId = buffer.readInt();
+ int horizontalPositioning = buffer.readInt();
+ int verticalPositioning = buffer.readInt();
+ operations.add(new BoxLayout(null, componentId, animationId,
+ horizontalPositioning, verticalPositioning));
+ }
- @Override
- public void documentation(DocumentationBuilder doc) {
- doc.operation("Layout Operations", id(), name())
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", id(), name())
.description("Box layout implementation.\n\n"
- + "Child components are laid out independently from one another,\n"
- + " and painted in their hierarchy order (first children drawn"
- + "before the latter). Horizontal and Vertical positioning"
- + "are supported.")
+ + "Child components are laid out independently from one another,\n"
+ + " and painted in their hierarchy order (first children drawn"
+ + "before the latter). Horizontal and Vertical positioning"
+ + "are supported.")
.examplesDimension(150, 100)
.exampleImage("Top", "layout-BoxLayout-start-top.png")
.exampleImage("Center", "layout-BoxLayout-center-center.png")
.exampleImage("Bottom", "layout-BoxLayout-end-bottom.png")
.field(INT, "COMPONENT_ID", "unique id for this component")
.field(INT, "ANIMATION_ID", "id used to match components,"
- + " for animation purposes")
+ + " for animation purposes")
.field(INT, "HORIZONTAL_POSITIONING", "horizontal positioning value")
- .possibleValues("START", BoxLayout.START)
- .possibleValues("CENTER", BoxLayout.CENTER)
- .possibleValues("END", BoxLayout.END)
+ .possibleValues("START", BoxLayout.START)
+ .possibleValues("CENTER", BoxLayout.CENTER)
+ .possibleValues("END", BoxLayout.END)
.field(INT, "VERTICAL_POSITIONING", "vertical positioning value")
- .possibleValues("TOP", BoxLayout.TOP)
- .possibleValues("CENTER", BoxLayout.CENTER)
- .possibleValues("BOTTOM", BoxLayout.BOTTOM);
- }
+ .possibleValues("TOP", BoxLayout.TOP)
+ .possibleValues("CENTER", BoxLayout.CENTER)
+ .possibleValues("BOTTOM", BoxLayout.BOTTOM);
+ }
+
+
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer, mComponentId, mAnimationId,
+ mHorizontalPositioning, mVerticalPositioning);
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/CanvasLayout.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/CanvasLayout.java
new file mode 100644
index 000000000000..bce7a77abb36
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/CanvasLayout.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.operations.layout.managers;
+
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
+import com.android.internal.widget.remotecompose.core.Operation;
+import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.PaintContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+import com.android.internal.widget.remotecompose.core.operations.layout.Component;
+import com.android.internal.widget.remotecompose.core.operations.layout.measure.ComponentMeasure;
+import com.android.internal.widget.remotecompose.core.operations.layout.measure.MeasurePass;
+
+import java.util.List;
+
+public class CanvasLayout extends BoxLayout {
+ public CanvasLayout(Component parent, int componentId, int animationId,
+ float x, float y, float width, float height) {
+ super(parent, componentId, animationId, x, y, width, height, 0, 0);
+ }
+
+ public CanvasLayout(Component parent, int componentId, int animationId) {
+ this(parent, componentId, animationId, 0, 0, 0, 0);
+ }
+
+ @Override
+ public String toString() {
+ return "CANVAS [" + mComponentId + ":" + mAnimationId + "] (" + mX + ", "
+ + mY + " - " + mWidth + " x " + mHeight + ") " + mVisibility;
+ }
+
+ protected String getSerializedName() {
+ return "CANVAS";
+ }
+
+ public static String name() {
+ return "CanvasLayout";
+ }
+
+ public static int id() {
+ return Operations.LAYOUT_CANVAS;
+ }
+
+ public static void apply(WireBuffer buffer, int componentId, int animationId) {
+ buffer.start(Operations.LAYOUT_CANVAS);
+ buffer.writeInt(componentId);
+ buffer.writeInt(animationId);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int componentId = buffer.readInt();
+ int animationId = buffer.readInt();
+ operations.add(new CanvasLayout(null, componentId, animationId));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", id(), name())
+ .description("Canvas implementation. Encapsulate draw operations.\n\n")
+ .field(INT, "COMPONENT_ID", "unique id for this component")
+ .field(INT, "ANIMATION_ID", "id used to match components,"
+ + " for animation purposes");
+ }
+
+ @Override
+ public void internalLayoutMeasure(PaintContext context,
+ MeasurePass measure) {
+ ComponentMeasure selfMeasure = measure.get(this);
+ float selfWidth = selfMeasure.getW() - mPaddingLeft - mPaddingRight;
+ float selfHeight = selfMeasure.getH() - mPaddingTop - mPaddingBottom;
+ for (Component child : mChildrenComponents) {
+ ComponentMeasure m = measure.get(child);
+ m.setX(0f);
+ m.setY(0f);
+ m.setW(selfWidth);
+ m.setH(selfHeight);
+ }
+ }
+
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer, mComponentId, mAnimationId);
+ }
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/ColumnLayout.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/ColumnLayout.java
index a1a2de5302b8..48d966ebe9a7 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/ColumnLayout.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/ColumnLayout.java
@@ -23,7 +23,6 @@ import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
-import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.Component;
import com.android.internal.widget.remotecompose.core.operations.layout.ComponentStartOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.LayoutComponent;
@@ -48,8 +47,6 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati
public static final int SPACE_EVENLY = 7;
public static final int SPACE_AROUND = 8;
- public static final ColumnLayout.Companion COMPANION = new ColumnLayout.Companion();
-
int mHorizontalPositioning;
int mVerticalPositioning;
float mSpacedBy = 0f;
@@ -64,7 +61,7 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati
}
public ColumnLayout(Component parent, int componentId, int animationId,
- int horizontalPositioning, int verticalPositioning, float spacedBy) {
+ int horizontalPositioning, int verticalPositioning, float spacedBy) {
this(parent, componentId, animationId, 0, 0, 0, 0,
horizontalPositioning, verticalPositioning, spacedBy);
}
@@ -214,7 +211,6 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati
}
childMeasure.setX(tx);
childMeasure.setY(ty);
- childMeasure.setVisibility(child.mVisibility);
ty += childMeasure.getH();
if (mVerticalPositioning == SPACE_BETWEEN
|| mVerticalPositioning == SPACE_AROUND
@@ -226,66 +222,66 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati
DebugLog.e();
}
- public static class Companion implements DocumentedCompanionOperation {
- @Override
- public String name() {
- return "ColumnLayout";
- }
+ public static String name() {
+ return "ColumnLayout";
+ }
- @Override
- public int id() {
- return Operations.LAYOUT_COLUMN;
- }
+ public static int id() {
+ return Operations.LAYOUT_COLUMN;
+ }
- public void apply(WireBuffer buffer, int componentId, int animationId,
- int horizontalPositioning, int verticalPositioning, float spacedBy) {
- buffer.start(Operations.LAYOUT_COLUMN);
- buffer.writeInt(componentId);
- buffer.writeInt(animationId);
- buffer.writeInt(horizontalPositioning);
- buffer.writeInt(verticalPositioning);
- buffer.writeFloat(spacedBy);
- }
+ public static void apply(WireBuffer buffer, int componentId, int animationId,
+ int horizontalPositioning, int verticalPositioning, float spacedBy) {
+ buffer.start(Operations.LAYOUT_COLUMN);
+ buffer.writeInt(componentId);
+ buffer.writeInt(animationId);
+ buffer.writeInt(horizontalPositioning);
+ buffer.writeInt(verticalPositioning);
+ buffer.writeFloat(spacedBy);
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int componentId = buffer.readInt();
- int animationId = buffer.readInt();
- int horizontalPositioning = buffer.readInt();
- int verticalPositioning = buffer.readInt();
- float spacedBy = buffer.readFloat();
- operations.add(new ColumnLayout(null, componentId, animationId,
- horizontalPositioning, verticalPositioning, spacedBy));
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int componentId = buffer.readInt();
+ int animationId = buffer.readInt();
+ int horizontalPositioning = buffer.readInt();
+ int verticalPositioning = buffer.readInt();
+ float spacedBy = buffer.readFloat();
+ operations.add(new ColumnLayout(null, componentId, animationId,
+ horizontalPositioning, verticalPositioning, spacedBy));
+ }
- @Override
- public void documentation(DocumentationBuilder doc) {
- doc.operation("Layout Operations", id(), name())
- .description("Column layout implementation, positioning components one"
- + " after the other vertically.\n\n"
- + "It supports weight and horizontal/vertical positioning.")
- .examplesDimension(100, 400)
- .exampleImage("Top", "layout-ColumnLayout-start-top.png")
- .exampleImage("Center", "layout-ColumnLayout-start-center.png")
- .exampleImage("Bottom", "layout-ColumnLayout-start-bottom.png")
- .exampleImage("SpaceEvenly", "layout-ColumnLayout-start-space-evenly.png")
- .exampleImage("SpaceAround", "layout-ColumnLayout-start-space-around.png")
- .exampleImage("SpaceBetween", "layout-ColumnLayout-start-space-between.png")
- .field(INT, "COMPONENT_ID", "unique id for this component")
- .field(INT, "ANIMATION_ID", "id used to match components,"
- + " for animation purposes")
- .field(INT, "HORIZONTAL_POSITIONING", "horizontal positioning value")
- .possibleValues("START", ColumnLayout.START)
- .possibleValues("CENTER", ColumnLayout.CENTER)
- .possibleValues("END", ColumnLayout.END)
- .field(INT, "VERTICAL_POSITIONING", "vertical positioning value")
- .possibleValues("TOP", ColumnLayout.TOP)
- .possibleValues("CENTER", ColumnLayout.CENTER)
- .possibleValues("BOTTOM", ColumnLayout.BOTTOM)
- .possibleValues("SPACE_BETWEEN", ColumnLayout.SPACE_BETWEEN)
- .possibleValues("SPACE_EVENLY", ColumnLayout.SPACE_EVENLY)
- .possibleValues("SPACE_AROUND", ColumnLayout.SPACE_AROUND)
- .field(FLOAT, "SPACED_BY", "Horizontal spacing between components");
- }
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", id(), name())
+ .description("Column layout implementation, positioning components one"
+ + " after the other vertically.\n\n"
+ + "It supports weight and horizontal/vertical positioning.")
+ .examplesDimension(100, 400)
+ .exampleImage("Top", "layout-ColumnLayout-start-top.png")
+ .exampleImage("Center", "layout-ColumnLayout-start-center.png")
+ .exampleImage("Bottom", "layout-ColumnLayout-start-bottom.png")
+ .exampleImage("SpaceEvenly", "layout-ColumnLayout-start-space-evenly.png")
+ .exampleImage("SpaceAround", "layout-ColumnLayout-start-space-around.png")
+ .exampleImage("SpaceBetween", "layout-ColumnLayout-start-space-between.png")
+ .field(INT, "COMPONENT_ID", "unique id for this component")
+ .field(INT, "ANIMATION_ID", "id used to match components,"
+ + " for animation purposes")
+ .field(INT, "HORIZONTAL_POSITIONING", "horizontal positioning value")
+ .possibleValues("START", ColumnLayout.START)
+ .possibleValues("CENTER", ColumnLayout.CENTER)
+ .possibleValues("END", ColumnLayout.END)
+ .field(INT, "VERTICAL_POSITIONING", "vertical positioning value")
+ .possibleValues("TOP", ColumnLayout.TOP)
+ .possibleValues("CENTER", ColumnLayout.CENTER)
+ .possibleValues("BOTTOM", ColumnLayout.BOTTOM)
+ .possibleValues("SPACE_BETWEEN", ColumnLayout.SPACE_BETWEEN)
+ .possibleValues("SPACE_EVENLY", ColumnLayout.SPACE_EVENLY)
+ .possibleValues("SPACE_AROUND", ColumnLayout.SPACE_AROUND)
+ .field(FLOAT, "SPACED_BY", "Horizontal spacing between components");
+ }
+
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer, mComponentId, mAnimationId,
+ mHorizontalPositioning, mVerticalPositioning, mSpacedBy);
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/LayoutManager.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/LayoutManager.java
index 48906837ef94..3a366172a51f 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/LayoutManager.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/LayoutManager.java
@@ -109,12 +109,22 @@ public abstract class LayoutManager extends LayoutComponent implements Measurabl
if (!hasWrap) {
computeSize(context, 0f, measuredWidth, 0f, measuredHeight, measure);
}
+
+ if (mContent != null) {
+ ComponentMeasure cm = measure.get(mContent);
+ cm.setX(0f);
+ cm.setY(0f);
+ cm.setW(measuredWidth);
+ cm.setH(measuredHeight);
+ }
+
measuredWidth += mMarginLeft + mMarginRight;
measuredHeight += mMarginTop + mMarginBottom;
ComponentMeasure m = measure.get(this);
m.setW(measuredWidth);
m.setH(measuredHeight);
+ m.setVisibility(mScheduledVisibility);
internalLayoutMeasure(context, measure);
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/RowLayout.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/RowLayout.java
index 07e2ea186ca5..5e452f363c06 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/RowLayout.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/RowLayout.java
@@ -23,7 +23,6 @@ import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
-import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.Component;
import com.android.internal.widget.remotecompose.core.operations.layout.ComponentStartOperation;
import com.android.internal.widget.remotecompose.core.operations.layout.LayoutComponent;
@@ -48,8 +47,6 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation
public static final int SPACE_EVENLY = 7;
public static final int SPACE_AROUND = 8;
- public static final RowLayout.Companion COMPANION = new RowLayout.Companion();
-
int mHorizontalPositioning;
int mVerticalPositioning;
float mSpacedBy = 0f;
@@ -68,6 +65,7 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation
this(parent, componentId, animationId, 0, 0, 0, 0,
horizontalPositioning, verticalPositioning, spacedBy);
}
+
@Override
public String toString() {
return "ROW [" + mComponentId + ":" + mAnimationId + "] (" + mX + ", "
@@ -217,7 +215,6 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation
}
childMeasure.setX(tx);
childMeasure.setY(ty);
- childMeasure.setVisibility(child.mVisibility);
tx += childMeasure.getW();
if (mHorizontalPositioning == SPACE_BETWEEN
|| mHorizontalPositioning == SPACE_AROUND
@@ -229,66 +226,66 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation
DebugLog.e();
}
- public static class Companion implements DocumentedCompanionOperation {
- @Override
- public String name() {
- return "RowLayout";
- }
+ public static String name() {
+ return "RowLayout";
+ }
- @Override
- public int id() {
- return Operations.LAYOUT_ROW;
- }
+ public static int id() {
+ return Operations.LAYOUT_ROW;
+ }
- public void apply(WireBuffer buffer, int componentId, int animationId,
- int horizontalPositioning, int verticalPositioning, float spacedBy) {
- buffer.start(Operations.LAYOUT_ROW);
- buffer.writeInt(componentId);
- buffer.writeInt(animationId);
- buffer.writeInt(horizontalPositioning);
- buffer.writeInt(verticalPositioning);
- buffer.writeFloat(spacedBy);
- }
+ public static void apply(WireBuffer buffer, int componentId, int animationId,
+ int horizontalPositioning, int verticalPositioning, float spacedBy) {
+ buffer.start(Operations.LAYOUT_ROW);
+ buffer.writeInt(componentId);
+ buffer.writeInt(animationId);
+ buffer.writeInt(horizontalPositioning);
+ buffer.writeInt(verticalPositioning);
+ buffer.writeFloat(spacedBy);
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int componentId = buffer.readInt();
- int animationId = buffer.readInt();
- int horizontalPositioning = buffer.readInt();
- int verticalPositioning = buffer.readInt();
- float spacedBy = buffer.readFloat();
- operations.add(new RowLayout(null, componentId, animationId,
- horizontalPositioning, verticalPositioning, spacedBy));
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int componentId = buffer.readInt();
+ int animationId = buffer.readInt();
+ int horizontalPositioning = buffer.readInt();
+ int verticalPositioning = buffer.readInt();
+ float spacedBy = buffer.readFloat();
+ operations.add(new RowLayout(null, componentId, animationId,
+ horizontalPositioning, verticalPositioning, spacedBy));
+ }
- @Override
- public void documentation(DocumentationBuilder doc) {
- doc.operation("Layout Operations", id(), name())
- .description("Row layout implementation, positioning components one"
- + " after the other horizontally.\n\n"
- + "It supports weight and horizontal/vertical positioning.")
- .examplesDimension(400, 100)
- .exampleImage("Start", "layout-RowLayout-start-top.png")
- .exampleImage("Center", "layout-RowLayout-center-top.png")
- .exampleImage("End", "layout-RowLayout-end-top.png")
- .exampleImage("SpaceEvenly", "layout-RowLayout-space-evenly-top.png")
- .exampleImage("SpaceAround", "layout-RowLayout-space-around-top.png")
- .exampleImage("SpaceBetween", "layout-RowLayout-space-between-top.png")
- .field(INT, "COMPONENT_ID", "unique id for this component")
- .field(INT, "ANIMATION_ID", "id used to match components,"
- + " for animation purposes")
- .field(INT, "HORIZONTAL_POSITIONING", "horizontal positioning value")
- .possibleValues("START", RowLayout.START)
- .possibleValues("CENTER", RowLayout.CENTER)
- .possibleValues("END", RowLayout.END)
- .possibleValues("SPACE_BETWEEN", RowLayout.SPACE_BETWEEN)
- .possibleValues("SPACE_EVENLY", RowLayout.SPACE_EVENLY)
- .possibleValues("SPACE_AROUND", RowLayout.SPACE_AROUND)
- .field(INT, "VERTICAL_POSITIONING", "vertical positioning value")
- .possibleValues("TOP", RowLayout.TOP)
- .possibleValues("CENTER", RowLayout.CENTER)
- .possibleValues("BOTTOM", RowLayout.BOTTOM)
- .field(FLOAT, "SPACED_BY", "Horizontal spacing between components");
- }
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", id(), name())
+ .description("Row layout implementation, positioning components one"
+ + " after the other horizontally.\n\n"
+ + "It supports weight and horizontal/vertical positioning.")
+ .examplesDimension(400, 100)
+ .exampleImage("Start", "layout-RowLayout-start-top.png")
+ .exampleImage("Center", "layout-RowLayout-center-top.png")
+ .exampleImage("End", "layout-RowLayout-end-top.png")
+ .exampleImage("SpaceEvenly", "layout-RowLayout-space-evenly-top.png")
+ .exampleImage("SpaceAround", "layout-RowLayout-space-around-top.png")
+ .exampleImage("SpaceBetween", "layout-RowLayout-space-between-top.png")
+ .field(INT, "COMPONENT_ID", "unique id for this component")
+ .field(INT, "ANIMATION_ID", "id used to match components,"
+ + " for animation purposes")
+ .field(INT, "HORIZONTAL_POSITIONING", "horizontal positioning value")
+ .possibleValues("START", RowLayout.START)
+ .possibleValues("CENTER", RowLayout.CENTER)
+ .possibleValues("END", RowLayout.END)
+ .possibleValues("SPACE_BETWEEN", RowLayout.SPACE_BETWEEN)
+ .possibleValues("SPACE_EVENLY", RowLayout.SPACE_EVENLY)
+ .possibleValues("SPACE_AROUND", RowLayout.SPACE_AROUND)
+ .field(INT, "VERTICAL_POSITIONING", "vertical positioning value")
+ .possibleValues("TOP", RowLayout.TOP)
+ .possibleValues("CENTER", RowLayout.CENTER)
+ .possibleValues("BOTTOM", RowLayout.BOTTOM)
+ .field(FLOAT, "SPACED_BY", "Horizontal spacing between components");
+ }
+
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer, mComponentId, mAnimationId,
+ mHorizontalPositioning, mVerticalPositioning, mSpacedBy);
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/TextLayout.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/TextLayout.java
new file mode 100644
index 000000000000..23705003179c
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/TextLayout.java
@@ -0,0 +1,245 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.operations.layout.managers;
+
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
+import com.android.internal.widget.remotecompose.core.Operation;
+import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.PaintContext;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.VariableSupport;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+import com.android.internal.widget.remotecompose.core.operations.layout.Component;
+import com.android.internal.widget.remotecompose.core.operations.layout.ComponentStartOperation;
+import com.android.internal.widget.remotecompose.core.operations.layout.measure.MeasurePass;
+import com.android.internal.widget.remotecompose.core.operations.layout.measure.Size;
+import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle;
+import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
+
+import java.util.List;
+
+/**
+ * Text component, referencing a text id
+ */
+public class TextLayout extends LayoutManager implements ComponentStartOperation, VariableSupport {
+
+ private static final boolean DEBUG = false;
+ private int mTextId = -1;
+ private int mColor = 0;
+ private float mFontSize = 16f;
+ private int mFontStyle = 0;
+ private float mFontWeight = 400f;
+ private int mFontFamilyId = -1;
+
+ private int mType = -1;
+ private float mTextX;
+ private float mTextY;
+
+ private String mCachedString = "";
+
+ @Override
+ public void registerListening(RemoteContext context) {
+ if (mTextId != -1) {
+ context.listensTo(mTextId, this);
+ }
+ }
+
+ @Override
+ public void updateVariables(RemoteContext context) {
+ mCachedString = context.getText(mTextId);
+ if (mType == -1) {
+ if (mFontFamilyId != -1) {
+ String fontFamily = context.getText(mFontFamilyId);
+ if (fontFamily != null) {
+ mType = 0; // default
+ if (fontFamily.equalsIgnoreCase("default")) {
+ mType = 0;
+ } else if (fontFamily.equalsIgnoreCase("sans-serif")) {
+ mType = 1;
+ } else if (fontFamily.equalsIgnoreCase("serif")) {
+ mType = 2;
+ } else if (fontFamily.equalsIgnoreCase("monospace")) {
+ mType = 3;
+ }
+ }
+ } else {
+ mType = 0;
+ }
+ }
+ mNeedsMeasure = true;
+ needsRepaint();
+ }
+
+ public TextLayout(Component parent, int componentId, int animationId,
+ float x, float y, float width, float height,
+ int textId, int color, float fontSize,
+ int fontStyle, float fontWeight, int fontFamilyId) {
+ super(parent, componentId, animationId, x, y, width, height);
+ mTextId = textId;
+ mColor = color;
+ mFontSize = fontSize;
+ mFontStyle = fontStyle;
+ mFontWeight = fontWeight;
+ mFontFamilyId = fontFamilyId;
+ }
+
+ public TextLayout(Component parent, int componentId, int animationId,
+ int textId, int color, float fontSize,
+ int fontStyle, float fontWeight, int fontFamilyId) {
+ this(parent, componentId, animationId, 0, 0, 0, 0,
+ textId, color, fontSize, fontStyle, fontWeight, fontFamilyId);
+ }
+
+ public PaintBundle mPaint = new PaintBundle();
+
+ @Override
+ public void paintingComponent(PaintContext context) {
+ context.save();
+ context.translate(mX, mY);
+ mComponentModifiers.paint(context);
+ float tx = mPaddingLeft;
+ float ty = mPaddingTop;
+ context.translate(tx, ty);
+
+ //////////////////////////////////////////////////////////
+ // Text content
+ //////////////////////////////////////////////////////////
+ context.savePaint();
+ mPaint.reset();
+ mPaint.setStyle(PaintBundle.STYLE_FILL);
+ mPaint.setColor(mColor);
+ mPaint.setTextSize(mFontSize);
+ mPaint.setTextStyle(mType, (int) mFontWeight, mFontStyle == 1);
+ context.applyPaint(mPaint);
+ int length = mCachedString.length();
+ context.drawTextRun(mTextId, 0, length, 0, 0, mTextX, mTextY, false);
+ if (DEBUG) {
+ mPaint.setStyle(PaintBundle.STYLE_FILL_AND_STROKE);
+ mPaint.setColor(1f, 1F, 1F, 1F);
+ mPaint.setStrokeWidth(3f);
+ context.applyPaint(mPaint);
+ context.drawLine(0f, 0f, mWidth, mHeight);
+ context.drawLine(0f, mHeight, mWidth, 0f);
+ mPaint.setColor(1f, 0F, 0F, 1F);
+ mPaint.setStrokeWidth(1f);
+ context.applyPaint(mPaint);
+ context.drawLine(0f, 0f, mWidth, mHeight);
+ context.drawLine(0f, mHeight, mWidth, 0f);
+ }
+ context.restorePaint();
+ //////////////////////////////////////////////////////////
+
+ context.translate(-tx, -ty);
+ context.restore();
+ }
+
+ @Override
+ public String toString() {
+ return "TEXT_LAYOUT [" + mComponentId + ":" + mAnimationId + "] (" + mX + ", "
+ + mY + " - " + mWidth + " x " + mHeight + ") " + mVisibility;
+ }
+
+ protected String getSerializedName() {
+ return "TEXT_LAYOUT";
+ }
+
+ @Override
+ public void serializeToString(int indent, StringSerializer serializer) {
+ serializer.append(indent, getSerializedName() + " [" + mComponentId
+ + ":" + mAnimationId + "] = "
+ + "[" + mX + ", " + mY + ", " + mWidth + ", " + mHeight + "] "
+ + mVisibility + " (" + mTextId + ":\"" + mCachedString + "\")"
+ );
+ }
+
+ @Override
+ public void computeWrapSize(PaintContext context, float maxWidth, float maxHeight,
+ MeasurePass measure, Size size) {
+ context.savePaint();
+ mPaint.reset();
+ mPaint.setTextSize(mFontSize);
+ mPaint.setTextStyle(mType, (int) mFontWeight, mFontStyle == 1);
+ context.applyPaint(mPaint);
+ float[] bounds = new float[4];
+ int flags = PaintContext.TEXT_MEASURE_FONT_HEIGHT;
+ context.getTextBounds(mTextId, 0, mCachedString.length(), flags, bounds);
+ context.restorePaint();
+ float w = bounds[2] - bounds[0];
+ float h = bounds[3] - bounds[1];
+ size.setWidth(w);
+ mTextX = -bounds[0];
+ size.setHeight(h);
+ mTextY = -bounds[1];
+ }
+
+ public static String name() {
+ return "TextLayout";
+ }
+
+ public static int id() {
+ return Operations.LAYOUT_TEXT;
+ }
+
+ public static void apply(WireBuffer buffer, int componentId, int animationId,
+ int textId, int color, float fontSize, int fontStyle,
+ float fontWeight, int fontFamilyId) {
+ buffer.start(id());
+ buffer.writeInt(componentId);
+ buffer.writeInt(animationId);
+ buffer.writeInt(textId);
+ buffer.writeInt(color);
+ buffer.writeFloat(fontSize);
+ buffer.writeInt(fontStyle);
+ buffer.writeFloat(fontWeight);
+ buffer.writeInt(fontFamilyId);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int componentId = buffer.readInt();
+ int animationId = buffer.readInt();
+ int textId = buffer.readInt();
+ int color = buffer.readInt();
+ float fontSize = buffer.readFloat();
+ int fontStyle = buffer.readInt();
+ float fontWeight = buffer.readFloat();
+ int fontFamilyId = buffer.readInt();
+ operations.add(new TextLayout(null, componentId, animationId, textId, color, fontSize,
+ fontStyle, fontWeight, fontFamilyId));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", id(), name())
+ .description("Text layout implementation.\n\n")
+ .field(INT, "COMPONENT_ID", "unique id for this component")
+ .field(INT, "ANIMATION_ID", "id used to match components,"
+ + " for animation purposes")
+ .field(INT, "COLOR", "text color")
+ .field(FLOAT, "FONT_SIZE", "font size")
+ .field(INT, "FONT_STYLE", "font style (0 = normal, 1 = italic)")
+ .field(FLOAT, "FONT_WEIGHT", "font weight (1-1000, normal = 400)")
+ .field(INT, "FONT_FAMILY_ID", "font family id");
+ }
+
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer, mComponentId, mAnimationId,
+ mTextId, mColor, mFontSize, mFontStyle,
+ mFontWeight, mFontFamilyId);
+ }
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BackgroundModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BackgroundModifierOperation.java
index 6f48aee845c6..f3e6a8e0aa22 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BackgroundModifierOperation.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BackgroundModifierOperation.java
@@ -15,12 +15,14 @@
*/
package com.android.internal.widget.remotecompose.core.operations.layout.modifiers;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle;
import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
@@ -30,10 +32,8 @@ import java.util.List;
* Component size-aware background draw
*/
public class BackgroundModifierOperation extends DecoratorModifierOperation {
-
- public static final BackgroundModifierOperation.Companion COMPANION =
- new BackgroundModifierOperation.Companion();
-
+ private static final int OP_CODE = Operations.MODIFIER_BACKGROUND;
+ private static final String CLASS_NAME = "BackgroundModifierOperation";
float mX;
float mY;
float mWidth;
@@ -62,7 +62,7 @@ public class BackgroundModifierOperation extends DecoratorModifierOperation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mX, mY, mWidth, mHeight, mR, mG, mB, mA, mShapeType);
+ apply(buffer, mX, mY, mWidth, mHeight, mR, mG, mB, mA, mShapeType);
}
@Override
@@ -84,55 +84,50 @@ public class BackgroundModifierOperation extends DecoratorModifierOperation {
return "BackgroundModifierOperation(" + mWidth + " x " + mHeight + ")";
}
- public static class Companion implements CompanionOperation {
-
-
- @Override
- public String name() {
- return "OrigamiBackground";
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
- @Override
- public int id() {
- return Operations.MODIFIER_BACKGROUND;
- }
+ public static int id() {
+ return OP_CODE;
+ }
- public void apply(WireBuffer buffer, float x, float y, float width, float height,
- float r, float g, float b, float a, int shapeType) {
- buffer.start(Operations.MODIFIER_BACKGROUND);
- buffer.writeFloat(x);
- buffer.writeFloat(y);
- buffer.writeFloat(width);
- buffer.writeFloat(height);
- buffer.writeFloat(r);
- buffer.writeFloat(g);
- buffer.writeFloat(b);
- buffer.writeFloat(a);
- // shape type
- buffer.writeInt(shapeType);
- }
+ public static void apply(WireBuffer buffer, float x, float y, float width, float height,
+ float r, float g, float b, float a, int shapeType) {
+ buffer.start(OP_CODE);
+ buffer.writeFloat(x);
+ buffer.writeFloat(y);
+ buffer.writeFloat(width);
+ buffer.writeFloat(height);
+ buffer.writeFloat(r);
+ buffer.writeFloat(g);
+ buffer.writeFloat(b);
+ buffer.writeFloat(a);
+ // shape type
+ buffer.writeInt(shapeType);
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- float x = buffer.readFloat();
- float y = buffer.readFloat();
- float width = buffer.readFloat();
- float height = buffer.readFloat();
- float r = buffer.readFloat();
- float g = buffer.readFloat();
- float b = buffer.readFloat();
- float a = buffer.readFloat();
- // shape type
- int shapeType = buffer.readInt();
- operations.add(new BackgroundModifierOperation(x, y, width, height,
- r, g, b, a, shapeType));
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ float x = buffer.readFloat();
+ float y = buffer.readFloat();
+ float width = buffer.readFloat();
+ float height = buffer.readFloat();
+ float r = buffer.readFloat();
+ float g = buffer.readFloat();
+ float b = buffer.readFloat();
+ float a = buffer.readFloat();
+ // shape type
+ int shapeType = buffer.readInt();
+ operations.add(new BackgroundModifierOperation(x, y, width, height,
+ r, g, b, a, shapeType));
}
+
@Override
public void paint(PaintContext context) {
context.savePaint();
mPaint.reset();
+ mPaint.setStyle(PaintBundle.STYLE_FILL);
mPaint.setColor(mR, mG, mB, mA);
context.applyPaint(mPaint);
if (mShapeType == ShapeType.RECTANGLE) {
@@ -143,4 +138,20 @@ public class BackgroundModifierOperation extends DecoratorModifierOperation {
}
context.restorePaint();
}
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Modifier Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("define the Background Modifier")
+ .field(FLOAT, "x", "")
+ .field(FLOAT, "y", "")
+ .field(FLOAT, "width", "")
+ .field(FLOAT, "height", "")
+ .field(FLOAT, "r", "")
+ .field(FLOAT, "g", "")
+ .field(FLOAT, "b", "")
+ .field(FLOAT, "a", "")
+ .field(FLOAT, "shapeType", "");
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BorderModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BorderModifierOperation.java
index 0b9c01b93896..4c83ec4e627e 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BorderModifierOperation.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BorderModifierOperation.java
@@ -15,12 +15,14 @@
*/
package com.android.internal.widget.remotecompose.core.operations.layout.modifiers;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle;
import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
@@ -30,9 +32,8 @@ import java.util.List;
* Component size-aware border draw
*/
public class BorderModifierOperation extends DecoratorModifierOperation {
-
- public static final BorderModifierOperation.Companion COMPANION =
- new BorderModifierOperation.Companion();
+ private static final int OP_CODE = Operations.MODIFIER_BORDER;
+ public static final String CLASS_NAME = "BorderModifierOperation";
float mX;
float mY;
@@ -75,7 +76,7 @@ public class BorderModifierOperation extends DecoratorModifierOperation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mX, mY, mWidth, mHeight, mBorderWidth, mRoundedCorner,
+ apply(buffer, mX, mY, mWidth, mHeight, mBorderWidth, mRoundedCorner,
mR, mG, mB, mA, mShapeType);
}
@@ -92,56 +93,52 @@ public class BorderModifierOperation extends DecoratorModifierOperation {
+ "color(" + mR + "," + mG + "," + mB + "," + mA + ")";
}
- public static class Companion implements CompanionOperation {
- @Override
- public String name() {
- return "BorderModifier";
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
- @Override
- public int id() {
- return Operations.MODIFIER_BORDER;
- }
+ public static int id() {
+ return OP_CODE;
+ }
- public void apply(WireBuffer buffer, float x, float y, float width, float height,
- float borderWidth, float roundedCorner,
- float r, float g, float b, float a,
- int shapeType) {
- buffer.start(Operations.MODIFIER_BORDER);
- buffer.writeFloat(x);
- buffer.writeFloat(y);
- buffer.writeFloat(width);
- buffer.writeFloat(height);
- buffer.writeFloat(borderWidth);
- buffer.writeFloat(roundedCorner);
- buffer.writeFloat(r);
- buffer.writeFloat(g);
- buffer.writeFloat(b);
- buffer.writeFloat(a);
- // shape type
- buffer.writeInt(shapeType);
- }
+ public static void apply(WireBuffer buffer, float x, float y, float width, float height,
+ float borderWidth, float roundedCorner,
+ float r, float g, float b, float a,
+ int shapeType) {
+ buffer.start(OP_CODE);
+ buffer.writeFloat(x);
+ buffer.writeFloat(y);
+ buffer.writeFloat(width);
+ buffer.writeFloat(height);
+ buffer.writeFloat(borderWidth);
+ buffer.writeFloat(roundedCorner);
+ buffer.writeFloat(r);
+ buffer.writeFloat(g);
+ buffer.writeFloat(b);
+ buffer.writeFloat(a);
+ // shape type
+ buffer.writeInt(shapeType);
+ }
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- float x = buffer.readFloat();
- float y = buffer.readFloat();
- float width = buffer.readFloat();
- float height = buffer.readFloat();
- float bw = buffer.readFloat();
- float rc = buffer.readFloat();
- float r = buffer.readFloat();
- float g = buffer.readFloat();
- float b = buffer.readFloat();
- float a = buffer.readFloat();
- // shape type
- int shapeType = buffer.readInt();
- operations.add(new BorderModifierOperation(x, y, width, height, bw,
- rc, r, g, b, a, shapeType));
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ float x = buffer.readFloat();
+ float y = buffer.readFloat();
+ float width = buffer.readFloat();
+ float height = buffer.readFloat();
+ float bw = buffer.readFloat();
+ float rc = buffer.readFloat();
+ float r = buffer.readFloat();
+ float g = buffer.readFloat();
+ float b = buffer.readFloat();
+ float a = buffer.readFloat();
+ // shape type
+ int shapeType = buffer.readInt();
+ operations.add(new BorderModifierOperation(x, y, width, height, bw,
+ rc, r, g, b, a, shapeType));
}
+
@Override
public void paint(PaintContext context) {
context.savePaint();
@@ -161,4 +158,22 @@ public class BorderModifierOperation extends DecoratorModifierOperation {
}
context.restorePaint();
}
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Modifier Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("define the Border Modifier")
+ .field(FLOAT, "x", "")
+ .field(FLOAT, "y", "")
+ .field(FLOAT, "width", "")
+ .field(FLOAT, "height", "")
+ .field(FLOAT, "borderWidth", "")
+ .field(FLOAT, "roundedCorner", "")
+ .field(FLOAT, "r", "")
+ .field(FLOAT, "g", "")
+ .field(FLOAT, "b", "")
+ .field(FLOAT, "a", "")
+ .field(FLOAT, "shapeType", "");
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ClipRectModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ClipRectModifierOperation.java
index 30357af6275e..7cb7925692ab 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ClipRectModifierOperation.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ClipRectModifierOperation.java
@@ -15,12 +15,14 @@
*/
package com.android.internal.widget.remotecompose.core.operations.layout.modifiers;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import com.android.internal.widget.remotecompose.core.CoreDocument;
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+import com.android.internal.widget.remotecompose.core.operations.layout.Component;
import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
import java.util.List;
@@ -29,14 +31,11 @@ import java.util.List;
* Support modifier clip with a rectangle
*/
public class ClipRectModifierOperation extends DecoratorModifierOperation {
-
- public static final ClipRectModifierOperation.Companion COMPANION =
- new ClipRectModifierOperation.Companion();
-
+ public static final String CLASS_NAME = "ClipRectModifierOperation";
+ private static final int OP_CODE = Operations.MODIFIER_CLIP_RECT;
float mWidth;
float mHeight;
-
@Override
public void paint(PaintContext context) {
context.clipRect(0f, 0f, mWidth, mHeight);
@@ -49,7 +48,8 @@ public class ClipRectModifierOperation extends DecoratorModifierOperation {
}
@Override
- public void onClick(float x, float y) {
+ public void onClick(RemoteContext context, CoreDocument document,
+ Component component, float x, float y) {
// nothing
}
@@ -61,28 +61,32 @@ public class ClipRectModifierOperation extends DecoratorModifierOperation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer);
+ apply(buffer);
+ }
+
+ public static String name() {
+ return CLASS_NAME;
}
- public static class Companion implements CompanionOperation {
- @Override
- public String name() {
- return "ClipRectModifier";
- }
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static void apply(WireBuffer buffer) {
+ buffer.start(OP_CODE);
+ }
- @Override
- public int id() {
- return Operations.MODIFIER_CLIP_RECT;
- }
- public void apply(WireBuffer buffer) {
- buffer.start(Operations.MODIFIER_CLIP_RECT);
- }
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ operations.add(new ClipRectModifierOperation());
+ }
+
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- operations.add(new ClipRectModifierOperation());
- }
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Canvas Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("Draw the specified round-rect");
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ComponentModifiers.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ComponentModifiers.java
index 2ef0b9d7a56f..f55c94126001 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ComponentModifiers.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ComponentModifiers.java
@@ -15,12 +15,15 @@
*/
package com.android.internal.widget.remotecompose.core.operations.layout.modifiers;
+import com.android.internal.widget.remotecompose.core.CoreDocument;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.PaintOperation;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
import com.android.internal.widget.remotecompose.core.operations.MatrixRestore;
import com.android.internal.widget.remotecompose.core.operations.MatrixSave;
+import com.android.internal.widget.remotecompose.core.operations.layout.ClickModifierOperation;
+import com.android.internal.widget.remotecompose.core.operations.layout.Component;
import com.android.internal.widget.remotecompose.core.operations.layout.DecoratorComponent;
import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
@@ -37,6 +40,23 @@ public class ComponentModifiers extends PaintOperation implements DecoratorCompo
}
@Override
+ public void apply(RemoteContext context) {
+ super.apply(context);
+ for (ModifierOperation op : mList) {
+ op.apply(context);
+ }
+ }
+
+ @Override
+ public String toString() {
+ String str = "ComponentModifiers \n";
+ for (ModifierOperation modifierOperation : mList) {
+ str += " " + modifierOperation.toString() + "\n";
+ }
+ return str;
+ }
+
+ @Override
public void write(WireBuffer buffer) {
// nothing
}
@@ -70,7 +90,11 @@ public class ComponentModifiers extends PaintOperation implements DecoratorCompo
if (op instanceof MatrixSave || op instanceof MatrixRestore) {
continue;
}
- if (op instanceof PaintOperation) {
+ if (op instanceof ClickModifierOperation) {
+ context.translate(-tx, -ty);
+ ((ClickModifierOperation) op).paint(context);
+ context.translate(tx, ty);
+ } else if (op instanceof PaintOperation) {
((PaintOperation) op).paint(context);
}
}
@@ -89,7 +113,9 @@ public class ComponentModifiers extends PaintOperation implements DecoratorCompo
w -= pop.getLeft() + pop.getRight();
h -= pop.getTop() + pop.getBottom();
}
- if (op instanceof DecoratorComponent) {
+ if (op instanceof ClickModifierOperation) {
+ ((DecoratorComponent) op).layout(context, width, height);
+ } else if (op instanceof DecoratorComponent) {
((DecoratorComponent) op).layout(context, w, h);
}
}
@@ -99,10 +125,11 @@ public class ComponentModifiers extends PaintOperation implements DecoratorCompo
mList.addAll(operations);
}
- public void onClick(float x, float y) {
+ public void onClick(RemoteContext context, CoreDocument document,
+ Component component, float x, float y) {
for (ModifierOperation op : mList) {
if (op instanceof DecoratorComponent) {
- ((DecoratorComponent) op).onClick(x, y);
+ ((DecoratorComponent) op).onClick(context, document, component, x, y);
}
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ComponentVisibilityOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ComponentVisibilityOperation.java
new file mode 100644
index 000000000000..9c190730706a
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ComponentVisibilityOperation.java
@@ -0,0 +1,131 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.operations.layout.modifiers;
+
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
+import com.android.internal.widget.remotecompose.core.CoreDocument;
+import com.android.internal.widget.remotecompose.core.Operation;
+import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.VariableSupport;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+import com.android.internal.widget.remotecompose.core.operations.layout.Component;
+import com.android.internal.widget.remotecompose.core.operations.layout.DecoratorComponent;
+import com.android.internal.widget.remotecompose.core.operations.layout.LayoutComponent;
+import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
+
+import java.util.List;
+
+/**
+ * Allows setting visibility on a component
+ */
+public class ComponentVisibilityOperation implements ModifierOperation,
+ VariableSupport, DecoratorComponent {
+ private static final int OP_CODE = Operations.MODIFIER_VISIBILITY;
+
+ int mVisibilityId;
+ Component.Visibility mVisibility = Component.Visibility.VISIBLE;
+ private LayoutComponent mParent;
+
+ public ComponentVisibilityOperation(int id) {
+ mVisibilityId = id;
+ }
+
+ @Override
+ public String toString() {
+ return "ComponentVisibilityOperation(" + mVisibilityId + ")";
+ }
+
+ public String serializedName() {
+ return "COMPONENT_VISIBILITY";
+ }
+
+ @Override
+ public void serializeToString(int indent, StringSerializer serializer) {
+ serializer.append(indent, serializedName() + " = " + mVisibilityId);
+ }
+
+ @Override
+ public void apply(RemoteContext context) {
+ }
+
+ @Override
+ public String deepToString(String indent) {
+ return (indent != null ? indent : "") + toString();
+ }
+
+
+ @Override
+ public void write(WireBuffer buffer) {
+
+ }
+
+ public static void apply(WireBuffer buffer, int valueId) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(valueId);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int valueId = buffer.readInt();
+ operations.add(new ComponentVisibilityOperation(valueId));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", OP_CODE, "ComponentVisibility")
+ .description("This operation allows setting a component"
+ + "visibility from a provided value")
+ .field(INT, "VALUE_ID", "Value ID representing the visibility");
+ }
+
+ @Override
+ public void registerListening(RemoteContext context) {
+ context.listensTo(mVisibilityId, this);
+ }
+
+ @Override
+ public void updateVariables(RemoteContext context) {
+ int visibility = context.getInteger(mVisibilityId);
+ if (visibility == Component.Visibility.VISIBLE.ordinal()) {
+ mVisibility = Component.Visibility.VISIBLE;
+ } else if (visibility == Component.Visibility.GONE.ordinal()) {
+ mVisibility = Component.Visibility.GONE;
+ } else if (visibility == Component.Visibility.INVISIBLE.ordinal()) {
+ mVisibility = Component.Visibility.INVISIBLE;
+ } else {
+ mVisibility = Component.Visibility.GONE;
+ }
+ if (mParent != null) {
+ mParent.setVisibility(mVisibility);
+ }
+ }
+
+ public void setParent(LayoutComponent parent) {
+ mParent = parent;
+ }
+
+ @Override
+ public void layout(RemoteContext context, float width, float height) {
+
+ }
+
+ @Override
+ public void onClick(RemoteContext context, CoreDocument document,
+ Component component, float x, float y) {
+
+ }
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DecoratorModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DecoratorModifierOperation.java
index bf9b27b647db..70a572845c23 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DecoratorModifierOperation.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DecoratorModifierOperation.java
@@ -15,7 +15,10 @@
*/
package com.android.internal.widget.remotecompose.core.operations.layout.modifiers;
+import com.android.internal.widget.remotecompose.core.CoreDocument;
import com.android.internal.widget.remotecompose.core.PaintOperation;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.operations.layout.Component;
import com.android.internal.widget.remotecompose.core.operations.layout.DecoratorComponent;
/**
@@ -26,7 +29,8 @@ public abstract class DecoratorModifierOperation extends PaintOperation
implements ModifierOperation, DecoratorComponent {
@Override
- public void onClick(float x, float y) {
+ public void onClick(RemoteContext context, CoreDocument document,
+ Component component, float x, float y) {
// nothing
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DimensionModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DimensionModifierOperation.java
index 04e943105ef0..f085ffb6c73b 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DimensionModifierOperation.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DimensionModifierOperation.java
@@ -15,33 +15,33 @@
*/
package com.android.internal.widget.remotecompose.core.operations.layout.modifiers;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
-import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.RemoteContext;
-import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.VariableSupport;
+import com.android.internal.widget.remotecompose.core.operations.Utils;
import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
-import java.util.List;
-
/**
* Base class for dimension modifiers
*/
-public class DimensionModifierOperation implements ModifierOperation {
-
- public static final DimensionModifierOperation.Companion COMPANION =
- new DimensionModifierOperation.Companion(0, "DIMENSION");
+public abstract class DimensionModifierOperation implements ModifierOperation, VariableSupport {
public enum Type {
EXACT, FILL, WRAP, WEIGHT, INTRINSIC_MIN, INTRINSIC_MAX;
static Type fromInt(int value) {
switch (value) {
- case 0: return EXACT;
- case 1: return FILL;
- case 2: return WRAP;
- case 3: return WEIGHT;
- case 4: return INTRINSIC_MIN;
- case 5: return INTRINSIC_MAX;
+ case 0:
+ return EXACT;
+ case 1:
+ return FILL;
+ case 2:
+ return WRAP;
+ case 3:
+ return WEIGHT;
+ case 4:
+ return INTRINSIC_MIN;
+ case 5:
+ return INTRINSIC_MAX;
}
return EXACT;
}
@@ -49,10 +49,11 @@ public class DimensionModifierOperation implements ModifierOperation {
Type mType = Type.EXACT;
float mValue = Float.NaN;
+ float mOutValue = Float.NaN;
public DimensionModifierOperation(Type type, float value) {
mType = type;
- mValue = value;
+ mOutValue = mValue = value;
}
public DimensionModifierOperation(Type type) {
@@ -63,6 +64,25 @@ public class DimensionModifierOperation implements ModifierOperation {
this(Type.EXACT, value);
}
+ @Override
+ public void updateVariables(RemoteContext context) {
+ if (mType == Type.EXACT) {
+ mOutValue = (Float.isNaN(mValue))
+ ? context.getFloat(Utils.idFromNan(mValue)) : mValue;
+ }
+
+ }
+
+ @Override
+ public void registerListening(RemoteContext context) {
+ if (mType == Type.EXACT) {
+ if (Float.isNaN(mValue)) {
+ context.listensTo(Utils.idFromNan(mValue), this);
+ }
+ }
+
+ }
+
public boolean hasWeight() {
return mType == Type.WEIGHT;
@@ -81,17 +101,13 @@ public class DimensionModifierOperation implements ModifierOperation {
}
public float getValue() {
- return mValue;
+ return mOutValue;
}
public void setValue(float value) {
- this.mValue = value;
+ mOutValue = mValue = value;
}
- @Override
- public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mType.ordinal(), mValue);
- }
public String serializedName() {
return "DIMENSION";
@@ -117,43 +133,4 @@ public class DimensionModifierOperation implements ModifierOperation {
public String toString() {
return "DimensionModifierOperation(" + mValue + ")";
}
-
- public static class Companion implements CompanionOperation {
-
- int mOperation;
- String mName;
-
- public Companion(int operation, String name) {
- mOperation = operation;
- mName = name;
- }
-
- @Override
- public String name() {
- return mName;
- }
-
- @Override
- public int id() {
- return mOperation;
- }
-
- public void apply(WireBuffer buffer, int type, float value) {
- buffer.start(mOperation);
- buffer.writeInt(type);
- buffer.writeFloat(value);
- }
-
- public Operation construct(Type type, float value) {
- return null;
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- Type type = Type.fromInt(buffer.readInt());
- float value = buffer.readFloat();
- Operation op = construct(type, value);
- operations.add(op);
- }
- }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HeightModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HeightModifierOperation.java
index 81173c3e4343..a0f576a412f8 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HeightModifierOperation.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HeightModifierOperation.java
@@ -15,21 +15,48 @@
*/
package com.android.internal.widget.remotecompose.core.operations.layout.modifiers;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+
+import java.util.List;
/**
* Set the height dimension on a component
*/
public class HeightModifierOperation extends DimensionModifierOperation {
+ private static final int OP_CODE = Operations.MODIFIER_HEIGHT;
+ public static final String CLASS_NAME = "HeightModifierOperation";
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static void apply(WireBuffer buffer, int type, float value) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(type);
+ buffer.writeFloat(value);
+ }
- public static final DimensionModifierOperation.Companion COMPANION =
- new DimensionModifierOperation.Companion(Operations.MODIFIER_HEIGHT, "WIDTH") {
- @Override
- public Operation construct(DimensionModifierOperation.Type type, float value) {
- return new HeightModifierOperation(type, value);
- }
- };
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ Type type = Type.fromInt(buffer.readInt());
+ float value = buffer.readFloat();
+ Operation op = new HeightModifierOperation(type, value);
+ operations.add(op);
+ }
+
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer, mType.ordinal(), mValue);
+ }
public HeightModifierOperation(Type type, float value) {
super(type, value);
@@ -52,4 +79,13 @@ public class HeightModifierOperation extends DimensionModifierOperation {
public String serializedName() {
return "HEIGHT";
}
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Modifier Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("define the animation")
+ .field(INT, "type", "")
+ .field(FLOAT, "value", "");
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HostActionOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HostActionOperation.java
new file mode 100644
index 000000000000..d405b2b2a6a7
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HostActionOperation.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.operations.layout.modifiers;
+
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
+import com.android.internal.widget.remotecompose.core.CoreDocument;
+import com.android.internal.widget.remotecompose.core.Operation;
+import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+import com.android.internal.widget.remotecompose.core.operations.layout.ActionOperation;
+import com.android.internal.widget.remotecompose.core.operations.layout.Component;
+import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
+
+import java.util.List;
+
+/**
+ * Capture a host action information. This can be triggered on eg. a click.
+ */
+public class HostActionOperation implements ActionOperation {
+ private static final int OP_CODE = Operations.HOST_ACTION;
+
+ int mActionId = -1;
+
+ public HostActionOperation(int id) {
+ mActionId = id;
+ }
+
+ @Override
+ public String toString() {
+ return "HostActionOperation(" + mActionId + ")";
+ }
+
+ public int getActionId() {
+ return mActionId;
+ }
+
+ public String serializedName() {
+ return "HOST_ACTION";
+ }
+
+ @Override
+ public void serializeToString(int indent, StringSerializer serializer) {
+ serializer.append(indent, serializedName() + " = " + mActionId);
+ }
+
+ @Override
+ public void apply(RemoteContext context) {
+ }
+
+ @Override
+ public String deepToString(String indent) {
+ return (indent != null ? indent : "") + toString();
+ }
+
+
+ @Override
+ public void write(WireBuffer buffer) {
+
+ }
+
+ @Override
+ public void runAction(RemoteContext context, CoreDocument document,
+ Component component, float x, float y) {
+ context.runAction(mActionId, "");
+ }
+
+ public static void apply(WireBuffer buffer, int actionId) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(actionId);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int actionId = buffer.readInt();
+ operations.add(new HostActionOperation(actionId));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", OP_CODE, "HostAction")
+ .description("Host action. This operation represents a host action")
+ .field(INT, "ACTION_ID", "Host Action ID");
+ }
+
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HostNamedActionOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HostNamedActionOperation.java
new file mode 100644
index 000000000000..35f202bd6ed3
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HostNamedActionOperation.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.operations.layout.modifiers;
+
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
+import com.android.internal.widget.remotecompose.core.CoreDocument;
+import com.android.internal.widget.remotecompose.core.Operation;
+import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+import com.android.internal.widget.remotecompose.core.operations.layout.ActionOperation;
+import com.android.internal.widget.remotecompose.core.operations.layout.Component;
+import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
+
+import java.util.List;
+
+/**
+ * Capture a host action information. This can be triggered on eg. a click.
+ */
+public class HostNamedActionOperation implements ActionOperation {
+ private static final int OP_CODE = Operations.HOST_NAMED_ACTION;
+
+ int mTextId = -1;
+
+ public HostNamedActionOperation(int id) {
+ mTextId = id;
+ }
+
+ @Override
+ public String toString() {
+ return "HostNamedActionOperation(" + mTextId + ")";
+ }
+
+ public String serializedName() {
+ return "HOST_NAMED_ACTION";
+ }
+
+ @Override
+ public void serializeToString(int indent, StringSerializer serializer) {
+ serializer.append(indent, serializedName() + " = " + mTextId);
+ }
+
+ @Override
+ public void apply(RemoteContext context) {
+ }
+
+ @Override
+ public String deepToString(String indent) {
+ return (indent != null ? indent : "") + toString();
+ }
+
+
+ @Override
+ public void write(WireBuffer buffer) {
+
+ }
+
+ @Override
+ public void runAction(RemoteContext context, CoreDocument document,
+ Component component, float x, float y) {
+ context.runNamedAction(mTextId);
+ }
+
+ public static void apply(WireBuffer buffer, int textId) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(textId);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int textId = buffer.readInt();
+ operations.add(new HostNamedActionOperation(textId));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", OP_CODE, "HostNamedAction")
+ .description("Host Named action. This operation represents a host action")
+ .field(INT, "TEXT_ID", "Named Host Action Text ID");
+ }
+
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/PaddingModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/PaddingModifierOperation.java
index 5ea6a97dd127..668db3b71027 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/PaddingModifierOperation.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/PaddingModifierOperation.java
@@ -15,11 +15,13 @@
*/
package com.android.internal.widget.remotecompose.core.operations.layout.modifiers;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
import java.util.List;
@@ -29,10 +31,8 @@ import java.util.List;
* Padding modifiers can be chained and will impact following modifiers.
*/
public class PaddingModifierOperation implements ModifierOperation {
-
- public static final PaddingModifierOperation.Companion COMPANION =
- new PaddingModifierOperation.Companion();
-
+ private static final int OP_CODE = Operations.MODIFIER_PADDING;
+ public static final String CLASS_NAME = "PaddingModifierOperation";
float mLeft;
float mTop;
float mRight;
@@ -79,7 +79,7 @@ public class PaddingModifierOperation implements ModifierOperation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mLeft, mTop, mRight, mBottom);
+ apply(buffer, mLeft, mTop, mRight, mBottom);
}
@Override
@@ -103,33 +103,39 @@ public class PaddingModifierOperation implements ModifierOperation {
+ ", " + mRight + ", " + mBottom + ")";
}
- public static class Companion implements CompanionOperation {
- @Override
- public String name() {
- return "PaddingModifierOperation";
- }
-
- @Override
- public int id() {
- return Operations.MODIFIER_PADDING;
- }
-
- public void apply(WireBuffer buffer,
- float left, float top, float right, float bottom) {
- buffer.start(Operations.MODIFIER_PADDING);
- buffer.writeFloat(left);
- buffer.writeFloat(top);
- buffer.writeFloat(right);
- buffer.writeFloat(bottom);
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- float left = buffer.readFloat();
- float top = buffer.readFloat();
- float right = buffer.readFloat();
- float bottom = buffer.readFloat();
- operations.add(new PaddingModifierOperation(left, top, right, bottom));
- }
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+ public static int id() {
+ return Operations.MODIFIER_PADDING;
+ }
+
+ public static void apply(WireBuffer buffer,
+ float left, float top, float right, float bottom) {
+ buffer.start(Operations.MODIFIER_PADDING);
+ buffer.writeFloat(left);
+ buffer.writeFloat(top);
+ buffer.writeFloat(right);
+ buffer.writeFloat(bottom);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ float left = buffer.readFloat();
+ float top = buffer.readFloat();
+ float right = buffer.readFloat();
+ float bottom = buffer.readFloat();
+ operations.add(new PaddingModifierOperation(left, top, right, bottom));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Modifier Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("define the Padding Modifier")
+ .field(FLOAT, "left", "")
+ .field(FLOAT, "top", "")
+ .field(FLOAT, "right", "")
+ .field(FLOAT, "bottom", "");
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/RoundedClipRectModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/RoundedClipRectModifierOperation.java
index 9c57c6ab4e89..9b662bf5eca7 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/RoundedClipRectModifierOperation.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/RoundedClipRectModifierOperation.java
@@ -15,30 +15,72 @@
*/
package com.android.internal.widget.remotecompose.core.operations.layout.modifiers;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+
+import com.android.internal.widget.remotecompose.core.CoreDocument;
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.PaintContext;
import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import com.android.internal.widget.remotecompose.core.operations.DrawBase4;
+import com.android.internal.widget.remotecompose.core.operations.layout.Component;
import com.android.internal.widget.remotecompose.core.operations.layout.DecoratorComponent;
import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
+import java.util.List;
+
/**
- * Support clip with a rectangle
+ * Support clip with a rounded rectangle
*/
public class RoundedClipRectModifierOperation extends DrawBase4
implements ModifierOperation, DecoratorComponent {
+ public static final int OP_CODE = Operations.MODIFIER_ROUNDED_CLIP_RECT;
+ public static final String CLASS_NAME = "RoundedClipRectModifierOperation";
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ Maker m = RoundedClipRectModifierOperation::new;
+ read(m, buffer, operations);
+ }
+
+ public static int id() {
+ return OP_CODE;
+ }
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+
+ protected void write(WireBuffer buffer,
+ float v1,
+ float v2,
+ float v3,
+ float v4) {
+ apply(buffer, v1, v2, v3, v4);
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Modifier Operations",
+ id(),
+ "RoundedClipRectModifierOperation")
+ .description("clip with rectangle")
+ .field(FLOAT, "topStart",
+ "The topStart radius of the rectangle to "
+ + "intersect with the current clip")
+ .field(FLOAT, "topEnd",
+ "The topEnd radius of the rectangle to "
+ + "intersect with the current clip")
+ .field(FLOAT, "bottomStart",
+ "The bottomStart radius of the rectangle to "
+ + "intersect with the current clip")
+ .field(FLOAT, "bottomEnd",
+ "The bottomEnd radius of the rectangle to "
+ + "intersect with the current clip");
+ }
+
- public static final Companion COMPANION =
- new Companion(Operations.MODIFIER_ROUNDED_CLIP_RECT) {
- @Override
- public Operation construct(float x1,
- float y1,
- float x2,
- float y2) {
- return new RoundedClipRectModifierOperation(x1, y1, x2, y2);
- }
- };
float mWidth;
float mHeight;
@@ -49,7 +91,7 @@ public class RoundedClipRectModifierOperation extends DrawBase4
float bottomStart,
float bottomEnd) {
super(topStart, topEnd, bottomStart, bottomEnd);
- mName = "ModifierRoundedClipRect";
+ mName = CLASS_NAME;
}
@Override
@@ -64,15 +106,33 @@ public class RoundedClipRectModifierOperation extends DrawBase4
}
@Override
- public void onClick(float x, float y) {
+ public void onClick(RemoteContext context, CoreDocument document,
+ Component component, float x, float y) {
// nothing
}
@Override
public void serializeToString(int indent, StringSerializer serializer) {
serializer.append(
- indent, "ROUND_CLIP = [" + mWidth + ", " + mHeight
+ indent, "ROUNDED_CLIP_RECT = [" + mWidth + ", " + mHeight
+ ", " + mX1 + ", " + mY1
+ ", " + mX2 + ", " + mY2 + "]");
}
+
+ /**
+ * Writes out the rounded rect clip to the buffer
+ *
+ * @param buffer buffer to write to
+ * @param topStart topStart radius
+ * @param topEnd topEnd radius
+ * @param bottomStart bottomStart radius
+ * @param bottomEnd bottomEnd radius
+ */
+ public static void apply(WireBuffer buffer,
+ float topStart,
+ float topEnd,
+ float bottomStart,
+ float bottomEnd) {
+ write(buffer, OP_CODE, topStart, topEnd, bottomStart, bottomEnd);
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ValueIntegerChangeActionOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ValueIntegerChangeActionOperation.java
new file mode 100644
index 000000000000..3f19c9b1bc4b
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ValueIntegerChangeActionOperation.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.operations.layout.modifiers;
+
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
+import com.android.internal.widget.remotecompose.core.CoreDocument;
+import com.android.internal.widget.remotecompose.core.Operation;
+import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+import com.android.internal.widget.remotecompose.core.operations.layout.ActionOperation;
+import com.android.internal.widget.remotecompose.core.operations.layout.Component;
+import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
+
+import java.util.List;
+
+/**
+ * Apply a value change on an integer variable.
+ */
+public class ValueIntegerChangeActionOperation implements ActionOperation {
+ private static final int OP_CODE = Operations.VALUE_INTEGER_CHANGE_ACTION;
+
+ int mTargetValueId = -1;
+ int mValue = -1;
+
+ public ValueIntegerChangeActionOperation(int id, int value) {
+ mTargetValueId = id;
+ mValue = value;
+ }
+
+ @Override
+ public String toString() {
+ return "ValueChangeActionOperation(" + mTargetValueId + ")";
+ }
+
+ public String serializedName() {
+ return "VALUE_INTEGER_CHANGE";
+ }
+
+ @Override
+ public void serializeToString(int indent, StringSerializer serializer) {
+ serializer.append(indent, serializedName()
+ + " = " + mTargetValueId + " -> " + mValue);
+ }
+
+ @Override
+ public void apply(RemoteContext context) {
+ }
+
+ @Override
+ public String deepToString(String indent) {
+ return (indent != null ? indent : "") + toString();
+ }
+
+
+ @Override
+ public void write(WireBuffer buffer) {
+
+ }
+
+ @Override
+ public void runAction(RemoteContext context, CoreDocument document,
+ Component component, float x, float y) {
+ context.overrideInteger(mTargetValueId, mValue);
+ }
+
+ public static void apply(WireBuffer buffer, int valueId, int value) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(valueId);
+ buffer.writeInt(value);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int valueId = buffer.readInt();
+ int value = buffer.readInt();
+ operations.add(new ValueIntegerChangeActionOperation(valueId, value));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", OP_CODE, "ValueIntegerChangeActionOperation")
+ .description("ValueIntegerChange action. "
+ + " This operation represents a value change for the given id")
+ .field(INT, "TARGET_VALUE_ID", "Value ID")
+ .field(INT, "VALUE", "integer value to be assigned to the target")
+ ;
+ }
+
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ValueStringChangeActionOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ValueStringChangeActionOperation.java
new file mode 100644
index 000000000000..e2542e529383
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ValueStringChangeActionOperation.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.operations.layout.modifiers;
+
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
+import com.android.internal.widget.remotecompose.core.CoreDocument;
+import com.android.internal.widget.remotecompose.core.Operation;
+import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+import com.android.internal.widget.remotecompose.core.operations.layout.ActionOperation;
+import com.android.internal.widget.remotecompose.core.operations.layout.Component;
+import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer;
+
+import java.util.List;
+
+/**
+ * Apply a value change on a string variable.
+ */
+public class ValueStringChangeActionOperation implements ActionOperation {
+ private static final int OP_CODE = Operations.VALUE_STRING_CHANGE_ACTION;
+
+ int mTargetValueId = -1;
+ int mValueId = -1;
+
+ public ValueStringChangeActionOperation(int id, int value) {
+ mTargetValueId = id;
+ mValueId = value;
+ }
+
+ @Override
+ public String toString() {
+ return "ValueChangeActionOperation(" + mTargetValueId + ")";
+ }
+
+ public int getActionId() {
+ return mTargetValueId;
+ }
+
+ public String serializedName() {
+ return "VALUE_CHANGE";
+ }
+
+ @Override
+ public void serializeToString(int indent, StringSerializer serializer) {
+ serializer.append(indent, serializedName() + " = " + mTargetValueId + " -> " + mValueId);
+ }
+
+ @Override
+ public void apply(RemoteContext context) {
+ }
+
+ @Override
+ public String deepToString(String indent) {
+ return (indent != null ? indent : "") + toString();
+ }
+
+ @Override
+ public void write(WireBuffer buffer) {
+
+ }
+
+ @Override
+ public void runAction(RemoteContext context, CoreDocument document,
+ Component component, float x, float y) {
+ context.overrideText(mTargetValueId, mValueId);
+ }
+
+ public static void apply(WireBuffer buffer, int valueId, int value) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(valueId);
+ buffer.writeInt(value);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int valueId = buffer.readInt();
+ int value = buffer.readInt();
+ operations.add(new ValueStringChangeActionOperation(valueId, value));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Layout Operations", OP_CODE, "ValueStringChangeActionOperation")
+ .description("ValueStrin gChange action. "
+ + " This operation represents a String change (referenced by id) "
+ + "for the given string id")
+ .field(INT, "TARGET_ID", "Target Value ID")
+ .field(INT, "VALUE_ID", "Value ID to be assigned to the target "
+ + "value as a string")
+ ;
+ }
+
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/WidthModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/WidthModifierOperation.java
index c46c8d70c0b1..7fd5e51add18 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/WidthModifierOperation.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/WidthModifierOperation.java
@@ -15,26 +15,54 @@
*/
package com.android.internal.widget.remotecompose.core.operations.layout.modifiers;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+
+import java.util.List;
/**
* Set the width dimension on a component
*/
public class WidthModifierOperation extends DimensionModifierOperation {
+ private static final int OP_CODE = Operations.MODIFIER_WIDTH;
+ public static final String CLASS_NAME = "WidthModifierOperation";
+
+
+ public static String name() {
+ return CLASS_NAME;
+ }
+
+ public static int id() {
+ return OP_CODE;
+ }
- public static final DimensionModifierOperation.Companion COMPANION =
- new DimensionModifierOperation.Companion(Operations.MODIFIER_WIDTH, "WIDTH") {
- @Override
- public Operation construct(DimensionModifierOperation.Type type, float value) {
- return new WidthModifierOperation(type, value);
- }
- };
+ public static void apply(WireBuffer buffer, int type, float value) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(type);
+ buffer.writeFloat(value);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ Type type = Type.fromInt(buffer.readInt());
+ float value = buffer.readFloat();
+ Operation op = new WidthModifierOperation(type, value);
+ operations.add(op);
+ }
public WidthModifierOperation(Type type, float value) {
super(type, value);
}
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer, mType.ordinal(), mValue);
+ }
+
public WidthModifierOperation(Type type) {
super(type);
}
@@ -52,4 +80,13 @@ public class WidthModifierOperation extends DimensionModifierOperation {
public String serializedName() {
return "WIDTH";
}
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Modifier Operations",
+ OP_CODE,
+ CLASS_NAME)
+ .description("define the animation")
+ .field(INT, "type", "")
+ .field(FLOAT, "value", "");
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintBundle.java b/core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintBundle.java
index 818619223fb3..6c8049a97f1e 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintBundle.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintBundle.java
@@ -714,7 +714,7 @@ public class PaintBundle {
* @param a alpha (0.0 to 1.0)
*/
public void setColor(float r, float g, float b, float a) {
- setColor((int) r * 255, (int) g * 255, (int) b * 255, (int) a * 255);
+ setColor((int) (r * 255), (int) (g * 255), (int) (b * 255), (int) (a * 255));
}
/**
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/AnimatedFloatExpression.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/AnimatedFloatExpression.java
index 616048d424ec..5b295eb700ec 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/AnimatedFloatExpression.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/AnimatedFloatExpression.java
@@ -15,12 +15,15 @@
*/
package com.android.internal.widget.remotecompose.core.operations.utilities;
+import static com.android.internal.widget.remotecompose.core.operations.utilities.NanMap.ID_REGION_ARRAY;
+import static com.android.internal.widget.remotecompose.core.operations.utilities.NanMap.ID_REGION_MASK;
+
/**
* high performance floating point expression evaluator used in animation
*/
public class AnimatedFloatExpression {
static IntMap<String> sNames = new IntMap<>();
- public static final int OFFSET = 0x100;
+ public static final int OFFSET = 0x310_000;
public static final float ADD = asNan(OFFSET + 1);
public static final float SUB = asNan(OFFSET + 2);
public static final float MUL = asNan(OFFSET + 3);
@@ -57,11 +60,18 @@ public class AnimatedFloatExpression {
public static final float CEIL = asNan(OFFSET + 31);
- public static final float LAST_OP = 31;
+ // Array ops
+ public static final float A_DEREF = asNan(OFFSET + 32);
+ public static final float A_MAX = asNan(OFFSET + 33);
+ public static final float A_MIN = asNan(OFFSET + 34);
+ public static final float A_SUM = asNan(OFFSET + 35);
+ public static final float A_AVG = asNan(OFFSET + 36);
+ public static final float A_LEN = asNan(OFFSET + 37);
+ public static final int LAST_OP = OFFSET + 37;
- public static final float VAR1 = asNan(OFFSET + 27);
- public static final float VAR2 = asNan(OFFSET + 28);
+ public static final float VAR1 = asNan(OFFSET + 38);
+ public static final float VAR2 = asNan(OFFSET + 39);
// TODO CLAMP, CBRT, DEG, RAD, EXPM1, CEIL, FLOOR
private static final float FP_PI = (float) Math.PI;
@@ -71,16 +81,23 @@ public class AnimatedFloatExpression {
float[] mStack;
float[] mLocalStack = new float[128];
float[] mVar;
+ CollectionsAccess mCollectionsAccess;
/**
* is float a math operator
+ *
* @param v
* @return
*/
public static boolean isMathOperator(float v) {
if (Float.isNaN(v)) {
int pos = fromNaN(v);
- return pos > OFFSET && pos <= OFFSET + LAST_OP;
+ // a data variable is a type of math operator for expressions
+ // it dereference to a value
+ if (NanMap.isDataVariable(v)) {
+ return false;
+ }
+ return pos > OFFSET && pos <= LAST_OP;
}
return false;
}
@@ -89,8 +106,21 @@ public class AnimatedFloatExpression {
int eval(int sp);
}
+
/**
* Evaluate a float expression
+ * This system works by processing an Array of float (float[])
+ * in reverse polish notation (rpn)
+ * Within that array some floats are commands
+ * they are encoded within an NaN.
+ * After processing the array the last item on the array is returned.
+ * The system supports variables allowing expressions like.
+ * sin(sqrt(x*x+y*y))/sqrt(x*x+y*y)
+ * Where x & y are passe as parameters
+ * Examples:
+ * (1+2) (1, 2, ADD) adds two numbers returns 3
+ * eval(new float[]{ Var1, Var * }
+ *
* @param exp
* @param var
* @return
@@ -110,8 +140,46 @@ public class AnimatedFloatExpression {
return mStack[sp];
}
+
+ /**
+ * Evaluate a float expression
+ *
+ * @param ca
+ * @param exp
+ * @param var
+ * @return
+ */
+ public float eval(CollectionsAccess ca, float[] exp, float... var) {
+ mStack = exp;
+ mVar = var;
+ mCollectionsAccess = ca;
+ int sp = -1;
+
+ for (int i = 0; i < mStack.length; i++) {
+ float v = mStack[i];
+ if (Float.isNaN(v)) {
+ int id = fromNaN(v);
+ if ((id & ID_REGION_MASK) != ID_REGION_ARRAY) {
+ sp = mOps[id - OFFSET].eval(sp);
+ } else {
+ mStack[++sp] = v;
+ }
+ } else {
+ mStack[++sp] = v;
+ }
+ }
+ return mStack[sp];
+ }
+
+
+ private int dereference(CollectionsAccess ca, int id, int sp) {
+ mStack[sp] = ca.getFloatValue(id, (int) (mStack[sp]));
+ return sp;
+ }
+
/**
* Evaluate a float expression
+ *
* @param exp
* @param len
* @param var
@@ -135,6 +203,7 @@ public class AnimatedFloatExpression {
/**
* Evaluate a float expression
+ *
* @param exp
* @param var
* @return
@@ -283,6 +352,58 @@ public class AnimatedFloatExpression {
mStack[sp] = (float) Math.ceil(mStack[sp]);
return sp;
},
+ (sp) -> { // A_DEREF
+ int id = fromNaN(mStack[sp]);
+ mStack[sp] = mCollectionsAccess.getFloatValue(id, (int) (mStack[sp - 1]));
+ return sp - 1;
+ },
+ (sp) -> { // A_MAX
+ int id = fromNaN(mStack[sp]);
+ float[] array = mCollectionsAccess.getFloats(id);
+ float max = array[0];
+ for (int i = 1; i < array.length; i++) {
+ max = Math.max(max, array[i]);
+ }
+ mStack[sp] = max;
+ return sp;
+ },
+ (sp) -> { // A_MIN
+ int id = fromNaN(mStack[sp]);
+ float[] array = mCollectionsAccess.getFloats(id);
+ float max = array[0];
+ for (int i = 1; i < array.length; i++) {
+ max = Math.max(max, array[i]);
+ }
+ mStack[sp] = max;
+ return sp;
+ },
+ (sp) -> { // A_SUM
+ int id = fromNaN(mStack[sp]);
+ float[] array = mCollectionsAccess.getFloats(id);
+ float sum = 0;
+ for (int i = 0; i < array.length; i++) {
+ sum += array[i];
+ }
+ mStack[sp] = sum;
+ return sp;
+ },
+ (sp) -> { // A_AVG
+ int id = fromNaN(mStack[sp]);
+ float[] array = mCollectionsAccess.getFloats(id);
+ float sum = 0;
+ for (int i = 0; i < array.length; i++) {
+ sum += array[i];
+ }
+ mStack[sp] = sum / array.length;
+ return sp;
+ },
+ (sp) -> { // A_LEN
+ int id = fromNaN(mStack[sp]);
+ mStack[sp] = mCollectionsAccess.getFloatsLength(id);
+ return sp;
+ },
+
+
(sp) -> { // first var =
mStack[sp] = mVar[0];
return sp;
@@ -331,6 +452,14 @@ public class AnimatedFloatExpression {
sNames.put(k++, "deg");
sNames.put(k++, "rad");
sNames.put(k++, "ceil");
+
+ sNames.put(k++, "A_DEREF");
+ sNames.put(k++, "A_MAX");
+ sNames.put(k++, "A_MIN");
+ sNames.put(k++, "A_SUM");
+ sNames.put(k++, "A_AVG");
+ sNames.put(k++, "A_LEN");
+
sNames.put(k++, "a[0]");
sNames.put(k++, "a[1]");
sNames.put(k++, "a[2]");
@@ -338,6 +467,7 @@ public class AnimatedFloatExpression {
/**
* given a float command return its math name (e.g sin, cos etc.)
+ *
* @param f
* @return
*/
@@ -348,6 +478,7 @@ public class AnimatedFloatExpression {
/**
* Convert an expression encoded as an array of floats int ot a string
+ *
* @param exp
* @param labels
* @return
@@ -360,15 +491,21 @@ public class AnimatedFloatExpression {
if (isMathOperator(v)) {
s.append(toMathName(v));
} else {
+ int id = fromNaN(v);
+ String idString = (id > ID_REGION_ARRAY) ? ("A_" + (id & 0xFFFFF)) : "" + id;
s.append("[");
- s.append(fromNaN(v));
+ s.append(idString);
s.append("]");
}
} else {
- if (labels[i] != null) {
+ if (labels != null && labels[i] != null) {
s.append(labels[i]);
+ if (!labels[i].contains("_")) {
+ s.append(v);
+ }
+ } else {
+ s.append(v);
}
- s.append(v);
}
s.append(" ");
}
@@ -423,6 +560,7 @@ public class AnimatedFloatExpression {
/**
* to be used by parser to determine if command is infix
+ *
* @param n
* @return
*/
@@ -432,6 +570,7 @@ public class AnimatedFloatExpression {
/**
* Convert an id into a NaN object
+ *
* @param v
* @return
*/
@@ -441,12 +580,12 @@ public class AnimatedFloatExpression {
/**
* Get ID from a NaN float
+ *
* @param v
* @return
*/
public static int fromNaN(float v) {
int b = Float.floatToRawIntBits(v);
- return b & 0xFFFFF;
+ return b & 0x7FFFFF;
}
-
}
diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepStaticInitializer.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ArrayAccess.java
index eeebee985e4a..4c7cc3889bcb 100644
--- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepStaticInitializer.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ArrayAccess.java
@@ -13,21 +13,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package android.ravenwood.annotation;
+package com.android.internal.widget.remotecompose.core.operations.utilities;
-import static java.lang.annotation.ElementType.TYPE;
+public interface ArrayAccess {
+ float getFloatValue(int index);
+ float[] getFloats();
+ int getFloatsLength();
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY
- * QUESTIONS ABOUT IT.
- *
- * @hide
- */
-@Target(TYPE)
-@Retention(RetentionPolicy.CLASS)
-public @interface RavenwoodKeepStaticInitializer {
+ default int getIntValue(int index) {
+ return (int) getFloatValue(index);
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/CollectionsAccess.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/CollectionsAccess.java
new file mode 100644
index 000000000000..9e5312676aa4
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/CollectionsAccess.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.operations.utilities;
+
+public interface CollectionsAccess {
+ float getFloatValue(int id, int index);
+ float[] getFloats(int id);
+ int getFloatsLength(int id);
+
+ default int getIntValue(int id, int index) {
+ return (int) getFloatValue(id, index);
+ }
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ColorUtils.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ColorUtils.java
index 0ea28a8bb900..fb96ceffa58a 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ColorUtils.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ColorUtils.java
@@ -65,4 +65,17 @@ public class ColorUtils {
}
return 0;
}
+
+ /**
+ * Utility function to create a color as an int
+ *
+ * @param r red
+ * @param g green
+ * @param b blue
+ * @param a alpha
+ * @return int packed color
+ */
+ public static int createColor(int r, int g, int b, int a) {
+ return (a << 24) | (r << 16) | (g << 8) | b;
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntegerExpressionEvaluator.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntegerExpressionEvaluator.java
index a4fce80cf843..ae61ec1e5eec 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntegerExpressionEvaluator.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntegerExpressionEvaluator.java
@@ -17,6 +17,9 @@ package com.android.internal.widget.remotecompose.core.operations.utilities;
/**
* High performance Integer expression evaluator
+ *
+ * The evaluation is based on int opMask, int[]exp
+ * exp[i] is an operator if (opMask*(1 << i) != 0)
*/
public class IntegerExpressionEvaluator {
static IntMap<String> sNames = new IntMap<>();
@@ -64,11 +67,11 @@ public class IntegerExpressionEvaluator {
}
/**
- * Evaluate a float expression
- *
- * @param exp
- * @param var
- * @return
+ * Evaluate an integer expression
+ * @param mask bits that are operators
+ * @param exp rpn sequence of values and operators
+ * @param var variables if the expression is a function
+ * @return return the results of evaluating the expression
*/
public int eval(int mask, int[] exp, int... var) {
mStack = exp;
@@ -86,12 +89,12 @@ public class IntegerExpressionEvaluator {
}
/**
- * Evaluate a int expression
- *
- * @param exp
- * @param len
- * @param var
- * @return
+ * Evaluate a integer expression
+ * @param mask bits that are operators
+ * @param exp rpn sequence of values and operators
+ * @param len the number of values in the expression
+ * @param var variables if the expression is a function
+ * @return return the results of evaluating the expression
*/
public int eval(int mask, int[] exp, int len, int... var) {
System.arraycopy(exp, 0, mLocalStack, 0, len);
@@ -111,18 +114,18 @@ public class IntegerExpressionEvaluator {
/**
* Evaluate a int expression
- *
- * @param exp
- * @param var
- * @return
+ * @param opMask bits that are operators
+ * @param exp rpn sequence of values and operators
+ * @param var variables if the expression is a function
+ * @return return the results of evaluating the expression
*/
- public int evalDB(int mask, int[] exp, int... var) {
+ public int evalDB(int opMask, int[] exp, int... var) {
mStack = exp;
mVar = var;
int sp = -1;
for (int i = 0; i < exp.length; i++) {
int v = mStack[i];
- if (((1 << i) & mask) != 0) {
+ if (((1 << i) & opMask) != 0) {
System.out.print(" " + sNames.get((v - OFFSET)));
sp = mOps[v - OFFSET].eval(sp);
} else {
@@ -281,8 +284,8 @@ public class IntegerExpressionEvaluator {
/**
* given a int command return its math name (e.g sin, cos etc.)
*
- * @param f
- * @return
+ * @param f the numerical value of the function + offset
+ * @return the math name of the function
*/
public static String toMathName(int f) {
int id = f - OFFSET;
@@ -290,18 +293,19 @@ public class IntegerExpressionEvaluator {
}
/**
- * Convert an expression encoded as an array of ints int ot a string
+ * Convert an expression encoded as an array of ints int to a string
*
- * @param exp
- * @param labels
+ * @param opMask bits that are operators
+ * @param exp rpn sequence of values and operators
+ * @param labels String that represent the variable names
* @return
*/
- public static String toString(int mask, int[] exp, String[] labels) {
+ public static String toString(int opMask, int[] exp, String[] labels) {
StringBuilder s = new StringBuilder();
for (int i = 0; i < exp.length; i++) {
int v = exp[i];
- if (((1 << i) & mask) != 0) {
+ if (((1 << i) & opMask) != 0) {
if (v < OFFSET) {
s.append(toMathName(v));
} else {
@@ -323,18 +327,18 @@ public class IntegerExpressionEvaluator {
/**
* Convert an expression encoded as an array of ints int ot a string
*
- * @param mask bit mask of operators vs commands
- * @param exp
- * @return
+ * @param opMask bit mask of operators vs commands
+ * @param exp rpn sequence of values and operators
+ * @return string representation of the expression
*/
- public static String toString(int mask, int[] exp) {
+ public static String toString(int opMask, int[] exp) {
StringBuilder s = new StringBuilder();
- s.append(Integer.toBinaryString(mask));
+ s.append(Integer.toBinaryString(opMask));
s.append(" : ");
for (int i = 0; i < exp.length; i++) {
int v = exp[i];
- if (((1 << i) & mask) != 0) {
+ if (((1 << i) & opMask) != 0) {
if (v > OFFSET) {
s.append(" ");
s.append(toMathName(v));
@@ -353,16 +357,15 @@ public class IntegerExpressionEvaluator {
/**
* This creates an infix string expression
- * @param mask The bits that are operators
+ * @param opMask The bits that are operators
* @param exp the array of expressions
* @return infix string
*/
- public static String toStringInfix(int mask, int[] exp) {
- return toString(mask, exp, exp.length - 1);
+ public static String toStringInfix(int opMask, int[] exp) {
+ return toString(opMask, exp, exp.length - 1);
}
static String toString(int mask, int[] exp, int sp) {
- String[] str = new String[exp.length];
if (((1 << sp) & mask) != 0) {
int id = exp[sp] - OFFSET;
switch (NO_OF_OPS[id]) {
@@ -418,11 +421,11 @@ public class IntegerExpressionEvaluator {
/**
* is it an id or operation
- * @param mask the bits that mark elements as an operation
+ * @param opMask the bits that mark elements as an operation
* @param i the bit to check
* @return true if the bit is 1
*/
- public static boolean isOperation(int mask, int i) {
- return ((1 << i) & mask) != 0;
+ public static boolean isOperation(int opMask, int i) {
+ return ((1 << i) & opMask) != 0;
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/NanMap.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/NanMap.java
index f4cd504d650f..1e669c6b2e35 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/NanMap.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/NanMap.java
@@ -19,20 +19,25 @@ import com.android.internal.widget.remotecompose.core.operations.Utils;
/**
* This defines the major id maps and ranges used by remote compose
- * Generally ids ranging from 0 ... FFF (4095) are for ids
+ * Generally ids ranging from 1 ... 7FFFFF (4095) are for ids
+ * The data range is divided int to bits
+ * 0xxxxx are allocated for Predefined Global System Variables
+ * 1xxxxx are allocated to normal variables
+ * 2xxxxx are allocated to List&MAPS (Arrays of stuff)
+ * 3xxxxx are allocated to path & float operations
+ * 4xxxxx,5xxxxx,7xxxxx are reserved for future use
* 0x1000-0x1100 are used for path operations in PathData
* 0x1100-0x1200 are used for math operations in Animated float
* 0x
*/
public class NanMap {
-
- public static final int MOVE = 0x1000;
- public static final int LINE = 0x1001;
- public static final int QUADRATIC = 0x1002;
- public static final int CONIC = 0x1003;
- public static final int CUBIC = 0x1004;
- public static final int CLOSE = 0x1005;
- public static final int DONE = 0x1006;
+ public static final int MOVE = 0x300_000;
+ public static final int LINE = 0x300_001;
+ public static final int QUADRATIC = 0x300_002;
+ public static final int CONIC = 0x300_003;
+ public static final int CUBIC = 0x300_004;
+ public static final int CLOSE = 0x300_005;
+ public static final int DONE = 0x300_006;
public static final float MOVE_NAN = Utils.asNan(MOVE);
public static final float LINE_NAN = Utils.asNan(LINE);
public static final float QUADRATIC_NAN = Utils.asNan(QUADRATIC);
@@ -41,31 +46,46 @@ public class NanMap {
public static final float CLOSE_NAN = Utils.asNan(CLOSE);
public static final float DONE_NAN = Utils.asNan(DONE);
- /**
- *
- */
- public static final float ADD = asNan(0x1100);
- public static final float SUB = asNan(0x1101);
- public static final float MUL = asNan(0x1102);
- public static final float DIV = asNan(0x1103);
- public static final float MOD = asNan(0x1104);
- public static final float MIN = asNan(0x1105);
- public static final float MAX = asNan(0x1106);
- public static final float POW = asNan(0x1107);
+ public static boolean isSystemVariable(float value) {
+ return (fromNaN(value) >> 20) == 0;
+ }
+
+ public static boolean isNormalVariable(float value) {
+ return (fromNaN(value) >> 20) == 1;
+ }
+
+ public static boolean isDataVariable(float value) {
+ return (fromNaN(value) >> 20) == 2;
+ }
+
+ public static boolean isOperationVariable(float value) {
+ return (fromNaN(value) >> 20) == 3;
+ }
+
+ public static final int START_VAR = (1 << 20) + 42;
+ public static final int START_ARRAY = (2 << 20) + 42;
+ public static final int TYPE_SYSTEM = 0;
+ public static final int TYPE_VARIABLE = 1;
+ public static final int TYPE_ARRAY = 2;
+ public static final int TYPE_OPERATION = 3;
+ public static final int ID_REGION_MASK = 0x700000;
+ public static final int ID_REGION_ARRAY = 0x200000;
/**
* Get ID from Nan float
+ *
* @param v
* @return
*/
public static int fromNaN(float v) {
int b = Float.floatToRawIntBits(v);
- return b & 0xFFFFF;
+ return b & 0x7FFFFF;
}
/**
* Given id return as a Nan float
+ *
* @param v
* @return
*/
diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/FloatAnimation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/FloatAnimation.java
index 4f484de1045e..98dbf0048abd 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/FloatAnimation.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/FloatAnimation.java
@@ -51,6 +51,7 @@ public class FloatAnimation extends Easing {
}
public FloatAnimation() {
+ mEasingCurve = new CubicEasing(mType);
}
public FloatAnimation(float... description) {
@@ -86,21 +87,26 @@ public class FloatAnimation extends Easing {
count++;
}
if (spec != null) {
+
count++;
}
if (spec != null || type != CUBIC_STANDARD) {
count++;
count += (spec == null) ? 0 : spec.length;
}
- if (duration != 1 || count > 0) {
- count++;
- }
+
if (!Float.isNaN(initialValue)) {
count++;
}
if (!Float.isNaN(wrap)) {
count++;
}
+ if (duration != 1 || count > 0) {
+ count++;
+ }
+ if (!Float.isNaN(wrap) || !Float.isNaN(initialValue)) {
+ count++;
+ }
float[] ret = new float[count];
int pos = 0;
int specLen = (spec == null) ? 0 : spec.length;
diff --git a/core/java/com/android/internal/widget/remotecompose/core/types/BooleanConstant.java b/core/java/com/android/internal/widget/remotecompose/core/types/BooleanConstant.java
index 1051192441dd..9045bcbd2e06 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/types/BooleanConstant.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/types/BooleanConstant.java
@@ -15,11 +15,14 @@
*/
package com.android.internal.widget.remotecompose.core.types;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.BYTE;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
@@ -27,6 +30,7 @@ import java.util.List;
* Used to represent a boolean
*/
public class BooleanConstant implements Operation {
+ private static final int OP_CODE = Operations.DATA_BOOLEAN;
boolean mValue = false;
private int mId;
@@ -37,7 +41,7 @@ public class BooleanConstant implements Operation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mId, mValue);
+ apply(buffer, mId, mValue);
}
@Override
@@ -55,42 +59,43 @@ public class BooleanConstant implements Operation {
return "BooleanConstant[" + mId + "] = " + mValue + "";
}
- public static final Companion COMPANION = new Companion();
-
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
-
- @Override
- public String name() {
- return "OrigamiBoolean";
- }
-
- @Override
- public int id() {
- return Operations.DATA_BOOLEAN;
- }
-
- /**
- * Writes out the operation to the buffer
- *
- * @param buffer
- * @param id
- * @param value
- */
- public void apply(WireBuffer buffer, int id, boolean value) {
- buffer.start(Operations.DATA_BOOLEAN);
- buffer.writeInt(id);
- buffer.writeBoolean(value);
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int id = buffer.readInt();
-
- boolean value = buffer.readBoolean();
- operations.add(new BooleanConstant(id, value));
- }
+ public static String name() {
+ return "OrigamiBoolean";
+ }
+
+ public static int id() {
+ return Operations.DATA_BOOLEAN;
+ }
+
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer
+ * @param id
+ * @param value
+ */
+ public static void apply(WireBuffer buffer, int id, boolean value) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(id);
+ buffer.writeBoolean(value);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int id = buffer.readInt();
+
+ boolean value = buffer.readBoolean();
+ operations.add(new BooleanConstant(id, value));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Expressions Operations",
+ OP_CODE,
+ "BooleanConstant")
+ .description("A boolean and its associated id")
+ .field(INT, "id", "id of Int")
+ .field(BYTE, "value",
+ "8-bit 0 or 1");
+
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/types/IntegerConstant.java b/core/java/com/android/internal/widget/remotecompose/core/types/IntegerConstant.java
index ceb323629e98..90faf52f2362 100644
--- a/core/java/com/android/internal/widget/remotecompose/core/types/IntegerConstant.java
+++ b/core/java/com/android/internal/widget/remotecompose/core/types/IntegerConstant.java
@@ -15,11 +15,13 @@
*/
package com.android.internal.widget.remotecompose.core.types;
-import com.android.internal.widget.remotecompose.core.CompanionOperation;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+
import com.android.internal.widget.remotecompose.core.Operation;
import com.android.internal.widget.remotecompose.core.Operations;
import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
import java.util.List;
@@ -38,7 +40,7 @@ public class IntegerConstant implements Operation {
@Override
public void write(WireBuffer buffer) {
- COMPANION.apply(buffer, mId, mValue);
+ apply(buffer, mId, mValue);
}
@Override
@@ -56,41 +58,42 @@ public class IntegerConstant implements Operation {
return "IntegerConstant[" + mId + "] = " + mValue + "";
}
- public static final Companion COMPANION = new Companion();
-
- public static class Companion implements CompanionOperation {
- private Companion() {
- }
-
- @Override
- public String name() {
- return "IntegerConstant";
- }
-
- @Override
- public int id() {
- return Operations.DATA_INT;
- }
-
- /**
- * Writes out the operation to the buffer
- *
- * @param buffer
- * @param textId
- * @param value
- */
- public void apply(WireBuffer buffer, int textId, int value) {
- buffer.start(Operations.DATA_INT);
- buffer.writeInt(textId);
- buffer.writeInt(value);
- }
-
- @Override
- public void read(WireBuffer buffer, List<Operation> operations) {
- int id = buffer.readInt();
-
- int value = buffer.readInt();
- operations.add(new IntegerConstant(id, value));
- }
+ public static String name() {
+ return "IntegerConstant";
+ }
+
+ public static int id() {
+ return Operations.DATA_INT;
+ }
+
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer
+ * @param textId
+ * @param value
+ */
+ public static void apply(WireBuffer buffer, int textId, int value) {
+ buffer.start(Operations.DATA_INT);
+ buffer.writeInt(textId);
+ buffer.writeInt(value);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int id = buffer.readInt();
+
+ int value = buffer.readInt();
+ operations.add(new IntegerConstant(id, value));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Expressions Operations",
+ id(),
+ "IntegerConstant")
+ .description("A integer and its associated id")
+ .field(INT, "id", "id of Int")
+ .field(INT, "value",
+ "32-bit int value");
+
}
}
diff --git a/core/java/com/android/internal/widget/remotecompose/core/types/LongConstant.java b/core/java/com/android/internal/widget/remotecompose/core/types/LongConstant.java
new file mode 100644
index 000000000000..70402cf45eae
--- /dev/null
+++ b/core/java/com/android/internal/widget/remotecompose/core/types/LongConstant.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.internal.widget.remotecompose.core.types;
+
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT;
+import static com.android.internal.widget.remotecompose.core.documentation.Operation.LONG;
+
+import com.android.internal.widget.remotecompose.core.Operation;
+import com.android.internal.widget.remotecompose.core.Operations;
+import com.android.internal.widget.remotecompose.core.RemoteContext;
+import com.android.internal.widget.remotecompose.core.WireBuffer;
+import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder;
+
+import java.util.List;
+
+/**
+ * Used to represent a long
+ */
+public class LongConstant implements Operation {
+ private static final int OP_CODE = Operations.DATA_LONG;
+ long mValue;
+ private int mId;
+
+ public LongConstant(int id, long value) {
+ mId = id;
+ mValue = value;
+ }
+
+ @Override
+ public void write(WireBuffer buffer) {
+ apply(buffer, mId, mValue);
+ }
+
+ @Override
+ public void apply(RemoteContext context) {
+ }
+
+ @Override
+ public String deepToString(String indent) {
+ return toString();
+ }
+
+ @Override
+ public String toString() {
+ return "LongConstant[" + mId + "] = " + mValue + "";
+ }
+
+ /**
+ * Writes out the operation to the buffer
+ *
+ * @param buffer
+ * @param id
+ * @param value
+ */
+ public static void apply(WireBuffer buffer, int id, long value) {
+ buffer.start(OP_CODE);
+ buffer.writeInt(id);
+ buffer.writeLong(value);
+ }
+
+ public static void read(WireBuffer buffer, List<Operation> operations) {
+ int id = buffer.readInt();
+
+ long value = buffer.readLong();
+ operations.add(new LongConstant(id, value));
+ }
+
+ public static void documentation(DocumentationBuilder doc) {
+ doc.operation("Expressions Operations",
+ OP_CODE,
+ "LongConstant")
+ .description("A boolean and its associated id")
+ .field(INT, "id", "id of Int")
+ .field(LONG, "value",
+ "The long Value");
+
+ }
+
+}
diff --git a/core/java/com/android/internal/widget/remotecompose/player/RemoteComposeDocument.java b/core/java/com/android/internal/widget/remotecompose/player/RemoteComposeDocument.java
index 65a337e672b8..e32f8239d7ef 100644
--- a/core/java/com/android/internal/widget/remotecompose/player/RemoteComposeDocument.java
+++ b/core/java/com/android/internal/widget/remotecompose/player/RemoteComposeDocument.java
@@ -35,6 +35,10 @@ public class RemoteComposeDocument {
mDocument.initFromBuffer(buffer);
}
+ public RemoteComposeDocument(CoreDocument document) {
+ mDocument = document;
+ }
+
public CoreDocument getDocument() {
return mDocument;
}
@@ -122,5 +126,16 @@ public class RemoteComposeDocument {
public Component getComponent(int id) {
return mDocument.getComponent(id);
}
+
+ public void invalidate() {
+ mDocument.invalidateMeasure();
+ }
+
+ public String[] getStats() {
+ if (mDocument == null) {
+ return new String[0];
+ }
+ return mDocument.getStats();
+ }
}
diff --git a/core/java/com/android/internal/widget/remotecompose/player/RemoteComposePlayer.java b/core/java/com/android/internal/widget/remotecompose/player/RemoteComposePlayer.java
index b2406bf69ec8..3d78680bff0a 100644
--- a/core/java/com/android/internal/widget/remotecompose/player/RemoteComposePlayer.java
+++ b/core/java/com/android/internal/widget/remotecompose/player/RemoteComposePlayer.java
@@ -66,6 +66,10 @@ public class RemoteComposePlayer extends FrameLayout {
}
}
+ public RemoteComposeDocument getDocument() {
+ return mInner.getDocument();
+ }
+
public void setDocument(RemoteComposeDocument value) {
if (value != null) {
if (value.canBeDisplayed(
@@ -151,6 +155,84 @@ public class RemoteComposePlayer extends FrameLayout {
addView(mInner, layoutParams);
}
+ /**
+ * Set an override for a string resource
+ *
+ * @param domain domain (SYSTEM or USER)
+ * @param name name of the string
+ * @param content content of the string
+ */
+ public void setLocalString(String domain, String name, String content) {
+ mInner.setLocalString(domain + ":" + name, content);
+ }
+
+ /**
+ * Clear the override of the given string
+ *
+ * @param domain domain (SYSTEM or USER)
+ * @param name name of the string
+ */
+ public void clearLocalString(String domain, String name) {
+ mInner.clearLocalString(domain + ":" + name);
+ }
+
+ /**
+ * Set an override for a user domain string resource
+ *
+ * @param name name of the string
+ * @param content content of the string
+ */
+ public void setUserLocalString(String name, String content) {
+ mInner.setLocalString("USER:" + name, content);
+ }
+
+ /**
+ * Set an override for a user domain int resource
+ *
+ * @param name name of the int
+ * @param value value of the int
+ */
+ public void setUserLocalInt(String name, int value) {
+ mInner.setLocalInt("USER:" + name, value);
+ }
+
+ /**
+ * Clear the override of the given user string
+ *
+ * @param name name of the string
+ */
+ public void clearUserLocalString(String name) {
+ mInner.clearLocalString("USER:" + name);
+ }
+
+ /**
+ * Clear the override of the given user int
+ *
+ * @param name name of the int
+ */
+ public void clearUserLocalInt(String name) {
+ mInner.clearLocalInt("USER:" + name);
+ }
+
+ /**
+ * Set an override for a system domain string resource
+ *
+ * @param name name of the string
+ * @param content content of the string
+ */
+ public void setSystemLocalString(String name, String content) {
+ mInner.setLocalString("SYSTEM:" + name, content);
+ }
+
+ /**
+ * Clear the override of the given system string
+ *
+ * @param name name of the string
+ */
+ public void clearSystemLocalString(String name) {
+ mInner.clearLocalString("SYSTEM:" + name);
+ }
+
public interface ClickCallbacks {
void click(int id, String metadata);
}
@@ -409,4 +491,7 @@ public class RemoteComposePlayer extends FrameLayout {
return color;
}
}
+
+
}
+
diff --git a/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidPaintContext.java b/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidPaintContext.java
index e01dd17ae0ea..4416cf76295c 100644
--- a/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidPaintContext.java
+++ b/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidPaintContext.java
@@ -210,19 +210,30 @@ public class AndroidPaintContext extends PaintContext {
}
@Override
- public void getTextBounds(int textId, int start, int end, boolean monospace, float[] bounds) {
+ public void getTextBounds(int textId, int start, int end, int flags, float[] bounds) {
String str = getText(textId);
if (end == -1) {
end = str.length();
}
+ Paint.FontMetrics metrics = mPaint.getFontMetrics();
mPaint.getTextBounds(str, start, end, mTmpRect);
bounds[0] = mTmpRect.left;
- bounds[1] = mTmpRect.top;
- bounds[2] = monospace ? (mPaint.measureText(str, start, end) - mTmpRect.left)
- : mTmpRect.right;
- bounds[3] = mTmpRect.bottom;
+
+ if ((flags & PaintContext.TEXT_MEASURE_MONOSPACE_WIDTH) != 0) {
+ bounds[2] = mPaint.measureText(str, start, end) - mTmpRect.left;
+ } else {
+ bounds[2] = mTmpRect.right;
+ }
+
+ if ((flags & PaintContext.TEXT_MEASURE_FONT_HEIGHT) != 0) {
+ bounds[1] = Math.round(metrics.ascent);
+ bounds[3] = Math.round(metrics.bottom);
+ } else {
+ bounds[1] = mTmpRect.top;
+ bounds[3] = mTmpRect.bottom;
+ }
}
@Override
@@ -236,6 +247,9 @@ public class AndroidPaintContext extends PaintContext {
boolean rtl) {
String textToPaint = getText(textID);
+ if (textToPaint == null) {
+ return;
+ }
if (end == -1) {
if (start != 0) {
textToPaint = textToPaint.substring(start);
diff --git a/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidRemoteContext.java b/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidRemoteContext.java
index 5a87c7083c9d..c98937530897 100644
--- a/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidRemoteContext.java
+++ b/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidRemoteContext.java
@@ -23,6 +23,7 @@ import com.android.internal.widget.remotecompose.core.RemoteContext;
import com.android.internal.widget.remotecompose.core.VariableSupport;
import com.android.internal.widget.remotecompose.core.operations.FloatExpression;
import com.android.internal.widget.remotecompose.core.operations.ShaderData;
+import com.android.internal.widget.remotecompose.core.operations.utilities.ArrayAccess;
import java.util.HashMap;
@@ -52,7 +53,7 @@ class AndroidRemoteContext extends RemoteContext {
@Override
public void loadPathData(int instanceId, float[] floatPath) {
if (!mRemoteComposeState.containsId(instanceId)) {
- mRemoteComposeState.cache(instanceId, floatPath);
+ mRemoteComposeState.cacheData(instanceId, floatPath);
}
}
@@ -75,6 +76,40 @@ class AndroidRemoteContext extends RemoteContext {
mVarNameHashMap.put(varName, new VarName(varName, varId, varType));
}
+ @Override
+ public void setNamedStringOverride(String stringName, String value) {
+ if (mVarNameHashMap.get(stringName) != null) {
+ int id = mVarNameHashMap.get(stringName).mId;
+ overrideText(id, value);
+ }
+ }
+
+ @Override
+ public void clearNamedStringOverride(String stringName) {
+ if (mVarNameHashMap.get(stringName) != null) {
+ int id = mVarNameHashMap.get(stringName).mId;
+ clearDataOverride(id);
+ }
+ mVarNameHashMap.put(stringName, null);
+ }
+
+ @Override
+ public void setNamedIntegerOverride(String stringName, int value) {
+ if (mVarNameHashMap.get(stringName) != null) {
+ int id = mVarNameHashMap.get(stringName).mId;
+ overrideInt(id, value);
+ }
+ }
+
+ @Override
+ public void clearNamedIntegerOverride(String integerName) {
+ if (mVarNameHashMap.get(integerName) != null) {
+ int id = mVarNameHashMap.get(integerName).mId;
+ clearIntegerOverride(id);
+ }
+ mVarNameHashMap.put(integerName, null);
+ }
+
/**
* Override a color to force it to be the color provided
*
@@ -85,6 +120,23 @@ class AndroidRemoteContext extends RemoteContext {
int id = mVarNameHashMap.get(colorName).mId;
mRemoteComposeState.overrideColor(id, color);
}
+
+ @Override
+ public void addCollection(int id, ArrayAccess collection) {
+ mRemoteComposeState.addCollection(id, collection);
+ }
+
+ @Override
+ public void runAction(int id, String metadata) {
+ mDocument.performClick(id);
+ }
+
+ @Override
+ public void runNamedAction(int id) {
+ String text = getText(id);
+ mDocument.runNamedAction(text);
+ }
+
/**
* Decode a byte array into an image and cache it using the given imageId
*
@@ -97,19 +149,35 @@ class AndroidRemoteContext extends RemoteContext {
public void loadBitmap(int imageId, int width, int height, byte[] bitmap) {
if (!mRemoteComposeState.containsId(imageId)) {
Bitmap image = BitmapFactory.decodeByteArray(bitmap, 0, bitmap.length);
- mRemoteComposeState.cache(imageId, image);
+ mRemoteComposeState.cacheData(imageId, image);
}
}
@Override
public void loadText(int id, String text) {
if (!mRemoteComposeState.containsId(id)) {
- mRemoteComposeState.cache(id, text);
+ mRemoteComposeState.cacheData(id, text);
} else {
- mRemoteComposeState.update(id, text);
+ mRemoteComposeState.updateData(id, text);
}
}
+ public void overrideText(int id, String text) {
+ mRemoteComposeState.overrideData(id, text);
+ }
+
+ public void overrideInt(int id, int value) {
+ mRemoteComposeState.overrideInteger(id, value);
+ }
+
+ public void clearDataOverride(int id) {
+ mRemoteComposeState.clearDataOverride(id);
+ }
+
+ public void clearIntegerOverride(int id) {
+ mRemoteComposeState.clearIntegerOverride(id);
+ }
+
@Override
public String getText(int id) {
return (String) mRemoteComposeState.getFromId(id);
@@ -125,6 +193,14 @@ class AndroidRemoteContext extends RemoteContext {
mRemoteComposeState.updateInteger(id, value);
}
+ public void overrideInteger(int id, int value) {
+ mRemoteComposeState.overrideInteger(id, value);
+ }
+
+ public void overrideText(int id, int valueId) {
+ String text = getText(valueId);
+ overrideText(id, text);
+ }
@Override
public void loadColor(int id, int color) {
@@ -133,12 +209,12 @@ class AndroidRemoteContext extends RemoteContext {
@Override
public void loadAnimatedFloat(int id, FloatExpression animatedFloat) {
- mRemoteComposeState.cache(id, animatedFloat);
+ mRemoteComposeState.cacheData(id, animatedFloat);
}
@Override
public void loadShader(int id, ShaderData value) {
- mRemoteComposeState.cache(id, value);
+ mRemoteComposeState.cacheData(id, value);
}
@Override
@@ -187,5 +263,6 @@ class AndroidRemoteContext extends RemoteContext {
String metadata = (String) mRemoteComposeState.getFromId(metadataId);
mDocument.addClickArea(id, contentDescription, left, top, right, bottom, metadata);
}
+
}
diff --git a/core/java/com/android/internal/widget/remotecompose/player/platform/FloatsToPath.java b/core/java/com/android/internal/widget/remotecompose/player/platform/FloatsToPath.java
index 7a8542712cbf..d75232a6557e 100644
--- a/core/java/com/android/internal/widget/remotecompose/player/platform/FloatsToPath.java
+++ b/core/java/com/android/internal/widget/remotecompose/player/platform/FloatsToPath.java
@@ -19,7 +19,6 @@ import static com.android.internal.widget.remotecompose.core.operations.Utils.id
import android.graphics.Path;
import android.graphics.PathMeasure;
-import android.os.Build;
import com.android.internal.widget.remotecompose.core.operations.PathData;
@@ -58,13 +57,11 @@ public class FloatsToPath {
break;
case PathData.CONIC: {
i += 3;
- if (Build.VERSION.SDK_INT >= 34) { // REMOVE IN PLATFORM
- path.conicTo(
- floatPath[i + 0], floatPath[i + 1],
- floatPath[i + 2], floatPath[i + 3],
- floatPath[i + 4]
- );
- }
+ path.conicTo(
+ floatPath[i + 0], floatPath[i + 1],
+ floatPath[i + 2], floatPath[i + 3],
+ floatPath[i + 4]
+ );
i += 5;
}
break;
diff --git a/core/java/com/android/internal/widget/remotecompose/player/platform/RemoteComposeCanvas.java b/core/java/com/android/internal/widget/remotecompose/player/platform/RemoteComposeCanvas.java
index 0d7f97ac37c9..f91e15818471 100644
--- a/core/java/com/android/internal/widget/remotecompose/player/platform/RemoteComposeCanvas.java
+++ b/core/java/com/android/internal/widget/remotecompose/player/platform/RemoteComposeCanvas.java
@@ -41,6 +41,7 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta
int mTheme = Theme.LIGHT;
boolean mInActionDown = false;
boolean mDebug = false;
+ boolean mHasClickAreas = false;
Point mActionDownPoint = new Point(0, 0);
AndroidRemoteContext mARContext = new AndroidRemoteContext();
@@ -85,6 +86,7 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta
mDocument = value;
mDocument.initializeContext(mARContext);
setContentDescription(mDocument.getDocument().getContentDescription());
+ updateClickAreas();
requestLayout();
invalidate();
}
@@ -94,23 +96,33 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta
if (mDocument == null) {
return;
}
- Set<CoreDocument.ClickAreaRepresentation> clickAreas = mDocument
- .getDocument().getClickAreas();
- removeAllViews();
- for (CoreDocument.ClickAreaRepresentation area : clickAreas) {
- ClickAreaView viewArea = new ClickAreaView(getContext(), mDebug,
- area.getId(), area.getContentDescription(),
- area.getMetadata());
- int w = (int) area.width();
- int h = (int) area.height();
- FrameLayout.LayoutParams param = new FrameLayout.LayoutParams(w, h);
- param.width = w;
- param.height = h;
- param.leftMargin = (int) area.getLeft();
- param.topMargin = (int) area.getTop();
- viewArea.setOnClickListener(view1
- -> mDocument.getDocument().performClick(area.getId()));
- addView(viewArea, param);
+ updateClickAreas();
+ }
+
+ private void updateClickAreas() {
+ if (USE_VIEW_AREA_CLICK && mDocument != null) {
+ mHasClickAreas = false;
+ Set<CoreDocument.ClickAreaRepresentation> clickAreas = mDocument
+ .getDocument().getClickAreas();
+ removeAllViews();
+ for (CoreDocument.ClickAreaRepresentation area : clickAreas) {
+ ClickAreaView viewArea = new ClickAreaView(getContext(), mDebug,
+ area.getId(), area.getContentDescription(),
+ area.getMetadata());
+ int w = (int) area.width();
+ int h = (int) area.height();
+ FrameLayout.LayoutParams param = new FrameLayout.LayoutParams(w, h);
+ param.width = w;
+ param.height = h;
+ param.leftMargin = (int) area.getLeft();
+ param.topMargin = (int) area.getTop();
+ viewArea.setOnClickListener(view1
+ -> mDocument.getDocument().performClick(area.getId()));
+ addView(viewArea, param);
+ }
+ if (!clickAreas.isEmpty()) {
+ mHasClickAreas = true;
+ }
}
}
@@ -133,6 +145,38 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta
mARContext.setNamedColorOverride(colorName, colorValue);
}
+ public RemoteComposeDocument getDocument() {
+ return mDocument;
+ }
+
+ public void setLocalString(String name, String content) {
+ mARContext.setNamedStringOverride(name, content);
+ if (mDocument != null) {
+ mDocument.invalidate();
+ }
+ }
+
+ public void clearLocalString(String name) {
+ mARContext.clearNamedStringOverride(name);
+ if (mDocument != null) {
+ mDocument.invalidate();
+ }
+ }
+
+ public void setLocalInt(String name, int content) {
+ mARContext.setNamedIntegerOverride(name, content);
+ if (mDocument != null) {
+ mDocument.invalidate();
+ }
+ }
+
+ public void clearLocalInt(String name) {
+ mARContext.clearNamedIntegerOverride(name);
+ if (mDocument != null) {
+ mDocument.invalidate();
+ }
+ }
+
public interface ClickCallbacks {
void click(int id, String metadata);
}
@@ -153,7 +197,7 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta
}
public boolean onTouchEvent(MotionEvent event) {
- if (USE_VIEW_AREA_CLICK) {
+ if (USE_VIEW_AREA_CLICK && mHasClickAreas) {
return super.onTouchEvent(event);
}
switch (event.getActionMasked()) {
@@ -180,11 +224,13 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta
@Override
public boolean performClick() {
- if (USE_VIEW_AREA_CLICK) {
+ if (USE_VIEW_AREA_CLICK && mHasClickAreas) {
return super.performClick();
}
- mDocument.getDocument().onClick((float) mActionDownPoint.x, (float) mActionDownPoint.y);
+ mDocument.getDocument().onClick(mARContext,
+ (float) mActionDownPoint.x, (float) mActionDownPoint.y);
super.performClick();
+ invalidate();
return true;
}
@@ -213,9 +259,10 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta
if (mDocument == null) {
return;
}
+ int preWidth = getWidth();
+ int preHeight = getHeight();
int w = measureDimension(widthMeasureSpec, mDocument.getWidth());
int h = measureDimension(heightMeasureSpec, mDocument.getHeight());
- mDocument.getDocument().invalidateMeasure();
if (!USE_VIEW_AREA_CLICK) {
if (mDocument.getDocument().getContentSizing() == RootContentBehavior.SIZING_SCALE) {
@@ -225,6 +272,9 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta
}
}
setMeasuredDimension(w, h);
+ if (preWidth != w || preHeight != h) {
+ mDocument.getDocument().invalidateMeasure();
+ }
}
private int mCount;
diff --git a/core/jni/android_database_SQLiteConnection.cpp b/core/jni/android_database_SQLiteConnection.cpp
index 3370f386f4d2..ba7e70564143 100644
--- a/core/jni/android_database_SQLiteConnection.cpp
+++ b/core/jni/android_database_SQLiteConnection.cpp
@@ -16,27 +16,22 @@
#define LOG_TAG "SQLiteConnection"
-#include <jni.h>
-#include <nativehelper/JNIHelp.h>
+#include <android-base/mapped_file.h>
#include <android_runtime/AndroidRuntime.h>
#include <android_runtime/Log.h>
-
-#include <utils/Log.h>
-#include <utils/String8.h>
-#include <utils/String16.h>
-#include <cutils/ashmem.h>
-#include <sys/mman.h>
-
-#include <string.h>
-#include <unistd.h>
-
#include <androidfw/CursorWindow.h>
-
+#include <cutils/ashmem.h>
+#include <jni.h>
+#include <nativehelper/JNIHelp.h>
#include <sqlite3.h>
#include <sqlite3_android.h>
+#include <string.h>
+#include <unistd.h>
+#include <utils/Log.h>
+#include <utils/String16.h>
+#include <utils/String8.h>
#include "android_database_SQLiteCommon.h"
-
#include "core_jni_helpers.h"
// Set to 1 to use UTF16 storage for localized indexes.
@@ -669,13 +664,14 @@ static int createAshmemRegionWithData(JNIEnv* env, const void* data, size_t leng
ALOGE("ashmem_create_region failed: %s", strerror(error));
} else {
if (length > 0) {
- void* ptr = mmap(NULL, length, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if (ptr == MAP_FAILED) {
+ std::unique_ptr<base::MappedFile> mappedFile =
+ base::MappedFile::FromFd(fd, 0, length, PROT_READ | PROT_WRITE);
+ if (mappedFile == nullptr) {
error = errno;
ALOGE("mmap failed: %s", strerror(error));
} else {
- memcpy(ptr, data, length);
- munmap(ptr, length);
+ memcpy(mappedFile->data(), data, length);
+ mappedFile.reset();
}
}
diff --git a/core/tests/coretests/src/android/view/InputEventCompatProcessorTest.java b/core/tests/coretests/src/android/view/InputEventCompatProcessorTest.java
new file mode 100644
index 000000000000..f2391eed6156
--- /dev/null
+++ b/core/tests/coretests/src/android/view/InputEventCompatProcessorTest.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package android.view;
+
+import static android.view.MotionEvent.ACTION_DOWN;
+import static android.view.MotionEvent.ACTION_UP;
+
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeTrue;
+
+import android.content.Context;
+import android.graphics.Rect;
+import android.os.Build;
+import android.os.Handler;
+import android.os.Looper;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.annotations.Presubmit;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import com.android.window.flags.Flags;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Tests for {@link InputEventCompatProcessor}
+ *
+ * Build/Install/Run:
+ * atest FrameworksCoreTests:InputEventCompatProcessorTest
+ */
+@SmallTest
+@Presubmit
+public class InputEventCompatProcessorTest {
+
+ private InputEventCompatProcessor mInputEventCompatProcessor;
+
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+ @Before
+ public void setUp() {
+ Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
+
+ assumeTrue("Is at least targeting Android M",
+ context.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.M);
+
+ // Set app bounds as if it was letterboxed.
+ context.getResources().getConfiguration().windowConfiguration
+ .setBounds(new Rect(200, 200, 600, 1000));
+
+ Handler handler = new Handler(Looper.getMainLooper());
+
+ mInputEventCompatProcessor = new InputEventCompatProcessor(context, handler);
+ }
+
+ @DisableFlags(Flags.FLAG_SCROLLING_FROM_LETTERBOX)
+ @Test
+ public void testTapGestureOutsideBoundsHasNoAdjustmentsWhenScrollingFromLetterboxDisabled() {
+ // Tap-like gesture in bounds (non-scroll).
+ List<MotionEvent> tapGestureEvents = createTapGestureEvents(-100f, -100f);
+
+ for (MotionEvent motionEvent : tapGestureEvents) {
+ List<InputEvent> compatProcessedEvents =
+ mInputEventCompatProcessor.processInputEventForCompatibility(motionEvent);
+ // Expect null to be returned, because no adjustments should be made to these events
+ // when Letterbox Scroll Processor is disabled.
+ assertNull(compatProcessedEvents);
+ }
+ }
+
+ @EnableFlags(Flags.FLAG_SCROLLING_FROM_LETTERBOX)
+ @Test
+ public void testTapGestureOutsideBoundsIsIgnoredWhenScrollingFromLetterboxEnabled() {
+ // Tap-like gesture in bounds (non-scroll).
+ List<MotionEvent> tapGestureEvents = createTapGestureEvents(-100f, -100f);
+
+ for (MotionEvent motionEvent : tapGestureEvents) {
+ List<InputEvent> compatProcessedEvents =
+ mInputEventCompatProcessor.processInputEventForCompatibility(motionEvent);
+ // Expect no events returned because Letterbox Scroll Processor is enabled and therefore
+ // should cause the out of bound events to be ignored.
+ assertTrue(compatProcessedEvents.isEmpty());
+ }
+ }
+
+ private List<MotionEvent> createTapGestureEvents(float startX, float startY) {
+ // Events for tap-like gesture (non-scroll)
+ List<MotionEvent> motionEvents = new ArrayList<>();
+ motionEvents.add(createBasicMotionEvent(0, ACTION_DOWN, startX, startY));
+ motionEvents.add(createBasicMotionEvent(10, ACTION_UP, startX , startY));
+ return motionEvents;
+ }
+
+ private MotionEvent createBasicMotionEvent(int downTime, int action, float x, float y) {
+ return MotionEvent.obtain(0, downTime, action, x, y, 0);
+ }
+}
diff --git a/core/tests/coretests/src/android/view/LetterboxScrollProcessorTest.java b/core/tests/coretests/src/android/view/LetterboxScrollProcessorTest.java
new file mode 100644
index 000000000000..f8ec9f4fb51b
--- /dev/null
+++ b/core/tests/coretests/src/android/view/LetterboxScrollProcessorTest.java
@@ -0,0 +1,253 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package android.view;
+
+import static android.view.MotionEvent.ACTION_DOWN;
+import static android.view.MotionEvent.ACTION_MOVE;
+import static android.view.MotionEvent.ACTION_UP;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import android.content.Context;
+import android.graphics.Rect;
+import android.os.Handler;
+import android.os.Looper;
+import android.platform.test.annotations.Presubmit;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.junit.Before;
+import org.junit.Test;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Tests for {@link LetterboxScrollProcessor}
+ *
+ * Build/Install/Run:
+ * atest FrameworksCoreTests:LetterboxScrollProcessorTest
+ */
+@SmallTest
+@Presubmit
+public class LetterboxScrollProcessorTest {
+
+ private LetterboxScrollProcessor mLetterboxScrollProcessor;
+ private Context mContext;
+
+ // Constant delta used when comparing coordinates (floats)
+ private static final float EPSILON = 0.1f;
+
+ @Before
+ public void setUp() {
+ mContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+
+ // Set app bounds as if it was letterboxed.
+ mContext.getResources().getConfiguration().windowConfiguration
+ .setBounds(new Rect(200, 200, 600, 1000));
+
+ Handler handler = new Handler(Looper.getMainLooper());
+
+ // Recreate to reset LetterboxScrollProcessor state.
+ mLetterboxScrollProcessor = new LetterboxScrollProcessor(mContext, handler);
+ }
+
+ @Test
+ public void testGestureInBoundsHasNoAdjustments() {
+ // Tap-like gesture in bounds (non-scroll).
+ List<MotionEvent> tapGestureEvents = createTapGestureEvents(0f, 0f);
+
+ // Get processed events from Letterbox Scroll Processor.
+ List<MotionEvent> processedEvents = processMotionEvents(tapGestureEvents);
+
+ // Ensure no changes are made to events after processing - event locations should not be
+ // adjusted because the gesture started in the app's bounds (for all gestures).
+ assertEventLocationsAreNotAdjusted(tapGestureEvents, processedEvents);
+ // Ensure all of these events should be finished (expect no generated events).
+ assertMotionEventsShouldBeFinished(processedEvents);
+ }
+
+ @Test
+ public void testGestureOutsideBoundsIsIgnored() {
+ // Tap-like gesture outside bounds (non-scroll).
+ List<MotionEvent> tapGestureEvents = createTapGestureEvents(-100f, -100f);
+
+ // Get processed events from Letterbox Scroll Processor.
+ List<MotionEvent> processedEvents = processMotionEvents(tapGestureEvents);
+
+ // All events should be ignored since it was a non-scroll gesture and out of bounds.
+ assertEquals(0, processedEvents.size());
+ }
+
+ @Test
+ public void testScrollGestureInBoundsHasNoAdjustments() {
+ // Scroll gesture in bounds (non-scroll).
+ List<MotionEvent> scrollGestureEvents = createScrollGestureEvents(0f, 0f);
+
+ // Get processed events from Letterbox Scroll Processor.
+ List<MotionEvent> processedEvents = processMotionEvents(scrollGestureEvents);
+
+ // Ensure no changes are made to events after processing - event locations should not be
+ // adjusted because the gesture started in the app's bounds (for all gestures).
+ assertEventLocationsAreNotAdjusted(scrollGestureEvents, processedEvents);
+ // Ensure all of these events should be finished (expect no generated events).
+ assertMotionEventsShouldBeFinished(processedEvents);
+ }
+
+ @Test
+ public void testScrollGestureInBoundsThenLeavesBoundsHasNoAdjustments() {
+ // Scroll gesture in bounds (non-scroll) that moves out of bounds.
+ List<MotionEvent> scrollGestureEvents = createScrollGestureEvents(390f, 790f);
+
+ // Get processed events from Letterbox Scroll Processor.
+ List<MotionEvent> processedEvents = processMotionEvents(scrollGestureEvents);
+
+ // Ensure no changes are made to events after processing - event locations should not be
+ // adjusted because the gesture started in the app's bounds (for all gestures), even if it
+ // leaves the apps bounds.
+ assertEventLocationsAreNotAdjusted(scrollGestureEvents, processedEvents);
+ // Ensure all of these events should be finished (expect no generated events).
+ assertMotionEventsShouldBeFinished(processedEvents);
+ }
+
+ @Test
+ public void testScrollGestureOutsideBoundsIsStartedInBounds() {
+ // Scroll gesture outside bounds.
+ List<MotionEvent> scrollGestureEvents = createScrollGestureEvents(-100f, 0f);
+
+ // Get processed events from Letterbox Scroll Processor.
+ List<MotionEvent> processedEvents = processMotionEvents(scrollGestureEvents);
+
+ // When a scroll occurs outside bounds: once detected as a scroll, the ACTION_DOWN is
+ // expected to be received again but with an offset so it is over the app's bounds.
+
+ // Ensure offset ACTION_DOWN is first event received.
+ MotionEvent firstProcessedEvent = processedEvents.getFirst();
+ assertEquals(firstProcessedEvent.getAction(), ACTION_DOWN);
+ assertEquals(firstProcessedEvent.getX(), 0, EPSILON);
+ assertEquals(firstProcessedEvent.getY(), 0, EPSILON);
+ // Ensure this event is not finished (because it was generated by LetterboxScrollProcessor).
+ assertNull(mLetterboxScrollProcessor.processMotionEventBeforeFinish(firstProcessedEvent));
+ }
+
+ @Test
+ public void testScrollGestureOutsideBoundsIsMovedInBounds() {
+ // Scroll gesture outside bounds.
+ List<MotionEvent> scrollGestureEvents = createScrollGestureEvents(-100f, 0f);
+
+ // Get processed events from Letterbox Scroll Processor.
+ List<MotionEvent> processedEvents = processMotionEvents(scrollGestureEvents);
+
+ // When a scroll occurs outside bounds: once detected as a scroll, an offset ACTION_DOWN is
+ // placed and then the rest of the gesture is offset also. Some ACTION_MOVE events may be
+ // ignored until the gesture is 'detected as a scroll'.
+ // For this test, we expect the first ACTION_MOVE event to be ignored:
+ scrollGestureEvents.remove(1);
+
+ // Ensure all processed events (that are not ignored) are offset over the app.
+ assertXCoordinatesAdjustedToZero(scrollGestureEvents, processedEvents);
+ // Except the first generated ACTION_DOWN event, ensure the following events should be
+ // finished (these events should not be generated).
+ assertMotionEventsShouldBeFinished(processedEvents.subList(1, processedEvents.size()));
+ }
+
+ private List<MotionEvent> processMotionEvents(List<MotionEvent> motionEvents) {
+ List<MotionEvent> processedEvents = new ArrayList<>();
+ for (MotionEvent motionEvent : motionEvents) {
+ MotionEvent clonedEvent = MotionEvent.obtain(motionEvent);
+ List<MotionEvent> letterboxScrollCompatEvents =
+ mLetterboxScrollProcessor.processMotionEvent(clonedEvent);
+ if (letterboxScrollCompatEvents == null) {
+ // Use original event if null returned (no adjustments made).
+ processedEvents.add(clonedEvent);
+ } else {
+ // Otherwise, use adjusted events.
+ processedEvents.addAll(letterboxScrollCompatEvents);
+ }
+ }
+ return processedEvents;
+ }
+
+ private List<MotionEvent> createTapGestureEvents(float startX, float startY) {
+ // Events for tap-like gesture (non-scroll)
+ List<MotionEvent> motionEvents = new ArrayList<>();
+ motionEvents.add(createBasicMotionEvent(0, ACTION_DOWN, startX, startY));
+ motionEvents.add(createBasicMotionEvent(10, ACTION_UP, startX , startY));
+ return motionEvents;
+ }
+
+ private List<MotionEvent> createScrollGestureEvents(float startX, float startY) {
+ float touchSlop = (float) ViewConfiguration.get(mContext).getScaledTouchSlop();
+
+ // Events for scroll gesture (starts at (startX, startY) then moves down-right
+ List<MotionEvent> motionEvents = new ArrayList<>();
+ motionEvents.add(createBasicMotionEvent(0, ACTION_DOWN, startX, startY));
+ motionEvents.add(createBasicMotionEvent(10, ACTION_MOVE,
+ startX + touchSlop / 2, startY + touchSlop / 2));
+ // Below event is first event in the scroll gesture where distance > touchSlop
+ motionEvents.add(createBasicMotionEvent(20, ACTION_MOVE,
+ startX + touchSlop * 2, startY + touchSlop * 2));
+ motionEvents.add(createBasicMotionEvent(30, ACTION_MOVE,
+ startX + touchSlop * 3, startY + touchSlop * 3));
+ motionEvents.add(createBasicMotionEvent(40, ACTION_UP,
+ startX + touchSlop * 3, startY + touchSlop * 3));
+ return motionEvents;
+ }
+
+ private MotionEvent createBasicMotionEvent(int downTime, int action, float x, float y) {
+ return MotionEvent.obtain(0, downTime, action, x, y, 0);
+ }
+
+ private void assertEventLocationsAreNotAdjusted(
+ List<MotionEvent> originalEvents,
+ List<MotionEvent> processedEvents) {
+ assertEquals("MotionEvent arrays are not the same size",
+ originalEvents.size(), processedEvents.size());
+
+ for (int i = 0; i < originalEvents.size(); i++) {
+ assertEquals("X coordinates was unexpectedly adjusted at index " + i,
+ originalEvents.get(i).getX(), processedEvents.get(i).getX(), EPSILON);
+ assertEquals("Y coordinates was unexpectedly adjusted at index " + i,
+ originalEvents.get(i).getY(), processedEvents.get(i).getY(), EPSILON);
+ }
+ }
+
+ private void assertXCoordinatesAdjustedToZero(
+ List<MotionEvent> originalEvents,
+ List<MotionEvent> processedEvents) {
+ assertEquals("MotionEvent arrays are not the same size",
+ originalEvents.size(), processedEvents.size());
+
+ for (int i = 0; i < originalEvents.size(); i++) {
+ assertEquals("X coordinate was not adjusted to 0 at index " + i,
+ 0, processedEvents.get(i).getX(), EPSILON);
+ assertEquals("Y coordinate was unexpectedly adjusted at index " + i,
+ originalEvents.get(i).getY(), processedEvents.get(i).getY(), EPSILON);
+ }
+ }
+
+ private void assertMotionEventsShouldBeFinished(List<MotionEvent> processedEvents) {
+ for (MotionEvent processedEvent : processedEvents) {
+ assertNotNull(mLetterboxScrollProcessor.processMotionEventBeforeFinish(processedEvent));
+ }
+ }
+}
diff --git a/core/tests/coretests/src/android/view/ViewFrameRateTest.java b/core/tests/coretests/src/android/view/ViewFrameRateTest.java
index c631c6f46e37..c98142357d69 100644
--- a/core/tests/coretests/src/android/view/ViewFrameRateTest.java
+++ b/core/tests/coretests/src/android/view/ViewFrameRateTest.java
@@ -22,6 +22,7 @@ import static android.view.Surface.FRAME_RATE_CATEGORY_LOW;
import static android.view.Surface.FRAME_RATE_CATEGORY_NORMAL;
import static android.view.Surface.FRAME_RATE_CATEGORY_NO_PREFERENCE;
import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
+import static android.view.flags.Flags.FLAG_TOOLKIT_FRAME_RATE_ANIMATION_BUGFIX_25Q1;
import static android.view.flags.Flags.FLAG_TOOLKIT_FRAME_RATE_VELOCITY_MAPPING_READ_ONLY;
import static android.view.flags.Flags.FLAG_TOOLKIT_FRAME_RATE_VIEW_ENABLING_READ_ONLY;
import static android.view.flags.Flags.FLAG_TOOLKIT_SET_FRAME_RATE_READ_ONLY;
@@ -46,6 +47,8 @@ import android.platform.test.flag.junit.CheckFlagsRule;
import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import android.sysprop.ViewProperties;
import android.util.DisplayMetrics;
+import android.view.animation.Animation;
+import android.view.animation.TranslateAnimation;
import android.widget.FrameLayout;
import android.widget.ProgressBar;
@@ -1023,6 +1026,30 @@ public class ViewFrameRateTest {
});
}
+ @Test
+ @RequiresFlagsEnabled(FLAG_TOOLKIT_FRAME_RATE_ANIMATION_BUGFIX_25Q1)
+ public void boostWhenApplyLegacyAnimation() throws Throwable {
+ if (!ViewProperties.vrr_enabled().orElse(true)) {
+ return;
+ }
+ waitForFrameRateCategoryToSettle();
+ mActivityRule.runOnUiThread(() -> {
+ TranslateAnimation translateAnimation = new TranslateAnimation(
+ Animation.RELATIVE_TO_PARENT, 0f, // fromXDelta
+ Animation.RELATIVE_TO_PARENT, 0f, // toXDelta
+ Animation.RELATIVE_TO_PARENT, 1f, // fromYDelta (100%p)
+ Animation.RELATIVE_TO_PARENT, 0f // toYDelta
+ );
+ translateAnimation.setDuration(600);
+
+ mMovingView.startAnimation(translateAnimation);
+
+ runAfterDraw(() -> assertEquals(FRAME_RATE_CATEGORY_HIGH_HINT,
+ mViewRoot.getLastPreferredFrameRateCategory()));
+ });
+ waitForAfterDraw();
+ }
+
private void runAfterDraw(@NonNull Runnable runnable) {
Handler handler = new Handler(Looper.getMainLooper());
mAfterDrawLatch = new CountDownLatch(1);
diff --git a/core/tests/coretests/src/android/window/WindowOnBackInvokedDispatcherTest.java b/core/tests/coretests/src/android/window/WindowOnBackInvokedDispatcherTest.java
index 25f458e60852..0bda0fff6819 100644
--- a/core/tests/coretests/src/android/window/WindowOnBackInvokedDispatcherTest.java
+++ b/core/tests/coretests/src/android/window/WindowOnBackInvokedDispatcherTest.java
@@ -561,10 +561,12 @@ public class WindowOnBackInvokedDispatcherTest {
waitForIdle();
onBackCancelledCalled.await(1000, TimeUnit.MILLISECONDS);
+ verify(mWindowSession, timeout(1000)).setOnBackInvokedCallbackInfo(Mockito.eq(mWindow),
+ isNull());
+ waitForIdle();
// verify that onBackCancelled is called exactly once in this case
assertEquals(0, onBackCancelledCalled.getCount());
assertEquals(0, onBackInvokedCalled.get());
- verify(mWindowSession).setOnBackInvokedCallbackInfo(Mockito.eq(mWindow), isNull());
assertFalse(mDispatcher.mProgressAnimator.isBackAnimationInProgress());
}
diff --git a/core/tests/resourceflaggingtests/src/com/android/resourceflaggingtests/ResourceFlaggingTest.java b/core/tests/resourceflaggingtests/src/com/android/resourceflaggingtests/ResourceFlaggingTest.java
index d9e90fa001c5..a37000a40508 100644
--- a/core/tests/resourceflaggingtests/src/com/android/resourceflaggingtests/ResourceFlaggingTest.java
+++ b/core/tests/resourceflaggingtests/src/com/android/resourceflaggingtests/ResourceFlaggingTest.java
@@ -24,6 +24,7 @@ import android.content.res.ApkAssets;
import android.content.res.AssetManager;
import android.content.res.Configuration;
import android.content.res.Resources;
+import android.content.res.TypedArray;
import android.os.FileUtils;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
@@ -151,6 +152,27 @@ public class ResourceFlaggingTest {
mResources.getDrawable(R.drawable.removedpng);
}
+ @Test
+ public void testDisabledStyleDoesntOverride() {
+ TypedArray ta = mResources.newTheme().obtainStyledAttributes(
+ R.style.style1, new int[] { android.R.attr.windowIsTranslucent});
+ assertThat(ta.getBoolean(0, false)).isTrue();
+ }
+
+ @Test
+ public void testEnabledStyleDoesOverride() {
+ TypedArray ta = mResources.newTheme().obtainStyledAttributes(
+ R.style.style2, new int[] { android.R.attr.windowIsTranslucent});
+ assertThat(ta.getBoolean(0, false)).isTrue();
+ }
+
+ @Test
+ public void testEnabledStyleItemDoesOverride() {
+ TypedArray ta = mResources.newTheme().obtainStyledAttributes(
+ R.style.style3, new int[] { android.R.attr.windowIsTranslucent});
+ assertThat(ta.getBoolean(0, false)).isTrue();
+ }
+
private LayoutInflater getLayoutInflater() {
ContextWrapper c = new ContextWrapper(mContext) {
private LayoutInflater mInflater;
diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java
index b866382e4061..68d8ebbbdabf 100644
--- a/graphics/java/android/graphics/Paint.java
+++ b/graphics/java/android/graphics/Paint.java
@@ -41,6 +41,7 @@ import android.text.SpannedString;
import android.text.TextUtils;
import com.android.internal.annotations.GuardedBy;
+import com.android.text.flags.Flags;
import dalvik.annotation.optimization.CriticalNative;
import dalvik.annotation.optimization.FastNative;
@@ -2000,6 +2001,14 @@ public class Paint {
}
/**
+ * A change ID for new font variation settings management.
+ * @hide
+ */
+ @ChangeId
+ @EnabledSince(targetSdkVersion = 36)
+ public static final long NEW_FONT_VARIATION_MANAGEMENT = 361260253L;
+
+ /**
* Sets TrueType or OpenType font variation settings. The settings string is constructed from
* multiple pairs of axis tag and style values. The axis tag must contain four ASCII characters
* and must be wrapped with single quotes (U+0027) or double quotes (U+0022). Axis strings that
@@ -2028,12 +2037,16 @@ public class Paint {
* </li>
* </ul>
*
+ * <p>Note: If the application that targets API 35 or before, this function mutates the
+ * underlying typeface instance.
+ *
* @param fontVariationSettings font variation settings. You can pass null or empty string as
* no variation settings.
*
- * @return true if the given settings is effective to at least one font file underlying this
- * typeface. This function also returns true for empty settings string. Otherwise
- * returns false
+ * @return If the application that targets API 36 or later and is running on devices API 36 or
+ * later, this function always returns true. Otherwise, this function returns true if
+ * the given settings is effective to at least one font file underlying this typeface.
+ * This function also returns true for empty settings string. Otherwise returns false.
*
* @throws IllegalArgumentException If given string is not a valid font variation settings
* format
@@ -2042,6 +2055,26 @@ public class Paint {
* @see FontVariationAxis
*/
public boolean setFontVariationSettings(String fontVariationSettings) {
+ final boolean useFontVariationStore = Flags.typefaceRedesign()
+ && CompatChanges.isChangeEnabled(NEW_FONT_VARIATION_MANAGEMENT);
+ if (useFontVariationStore) {
+ FontVariationAxis[] axes =
+ FontVariationAxis.fromFontVariationSettings(fontVariationSettings);
+ if (axes == null) {
+ nSetFontVariationOverride(mNativePaint, 0);
+ mFontVariationSettings = null;
+ return true;
+ }
+
+ long builderPtr = nCreateFontVariationBuilder(axes.length);
+ for (int i = 0; i < axes.length; ++i) {
+ nAddFontVariationToBuilder(builderPtr, axes[i].getOpenTypeTagValue(),
+ axes[i].getStyleValue());
+ }
+ nSetFontVariationOverride(mNativePaint, builderPtr);
+ mFontVariationSettings = fontVariationSettings;
+ return true;
+ }
final String settings = TextUtils.nullIfEmpty(fontVariationSettings);
if (settings == mFontVariationSettings
|| (settings != null && settings.equals(mFontVariationSettings))) {
@@ -3829,7 +3862,12 @@ public class Paint {
private static native void nSetTextSize(long paintPtr, float textSize);
@CriticalNative
private static native boolean nEqualsForTextMeasurement(long leftPaintPtr, long rightPaintPtr);
-
+ @CriticalNative
+ private static native long nCreateFontVariationBuilder(int size);
+ @CriticalNative
+ private static native void nAddFontVariationToBuilder(long builderPtr, int tag, float value);
+ @CriticalNative
+ private static native void nSetFontVariationOverride(long paintPtr, long builderPtr);
// Following Native methods are kept for old Robolectric JNI signature used by
// SystemUIGoogleRoboRNGTests
diff --git a/libs/WindowManager/Shell/Android.bp b/libs/WindowManager/Shell/Android.bp
index f8574294a3a2..a796eccd53ba 100644
--- a/libs/WindowManager/Shell/Android.bp
+++ b/libs/WindowManager/Shell/Android.bp
@@ -220,6 +220,7 @@ android_library {
"//frameworks/libs/systemui:com_android_systemui_shared_flags_lib",
"//frameworks/libs/systemui:iconloader_base",
"com_android_wm_shell_flags_lib",
+ "PlatformAnimationLib",
"WindowManager-Shell-proto",
"WindowManager-Shell-lite-proto",
"WindowManager-Shell-shared",
diff --git a/libs/WindowManager/Shell/res/drawable/decor_desktop_mode_immersive_button_dark.xml b/libs/WindowManager/Shell/res/drawable/decor_desktop_mode_immersive_button_dark.xml
new file mode 100644
index 000000000000..f3800e05148e
--- /dev/null
+++ b/libs/WindowManager/Shell/res/drawable/decor_desktop_mode_immersive_button_dark.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2024 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:fillColor="#000000"
+ android:pathData="M5,5H10V7H7V10H5V5M14,5H19V10H17V7H14V5M17,14H19V19H14V17H17V14M10,17V19H5V14H7V17H10Z"/>
+</vector>
diff --git a/libs/WindowManager/Shell/res/drawable/decor_desktop_mode_immersive_exit_button_dark.xml b/libs/WindowManager/Shell/res/drawable/decor_desktop_mode_immersive_exit_button_dark.xml
new file mode 100644
index 000000000000..5260450e8a13
--- /dev/null
+++ b/libs/WindowManager/Shell/res/drawable/decor_desktop_mode_immersive_exit_button_dark.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2024 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="960"
+ android:viewportHeight="960"
+ android:tint="?attr/colorControlNormal">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M240,840L240,720L120,720L120,640L320,640L320,840L240,840ZM640,840L640,640L840,640L840,720L720,720L720,840L640,840ZM120,320L120,240L240,240L240,120L320,120L320,320L120,320ZM640,320L640,120L720,120L720,240L840,240L840,320L640,320Z"/>
+</vector>
diff --git a/libs/WindowManager/Shell/res/values-en-rGB/strings.xml b/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
index 766852d4b1f0..d5b97037496a 100644
--- a/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
@@ -97,6 +97,12 @@
<string name="camera_compat_treatment_suggested_button_description" msgid="8103916969024076767">"Camera issues?\nTap to refit"</string>
<string name="camera_compat_treatment_applied_button_description" msgid="2944157113330703897">"Didn’t fix it?\nTap to revert"</string>
<string name="camera_compat_dismiss_button_description" msgid="2795364433503817511">"No camera issues? Tap to dismiss."</string>
+ <!-- no translation found for windowing_app_handle_education_tooltip (6398482412956375783) -->
+ <skip />
+ <!-- no translation found for windowing_desktop_mode_image_button_education_tooltip (6285279585554484957) -->
+ <skip />
+ <!-- no translation found for windowing_desktop_mode_exit_education_tooltip (6685429075790085337) -->
+ <skip />
<string name="letterbox_education_dialog_title" msgid="7739895354143295358">"See and do more"</string>
<string name="letterbox_education_split_screen_text" msgid="449233070804658627">"Drag in another app for split screen"</string>
<string name="letterbox_education_reposition_text" msgid="4589957299813220661">"Double-tap outside an app to reposition it"</string>
@@ -129,7 +135,8 @@
<string name="desktop_mode_app_header_chip_text" msgid="6366422614991687237">"Open menu"</string>
<string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maximise screen"</string>
<string name="desktop_mode_maximize_menu_snap_text" msgid="2065251022783880154">"Snap screen"</string>
- <string name="desktop_mode_non_resizable_snap_text" msgid="1049800446363800707">"This app can\'t be resized"</string>
+ <!-- no translation found for desktop_mode_non_resizable_snap_text (3771776422751387878) -->
+ <skip />
<string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"Maximise"</string>
<string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Snap left"</string>
<string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Snap right"</string>
diff --git a/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml b/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml
index 75c445c6f35c..18048ff045b5 100644
--- a/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml
@@ -97,6 +97,12 @@
<string name="camera_compat_treatment_suggested_button_description" msgid="8103916969024076767">"Problemas com a câmera?\nToque para ajustar o enquadramento"</string>
<string name="camera_compat_treatment_applied_button_description" msgid="2944157113330703897">"O problema não foi corrigido?\nToque para reverter"</string>
<string name="camera_compat_dismiss_button_description" msgid="2795364433503817511">"Não tem problemas com a câmera? Toque para dispensar."</string>
+ <!-- no translation found for windowing_app_handle_education_tooltip (6398482412956375783) -->
+ <skip />
+ <!-- no translation found for windowing_desktop_mode_image_button_education_tooltip (6285279585554484957) -->
+ <skip />
+ <!-- no translation found for windowing_desktop_mode_exit_education_tooltip (6685429075790085337) -->
+ <skip />
<string name="letterbox_education_dialog_title" msgid="7739895354143295358">"Veja e faça mais"</string>
<string name="letterbox_education_split_screen_text" msgid="449233070804658627">"Arraste outro app para dividir a tela"</string>
<string name="letterbox_education_reposition_text" msgid="4589957299813220661">"Toque duas vezes fora de um app para reposicionar"</string>
@@ -126,15 +132,12 @@
<string name="manage_windows_text" msgid="5567366688493093920">"Gerenciar janelas"</string>
<string name="close_text" msgid="4986518933445178928">"Fechar"</string>
<string name="collapse_menu_text" msgid="7515008122450342029">"Fechar menu"</string>
- <!-- no translation found for desktop_mode_app_header_chip_text (6366422614991687237) -->
- <skip />
+ <string name="desktop_mode_app_header_chip_text" msgid="6366422614991687237">"Abrir o menu"</string>
<string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Ampliar tela"</string>
<string name="desktop_mode_maximize_menu_snap_text" msgid="2065251022783880154">"Ajustar tela"</string>
- <string name="desktop_mode_non_resizable_snap_text" msgid="1049800446363800707">"Não é possível redimensionar o app"</string>
- <!-- no translation found for desktop_mode_maximize_menu_maximize_button_text (3090199175564175845) -->
- <skip />
- <!-- no translation found for desktop_mode_maximize_menu_snap_left_button_text (8077452201179893424) -->
- <skip />
- <!-- no translation found for desktop_mode_maximize_menu_snap_right_button_text (7117751068945657304) -->
+ <!-- no translation found for desktop_mode_non_resizable_snap_text (3771776422751387878) -->
<skip />
+ <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"Maximizar"</string>
+ <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Ajustar à esquerda"</string>
+ <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Ajustar à direita"</string>
</resources>
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/apptoweb/AppToWebUtils.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/apptoweb/AppToWebUtils.kt
index 05ce36120c4f..71bcb590ae23 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/apptoweb/AppToWebUtils.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/apptoweb/AppToWebUtils.kt
@@ -20,10 +20,11 @@ package com.android.wm.shell.apptoweb
import android.content.Context
import android.content.Intent
+import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
import android.content.pm.PackageManager
import android.net.Uri
-private val browserIntent = Intent()
+private val GenericBrowserIntent = Intent()
.setAction(Intent.ACTION_VIEW)
.addCategory(Intent.CATEGORY_BROWSABLE)
.setData(Uri.parse("http:"))
@@ -32,9 +33,9 @@ private val browserIntent = Intent()
* Returns a boolean indicating whether a given package is a browser app.
*/
fun isBrowserApp(context: Context, packageName: String, userId: Int): Boolean {
- browserIntent.setPackage(packageName)
+ GenericBrowserIntent.setPackage(packageName)
val list = context.packageManager.queryIntentActivitiesAsUser(
- browserIntent, PackageManager.MATCH_ALL, userId
+ GenericBrowserIntent, PackageManager.MATCH_ALL, userId
)
list.forEach {
@@ -44,3 +45,17 @@ fun isBrowserApp(context: Context, packageName: String, userId: Int): Boolean {
}
return false
}
+
+/**
+ * Returns intent if there is a browser application available to handle the uri. Otherwise, returns
+ * null.
+ */
+fun getBrowserIntent(uri: Uri, packageManager: PackageManager): Intent? {
+ val intent = Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_BROWSER)
+ .setData(uri)
+ .addFlags(FLAG_ACTIVITY_NEW_TASK)
+ // If there is no browser application available to handle intent, return null
+ val component = intent.resolveActivity(packageManager) ?: return null
+ intent.setComponent(component)
+ return intent
+} \ No newline at end of file
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java
index 3e5adf395cdd..5836085e0ddc 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java
@@ -1501,10 +1501,6 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont
int rootIdx = -1;
for (int i = info.getChanges().size() - 1; i >= 0; --i) {
final TransitionInfo.Change c = info.getChanges().get(i);
- if (c.hasFlags(FLAG_IS_WALLPAPER)) {
- st.setAlpha(c.getLeash(), 1.0f);
- continue;
- }
if (TransitionUtil.isOpeningMode(c.getMode())) {
final Point offset = c.getEndRelOffset();
st.setPosition(c.getLeash(), offset.x, offset.y);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java
index c4082d9f649c..0047ec503504 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java
@@ -403,6 +403,8 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged
// activity A is focussed), we will not get a call of #insetsControlChanged, and
// therefore have to start the show animation from here
startAnimation(mImeRequestedVisible /* show */, false /* forceRestart */);
+
+ setVisibleDirectly(mImeRequestedVisible || mAnimation != null);
}
}
@@ -540,6 +542,10 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged
show ? ANIMATION_DURATION_SHOW_MS : ANIMATION_DURATION_HIDE_MS);
if (seek) {
mAnimation.setCurrentFraction((seekValue - startY) / (endY - startY));
+ } else {
+ // In some cases the value in onAnimationStart is zero, therefore setting it
+ // explicitly to startY
+ mAnimation.setCurrentFraction(0);
}
mAnimation.addUpdateListener(animation -> {
@@ -621,6 +627,9 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged
ImeTracker.PHASE_WM_ANIMATION_RUNNING);
t.hide(animatingLeash);
removeImeSurface(mDisplayId);
+ if (android.view.inputmethod.Flags.refactorInsetsController()) {
+ setVisibleDirectly(false /* visible */);
+ }
ImeTracker.forLogging().onHidden(mStatsToken);
} else if (mAnimationDirection == DIRECTION_SHOW && !mCancelled) {
ImeTracker.forLogging().onShown(mStatsToken);
@@ -645,13 +654,13 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged
animatingControl.release(SurfaceControl::release);
}
});
- if (!show) {
+ if (!android.view.inputmethod.Flags.refactorInsetsController() && !show) {
// When going away, queue up insets change first, otherwise any bounds changes
// can have a "flicker" of ime-provided insets.
setVisibleDirectly(false /* visible */);
}
mAnimation.start();
- if (show) {
+ if (!android.view.inputmethod.Flags.refactorInsetsController() && show) {
// When showing away, queue up insets change last, otherwise any bounds changes
// can have a "flicker" of ime-provided insets.
setVisibleDirectly(true /* visible */);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipUtils.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipUtils.kt
index 7070ce99b24c..b3491baa629d 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipUtils.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipUtils.kt
@@ -22,6 +22,7 @@ import android.app.WindowConfiguration
import android.content.ComponentName
import android.content.Context
import android.content.pm.PackageManager
+import android.graphics.PointF
import android.graphics.Rect
import android.os.RemoteException
import android.util.DisplayMetrics
@@ -29,10 +30,13 @@ import android.util.Log
import android.util.Pair
import android.util.TypedValue
import android.window.TaskSnapshot
+import android.window.TransitionInfo
import com.android.internal.protolog.ProtoLog
import com.android.wm.shell.Flags
import com.android.wm.shell.protolog.ShellProtoLogGroup
import kotlin.math.abs
+import kotlin.math.ceil
+import kotlin.math.floor
import kotlin.math.roundToInt
/** A class that includes convenience methods. */
@@ -163,6 +167,84 @@ object PipUtils {
return Rect(left, top, left + width, top + height)
}
+ /**
+ * Temporary rounding "outward" (ie. -1.2 -> -2) used for crop since it is an int. We lean
+ * outward since, usually, child surfaces are, themselves, cropped, so we'd prefer to avoid
+ * inadvertently cutting out content that would otherwise be visible.
+ */
+ private fun roundOut(`val`: Float): Int {
+ return (if (`val` >= 0f) ceil(`val`) else floor(`val`)).toInt()
+ }
+
+ /**
+ * Calculates the transform and crop to apply on a Task surface in order for the config-at-end
+ * activity inside it (original-size activity transformed to match it's hint rect to the final
+ * Task bounds) to occupy the same world-space position/dimensions as it had before the
+ * transition.
+ *
+ * Usage example:
+ * calcStartTransform(pipChange, scale, pos, crop);
+ * t.setScale(pipChange.getLeash(), scale.x, scale.y);
+ * t.setPosition(pipChange.getLeash(), pos.x, pos.y);
+ * t.setCrop(pipChange.getLeash(), crop);
+ */
+ @JvmStatic
+ fun calcStartTransform(pipChange: TransitionInfo.Change, outScale: PointF,
+ outPos: PointF, outCrop: Rect) {
+ val startBounds = pipChange.startAbsBounds
+ val taskEndBounds = pipChange.endAbsBounds
+ // For now, pip activity bounds always matches task bounds. If this ever changes, we'll
+ // need to get the activity offset.
+ val endBounds = taskEndBounds
+ var hintRect = pipChange.taskInfo?.pictureInPictureParams?.sourceRectHint
+ if (hintRect == null) {
+ hintRect = Rect(startBounds)
+ hintRect.offsetTo(0, 0)
+ }
+
+ // FA = final activity bounds (absolute)
+ // FT = final task bounds (absolute)
+ // SA = start activity bounds (absolute)
+ // H = source hint (relative to start activity bounds)
+ // We want to transform the activity so that when the task is at FT, H overlaps with FA
+
+ // The scaling which takes the hint rect (H) in SA and matches it to FA
+ val hintToEndScaleX = (endBounds.width().toFloat()) / (hintRect.width().toFloat())
+ val hintToEndScaleY = (endBounds.height().toFloat()) / (hintRect.height().toFloat())
+
+ // We want to set the transform on the END TASK surface to put the start activity
+ // back to where it was.
+ // First do backwards scale (which takes FA back to H)
+ val endToHintScaleX = 1f / hintToEndScaleX
+ val endToHintScaleY = 1f / hintToEndScaleY
+ // Then top-left needs to place FA (relative to the FT) at H (relative to SA):
+ // so -(FA.tl - FT.tl) + SA.tl + H.tl
+ // but we have scaled up the task, so anything that was "within" the task needs to
+ // be scaled:
+ // so -(FA.tl - FT.tl)*endToHint + SA.tl + H.tl
+ val endTaskPosForStartX = (-(endBounds.left - taskEndBounds.left) * endToHintScaleX
+ + startBounds.left + hintRect.left)
+ val endTaskPosForStartY = (-(endBounds.top - taskEndBounds.top) * endToHintScaleY
+ + startBounds.top + hintRect.top)
+ outScale[endToHintScaleX] = endToHintScaleY
+ outPos[endTaskPosForStartX] = endTaskPosForStartY
+
+ // now need to set crop to reveal the non-hint stuff. Again, hintrect is relative, so
+ // we must apply outsets to reveal the *activity* content which is *inside* the task
+ // and thus is scaled (ie. if activity is scaled down, each task-level pixel exposes
+ // >1 activity-level pixels)
+ // For example, the topleft crop would be:
+ // (FA.tl - FT.tl) - H.tl * hintToEnd
+ // ^ activity within task
+ // bottomright can just use scaled activity size
+ // tl + scale(SA.size, hintToEnd)
+ outCrop.left = roundOut((endBounds.left - taskEndBounds.left)
+ - hintRect.left * hintToEndScaleX)
+ outCrop.top = roundOut((endBounds.top - taskEndBounds.top) - hintRect.top * hintToEndScaleY)
+ outCrop.right = roundOut(outCrop.left + startBounds.width() * hintToEndScaleX)
+ outCrop.bottom = roundOut(outCrop.top + startBounds.height() * hintToEndScaleY)
+ }
+
private var isPip2ExperimentEnabled: Boolean? = null
/**
@@ -181,4 +263,4 @@ object PipUtils {
}
return isPip2ExperimentEnabled as Boolean
}
-} \ No newline at end of file
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
index 96a07755fea9..8ce3884d7477 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
@@ -16,6 +16,7 @@
package com.android.wm.shell.dagger;
+import static android.window.flags.DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_EXIT_TRANSITIONS;
import static android.window.flags.DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_TASK_LIMIT;
import android.annotation.Nullable;
@@ -28,6 +29,8 @@ import android.view.Choreographer;
import android.view.IWindowManager;
import android.view.WindowManager;
+import androidx.annotation.OptIn;
+
import com.android.internal.jank.InteractionJankMonitor;
import com.android.internal.logging.UiEventLogger;
import com.android.internal.statusbar.IStatusBarService;
@@ -59,8 +62,10 @@ import com.android.wm.shell.common.SyncTransactionQueue;
import com.android.wm.shell.common.TaskStackListenerImpl;
import com.android.wm.shell.dagger.back.ShellBackAnimationModule;
import com.android.wm.shell.dagger.pip.PipModule;
+import com.android.wm.shell.desktopmode.CloseDesktopTaskTransitionHandler;
import com.android.wm.shell.desktopmode.DefaultDragToDesktopTransitionHandler;
import com.android.wm.shell.desktopmode.DesktopActivityOrientationChangeHandler;
+import com.android.wm.shell.desktopmode.DesktopMixedTransitionHandler;
import com.android.wm.shell.desktopmode.DesktopModeDragAndDropTransitionHandler;
import com.android.wm.shell.desktopmode.DesktopModeEventLogger;
import com.android.wm.shell.desktopmode.DesktopModeLoggerTransitionObserver;
@@ -85,6 +90,8 @@ import com.android.wm.shell.freeform.FreeformComponents;
import com.android.wm.shell.freeform.FreeformTaskListener;
import com.android.wm.shell.freeform.FreeformTaskTransitionHandler;
import com.android.wm.shell.freeform.FreeformTaskTransitionObserver;
+import com.android.wm.shell.freeform.FreeformTaskTransitionStarter;
+import com.android.wm.shell.freeform.FreeformTaskTransitionStarterInitializer;
import com.android.wm.shell.keyguard.KeyguardTransitionHandler;
import com.android.wm.shell.onehanded.OneHandedController;
import com.android.wm.shell.pip.PipTransitionController;
@@ -116,6 +123,8 @@ import com.android.wm.shell.unfold.qualifier.UnfoldTransition;
import com.android.wm.shell.windowdecor.CaptionWindowDecorViewModel;
import com.android.wm.shell.windowdecor.DesktopModeWindowDecorViewModel;
import com.android.wm.shell.windowdecor.WindowDecorViewModel;
+import com.android.wm.shell.windowdecor.additionalviewcontainer.AdditionalSystemViewContainer;
+import com.android.wm.shell.windowdecor.education.DesktopWindowingEducationTooltipController;
import dagger.Binds;
import dagger.Lazy;
@@ -123,6 +132,8 @@ import dagger.Module;
import dagger.Provides;
import kotlinx.coroutines.CoroutineScope;
+import kotlinx.coroutines.ExperimentalCoroutinesApi;
+import kotlinx.coroutines.MainCoroutineDispatcher;
import java.util.ArrayList;
import java.util.List;
@@ -234,6 +245,7 @@ public abstract class WMShellModule {
IWindowManager windowManager,
ShellCommandHandler shellCommandHandler,
ShellTaskOrganizer taskOrganizer,
+ @DynamicOverride DesktopModeTaskRepository desktopRepository,
DisplayController displayController,
ShellController shellController,
DisplayInsetsController displayInsetsController,
@@ -246,6 +258,7 @@ public abstract class WMShellModule {
AssistContentRequester assistContentRequester,
MultiInstanceHelper multiInstanceHelper,
Optional<DesktopTasksLimiter> desktopTasksLimiter,
+ AppHandleEducationController appHandleEducationController,
WindowDecorCaptionHandleRepository windowDecorCaptionHandleRepository,
Optional<DesktopActivityOrientationChangeHandler> desktopActivityOrientationHandler) {
if (DesktopModeStatus.canEnterDesktopMode(context)) {
@@ -259,6 +272,7 @@ public abstract class WMShellModule {
shellCommandHandler,
windowManager,
taskOrganizer,
+ desktopRepository,
displayController,
shellController,
displayInsetsController,
@@ -271,6 +285,7 @@ public abstract class WMShellModule {
assistContentRequester,
multiInstanceHelper,
desktopTasksLimiter,
+ appHandleEducationController,
windowDecorCaptionHandleRepository,
desktopActivityOrientationHandler);
}
@@ -307,6 +322,11 @@ public abstract class WMShellModule {
return new AssistContentRequester(context, shellExecutor, bgExecutor);
}
+ @Provides
+ static AdditionalSystemViewContainer.Factory provideAdditionalSystemViewContainerFactory() {
+ return new AdditionalSystemViewContainer.Factory();
+ }
+
//
// Freeform
//
@@ -317,9 +337,13 @@ public abstract class WMShellModule {
static FreeformComponents provideFreeformComponents(
FreeformTaskListener taskListener,
FreeformTaskTransitionHandler transitionHandler,
- FreeformTaskTransitionObserver transitionObserver) {
+ FreeformTaskTransitionObserver transitionObserver,
+ FreeformTaskTransitionStarterInitializer transitionStarterInitializer) {
return new FreeformComponents(
- taskListener, Optional.of(transitionHandler), Optional.of(transitionObserver));
+ taskListener,
+ Optional.of(transitionHandler),
+ Optional.of(transitionObserver),
+ Optional.of(transitionStarterInitializer));
}
@WMSingleton
@@ -343,27 +367,15 @@ public abstract class WMShellModule {
@WMSingleton
@Provides
static FreeformTaskTransitionHandler provideFreeformTaskTransitionHandler(
- ShellInit shellInit,
Transitions transitions,
- Context context,
- WindowDecorViewModel windowDecorViewModel,
DisplayController displayController,
@ShellMainThread ShellExecutor mainExecutor,
- @ShellAnimationThread ShellExecutor animExecutor,
- @DynamicOverride DesktopModeTaskRepository desktopModeTaskRepository,
- InteractionJankMonitor interactionJankMonitor,
- @ShellMainThread Handler handler) {
+ @ShellAnimationThread ShellExecutor animExecutor) {
return new FreeformTaskTransitionHandler(
- shellInit,
transitions,
- context,
- windowDecorViewModel,
displayController,
mainExecutor,
- animExecutor,
- desktopModeTaskRepository,
- interactionJankMonitor,
- handler);
+ animExecutor);
}
@WMSingleton
@@ -377,6 +389,23 @@ public abstract class WMShellModule {
context, shellInit, transitions, windowDecorViewModel);
}
+ @WMSingleton
+ @Provides
+ static FreeformTaskTransitionStarterInitializer provideFreeformTaskTransitionStarterInitializer(
+ ShellInit shellInit,
+ WindowDecorViewModel windowDecorViewModel,
+ FreeformTaskTransitionHandler freeformTaskTransitionHandler,
+ Optional<DesktopMixedTransitionHandler> desktopMixedTransitionHandler) {
+ FreeformTaskTransitionStarter transitionStarter;
+ if (desktopMixedTransitionHandler.isPresent()) {
+ transitionStarter = desktopMixedTransitionHandler.get();
+ } else {
+ transitionStarter = freeformTaskTransitionHandler;
+ }
+ return new FreeformTaskTransitionStarterInitializer(shellInit, windowDecorViewModel,
+ transitionStarter);
+ }
+
//
// One handed mode
//
@@ -686,7 +715,17 @@ public abstract class WMShellModule {
InteractionJankMonitor interactionJankMonitor,
@ShellMainThread Handler handler) {
return new ExitDesktopTaskTransitionHandler(
- transitions, context, interactionJankMonitor, handler);
+ transitions, context, interactionJankMonitor, handler);
+ }
+
+ @WMSingleton
+ @Provides
+ static CloseDesktopTaskTransitionHandler provideCloseDesktopTaskTransitionHandler(
+ Context context,
+ @ShellMainThread ShellExecutor mainExecutor,
+ @ShellAnimationThread ShellExecutor animExecutor
+ ) {
+ return new CloseDesktopTaskTransitionHandler(context, mainExecutor, animExecutor);
}
@WMSingleton
@@ -745,6 +784,32 @@ public abstract class WMShellModule {
@WMSingleton
@Provides
+ static Optional<DesktopMixedTransitionHandler> provideDesktopMixedTransitionHandler(
+ Context context,
+ Transitions transitions,
+ @DynamicOverride DesktopModeTaskRepository desktopModeTaskRepository,
+ FreeformTaskTransitionHandler freeformTaskTransitionHandler,
+ CloseDesktopTaskTransitionHandler closeDesktopTaskTransitionHandler,
+ InteractionJankMonitor interactionJankMonitor,
+ @ShellMainThread Handler handler
+ ) {
+ if (!DesktopModeStatus.canEnterDesktopMode(context)
+ || !ENABLE_DESKTOP_WINDOWING_EXIT_TRANSITIONS.isTrue()) {
+ return Optional.empty();
+ }
+ return Optional.of(
+ new DesktopMixedTransitionHandler(
+ context,
+ transitions,
+ desktopModeTaskRepository,
+ freeformTaskTransitionHandler,
+ closeDesktopTaskTransitionHandler,
+ interactionJankMonitor,
+ handler));
+ }
+
+ @WMSingleton
+ @Provides
static DesktopModeLoggerTransitionObserver provideDesktopModeLoggerTransitionObserver(
Context context,
ShellInit shellInit,
@@ -783,13 +848,30 @@ public abstract class WMShellModule {
@WMSingleton
@Provides
+ static DesktopWindowingEducationTooltipController
+ provideDesktopWindowingEducationTooltipController(
+ Context context,
+ AdditionalSystemViewContainer.Factory additionalSystemViewContainerFactory
+ ) {
+ return new DesktopWindowingEducationTooltipController(context,
+ additionalSystemViewContainerFactory);
+ }
+
+ @OptIn(markerClass = ExperimentalCoroutinesApi.class)
+ @WMSingleton
+ @Provides
static AppHandleEducationController provideAppHandleEducationController(
+ Context context,
AppHandleEducationFilter appHandleEducationFilter,
- ShellTaskOrganizer shellTaskOrganizer,
AppHandleEducationDatastoreRepository appHandleEducationDatastoreRepository,
- @ShellMainThread CoroutineScope applicationScope) {
- return new AppHandleEducationController(appHandleEducationFilter,
- shellTaskOrganizer, appHandleEducationDatastoreRepository, applicationScope);
+ WindowDecorCaptionHandleRepository windowDecorCaptionHandleRepository,
+ DesktopWindowingEducationTooltipController desktopWindowingEducationTooltipController,
+ @ShellMainThread CoroutineScope applicationScope, @ShellBackgroundThread
+ MainCoroutineDispatcher backgroundDispatcher) {
+ return new AppHandleEducationController(context, appHandleEducationFilter,
+ appHandleEducationDatastoreRepository, windowDecorCaptionHandleRepository,
+ desktopWindowingEducationTooltipController, applicationScope,
+ backgroundDispatcher);
}
@WMSingleton
@@ -841,8 +923,7 @@ public abstract class WMShellModule {
@Provides
static Object provideIndependentShellComponentsToCreate(
DragAndDropController dragAndDropController,
- Optional<DesktopTasksTransitionObserver> desktopTasksTransitionObserverOptional,
- AppHandleEducationController appHandleEducationController
+ Optional<DesktopTasksTransitionObserver> desktopTasksTransitionObserverOptional
) {
return new Object();
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandler.kt
new file mode 100644
index 000000000000..a16c15dfdf1a
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandler.kt
@@ -0,0 +1,153 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.wm.shell.desktopmode
+
+import android.animation.Animator
+import android.animation.AnimatorSet
+import android.animation.RectEvaluator
+import android.animation.ValueAnimator
+import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
+import android.content.Context
+import android.graphics.Rect
+import android.os.IBinder
+import android.util.TypedValue
+import android.view.SurfaceControl.Transaction
+import android.view.WindowManager
+import android.window.TransitionInfo
+import android.window.TransitionRequestInfo
+import android.window.WindowContainerTransaction
+import androidx.core.animation.addListener
+import com.android.app.animation.Interpolators
+import com.android.wm.shell.common.ShellExecutor
+import com.android.wm.shell.transition.Transitions
+import java.util.function.Supplier
+
+/** The [Transitions.TransitionHandler] that handles transitions for closing desktop mode tasks. */
+class CloseDesktopTaskTransitionHandler
+@JvmOverloads
+constructor(
+ private val context: Context,
+ private val mainExecutor: ShellExecutor,
+ private val animExecutor: ShellExecutor,
+ private val transactionSupplier: Supplier<Transaction> = Supplier { Transaction() },
+) : Transitions.TransitionHandler {
+
+ private val runningAnimations = mutableMapOf<IBinder, List<Animator>>()
+
+ /** Returns null, as it only handles transitions started from Shell. */
+ override fun handleRequest(
+ transition: IBinder,
+ request: TransitionRequestInfo,
+ ): WindowContainerTransaction? = null
+
+ override fun startAnimation(
+ transition: IBinder,
+ info: TransitionInfo,
+ startTransaction: Transaction,
+ finishTransaction: Transaction,
+ finishCallback: Transitions.TransitionFinishCallback,
+ ): Boolean {
+ if (info.type != WindowManager.TRANSIT_CLOSE) return false
+ val animations = mutableListOf<Animator>()
+ val onAnimFinish: (Animator) -> Unit = { animator ->
+ mainExecutor.execute {
+ // Animation completed
+ animations.remove(animator)
+ if (animations.isEmpty()) {
+ // All animations completed, finish the transition
+ runningAnimations.remove(transition)
+ finishCallback.onTransitionFinished(/* wct= */ null)
+ }
+ }
+ }
+ animations +=
+ info.changes
+ .filter {
+ it.mode == WindowManager.TRANSIT_CLOSE &&
+ it.taskInfo?.windowingMode == WINDOWING_MODE_FREEFORM
+ }
+ .map { createCloseAnimation(it, finishTransaction, onAnimFinish) }
+ if (animations.isEmpty()) return false
+ runningAnimations[transition] = animations
+ animExecutor.execute { animations.forEach(Animator::start) }
+ return true
+ }
+
+ private fun createCloseAnimation(
+ change: TransitionInfo.Change,
+ finishTransaction: Transaction,
+ onAnimFinish: (Animator) -> Unit,
+ ): Animator {
+ finishTransaction.hide(change.leash)
+ return AnimatorSet().apply {
+ playTogether(createBoundsCloseAnimation(change), createAlphaCloseAnimation(change))
+ addListener(onEnd = onAnimFinish)
+ }
+ }
+
+ private fun createBoundsCloseAnimation(change: TransitionInfo.Change): Animator {
+ val startBounds = change.startAbsBounds
+ val endBounds =
+ Rect(startBounds).apply {
+ // Scale the end bounds of the window down with an anchor in the center
+ inset(
+ (startBounds.width().toFloat() * (1 - CLOSE_ANIM_SCALE) / 2).toInt(),
+ (startBounds.height().toFloat() * (1 - CLOSE_ANIM_SCALE) / 2).toInt()
+ )
+ val offsetY =
+ TypedValue.applyDimension(
+ TypedValue.COMPLEX_UNIT_DIP,
+ CLOSE_ANIM_OFFSET_Y,
+ context.resources.displayMetrics
+ )
+ .toInt()
+ offset(/* dx= */ 0, offsetY)
+ }
+ return ValueAnimator.ofObject(RectEvaluator(), startBounds, endBounds).apply {
+ duration = CLOSE_ANIM_DURATION_BOUNDS
+ interpolator = Interpolators.STANDARD_ACCELERATE
+ addUpdateListener { animation ->
+ val animBounds = animation.animatedValue as Rect
+ val animScale = 1 - (1 - CLOSE_ANIM_SCALE) * animation.animatedFraction
+ transactionSupplier
+ .get()
+ .setPosition(change.leash, animBounds.left.toFloat(), animBounds.top.toFloat())
+ .setScale(change.leash, animScale, animScale)
+ .apply()
+ }
+ }
+ }
+
+ private fun createAlphaCloseAnimation(change: TransitionInfo.Change): Animator =
+ ValueAnimator.ofFloat(1f, 0f).apply {
+ duration = CLOSE_ANIM_DURATION_ALPHA
+ interpolator = Interpolators.LINEAR
+ addUpdateListener { animation ->
+ transactionSupplier
+ .get()
+ .setAlpha(change.leash, animation.animatedValue as Float)
+ .apply()
+ }
+ }
+
+ private companion object {
+ const val CLOSE_ANIM_DURATION_BOUNDS = 200L
+ const val CLOSE_ANIM_DURATION_ALPHA = 100L
+ const val CLOSE_ANIM_SCALE = 0.95f
+ const val CLOSE_ANIM_OFFSET_Y = 36.0f
+ }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandler.kt
new file mode 100644
index 000000000000..ec3f8c5fc2f8
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandler.kt
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.wm.shell.desktopmode
+
+import android.app.ActivityTaskManager.INVALID_TASK_ID
+import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
+import android.content.Context
+import android.os.Handler
+import android.os.IBinder
+import android.view.SurfaceControl
+import android.view.WindowManager
+import android.window.TransitionInfo
+import android.window.TransitionRequestInfo
+import android.window.WindowContainerTransaction
+import com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE
+import com.android.internal.jank.InteractionJankMonitor
+import com.android.internal.protolog.ProtoLog
+import com.android.wm.shell.freeform.FreeformTaskTransitionHandler
+import com.android.wm.shell.freeform.FreeformTaskTransitionStarter
+import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE
+import com.android.wm.shell.shared.annotations.ShellMainThread
+import com.android.wm.shell.transition.MixedTransitionHandler
+import com.android.wm.shell.transition.Transitions
+
+/** The [Transitions.TransitionHandler] coordinates transition handlers in desktop windowing. */
+class DesktopMixedTransitionHandler(
+ private val context: Context,
+ private val transitions: Transitions,
+ private val desktopTaskRepository: DesktopModeTaskRepository,
+ private val freeformTaskTransitionHandler: FreeformTaskTransitionHandler,
+ private val closeDesktopTaskTransitionHandler: CloseDesktopTaskTransitionHandler,
+ private val interactionJankMonitor: InteractionJankMonitor,
+ @ShellMainThread private val handler: Handler,
+) : MixedTransitionHandler, FreeformTaskTransitionStarter {
+
+ /** Delegates starting transition to [FreeformTaskTransitionHandler]. */
+ override fun startWindowingModeTransition(
+ targetWindowingMode: Int,
+ wct: WindowContainerTransaction?,
+ ) = freeformTaskTransitionHandler.startWindowingModeTransition(targetWindowingMode, wct)
+
+ /** Delegates starting minimized mode transition to [FreeformTaskTransitionHandler]. */
+ override fun startMinimizedModeTransition(wct: WindowContainerTransaction?): IBinder =
+ freeformTaskTransitionHandler.startMinimizedModeTransition(wct)
+
+ /** Starts close transition and handles or delegates desktop task close animation. */
+ override fun startRemoveTransition(wct: WindowContainerTransaction?) {
+ requireNotNull(wct)
+ transitions.startTransition(WindowManager.TRANSIT_CLOSE, wct, /* handler= */ this)
+ }
+
+ /** Returns null, as it only handles transitions started from Shell. */
+ override fun handleRequest(
+ transition: IBinder,
+ request: TransitionRequestInfo,
+ ): WindowContainerTransaction? = null
+
+ override fun startAnimation(
+ transition: IBinder,
+ info: TransitionInfo,
+ startTransaction: SurfaceControl.Transaction,
+ finishTransaction: SurfaceControl.Transaction,
+ finishCallback: Transitions.TransitionFinishCallback,
+ ): Boolean {
+ val closeChange = findCloseDesktopTaskChange(info)
+ if (closeChange == null) {
+ ProtoLog.w(WM_SHELL_DESKTOP_MODE, "%s: Should have closing desktop task", TAG)
+ return false
+ }
+ if (isLastDesktopTask(closeChange)) {
+ // Dispatch close desktop task animation to the default transition handlers.
+ return dispatchCloseLastDesktopTaskAnimation(
+ transition,
+ info,
+ closeChange,
+ startTransaction,
+ finishTransaction,
+ finishCallback,
+ )
+ }
+ // Animate close desktop task transition with [CloseDesktopTaskTransitionHandler].
+ return closeDesktopTaskTransitionHandler.startAnimation(
+ transition,
+ info,
+ startTransaction,
+ finishTransaction,
+ finishCallback,
+ )
+ }
+
+ /**
+ * Dispatch close desktop task animation to the default transition handlers. Allows delegating
+ * it to Launcher to animate in sync with show Home transition.
+ */
+ private fun dispatchCloseLastDesktopTaskAnimation(
+ transition: IBinder,
+ info: TransitionInfo,
+ change: TransitionInfo.Change,
+ startTransaction: SurfaceControl.Transaction,
+ finishTransaction: SurfaceControl.Transaction,
+ finishCallback: Transitions.TransitionFinishCallback,
+ ): Boolean {
+ // Starting the jank trace if closing the last window in desktop mode.
+ interactionJankMonitor.begin(
+ change.leash,
+ context,
+ handler,
+ CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE,
+ )
+ // Dispatch the last desktop task closing animation.
+ return transitions.dispatchTransition(
+ transition,
+ info,
+ startTransaction,
+ finishTransaction,
+ { wct ->
+ // Finish the jank trace when closing the last window in desktop mode.
+ interactionJankMonitor.end(CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE)
+ finishCallback.onTransitionFinished(wct)
+ },
+ /* skip= */ this
+ ) != null
+ }
+
+ private fun isLastDesktopTask(change: TransitionInfo.Change): Boolean =
+ change.taskInfo?.let {
+ desktopTaskRepository.getActiveNonMinimizedTaskCount(it.displayId) == 1
+ } ?: false
+
+ private fun findCloseDesktopTaskChange(info: TransitionInfo): TransitionInfo.Change? {
+ if (info.type != WindowManager.TRANSIT_CLOSE) return null
+ return info.changes.firstOrNull { change ->
+ change.mode == WindowManager.TRANSIT_CLOSE &&
+ !change.hasFlags(TransitionInfo.FLAG_IS_WALLPAPER) &&
+ change.taskInfo?.taskId != INVALID_TASK_ID &&
+ change.taskInfo?.windowingMode == WINDOWING_MODE_FREEFORM
+ }
+ }
+
+ companion object {
+ private const val TAG = "DesktopMixedTransitionHandler"
+ }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepository.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepository.kt
index 0e8c4e70e05d..955fe83d34ee 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepository.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepository.kt
@@ -60,6 +60,7 @@ class DesktopModeTaskRepository (
* @property minimizedTasks task ids for active freeform tasks that are currently minimized.
* @property closingTasks task ids for tasks that are going to close, but are currently visible.
* @property freeformTasksInZOrder list of current freeform task ids ordered from top to bottom
+ * @property fullImmersiveTaskId the task id of the desktop task that is in full-immersive mode.
* (top is at index 0).
*/
private data class DesktopTaskData(
@@ -69,13 +70,15 @@ class DesktopModeTaskRepository (
// TODO(b/332682201): Remove when the repository state is updated via TransitionObserver
val closingTasks: ArraySet<Int> = ArraySet(),
val freeformTasksInZOrder: ArrayList<Int> = ArrayList(),
+ var fullImmersiveTaskId: Int? = null,
) {
fun deepCopy(): DesktopTaskData = DesktopTaskData(
activeTasks = ArraySet(activeTasks),
visibleTasks = ArraySet(visibleTasks),
minimizedTasks = ArraySet(minimizedTasks),
closingTasks = ArraySet(closingTasks),
- freeformTasksInZOrder = ArrayList(freeformTasksInZOrder)
+ freeformTasksInZOrder = ArrayList(freeformTasksInZOrder),
+ fullImmersiveTaskId = fullImmersiveTaskId
)
}
@@ -300,6 +303,23 @@ class DesktopModeTaskRepository (
}
}
+ /** Set whether the given task is the full-immersive task in this display. */
+ fun setTaskInFullImmersiveState(displayId: Int, taskId: Int, immersive: Boolean) {
+ val desktopData = desktopTaskDataByDisplayId.getOrCreate(displayId)
+ if (immersive) {
+ desktopData.fullImmersiveTaskId = taskId
+ } else {
+ if (desktopData.fullImmersiveTaskId == taskId) {
+ desktopData.fullImmersiveTaskId = null
+ }
+ }
+ }
+
+ /* Whether the task is in full-immersive state. */
+ fun isTaskInFullImmersiveState(taskId: Int): Boolean {
+ return desktopTaskDataSequence().any { taskId == it.fullImmersiveTaskId }
+ }
+
private fun notifyVisibleTaskListeners(displayId: Int, visibleTasksCount: Int) {
visibleTasksListeners.forEach { (listener, executor) ->
executor.execute { listener.onTasksVisibilityChanged(displayId, visibleTasksCount) }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
index afa27f9f1309..125805c14321 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
@@ -17,6 +17,7 @@
package com.android.wm.shell.desktopmode
import android.app.ActivityManager.RunningTaskInfo
+import android.app.ActivityManager
import android.app.ActivityOptions
import android.app.KeyguardManager
import android.app.PendingIntent
@@ -101,6 +102,7 @@ import com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_DESKTO
import com.android.wm.shell.sysui.ShellCommandHandler
import com.android.wm.shell.sysui.ShellController
import com.android.wm.shell.sysui.ShellInit
+import com.android.wm.shell.sysui.UserChangeListener
import com.android.wm.shell.transition.OneShotRemoteHandler
import com.android.wm.shell.transition.Transitions
import com.android.wm.shell.windowdecor.DragPositioningCallbackUtility
@@ -146,10 +148,12 @@ class DesktopTasksController(
) :
RemoteCallable<DesktopTasksController>,
Transitions.TransitionHandler,
- DragAndDropController.DragAndDropListener {
+ DragAndDropController.DragAndDropListener,
+ UserChangeListener {
private val desktopMode: DesktopModeImpl
private var visualIndicator: DesktopModeVisualIndicator? = null
+ private var userId: Int
private val desktopModeShellCommandHandler: DesktopModeShellCommandHandler =
DesktopModeShellCommandHandler(this)
private val mOnAnimationFinishedCallback =
@@ -193,6 +197,7 @@ class DesktopTasksController(
if (DesktopModeStatus.canEnterDesktopMode(context)) {
shellInit.addInitCallback({ onInit() }, this)
}
+ userId = ActivityManager.getCurrentUser()
}
private fun onInit() {
@@ -204,6 +209,7 @@ class DesktopTasksController(
{ createExternalInterface() },
this
)
+ shellController.addUserChangeListener(this)
transitions.addHandler(this)
dragToDesktopTransitionHandler.dragToDesktopStateListener = dragToDesktopStateListener
recentsTransitionHandler.addTransitionStateListener(
@@ -1779,6 +1785,11 @@ class DesktopTasksController(
return true
}
+ // TODO(b/366397912): Support full multi-user mode in Windowing.
+ override fun onUserChanged(newUserId: Int, userContext: Context) {
+ userId = newUserId
+ }
+
private fun dump(pw: PrintWriter, prefix: String) {
val innerPrefix = "$prefix "
pw.println("${prefix}DesktopTasksController")
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationController.kt
index 6013e97977d8..68a250d02958 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationController.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationController.kt
@@ -16,98 +16,301 @@
package com.android.wm.shell.desktopmode.education
-import android.app.ActivityManager.RunningTaskInfo
-import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
+import android.annotation.DimenRes
+import android.annotation.StringRes
+import android.content.Context
+import android.content.res.Resources
+import android.graphics.Point
import android.os.SystemProperties
+import android.util.Slog
import com.android.window.flags.Flags
-import com.android.wm.shell.ShellTaskOrganizer
+import com.android.wm.shell.R
+import com.android.wm.shell.desktopmode.CaptionState
+import com.android.wm.shell.desktopmode.WindowDecorCaptionHandleRepository
import com.android.wm.shell.desktopmode.education.data.AppHandleEducationDatastoreRepository
+import com.android.wm.shell.shared.annotations.ShellBackgroundThread
import com.android.wm.shell.shared.annotations.ShellMainThread
+import com.android.wm.shell.shared.desktopmode.DesktopModeStatus.canEnterDesktopMode
+import com.android.wm.shell.shared.desktopmode.DesktopModeTransitionSource
+import com.android.wm.shell.windowdecor.education.DesktopWindowingEducationTooltipController
+import com.android.wm.shell.windowdecor.education.DesktopWindowingEducationTooltipController.EducationViewConfig
+import kotlin.time.Duration.Companion.milliseconds
import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.MainCoroutineDispatcher
+import kotlinx.coroutines.TimeoutCancellationException
import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.flow.catch
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.debounce
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.emptyFlow
import kotlinx.coroutines.flow.filter
+import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.flatMapLatest
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.take
+import kotlinx.coroutines.flow.timeout
import kotlinx.coroutines.launch
/**
* Controls app handle education end to end.
*
* Listen to the user trigger for app handle education, calls an api to check if the education
- * should be shown and calls an api to show education.
+ * should be shown and controls education UI.
*/
@OptIn(kotlinx.coroutines.FlowPreview::class)
@kotlinx.coroutines.ExperimentalCoroutinesApi
class AppHandleEducationController(
+ private val context: Context,
private val appHandleEducationFilter: AppHandleEducationFilter,
- shellTaskOrganizer: ShellTaskOrganizer,
private val appHandleEducationDatastoreRepository: AppHandleEducationDatastoreRepository,
- @ShellMainThread private val applicationCoroutineScope: CoroutineScope
+ private val windowDecorCaptionHandleRepository: WindowDecorCaptionHandleRepository,
+ private val windowingEducationViewController: DesktopWindowingEducationTooltipController,
+ @ShellMainThread private val applicationCoroutineScope: CoroutineScope,
+ @ShellBackgroundThread private val backgroundDispatcher: MainCoroutineDispatcher,
) {
+ private lateinit var openHandleMenuCallback: (Int) -> Unit
+ private lateinit var toDesktopModeCallback: (Int, DesktopModeTransitionSource) -> Unit
+
init {
runIfEducationFeatureEnabled {
- // TODO: b/361038716 - Use app handle state flow instead of focus task change flow
- val focusTaskChangeFlow = focusTaskChangeFlow(shellTaskOrganizer)
applicationCoroutineScope.launch {
- // Central block handling the app's educational flow end-to-end.
- // This flow listens to the changes to the result of
- // [WindowingEducationProto#hasEducationViewedTimestampMillis()] in datastore proto object
+ // Central block handling the app handle's educational flow end-to-end.
isEducationViewedFlow()
.flatMapLatest { isEducationViewed ->
if (isEducationViewed) {
// If the education is viewed then return emptyFlow() that completes immediately.
- // This will help us to not listen to focus task changes after the education has
- // been viewed already.
+ // This will help us to not listen to [captionHandleStateFlow] after the education
+ // has been viewed already.
emptyFlow()
} else {
- // This flow listens for focus task changes, which trigger the app handle education.
- focusTaskChangeFlow
- .filter { runningTaskInfo ->
- runningTaskInfo.topActivityInfo?.packageName?.let {
- appHandleEducationFilter.shouldShowAppHandleEducation(it)
- } ?: false && runningTaskInfo.windowingMode != WINDOWING_MODE_FREEFORM
+ // Listen for changes to window decor's caption handle.
+ windowDecorCaptionHandleRepository.captionStateFlow
+ // Wait for few seconds before emitting the latest state.
+ .debounce(APP_HANDLE_EDUCATION_DELAY_MILLIS)
+ .filter { captionState ->
+ captionState is CaptionState.AppHandle &&
+ appHandleEducationFilter.shouldShowAppHandleEducation(captionState)
}
- .distinctUntilChanged()
}
}
- .debounce(
- APP_HANDLE_EDUCATION_DELAY) // Wait for few seconds, if the focus task changes.
- // During the delay then current emission will be cancelled.
- .flowOn(Dispatchers.IO)
- .collectLatest {
- // Fire and forget show education suspend function, manage entire lifecycle of
- // tooltip in UI class.
+ .flowOn(backgroundDispatcher)
+ .collectLatest { captionState ->
+ showEducation(captionState)
+ // After showing first tooltip, mark education as viewed
+ appHandleEducationDatastoreRepository.updateEducationViewedTimestampMillis(true)
+ }
+ }
+
+ applicationCoroutineScope.launch {
+ if (isFeatureUsed()) return@launch
+ windowDecorCaptionHandleRepository.captionStateFlow
+ .filter { captionState ->
+ captionState is CaptionState.AppHandle && captionState.isHandleMenuExpanded
+ }
+ .take(1)
+ .flowOn(backgroundDispatcher)
+ .collect {
+ // If user expands app handle, mark user has used the feature
+ appHandleEducationDatastoreRepository.updateFeatureUsedTimestampMillis(true)
}
}
}
}
private inline fun runIfEducationFeatureEnabled(block: () -> Unit) {
- if (Flags.enableDesktopWindowingAppHandleEducation()) block()
+ if (canEnterDesktopMode(context) && Flags.enableDesktopWindowingAppHandleEducation()) block()
+ }
+
+ private fun showEducation(captionState: CaptionState) {
+ val appHandleBounds = (captionState as CaptionState.AppHandle).globalAppHandleBounds
+ val tooltipGlobalCoordinates =
+ Point(appHandleBounds.left + appHandleBounds.width() / 2, appHandleBounds.bottom)
+ // TODO: b/370546801 - Differentiate between user dismissing the tooltip vs following the cue.
+ // Populate information important to inflate app handle education tooltip.
+ val appHandleTooltipConfig =
+ EducationViewConfig(
+ tooltipViewLayout = R.layout.desktop_windowing_education_top_arrow_tooltip,
+ tooltipViewGlobalCoordinates = tooltipGlobalCoordinates,
+ tooltipText = getString(R.string.windowing_app_handle_education_tooltip),
+ arrowDirection = DesktopWindowingEducationTooltipController.TooltipArrowDirection.UP,
+ onEducationClickAction = {
+ launchWithExceptionHandling { showWindowingImageButtonTooltip() }
+ openHandleMenuCallback(captionState.runningTaskInfo.taskId)
+ },
+ onDismissAction = { launchWithExceptionHandling { showWindowingImageButtonTooltip() } },
+ )
+
+ windowingEducationViewController.showEducationTooltip(
+ tooltipViewConfig = appHandleTooltipConfig, taskId = captionState.runningTaskInfo.taskId)
}
+ /** Show tooltip that points to windowing image button in app handle menu */
+ private suspend fun showWindowingImageButtonTooltip() {
+ val appInfoPillHeight = getSize(R.dimen.desktop_mode_handle_menu_app_info_pill_height)
+ val windowingOptionPillHeight = getSize(R.dimen.desktop_mode_handle_menu_windowing_pill_height)
+ val appHandleMenuWidth =
+ getSize(R.dimen.desktop_mode_handle_menu_width) +
+ getSize(R.dimen.desktop_mode_handle_menu_pill_spacing_margin)
+ val appHandleMenuMargins =
+ getSize(R.dimen.desktop_mode_handle_menu_margin_top) +
+ getSize(R.dimen.desktop_mode_handle_menu_pill_spacing_margin)
+
+ windowDecorCaptionHandleRepository.captionStateFlow
+ // After the first tooltip was dismissed, wait for 400 ms and see if the app handle menu
+ // has been expanded.
+ .timeout(APP_HANDLE_EDUCATION_TIMEOUT_MILLIS.milliseconds)
+ .catchTimeoutAndLog {
+ // TODO: b/341320146 - Log previous tooltip was dismissed
+ }
+ // Wait for few milliseconds before emitting the latest state.
+ .debounce(APP_HANDLE_EDUCATION_DELAY_MILLIS)
+ .filter { captionState ->
+ // Filter out states when app handle is not visible or not expanded.
+ captionState is CaptionState.AppHandle && captionState.isHandleMenuExpanded
+ }
+ // Before showing this tooltip, stop listening to further emissions to avoid accidentally
+ // showing the same tooltip on future emissions.
+ .take(1)
+ .flowOn(backgroundDispatcher)
+ .collectLatest { captionState ->
+ captionState as CaptionState.AppHandle
+ val appHandleBounds = captionState.globalAppHandleBounds
+ val tooltipGlobalCoordinates =
+ Point(
+ appHandleBounds.left + appHandleBounds.width() / 2 + appHandleMenuWidth / 2,
+ appHandleBounds.top +
+ appHandleMenuMargins +
+ appInfoPillHeight +
+ windowingOptionPillHeight / 2)
+ // Populate information important to inflate windowing image button education tooltip.
+ val windowingImageButtonTooltipConfig =
+ EducationViewConfig(
+ tooltipViewLayout = R.layout.desktop_windowing_education_left_arrow_tooltip,
+ tooltipViewGlobalCoordinates = tooltipGlobalCoordinates,
+ tooltipText =
+ getString(R.string.windowing_desktop_mode_image_button_education_tooltip),
+ arrowDirection =
+ DesktopWindowingEducationTooltipController.TooltipArrowDirection.LEFT,
+ onEducationClickAction = {
+ launchWithExceptionHandling { showExitWindowingTooltip() }
+ toDesktopModeCallback(
+ captionState.runningTaskInfo.taskId,
+ DesktopModeTransitionSource.APP_HANDLE_MENU_BUTTON)
+ },
+ onDismissAction = { launchWithExceptionHandling { showExitWindowingTooltip() } },
+ )
+
+ windowingEducationViewController.showEducationTooltip(
+ taskId = captionState.runningTaskInfo.taskId,
+ tooltipViewConfig = windowingImageButtonTooltipConfig)
+ }
+ }
+
+ /** Show tooltip that points to app chip button and educates user on how to exit desktop mode */
+ private suspend fun showExitWindowingTooltip() {
+ windowDecorCaptionHandleRepository.captionStateFlow
+ // After the previous tooltip was dismissed, wait for 400 ms and see if the user entered
+ // desktop mode.
+ .timeout(APP_HANDLE_EDUCATION_TIMEOUT_MILLIS.milliseconds)
+ .catchTimeoutAndLog {
+ // TODO: b/341320146 - Log previous tooltip was dismissed
+ }
+ // Wait for few milliseconds before emitting the latest state.
+ .debounce(APP_HANDLE_EDUCATION_DELAY_MILLIS)
+ .filter { captionState ->
+ // Filter out states when app header is not visible or expanded.
+ captionState is CaptionState.AppHeader && !captionState.isHeaderMenuExpanded
+ }
+ // Before showing this tooltip, stop listening to further emissions to avoid accidentally
+ // showing the same tooltip on future emissions.
+ .take(1)
+ .flowOn(backgroundDispatcher)
+ .collectLatest { captionState ->
+ captionState as CaptionState.AppHeader
+ val globalAppChipBounds = captionState.globalAppChipBounds
+ val tooltipGlobalCoordinates =
+ Point(
+ globalAppChipBounds.right,
+ globalAppChipBounds.top + globalAppChipBounds.height() / 2)
+ // Populate information important to inflate exit desktop mode education tooltip.
+ val exitWindowingTooltipConfig =
+ EducationViewConfig(
+ tooltipViewLayout = R.layout.desktop_windowing_education_left_arrow_tooltip,
+ tooltipViewGlobalCoordinates = tooltipGlobalCoordinates,
+ tooltipText = getString(R.string.windowing_desktop_mode_exit_education_tooltip),
+ arrowDirection =
+ DesktopWindowingEducationTooltipController.TooltipArrowDirection.LEFT,
+ onDismissAction = {},
+ onEducationClickAction = {
+ openHandleMenuCallback(captionState.runningTaskInfo.taskId)
+ },
+ )
+ windowingEducationViewController.showEducationTooltip(
+ taskId = captionState.runningTaskInfo.taskId,
+ tooltipViewConfig = exitWindowingTooltipConfig,
+ )
+ }
+ }
+
+ /**
+ * Setup callbacks for app handle education tooltips.
+ *
+ * @param openHandleMenuCallback callback invoked to open app handle menu or app chip menu.
+ * @param toDesktopModeCallback callback invoked to move task into desktop mode.
+ */
+ fun setAppHandleEducationTooltipCallbacks(
+ openHandleMenuCallback: (taskId: Int) -> Unit,
+ toDesktopModeCallback: (taskId: Int, DesktopModeTransitionSource) -> Unit
+ ) {
+ this.openHandleMenuCallback = openHandleMenuCallback
+ this.toDesktopModeCallback = toDesktopModeCallback
+ }
+
+ private inline fun <T> Flow<T>.catchTimeoutAndLog(crossinline block: () -> Unit) =
+ catch { exception ->
+ if (exception is TimeoutCancellationException) block() else throw exception
+ }
+
+ private fun launchWithExceptionHandling(block: suspend () -> Unit) =
+ applicationCoroutineScope.launch {
+ try {
+ block()
+ } catch (e: Throwable) {
+ Slog.e(TAG, "Error: ", e)
+ }
+ }
+
+ /**
+ * Listens to the changes to [WindowingEducationProto#hasEducationViewedTimestampMillis()] in
+ * datastore proto object.
+ */
private fun isEducationViewedFlow(): Flow<Boolean> =
appHandleEducationDatastoreRepository.dataStoreFlow
.map { preferences -> preferences.hasEducationViewedTimestampMillis() }
.distinctUntilChanged()
- private fun focusTaskChangeFlow(shellTaskOrganizer: ShellTaskOrganizer): Flow<RunningTaskInfo> =
- callbackFlow {
- val focusTaskChange = ShellTaskOrganizer.FocusListener { taskInfo -> trySend(taskInfo) }
- shellTaskOrganizer.addFocusListener(focusTaskChange)
- awaitClose { shellTaskOrganizer.removeFocusListener(focusTaskChange) }
- }
+ /**
+ * Listens to the changes to [WindowingEducationProto#hasFeatureUsedTimestampMillis()] in
+ * datastore proto object.
+ */
+ private suspend fun isFeatureUsed(): Boolean =
+ appHandleEducationDatastoreRepository.dataStoreFlow.first().hasFeatureUsedTimestampMillis()
+
+ private fun getSize(@DimenRes resourceId: Int): Int {
+ if (resourceId == Resources.ID_NULL) return 0
+ return context.resources.getDimensionPixelSize(resourceId)
+ }
+
+ private fun getString(@StringRes resId: Int): String = context.resources.getString(resId)
- private companion object {
- val APP_HANDLE_EDUCATION_DELAY: Long
+ companion object {
+ const val TAG = "AppHandleEducationController"
+ val APP_HANDLE_EDUCATION_DELAY_MILLIS: Long
get() = SystemProperties.getLong("persist.windowing_app_handle_education_delay", 3000L)
+
+ val APP_HANDLE_EDUCATION_TIMEOUT_MILLIS: Long
+ get() = SystemProperties.getLong("persist.windowing_app_handle_education_timeout", 400L)
}
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilter.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilter.kt
index 51bdb40e12e6..15f4c249cf22 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilter.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilter.kt
@@ -22,6 +22,7 @@ import android.content.Context
import android.os.SystemClock
import android.provider.Settings.Secure
import com.android.wm.shell.R
+import com.android.wm.shell.desktopmode.CaptionState
import com.android.wm.shell.desktopmode.education.data.AppHandleEducationDatastoreRepository
import com.android.wm.shell.desktopmode.education.data.WindowingEducationProto
import java.time.Duration
@@ -35,8 +36,12 @@ class AppHandleEducationFilter(
context.getSystemService(Context.USAGE_STATS_SERVICE) as UsageStatsManager
/** Returns true if conditions to show app handle education are met, returns false otherwise. */
- suspend fun shouldShowAppHandleEducation(focusAppPackageName: String): Boolean {
+ suspend fun shouldShowAppHandleEducation(captionState: CaptionState): Boolean {
+ if ((captionState as CaptionState.AppHandle).isHandleMenuExpanded) return false
+ val focusAppPackageName =
+ captionState.runningTaskInfo.topActivityInfo?.packageName ?: return false
val windowingEducationProto = appHandleEducationDatastoreRepository.windowingEducationProto()
+
return isFocusAppInAllowlist(focusAppPackageName) &&
!isOtherEducationShowing() &&
hasSufficientTimeSinceSetup() &&
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/data/AppHandleEducationDatastoreRepository.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/data/AppHandleEducationDatastoreRepository.kt
index f420c5be456f..d21b208df482 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/data/AppHandleEducationDatastoreRepository.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/data/AppHandleEducationDatastoreRepository.kt
@@ -71,6 +71,37 @@ constructor(private val dataStore: DataStore<WindowingEducationProto>) {
suspend fun windowingEducationProto(): WindowingEducationProto = dataStoreFlow.first()
/**
+ * Updates [WindowingEducationProto.educationViewedTimestampMillis_] field in datastore with
+ * current timestamp if [isViewed] is true, if not then clears the field.
+ */
+ suspend fun updateEducationViewedTimestampMillis(isViewed: Boolean) {
+ dataStore.updateData { preferences ->
+ if (isViewed) {
+ preferences
+ .toBuilder()
+ .setEducationViewedTimestampMillis(System.currentTimeMillis())
+ .build()
+ } else {
+ preferences.toBuilder().clearEducationViewedTimestampMillis().build()
+ }
+ }
+ }
+
+ /**
+ * Updates [WindowingEducationProto.featureUsedTimestampMillis_] field in datastore with current
+ * timestamp if [isViewed] is true, if not then clears the field.
+ */
+ suspend fun updateFeatureUsedTimestampMillis(isViewed: Boolean) {
+ dataStore.updateData { preferences ->
+ if (isViewed) {
+ preferences.toBuilder().setFeatureUsedTimestampMillis(System.currentTimeMillis()).build()
+ } else {
+ preferences.toBuilder().clearFeatureUsedTimestampMillis().build()
+ }
+ }
+ }
+
+ /**
* Updates [AppHandleEducation.appUsageStats] and
* [AppHandleEducation.appUsageStatsLastUpdateTimestampMillis] fields in datastore with
* [appUsageStats] and [appUsageStatsLastUpdateTimestamp].
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformComponents.java b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformComponents.java
index eee5aaee3ec3..3379ff2a8c30 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformComponents.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformComponents.java
@@ -35,6 +35,7 @@ public class FreeformComponents {
public final ShellTaskOrganizer.TaskListener mTaskListener;
public final Optional<Transitions.TransitionHandler> mTransitionHandler;
public final Optional<Transitions.TransitionObserver> mTransitionObserver;
+ public final Optional<FreeformTaskTransitionStarterInitializer> mTransitionStarterInitializer;
/**
* Creates an instance with the given components.
@@ -42,10 +43,12 @@ public class FreeformComponents {
public FreeformComponents(
ShellTaskOrganizer.TaskListener taskListener,
Optional<Transitions.TransitionHandler> transitionHandler,
- Optional<Transitions.TransitionObserver> transitionObserver) {
+ Optional<Transitions.TransitionObserver> transitionObserver,
+ Optional<FreeformTaskTransitionStarterInitializer> transitionStarterInitializer) {
mTaskListener = taskListener;
mTransitionHandler = transitionHandler;
mTransitionObserver = transitionObserver;
+ mTransitionStarterInitializer = transitionStarterInitializer;
}
/**
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java
index 517e20910f6d..6aaf001d46f3 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java
@@ -19,16 +19,12 @@ package com.android.wm.shell.freeform;
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
-import static com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE;
-
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.app.ActivityManager;
import android.app.WindowConfiguration;
-import android.content.Context;
import android.graphics.Rect;
-import android.os.Handler;
import android.os.IBinder;
import android.util.ArrayMap;
import android.view.SurfaceControl;
@@ -40,14 +36,9 @@ import android.window.WindowContainerTransaction;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import com.android.internal.jank.InteractionJankMonitor;
import com.android.wm.shell.common.DisplayController;
import com.android.wm.shell.common.ShellExecutor;
-import com.android.wm.shell.desktopmode.DesktopModeTaskRepository;
-import com.android.wm.shell.shared.annotations.ShellMainThread;
-import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.transition.Transitions;
-import com.android.wm.shell.windowdecor.WindowDecorViewModel;
import java.util.ArrayList;
import java.util.List;
@@ -59,48 +50,24 @@ import java.util.List;
public class FreeformTaskTransitionHandler
implements Transitions.TransitionHandler, FreeformTaskTransitionStarter {
private static final int CLOSE_ANIM_DURATION = 400;
- private final Context mContext;
private final Transitions mTransitions;
- private final WindowDecorViewModel mWindowDecorViewModel;
- private final DesktopModeTaskRepository mDesktopModeTaskRepository;
private final DisplayController mDisplayController;
- private final InteractionJankMonitor mInteractionJankMonitor;
private final ShellExecutor mMainExecutor;
private final ShellExecutor mAnimExecutor;
- @ShellMainThread
- private final Handler mHandler;
private final List<IBinder> mPendingTransitionTokens = new ArrayList<>();
private final ArrayMap<IBinder, ArrayList<Animator>> mAnimations = new ArrayMap<>();
public FreeformTaskTransitionHandler(
- ShellInit shellInit,
Transitions transitions,
- Context context,
- WindowDecorViewModel windowDecorViewModel,
DisplayController displayController,
ShellExecutor mainExecutor,
- ShellExecutor animExecutor,
- DesktopModeTaskRepository desktopModeTaskRepository,
- InteractionJankMonitor interactionJankMonitor,
- @ShellMainThread Handler handler) {
+ ShellExecutor animExecutor) {
mTransitions = transitions;
- mContext = context;
- mWindowDecorViewModel = windowDecorViewModel;
- mDesktopModeTaskRepository = desktopModeTaskRepository;
mDisplayController = displayController;
- mInteractionJankMonitor = interactionJankMonitor;
mMainExecutor = mainExecutor;
mAnimExecutor = animExecutor;
- mHandler = handler;
- if (Transitions.ENABLE_SHELL_TRANSITIONS) {
- shellInit.addInitCallback(this::onInit, this);
- }
- }
-
- private void onInit() {
- mWindowDecorViewModel.setFreeformTaskTransitionStarter(this);
}
@Override
@@ -269,20 +236,12 @@ public class FreeformTaskTransitionHandler
startBounds.top + (animation.getAnimatedFraction() * screenHeight));
t.apply();
});
- if (mDesktopModeTaskRepository.getActiveNonMinimizedTaskCount(
- change.getTaskInfo().displayId) == 1) {
- // Starting the jank trace if closing the last window in desktop mode.
- mInteractionJankMonitor.begin(
- sc, mContext, mHandler, CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE);
- }
animator.addListener(
new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
animations.remove(animator);
onAnimFinish.run();
- mInteractionJankMonitor.end(
- CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE);
}
});
animations.add(animator);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionStarterInitializer.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionStarterInitializer.kt
new file mode 100644
index 000000000000..98bdf059e738
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionStarterInitializer.kt
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.wm.shell.freeform
+
+import com.android.wm.shell.sysui.ShellInit
+import com.android.wm.shell.windowdecor.WindowDecorViewModel
+
+/**
+ * Sets up [FreeformTaskTransitionStarter] for [WindowDecorViewModel] when shell finishes
+ * initializing.
+ *
+ * Used to extract the setup logic from the starter implementation.
+ */
+class FreeformTaskTransitionStarterInitializer(
+ shellInit: ShellInit,
+ private val windowDecorViewModel: WindowDecorViewModel,
+ private val freeformTaskTransitionStarter: FreeformTaskTransitionStarter
+) {
+ init {
+ shellInit.addInitCallback(::onShellInit, this)
+ }
+
+ /** Sets up [WindowDecorViewModel] transition starter with [FreeformTaskTransitionStarter] */
+ private fun onShellInit() {
+ windowDecorViewModel.setFreeformTaskTransitionStarter(freeformTaskTransitionStarter)
+ }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java
index f93233ec7461..1b9bf2acbb96 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java
@@ -54,6 +54,7 @@ import com.android.wm.shell.common.pip.PipUtils;
import com.android.wm.shell.pip.PipTransitionController;
import com.android.wm.shell.pip2.animation.PipAlphaAnimator;
import com.android.wm.shell.pip2.animation.PipEnterExitAnimator;
+import com.android.wm.shell.shared.TransitionUtil;
import com.android.wm.shell.shared.pip.PipContentOverlay;
import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.transition.Transitions;
@@ -405,6 +406,18 @@ public class PipTransition extends PipTransitionController implements
sourceRectHint = pipChange.getTaskInfo().pictureInPictureParams.getSourceRectHint();
}
+ // For opening type transitions, if there is a non-pip change of mode TO_FRONT/OPEN,
+ // make sure that change has alpha of 1f, since it's init state might be set to alpha=0f
+ // by the Transitions framework to simplify Task opening transitions.
+ if (TransitionUtil.isOpeningType(info.getType())) {
+ for (TransitionInfo.Change change : info.getChanges()) {
+ if (change.getLeash() == null || change == pipChange) continue;
+ if (change.getMode() == TRANSIT_OPEN || change.getMode() == TRANSIT_TO_FRONT) {
+ startTransaction.setAlpha(change.getLeash(), 1f);
+ }
+ }
+ }
+
PipEnterExitAnimator animator = new PipEnterExitAnimator(mContext, pipLeash,
startTransaction, finishTransaction, startBounds, startBounds, endBounds,
sourceRectHint, PipEnterExitAnimator.BOUNDS_ENTER, Surface.ROTATION_0);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/TaskSnapshotWindow.java b/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/TaskSnapshotWindow.java
index 6e084d6e05a4..27472493a8bc 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/TaskSnapshotWindow.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/TaskSnapshotWindow.java
@@ -146,6 +146,11 @@ public class TaskSnapshotWindow {
Slog.w(TAG, "Failed to relayout snapshot starting window");
return null;
}
+ if (!surfaceControl.isValid()) {
+ snapshotSurface.clearWindowSynced();
+ Slog.w(TAG, "Unable to draw snapshot, no valid surface");
+ return null;
+ }
SnapshotDrawerUtils.drawSnapshotOnSurface(info, layoutParams, surfaceControl, snapshot,
info.taskBounds, topWindowInsetsState, true /* releaseAfterDraw */);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/FocusTransitionObserver.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/FocusTransitionObserver.java
index 2f5059f3161c..399e39a920fc 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/FocusTransitionObserver.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/FocusTransitionObserver.java
@@ -17,13 +17,13 @@
package com.android.wm.shell.transition;
import static android.view.Display.INVALID_DISPLAY;
+import static android.window.TransitionInfo.FLAG_IS_DISPLAY;
import static android.window.TransitionInfo.FLAG_MOVED_TO_TOP;
import static com.android.window.flags.Flags.enableDisplayFocusInShellTransitions;
import static com.android.wm.shell.transition.Transitions.TransitionObserver;
import android.annotation.NonNull;
-import android.app.ActivityManager.RunningTaskInfo;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Slog;
@@ -62,10 +62,9 @@ public class FocusTransitionObserver implements TransitionObserver {
final List<TransitionInfo.Change> changes = info.getChanges();
for (int i = changes.size() - 1; i >= 0; i--) {
final TransitionInfo.Change change = changes.get(i);
- final RunningTaskInfo task = change.getTaskInfo();
- if (task != null && task.isFocused && change.hasFlags(FLAG_MOVED_TO_TOP)) {
- if (mFocusedDisplayId != task.displayId) {
- mFocusedDisplayId = task.displayId;
+ if (change.hasFlags(FLAG_IS_DISPLAY) && change.hasFlags(FLAG_MOVED_TO_TOP)) {
+ if (mFocusedDisplayId != change.getEndDisplayId()) {
+ mFocusedDisplayId = change.getEndDisplayId();
notifyFocusedDisplayChanged();
}
return;
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java
index d280dcd252b4..d5e92e6a0e62 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java
@@ -1036,9 +1036,14 @@ public class Transitions implements RemoteCallable<Transitions>,
* Gives every handler (in order) a chance to animate until one consumes the transition.
* @return the handler which consumed the transition.
*/
- TransitionHandler dispatchTransition(@NonNull IBinder transition, @NonNull TransitionInfo info,
- @NonNull SurfaceControl.Transaction startT, @NonNull SurfaceControl.Transaction finishT,
- @NonNull TransitionFinishCallback finishCB, @Nullable TransitionHandler skip) {
+ public TransitionHandler dispatchTransition(
+ @NonNull IBinder transition,
+ @NonNull TransitionInfo info,
+ @NonNull SurfaceControl.Transaction startT,
+ @NonNull SurfaceControl.Transaction finishT,
+ @NonNull TransitionFinishCallback finishCB,
+ @Nullable TransitionHandler skip
+ ) {
for (int i = mHandlers.size() - 1; i >= 0; --i) {
if (mHandlers.get(i) == skip) continue;
ProtoLog.v(ShellProtoLogGroup.WM_SHELL_TRANSITIONS, " try handler %s",
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java
index 05065be7171c..839973fcbdd5 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java
@@ -194,6 +194,8 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL
ActivityManager.RunningTaskInfo taskInfo,
boolean applyStartTransactionOnDraw,
boolean setTaskCropAndPosition,
+ boolean isStatusBarVisible,
+ boolean isKeyguardVisibleAndOccluded,
InsetsState displayInsetsState) {
relayoutParams.reset();
relayoutParams.mRunningTaskInfo = taskInfo;
@@ -204,6 +206,8 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL
: R.dimen.freeform_decor_shadow_unfocused_thickness;
relayoutParams.mApplyStartTransactionOnDraw = applyStartTransactionOnDraw;
relayoutParams.mSetTaskPositionAndCrop = setTaskCropAndPosition;
+ relayoutParams.mIsCaptionVisible = taskInfo.isFreeform()
+ || (isStatusBarVisible && !isKeyguardVisibleAndOccluded);
if (TaskInfoKt.isTransparentCaptionBarAppearance(taskInfo)) {
// If the app is requesting to customize the caption bar, allow input to fall
@@ -240,7 +244,8 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL
final WindowContainerTransaction wct = new WindowContainerTransaction();
updateRelayoutParams(mRelayoutParams, taskInfo, applyStartTransactionOnDraw,
- setTaskCropAndPosition, mDisplayController.getInsetsState(taskInfo.displayId));
+ setTaskCropAndPosition, mIsStatusBarVisible, mIsKeyguardVisibleAndOccluded,
+ mDisplayController.getInsetsState(taskInfo.displayId));
relayout(mRelayoutParams, startT, finishT, wct, oldRootView, mResult);
// After this line, mTaskInfo is up-to-date and should be used instead of taskInfo
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java
index 272508f46d33..3330f968332c 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java
@@ -22,9 +22,6 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
-import static android.content.Intent.ACTION_MAIN;
-import static android.content.Intent.CATEGORY_APP_BROWSER;
-import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.view.InputDevice.SOURCE_TOUCHSCREEN;
import static android.view.MotionEvent.ACTION_CANCEL;
import static android.view.MotionEvent.ACTION_HOVER_ENTER;
@@ -58,7 +55,6 @@ import android.graphics.PointF;
import android.graphics.Rect;
import android.graphics.Region;
import android.hardware.input.InputManager;
-import android.net.Uri;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
@@ -87,6 +83,7 @@ import android.window.WindowContainerTransaction;
import android.window.flags.DesktopModeFlags;
import androidx.annotation.Nullable;
+import androidx.annotation.OptIn;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.jank.Cuj;
@@ -106,12 +103,14 @@ import com.android.wm.shell.common.MultiInstanceHelper;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.SyncTransactionQueue;
import com.android.wm.shell.desktopmode.DesktopActivityOrientationChangeHandler;
+import com.android.wm.shell.desktopmode.DesktopModeTaskRepository;
import com.android.wm.shell.desktopmode.DesktopModeVisualIndicator;
import com.android.wm.shell.desktopmode.DesktopTasksController;
import com.android.wm.shell.desktopmode.DesktopTasksController.SnapPosition;
import com.android.wm.shell.desktopmode.DesktopTasksLimiter;
import com.android.wm.shell.desktopmode.DesktopWallpaperActivity;
import com.android.wm.shell.desktopmode.WindowDecorCaptionHandleRepository;
+import com.android.wm.shell.desktopmode.education.AppHandleEducationController;
import com.android.wm.shell.freeform.FreeformTaskTransitionStarter;
import com.android.wm.shell.shared.annotations.ShellBackgroundThread;
import com.android.wm.shell.shared.annotations.ShellMainThread;
@@ -134,6 +133,8 @@ import com.android.wm.shell.windowdecor.viewholder.AppHeaderViewHolder;
import kotlin.Pair;
import kotlin.Unit;
+import kotlinx.coroutines.ExperimentalCoroutinesApi;
+
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
@@ -154,6 +155,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
private final ActivityTaskManager mActivityTaskManager;
private final ShellCommandHandler mShellCommandHandler;
private final ShellTaskOrganizer mTaskOrganizer;
+ private final DesktopModeTaskRepository mDesktopRepository;
private final ShellController mShellController;
private final Context mContext;
private final @ShellMainThread Handler mMainHandler;
@@ -167,6 +169,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
private final MultiInstanceHelper mMultiInstanceHelper;
private final WindowDecorCaptionHandleRepository mWindowDecorCaptionHandleRepository;
private final Optional<DesktopTasksLimiter> mDesktopTasksLimiter;
+ private final AppHandleEducationController mAppHandleEducationController;
private final AppHeaderViewHolder.Factory mAppHeaderViewHolderFactory;
private boolean mTransitionDragActive;
@@ -224,6 +227,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
ShellCommandHandler shellCommandHandler,
IWindowManager windowManager,
ShellTaskOrganizer taskOrganizer,
+ DesktopModeTaskRepository desktopRepository,
DisplayController displayController,
ShellController shellController,
DisplayInsetsController displayInsetsController,
@@ -236,6 +240,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
AssistContentRequester assistContentRequester,
MultiInstanceHelper multiInstanceHelper,
Optional<DesktopTasksLimiter> desktopTasksLimiter,
+ AppHandleEducationController appHandleEducationController,
WindowDecorCaptionHandleRepository windowDecorCaptionHandleRepository,
Optional<DesktopActivityOrientationChangeHandler> activityOrientationChangeHandler) {
this(
@@ -248,6 +253,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
shellCommandHandler,
windowManager,
taskOrganizer,
+ desktopRepository,
displayController,
shellController,
displayInsetsController,
@@ -265,6 +271,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
new SparseArray<>(),
interactionJankMonitor,
desktopTasksLimiter,
+ appHandleEducationController,
windowDecorCaptionHandleRepository,
activityOrientationChangeHandler,
new TaskPositionerFactory());
@@ -281,6 +288,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
ShellCommandHandler shellCommandHandler,
IWindowManager windowManager,
ShellTaskOrganizer taskOrganizer,
+ DesktopModeTaskRepository desktopRepository,
DisplayController displayController,
ShellController shellController,
DisplayInsetsController displayInsetsController,
@@ -298,6 +306,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
SparseArray<DesktopModeWindowDecoration> windowDecorByTaskId,
InteractionJankMonitor interactionJankMonitor,
Optional<DesktopTasksLimiter> desktopTasksLimiter,
+ AppHandleEducationController appHandleEducationController,
WindowDecorCaptionHandleRepository windowDecorCaptionHandleRepository,
Optional<DesktopActivityOrientationChangeHandler> activityOrientationChangeHandler,
TaskPositionerFactory taskPositionerFactory) {
@@ -308,6 +317,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
mBgExecutor = bgExecutor;
mActivityTaskManager = mContext.getSystemService(ActivityTaskManager.class);
mTaskOrganizer = taskOrganizer;
+ mDesktopRepository = desktopRepository;
mShellController = shellController;
mDisplayController = displayController;
mDisplayInsetsController = displayInsetsController;
@@ -329,6 +339,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
com.android.internal.R.string.config_systemUi);
mInteractionJankMonitor = interactionJankMonitor;
mDesktopTasksLimiter = desktopTasksLimiter;
+ mAppHandleEducationController = appHandleEducationController;
mWindowDecorCaptionHandleRepository = windowDecorCaptionHandleRepository;
mActivityOrientationChangeHandler = activityOrientationChangeHandler;
mAssistContentRequester = assistContentRequester;
@@ -362,6 +373,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
shellInit.addInitCallback(this::onInit, this);
}
+ @OptIn(markerClass = ExperimentalCoroutinesApi.class)
private void onInit() {
mShellController.addKeyguardChangeListener(mDesktopModeKeyguardChangeListener);
mShellCommandHandler.addDumpCallback(this::dump, this);
@@ -378,6 +390,18 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
} catch (RemoteException e) {
Log.e(TAG, "Failed to register window manager callbacks", e);
}
+ if (DesktopModeStatus.canEnterDesktopMode(mContext)
+ && Flags.enableDesktopWindowingAppHandleEducation()) {
+ mAppHandleEducationController.setAppHandleEducationTooltipCallbacks(
+ /* appHandleTooltipClickCallback= */(taskId) -> {
+ openHandleMenu(taskId);
+ return Unit.INSTANCE;
+ },
+ /* onToDesktopClickCallback= */(taskId, desktopModeTransitionSource) -> {
+ onToDesktop(taskId, desktopModeTransitionSource);
+ return Unit.INSTANCE;
+ });
+ }
}
@Override
@@ -495,6 +519,12 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
mWindowDecorByTaskId.remove(taskInfo.taskId);
}
+ private void openHandleMenu(int taskId) {
+ final DesktopModeWindowDecoration decoration = mWindowDecorByTaskId.get(taskId);
+ decoration.createHandleMenu(checkNumberOfOtherInstances(decoration.mTaskInfo)
+ >= MANAGE_WINDOWS_MINIMUM_INSTANCES);
+ }
+
private void onMaximizeOrRestore(int taskId, String source) {
final DesktopModeWindowDecoration decoration = mWindowDecorByTaskId.get(taskId);
if (decoration == null) {
@@ -532,20 +562,17 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
decoration.closeMaximizeMenu();
}
- private void onOpenInBrowser(int taskId, @NonNull Uri uri) {
+ private void onOpenInBrowser(int taskId, @NonNull Intent intent) {
final DesktopModeWindowDecoration decoration = mWindowDecorByTaskId.get(taskId);
if (decoration == null) {
return;
}
- openInBrowser(uri, decoration.getUser());
+ openInBrowser(intent, decoration.getUser());
decoration.closeHandleMenu();
decoration.closeMaximizeMenu();
}
- private void openInBrowser(Uri uri, @NonNull UserHandle userHandle) {
- final Intent intent = Intent.makeMainSelectorActivity(ACTION_MAIN, CATEGORY_APP_BROWSER)
- .setData(uri)
- .addFlags(FLAG_ACTIVITY_NEW_TASK);
+ private void openInBrowser(@NonNull Intent intent, @NonNull UserHandle userHandle) {
mContext.startActivityAsUser(intent, userHandle);
}
@@ -720,8 +747,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
} else if (id == R.id.caption_handle || id == R.id.open_menu_button) {
if (!decoration.isHandleMenuActive()) {
moveTaskToFront(decoration.mTaskInfo);
- decoration.createHandleMenu(checkNumberOfOtherInstances(decoration.mTaskInfo)
- >= MANAGE_WINDOWS_MINIMUM_INSTANCES);
+ openHandleMenu(mTaskId);
}
} else if (id == R.id.maximize_window) {
// TODO(b/346441962): move click detection logic into the decor's
@@ -1394,6 +1420,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
mContext.createContextAsUser(UserHandle.of(taskInfo.userId), 0 /* flags */),
mDisplayController,
mSplitScreenController,
+ mDesktopRepository,
mTaskOrganizer,
taskInfo,
taskSurface,
@@ -1445,8 +1472,8 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
onToSplitScreen(taskInfo.taskId);
return Unit.INSTANCE;
});
- windowDecoration.setOpenInBrowserClickListener((uri) -> {
- onOpenInBrowser(taskInfo.taskId, uri);
+ windowDecoration.setOpenInBrowserClickListener((intent) -> {
+ onOpenInBrowser(taskInfo.taskId, intent);
});
windowDecoration.setOnNewWindowClickListener(() -> {
onNewWindow(taskInfo.taskId);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java
index 8a53f5ba4a51..5daa3eee340b 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java
@@ -44,12 +44,14 @@ import android.app.WindowConfiguration.WindowingMode;
import android.app.assist.AssistContent;
import android.content.ComponentName;
import android.content.Context;
+import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Bitmap;
+import android.graphics.Insets;
import android.graphics.Point;
import android.graphics.PointF;
import android.graphics.Rect;
@@ -62,10 +64,12 @@ import android.os.UserHandle;
import android.util.Size;
import android.util.Slog;
import android.view.Choreographer;
+import android.view.InsetsState;
import android.view.MotionEvent;
import android.view.SurfaceControl;
import android.view.View;
import android.view.ViewConfiguration;
+import android.view.WindowInsets;
import android.view.WindowManager;
import android.widget.ImageButton;
import android.window.TaskSnapshot;
@@ -89,6 +93,7 @@ import com.android.wm.shell.common.MultiInstanceHelper;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.SyncTransactionQueue;
import com.android.wm.shell.desktopmode.CaptionState;
+import com.android.wm.shell.desktopmode.DesktopModeTaskRepository;
import com.android.wm.shell.desktopmode.WindowDecorCaptionHandleRepository;
import com.android.wm.shell.shared.annotations.ShellBackgroundThread;
import com.android.wm.shell.shared.desktopmode.DesktopModeStatus;
@@ -166,7 +171,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
private CapturedLink mCapturedLink;
private Uri mGenericLink;
private Uri mWebUri;
- private Consumer<Uri> mOpenInBrowserClickListener;
+ private Consumer<Intent> mOpenInBrowserClickListener;
private ExclusionRegionListener mExclusionRegionListener;
@@ -188,12 +193,14 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
private final Runnable mCapturedLinkExpiredRunnable = this::onCapturedLinkExpired;
private final MultiInstanceHelper mMultiInstanceHelper;
private final WindowDecorCaptionHandleRepository mWindowDecorCaptionHandleRepository;
+ private final DesktopModeTaskRepository mDesktopRepository;
DesktopModeWindowDecoration(
Context context,
@NonNull Context userContext,
DisplayController displayController,
SplitScreenController splitScreenController,
+ DesktopModeTaskRepository desktopRepository,
ShellTaskOrganizer taskOrganizer,
ActivityManager.RunningTaskInfo taskInfo,
SurfaceControl taskSurface,
@@ -207,8 +214,8 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
AssistContentRequester assistContentRequester,
MultiInstanceHelper multiInstanceHelper,
WindowDecorCaptionHandleRepository windowDecorCaptionHandleRepository) {
- this (context, userContext, displayController, splitScreenController, taskOrganizer,
- taskInfo, taskSurface, handler, bgExecutor, choreographer, syncQueue,
+ this (context, userContext, displayController, splitScreenController, desktopRepository,
+ taskOrganizer, taskInfo, taskSurface, handler, bgExecutor, choreographer, syncQueue,
appHeaderViewHolderFactory, rootTaskDisplayAreaOrganizer, genericLinksParser,
assistContentRequester,
SurfaceControl.Builder::new, SurfaceControl.Transaction::new,
@@ -225,6 +232,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
@NonNull Context userContext,
DisplayController displayController,
SplitScreenController splitScreenController,
+ DesktopModeTaskRepository desktopRepository,
ShellTaskOrganizer taskOrganizer,
ActivityManager.RunningTaskInfo taskInfo,
SurfaceControl taskSurface,
@@ -264,6 +272,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
mMultiInstanceHelper = multiInstanceHelper;
mWindowManagerWrapper = windowManagerWrapper;
mWindowDecorCaptionHandleRepository = windowDecorCaptionHandleRepository;
+ mDesktopRepository = desktopRepository;
}
/**
@@ -335,7 +344,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
mDragPositioningCallback = dragPositioningCallback;
}
- void setOpenInBrowserClickListener(Consumer<Uri> listener) {
+ void setOpenInBrowserClickListener(Consumer<Intent> listener) {
mOpenInBrowserClickListener = listener;
}
@@ -439,8 +448,11 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
mHandleMenu.relayout(startT, mResult.mCaptionX);
}
+ final boolean inFullImmersive = mDesktopRepository
+ .isTaskInFullImmersiveState(taskInfo.taskId);
updateRelayoutParams(mRelayoutParams, mContext, taskInfo, applyStartTransactionOnDraw,
- shouldSetTaskPositionAndCrop);
+ shouldSetTaskPositionAndCrop, mIsStatusBarVisible, mIsKeyguardVisibleAndOccluded,
+ inFullImmersive, mDisplayController.getInsetsState(taskInfo.displayId));
final WindowDecorLinearLayout oldRootView = mResult.mRootView;
final SurfaceControl oldDecorationSurface = mDecorationContainerSurface;
@@ -461,6 +473,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
if (canEnterDesktopMode(mContext) && Flags.enableDesktopWindowingAppHandleEducation()) {
notifyNoCaptionHandle();
}
+ mExclusionRegionListener.onExclusionRegionDismissed(mTaskInfo.taskId);
disposeStatusBarInputLayer();
Trace.endSection(); // DesktopModeWindowDecoration#updateRelayoutParamsAndSurfaces
return;
@@ -479,11 +492,17 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
if (canEnterDesktopMode(mContext) && Flags.enableDesktopWindowingAppHandleEducation()) {
notifyCaptionStateChanged();
}
- mWindowDecorViewHolder.bindData(mTaskInfo,
- position,
- mResult.mCaptionWidth,
- mResult.mCaptionHeight,
- isCaptionVisible());
+
+ if (isAppHandle(mWindowDecorViewHolder)) {
+ mWindowDecorViewHolder.bindData(new AppHandleViewHolder.HandleData(
+ mTaskInfo, position, mResult.mCaptionWidth, mResult.mCaptionHeight,
+ isCaptionVisible()
+ ));
+ } else {
+ mWindowDecorViewHolder.bindData(new AppHeaderViewHolder.HeaderData(
+ mTaskInfo, TaskInfoKt.getRequestingImmersive(mTaskInfo), inFullImmersive
+ ));
+ }
Trace.endSection();
if (!mTaskInfo.isFocused) {
@@ -517,21 +536,28 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
}
@Nullable
- private Uri getBrowserLink() {
+ private Intent getBrowserLink() {
// Do not show browser link in browser applications
final ComponentName baseActivity = mTaskInfo.baseActivity;
if (baseActivity != null && AppToWebUtils.isBrowserApp(mContext,
baseActivity.getPackageName(), mUserContext.getUserId())) {
return null;
}
+
+ final Uri browserLink;
// If the captured link is available and has not expired, return the captured link.
// Otherwise, return the generic link which is set to null if a generic link is unavailable.
if (mCapturedLink != null && !mCapturedLink.mExpired) {
- return mCapturedLink.mUri;
+ browserLink = mCapturedLink.mUri;
} else if (mWebUri != null) {
- return mWebUri;
+ browserLink = mWebUri;
+ } else {
+ browserLink = mGenericLink;
}
- return mGenericLink;
+
+ if (browserLink == null) return null;
+ return AppToWebUtils.getBrowserIntent(browserLink, mContext.getPackageManager());
+
}
UserHandle getUser() {
@@ -737,7 +763,11 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
Context context,
ActivityManager.RunningTaskInfo taskInfo,
boolean applyStartTransactionOnDraw,
- boolean shouldSetTaskPositionAndCrop) {
+ boolean shouldSetTaskPositionAndCrop,
+ boolean isStatusBarVisible,
+ boolean isKeyguardVisibleAndOccluded,
+ boolean inFullImmersiveMode,
+ @NonNull InsetsState displayInsetsState) {
final int captionLayoutId = getDesktopModeWindowDecorLayoutId(taskInfo.getWindowingMode());
final boolean isAppHeader =
captionLayoutId == R.layout.desktop_mode_app_header;
@@ -748,6 +778,28 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
relayoutParams.mCaptionHeightId = getCaptionHeightIdStatic(taskInfo.getWindowingMode());
relayoutParams.mCaptionWidthId = getCaptionWidthId(relayoutParams.mLayoutResId);
+ final boolean showCaption;
+ if (Flags.enableFullyImmersiveInDesktop()) {
+ if (inFullImmersiveMode) {
+ showCaption = isStatusBarVisible && !isKeyguardVisibleAndOccluded;
+ } else {
+ showCaption = taskInfo.isFreeform()
+ || (isStatusBarVisible && !isKeyguardVisibleAndOccluded);
+ }
+ } else {
+ // Caption should always be visible in freeform mode. When not in freeform,
+ // align with the status bar except when showing over keyguard (where it should not
+ // shown).
+ // TODO(b/356405803): Investigate how it's possible for the status bar visibility to
+ // be false while a freeform window is open if the status bar is always
+ // forcibly-shown. It may be that the InsetsState (from which |mIsStatusBarVisible|
+ // is set) still contains an invisible insets source in immersive cases even if the
+ // status bar is shown?
+ showCaption = taskInfo.isFreeform()
+ || (isStatusBarVisible && !isKeyguardVisibleAndOccluded);
+ }
+ relayoutParams.mIsCaptionVisible = showCaption;
+
if (isAppHeader) {
if (TaskInfoKt.isTransparentCaptionBarAppearance(taskInfo)) {
// If the app is requesting to customize the caption bar, allow input to fall
@@ -766,6 +818,13 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
// including non-immersive apps that just don't handle caption insets properly.
relayoutParams.mInsetSourceFlags |= FLAG_FORCE_CONSUMING_OPAQUE_CAPTION_BAR;
}
+ if (Flags.enableFullyImmersiveInDesktop() && inFullImmersiveMode) {
+ final Insets systemBarInsets = displayInsetsState.calculateInsets(
+ taskInfo.getConfiguration().windowConfiguration.getBounds(),
+ WindowInsets.Type.systemBars() & ~WindowInsets.Type.captionBar(),
+ false /* ignoreVisibility */);
+ relayoutParams.mCaptionTopPadding = systemBarInsets.top;
+ }
// Report occluding elements as bounding rects to the insets system so that apps can
// draw in the empty space in the center:
// First, the "app chip" section of the caption bar (+ some extra margins).
@@ -1048,7 +1107,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
}
/**
- * Determine the highest y coordinate of a freeform task. Used for restricting drag inputs.
+ * Determine the highest y coordinate of a freeform task. Used for restricting drag inputs.fmdra
*/
private int determineMaxY(int requiredEmptySpace, Rect stableBounds) {
return stableBounds.bottom - requiredEmptySpace;
@@ -1171,8 +1230,8 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
/* onToSplitScreenClickListener= */ mOnToSplitscreenClickListener,
/* onNewWindowClickListener= */ mOnNewWindowClickListener,
/* onManageWindowsClickListener= */ mOnManageWindowsClickListener,
- /* openInBrowserClickListener= */ (uri) -> {
- mOpenInBrowserClickListener.accept(uri);
+ /* openInBrowserClickListener= */ (intent) -> {
+ mOpenInBrowserClickListener.accept(intent);
onCapturedLinkExpired();
return Unit.INSTANCE;
},
@@ -1531,6 +1590,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
@NonNull Context userContext,
DisplayController displayController,
SplitScreenController splitScreenController,
+ DesktopModeTaskRepository desktopRepository,
ShellTaskOrganizer taskOrganizer,
ActivityManager.RunningTaskInfo taskInfo,
SurfaceControl taskSurface,
@@ -1549,6 +1609,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin
userContext,
displayController,
splitScreenController,
+ desktopRepository,
taskOrganizer,
taskInfo,
taskSurface,
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt
index 9a5b4f54dd36..98fef4722d1c 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt
@@ -20,13 +20,13 @@ import android.annotation.DimenRes
import android.annotation.SuppressLint
import android.app.ActivityManager.RunningTaskInfo
import android.content.Context
+import android.content.Intent
import android.content.res.ColorStateList
import android.content.res.Resources
import android.graphics.Bitmap
import android.graphics.Point
import android.graphics.PointF
import android.graphics.Rect
-import android.net.Uri
import android.view.LayoutInflater
import android.view.MotionEvent
import android.view.MotionEvent.ACTION_OUTSIDE
@@ -70,7 +70,7 @@ class HandleMenu(
private val shouldShowWindowingPill: Boolean,
private val shouldShowNewWindowButton: Boolean,
private val shouldShowManageWindowsButton: Boolean,
- private val openInBrowserLink: Uri?,
+ private val openInBrowserIntent: Intent?,
private val captionWidth: Int,
private val captionHeight: Int,
captionX: Int
@@ -107,7 +107,7 @@ class HandleMenu(
private val globalMenuPosition: Point = Point()
private val shouldShowBrowserPill: Boolean
- get() = openInBrowserLink != null
+ get() = openInBrowserIntent != null
init {
updateHandleMenuPillPositions(captionX)
@@ -119,7 +119,7 @@ class HandleMenu(
onToSplitScreenClickListener: () -> Unit,
onNewWindowClickListener: () -> Unit,
onManageWindowsClickListener: () -> Unit,
- openInBrowserClickListener: (Uri) -> Unit,
+ openInBrowserClickListener: (Intent) -> Unit,
onCloseMenuClickListener: () -> Unit,
onOutsideTouchListener: () -> Unit,
) {
@@ -152,7 +152,7 @@ class HandleMenu(
onToSplitScreenClickListener: () -> Unit,
onNewWindowClickListener: () -> Unit,
onManageWindowsClickListener: () -> Unit,
- openInBrowserClickListener: (Uri) -> Unit,
+ openInBrowserClickListener: (Intent) -> Unit,
onCloseMenuClickListener: () -> Unit,
onOutsideTouchListener: () -> Unit
) {
@@ -172,7 +172,7 @@ class HandleMenu(
this.onNewWindowClickListener = onNewWindowClickListener
this.onManageWindowsClickListener = onManageWindowsClickListener
this.onOpenInBrowserClickListener = {
- openInBrowserClickListener.invoke(openInBrowserLink!!)
+ openInBrowserClickListener.invoke(openInBrowserIntent!!)
}
this.onCloseMenuClickListener = onCloseMenuClickListener
this.onOutsideTouchListener = onOutsideTouchListener
@@ -661,7 +661,7 @@ interface HandleMenuFactory {
shouldShowWindowingPill: Boolean,
shouldShowNewWindowButton: Boolean,
shouldShowManageWindowsButton: Boolean,
- openInBrowserLink: Uri?,
+ openInBrowserIntent: Intent?,
captionWidth: Int,
captionHeight: Int,
captionX: Int
@@ -680,7 +680,7 @@ object DefaultHandleMenuFactory : HandleMenuFactory {
shouldShowWindowingPill: Boolean,
shouldShowNewWindowButton: Boolean,
shouldShowManageWindowsButton: Boolean,
- openInBrowserLink: Uri?,
+ openInBrowserIntent: Intent?,
captionWidth: Int,
captionHeight: Int,
captionX: Int
@@ -695,7 +695,7 @@ object DefaultHandleMenuFactory : HandleMenuFactory {
shouldShowWindowingPill,
shouldShowNewWindowButton,
shouldShowManageWindowsButton,
- openInBrowserLink,
+ openInBrowserIntent,
captionWidth,
captionHeight,
captionX
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeButtonView.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeButtonView.kt
index 2d97dc06cf89..68a58ee0a370 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeButtonView.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeButtonView.kt
@@ -18,6 +18,7 @@ package com.android.wm.shell.windowdecor
import android.animation.AnimatorSet
import android.animation.ObjectAnimator
import android.animation.ValueAnimator
+import android.annotation.DrawableRes
import android.content.Context
import android.content.res.ColorStateList
import android.graphics.Color
@@ -132,6 +133,11 @@ class MaximizeButtonView(
}
}
+ /** Set the drawable resource to use for the maximize button. */
+ fun setIcon(@DrawableRes icon: Int) {
+ maximizeWindow.setImageResource(icon)
+ }
+
companion object {
private const val OPACITY_15 = 38
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java
index c1a55b48a02a..000beba125b0 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java
@@ -144,8 +144,8 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>
TaskDragResizer mTaskDragResizer;
boolean mIsCaptionVisible;
- private boolean mIsStatusBarVisible;
- private boolean mIsKeyguardVisibleAndOccluded;
+ boolean mIsStatusBarVisible;
+ boolean mIsKeyguardVisibleAndOccluded;
/** The most recent set of insets applied to this window decoration. */
private WindowDecorationInsets mWindowDecorationInsets;
@@ -241,7 +241,7 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>
}
rootView = null; // Clear it just in case we use it accidentally
- updateCaptionVisibility(outResult.mRootView);
+ updateCaptionVisibility(outResult.mRootView, params);
final Rect taskBounds = mTaskInfo.getConfiguration().windowConfiguration.getBounds();
outResult.mWidth = taskBounds.width();
@@ -527,17 +527,10 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>
}
/**
- * Checks if task has entered/exited immersive mode and requires a change in caption visibility.
+ * Update caption visibility state and views.
*/
- private void updateCaptionVisibility(View rootView) {
- // Caption should always be visible in freeform mode. When not in freeform, align with the
- // status bar except when showing over keyguard (where it should not shown).
- // TODO(b/356405803): Investigate how it's possible for the status bar visibility to be
- // false while a freeform window is open if the status bar is always forcibly-shown. It
- // may be that the InsetsState (from which |mIsStatusBarVisible| is set) still contains
- // an invisible insets source in immersive cases even if the status bar is shown?
- mIsCaptionVisible = mTaskInfo.isFreeform()
- || (mIsStatusBarVisible && !mIsKeyguardVisibleAndOccluded);
+ private void updateCaptionVisibility(View rootView, @NonNull RelayoutParams params) {
+ mIsCaptionVisible = params.mIsCaptionVisible;
setCaptionVisibility(rootView, mIsCaptionVisible);
}
@@ -737,6 +730,7 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>
int mCornerRadius;
int mCaptionTopPadding;
+ boolean mIsCaptionVisible;
Configuration mWindowDecorConfig;
@@ -755,6 +749,7 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer>
mCornerRadius = 0;
mCaptionTopPadding = 0;
+ mIsCaptionVisible = false;
mApplyStartTransactionOnDraw = false;
mSetTaskPositionAndCrop = false;
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/extension/TaskInfo.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/extension/TaskInfo.kt
index 6f8e00143848..052cfaf2ccec 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/extension/TaskInfo.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/extension/TaskInfo.kt
@@ -20,6 +20,7 @@ import android.app.TaskInfo
import android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN
import android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW
import android.app.WindowConfiguration.WINDOWING_MODE_PINNED
+import android.view.WindowInsets
import android.view.WindowInsetsController.APPEARANCE_LIGHT_CAPTION_BARS
import android.view.WindowInsetsController.APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND
@@ -46,3 +47,10 @@ val TaskInfo.isPinned: Boolean
/** Whether the task is in multi-window windowing mode. */
val TaskInfo.isMultiWindow: Boolean
get() = windowingMode == WINDOWING_MODE_MULTI_WINDOW
+
+/** Whether the task is requesting immersive mode. */
+val TaskInfo.requestingImmersive: Boolean
+ get() {
+ // Considered to be requesting immersive when requesting to hide the status bar.
+ return (requestedVisibleTypes and WindowInsets.Type.statusBars()) == 0
+ }
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHandleViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHandleViewHolder.kt
index 8c102ebfb590..b5700ffb046b 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHandleViewHolder.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHandleViewHolder.kt
@@ -42,6 +42,7 @@ import com.android.wm.shell.R
import com.android.wm.shell.shared.animation.Interpolators
import com.android.wm.shell.windowdecor.WindowManagerWrapper
import com.android.wm.shell.windowdecor.additionalviewcontainer.AdditionalSystemViewContainer
+import com.android.wm.shell.windowdecor.viewholder.WindowDecorationViewHolder.Data
/**
* A desktop mode window decoration used when the window is in full "focus" (i.e. fullscreen/split).
@@ -53,11 +54,20 @@ internal class AppHandleViewHolder(
onCaptionButtonClickListener: OnClickListener,
private val windowManagerWrapper: WindowManagerWrapper,
private val handler: Handler
-) : WindowDecorationViewHolder(rootView) {
+) : WindowDecorationViewHolder<AppHandleViewHolder.HandleData>(rootView) {
companion object {
private const val CAPTION_HANDLE_ANIMATION_DURATION: Long = 100
}
+
+ data class HandleData(
+ val taskInfo: RunningTaskInfo,
+ val position: Point,
+ val width: Int,
+ val height: Int,
+ val isCaptionVisible: Boolean
+ ) : Data()
+
private lateinit var taskInfo: RunningTaskInfo
private val captionView: View = rootView.requireViewById(R.id.desktop_mode_caption)
private val captionHandle: ImageButton = rootView.requireViewById(R.id.caption_handle)
@@ -89,7 +99,11 @@ internal class AppHandleViewHolder(
}
}
- override fun bindData(
+ override fun bindData(data: HandleData) {
+ bindData(data.taskInfo, data.position, data.width, data.height, data.isCaptionVisible)
+ }
+
+ private fun bindData(
taskInfo: RunningTaskInfo,
position: Point,
width: Int,
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt
index e9961655d979..52bf40062cdb 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt
@@ -16,12 +16,12 @@
package com.android.wm.shell.windowdecor.viewholder
import android.annotation.ColorInt
+import android.annotation.DrawableRes
import android.app.ActivityManager.RunningTaskInfo
import android.content.res.ColorStateList
import android.content.res.Configuration
import android.graphics.Bitmap
import android.graphics.Color
-import android.graphics.Point
import android.graphics.Rect
import android.graphics.drawable.LayerDrawable
import android.graphics.drawable.RippleDrawable
@@ -46,6 +46,7 @@ import com.android.internal.R.attr.materialColorSecondaryContainer
import com.android.internal.R.attr.materialColorSurfaceContainerHigh
import com.android.internal.R.attr.materialColorSurfaceContainerLow
import com.android.internal.R.attr.materialColorSurfaceDim
+import com.android.window.flags.Flags
import com.android.window.flags.Flags.enableMinimizeButton
import com.android.wm.shell.R
import android.window.flags.DesktopModeFlags
@@ -74,7 +75,13 @@ class AppHeaderViewHolder(
appName: CharSequence,
appIconBitmap: Bitmap,
onMaximizeHoverAnimationFinishedListener: () -> Unit
-) : WindowDecorationViewHolder(rootView) {
+) : WindowDecorationViewHolder<AppHeaderViewHolder.HeaderData>(rootView) {
+
+ data class HeaderData(
+ val taskInfo: RunningTaskInfo,
+ val isRequestingImmersive: Boolean,
+ val inFullImmersiveState: Boolean,
+ ) : Data()
private val decorThemeUtil = DecorThemeUtil(context)
private val lightColors = dynamicLightColorScheme(context)
@@ -151,15 +158,17 @@ class AppHeaderViewHolder(
onMaximizeHoverAnimationFinishedListener
}
- override fun bindData(
+ override fun bindData(data: HeaderData) {
+ bindData(data.taskInfo, data.isRequestingImmersive, data.inFullImmersiveState)
+ }
+
+ private fun bindData(
taskInfo: RunningTaskInfo,
- position: Point,
- width: Int,
- height: Int,
- isCaptionVisible: Boolean
+ isRequestingImmersive: Boolean,
+ inFullImmersiveState: Boolean,
) {
if (DesktopModeFlags.ENABLE_THEMED_APP_HEADERS.isTrue()) {
- bindDataWithThemedHeaders(taskInfo)
+ bindDataWithThemedHeaders(taskInfo, isRequestingImmersive, inFullImmersiveState)
} else {
bindDataLegacy(taskInfo)
}
@@ -198,7 +207,11 @@ class AppHeaderViewHolder(
minimizeWindowButton.isGone = !enableMinimizeButton()
}
- private fun bindDataWithThemedHeaders(taskInfo: RunningTaskInfo) {
+ private fun bindDataWithThemedHeaders(
+ taskInfo: RunningTaskInfo,
+ requestingImmersive: Boolean,
+ inFullImmersiveState: Boolean
+ ) {
val header = fillHeaderInfo(taskInfo)
val headerStyle = getHeaderStyle(header)
@@ -241,16 +254,19 @@ class AppHeaderViewHolder(
}
minimizeWindowButton.isGone = !enableMinimizeButton()
// Maximize button.
- maximizeButtonView.setAnimationTints(
- darkMode = header.appTheme == Theme.DARK,
- iconForegroundColor = colorStateList,
- baseForegroundColor = foregroundColor,
- rippleDrawable = createRippleDrawable(
- color = foregroundColor,
- cornerRadius = headerButtonsRippleRadius,
- drawableInsets = maximizeDrawableInsets
+ maximizeButtonView.apply {
+ setAnimationTints(
+ darkMode = header.appTheme == Theme.DARK,
+ iconForegroundColor = colorStateList,
+ baseForegroundColor = foregroundColor,
+ rippleDrawable = createRippleDrawable(
+ color = foregroundColor,
+ cornerRadius = headerButtonsRippleRadius,
+ drawableInsets = maximizeDrawableInsets
+ )
)
- )
+ setIcon(getMaximizeButtonIcon(requestingImmersive, inFullImmersiveState))
+ }
// Close button.
closeWindowButton.apply {
imageTintList = colorStateList
@@ -320,6 +336,32 @@ class AppHeaderViewHolder(
}
}
+ @DrawableRes
+ private fun getMaximizeButtonIcon(
+ requestingImmersive: Boolean,
+ inFullImmersiveState: Boolean
+ ): Int = when {
+ shouldShowEnterFullImmersiveIcon(requestingImmersive, inFullImmersiveState) -> {
+ R.drawable.decor_desktop_mode_immersive_button_dark
+ }
+ shouldShowExitFullImmersiveIcon(requestingImmersive, inFullImmersiveState) -> {
+ R.drawable.decor_desktop_mode_immersive_exit_button_dark
+ }
+ else -> R.drawable.decor_desktop_mode_maximize_button_dark
+ }
+
+ private fun shouldShowEnterFullImmersiveIcon(
+ requestingImmersive: Boolean,
+ inFullImmersiveState: Boolean
+ ): Boolean = Flags.enableFullyImmersiveInDesktop()
+ && requestingImmersive && !inFullImmersiveState
+
+ private fun shouldShowExitFullImmersiveIcon(
+ requestingImmersive: Boolean,
+ inFullImmersiveState: Boolean
+ ): Boolean = Flags.enableFullyImmersiveInDesktop()
+ && requestingImmersive && inFullImmersiveState
+
private fun getHeaderStyle(header: Header): HeaderStyle {
return HeaderStyle(
background = getHeaderBackground(header),
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/WindowDecorationViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/WindowDecorationViewHolder.kt
index 5ea55b367703..1fe743da966a 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/WindowDecorationViewHolder.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/WindowDecorationViewHolder.kt
@@ -17,31 +17,28 @@ package com.android.wm.shell.windowdecor.viewholder
import android.app.ActivityManager.RunningTaskInfo
import android.content.Context
-import android.graphics.Point
import android.view.View
+import com.android.wm.shell.windowdecor.viewholder.WindowDecorationViewHolder.Data
/**
* Encapsulates the root [View] of a window decoration and its children to facilitate looking up
* children (via findViewById) and updating to the latest data from [RunningTaskInfo].
*/
-abstract class WindowDecorationViewHolder(rootView: View) {
+abstract class WindowDecorationViewHolder<T : Data>(rootView: View) {
val context: Context = rootView.context
/**
* A signal to the view holder that new data is available and that the views should be updated to
* reflect it.
*/
- abstract fun bindData(
- taskInfo: RunningTaskInfo,
- position: Point,
- width: Int,
- height: Int,
- isCaptionVisible: Boolean
- )
+ abstract fun bindData(data: T)
/** Callback when the handle menu is opened. */
abstract fun onHandleMenuOpened()
/** Callback when the handle menu is closed. */
abstract fun onHandleMenuClosed()
+
+ /** Data clas that contains the information needed to update the view holder. */
+ abstract class Data
}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandlerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandlerTest.kt
new file mode 100644
index 000000000000..9b4cc17e19d9
--- /dev/null
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandlerTest.kt
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.wm.shell.desktopmode
+
+import android.app.ActivityManager.RunningTaskInfo
+import android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD
+import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
+import android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN
+import android.app.WindowConfiguration.WindowingMode
+import android.testing.AndroidTestingRunner
+import android.testing.TestableLooper.RunWithLooper
+import android.view.SurfaceControl
+import android.view.WindowManager
+import android.window.TransitionInfo
+import androidx.test.filters.SmallTest
+import com.android.wm.shell.ShellTestCase
+import com.android.wm.shell.TestRunningTaskInfoBuilder
+import com.android.wm.shell.common.ShellExecutor
+import java.util.function.Supplier
+import org.junit.Assert.assertFalse
+import org.junit.Assert.assertNull
+import org.junit.Assert.assertTrue
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.kotlin.mock
+
+/**
+ * Test class for [CloseDesktopTaskTransitionHandler]
+ *
+ * Usage: atest WMShellUnitTests:CloseDesktopTaskTransitionHandlerTest
+ */
+@SmallTest
+@RunWithLooper
+@RunWith(AndroidTestingRunner::class)
+class CloseDesktopTaskTransitionHandlerTest : ShellTestCase() {
+
+ @Mock lateinit var testExecutor: ShellExecutor
+ @Mock lateinit var closingTaskLeash: SurfaceControl
+
+ private val transactionSupplier = Supplier { mock<SurfaceControl.Transaction>() }
+
+ private lateinit var handler: CloseDesktopTaskTransitionHandler
+
+ @Before
+ fun setUp() {
+ handler =
+ CloseDesktopTaskTransitionHandler(
+ context,
+ testExecutor,
+ testExecutor,
+ transactionSupplier
+ )
+ }
+
+ @Test
+ fun handleRequest_returnsNull() {
+ assertNull(handler.handleRequest(mock(), mock()))
+ }
+
+ @Test
+ fun startAnimation_openTransition_returnsFalse() {
+ val animates =
+ handler.startAnimation(
+ transition = mock(),
+ info =
+ createTransitionInfo(
+ type = WindowManager.TRANSIT_OPEN,
+ task = createTask(WINDOWING_MODE_FREEFORM)
+ ),
+ startTransaction = mock(),
+ finishTransaction = mock(),
+ finishCallback = {}
+ )
+
+ assertFalse("Should not animate open transition", animates)
+ }
+
+ @Test
+ fun startAnimation_closeTransitionFullscreenTask_returnsFalse() {
+ val animates =
+ handler.startAnimation(
+ transition = mock(),
+ info = createTransitionInfo(task = createTask(WINDOWING_MODE_FULLSCREEN)),
+ startTransaction = mock(),
+ finishTransaction = mock(),
+ finishCallback = {}
+ )
+
+ assertFalse("Should not animate fullscreen task close transition", animates)
+ }
+
+ @Test
+ fun startAnimation_closeTransitionOpeningFreeformTask_returnsFalse() {
+ val animates =
+ handler.startAnimation(
+ transition = mock(),
+ info =
+ createTransitionInfo(
+ changeMode = WindowManager.TRANSIT_OPEN,
+ task = createTask(WINDOWING_MODE_FREEFORM)
+ ),
+ startTransaction = mock(),
+ finishTransaction = mock(),
+ finishCallback = {}
+ )
+
+ assertFalse("Should not animate opening freeform task close transition", animates)
+ }
+
+ @Test
+ fun startAnimation_closeTransitionClosingFreeformTask_returnsTrue() {
+ val animates =
+ handler.startAnimation(
+ transition = mock(),
+ info = createTransitionInfo(task = createTask(WINDOWING_MODE_FREEFORM)),
+ startTransaction = mock(),
+ finishTransaction = mock(),
+ finishCallback = {}
+ )
+
+ assertTrue("Should animate closing freeform task close transition", animates)
+ }
+
+ private fun createTransitionInfo(
+ type: Int = WindowManager.TRANSIT_CLOSE,
+ changeMode: Int = WindowManager.TRANSIT_CLOSE,
+ task: RunningTaskInfo
+ ): TransitionInfo =
+ TransitionInfo(type, 0 /* flags */).apply {
+ addChange(
+ TransitionInfo.Change(mock(), closingTaskLeash).apply {
+ mode = changeMode
+ parent = null
+ taskInfo = task
+ }
+ )
+ }
+
+ private fun createTask(@WindowingMode windowingMode: Int): RunningTaskInfo =
+ TestRunningTaskInfoBuilder()
+ .setActivityType(ACTIVITY_TYPE_STANDARD)
+ .setWindowingMode(windowingMode)
+ .build()
+}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandlerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandlerTest.kt
new file mode 100644
index 000000000000..2b60200f06ad
--- /dev/null
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandlerTest.kt
@@ -0,0 +1,220 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.wm.shell.desktopmode
+
+import android.app.ActivityManager.RunningTaskInfo
+import android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD
+import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
+import android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN
+import android.app.WindowConfiguration.WindowingMode
+import android.os.Handler
+import android.os.IBinder
+import android.testing.AndroidTestingRunner
+import android.testing.TestableLooper.RunWithLooper
+import android.view.SurfaceControl
+import android.view.WindowManager
+import android.window.TransitionInfo
+import android.window.WindowContainerTransaction
+import androidx.test.filters.SmallTest
+import com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE
+import com.android.internal.jank.InteractionJankMonitor
+import com.android.wm.shell.ShellTestCase
+import com.android.wm.shell.TestRunningTaskInfoBuilder
+import com.android.wm.shell.freeform.FreeformTaskTransitionHandler
+import com.android.wm.shell.transition.Transitions
+import org.junit.Assert.assertFalse
+import org.junit.Assert.assertNull
+import org.junit.Assert.assertTrue
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.Mockito.verify
+import org.mockito.kotlin.any
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.whenever
+
+/**
+ * Test class for [DesktopMixedTransitionHandler]
+ *
+ * Usage: atest WMShellUnitTests:DesktopMixedTransitionHandlerTest
+ */
+@SmallTest
+@RunWithLooper
+@RunWith(AndroidTestingRunner::class)
+class DesktopMixedTransitionHandlerTest : ShellTestCase() {
+
+ @Mock lateinit var transitions: Transitions
+ @Mock lateinit var desktopTaskRepository: DesktopModeTaskRepository
+ @Mock lateinit var freeformTaskTransitionHandler: FreeformTaskTransitionHandler
+ @Mock lateinit var closeDesktopTaskTransitionHandler: CloseDesktopTaskTransitionHandler
+ @Mock lateinit var interactionJankMonitor: InteractionJankMonitor
+ @Mock lateinit var mockHandler: Handler
+ @Mock lateinit var closingTaskLeash: SurfaceControl
+
+ private lateinit var mixedHandler: DesktopMixedTransitionHandler
+
+ @Before
+ fun setUp() {
+ mixedHandler =
+ DesktopMixedTransitionHandler(
+ context,
+ transitions,
+ desktopTaskRepository,
+ freeformTaskTransitionHandler,
+ closeDesktopTaskTransitionHandler,
+ interactionJankMonitor,
+ mockHandler
+ )
+ }
+
+ @Test
+ fun startWindowingModeTransition_callsFreeformTaskTransitionHandler() {
+ val windowingMode = WINDOWING_MODE_FULLSCREEN
+ val wct = WindowContainerTransaction()
+
+ mixedHandler.startWindowingModeTransition(windowingMode, wct)
+
+ verify(freeformTaskTransitionHandler).startWindowingModeTransition(windowingMode, wct)
+ }
+
+ @Test
+ fun startMinimizedModeTransition_callsFreeformTaskTransitionHandler() {
+ val wct = WindowContainerTransaction()
+ whenever(freeformTaskTransitionHandler.startMinimizedModeTransition(any()))
+ .thenReturn(mock())
+
+ mixedHandler.startMinimizedModeTransition(wct)
+
+ verify(freeformTaskTransitionHandler).startMinimizedModeTransition(wct)
+ }
+
+ @Test
+ fun startRemoveTransition_startsCloseTransition() {
+ val wct = WindowContainerTransaction()
+
+ mixedHandler.startRemoveTransition(wct)
+
+ verify(transitions).startTransition(WindowManager.TRANSIT_CLOSE, wct, mixedHandler)
+ }
+
+ @Test
+ fun handleRequest_returnsNull() {
+ assertNull(mixedHandler.handleRequest(mock(), mock()))
+ }
+
+ @Test
+ fun startAnimation_withoutClosingDesktopTask_returnsFalse() {
+ val transition = mock<IBinder>()
+ val transitionInfo =
+ createTransitionInfo(
+ changeMode = WindowManager.TRANSIT_OPEN,
+ task = createTask(WINDOWING_MODE_FREEFORM)
+ )
+ whenever(freeformTaskTransitionHandler.startAnimation(any(), any(), any(), any(), any()))
+ .thenReturn(true)
+
+ val started = mixedHandler.startAnimation(
+ transition = transition,
+ info = transitionInfo,
+ startTransaction = mock(),
+ finishTransaction = mock(),
+ finishCallback = {}
+ )
+
+ assertFalse("Should not start animation without closing desktop task", started)
+ }
+
+ @Test
+ fun startAnimation_withClosingDesktopTask_callsCloseTaskHandler() {
+ val transition = mock<IBinder>()
+ val transitionInfo = createTransitionInfo(task = createTask(WINDOWING_MODE_FREEFORM))
+ whenever(desktopTaskRepository.getActiveNonMinimizedTaskCount(any())).thenReturn(2)
+ whenever(
+ closeDesktopTaskTransitionHandler.startAnimation(any(), any(), any(), any(), any())
+ )
+ .thenReturn(true)
+
+ val started = mixedHandler.startAnimation(
+ transition = transition,
+ info = transitionInfo,
+ startTransaction = mock(),
+ finishTransaction = mock(),
+ finishCallback = {}
+ )
+
+ assertTrue("Should delegate animation to close transition handler", started)
+ verify(closeDesktopTaskTransitionHandler)
+ .startAnimation(eq(transition), eq(transitionInfo), any(), any(), any())
+ }
+
+ @Test
+ fun startAnimation_withClosingLastDesktopTask_dispatchesTransition() {
+ val transition = mock<IBinder>()
+ val transitionInfo = createTransitionInfo(task = createTask(WINDOWING_MODE_FREEFORM))
+ whenever(desktopTaskRepository.getActiveNonMinimizedTaskCount(any())).thenReturn(1)
+ whenever(transitions.dispatchTransition(any(), any(), any(), any(), any(), any()))
+ .thenReturn(mock())
+
+ mixedHandler.startAnimation(
+ transition = transition,
+ info = transitionInfo,
+ startTransaction = mock(),
+ finishTransaction = mock(),
+ finishCallback = {}
+ )
+
+ verify(transitions)
+ .dispatchTransition(
+ eq(transition),
+ eq(transitionInfo),
+ any(),
+ any(),
+ any(),
+ eq(mixedHandler)
+ )
+ verify(interactionJankMonitor)
+ .begin(
+ closingTaskLeash,
+ context,
+ mockHandler,
+ CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE
+ )
+ }
+
+ private fun createTransitionInfo(
+ type: Int = WindowManager.TRANSIT_CLOSE,
+ changeMode: Int = WindowManager.TRANSIT_CLOSE,
+ task: RunningTaskInfo
+ ): TransitionInfo =
+ TransitionInfo(type, 0 /* flags */).apply {
+ addChange(
+ TransitionInfo.Change(mock(), closingTaskLeash).apply {
+ mode = changeMode
+ parent = null
+ taskInfo = task
+ }
+ )
+ }
+
+ private fun createTask(@WindowingMode windowingMode: Int): RunningTaskInfo =
+ TestRunningTaskInfoBuilder()
+ .setActivityType(ACTIVITY_TYPE_STANDARD)
+ .setWindowingMode(windowingMode)
+ .build()
+}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepositoryTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepositoryTest.kt
index bc40d89009bc..794f9d819f4b 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepositoryTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepositoryTest.kt
@@ -882,6 +882,51 @@ class DesktopModeTaskRepositoryTest : ShellTestCase() {
assertThat(tasks).containsExactly(1, 3).inOrder()
}
+ @Test
+ fun setTaskInFullImmersiveState_savedAsInImmersiveState() {
+ assertThat(repo.isTaskInFullImmersiveState(taskId = 1)).isFalse()
+
+ repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID, taskId = 1, immersive = true)
+
+ assertThat(repo.isTaskInFullImmersiveState(taskId = 1)).isTrue()
+ }
+
+ @Test
+ fun removeTaskInFullImmersiveState_removedAsInImmersiveState() {
+ repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID, taskId = 1, immersive = true)
+ assertThat(repo.isTaskInFullImmersiveState(taskId = 1)).isTrue()
+
+ repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID, taskId = 1, immersive = false)
+
+ assertThat(repo.isTaskInFullImmersiveState(taskId = 1)).isFalse()
+ }
+
+ @Test
+ fun removeTaskInFullImmersiveState_otherWasImmersive_otherRemainsImmersive() {
+ repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID, taskId = 1, immersive = true)
+
+ repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID, taskId = 2, immersive = false)
+
+ assertThat(repo.isTaskInFullImmersiveState(taskId = 1)).isTrue()
+ }
+
+ @Test
+ fun setTaskInFullImmersiveState_sameDisplay_overridesExistingFullImmersiveTask() {
+ repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID, taskId = 1, immersive = true)
+ repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID, taskId = 2, immersive = true)
+
+ assertThat(repo.isTaskInFullImmersiveState(taskId = 1)).isFalse()
+ assertThat(repo.isTaskInFullImmersiveState(taskId = 2)).isTrue()
+ }
+
+ @Test
+ fun setTaskInFullImmersiveState_differentDisplay_bothAreImmersive() {
+ repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID, taskId = 1, immersive = true)
+ repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID + 1, taskId = 2, immersive = true)
+
+ assertThat(repo.isTaskInFullImmersiveState(taskId = 1)).isTrue()
+ assertThat(repo.isTaskInFullImmersiveState(taskId = 2)).isTrue()
+ }
class TestListener : DesktopModeTaskRepository.ActiveTasksListener {
var activeChangesOnDefaultDisplay = 0
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt
index 94e361659090..8870846efed4 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt
@@ -144,6 +144,7 @@ import org.mockito.Mockito.clearInvocations
import org.mockito.Mockito.mock
import org.mockito.Mockito.spy
import org.mockito.Mockito.verify
+import org.mockito.Mockito.times
import org.mockito.kotlin.any
import org.mockito.kotlin.anyOrNull
import org.mockito.kotlin.atLeastOnce
@@ -3201,6 +3202,11 @@ class DesktopTasksControllerTest : ShellTestCase() {
Rect())
}
+ @Test
+ fun shellController_registersUserChangeListener() {
+ verify(shellController, times(1)).addUserChangeListener(any())
+ }
+
/**
* Assert that an unhandled drag event launches a PendingIntent with the
* windowing mode and bounds we are expecting.
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationControllerTest.kt
new file mode 100644
index 000000000000..5596ad7726f1
--- /dev/null
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationControllerTest.kt
@@ -0,0 +1,463 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.wm.shell.desktopmode.education
+
+import android.platform.test.annotations.DisableFlags
+import android.platform.test.annotations.EnableFlags
+import android.platform.test.flag.junit.SetFlagsRule
+import android.testing.AndroidTestingRunner
+import android.testing.TestableContext
+import androidx.test.filters.SmallTest
+import com.android.modules.utils.testing.ExtendedMockitoRule
+import com.android.window.flags.Flags
+import com.android.wm.shell.ShellTestCase
+import com.android.wm.shell.desktopmode.CaptionState
+import com.android.wm.shell.desktopmode.WindowDecorCaptionHandleRepository
+import com.android.wm.shell.desktopmode.education.AppHandleEducationController.Companion.APP_HANDLE_EDUCATION_DELAY_MILLIS
+import com.android.wm.shell.desktopmode.education.AppHandleEducationController.Companion.APP_HANDLE_EDUCATION_TIMEOUT_MILLIS
+import com.android.wm.shell.desktopmode.education.data.AppHandleEducationDatastoreRepository
+import com.android.wm.shell.shared.desktopmode.DesktopModeStatus
+import com.android.wm.shell.shared.desktopmode.DesktopModeTransitionSource
+import com.android.wm.shell.util.createAppHandleState
+import com.android.wm.shell.util.createAppHeaderState
+import com.android.wm.shell.util.createWindowingEducationProto
+import com.android.wm.shell.windowdecor.education.DesktopWindowingEducationTooltipController
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.test.StandardTestDispatcher
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.advanceTimeBy
+import kotlinx.coroutines.test.runCurrent
+import kotlinx.coroutines.test.runTest
+import kotlinx.coroutines.test.setMain
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.MockitoAnnotations
+import org.mockito.kotlin.any
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.atLeastOnce
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.never
+import org.mockito.kotlin.times
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
+
+/**
+ * Tests of [AppHandleEducationController]
+ * Usage: atest AppHandleEducationControllerTest
+ */
+@SmallTest
+@RunWith(AndroidTestingRunner::class)
+@OptIn(ExperimentalCoroutinesApi::class)
+class AppHandleEducationControllerTest : ShellTestCase() {
+ @JvmField
+ @Rule
+ val extendedMockitoRule =
+ ExtendedMockitoRule.Builder(this).mockStatic(DesktopModeStatus::class.java).build()!!
+ @JvmField @Rule val setFlagsRule = SetFlagsRule()
+
+ private lateinit var educationController: AppHandleEducationController
+ private lateinit var testableContext: TestableContext
+ private val testScope = TestScope()
+ private val testDataStoreFlow = MutableStateFlow(createWindowingEducationProto())
+ private val testCaptionStateFlow = MutableStateFlow<CaptionState>(CaptionState.NoCaption)
+ private val educationConfigCaptor =
+ argumentCaptor<DesktopWindowingEducationTooltipController.EducationViewConfig>()
+ @Mock private lateinit var mockEducationFilter: AppHandleEducationFilter
+ @Mock private lateinit var mockDataStoreRepository: AppHandleEducationDatastoreRepository
+ @Mock private lateinit var mockCaptionHandleRepository: WindowDecorCaptionHandleRepository
+ @Mock private lateinit var mockTooltipController: DesktopWindowingEducationTooltipController
+
+ @Before
+ fun setUp() {
+ MockitoAnnotations.initMocks(this)
+ Dispatchers.setMain(StandardTestDispatcher(testScope.testScheduler))
+ testableContext = TestableContext(mContext)
+ whenever(mockDataStoreRepository.dataStoreFlow).thenReturn(testDataStoreFlow)
+ whenever(mockCaptionHandleRepository.captionStateFlow).thenReturn(testCaptionStateFlow)
+ whenever(DesktopModeStatus.canEnterDesktopMode(any())).thenReturn(true)
+
+ educationController =
+ AppHandleEducationController(
+ testableContext,
+ mockEducationFilter,
+ mockDataStoreRepository,
+ mockCaptionHandleRepository,
+ mockTooltipController,
+ testScope.backgroundScope,
+ Dispatchers.Main)
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun init_appHandleVisible_shouldCallShowEducationTooltip() =
+ testScope.runTest {
+ // App handle is visible. Should show education tooltip.
+ setShouldShowAppHandleEducation(true)
+
+ // Simulate app handle visible.
+ testCaptionStateFlow.value = createAppHandleState()
+ // Wait for first tooltip to showup.
+ waitForBufferDelay()
+
+ verify(mockTooltipController, times(1)).showEducationTooltip(any(), any())
+ }
+
+ @Test
+ @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun init_flagDisabled_shouldNotCallShowEducationTooltip() =
+ testScope.runTest {
+ // App handle visible but education aconfig flag disabled, should not show education
+ // tooltip.
+ whenever(DesktopModeStatus.canEnterDesktopMode(any())).thenReturn(false)
+ setShouldShowAppHandleEducation(true)
+
+ // Simulate app handle visible.
+ testCaptionStateFlow.value = createAppHandleState()
+ // Wait for first tooltip to showup.
+ waitForBufferDelay()
+
+ verify(mockTooltipController, never()).showEducationTooltip(any(), any())
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun init_shouldShowAppHandleEducationReturnsFalse_shouldNotCallShowEducationTooltip() =
+ testScope.runTest {
+ // App handle is visible but [shouldShowAppHandleEducation] api returns false, should not
+ // show education tooltip.
+ setShouldShowAppHandleEducation(false)
+
+ // Simulate app handle visible.
+ testCaptionStateFlow.value = createAppHandleState()
+ // Wait for first tooltip to showup.
+ waitForBufferDelay()
+
+ verify(mockTooltipController, never()).showEducationTooltip(any(), any())
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun init_appHandleNotVisible_shouldNotCallShowEducationTooltip() =
+ testScope.runTest {
+ // App handle is not visible, should not show education tooltip.
+ setShouldShowAppHandleEducation(true)
+
+ // Simulate app handle is not visible.
+ testCaptionStateFlow.value = CaptionState.NoCaption
+ // Wait for first tooltip to showup.
+ waitForBufferDelay()
+
+ verify(mockTooltipController, never()).showEducationTooltip(any(), any())
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun init_educationViewedAlready_shouldNotCallShowEducationTooltip() =
+ testScope.runTest {
+ // App handle is visible but education has been viewed before. Should not show education
+ // tooltip.
+ // Mark education viewed.
+ testDataStoreFlow.value =
+ createWindowingEducationProto(educationViewedTimestampMillis = 123L)
+ setShouldShowAppHandleEducation(true)
+
+ // Simulate app handle visible.
+ testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = false)
+ // Wait for first tooltip to showup.
+ waitForBufferDelay()
+
+ verify(mockTooltipController, never()).showEducationTooltip(any(), any())
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun init_appHandleExpanded_shouldMarkFeatureViewed() =
+ testScope.runTest {
+ setShouldShowAppHandleEducation(false)
+
+ // Simulate app handle visible and expanded.
+ testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = true)
+ // Wait for some time before verifying
+ waitForBufferDelay()
+
+ verify(mockDataStoreRepository, times(1)).updateFeatureUsedTimestampMillis(eq(true))
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun init_showFirstTooltip_shouldMarkEducationViewed() =
+ testScope.runTest {
+ // App handle is visible. Should show education tooltip.
+ setShouldShowAppHandleEducation(true)
+
+ // Simulate app handle visible.
+ testCaptionStateFlow.value = createAppHandleState()
+ // Wait for first tooltip to showup.
+ waitForBufferDelay()
+
+ verify(mockDataStoreRepository, times(1)).updateEducationViewedTimestampMillis(eq(true))
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun showWindowingImageButtonTooltip_appHandleExpanded_shouldCallShowEducationTooltipTwice() =
+ testScope.runTest {
+ // After first tooltip is dismissed, app handle is expanded. Should show second education
+ // tooltip.
+ showAndDismissFirstTooltip()
+
+ // Simulate app handle expanded.
+ testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = true)
+ // Wait for next tooltip to showup.
+ waitForBufferDelay()
+
+ // [showEducationTooltip] should be called twice, once for each tooltip.
+ verify(mockTooltipController, times(2)).showEducationTooltip(any(), any())
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun showWindowingImageButtonTooltip_appHandleExpandedAfterTimeout_shouldCallShowEducationTooltipOnce() =
+ testScope.runTest {
+ // After first tooltip is dismissed, app handle is expanded after timeout. Should not show
+ // second education tooltip.
+ showAndDismissFirstTooltip()
+
+ // Wait for timeout to occur, after this timeout we should not listen for further triggers
+ // anymore.
+ advanceTimeBy(APP_HANDLE_EDUCATION_TIMEOUT_BUFFER_MILLIS)
+ runCurrent()
+ // Simulate app handle expanded.
+ testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = true)
+ // Wait for next tooltip to showup.
+ waitForBufferDelay()
+
+ // [showEducationTooltip] should be called once, just for the first tooltip.
+ verify(mockTooltipController, times(1)).showEducationTooltip(any(), any())
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun showWindowingImageButtonTooltip_appHandleExpandedTwice_shouldCallShowEducationTooltipTwice() =
+ testScope.runTest {
+ // After first tooltip is dismissed, app handle is expanded twice. Should show second
+ // education tooltip only once.
+ showAndDismissFirstTooltip()
+
+ // Simulate app handle expanded.
+ testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = true)
+ // Wait for next tooltip to showup.
+ waitForBufferDelay()
+ // Simulate app handle being expanded twice.
+ testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = true)
+ waitForBufferDelay()
+
+ // [showEducationTooltip] should not be called thrice, even if app handle was expanded
+ // twice. Should be called twice, once for each tooltip.
+ verify(mockTooltipController, times(2)).showEducationTooltip(any(), any())
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun showWindowingImageButtonTooltip_appHandleNotExpanded_shouldCallShowEducationTooltipOnce() =
+ testScope.runTest {
+ // After first tooltip is dismissed, app handle is not expanded. Should not show second
+ // education tooltip.
+ showAndDismissFirstTooltip()
+
+ // Simulate app handle visible but not expanded.
+ testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = false)
+ // Wait for next tooltip to showup.
+ waitForBufferDelay()
+
+ // [showEducationTooltip] should be called once, just for the first tooltip.
+ verify(mockTooltipController, times(1)).showEducationTooltip(any(), any())
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun showExitWindowingButtonTooltip_appHeaderVisible_shouldCallShowEducationTooltipThrice() =
+ testScope.runTest {
+ // After first two tooltips are dismissed, app header is visible. Should show third
+ // education tooltip.
+ showAndDismissFirstTooltip()
+ showAndDismissSecondTooltip()
+
+ // Simulate app header visible.
+ testCaptionStateFlow.value = createAppHeaderState()
+ // Wait for next tooltip to showup.
+ waitForBufferDelay()
+
+ verify(mockTooltipController, times(3)).showEducationTooltip(any(), any())
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun showExitWindowingButtonTooltip_appHeaderVisibleAfterTimeout_shouldCallShowEducationTooltipTwice() =
+ testScope.runTest {
+ // After first two tooltips are dismissed, app header is visible after timeout. Should not
+ // show third education tooltip.
+ showAndDismissFirstTooltip()
+ showAndDismissSecondTooltip()
+
+ // Wait for timeout to occur, after this timeout we should not listen for further triggers
+ // anymore.
+ advanceTimeBy(APP_HANDLE_EDUCATION_TIMEOUT_BUFFER_MILLIS)
+ runCurrent()
+ // Simulate app header visible.
+ testCaptionStateFlow.value = createAppHeaderState()
+ // Wait for next tooltip to showup.
+ waitForBufferDelay()
+
+ verify(mockTooltipController, times(2)).showEducationTooltip(any(), any())
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun showExitWindowingButtonTooltip_appHeaderVisibleTwice_shouldCallShowEducationTooltipThrice() =
+ testScope.runTest {
+ // After first two tooltips are dismissed, app header is visible twice. Should show third
+ // education tooltip only once.
+ showAndDismissFirstTooltip()
+ showAndDismissSecondTooltip()
+
+ // Simulate app header visible.
+ testCaptionStateFlow.value = createAppHeaderState()
+ // Wait for next tooltip to showup.
+ waitForBufferDelay()
+ testCaptionStateFlow.value = createAppHeaderState()
+ // Wait for next tooltip to showup.
+ waitForBufferDelay()
+
+ verify(mockTooltipController, times(3)).showEducationTooltip(any(), any())
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun showExitWindowingButtonTooltip_appHeaderExpanded_shouldCallShowEducationTooltipTwice() =
+ testScope.runTest {
+ // After first two tooltips are dismissed, app header is visible but expanded. Should not
+ // show third education tooltip.
+ showAndDismissFirstTooltip()
+ showAndDismissSecondTooltip()
+
+ // Simulate app header visible.
+ testCaptionStateFlow.value = createAppHeaderState(isHeaderMenuExpanded = true)
+ // Wait for next tooltip to showup.
+ waitForBufferDelay()
+
+ verify(mockTooltipController, times(2)).showEducationTooltip(any(), any())
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun setAppHandleEducationTooltipCallbacks_onAppHandleTooltipClicked_callbackInvoked() =
+ testScope.runTest {
+ // App handle is visible. Should show education tooltip.
+ setShouldShowAppHandleEducation(true)
+ val mockOpenHandleMenuCallback: (Int) -> Unit = mock()
+ val mockToDesktopModeCallback: (Int, DesktopModeTransitionSource) -> Unit = mock()
+ educationController.setAppHandleEducationTooltipCallbacks(
+ mockOpenHandleMenuCallback, mockToDesktopModeCallback)
+ // Simulate app handle visible.
+ testCaptionStateFlow.value = createAppHandleState()
+ // Wait for first tooltip to showup.
+ waitForBufferDelay()
+
+ verify(mockTooltipController, atLeastOnce())
+ .showEducationTooltip(educationConfigCaptor.capture(), any())
+ educationConfigCaptor.lastValue.onEducationClickAction.invoke()
+
+ verify(mockOpenHandleMenuCallback, times(1)).invoke(any())
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun setAppHandleEducationTooltipCallbacks_onWindowingImageButtonTooltipClicked_callbackInvoked() =
+ testScope.runTest {
+ // After first tooltip is dismissed, app handle is expanded. Should show second education
+ // tooltip.
+ showAndDismissFirstTooltip()
+ val mockOpenHandleMenuCallback: (Int) -> Unit = mock()
+ val mockToDesktopModeCallback: (Int, DesktopModeTransitionSource) -> Unit = mock()
+ educationController.setAppHandleEducationTooltipCallbacks(
+ mockOpenHandleMenuCallback, mockToDesktopModeCallback)
+ // Simulate app handle expanded.
+ testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = true)
+ // Wait for next tooltip to showup.
+ waitForBufferDelay()
+
+ verify(mockTooltipController, atLeastOnce())
+ .showEducationTooltip(educationConfigCaptor.capture(), any())
+ educationConfigCaptor.lastValue.onEducationClickAction.invoke()
+
+ verify(mockToDesktopModeCallback, times(1)).invoke(any(), any())
+ }
+
+ private suspend fun TestScope.showAndDismissFirstTooltip() {
+ setShouldShowAppHandleEducation(true)
+ // Simulate app handle visible.
+ testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = false)
+ // Wait for first tooltip to showup.
+ waitForBufferDelay()
+ // [shouldShowAppHandleEducation] should return false as education has been viewed
+ // before.
+ setShouldShowAppHandleEducation(false)
+ // Dismiss previous tooltip, after this we should listen for next tooltip's trigger.
+ captureAndInvokeOnDismissAction()
+ }
+
+ private fun TestScope.showAndDismissSecondTooltip() {
+ // Simulate app handle expanded.
+ testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = true)
+ // Wait for next tooltip to showup.
+ waitForBufferDelay()
+ // Dismiss previous tooltip, after this we should listen for next tooltip's trigger.
+ captureAndInvokeOnDismissAction()
+ }
+
+ private fun captureAndInvokeOnDismissAction() {
+ verify(mockTooltipController, atLeastOnce())
+ .showEducationTooltip(educationConfigCaptor.capture(), any())
+ educationConfigCaptor.lastValue.onDismissAction.invoke()
+ }
+
+ private suspend fun setShouldShowAppHandleEducation(shouldShowAppHandleEducation: Boolean) =
+ whenever(mockEducationFilter.shouldShowAppHandleEducation(any()))
+ .thenReturn(shouldShowAppHandleEducation)
+
+ /**
+ * Class under test waits for some seconds before showing education, simulate advance time before
+ * verifying or moving forward
+ */
+ private fun TestScope.waitForBufferDelay() {
+ advanceTimeBy(APP_HANDLE_EDUCATION_DELAY_BUFFER_MILLIS)
+ runCurrent()
+ }
+
+ private companion object {
+ val APP_HANDLE_EDUCATION_DELAY_BUFFER_MILLIS: Long = APP_HANDLE_EDUCATION_DELAY_MILLIS + 1000L
+ val APP_HANDLE_EDUCATION_TIMEOUT_BUFFER_MILLIS: Long =
+ APP_HANDLE_EDUCATION_TIMEOUT_MILLIS + 1000L
+ }
+}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationDatastoreRepositoryTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationDatastoreRepositoryTest.kt
index 765021fbbd3d..c2865441d7a6 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationDatastoreRepositoryTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationDatastoreRepositoryTest.kt
@@ -26,6 +26,7 @@ import androidx.test.filters.SmallTest
import androidx.test.platform.app.InstrumentationRegistry
import com.android.wm.shell.desktopmode.education.data.AppHandleEducationDatastoreRepository
import com.android.wm.shell.desktopmode.education.data.WindowingEducationProto
+import com.android.wm.shell.util.GMAIL_PACKAGE_NAME
import com.android.wm.shell.util.createWindowingEducationProto
import com.google.common.truth.Truth.assertThat
import java.io.File
@@ -108,8 +109,25 @@ class AppHandleEducationDatastoreRepositoryTest {
assertThat(result).isEqualTo(windowingEducationProto)
}
+ @Test
+ fun updateEducationViewedTimestampMillis_updatesDatastoreProto() =
+ runTest(StandardTestDispatcher()) {
+ datastoreRepository.updateEducationViewedTimestampMillis(true)
+
+ val result = testDatastore.data.first().hasEducationViewedTimestampMillis()
+ assertThat(result).isEqualTo(true)
+ }
+
+ @Test
+ fun updateFeatureUsedTimestampMillis_updatesDatastoreProto() =
+ runTest(StandardTestDispatcher()) {
+ datastoreRepository.updateFeatureUsedTimestampMillis(true)
+
+ val result = testDatastore.data.first().hasFeatureUsedTimestampMillis()
+ assertThat(result).isEqualTo(true)
+ }
+
companion object {
- private const val GMAIL_PACKAGE_NAME = "com.google.android.gm"
private const val APP_HANDLE_EDUCATION_DATASTORE_TEST_FILE = "app_handle_education_test.pb"
}
}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilterTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilterTest.kt
index c0d71c0bf5db..ac994248c962 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilterTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilterTest.kt
@@ -26,6 +26,10 @@ import androidx.test.filters.SmallTest
import com.android.wm.shell.R
import com.android.wm.shell.ShellTestCase
import com.android.wm.shell.desktopmode.education.data.AppHandleEducationDatastoreRepository
+import com.android.wm.shell.util.GMAIL_PACKAGE_NAME
+import com.android.wm.shell.util.YOUTUBE_PACKAGE_NAME
+import com.android.wm.shell.util.createAppHandleState
+import com.android.wm.shell.util.createTaskInfo
import com.android.wm.shell.util.createWindowingEducationProto
import com.google.common.truth.Truth.assertThat
import kotlin.Int.Companion.MAX_VALUE
@@ -38,6 +42,8 @@ import org.mockito.Mock
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations
+/** Tests of [AppHandleEducationFilter]
+ * Usage: atest AppHandleEducationFilterTest */
@SmallTest
@RunWith(AndroidTestingRunner::class)
class AppHandleEducationFilterTest : ShellTestCase() {
@@ -76,7 +82,7 @@ class AppHandleEducationFilterTest : ShellTestCase() {
appUsageStatsLastUpdateTimestampMillis = Long.MAX_VALUE)
`when`(datastoreRepository.windowingEducationProto()).thenReturn(windowingEducationProto)
- val result = educationFilter.shouldShowAppHandleEducation(GMAIL_PACKAGE_NAME)
+ val result = educationFilter.shouldShowAppHandleEducation(createAppHandleState())
assertThat(result).isTrue()
}
@@ -91,9 +97,11 @@ class AppHandleEducationFilterTest : ShellTestCase() {
createWindowingEducationProto(
appUsageStats = mapOf(YOUTUBE_PACKAGE_NAME to 4),
appUsageStatsLastUpdateTimestampMillis = Long.MAX_VALUE)
+ val captionState =
+ createAppHandleState(createTaskInfo(runningTaskPackageName = YOUTUBE_PACKAGE_NAME))
`when`(datastoreRepository.windowingEducationProto()).thenReturn(windowingEducationProto)
- val result = educationFilter.shouldShowAppHandleEducation(YOUTUBE_PACKAGE_NAME)
+ val result = educationFilter.shouldShowAppHandleEducation(captionState)
assertThat(result).isFalse()
}
@@ -110,7 +118,7 @@ class AppHandleEducationFilterTest : ShellTestCase() {
appUsageStatsLastUpdateTimestampMillis = Long.MAX_VALUE)
`when`(datastoreRepository.windowingEducationProto()).thenReturn(windowingEducationProto)
- val result = educationFilter.shouldShowAppHandleEducation(GMAIL_PACKAGE_NAME)
+ val result = educationFilter.shouldShowAppHandleEducation(createAppHandleState())
assertThat(result).isFalse()
}
@@ -125,7 +133,7 @@ class AppHandleEducationFilterTest : ShellTestCase() {
appUsageStatsLastUpdateTimestampMillis = Long.MAX_VALUE)
`when`(datastoreRepository.windowingEducationProto()).thenReturn(windowingEducationProto)
- val result = educationFilter.shouldShowAppHandleEducation(GMAIL_PACKAGE_NAME)
+ val result = educationFilter.shouldShowAppHandleEducation(createAppHandleState())
assertThat(result).isFalse()
}
@@ -140,7 +148,7 @@ class AppHandleEducationFilterTest : ShellTestCase() {
appUsageStatsLastUpdateTimestampMillis = Long.MAX_VALUE)
`when`(datastoreRepository.windowingEducationProto()).thenReturn(windowingEducationProto)
- val result = educationFilter.shouldShowAppHandleEducation(GMAIL_PACKAGE_NAME)
+ val result = educationFilter.shouldShowAppHandleEducation(createAppHandleState())
assertThat(result).isFalse()
}
@@ -156,7 +164,7 @@ class AppHandleEducationFilterTest : ShellTestCase() {
appUsageStatsLastUpdateTimestampMillis = Long.MAX_VALUE)
`when`(datastoreRepository.windowingEducationProto()).thenReturn(windowingEducationProto)
- val result = educationFilter.shouldShowAppHandleEducation(GMAIL_PACKAGE_NAME)
+ val result = educationFilter.shouldShowAppHandleEducation(createAppHandleState())
assertThat(result).isFalse()
}
@@ -179,15 +187,26 @@ class AppHandleEducationFilterTest : ShellTestCase() {
.thenReturn(mapOf(GMAIL_PACKAGE_NAME to UsageStats().apply { mAppLaunchCount = 2 }))
`when`(datastoreRepository.windowingEducationProto()).thenReturn(windowingEducationProto)
- val result = educationFilter.shouldShowAppHandleEducation(GMAIL_PACKAGE_NAME)
+ val result = educationFilter.shouldShowAppHandleEducation(createAppHandleState())
// Result should be false as queried usage stats should be considered to determine the result
// instead of cached stats
assertThat(result).isFalse()
}
- companion object {
- private const val GMAIL_PACKAGE_NAME = "com.google.android.gm"
- private const val YOUTUBE_PACKAGE_NAME = "com.google.android.youtube"
+ @Test
+ fun shouldShowAppHandleEducation_appHandleMenuExpanded_returnsFalse() = runTest {
+ val windowingEducationProto =
+ createWindowingEducationProto(
+ appUsageStats = mapOf(GMAIL_PACKAGE_NAME to 4),
+ appUsageStatsLastUpdateTimestampMillis = Long.MAX_VALUE)
+ // Simulate app handle menu is expanded
+ val captionState = createAppHandleState(isHandleMenuExpanded = true)
+ `when`(datastoreRepository.windowingEducationProto()).thenReturn(windowingEducationProto)
+
+ val result = educationFilter.shouldShowAppHandleEducation(captionState)
+
+ // We should not show app handle education if app menu is expanded
+ assertThat(result).isFalse()
}
}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawerTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawerTests.java
index 5f7542332c80..ce482cdd9944 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawerTests.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawerTests.java
@@ -30,7 +30,6 @@ import static com.android.wm.shell.startingsurface.SplashscreenContentDrawer.MIN
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.times;
@@ -56,12 +55,11 @@ import android.os.IBinder;
import android.os.Looper;
import android.os.UserHandle;
import android.testing.TestableContext;
-import android.view.IWindowSession;
import android.view.InsetsState;
import android.view.Surface;
import android.view.WindowManager;
-import android.view.WindowManagerGlobal;
import android.view.WindowMetrics;
+import android.window.SnapshotDrawerUtils;
import android.window.StartingWindowInfo;
import android.window.StartingWindowRemovalInfo;
import android.window.TaskSnapshot;
@@ -220,18 +218,10 @@ public class StartingSurfaceDrawerTests extends ShellTestCase {
createWindowInfo(taskId, android.R.style.Theme, mBinder);
TaskSnapshot snapshot = createTaskSnapshot(100, 100, new Point(100, 100),
new Rect(0, 0, 0, 50), true /* hasImeSurface */);
- final IWindowSession session = WindowManagerGlobal.getWindowSession();
- spyOn(session);
- doReturn(WindowManagerGlobal.ADD_OKAY).when(session).addToDisplay(
- any() /* window */, any() /* attrs */,
- anyInt() /* viewVisibility */, anyInt() /* displayId */,
- anyInt() /* requestedVisibleTypes */, any() /* outInputChannel */,
- any() /* outInsetsState */, any() /* outActiveControls */,
- any() /* outAttachedFrame */, any() /* outSizeCompatScale */);
- TaskSnapshotWindow mockSnapshotWindow = TaskSnapshotWindow.create(windowInfo,
- mBinder,
- snapshot, mTestExecutor, () -> {
- });
+ final TaskSnapshotWindow mockSnapshotWindow = new TaskSnapshotWindow(
+ snapshot, SnapshotDrawerUtils.getOrCreateTaskDescription(windowInfo.taskInfo),
+ snapshot.getOrientation(),
+ () -> {}, mTestExecutor);
spyOn(mockSnapshotWindow);
try (AutoCloseable mockTaskSnapshotSession = new AutoCloseable() {
MockitoSession mockSession = mockitoSession()
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/FocusTransitionObserverTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/FocusTransitionObserverTest.java
index d37b4cf4b4b3..d63158c29688 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/FocusTransitionObserverTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/FocusTransitionObserverTest.java
@@ -18,7 +18,7 @@ package com.android.wm.shell.transition;
import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.WindowManager.TRANSIT_OPEN;
-import static android.view.WindowManager.TRANSIT_TO_FRONT;
+import static android.window.TransitionInfo.FLAG_IS_DISPLAY;
import static android.window.TransitionInfo.FLAG_MOVED_TO_TOP;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
@@ -97,50 +97,38 @@ public class FocusTransitionObserverTest extends ShellTestCase {
}
@Test
- public void testTransitionWithMovedToFrontFlagChangesDisplayFocus() throws RemoteException {
+ public void testOnlyDisplayChangeAffectsDisplayFocus() throws RemoteException {
final IBinder binder = mock(IBinder.class);
final SurfaceControl.Transaction tx = mock(SurfaceControl.Transaction.class);
- // Open a task on the default display, which doesn't change display focus because the
- // default display already has it.
+ // Open a task on the secondary display, but it doesn't change display focus because it only
+ // has a task change.
TransitionInfo info = mock(TransitionInfo.class);
final List<TransitionInfo.Change> changes = new ArrayList<>();
- setupChange(changes, 123 /* taskId */, TRANSIT_OPEN, DEFAULT_DISPLAY,
+ setupTaskChange(changes, 123 /* taskId */, TRANSIT_OPEN, SECONDARY_DISPLAY_ID,
true /* focused */);
when(info.getChanges()).thenReturn(changes);
mFocusTransitionObserver.onTransitionReady(binder, info, tx, tx);
verify(mListener, never()).onFocusedDisplayChanged(SECONDARY_DISPLAY_ID);
clearInvocations(mListener);
- // Open a new task on the secondary display and verify display focus changes to the display.
+ // Moving the secondary display to front must change display focus to it.
changes.clear();
- setupChange(changes, 456 /* taskId */, TRANSIT_OPEN, SECONDARY_DISPLAY_ID,
- true /* focused */);
+ setupDisplayToTopChange(changes, SECONDARY_DISPLAY_ID);
when(info.getChanges()).thenReturn(changes);
mFocusTransitionObserver.onTransitionReady(binder, info, tx, tx);
- verify(mListener, times(1)).onFocusedDisplayChanged(SECONDARY_DISPLAY_ID);
- clearInvocations(mListener);
+ verify(mListener, times(1))
+ .onFocusedDisplayChanged(SECONDARY_DISPLAY_ID);
- // Open the first task to front and verify display focus goes back to the default display.
+ // Moving the secondary display to front must change display focus back to it.
changes.clear();
- setupChange(changes, 123 /* taskId */, TRANSIT_TO_FRONT, DEFAULT_DISPLAY,
- true /* focused */);
+ setupDisplayToTopChange(changes, DEFAULT_DISPLAY);
when(info.getChanges()).thenReturn(changes);
mFocusTransitionObserver.onTransitionReady(binder, info, tx, tx);
verify(mListener, times(1)).onFocusedDisplayChanged(DEFAULT_DISPLAY);
- clearInvocations(mListener);
-
- // Open another task on the default display and verify no display focus switch as it's
- // already on the default display.
- changes.clear();
- setupChange(changes, 789 /* taskId */, TRANSIT_OPEN, DEFAULT_DISPLAY,
- true /* focused */);
- when(info.getChanges()).thenReturn(changes);
- mFocusTransitionObserver.onTransitionReady(binder, info, tx, tx);
- verify(mListener, never()).onFocusedDisplayChanged(DEFAULT_DISPLAY);
}
- private void setupChange(List<TransitionInfo.Change> changes, int taskId,
+ private void setupTaskChange(List<TransitionInfo.Change> changes, int taskId,
@TransitionMode int mode, int displayId, boolean focused) {
TransitionInfo.Change change = mock(TransitionInfo.Change.class);
RunningTaskInfo taskInfo = mock(RunningTaskInfo.class);
@@ -152,4 +140,12 @@ public class FocusTransitionObserverTest extends ShellTestCase {
when(change.getMode()).thenReturn(mode);
changes.add(change);
}
+
+ private void setupDisplayToTopChange(List<TransitionInfo.Change> changes, int displayId) {
+ TransitionInfo.Change change = mock(TransitionInfo.Change.class);
+ when(change.hasFlags(FLAG_MOVED_TO_TOP)).thenReturn(true);
+ when(change.hasFlags(FLAG_IS_DISPLAY)).thenReturn(true);
+ when(change.getEndDisplayId()).thenReturn(displayId);
+ changes.add(change);
+ }
}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/util/WindowingEducationProtoUtils.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/util/WindowingEducationTestUtils.kt
index def4b916a5f7..708fadb7fbe2 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/util/WindowingEducationProtoUtils.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/util/WindowingEducationTestUtils.kt
@@ -16,9 +16,58 @@
package com.android.wm.shell.util
+import android.app.ActivityManager.RunningTaskInfo
+import android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED
+import android.content.pm.ActivityInfo
+import android.graphics.Rect
+import com.android.wm.shell.desktopmode.CaptionState
import com.android.wm.shell.desktopmode.education.data.WindowingEducationProto
/**
+ * Create an instance of [CaptionState.AppHandle] with parameters as properties.
+ *
+ * Any fields without corresponding parameters will retain their default values.
+ */
+fun createAppHandleState(
+ runningTaskInfo: RunningTaskInfo = createTaskInfo(),
+ isHandleMenuExpanded: Boolean = false,
+ globalAppHandleBounds: Rect = Rect(),
+): CaptionState.AppHandle =
+ CaptionState.AppHandle(
+ runningTaskInfo = runningTaskInfo,
+ isHandleMenuExpanded = isHandleMenuExpanded,
+ globalAppHandleBounds = globalAppHandleBounds)
+
+/**
+ * Create an instance of [CaptionState.AppHeader] with parameters as properties.
+ *
+ * Any fields without corresponding parameters will retain their default values.
+ */
+fun createAppHeaderState(
+ runningTaskInfo: RunningTaskInfo = createTaskInfo(),
+ isHeaderMenuExpanded: Boolean = false,
+ globalAppChipBounds: Rect = Rect(),
+): CaptionState.AppHeader =
+ CaptionState.AppHeader(
+ runningTaskInfo = runningTaskInfo,
+ isHeaderMenuExpanded = isHeaderMenuExpanded,
+ globalAppChipBounds = globalAppChipBounds)
+
+/**
+ * Create an instance of [RunningTaskInfo] with parameters as properties.
+ *
+ * Any fields without corresponding parameters will retain their default values.
+ */
+fun createTaskInfo(
+ deviceWindowingMode: Int = WINDOWING_MODE_UNDEFINED,
+ runningTaskPackageName: String = GMAIL_PACKAGE_NAME,
+): RunningTaskInfo =
+ RunningTaskInfo().apply {
+ configuration.windowConfiguration.windowingMode = deviceWindowingMode
+ topActivityInfo = ActivityInfo().apply { packageName = runningTaskPackageName }
+ }
+
+/**
* Constructs a [WindowingEducationProto] object, populating its fields with the provided
* parameters.
*
@@ -61,3 +110,7 @@ fun createAppHandleEducationProto(
}
}
.build()
+
+const val GMAIL_PACKAGE_NAME = "com.google.android.gm"
+const val YOUTUBE_PACKAGE_NAME = "com.google.android.youtube"
+const val LAUNCHER_PACKAGE_NAME = "com.google.android.apps.nexuslauncher"
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/CaptionWindowDecorationTests.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/CaptionWindowDecorationTests.kt
index d141c2d771ce..0f16b9d0fa7e 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/CaptionWindowDecorationTests.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/CaptionWindowDecorationTests.kt
@@ -47,6 +47,8 @@ class CaptionWindowDecorationTests : ShellTestCase() {
taskInfo,
true,
false,
+ true /* isStatusBarVisible */,
+ false /* isKeyguardVisibleAndOccluded */,
InsetsState()
)
@@ -66,6 +68,8 @@ class CaptionWindowDecorationTests : ShellTestCase() {
taskInfo,
true,
false,
+ true /* isStatusBarVisible */,
+ false /* isKeyguardVisibleAndOccluded */,
InsetsState()
)
@@ -81,6 +85,8 @@ class CaptionWindowDecorationTests : ShellTestCase() {
taskInfo,
true,
false,
+ true /* isStatusBarVisible */,
+ false /* isKeyguardVisibleAndOccluded */,
InsetsState()
)
Truth.assertThat(relayoutParams.mOccludingCaptionElements.size).isEqualTo(2)
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt
index 3051714b5ae8..5ae4ca839d61 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt
@@ -27,6 +27,7 @@ import android.app.WindowConfiguration.WindowingMode
import android.content.ComponentName
import android.content.Context
import android.content.Intent
+import android.content.Intent.ACTION_MAIN
import android.content.pm.ActivityInfo
import android.graphics.Rect
import android.hardware.display.DisplayManager
@@ -64,6 +65,7 @@ import android.widget.Toast
import android.window.WindowContainerTransaction
import android.window.WindowContainerTransaction.HierarchyOp
import androidx.test.filters.SmallTest
+import com.android.dx.mockito.inline.extended.ExtendedMockito.anyBoolean
import com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn
import com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession
import com.android.dx.mockito.inline.extended.StaticMockitoSession
@@ -85,10 +87,12 @@ import com.android.wm.shell.common.MultiInstanceHelper
import com.android.wm.shell.common.ShellExecutor
import com.android.wm.shell.common.SyncTransactionQueue
import com.android.wm.shell.desktopmode.DesktopActivityOrientationChangeHandler
+import com.android.wm.shell.desktopmode.DesktopModeTaskRepository
import com.android.wm.shell.desktopmode.DesktopTasksController
import com.android.wm.shell.desktopmode.DesktopTasksController.SnapPosition
import com.android.wm.shell.desktopmode.DesktopTasksLimiter
import com.android.wm.shell.desktopmode.WindowDecorCaptionHandleRepository
+import com.android.wm.shell.desktopmode.education.AppHandleEducationController
import com.android.wm.shell.freeform.FreeformTaskTransitionStarter
import com.android.wm.shell.shared.desktopmode.DesktopModeStatus
import com.android.wm.shell.shared.desktopmode.DesktopModeTransitionSource
@@ -105,6 +109,7 @@ import java.util.function.Consumer
import java.util.function.Supplier
import junit.framework.Assert.assertFalse
import junit.framework.Assert.assertTrue
+import kotlinx.coroutines.ExperimentalCoroutinesApi
import org.junit.After
import org.junit.Assert.assertEquals
import org.junit.Before
@@ -136,6 +141,7 @@ import org.mockito.quality.Strictness
* Tests of [DesktopModeWindowDecorViewModel]
* Usage: atest WMShellUnitTests:DesktopModeWindowDecorViewModelTests
*/
+@OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class)
@SmallTest
@RunWith(AndroidTestingRunner::class)
@RunWithLooper
@@ -155,6 +161,7 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() {
@Mock private lateinit var mockTaskOrganizer: ShellTaskOrganizer
@Mock private lateinit var mockDisplayController: DisplayController
@Mock private lateinit var mockSplitScreenController: SplitScreenController
+ @Mock private lateinit var mockDesktopRepository: DesktopModeTaskRepository
@Mock private lateinit var mockDisplayLayout: DisplayLayout
@Mock private lateinit var displayInsetsController: DisplayInsetsController
@Mock private lateinit var mockSyncQueue: SyncTransactionQueue
@@ -184,6 +191,7 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() {
@Mock private lateinit var mockTaskPositionerFactory:
DesktopModeWindowDecorViewModel.TaskPositionerFactory
@Mock private lateinit var mockTaskPositioner: TaskPositioner
+ @Mock private lateinit var mockAppHandleEducationController: AppHandleEducationController
@Mock private lateinit var mockCaptionHandleRepository: WindowDecorCaptionHandleRepository
private lateinit var spyContext: TestableContext
@@ -225,6 +233,7 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() {
mockShellCommandHandler,
mockWindowManager,
mockTaskOrganizer,
+ mockDesktopRepository,
mockDisplayController,
mockShellController,
displayInsetsController,
@@ -242,6 +251,7 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() {
windowDecorByTaskIdSpy,
mockInteractionJankMonitor,
Optional.of(mockTasksLimiter),
+ mockAppHandleEducationController,
mockCaptionHandleRepository,
Optional.of(mockActivityOrientationChangeHandler),
mockTaskPositionerFactory
@@ -924,13 +934,13 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() {
@Test
fun testDecor_onClickToOpenBrowser_closeMenus() {
val openInBrowserListenerCaptor = forClass(Consumer::class.java)
- as ArgumentCaptor<Consumer<Uri>>
+ as ArgumentCaptor<Consumer<Intent>>
val decor = createOpenTaskDecoration(
windowingMode = WINDOWING_MODE_FULLSCREEN,
onOpenInBrowserClickListener = openInBrowserListenerCaptor
)
- openInBrowserListenerCaptor.value.accept(Uri.EMPTY)
+ openInBrowserListenerCaptor.value.accept(Intent())
verify(decor).closeHandleMenu()
verify(decor).closeMaximizeMenu()
@@ -940,23 +950,99 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() {
fun testDecor_onClickToOpenBrowser_opensBrowser() {
doNothing().whenever(spyContext).startActivity(any())
val uri = Uri.parse("https://www.google.com")
+ val intent = Intent(ACTION_MAIN, uri)
val openInBrowserListenerCaptor = forClass(Consumer::class.java)
- as ArgumentCaptor<Consumer<Uri>>
+ as ArgumentCaptor<Consumer<Intent>>
createOpenTaskDecoration(
windowingMode = WINDOWING_MODE_FULLSCREEN,
onOpenInBrowserClickListener = openInBrowserListenerCaptor
)
- openInBrowserListenerCaptor.value.accept(uri)
+ openInBrowserListenerCaptor.value.accept(intent)
verify(spyContext).startActivityAsUser(argThat { intent ->
- intent.data == uri
- && ((intent.flags and Intent.FLAG_ACTIVITY_NEW_TASK) != 0)
- && intent.categories.contains(Intent.CATEGORY_LAUNCHER)
- && intent.action == Intent.ACTION_MAIN
+ uri.equals(intent.data)
+ && intent.action == ACTION_MAIN
}, eq(mockUserHandle))
}
+ @OptIn(ExperimentalCoroutinesApi::class)
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun testDecor_createWindowDecoration_setsAppHandleEducationTooltipClickCallbacks() {
+ whenever(DesktopModeStatus.canEnterDesktopMode(any())).thenReturn(true)
+
+ shellInit.init()
+
+ verify(
+ mockAppHandleEducationController,
+ times(1)
+ ).setAppHandleEducationTooltipCallbacks(any(), any())
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun testDecor_invokeOpenHandleMenuCallback_openHandleMenu() {
+ whenever(DesktopModeStatus.canEnterDesktopMode(any())).thenReturn(true)
+ val task = createTask(windowingMode = WINDOWING_MODE_FREEFORM)
+ val decor = setUpMockDecorationForTask(task)
+ val openHandleMenuCallbackCaptor = argumentCaptor<(Int) -> Unit>()
+ // Set task as gmail
+ val gmailPackageName = "com.google.android.gm"
+ val baseComponent = ComponentName(gmailPackageName, /* class */ "")
+ task.baseActivity = baseComponent
+
+ onTaskOpening(task)
+ verify(
+ mockAppHandleEducationController,
+ times(1)
+ ).setAppHandleEducationTooltipCallbacks(openHandleMenuCallbackCaptor.capture(), any())
+ openHandleMenuCallbackCaptor.lastValue.invoke(task.taskId)
+
+ verify(decor, times(1)).createHandleMenu(anyBoolean())
+ }
+
+ @Test
+ @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun testDecor_openTaskWithFlagDisabled_doNotOpenHandleMenu() {
+ whenever(DesktopModeStatus.canEnterDesktopMode(any())).thenReturn(true)
+ val task = createTask(windowingMode = WINDOWING_MODE_FREEFORM)
+ setUpMockDecorationForTask(task)
+ val openHandleMenuCallbackCaptor = argumentCaptor<(Int) -> Unit>()
+ // Set task as gmail
+ val gmailPackageName = "com.google.android.gm"
+ val baseComponent = ComponentName(gmailPackageName, /* class */ "")
+ task.baseActivity = baseComponent
+
+ onTaskOpening(task)
+ verify(
+ mockAppHandleEducationController,
+ never()
+ ).setAppHandleEducationTooltipCallbacks(openHandleMenuCallbackCaptor.capture(), any())
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION)
+ fun testDecor_invokeOnToDesktopCallback_setsAppHandleEducationTooltipClickCallbacks() {
+ whenever(DesktopModeStatus.canEnterDesktopMode(any())).thenReturn(true)
+ val task = createTask(windowingMode = WINDOWING_MODE_FREEFORM)
+ setUpMockDecorationsForTasks(task)
+ onTaskOpening(task)
+ val onToDesktopCallbackCaptor = argumentCaptor<(Int, DesktopModeTransitionSource) -> Unit>()
+
+ verify(
+ mockAppHandleEducationController,
+ times(1)
+ ).setAppHandleEducationTooltipCallbacks(any(), onToDesktopCallbackCaptor.capture())
+ onToDesktopCallbackCaptor.lastValue.invoke(
+ task.taskId,
+ DesktopModeTransitionSource.APP_HANDLE_MENU_BUTTON
+ )
+
+ verify(mockDesktopTasksController, times(1))
+ .moveTaskToDesktop(any(), any(), any())
+ }
+
@Test
fun testOnDisplayRotation_tasksOutOfValidArea_taskBoundsUpdated() {
val task = createTask(focused = true, windowingMode = WINDOWING_MODE_FREEFORM)
@@ -1150,8 +1236,8 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() {
forClass(Function0::class.java) as ArgumentCaptor<Function0<Unit>>,
onToSplitScreenClickListenerCaptor: ArgumentCaptor<Function0<Unit>> =
forClass(Function0::class.java) as ArgumentCaptor<Function0<Unit>>,
- onOpenInBrowserClickListener: ArgumentCaptor<Consumer<Uri>> =
- forClass(Consumer::class.java) as ArgumentCaptor<Consumer<Uri>>,
+ onOpenInBrowserClickListener: ArgumentCaptor<Consumer<Intent>> =
+ forClass(Consumer::class.java) as ArgumentCaptor<Consumer<Intent>>,
onCaptionButtonClickListener: ArgumentCaptor<View.OnClickListener> =
forClass(View.OnClickListener::class.java) as ArgumentCaptor<View.OnClickListener>,
onCaptionButtonTouchListener: ArgumentCaptor<View.OnTouchListener> =
@@ -1213,8 +1299,8 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() {
val decoration = mock(DesktopModeWindowDecoration::class.java)
whenever(
mockDesktopModeWindowDecorFactory.create(
- any(), any(), any(), any(), any(), eq(task), any(), any(), any(), any(), any(),
- any(), any(), any(), any(), any(), any())
+ any(), any(), any(), any(), any(), any(), eq(task), any(), any(), any(), any(),
+ any(), any(), any(), any(), any(), any(), any())
).thenReturn(decoration)
decoration.mTaskInfo = task
whenever(decoration.isFocused).thenReturn(task.isFocused)
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java
index f007115c6dab..3e7f3bdd72a2 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java
@@ -23,6 +23,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;
import static android.view.InsetsSource.FLAG_FORCE_CONSUMING;
import static android.view.InsetsSource.FLAG_FORCE_CONSUMING_OPAQUE_CAPTION_BAR;
+import static android.view.WindowInsets.Type.captionBar;
import static android.view.WindowInsets.Type.statusBars;
import static android.view.WindowInsetsController.APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND;
@@ -37,6 +38,7 @@ import static junit.framework.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt;
@@ -53,9 +55,11 @@ import android.app.ActivityManager;
import android.app.assist.AssistContent;
import android.content.ComponentName;
import android.content.Context;
+import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.PointF;
@@ -102,6 +106,7 @@ import com.android.wm.shell.common.MultiInstanceHelper;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.SyncTransactionQueue;
import com.android.wm.shell.desktopmode.CaptionState;
+import com.android.wm.shell.desktopmode.DesktopModeTaskRepository;
import com.android.wm.shell.desktopmode.WindowDecorCaptionHandleRepository;
import com.android.wm.shell.shared.desktopmode.DesktopModeStatus;
import com.android.wm.shell.splitscreen.SplitScreenController;
@@ -124,6 +129,7 @@ import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.quality.Strictness;
+import java.util.List;
import java.util.function.Consumer;
import java.util.function.Supplier;
@@ -157,6 +163,8 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
@Mock
private ShellTaskOrganizer mMockShellTaskOrganizer;
@Mock
+ private DesktopModeTaskRepository mMockDesktopRepository;
+ @Mock
private Choreographer mMockChoreographer;
@Mock
private SyncTransactionQueue mMockSyncQueue;
@@ -187,7 +195,7 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
@Mock
private Handler mMockHandler;
@Mock
- private Consumer<Uri> mMockOpenInBrowserClickListener;
+ private Consumer<Intent> mMockOpenInBrowserClickListener;
@Mock
private AppToWebGenericLinksParser mMockGenericLinksParser;
@Mock
@@ -242,9 +250,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
when(mMockMultiInstanceHelper.supportsMultiInstanceSplit(any()))
.thenReturn(false);
when(mMockPackageManager.getApplicationLabel(any())).thenReturn("applicationLabel");
- final ActivityInfo activityInfo = new ActivityInfo();
- activityInfo.applicationInfo = new ApplicationInfo();
+ final ActivityInfo activityInfo = createActivityInfo();
when(mMockPackageManager.getActivityInfo(any(), anyInt())).thenReturn(activityInfo);
+ final ResolveInfo resolveInfo = new ResolveInfo();
+ resolveInfo.activityInfo = activityInfo;
+ when(mMockPackageManager.resolveActivity(any(), anyInt())).thenReturn(resolveInfo);
final Display defaultDisplay = mock(Display.class);
doReturn(defaultDisplay).when(mMockDisplayController).getDisplay(Display.DEFAULT_DISPLAY);
doReturn(mInsetsState).when(mMockDisplayController).getInsetsState(anyInt());
@@ -284,7 +294,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
DesktopModeWindowDecoration.updateRelayoutParams(
relayoutParams, mContext, taskInfo, /* applyStartTransactionOnDraw= */ true,
- /* shouldSetTaskPositionAndCrop */ false);
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
assertThat(relayoutParams.mShadowRadiusId).isNotEqualTo(Resources.ID_NULL);
}
@@ -300,7 +314,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
mTestableContext,
taskInfo,
/* applyStartTransactionOnDraw= */ true,
- /* shouldSetTaskPositionAndCrop */ false);
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
assertThat(relayoutParams.mCornerRadius).isGreaterThan(0);
}
@@ -321,7 +339,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
mTestableContext,
taskInfo,
/* applyStartTransactionOnDraw= */ true,
- /* shouldSetTaskPositionAndCrop */ false);
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
assertThat(relayoutParams.mWindowDecorConfig.densityDpi).isEqualTo(customTaskDensity);
}
@@ -343,7 +365,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
mTestableContext,
taskInfo,
/* applyStartTransactionOnDraw= */ true,
- /* shouldSetTaskPositionAndCrop */ false);
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
assertThat(relayoutParams.mWindowDecorConfig.densityDpi).isEqualTo(systemDensity);
}
@@ -361,7 +387,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
mTestableContext,
taskInfo,
/* applyStartTransactionOnDraw= */ true,
- /* shouldSetTaskPositionAndCrop */ false);
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
assertThat(relayoutParams.hasInputFeatureSpy()).isTrue();
}
@@ -378,7 +408,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
mTestableContext,
taskInfo,
/* applyStartTransactionOnDraw= */ true,
- /* shouldSetTaskPositionAndCrop */ false);
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
assertThat(relayoutParams.hasInputFeatureSpy()).isFalse();
}
@@ -394,7 +428,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
mTestableContext,
taskInfo,
/* applyStartTransactionOnDraw= */ true,
- /* shouldSetTaskPositionAndCrop */ false);
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
assertThat(relayoutParams.hasInputFeatureSpy()).isFalse();
}
@@ -410,7 +448,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
mTestableContext,
taskInfo,
/* applyStartTransactionOnDraw= */ true,
- /* shouldSetTaskPositionAndCrop */ false);
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
assertThat(hasNoInputChannelFeature(relayoutParams)).isFalse();
}
@@ -427,7 +469,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
mTestableContext,
taskInfo,
/* applyStartTransactionOnDraw= */ true,
- /* shouldSetTaskPositionAndCrop */ false);
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
assertThat(hasNoInputChannelFeature(relayoutParams)).isTrue();
}
@@ -444,7 +490,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
mTestableContext,
taskInfo,
/* applyStartTransactionOnDraw= */ true,
- /* shouldSetTaskPositionAndCrop */ false);
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
assertThat(hasNoInputChannelFeature(relayoutParams)).isTrue();
}
@@ -462,7 +512,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
mTestableContext,
taskInfo,
/* applyStartTransactionOnDraw= */ true,
- /* shouldSetTaskPositionAndCrop */ false);
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
assertThat((relayoutParams.mInsetSourceFlags & FLAG_FORCE_CONSUMING) != 0).isTrue();
}
@@ -481,7 +535,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
mTestableContext,
taskInfo,
/* applyStartTransactionOnDraw= */ true,
- /* shouldSetTaskPositionAndCrop */ false);
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
assertThat((relayoutParams.mInsetSourceFlags & FLAG_FORCE_CONSUMING) == 0).isTrue();
}
@@ -498,7 +556,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
mTestableContext,
taskInfo,
/* applyStartTransactionOnDraw= */ true,
- /* shouldSetTaskPositionAndCrop */ false);
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
assertThat(
(relayoutParams.mInsetSourceFlags & FLAG_FORCE_CONSUMING_OPAQUE_CAPTION_BAR) != 0)
@@ -517,7 +579,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
mTestableContext,
taskInfo,
/* applyStartTransactionOnDraw= */ true,
- /* shouldSetTaskPositionAndCrop */ false);
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
assertThat(
(relayoutParams.mInsetSourceFlags & FLAG_FORCE_CONSUMING_OPAQUE_CAPTION_BAR) == 0)
@@ -525,6 +591,171 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
}
@Test
+ @EnableFlags(Flags.FLAG_ENABLE_FULLY_IMMERSIVE_IN_DESKTOP)
+ public void updateRelayoutParams_header_addsPaddingInFullImmersive() {
+ final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true);
+ taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FREEFORM);
+ taskInfo.configuration.windowConfiguration.setBounds(new Rect(0, 0, 1000, 2000));
+ final InsetsState insetsState = createInsetsState(List.of(
+ createInsetsSource(
+ 0 /* id */, statusBars(), true /* visible */, new Rect(0, 0, 1000, 50)),
+ createInsetsSource(
+ 1 /* id */, captionBar(), true /* visible */, new Rect(0, 0, 1000, 100))));
+ final RelayoutParams relayoutParams = new RelayoutParams();
+
+ DesktopModeWindowDecoration.updateRelayoutParams(
+ relayoutParams,
+ mTestableContext,
+ taskInfo,
+ /* applyStartTransactionOnDraw= */ true,
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ true,
+ insetsState);
+
+ // Takes status bar inset as padding, ignores caption bar inset.
+ assertThat(relayoutParams.mCaptionTopPadding).isEqualTo(50);
+ }
+
+ @Test
+ @DisableFlags(Flags.FLAG_ENABLE_FULLY_IMMERSIVE_IN_DESKTOP)
+ public void updateRelayoutParams_header_statusBarInvisible_captionVisible() {
+ final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true);
+ taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FREEFORM);
+ final RelayoutParams relayoutParams = new RelayoutParams();
+
+ DesktopModeWindowDecoration.updateRelayoutParams(
+ relayoutParams,
+ mTestableContext,
+ taskInfo,
+ /* applyStartTransactionOnDraw= */ true,
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ false,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
+
+ // Header is always shown because it's assumed the status bar is always visible.
+ assertThat(relayoutParams.mIsCaptionVisible).isTrue();
+ }
+
+ @Test
+ public void updateRelayoutParams_handle_statusBarVisibleAndNotOverKeyguard_captionVisible() {
+ final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true);
+ taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
+ final RelayoutParams relayoutParams = new RelayoutParams();
+
+ DesktopModeWindowDecoration.updateRelayoutParams(
+ relayoutParams,
+ mTestableContext,
+ taskInfo,
+ /* applyStartTransactionOnDraw= */ true,
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
+
+ assertThat(relayoutParams.mIsCaptionVisible).isTrue();
+ }
+
+ @Test
+ public void updateRelayoutParams_handle_statusBarInvisible_captionNotVisible() {
+ final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true);
+ taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
+ final RelayoutParams relayoutParams = new RelayoutParams();
+
+ DesktopModeWindowDecoration.updateRelayoutParams(
+ relayoutParams,
+ mTestableContext,
+ taskInfo,
+ /* applyStartTransactionOnDraw= */ true,
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ false,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
+
+ assertThat(relayoutParams.mIsCaptionVisible).isFalse();
+ }
+
+ @Test
+ public void updateRelayoutParams_handle_overKeyguard_captionNotVisible() {
+ final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true);
+ taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
+ final RelayoutParams relayoutParams = new RelayoutParams();
+
+ DesktopModeWindowDecoration.updateRelayoutParams(
+ relayoutParams,
+ mTestableContext,
+ taskInfo,
+ /* applyStartTransactionOnDraw= */ true,
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ true,
+ /* inFullImmersiveMode */ false,
+ new InsetsState());
+
+ assertThat(relayoutParams.mIsCaptionVisible).isFalse();
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_FULLY_IMMERSIVE_IN_DESKTOP)
+ public void updateRelayoutParams_header_fullyImmersive_captionVisFollowsStatusBar() {
+ final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true);
+ taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FREEFORM);
+ final RelayoutParams relayoutParams = new RelayoutParams();
+
+ DesktopModeWindowDecoration.updateRelayoutParams(
+ relayoutParams,
+ mTestableContext,
+ taskInfo,
+ /* applyStartTransactionOnDraw= */ true,
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ true,
+ new InsetsState());
+
+ assertThat(relayoutParams.mIsCaptionVisible).isTrue();
+
+ DesktopModeWindowDecoration.updateRelayoutParams(
+ relayoutParams,
+ mTestableContext,
+ taskInfo,
+ /* applyStartTransactionOnDraw= */ true,
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ false,
+ /* isKeyguardVisibleAndOccluded */ false,
+ /* inFullImmersiveMode */ true,
+ new InsetsState());
+
+ assertThat(relayoutParams.mIsCaptionVisible).isFalse();
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_FULLY_IMMERSIVE_IN_DESKTOP)
+ public void updateRelayoutParams_header_fullyImmersive_overKeyguard_captionNotVisible() {
+ final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true);
+ taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FREEFORM);
+ final RelayoutParams relayoutParams = new RelayoutParams();
+
+ DesktopModeWindowDecoration.updateRelayoutParams(
+ relayoutParams,
+ mTestableContext,
+ taskInfo,
+ /* applyStartTransactionOnDraw= */ true,
+ /* shouldSetTaskPositionAndCrop */ false,
+ /* isStatusBarVisible */ true,
+ /* isKeyguardVisibleAndOccluded */ true,
+ /* inFullImmersiveMode */ true,
+ new InsetsState());
+
+ assertThat(relayoutParams.mIsCaptionVisible).isFalse();
+ }
+
+ @Test
public void relayout_fullscreenTask_appliesTransactionImmediately() {
final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true);
final DesktopModeWindowDecoration spyWindowDecor = spy(createWindowDecoration(taskInfo));
@@ -771,7 +1002,6 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
// Verify handle menu's browser link is set to captured link since menu was opened before
// captured link expired
- createHandleMenu(decor);
verifyHandleMenuCreated(TEST_URI1);
}
@@ -782,7 +1012,7 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
final DesktopModeWindowDecoration decor = createWindowDecoration(
taskInfo, TEST_URI1 /* captured link */, null /* web uri */,
null /* generic link */);
- final ArgumentCaptor<Function1<Uri, Unit>> openInBrowserCaptor =
+ final ArgumentCaptor<Function1<Intent, Unit>> openInBrowserCaptor =
ArgumentCaptor.forClass(Function1.class);
// Simulate menu opening and clicking open in browser button
@@ -797,7 +1027,7 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
any(),
any()
);
- openInBrowserCaptor.getValue().invoke(TEST_URI1);
+ openInBrowserCaptor.getValue().invoke(new Intent(Intent.ACTION_MAIN, TEST_URI1));
// Verify handle menu's browser link not set to captured link since link not valid after
// open in browser clicked
@@ -812,7 +1042,7 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
final DesktopModeWindowDecoration decor = createWindowDecoration(
taskInfo, TEST_URI1 /* captured link */, null /* web uri */,
null /* generic link */);
- final ArgumentCaptor<Function1<Uri, Unit>> openInBrowserCaptor =
+ final ArgumentCaptor<Function1<Intent, Unit>> openInBrowserCaptor =
ArgumentCaptor.forClass(Function1.class);
createHandleMenu(decor);
verify(mMockHandleMenu).show(
@@ -826,9 +1056,10 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
any()
);
- openInBrowserCaptor.getValue().invoke(TEST_URI1);
+ openInBrowserCaptor.getValue().invoke(new Intent(Intent.ACTION_MAIN, TEST_URI1));
- verify(mMockOpenInBrowserClickListener).accept(TEST_URI1);
+ verify(mMockOpenInBrowserClickListener).accept(
+ argThat(intent -> intent.getData() == TEST_URI1));
}
@Test
@@ -1021,8 +1252,9 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
private void verifyHandleMenuCreated(@Nullable Uri uri) {
verify(mMockHandleMenuFactory).create(any(), any(), anyInt(), any(), any(),
- any(), anyBoolean(), anyBoolean(), anyBoolean(), eq(uri), anyInt(),
- anyInt(), anyInt());
+ any(), anyBoolean(), anyBoolean(), anyBoolean(),
+ argThat(intent -> (uri == null && intent == null) || intent.getData().equals(uri)),
+ anyInt(), anyInt(), anyInt());
}
private void createMaximizeMenu(DesktopModeWindowDecoration decoration, MaximizeMenu menu) {
@@ -1086,9 +1318,9 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
boolean relayout) {
final DesktopModeWindowDecoration windowDecor = new DesktopModeWindowDecoration(mContext,
mContext, mMockDisplayController, mMockSplitScreenController,
- mMockShellTaskOrganizer, taskInfo, mMockSurfaceControl, mMockHandler, mBgExecutor,
- mMockChoreographer, mMockSyncQueue, mMockAppHeaderViewHolderFactory,
- mMockRootTaskDisplayAreaOrganizer,
+ mMockDesktopRepository, mMockShellTaskOrganizer, taskInfo, mMockSurfaceControl,
+ mMockHandler, mBgExecutor, mMockChoreographer, mMockSyncQueue,
+ mMockAppHeaderViewHolderFactory, mMockRootTaskDisplayAreaOrganizer,
mMockGenericLinksParser, mMockAssistContentRequester, SurfaceControl.Builder::new,
mMockTransactionSupplier, WindowContainerTransaction::new, SurfaceControl::new,
new WindowManagerWrapper(mMockWindowManager), mMockSurfaceControlViewHostFactory,
@@ -1128,19 +1360,39 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase {
decor.onAssistContentReceived(mAssistContent);
}
+ private static ActivityInfo createActivityInfo() {
+ final ApplicationInfo applicationInfo = new ApplicationInfo();
+ applicationInfo.packageName = "DesktopModeWindowDecorationTestPackage";
+ final ActivityInfo activityInfo = new ActivityInfo();
+ activityInfo.applicationInfo = applicationInfo;
+ activityInfo.name = "DesktopModeWindowDecorationTest";
+ return activityInfo;
+ }
+
private static boolean hasNoInputChannelFeature(RelayoutParams params) {
return (params.mInputFeatures & WindowManager.LayoutParams.INPUT_FEATURE_NO_INPUT_CHANNEL)
!= 0;
}
- private InsetsState createInsetsState(@WindowInsets.Type.InsetsType int type, boolean visible) {
- final InsetsState state = new InsetsState();
- final InsetsSource source = new InsetsSource(/* id= */0, type);
+ private InsetsSource createInsetsSource(int id, @WindowInsets.Type.InsetsType int type,
+ boolean visible, @NonNull Rect frame) {
+ final InsetsSource source = new InsetsSource(id, type);
source.setVisible(visible);
- state.addSource(source);
+ source.setFrame(frame);
+ return source;
+ }
+
+ private InsetsState createInsetsState(@NonNull List<InsetsSource> sources) {
+ final InsetsState state = new InsetsState();
+ sources.forEach(state::addSource);
return state;
}
+ private InsetsState createInsetsState(@WindowInsets.Type.InsetsType int type, boolean visible) {
+ final InsetsSource source = createInsetsSource(0 /* id */, type, visible, new Rect());
+ return createInsetsState(List.of(source));
+ }
+
private static class TestTouchEventListener extends GestureDetector.SimpleOnGestureListener
implements View.OnClickListener, View.OnTouchListener, View.OnLongClickListener,
View.OnGenericMotionListener, DragDetector.MotionEventHandler {
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java
index 2e117ac9f865..94cabc492277 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java
@@ -47,6 +47,7 @@ import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.same;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -246,6 +247,7 @@ public class WindowDecorationTests extends ShellTestCase {
// Density is 2. Shadow radius is 10px. Caption height is 64px.
taskInfo.configuration.densityDpi = DisplayMetrics.DENSITY_DEFAULT * 2;
final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo);
+ mRelayoutParams.mIsCaptionVisible = true;
windowDecor.relayout(taskInfo);
@@ -319,6 +321,7 @@ public class WindowDecorationTests extends ShellTestCase {
taskInfo.configuration.densityDpi = DisplayMetrics.DENSITY_DEFAULT * 2;
final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo);
+ mRelayoutParams.mIsCaptionVisible = true;
windowDecor.relayout(taskInfo);
@@ -571,11 +574,7 @@ public class WindowDecorationTests extends ShellTestCase {
.build();
final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo);
- assertTrue(mInsetsState.getOrCreateSource(STATUS_BAR_INSET_SOURCE_ID, statusBars())
- .isVisible());
- assertTrue(mInsetsState.sourceSize() == 1);
- assertTrue(mInsetsState.sourceAt(0).getType() == statusBars());
-
+ mRelayoutParams.mIsCaptionVisible = true;
windowDecor.relayout(taskInfo);
verify(mMockWindowContainerTransaction).addInsetsSource(eq(taskInfo.token), any(),
@@ -623,33 +622,6 @@ public class WindowDecorationTests extends ShellTestCase {
}
@Test
- public void testRelayout_captionHidden_insetsRemoved() {
- final Display defaultDisplay = mock(Display.class);
- doReturn(defaultDisplay).when(mMockDisplayController)
- .getDisplay(Display.DEFAULT_DISPLAY);
-
- final ActivityManager.RunningTaskInfo taskInfo = new TestRunningTaskInfoBuilder()
- .setDisplayId(Display.DEFAULT_DISPLAY)
- .setVisible(true)
- .setBounds(new Rect(0, 0, 1000, 1000))
- .build();
- taskInfo.isFocused = true;
- // Caption visible at first.
- when(mMockDisplayController.getInsetsState(taskInfo.displayId))
- .thenReturn(createInsetsState(statusBars(), true /* visible */));
- final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo);
- windowDecor.relayout(taskInfo);
-
- // Hide caption so insets are removed.
- windowDecor.onInsetsStateChanged(createInsetsState(statusBars(), false /* visible */));
-
- verify(mMockWindowContainerTransaction).removeInsetsSource(eq(taskInfo.token), any(),
- eq(0) /* index */, eq(captionBar()));
- verify(mMockWindowContainerTransaction).removeInsetsSource(eq(taskInfo.token), any(),
- eq(0) /* index */, eq(mandatorySystemGestures()));
- }
-
- @Test
public void testRelayout_captionHidden_neverWasVisible_insetsNotRemoved() {
final Display defaultDisplay = mock(Display.class);
doReturn(defaultDisplay).when(mMockDisplayController)
@@ -661,9 +633,8 @@ public class WindowDecorationTests extends ShellTestCase {
.setBounds(new Rect(0, 0, 1000, 1000))
.build();
// Hidden from the beginning, so no insets were ever added.
- when(mMockDisplayController.getInsetsState(taskInfo.displayId))
- .thenReturn(createInsetsState(statusBars(), false /* visible */));
final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo);
+ mRelayoutParams.mIsCaptionVisible = false;
windowDecor.relayout(taskInfo);
// Never added.
@@ -692,7 +663,7 @@ public class WindowDecorationTests extends ShellTestCase {
final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo);
// Relayout will add insets.
- mInsetsState.getOrCreateSource(STATUS_BAR_INSET_SOURCE_ID, captionBar()).setVisible(true);
+ mRelayoutParams.mIsCaptionVisible = true;
windowDecor.relayout(taskInfo);
verify(mMockWindowContainerTransaction).addInsetsSource(eq(taskInfo.token), any(),
eq(0) /* index */, eq(captionBar()), any(), any(), anyInt());
@@ -740,6 +711,7 @@ public class WindowDecorationTests extends ShellTestCase {
final TestRunningTaskInfoBuilder builder = new TestRunningTaskInfoBuilder()
.setDisplayId(Display.DEFAULT_DISPLAY)
.setVisible(true);
+ mRelayoutParams.mIsCaptionVisible = true;
// Relayout twice with different bounds.
final ActivityManager.RunningTaskInfo firstTaskInfo =
@@ -767,6 +739,7 @@ public class WindowDecorationTests extends ShellTestCase {
final TestRunningTaskInfoBuilder builder = new TestRunningTaskInfoBuilder()
.setDisplayId(Display.DEFAULT_DISPLAY)
.setVisible(true);
+ mRelayoutParams.mIsCaptionVisible = true;
// Relayout twice with the same bounds.
final ActivityManager.RunningTaskInfo firstTaskInfo =
@@ -797,6 +770,7 @@ public class WindowDecorationTests extends ShellTestCase {
final ActivityManager.RunningTaskInfo taskInfo =
builder.setToken(token).setBounds(new Rect(0, 0, 1000, 1000)).build();
final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo);
+ mRelayoutParams.mIsCaptionVisible = true;
mRelayoutParams.mInsetSourceFlags =
FLAG_FORCE_CONSUMING | FLAG_FORCE_CONSUMING_OPAQUE_CAPTION_BAR;
windowDecor.relayout(taskInfo);
@@ -901,76 +875,61 @@ public class WindowDecorationTests extends ShellTestCase {
}
@Test
- public void onStatusBarVisibilityChange_fullscreen_shownToHidden_hidesCaption() {
+ public void onStatusBarVisibilityChange() {
final ActivityManager.RunningTaskInfo task = createTaskInfo();
task.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
when(mMockDisplayController.getInsetsState(task.displayId))
.thenReturn(createInsetsState(statusBars(), true /* visible */));
- final TestWindowDecoration decor = createWindowDecoration(task);
+ final TestWindowDecoration decor = spy(createWindowDecoration(task));
decor.relayout(task);
- assertTrue(decor.mIsCaptionVisible);
+ assertTrue(decor.mIsStatusBarVisible);
decor.onInsetsStateChanged(createInsetsState(statusBars(), false /* visible */));
- assertFalse(decor.mIsCaptionVisible);
+ verify(decor, times(2)).relayout(task);
}
@Test
- public void onStatusBarVisibilityChange_fullscreen_hiddenToShown_showsCaption() {
+ public void onStatusBarVisibilityChange_noChange_doesNotRelayout() {
final ActivityManager.RunningTaskInfo task = createTaskInfo();
task.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
when(mMockDisplayController.getInsetsState(task.displayId))
- .thenReturn(createInsetsState(statusBars(), false /* visible */));
- final TestWindowDecoration decor = createWindowDecoration(task);
- decor.relayout(task);
- assertFalse(decor.mIsCaptionVisible);
-
- decor.onInsetsStateChanged(createInsetsState(statusBars(), true /* visible */));
-
- assertTrue(decor.mIsCaptionVisible);
- }
-
- @Test
- public void onStatusBarVisibilityChange_freeform_shownToHidden_keepsCaption() {
- final ActivityManager.RunningTaskInfo task = createTaskInfo();
- task.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FREEFORM);
- when(mMockDisplayController.getInsetsState(task.displayId))
.thenReturn(createInsetsState(statusBars(), true /* visible */));
- final TestWindowDecoration decor = createWindowDecoration(task);
+ final TestWindowDecoration decor = spy(createWindowDecoration(task));
decor.relayout(task);
- assertTrue(decor.mIsCaptionVisible);
- decor.onInsetsStateChanged(createInsetsState(statusBars(), false /* visible */));
+ decor.onInsetsStateChanged(createInsetsState(statusBars(), true /* visible */));
- assertTrue(decor.mIsCaptionVisible);
+ verify(decor, times(1)).relayout(task);
}
@Test
- public void onKeyguardStateChange_hiddenToShownAndOccluding_hidesCaption() {
+ public void onKeyguardStateChange() {
final ActivityManager.RunningTaskInfo task = createTaskInfo();
when(mMockDisplayController.getInsetsState(task.displayId))
.thenReturn(createInsetsState(statusBars(), true /* visible */));
- final TestWindowDecoration decor = createWindowDecoration(task);
+ final TestWindowDecoration decor = spy(createWindowDecoration(task));
decor.relayout(task);
- assertTrue(decor.mIsCaptionVisible);
+ assertFalse(decor.mIsKeyguardVisibleAndOccluded);
decor.onKeyguardStateChanged(true /* visible */, true /* occluding */);
- assertFalse(decor.mIsCaptionVisible);
+ assertTrue(decor.mIsKeyguardVisibleAndOccluded);
+ verify(decor, times(2)).relayout(task);
}
@Test
- public void onKeyguardStateChange_showingAndOccludingToHidden_showsCaption() {
+ public void onKeyguardStateChange_noChange_doesNotRelayout() {
final ActivityManager.RunningTaskInfo task = createTaskInfo();
when(mMockDisplayController.getInsetsState(task.displayId))
.thenReturn(createInsetsState(statusBars(), true /* visible */));
- final TestWindowDecoration decor = createWindowDecoration(task);
- decor.onKeyguardStateChanged(true /* visible */, true /* occluding */);
- assertFalse(decor.mIsCaptionVisible);
+ final TestWindowDecoration decor = spy(createWindowDecoration(task));
+ decor.relayout(task);
+ assertFalse(decor.mIsKeyguardVisibleAndOccluded);
- decor.onKeyguardStateChanged(false /* visible */, false /* occluding */);
+ decor.onKeyguardStateChanged(false /* visible */, true /* occluding */);
- assertTrue(decor.mIsCaptionVisible);
+ verify(decor, times(1)).relayout(task);
}
private ActivityManager.RunningTaskInfo createTaskInfo() {
diff --git a/libs/androidfw/CursorWindow.cpp b/libs/androidfw/CursorWindow.cpp
index 5e645cceea2d..cbb1e8f82838 100644
--- a/libs/androidfw/CursorWindow.cpp
+++ b/libs/androidfw/CursorWindow.cpp
@@ -18,11 +18,12 @@
#include <androidfw/CursorWindow.h>
-#include <sys/mman.h>
-
#include "android-base/logging.h"
+#include "android-base/mapped_file.h"
#include "cutils/ashmem.h"
+using android::base::MappedFile;
+
namespace android {
/**
@@ -39,7 +40,7 @@ CursorWindow::CursorWindow() {
CursorWindow::~CursorWindow() {
if (mAshmemFd != -1) {
- ::munmap(mData, mSize);
+ mMappedFile.reset();
::close(mAshmemFd);
} else {
free(mData);
@@ -75,6 +76,7 @@ fail_silent:
status_t CursorWindow::maybeInflate() {
int ashmemFd = 0;
void* newData = nullptr;
+ std::unique_ptr<MappedFile> mappedFile;
// Bail early when we can't expand any further
if (mReadOnly || mSize == mInflatedSize) {
@@ -95,11 +97,12 @@ status_t CursorWindow::maybeInflate() {
goto fail_silent;
}
- newData = ::mmap(nullptr, mInflatedSize, PROT_READ | PROT_WRITE, MAP_SHARED, ashmemFd, 0);
- if (newData == MAP_FAILED) {
+ mappedFile = MappedFile::FromFd(ashmemFd, 0, mInflatedSize, PROT_READ | PROT_WRITE);
+ if (mappedFile == nullptr) {
PLOG(ERROR) << "Failed mmap";
goto fail_silent;
}
+ newData = mappedFile->data();
if (ashmem_set_prot_region(ashmemFd, PROT_READ) < 0) {
PLOG(ERROR) << "Failed ashmem_set_prot_region";
@@ -120,6 +123,7 @@ status_t CursorWindow::maybeInflate() {
mData = newData;
mSize = mInflatedSize;
mSlotsOffset = newSlotsOffset;
+ mMappedFile = std::move(mappedFile);
updateSlotsData();
}
@@ -130,7 +134,7 @@ status_t CursorWindow::maybeInflate() {
fail:
LOG(ERROR) << "Failed maybeInflate";
fail_silent:
- ::munmap(newData, mInflatedSize);
+ mappedFile.reset();
::close(ashmemFd);
return UNKNOWN_ERROR;
}
@@ -167,11 +171,12 @@ status_t CursorWindow::createFromParcel(Parcel* parcel, CursorWindow** outWindow
goto fail_silent;
}
- window->mData = ::mmap(nullptr, window->mSize, PROT_READ, MAP_SHARED, window->mAshmemFd, 0);
- if (window->mData == MAP_FAILED) {
+ window->mMappedFile = MappedFile::FromFd(window->mAshmemFd, 0, window->mSize, PROT_READ);
+ if (window->mMappedFile == nullptr) {
PLOG(ERROR) << "Failed mmap";
goto fail_silent;
}
+ window->mData = window->mMappedFile->data();
} else {
window->mAshmemFd = -1;
diff --git a/libs/androidfw/include/androidfw/CursorWindow.h b/libs/androidfw/include/androidfw/CursorWindow.h
index 9ec026a19c4c..c2eac12eb77d 100644
--- a/libs/androidfw/include/androidfw/CursorWindow.h
+++ b/libs/androidfw/include/androidfw/CursorWindow.h
@@ -26,6 +26,8 @@
#include "binder/Parcel.h"
#include "utils/String8.h"
+#include "android-base/mapped_file.h"
+
#define LOG_WINDOW(...)
namespace android {
@@ -149,6 +151,8 @@ private:
String8 mName;
int mAshmemFd = -1;
void* mData = nullptr;
+ std::unique_ptr<android::base::MappedFile> mMappedFile;
+
/**
* Pointer to the first FieldSlot, used to optimize the extremely
* hot code path of getFieldSlot().
diff --git a/libs/hwui/hwui/Paint.h b/libs/hwui/hwui/Paint.h
index 708f96e5a070..7eb849fe6e3d 100644
--- a/libs/hwui/hwui/Paint.h
+++ b/libs/hwui/hwui/Paint.h
@@ -159,6 +159,14 @@ public:
return SkSamplingOptions(this->filterMode());
}
+ void setVariationOverride(minikin::VariationSettings&& varSettings) {
+ mFontVariationOverride = std::move(varSettings);
+ }
+
+ const minikin::VariationSettings& getFontVariationOverride() const {
+ return mFontVariationOverride;
+ }
+
// The Java flags (Paint.java) no longer fit into the native apis directly.
// These methods handle converting to and from them and the native representations
// in android::Paint.
@@ -179,6 +187,7 @@ private:
float mLetterSpacing = 0;
float mWordSpacing = 0;
std::vector<minikin::FontFeature> mFontFeatureSettings;
+ minikin::VariationSettings mFontVariationOverride;
uint32_t mMinikinLocaleListId;
std::optional<minikin::FamilyVariant> mFamilyVariant;
uint32_t mHyphenEdit = 0;
diff --git a/libs/hwui/hwui/PaintImpl.cpp b/libs/hwui/hwui/PaintImpl.cpp
index c32ea01db7b7..6dfcedc3d918 100644
--- a/libs/hwui/hwui/PaintImpl.cpp
+++ b/libs/hwui/hwui/PaintImpl.cpp
@@ -39,6 +39,7 @@ Paint::Paint(const Paint& paint)
, mLetterSpacing(paint.mLetterSpacing)
, mWordSpacing(paint.mWordSpacing)
, mFontFeatureSettings(paint.mFontFeatureSettings)
+ , mFontVariationOverride(paint.mFontVariationOverride)
, mMinikinLocaleListId(paint.mMinikinLocaleListId)
, mFamilyVariant(paint.mFamilyVariant)
, mHyphenEdit(paint.mHyphenEdit)
@@ -59,6 +60,7 @@ Paint& Paint::operator=(const Paint& other) {
mLetterSpacing = other.mLetterSpacing;
mWordSpacing = other.mWordSpacing;
mFontFeatureSettings = other.mFontFeatureSettings;
+ mFontVariationOverride = other.mFontVariationOverride;
mMinikinLocaleListId = other.mMinikinLocaleListId;
mFamilyVariant = other.mFamilyVariant;
mHyphenEdit = other.mHyphenEdit;
@@ -76,6 +78,7 @@ bool operator==(const Paint& a, const Paint& b) {
return static_cast<const SkPaint&>(a) == static_cast<const SkPaint&>(b) && a.mFont == b.mFont &&
a.mLooper == b.mLooper && a.mLetterSpacing == b.mLetterSpacing &&
a.mWordSpacing == b.mWordSpacing && a.mFontFeatureSettings == b.mFontFeatureSettings &&
+ a.mFontVariationOverride == b.mFontVariationOverride &&
a.mMinikinLocaleListId == b.mMinikinLocaleListId &&
a.mFamilyVariant == b.mFamilyVariant && a.mHyphenEdit == b.mHyphenEdit &&
a.mTypeface == b.mTypeface && a.mAlign == b.mAlign &&
diff --git a/libs/hwui/jni/Paint.cpp b/libs/hwui/jni/Paint.cpp
index 286f06a6bad8..da237928e5e1 100644
--- a/libs/hwui/jni/Paint.cpp
+++ b/libs/hwui/jni/Paint.cpp
@@ -1127,6 +1127,36 @@ namespace PaintGlue {
return leftMinikinPaint == rightMinikinPaint;
}
+ struct VariationBuilder {
+ std::vector<minikin::FontVariation> varSettings;
+ };
+
+ static jlong createFontVariationBuilder(CRITICAL_JNI_PARAMS_COMMA jint size) {
+ VariationBuilder* builder = new VariationBuilder();
+ builder->varSettings.reserve(size);
+ return reinterpret_cast<jlong>(builder);
+ }
+
+ static void addFontVariationToBuilder(CRITICAL_JNI_PARAMS_COMMA jlong builderPtr, jint tag,
+ jfloat value) {
+ VariationBuilder* builder = reinterpret_cast<VariationBuilder*>(builderPtr);
+ builder->varSettings.emplace_back(static_cast<minikin::AxisTag>(tag), value);
+ }
+
+ static void setFontVariationOverride(CRITICAL_JNI_PARAMS_COMMA jlong paintHandle,
+ jlong builderPtr) {
+ Paint* paint = reinterpret_cast<Paint*>(paintHandle);
+ if (builderPtr == 0) {
+ paint->setVariationOverride(minikin::VariationSettings());
+ return;
+ }
+
+ VariationBuilder* builder = reinterpret_cast<VariationBuilder*>(builderPtr);
+ paint->setVariationOverride(
+ minikin::VariationSettings(builder->varSettings, false /* sorted */));
+ delete builder;
+ }
+
}; // namespace PaintGlue
static const JNINativeMethod methods[] = {
@@ -1235,6 +1265,9 @@ static const JNINativeMethod methods[] = {
{"nSetShadowLayer", "(JFFFJJ)V", (void*)PaintGlue::setShadowLayer},
{"nHasShadowLayer", "(J)Z", (void*)PaintGlue::hasShadowLayer},
{"nEqualsForTextMeasurement", "(JJ)Z", (void*)PaintGlue::equalsForTextMeasurement},
+ {"nCreateFontVariationBuilder", "(I)J", (void*)PaintGlue::createFontVariationBuilder},
+ {"nAddFontVariationToBuilder", "(JIF)V", (void*)PaintGlue::addFontVariationToBuilder},
+ {"nSetFontVariationOverride", "(JJ)V", (void*)PaintGlue::setFontVariationOverride},
};
int register_android_graphics_Paint(JNIEnv* env) {
diff --git a/media/java/android/media/RingtoneManager.java b/media/java/android/media/RingtoneManager.java
index f0ab6ecc5cda..0f24654879cd 100644
--- a/media/java/android/media/RingtoneManager.java
+++ b/media/java/android/media/RingtoneManager.java
@@ -1089,7 +1089,24 @@ public class RingtoneManager {
defaultRingtoneUri = ContentProvider.getUriWithoutUserId(defaultRingtoneUri);
if (defaultRingtoneUri == null) {
return -1;
- } else if (defaultRingtoneUri.equals(Settings.System.DEFAULT_RINGTONE_URI)) {
+ }
+
+ if (Flags.enableRingtoneHapticsCustomization()
+ && Utils.hasVibration(defaultRingtoneUri)) {
+ // skip to check TYPE_ALARM because the customized haptic hasn't enabled in alarm
+ if (defaultRingtoneUri.toString()
+ .contains(Settings.System.DEFAULT_RINGTONE_URI.toString())) {
+ return TYPE_RINGTONE;
+ } else if (defaultRingtoneUri.toString()
+ .contains(Settings.System.DEFAULT_NOTIFICATION_URI.toString())) {
+ return TYPE_NOTIFICATION;
+ } else if (defaultRingtoneUri.toString()
+ .contains(Settings.System.DEFAULT_ALARM_ALERT_URI.toString())) {
+ return TYPE_ALARM;
+ }
+ }
+
+ if (defaultRingtoneUri.equals(Settings.System.DEFAULT_RINGTONE_URI)) {
return TYPE_RINGTONE;
} else if (defaultRingtoneUri.equals(Settings.System.DEFAULT_NOTIFICATION_URI)) {
return TYPE_NOTIFICATION;
diff --git a/media/java/android/media/tv/interactive/ITvInteractiveAppSessionWrapper.java b/media/java/android/media/tv/interactive/ITvInteractiveAppSessionWrapper.java
index ec6c2bfab576..8e6297c3899d 100644
--- a/media/java/android/media/tv/interactive/ITvInteractiveAppSessionWrapper.java
+++ b/media/java/android/media/tv/interactive/ITvInteractiveAppSessionWrapper.java
@@ -267,7 +267,9 @@ public class ITvInteractiveAppSessionWrapper
break;
}
case DO_NOTIFY_CONTENT_BLOCKED: {
- mSessionImpl.notifyContentBlocked((TvContentRating) msg.obj);
+ String contentRating = (String) msg.obj;
+ mSessionImpl.notifyContentBlocked(
+ TvContentRating.unflattenFromString(contentRating));
break;
}
case DO_NOTIFY_SIGNAL_STRENGTH: {
diff --git a/media/jni/android_media_ImageWriter.cpp b/media/jni/android_media_ImageWriter.cpp
index 33650d91e6a3..93deb51df142 100644
--- a/media/jni/android_media_ImageWriter.cpp
+++ b/media/jni/android_media_ImageWriter.cpp
@@ -1029,16 +1029,19 @@ static void Image_getLockedImage(JNIEnv* env, jobject thiz, LockedImage *image)
return;
}
+ // Maintain a StrongPointer so that the GraphicBuffer isn't destroyed when the
+ // StrongPointer in lockImageFromBuffer goes out of scope.
+ sp<GraphicBuffer> bufferSp(buffer);
// ImageWriter doesn't use crop by itself, app sets it, use the no crop version.
- const Rect noCrop(buffer->width, buffer->height);
+ const Rect noCrop(bufferSp->width, bufferSp->height);
status_t res = lockImageFromBuffer(
- buffer, GRALLOC_USAGE_SW_WRITE_OFTEN, noCrop, fenceFd, image);
+ bufferSp, GRALLOC_USAGE_SW_WRITE_OFTEN, noCrop, fenceFd, image);
// Clear the fenceFd as it is already consumed by lock call.
env->SetIntField(thiz, gSurfaceImageClassInfo.mNativeFenceFd, -1);
if (res != OK) {
jniThrowExceptionFmt(env, "java/lang/RuntimeException",
"lock buffer failed for format 0x%x",
- buffer->getPixelFormat());
+ bufferSp->getPixelFormat());
return;
}
diff --git a/packages/CrashRecovery/aconfig/flags.aconfig b/packages/CrashRecovery/aconfig/flags.aconfig
index 52e0cbbda03a..c6c49e01c850 100644
--- a/packages/CrashRecovery/aconfig/flags.aconfig
+++ b/packages/CrashRecovery/aconfig/flags.aconfig
@@ -39,3 +39,10 @@ flag {
bug: "289203818"
is_fixed_read_only: true
}
+
+flag {
+ name: "synchronous_reboot_in_rescue_party"
+ namespace: "modularization"
+ description: "Makes reboot and factory reset synchronous in RescueParty"
+ bug: "328203835"
+} \ No newline at end of file
diff --git a/packages/PackageInstaller/TEST_MAPPING b/packages/PackageInstaller/TEST_MAPPING
index 91882fde1537..50db5018d44e 100644
--- a/packages/PackageInstaller/TEST_MAPPING
+++ b/packages/PackageInstaller/TEST_MAPPING
@@ -1,6 +1,17 @@
{
"presubmit": [
{
+ "name": "CtsPackageInstallerCUJDeviceAdminTestCases",
+ "options":[
+ {
+ "exclude-annotation":"androidx.test.filters.FlakyTest"
+ },
+ {
+ "exclude-annotation":"org.junit.Ignore"
+ }
+ ]
+ },
+ {
"name": "CtsPackageInstallerCUJInstallationTestCases",
"options":[
{
@@ -12,6 +23,17 @@
]
},
{
+ "name": "CtsPackageInstallerCUJMultiUsersTestCases",
+ "options":[
+ {
+ "exclude-annotation":"androidx.test.filters.FlakyTest"
+ },
+ {
+ "exclude-annotation":"org.junit.Ignore"
+ }
+ ]
+ },
+ {
"name": "CtsPackageInstallerCUJUninstallationTestCases",
"options":[
{
diff --git a/packages/SettingsLib/Android.bp b/packages/SettingsLib/Android.bp
index e77c2a01b996..e1418678a9f8 100644
--- a/packages/SettingsLib/Android.bp
+++ b/packages/SettingsLib/Android.bp
@@ -53,6 +53,8 @@ android_library {
"SettingsLibSelectorWithWidgetPreference",
"SettingsLibSettingsSpinner",
"SettingsLibSettingsTransition",
+ "SettingsLibSliderPreference",
+ "SettingsLibStatusBannerPreference",
"SettingsLibTopIntroPreference",
"SettingsLibTwoTargetPreference",
"SettingsLibUsageProgressBarPreference",
diff --git a/packages/SettingsLib/ButtonPreference/res/values/attrs.xml b/packages/SettingsLib/ButtonPreference/res/values/attrs.xml
index 9a4312aa8b36..9c1e503f1372 100644
--- a/packages/SettingsLib/ButtonPreference/res/values/attrs.xml
+++ b/packages/SettingsLib/ButtonPreference/res/values/attrs.xml
@@ -18,5 +18,15 @@
<resources>
<declare-styleable name="ButtonPreference">
<attr name="android:gravity" />
+ <attr name="buttonType" format="enum">
+ <enum name="filled" value="0"/>
+ <enum name="tonal" value="1"/>
+ <enum name="outline" value="2"/>
+ </attr>
+ <attr name="buttonSize" format="enum">
+ <enum name="normal" value="0"/>
+ <enum name="large" value="1"/>
+ <enum name="extra" value="2"/>
+ </attr>
</declare-styleable>
</resources> \ No newline at end of file
diff --git a/packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt b/packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt
index c93ec2bd0492..0cdfc6610bbd 100644
--- a/packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt
+++ b/packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt
@@ -18,7 +18,9 @@ package com.android.settingslib.widget
import android.content.Context
import android.os.Build
+import android.text.TextUtils
import android.util.AttributeSet
+import android.view.View
import androidx.annotation.RequiresApi
import androidx.preference.Preference
import androidx.preference.PreferenceViewHolder
@@ -33,6 +35,9 @@ class IntroPreference @JvmOverloads constructor(
private var isCollapsable: Boolean = false
private var minLines: Int = 2
+ private var hyperlinkListener: View.OnClickListener? = null
+ private var learnMoreListener: View.OnClickListener? = null
+ private var learnMoreText: CharSequence? = null
init {
layoutResource = R.layout.settingslib_expressive_preference_intro
@@ -64,6 +69,13 @@ class IntroPreference @JvmOverloads constructor(
setCollapsable(isCollapsable)
setMinLines(minLines)
setText(summary.toString())
+ if (hyperlinkListener != null) {
+ setHyperlinkListener(hyperlinkListener)
+ }
+ if (learnMoreListener != null) {
+ setLearnMoreText(learnMoreText)
+ setLearnMoreAction(learnMoreListener)
+ }
}
}
@@ -88,6 +100,42 @@ class IntroPreference @JvmOverloads constructor(
notifyChanged()
}
+ /**
+ * Sets the action when clicking on the hyperlink in the text.
+ * @param listener The click listener for hyperlink.
+ */
+ @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
+ fun setHyperlinkListener(listener: View.OnClickListener) {
+ if (hyperlinkListener != listener) {
+ hyperlinkListener = listener
+ notifyChanged()
+ }
+ }
+
+ /**
+ * Sets the action when clicking on the learn more view.
+ * @param listener The click listener for learn more.
+ */
+ @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
+ fun setLearnMoreAction(listener: View.OnClickListener) {
+ if (learnMoreListener != listener) {
+ learnMoreListener = listener
+ notifyChanged()
+ }
+ }
+
+ /**
+ * Sets the text of learn more view.
+ * @param text The text of learn more.
+ */
+ @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
+ fun setLearnMoreText(text: CharSequence) {
+ if (!TextUtils.equals(learnMoreText, text)) {
+ learnMoreText = text
+ notifyChanged()
+ }
+ }
+
companion object {
private const val DEFAULT_MAX_LINES = 10
private const val DEFAULT_MIN_LINES = 2
diff --git a/packages/SettingsLib/SelectorWithWidgetPreference/src/com/android/settingslib/widget/SelectorWithWidgetPreference.java b/packages/SettingsLib/SelectorWithWidgetPreference/src/com/android/settingslib/widget/SelectorWithWidgetPreference.java
index 34de5c4a5d75..e6726dcbb17a 100644
--- a/packages/SettingsLib/SelectorWithWidgetPreference/src/com/android/settingslib/widget/SelectorWithWidgetPreference.java
+++ b/packages/SettingsLib/SelectorWithWidgetPreference/src/com/android/settingslib/widget/SelectorWithWidgetPreference.java
@@ -68,6 +68,7 @@ public class SelectorWithWidgetPreference extends CheckBoxPreference {
private View mExtraWidgetContainer;
private ImageView mExtraWidget;
+ @Nullable private String mExtraWidgetContentDescription;
private boolean mIsCheckBox = false; // whether to display this button as a checkbox
private View.OnClickListener mExtraWidgetOnClickListener;
@@ -173,6 +174,12 @@ public class SelectorWithWidgetPreference extends CheckBoxPreference {
setExtraWidgetOnClickListener(mExtraWidgetOnClickListener);
+ if (mExtraWidget != null) {
+ mExtraWidget.setContentDescription(mExtraWidgetContentDescription != null
+ ? mExtraWidgetContentDescription
+ : getContext().getString(R.string.settings_label));
+ }
+
if (Flags.allowSetTitleMaxLines()) {
TextView title = (TextView) holder.findViewById(android.R.id.title);
title.setMaxLines(mTitleMaxLines);
@@ -210,6 +217,17 @@ public class SelectorWithWidgetPreference extends CheckBoxPreference {
}
/**
+ * Sets the content description of the extra widget. If {@code null}, a default content
+ * description will be used ("Settings").
+ */
+ public void setExtraWidgetContentDescription(@Nullable String contentDescription) {
+ if (!TextUtils.equals(mExtraWidgetContentDescription, contentDescription)) {
+ mExtraWidgetContentDescription = contentDescription;
+ notifyChanged();
+ }
+ }
+
+ /**
* Returns whether this preference is a checkbox.
*/
public boolean isCheckBox() {
diff --git a/packages/SettingsLib/SettingsTheme/res/values-v35/styles_expressive.xml b/packages/SettingsLib/SettingsTheme/res/values-v35/styles_expressive.xml
index 88f7eb8737a2..05a1ceacdb65 100644
--- a/packages/SettingsLib/SettingsTheme/res/values-v35/styles_expressive.xml
+++ b/packages/SettingsLib/SettingsTheme/res/values-v35/styles_expressive.xml
@@ -335,4 +335,15 @@
<item name="android:textSize">14sp</item>
<item name="android:textColor">?android:attr/colorAccent</item>
</style>
+
+ <style name="SettingsLibStatusBannerCardStyle">
+ <item name="android:layout_width">match_parent</item>
+ <item name="android:layout_height">wrap_content</item>
+ <item name="android:layout_marginHorizontal">?android:attr/listPreferredItemPaddingStart</item>
+ <item name="android:layout_marginVertical">@dimen/settingslib_expressive_space_extrasmall4</item>
+ <item name="cardBackgroundColor">@color/settingslib_materialColorSurfaceBright</item>
+ <item name="cardCornerRadius">@dimen/settingslib_expressive_radius_extralarge2</item>
+ <item name="cardElevation">0dp</item>
+ <item name="rippleColor">?android:attr/colorControlHighlight</item>
+ </style>
</resources> \ No newline at end of file
diff --git a/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/CollapsableTextView.kt b/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/CollapsableTextView.kt
index 7797a0d6dcde..f1cc4e952b99 100644
--- a/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/CollapsableTextView.kt
+++ b/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/CollapsableTextView.kt
@@ -18,8 +18,12 @@ package com.android.settingslib.widget
import android.content.Context
import android.graphics.drawable.Drawable
+import android.text.Spannable
import android.text.SpannableString
+import android.text.TextPaint
import android.text.TextUtils
+import android.text.method.LinkMovementMethod
+import android.text.style.ClickableSpan
import android.text.style.URLSpan
import android.util.AttributeSet
import android.view.Gravity
@@ -43,6 +47,7 @@ class CollapsableTextView @JvmOverloads constructor(
private val titleTextView: TextView
private val collapseButton: MaterialButton
private val collapseButtonResources: CollapseButtonResources
+ private var hyperlinkListener: View.OnClickListener? = null
private var learnMoreListener: View.OnClickListener? = null
private var learnMoreText: CharSequence? = null
private var learnMoreSpan: LearnMoreSpan? = null
@@ -142,6 +147,45 @@ class CollapsableTextView @JvmOverloads constructor(
}
}
+ fun setHyperlinkListener(listener: View.OnClickListener?) {
+ if (hyperlinkListener != listener) {
+ hyperlinkListener = listener
+ linkifyTitle()
+ }
+ }
+
+ private fun linkifyTitle() {
+ var text = titleTextView.text.toString()
+ val beginIndex = text.indexOf(LINK_BEGIN_MARKER)
+ text = text.replace(LINK_BEGIN_MARKER, "")
+ val endIndex = text.indexOf(LINK_END_MARKER)
+ text = text.replace(LINK_END_MARKER, "")
+ titleTextView.text = text
+ if (beginIndex == -1 || endIndex == -1 || beginIndex >= endIndex) {
+ return
+ }
+
+ titleTextView.setText(text, TextView.BufferType.SPANNABLE)
+ titleTextView.movementMethod = LinkMovementMethod.getInstance()
+ val spannableContent = titleTextView.getText() as Spannable
+ val spannableLink = object : ClickableSpan() {
+ override fun onClick(widget: View) {
+ hyperlinkListener?.onClick(widget)
+ }
+
+ override fun updateDrawState(ds: TextPaint) {
+ super.updateDrawState(ds)
+ ds.isUnderlineText = true
+ }
+ }
+ spannableContent.setSpan(
+ spannableLink,
+ beginIndex,
+ endIndex,
+ Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
+ )
+ }
+
private fun formatLearnMoreText() {
if (learnMoreListener == null || TextUtils.isEmpty(learnMoreText)) {
learnMoreTextView.visibility = GONE
@@ -192,6 +236,9 @@ class CollapsableTextView @JvmOverloads constructor(
private const val DEFAULT_MAX_LINES = 10
private const val DEFAULT_MIN_LINES = 2
+ private const val LINK_BEGIN_MARKER = "LINK_BEGIN"
+ private const val LINK_END_MARKER = "LINK_END"
+
private val Attrs = R.styleable.CollapsableTextView
private val GravityAttr = R.styleable.CollapsableTextView_android_gravity
}
diff --git a/packages/SettingsLib/SliderPreference/Android.bp b/packages/SettingsLib/SliderPreference/Android.bp
new file mode 100644
index 000000000000..46528c1a584f
--- /dev/null
+++ b/packages/SettingsLib/SliderPreference/Android.bp
@@ -0,0 +1,31 @@
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "frameworks_base_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["frameworks_base_license"],
+}
+
+android_library {
+ name: "SettingsLibSliderPreference",
+ use_resource_processor: true,
+ defaults: [
+ "SettingsLintDefaults",
+ ],
+
+ srcs: ["src/**/*.java"],
+ resource_dirs: ["res"],
+
+ static_libs: [
+ "androidx.annotation_annotation",
+ "androidx.preference_preference",
+ "SettingsLibSettingsTheme",
+ ],
+
+ sdk_version: "system_current",
+ min_sdk_version: "23",
+ apex_available: [
+ "//apex_available:platform",
+ ],
+}
diff --git a/packages/SettingsLib/SliderPreference/AndroidManifest.xml b/packages/SettingsLib/SliderPreference/AndroidManifest.xml
new file mode 100644
index 000000000000..04a67524124d
--- /dev/null
+++ b/packages/SettingsLib/SliderPreference/AndroidManifest.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.settingslib.widget.preference.slider">
+
+ <uses-sdk android:minSdkVersion="23" />
+
+</manifest>
diff --git a/packages/SettingsLib/SliderPreference/res/layout/settingslib_expressive_layout_slider.xml b/packages/SettingsLib/SliderPreference/res/layout/settingslib_expressive_layout_slider.xml
new file mode 100644
index 000000000000..a9cc2c405f8d
--- /dev/null
+++ b/packages/SettingsLib/SliderPreference/res/layout/settingslib_expressive_layout_slider.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:clipChildren="false"
+ android:gravity="center_vertical">
+
+ <FrameLayout
+ android:id="@+id/icon_start_frame"
+ android:layout_width="@dimen/settingslib_expressive_space_medium4"
+ android:layout_height="@dimen/settingslib_expressive_space_medium4"
+ android:clipChildren="false"
+ android:focusable="true"
+ android:visibility="gone">
+
+ <ImageView
+ android:id="@+id/icon_start"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:adjustViewBounds="true"
+ android:focusable="false"
+ android:tint="?android:attr/textColorPrimary"
+ android:tintMode="src_in" />
+ </FrameLayout>
+
+ <com.google.android.material.slider.Slider
+ android:id="@+id/slider"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:theme="@style/Theme.MaterialComponents.DayNight" />
+
+ <FrameLayout
+ android:id="@+id/icon_end_frame"
+ android:layout_width="@dimen/settingslib_expressive_space_medium4"
+ android:layout_height="@dimen/settingslib_expressive_space_medium4"
+ android:clipChildren="false"
+ android:focusable="true"
+ android:visibility="gone">
+
+ <ImageView
+ android:id="@+id/icon_end"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:adjustViewBounds="true"
+ android:focusable="false"
+ android:tint="?android:attr/textColorPrimary"
+ android:tintMode="src_in" />
+ </FrameLayout>
+</LinearLayout>
diff --git a/packages/SettingsLib/SliderPreference/res/layout/settingslib_expressive_preference_slider.xml b/packages/SettingsLib/SliderPreference/res/layout/settingslib_expressive_preference_slider.xml
new file mode 100644
index 000000000000..27720919b5e6
--- /dev/null
+++ b/packages/SettingsLib/SliderPreference/res/layout/settingslib_expressive_preference_slider.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:orientation="horizontal"
+ android:background="?android:attr/selectableItemBackground"
+ android:clipToPadding="false"
+ android:baselineAligned="false">
+
+ <include layout="@layout/settingslib_icon_frame"/>
+
+ <RelativeLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingVertical="@dimen/settingslib_expressive_space_small1">
+
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="start"
+ android:textAlignment="viewStart"
+ android:textAppearance="?android:attr/textAppearanceListItem"
+ android:maxLines="2"
+ android:ellipsize="marquee"/>
+
+ <TextView
+ android:id="@android:id/summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@android:id/title"
+ android:layout_alignLeft="@android:id/title"
+ android:layout_alignStart="@android:id/title"
+ android:layout_gravity="start"
+ android:textAlignment="viewStart"
+ android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+ android:textColor="?android:attr/textColorSecondary"
+ android:maxLines="10"/>
+
+ <include
+ layout="@layout/settingslib_expressive_layout_slider"
+ android:id="@+id/slider_frame"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignStart="@android:id/summary"
+ android:layout_below="@android:id/summary" />
+
+ <LinearLayout
+ android:id="@+id/label_frame"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/slider_frame"
+ android:orientation="horizontal"
+ android:visibility="gone">
+
+ <TextView
+ android:id="@android:id/text1"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_gravity="start|top"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="?android:attr/textColorSecondary"
+ android:gravity="start"
+ android:layout_weight="1"/>
+
+ <TextView
+ android:id="@android:id/text2"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_gravity="end|top"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="?android:attr/textColorSecondary"
+ android:gravity="end"
+ android:layout_weight="1"/>
+ </LinearLayout>
+
+ </RelativeLayout>
+</LinearLayout> \ No newline at end of file
diff --git a/packages/SettingsLib/SliderPreference/res/values/attrs_expressive.xml b/packages/SettingsLib/SliderPreference/res/values/attrs_expressive.xml
new file mode 100644
index 000000000000..59464099e228
--- /dev/null
+++ b/packages/SettingsLib/SliderPreference/res/values/attrs_expressive.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<resources>
+ <!-- For SliderPreference -->
+ <declare-styleable name="SliderPreference">
+ <attr name="textStart" format="reference" />
+ <attr name="textEnd" format="reference" />
+ <attr name="iconStart" format="reference" />
+ <attr name="iconEnd" format="reference" />
+ <attr name="iconStartContentDescription" format="reference" />
+ <attr name="iconEndContentDescription" format="reference" />
+ </declare-styleable>
+</resources> \ No newline at end of file
diff --git a/packages/SettingsLib/SliderPreference/res/values/colors_expressive.xml b/packages/SettingsLib/SliderPreference/res/values/colors_expressive.xml
new file mode 100644
index 000000000000..803b7a41cffe
--- /dev/null
+++ b/packages/SettingsLib/SliderPreference/res/values/colors_expressive.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources>
+ <color name="settingslib_expressive_color_slider_track_active">@color/settingslib_materialColorPrimary</color>
+ <color name="settingslib_expressive_color_slider_track_inactive">@color/settingslib_materialColorSurfaceContainerHighest</color>
+ <color name="settingslib_expressive_color_slider_thumb">@color/settingslib_materialColorPrimary</color>
+ <color name="settingslib_expressive_color_slider_halo">@android:color/transparent</color>
+</resources> \ No newline at end of file
diff --git a/packages/SettingsLib/SliderPreference/res/values/dimens_expressive.xml b/packages/SettingsLib/SliderPreference/res/values/dimens_expressive.xml
new file mode 100644
index 000000000000..faae8bcf7e59
--- /dev/null
+++ b/packages/SettingsLib/SliderPreference/res/values/dimens_expressive.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<resources>
+ <dimen name="settingslib_expressive_slider_track_height">@dimen/settingslib_expressive_space_small1</dimen>
+ <dimen name="settingslib_expressive_slider_track_inside_corner_size">@dimen/settingslib_expressive_space_extrasmall1</dimen>
+ <dimen name="settingslib_expressive_slider_track_stop_indicator_size">@dimen/settingslib_expressive_space_extrasmall2</dimen>
+ <dimen name="settingslib_expressive_slider_thumb_width">@dimen/settingslib_expressive_space_extrasmall2</dimen>
+ <dimen name="settingslib_expressive_slider_thumb_height">44dp</dimen>
+ <dimen name="settingslib_expressive_slider_thumb_elevation">@dimen/settingslib_expressive_space_none</dimen>
+ <dimen name="settingslib_expressive_slider_thumb_stroke_width">@dimen/settingslib_expressive_space_extrasmall2</dimen>
+ <dimen name="settingslib_expressive_slider_thumb_track_gap_size">@dimen/settingslib_expressive_space_extrasmall3</dimen>
+ <dimen name="settingslib_expressive_slider_tick_radius">@dimen/settingslib_expressive_radius_extrasmall1</dimen>
+
+</resources> \ No newline at end of file
diff --git a/packages/SettingsLib/SliderPreference/src/com/android/settingslib/widget/SliderPreference.java b/packages/SettingsLib/SliderPreference/src/com/android/settingslib/widget/SliderPreference.java
new file mode 100644
index 000000000000..1815d040bb18
--- /dev/null
+++ b/packages/SettingsLib/SliderPreference/src/com/android/settingslib/widget/SliderPreference.java
@@ -0,0 +1,668 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settingslib.widget;
+
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settingslib.widget.preference.slider.R;
+
+import com.google.android.material.slider.LabelFormatter;
+import com.google.android.material.slider.Slider;
+
+/**
+ * A {@link Preference} that displays a {@link Slider}.
+ */
+public class SliderPreference extends Preference {
+ private static final String TAG = "SliderPreference";
+
+ private final int mTextStartId;
+ private final int mTextEndId;
+ private final int mIconStartId;
+ private final int mIconEndId;
+ private final int mIconStartContentDescriptionId;
+ private final int mIconEndContentDescriptionId;
+ private final ColorStateList mTrackActiveColor;
+ private final ColorStateList mTrackInactiveColor;
+ private final ColorStateList mThumbColor;
+ private final ColorStateList mHaloColor;
+ private final int mTrackHeight;
+ private final int mTrackInsideCornerSize;
+ private final int mTrackStopIndicatorSize;
+ private final int mThumbWidth;
+ private final int mThumbHeight;
+ private final int mThumbElevation;
+ private final int mThumbStrokeWidth;
+ private final int mThumbTrackGapSize;
+ private final int mTickRadius;
+ @Nullable private Slider mSlider;
+ private int mSliderValue;
+ private int mMin;
+ private int mMax;
+ private int mSliderIncrement;
+ private boolean mAdjustable;
+ private boolean mTrackingTouch;
+
+ /**
+ * Listener reacting to the user pressing DPAD left/right keys if {@code
+ * adjustable} attribute is set to true; it transfers the key presses to the {@link Slider}
+ * to be handled accordingly.
+ */
+ private final View.OnKeyListener mSliderKeyListener = new View.OnKeyListener() {
+ @Override
+ public boolean onKey(@NonNull View v, int keyCode, @NonNull KeyEvent event) {
+ if (event.getAction() != KeyEvent.ACTION_DOWN) {
+ return false;
+ }
+
+ if (!mAdjustable && (keyCode == KeyEvent.KEYCODE_DPAD_LEFT
+ || keyCode == KeyEvent.KEYCODE_DPAD_RIGHT)) {
+ // Right or left keys are pressed when in non-adjustable mode; Skip the keys.
+ return false;
+ }
+
+ // We don't want to propagate the click keys down to the Slider since it will
+ // create the ripple effect for the thumb.
+ if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_ENTER) {
+ return false;
+ }
+
+ if (mSlider == null) {
+ Log.e(TAG, "Slider view is null and hence cannot be adjusted.");
+ return false;
+ }
+ return mSlider.onKeyDown(keyCode, event);
+ }
+ };
+ /**
+ * Listener reacting to the {@link Slider} touch event by the user
+ */
+ private final Slider.OnSliderTouchListener mTouchListener = new Slider.OnSliderTouchListener() {
+ @Override
+ public void onStopTrackingTouch(@NonNull Slider slider) {
+ mTrackingTouch = false;
+ if ((int) slider.getValue() != mSliderValue) {
+ syncValueInternal(slider);
+ }
+ }
+
+ @Override
+ public void onStartTrackingTouch(@NonNull Slider slider) {
+ mTrackingTouch = true;
+ }
+ };
+ private LabelFormatter mLabelFormater;
+ // Whether the SliderPreference should continuously save the Slider value while it is being
+ // dragged.
+ private boolean mUpdatesContinuously;
+ /**
+ * Listener reacting to the {@link Slider} changing value by the user
+ */
+ private final Slider.OnChangeListener mChangeListener = new Slider.OnChangeListener() {
+ @Override
+ public void onValueChange(@NonNull Slider slider, float value, boolean fromUser) {
+ if (fromUser && (mUpdatesContinuously || !mTrackingTouch)) {
+ syncValueInternal(slider);
+ }
+ }
+ };
+ // Whether to show the Slider value TextView next to the bar
+ private boolean mShowSliderValue;
+
+ public SliderPreference(@NonNull Context context,
+ @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ setLayoutResource(R.layout.settingslib_expressive_preference_slider);
+
+ TypedArray a = context.obtainStyledAttributes(
+ attrs, androidx.preference.R.styleable.SeekBarPreference, defStyleAttr,
+ 0 /*defStyleRes*/);
+
+ // The ordering of these two statements are important. If we want to set max first, we need
+ // to perform the same steps by changing min/max to max/min as following:
+ // mMax = a.getInt(...) and setMin(...).
+ mMin = a.getInt(androidx.preference.R.styleable.SeekBarPreference_min, 0);
+ setMax(a.getInt(androidx.preference.R.styleable.SeekBarPreference_android_max, 100));
+ setSliderIncrement(
+ a.getInt(androidx.preference.R.styleable.SeekBarPreference_seekBarIncrement, 0));
+ mAdjustable = a.getBoolean(androidx.preference.R.styleable.SeekBarPreference_adjustable,
+ true);
+ mShowSliderValue = a.getBoolean(
+ androidx.preference.R.styleable.SeekBarPreference_showSeekBarValue, false);
+ mUpdatesContinuously = a.getBoolean(
+ androidx.preference.R.styleable.SeekBarPreference_updatesContinuously,
+ false);
+ a.recycle();
+
+ a = context.obtainStyledAttributes(attrs,
+ R.styleable.SliderPreference);
+ mTextStartId = a.getResourceId(
+ R.styleable.SliderPreference_textStart, /* defValue= */ 0);
+ mTextEndId = a.getResourceId(
+ R.styleable.SliderPreference_textEnd, /* defValue= */ 0);
+ mIconStartId = a.getResourceId(
+ R.styleable.SliderPreference_iconStart, /* defValue= */ 0);
+ mIconEndId = a.getResourceId(
+ R.styleable.SliderPreference_iconEnd, /* defValue= */ 0);
+
+ mIconStartContentDescriptionId = a.getResourceId(
+ R.styleable.SliderPreference_iconStartContentDescription,
+ /* defValue= */ 0);
+
+ mIconEndContentDescriptionId = a.getResourceId(
+ R.styleable.SliderPreference_iconEndContentDescription,
+ /* defValue= */ 0);
+ a.recycle();
+
+ mTrackActiveColor = context.getColorStateList(
+ R.color.settingslib_expressive_color_slider_track_active);
+ mTrackInactiveColor = context.getColorStateList(
+ R.color.settingslib_expressive_color_slider_track_inactive);
+ mThumbColor = context.getColorStateList(
+ R.color.settingslib_expressive_color_slider_thumb);
+ mHaloColor = context.getColorStateList(R.color.settingslib_expressive_color_slider_halo);
+
+ Resources res = context.getResources();
+ mTrackHeight = res.getDimensionPixelSize(
+ R.dimen.settingslib_expressive_slider_track_height);
+ mTrackInsideCornerSize = res.getDimensionPixelSize(
+ R.dimen.settingslib_expressive_slider_track_inside_corner_size);
+ mTrackStopIndicatorSize = res.getDimensionPixelSize(
+ R.dimen.settingslib_expressive_slider_track_stop_indicator_size);
+ mThumbWidth = res.getDimensionPixelSize(R.dimen.settingslib_expressive_slider_thumb_width);
+ mThumbHeight = res.getDimensionPixelSize(
+ R.dimen.settingslib_expressive_slider_thumb_height);
+ mThumbElevation = res.getDimensionPixelSize(
+ R.dimen.settingslib_expressive_slider_thumb_elevation);
+ mThumbStrokeWidth = res.getDimensionPixelSize(
+ R.dimen.settingslib_expressive_slider_thumb_stroke_width);
+ mThumbTrackGapSize = res.getDimensionPixelSize(
+ R.dimen.settingslib_expressive_slider_thumb_track_gap_size);
+ mTickRadius = res.getDimensionPixelSize(R.dimen.settingslib_expressive_slider_tick_radius);
+ }
+
+ /**
+ * Constructor that is called when inflating a preference from XML. This is called when a
+ * preference is being constructed from an XML file, supplying attributes that were specified
+ * in the XML file. This version uses a default style of 0, so the only attribute values
+ * applied are those in the Context's Theme and the given AttributeSet.
+ *
+ * @param context The Context this is associated with, through which it can access the
+ * current theme, resources, etc.
+ * @param attrs The attributes of the XML tag that is inflating the preference
+ */
+ public SliderPreference(@NonNull Context context, @Nullable AttributeSet attrs) {
+ this(context, attrs, 0 /* defStyleAttr */);
+ }
+
+ /**
+ * Constructor to create a slider preference.
+ *
+ * @param context The Context this is associated with, through which it can access the
+ * current theme, resources, etc.
+ */
+ public SliderPreference(@NonNull Context context) {
+ this(context, null);
+ }
+
+ private static void setIconViewAndFrameEnabled(View iconView, ViewGroup iconFrame,
+ boolean enabled) {
+ iconView.setEnabled(enabled);
+ iconFrame.setEnabled(enabled);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+ holder.itemView.setOnKeyListener(mSliderKeyListener);
+ mSlider = (Slider) holder.findViewById(R.id.slider);
+
+ if (mSlider == null) {
+ Log.e(TAG, "Slider is null in onBindViewHolder.");
+ return;
+ }
+
+ if (mShowSliderValue) {
+ mSlider.setLabelBehavior(LabelFormatter.LABEL_FLOATING);
+ } else {
+ mSlider.setLabelBehavior(LabelFormatter.LABEL_GONE);
+ }
+ if (mLabelFormater != null) {
+ mSlider.setLabelFormatter(mLabelFormater);
+ }
+ if (mSliderIncrement != 0) {
+ mSlider.setStepSize(mSliderIncrement);
+ } else {
+ mSliderIncrement = (int) (mSlider.getStepSize());
+ }
+ mSlider.setValueFrom(mMin);
+ mSlider.setValueTo(mMax);
+ mSlider.setValue(mSliderValue);
+ mSlider.addOnSliderTouchListener(mTouchListener);
+ mSlider.addOnChangeListener(mChangeListener);
+ mSlider.setEnabled(isEnabled());
+
+ // Set up slider color
+ mSlider.setTrackActiveTintList(mTrackActiveColor);
+ mSlider.setTrackInactiveTintList(mTrackInactiveColor);
+ mSlider.setThumbTintList(mThumbColor);
+ mSlider.setHaloTintList(mHaloColor);
+ mSlider.setTickActiveTintList(mTrackInactiveColor);
+ mSlider.setTickInactiveTintList(mTrackActiveColor);
+
+ // Set up slider size
+ if (SettingsThemeHelper.isExpressiveTheme(getContext())) {
+ mSlider.setTrackHeight(mTrackHeight);
+ // need to drop 1.12.0 to Android
+ mSlider.setTrackInsideCornerSize(mTrackInsideCornerSize);
+ mSlider.setTrackStopIndicatorSize(mTrackStopIndicatorSize);
+ mSlider.setThumbWidth(mThumbWidth);
+ mSlider.setThumbHeight(mThumbHeight);
+ mSlider.setThumbElevation(mThumbElevation);
+ mSlider.setThumbStrokeWidth(mThumbStrokeWidth);
+ mSlider.setThumbTrackGapSize(mThumbTrackGapSize);
+ mSlider.setTickActiveRadius(mTickRadius);
+ mSlider.setTickInactiveRadius(mTickRadius);
+ }
+
+ TextView startText = (TextView) holder.findViewById(android.R.id.text1);
+ if (mTextStartId > 0 && startText != null) {
+ startText.setText(mTextStartId);
+ }
+
+ TextView endText = (TextView) holder.findViewById(android.R.id.text2);
+ if (mTextEndId > 0 && endText != null) {
+ endText.setText(mTextEndId);
+ }
+
+ View labelFrame = holder.findViewById(R.id.label_frame);
+ if (labelFrame != null) {
+ boolean isValidTextResIdExist = mTextStartId > 0 || mTextEndId > 0;
+ labelFrame.setVisibility(isValidTextResIdExist ? View.VISIBLE : View.GONE);
+ }
+
+ ImageView iconStartView = (ImageView) holder.findViewById(R.id.icon_start);
+ updateIconStartIfNeeded(iconStartView);
+
+ ImageView iconEndView = (ImageView) holder.findViewById(R.id.icon_end);
+ updateIconEndIfNeeded(iconEndView);
+ }
+
+ /**
+ * Gets the lower bound set on the {@link Slider}.
+ *
+ * @return The lower bound set
+ */
+ public int getMin() {
+ return mMin;
+ }
+
+ /**
+ * Sets the lower bound on the {@link Slider}.
+ *
+ * @param min The lower bound to set
+ */
+ public void setMin(int min) {
+ if (min > mMax) {
+ min = mMax;
+ }
+ if (min != mMin) {
+ mMin = min;
+ notifyChanged();
+ }
+ }
+
+ /**
+ * Gets the upper bound set on the {@link Slider}.
+ *
+ * @return The upper bound set
+ */
+ public int getMax() {
+ return mMax;
+ }
+
+ /**
+ * Sets the upper bound on the {@link Slider}.
+ *
+ * @param max The upper bound to set
+ */
+ public final void setMax(int max) {
+ if (max < mMin) {
+ max = mMin;
+ }
+ if (max != mMax) {
+ mMax = max;
+ notifyChanged();
+ }
+ }
+
+ public final int getSliderIncrement() {
+ return mSliderIncrement;
+ }
+
+ /**
+ * Sets the increment amount on the {@link Slider} for each arrow key press.
+ *
+ * @param sliderIncrement The amount to increment or decrement when the user presses an
+ * arrow key.
+ */
+ public final void setSliderIncrement(int sliderIncrement) {
+ if (sliderIncrement != mSliderIncrement) {
+ mSliderIncrement = Math.min(mMax - mMin, Math.abs(sliderIncrement));
+ notifyChanged();
+ }
+ }
+
+ /**
+ * Gets whether the {@link Slider} should respond to the left/right keys.
+ *
+ * @return Whether the {@link Slider} should respond to the left/right keys
+ */
+ public boolean isAdjustable() {
+ return mAdjustable;
+ }
+
+ /**
+ * Sets whether the {@link Slider} should respond to the left/right keys.
+ *
+ * @param adjustable Whether the {@link Slider} should respond to the left/right keys
+ */
+ public void setAdjustable(boolean adjustable) {
+ mAdjustable = adjustable;
+ }
+
+ /**
+ * Gets whether the {@link SliderPreference} should continuously save the {@link Slider} value
+ * while it is being dragged. Note that when the value is true,
+ * {@link Preference.OnPreferenceChangeListener} will be called continuously as well.
+ *
+ * @return Whether the {@link SliderPreference} should continuously save the {@link Slider}
+ * value while it is being dragged
+ * @see #setUpdatesContinuously(boolean)
+ */
+ public boolean getUpdatesContinuously() {
+ return mUpdatesContinuously;
+ }
+
+ /**
+ * Sets whether the {@link SliderPreference} should continuously save the {@link Slider} value
+ * while it is being dragged.
+ *
+ * @param updatesContinuously Whether the {@link SliderPreference} should continuously save
+ * the {@link Slider} value while it is being dragged
+ * @see #getUpdatesContinuously()
+ */
+ public void setUpdatesContinuously(boolean updatesContinuously) {
+ mUpdatesContinuously = updatesContinuously;
+ }
+
+ /**
+ * Gets whether the current {@link Slider} value is displayed to the user.
+ *
+ * @return Whether the current {@link Slider} value is displayed to the user
+ * @see #setShowSliderValue(boolean)
+ */
+ public boolean getShowSliderValue() {
+ return mShowSliderValue;
+ }
+
+ /**
+ * Sets whether the current {@link Slider} value is displayed to the user.
+ *
+ * @param showSliderValue Whether the current {@link Slider} value is displayed to the user
+ * @see #getShowSliderValue()
+ */
+ public void setShowSliderValue(boolean showSliderValue) {
+ mShowSliderValue = showSliderValue;
+ notifyChanged();
+ }
+
+ public void setLabelFormater(@Nullable LabelFormatter formater) {
+ mLabelFormater = formater;
+ }
+
+ /**
+ * Gets the current progress of the {@link Slider}.
+ *
+ * @return The current progress of the {@link Slider}
+ */
+ public int getValue() {
+ return mSliderValue;
+ }
+
+ /**
+ * Sets the current progress of the {@link Slider}.
+ *
+ * @param sliderValue The current progress of the {@link Slider}
+ */
+ public void setValue(int sliderValue) {
+ setValueInternal(sliderValue, true);
+ }
+
+ @Override
+ protected void onSetInitialValue(@Nullable Object defaultValue) {
+ if (defaultValue == null) {
+ defaultValue = 0;
+ }
+ setValue(getPersistedInt((Integer) defaultValue));
+ }
+
+ @Override
+ protected @Nullable Object onGetDefaultValue(@NonNull TypedArray a, int index) {
+ return a.getInt(index, 0);
+ }
+
+ /**
+ * Persist the {@link Slider}'s Slider value if callChangeListener returns true, otherwise
+ * set the {@link Slider}'s value to the stored value.
+ */
+ void syncValueInternal(@NonNull Slider slider) {
+ int sliderValue = mMin + (int) slider.getValue();
+ if (sliderValue != mSliderValue) {
+ if (callChangeListener(sliderValue)) {
+ setValueInternal(sliderValue, false);
+ // TODO: mHapticFeedbackMode
+ } else {
+ slider.setValue(mSliderValue);
+ }
+ }
+ }
+
+ private void setValueInternal(int sliderValue, boolean notifyChanged) {
+ if (sliderValue < mMin) {
+ sliderValue = mMin;
+ }
+ if (sliderValue > mMax) {
+ sliderValue = mMax;
+ }
+
+ if (sliderValue != mSliderValue) {
+ mSliderValue = sliderValue;
+ persistInt(sliderValue);
+ if (notifyChanged) {
+ notifyChanged();
+ }
+ }
+ }
+
+ @Nullable
+ @Override
+ protected Parcelable onSaveInstanceState() {
+ Parcelable superState = super.onSaveInstanceState();
+ if (isPersistent()) {
+ // No need to save instance state since it's persistent
+ return superState;
+ }
+
+ // Save the instance state
+ SavedState myState = new SavedState(superState);
+ myState.mSliderValue = mSliderValue;
+ myState.mMin = mMin;
+ myState.mMax = mMax;
+ return myState;
+ }
+
+ @Override
+ protected void onRestoreInstanceState(@Nullable Parcelable state) {
+ if (state == null || !state.getClass().equals(SavedState.class)) {
+ // Didn't save state for us in onSaveInstanceState
+ super.onRestoreInstanceState(state);
+ return;
+ }
+
+ // Restore the instance state
+ SavedState myState = (SavedState) state;
+ super.onRestoreInstanceState(myState.getSuperState());
+ mSliderValue = myState.mSliderValue;
+ mMin = myState.mMin;
+ mMax = myState.mMax;
+ notifyChanged();
+ }
+
+ private void updateIconStartIfNeeded(ImageView icon) {
+ if (icon == null) {
+ return;
+ }
+ ViewGroup iconFrame = (ViewGroup) icon.getParent();
+ if (iconFrame == null) {
+ return;
+ }
+
+ if (mIconStartId == 0 || mSliderIncrement == 0) {
+ iconFrame.setVisibility(View.GONE);
+ return;
+ }
+
+ if (icon.getDrawable() == null) {
+ icon.setImageResource(mIconStartId);
+ }
+
+ if (mIconStartContentDescriptionId != 0) {
+ String contentDescription =
+ iconFrame.getContext().getString(mIconStartContentDescriptionId);
+ iconFrame.setContentDescription(contentDescription);
+ }
+
+ iconFrame.setOnClickListener((view) -> {
+ if (mSliderValue > 0) {
+ setValue(mSliderValue - mSliderIncrement);
+ }
+ });
+
+ iconFrame.setVisibility(View.VISIBLE);
+ setIconViewAndFrameEnabled(icon, iconFrame, mSliderValue > mMin);
+ }
+
+ private void updateIconEndIfNeeded(ImageView icon) {
+ if (icon == null) {
+ return;
+ }
+ ViewGroup iconFrame = (ViewGroup) icon.getParent();
+ if (iconFrame == null) {
+ return;
+ }
+
+ if (mIconEndId == 0 || mSliderIncrement == 0) {
+ iconFrame.setVisibility(View.GONE);
+ return;
+ }
+
+ if (icon.getDrawable() == null) {
+ icon.setImageResource(mIconEndId);
+ }
+
+ if (mIconEndContentDescriptionId != 0) {
+ String contentDescription =
+ iconFrame.getContext().getString(mIconEndContentDescriptionId);
+ iconFrame.setContentDescription(contentDescription);
+ }
+
+ iconFrame.setOnClickListener((view) -> {
+ if (mSliderValue < mMax) {
+ setValue(mSliderValue + mSliderIncrement);
+ }
+ });
+
+ iconFrame.setVisibility(View.VISIBLE);
+ setIconViewAndFrameEnabled(icon, iconFrame, mSliderValue < mMax);
+ }
+
+ /**
+ * SavedState, a subclass of {@link BaseSavedState}, will store the state of this preference.
+ *
+ * <p>It is important to always call through to super methods.
+ */
+ private static class SavedState extends BaseSavedState {
+ public static final Parcelable.Creator<SavedState> CREATOR =
+ new Parcelable.Creator<>() {
+ @Override
+ @NonNull
+ public SavedState createFromParcel(@NonNull Parcel in) {
+ return new SavedState(in);
+ }
+
+ @Override
+ @NonNull
+ public SavedState[] newArray(int size) {
+ return new SavedState[size];
+ }
+ };
+
+ int mSliderValue;
+ int mMin;
+ int mMax;
+
+ SavedState(Parcel source) {
+ super(source);
+
+ // Restore the click counter
+ mSliderValue = source.readInt();
+ mMin = source.readInt();
+ mMax = source.readInt();
+ }
+
+ SavedState(Parcelable superState) {
+ super(superState);
+ }
+
+ @Override
+ public void writeToParcel(@NonNull Parcel dest, int flags) {
+ super.writeToParcel(dest, flags);
+
+ // Save the click counter
+ dest.writeInt(mSliderValue);
+ dest.writeInt(mMin);
+ dest.writeInt(mMax);
+ }
+ }
+}
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/IntroPreference.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/IntroPreference.kt
index 77073765d5a9..6d3f7bc1147d 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/IntroPreference.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/IntroPreference.kt
@@ -91,7 +91,7 @@ private fun IntroIcon(imageVector: ImageVector?) {
imageVector = imageVector,
contentDescription = null,
modifier = Modifier.size(SettingsDimension.introIconSize),
- tint = MaterialTheme.colorScheme.onSecondary,
+ tint = MaterialTheme.colorScheme.onSecondaryContainer,
)
}
}
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetPreference.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetPreference.kt
index 92b1005d07e4..3aa7ad0a992d 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetPreference.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetPreference.kt
@@ -49,7 +49,14 @@ internal fun TwoTargetPreference(
widget: @Composable () -> Unit,
) {
Row(
- modifier = Modifier.fillMaxWidth().padding(end = SettingsDimension.itemPaddingEnd),
+ modifier =
+ Modifier.fillMaxWidth()
+ .then(
+ if (isSpaExpressiveEnabled)
+ Modifier.background(MaterialTheme.colorScheme.surfaceBright)
+ else Modifier
+ )
+ .padding(end = SettingsDimension.itemPaddingEnd),
verticalAlignment = Alignment.CenterVertically,
) {
if (isSpaExpressiveEnabled) {
diff --git a/packages/SettingsLib/StatusBannerPreference/Android.bp b/packages/SettingsLib/StatusBannerPreference/Android.bp
new file mode 100644
index 000000000000..d6af318da108
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/Android.bp
@@ -0,0 +1,33 @@
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "frameworks_base_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["frameworks_base_license"],
+}
+
+android_library {
+ name: "SettingsLibStatusBannerPreference",
+ use_resource_processor: true,
+ defaults: [
+ "SettingsLintDefaults",
+ ],
+
+ srcs: [
+ "src/**/*.java",
+ "src/**/*.kt",
+ ],
+ resource_dirs: ["res"],
+
+ static_libs: [
+ "androidx.annotation_annotation",
+ "androidx.preference_preference",
+ "SettingsLibSettingsTheme",
+ ],
+ sdk_version: "system_current",
+ min_sdk_version: "24",
+ apex_available: [
+ "//apex_available:platform",
+ ],
+}
diff --git a/packages/SettingsLib/StatusBannerPreference/AndroidManifest.xml b/packages/SettingsLib/StatusBannerPreference/AndroidManifest.xml
new file mode 100644
index 000000000000..1dca93f813e3
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/AndroidManifest.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2020 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.settingslib.widget.preference.statusbanner">
+
+ <uses-sdk android:minSdkVersion="24" />
+
+</manifest>
diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_high.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_high.xml
new file mode 100644
index 000000000000..b977893c2b89
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_high.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="oval">
+ <size android:height="68dp" android:width="68dp" />
+ <solid android:color="@color/settingslib_materialColorSurfaceContainerHigh" />
+</shape>
diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_low.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_low.xml
new file mode 100644
index 000000000000..b977893c2b89
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_low.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="oval">
+ <size android:height="68dp" android:width="68dp" />
+ <solid android:color="@color/settingslib_materialColorSurfaceContainerHigh" />
+</shape>
diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_medium.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_medium.xml
new file mode 100644
index 000000000000..b977893c2b89
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_medium.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="oval">
+ <size android:height="68dp" android:width="68dp" />
+ <solid android:color="@color/settingslib_materialColorSurfaceContainerHigh" />
+</shape>
diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_generic.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_generic.xml
new file mode 100644
index 000000000000..b64c09f6f12e
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_generic.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="oval">
+ <size android:height="68dp" android:width="68dp" />
+ <solid android:color="@color/settingslib_materialColorSurfaceContainerHigh" />
+</shape> \ No newline at end of file
diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_high.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_high.xml
new file mode 100644
index 000000000000..c3caaf7fb1c9
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_high.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="oval">
+ <size android:height="68dp" android:width="68dp" />
+ <solid android:color="#FFECEE" />
+</shape>
diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_low.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_low.xml
new file mode 100644
index 000000000000..4e2254c44016
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_low.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="oval">
+ <size android:height="68dp" android:width="68dp" />
+ <solid android:color="#DDF8D8" />
+</shape>
diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_medium.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_medium.xml
new file mode 100644
index 000000000000..31ac0596353c
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_medium.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="oval">
+ <size android:height="68dp" android:width="68dp" />
+ <solid android:color="#FFF2B4" />
+</shape>
diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_high.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_high.xml
new file mode 100644
index 000000000000..58d0fd023b54
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_high.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="34dp"
+ android:height="42dp"
+ android:viewportWidth="34"
+ android:viewportHeight="42">
+ <path
+ android:pathData="M0.856,17.569C0.887,19.083 1.004,20.593 1.206,22.094C2.166,28.584 5.804,35.937 15.774,41.089C16.171,41.293 16.61,41.4 17.056,41.4C17.503,41.4 17.942,41.293 18.339,41.089C28.309,35.936 31.947,28.583 32.907,22.093C33.109,20.593 33.226,19.083 33.256,17.569V8.605C33.257,7.919 33.046,7.25 32.652,6.688C32.259,6.127 31.703,5.7 31.059,5.467L18.191,0.8C17.458,0.534 16.655,0.534 15.922,0.8L3.054,5.467C2.41,5.7 1.854,6.127 1.461,6.688C1.067,7.25 0.856,7.919 0.856,8.605V17.569Z"
+ android:fillColor="#DB372D"/>
+ <path
+ android:pathData="M15.067,24.333V10.733H18.933V24.333H15.067ZM15.067,31.267V27.433H18.933V31.267H15.067Z"
+ android:fillColor="@color/settingslib_materialColorSurfaceContainerLowest"/>
+</vector>
diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_low.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_low.xml
new file mode 100644
index 000000000000..d8862e87ba19
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_low.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="34dp"
+ android:height="42dp"
+ android:viewportWidth="34"
+ android:viewportHeight="42">
+ <path
+ android:pathData="M0.856,17.569C0.887,19.083 1.004,20.593 1.206,22.094C2.166,28.584 5.804,35.937 15.774,41.089C16.171,41.293 16.61,41.4 17.056,41.4C17.503,41.4 17.942,41.293 18.339,41.089C28.309,35.936 31.947,28.583 32.907,22.093C33.109,20.593 33.226,19.083 33.256,17.569V8.605C33.257,7.919 33.046,7.25 32.652,6.688C32.259,6.127 31.703,5.7 31.059,5.467L18.191,0.8C17.458,0.534 16.655,0.534 15.922,0.8L3.054,5.467C2.41,5.7 1.854,6.127 1.461,6.688C1.067,7.25 0.856,7.919 0.856,8.605V17.569Z"
+ android:fillColor="#1AA64A"/>
+ <path
+ android:pathData="M14.389,27.733L8.423,21.767L11.156,19.033L14.389,22.267L22.956,13.7L25.69,16.433L14.389,27.733Z"
+ android:fillColor="@color/settingslib_materialColorSurfaceContainerLowest"/>
+</vector>
diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_medium.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_medium.xml
new file mode 100644
index 000000000000..5e34050e7a3d
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_medium.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="34dp"
+ android:height="42dp"
+ android:viewportWidth="34"
+ android:viewportHeight="42">
+ <path
+ android:pathData="M0.856,17.569C0.887,19.083 1.004,20.593 1.206,22.094C2.166,28.584 5.804,35.937 15.774,41.089C16.171,41.293 16.61,41.4 17.056,41.4C17.503,41.4 17.942,41.293 18.339,41.089C28.309,35.936 31.947,28.583 32.907,22.093C33.109,20.593 33.226,19.083 33.256,17.569V8.605C33.257,7.919 33.046,7.25 32.652,6.688C32.259,6.127 31.703,5.7 31.059,5.467L18.191,0.8C17.458,0.534 16.655,0.534 15.922,0.8L3.054,5.467C2.41,5.7 1.854,6.127 1.461,6.688C1.067,7.25 0.856,7.919 0.856,8.605V17.569Z"
+ android:fillColor="#FCBD00"/>
+ <path
+ android:pathData="M15.067,24.333V10.733H18.933V24.333H15.067ZM15.067,31.267V27.433H18.933V31.267H15.067Z"
+ android:fillColor="@color/settingslib_materialColorSurfaceContainerLowest"/>
+</vector>
diff --git a/packages/SettingsLib/StatusBannerPreference/res/layout/settingslib_expressive_preference_statusbanner.xml b/packages/SettingsLib/StatusBannerPreference/res/layout/settingslib_expressive_preference_statusbanner.xml
new file mode 100644
index 000000000000..9a3e5b9e1e50
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/res/layout/settingslib_expressive_preference_statusbanner.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<com.google.android.material.card.MaterialCardView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ style="@style/SettingsLibStatusBannerCardStyle">
+
+ <LinearLayout
+ android:id="@+id/banner_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:baselineAligned="false"
+ android:paddingVertical="@dimen/settingslib_expressive_space_small1"
+ android:paddingHorizontal="?android:attr/listPreferredItemPaddingStart"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:id="@+id/status_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="horizontal">
+
+ <FrameLayout
+ android:id="@android:id/icon_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:minWidth="@dimen/settingslib_status_banner_icon_frame_size"
+ android:minHeight="@dimen/settingslib_status_banner_icon_frame_size"
+ android:gravity="center"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:id="@+id/icon_background"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"/>
+
+ <ImageView
+ android:id="@android:id/icon"
+ android:layout_width="@dimen/settingslib_expressive_space_medium4"
+ android:layout_height="@dimen/settingslib_expressive_space_medium4"
+ android:layout_gravity="center"
+ android:scaleType="centerInside"/>
+
+ </FrameLayout>
+
+ <LinearLayout
+ android:id="@+id/text_container"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:paddingVertical="@dimen/settingslib_expressive_space_extrasmall4"
+ android:paddingHorizontal="@dimen/settingslib_expressive_space_small1"
+ android:layout_weight="1"
+ android:layout_gravity="center"
+ android:orientation="vertical">
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hyphenationFrequency="normalFast"
+ android:lineBreakWordStyle="phrase"
+ android:textAppearance="@style/SettingsLibTextAppearance.Emphasized.Title.Large"/>
+
+ <TextView
+ android:id="@android:id/summary"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hyphenationFrequency="normalFast"
+ android:lineBreakWordStyle="phrase"
+ android:maxLines="3"
+ android:textAppearance="@style/SettingsLibTextAppearance.Primary.Body.Medium"/>
+ </LinearLayout>
+ </LinearLayout>
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/status_banner_button"
+ android:layout_marginTop="@dimen/settingslib_expressive_space_small3"
+ style="@style/SettingsLibButtonStyle.Expressive.Filled.Extra"/>
+
+ </LinearLayout>
+</com.google.android.material.card.MaterialCardView> \ No newline at end of file
diff --git a/packages/SettingsLib/StatusBannerPreference/res/values/attrs.xml b/packages/SettingsLib/StatusBannerPreference/res/values/attrs.xml
new file mode 100644
index 000000000000..54860d4af20f
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/res/values/attrs.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<resources>
+ <declare-styleable name="StatusBanner">
+ <attr name="iconLevel" format="enum">
+ <enum name="generic" value="0"/>
+ <enum name="low" value="1"/>
+ <enum name="medium" value="2"/>
+ <enum name="high" value="3"/>
+ </attr>
+ <attr name="buttonLevel" format="enum">
+ <enum name="generic" value="0"/>
+ <enum name="low" value="1"/>
+ <enum name="medium" value="2"/>
+ <enum name="high" value="3"/>
+ </attr>
+ <attr name="buttonText" format="string"/>
+ </declare-styleable>
+</resources> \ No newline at end of file
diff --git a/packages/SettingsLib/StatusBannerPreference/res/values/colors.xml b/packages/SettingsLib/StatusBannerPreference/res/values/colors.xml
new file mode 100644
index 000000000000..19181dd55852
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/res/values/colors.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<resources>
+ <!-- static palette green60 -->
+ <color name="settingslib_expressive_color_status_level_low">#1AA64A</color>
+ <!-- static palette yellow80 -->
+ <color name="settingslib_expressive_color_status_level_medium">#FCBD00</color>
+ <!-- static palette red50 -->
+ <color name="settingslib_expressive_color_status_level_high">#DB372D</color>
+</resources> \ No newline at end of file
diff --git a/packages/SettingsLib/StatusBannerPreference/res/values/dimens.xml b/packages/SettingsLib/StatusBannerPreference/res/values/dimens.xml
new file mode 100644
index 000000000000..f18f168701c0
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/res/values/dimens.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<resources>
+ <dimen name="settingslib_status_banner_icon_frame_size">68dp</dimen>
+</resources> \ No newline at end of file
diff --git a/packages/SettingsLib/StatusBannerPreference/src/com/android/settingslib/widget/StatusBannerPreference.kt b/packages/SettingsLib/StatusBannerPreference/src/com/android/settingslib/widget/StatusBannerPreference.kt
new file mode 100644
index 000000000000..c1578ef69635
--- /dev/null
+++ b/packages/SettingsLib/StatusBannerPreference/src/com/android/settingslib/widget/StatusBannerPreference.kt
@@ -0,0 +1,197 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settingslib.widget
+
+import android.content.Context
+import android.content.res.ColorStateList
+import android.graphics.drawable.Drawable
+import android.util.AttributeSet
+import android.view.View
+import android.widget.ImageView
+import androidx.annotation.StringRes
+import androidx.core.content.ContextCompat
+import androidx.preference.Preference
+import androidx.preference.PreferenceViewHolder
+import com.android.settingslib.widget.preference.statusbanner.R
+import com.google.android.material.button.MaterialButton
+
+class StatusBannerPreference @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0,
+ defStyleRes: Int = 0
+) : Preference(context, attrs, defStyleAttr, defStyleRes) {
+
+ enum class BannerStatus {
+ GENERIC,
+ LOW,
+ MEDIUM,
+ HIGH
+ }
+ var iconLevel: BannerStatus = BannerStatus.GENERIC
+ set(value) {
+ field = value
+ notifyChanged()
+ }
+ var buttonLevel: BannerStatus = BannerStatus.GENERIC
+ set(value) {
+ field = value
+ notifyChanged()
+ }
+ private var buttonText: String = ""
+ set(value) {
+ field = value
+ notifyChanged()
+ }
+ private var listener: View.OnClickListener? = null
+
+ init {
+ layoutResource = R.layout.settingslib_expressive_preference_statusbanner
+ isSelectable = false
+
+ initAttributes(context, attrs, defStyleAttr)
+ }
+
+ private fun initAttributes(context: Context, attrs: AttributeSet?, defStyleAttr: Int) {
+ context.obtainStyledAttributes(
+ attrs,
+ R.styleable.StatusBanner, defStyleAttr, 0
+ ).apply {
+ iconLevel = getInteger(R.styleable.StatusBanner_iconLevel, 0).toBannerStatus()
+ if (icon == null) {
+ icon = getIconDrawable(iconLevel)
+ } else {
+ icon!!.setTintList(ColorStateList.valueOf(getBackgroundColor(iconLevel)))
+ }
+ buttonLevel = getInteger(R.styleable.StatusBanner_buttonLevel, 0).toBannerStatus()
+ buttonText = getString(R.styleable.StatusBanner_buttonText) ?: ""
+ recycle()
+ }
+ }
+
+ private fun Int.toBannerStatus(): BannerStatus = when (this) {
+ 1 -> BannerStatus.LOW
+ 2 -> BannerStatus.MEDIUM
+ 3 -> BannerStatus.HIGH
+ else -> BannerStatus.GENERIC
+ }
+
+ override fun onBindViewHolder(holder: PreferenceViewHolder) {
+ super.onBindViewHolder(holder)
+ holder.isDividerAllowedBelow = false
+ holder.isDividerAllowedAbove = false
+
+ (holder.findViewById(R.id.icon_background) as? ImageView)?.apply {
+ setImageDrawable(getBackgroundDrawable(iconLevel))
+ }
+
+ holder.findViewById(android.R.id.icon_frame)?.apply {
+ visibility = if (icon != null) View.VISIBLE else View.GONE
+ }
+
+ (holder.findViewById(R.id.status_banner_button) as? MaterialButton)?.apply {
+ setBackgroundColor(getBackgroundColor(buttonLevel))
+ text = buttonText
+ setOnClickListener(listener)
+ visibility = if (listener != null) View.VISIBLE else View.GONE
+ }
+ }
+
+ /**
+ * Sets the text to be displayed in button.
+ */
+ fun setButtonText(@StringRes textResId: Int) {
+ buttonText = context.getString(textResId)
+ }
+
+ /**
+ * Register a callback to be invoked when positive button is clicked.
+ */
+ fun setButtonOnClickListener(listener: View.OnClickListener) {
+ this.listener = listener
+ notifyChanged()
+ }
+
+ private fun getBackgroundColor(level: BannerStatus): Int {
+ return when (level) {
+ BannerStatus.LOW -> ContextCompat.getColor(
+ context,
+ R.color.settingslib_expressive_color_status_level_low
+ )
+
+ BannerStatus.MEDIUM -> ContextCompat.getColor(
+ context,
+ R.color.settingslib_expressive_color_status_level_medium
+ )
+
+ BannerStatus.HIGH -> ContextCompat.getColor(
+ context,
+ R.color.settingslib_expressive_color_status_level_high
+ )
+
+ else -> ContextCompat.getColor(
+ context,
+ com.android.settingslib.widget.theme.R.color.settingslib_materialColorPrimary
+ )
+ }
+ }
+
+ private fun getIconDrawable(level: BannerStatus): Drawable? {
+ return when (level) {
+ BannerStatus.LOW -> ContextCompat.getDrawable(
+ context,
+ R.drawable.settingslib_expressive_icon_status_level_low
+ )
+
+ BannerStatus.MEDIUM -> ContextCompat.getDrawable(
+ context,
+ R.drawable.settingslib_expressive_icon_status_level_medium
+ )
+
+ BannerStatus.HIGH -> ContextCompat.getDrawable(
+ context,
+ R.drawable.settingslib_expressive_icon_status_level_high
+ )
+
+ else -> null
+ }
+ }
+
+ private fun getBackgroundDrawable(level: BannerStatus): Drawable? {
+ return when (level) {
+ BannerStatus.LOW -> ContextCompat.getDrawable(
+ context,
+ R.drawable.settingslib_expressive_background_level_low
+ )
+
+ BannerStatus.MEDIUM -> ContextCompat.getDrawable(
+ context,
+ R.drawable.settingslib_expressive_background_level_medium
+ )
+
+ BannerStatus.HIGH -> ContextCompat.getDrawable(
+ context,
+ R.drawable.settingslib_expressive_background_level_high
+ )
+
+ else -> ContextCompat.getDrawable(
+ context,
+ R.drawable.settingslib_expressive_background_generic
+ )
+ }
+ }
+} \ No newline at end of file
diff --git a/packages/SettingsLib/TopIntroPreference/src/com/android/settingslib/widget/TopIntroPreference.kt b/packages/SettingsLib/TopIntroPreference/src/com/android/settingslib/widget/TopIntroPreference.kt
index 1c5cd2aeaeb6..5be56f8ebc86 100644
--- a/packages/SettingsLib/TopIntroPreference/src/com/android/settingslib/widget/TopIntroPreference.kt
+++ b/packages/SettingsLib/TopIntroPreference/src/com/android/settingslib/widget/TopIntroPreference.kt
@@ -35,6 +35,7 @@ open class TopIntroPreference @JvmOverloads constructor(
private var isCollapsable: Boolean = false
private var minLines: Int = 2
+ private var hyperlinkListener: View.OnClickListener? = null
private var learnMoreListener: View.OnClickListener? = null
private var learnMoreText: CharSequence? = null
@@ -75,6 +76,9 @@ open class TopIntroPreference @JvmOverloads constructor(
setCollapsable(isCollapsable)
setMinLines(minLines)
setText(title.toString())
+ if (hyperlinkListener != null) {
+ setHyperlinkListener(hyperlinkListener)
+ }
if (learnMoreListener != null) {
setLearnMoreText(learnMoreText)
setLearnMoreAction(learnMoreListener)
@@ -103,6 +107,18 @@ open class TopIntroPreference @JvmOverloads constructor(
}
/**
+ * Sets the action when clicking on the hyperlink in the text.
+ * @param listener The click listener for hyperlink.
+ */
+ @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
+ fun setHyperlinkListener(listener: View.OnClickListener) {
+ if (hyperlinkListener != listener) {
+ hyperlinkListener = listener
+ notifyChanged()
+ }
+ }
+
+ /**
* Sets the action when clicking on the learn more view.
* @param listener The click listener for learn more.
*/
diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml
index d4e01ded8f59..2fd84f36c664 100644
--- a/packages/SettingsLib/res/values-en-rGB/strings.xml
+++ b/packages/SettingsLib/res/values-en-rGB/strings.xml
@@ -585,7 +585,6 @@
<string name="media_transfer_this_device_name_desktop" msgid="7912386128141470452">"This computer (internal)"</string>
<!-- no translation found for media_transfer_this_device_name_tv (5285685336836896535) -->
<skip />
- <string name="media_transfer_internal_mic" msgid="797333824290228595">"Microphone (internal)"</string>
<string name="media_transfer_dock_speaker_device_name" msgid="2856219597113881950">"Dock speaker"</string>
<string name="media_transfer_external_device_name" msgid="2588672258721846418">"External device"</string>
<string name="media_transfer_default_device_name" msgid="4315604017399871828">"Connected device"</string>
@@ -688,9 +687,11 @@
<string name="cached_apps_freezer_reboot_dialog_text" msgid="695330563489230096">"Your device must be rebooted for this change to apply. Reboot now or cancel."</string>
<string name="media_transfer_wired_headphone_name" msgid="8698668536022665254">"Wired headphones"</string>
<string name="media_transfer_headphone_name" msgid="1131962659136578852">"Headphone"</string>
- <string name="media_transfer_usb_speaker_name" msgid="4736537022543593896">"USB speaker"</string>
+ <!-- no translation found for media_transfer_usb_audio_name (1789292056757821355) -->
+ <skip />
<string name="media_transfer_wired_device_mic_name" msgid="7417067197803840965">"Mic jack"</string>
- <string name="media_transfer_usb_device_mic_name" msgid="9189914846215516322">"USB mic"</string>
+ <!-- no translation found for media_transfer_usb_device_mic_name (7171789543226269822) -->
+ <skip />
<string name="wifi_hotspot_switch_on_text" msgid="9212273118217786155">"On"</string>
<string name="wifi_hotspot_switch_off_text" msgid="7245567251496959764">"Off"</string>
<string name="carrier_network_change_mode" msgid="4257621815706644026">"Operator network changing"</string>
diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml
index 7f5bb0fa55dc..e286643c5cf5 100644
--- a/packages/SettingsLib/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml
@@ -585,7 +585,6 @@
<string name="media_transfer_this_device_name_desktop" msgid="7912386128141470452">"Este computador (interno)"</string>
<!-- no translation found for media_transfer_this_device_name_tv (5285685336836896535) -->
<skip />
- <string name="media_transfer_internal_mic" msgid="797333824290228595">"Microfone (interno)"</string>
<string name="media_transfer_dock_speaker_device_name" msgid="2856219597113881950">"Alto-falante da base"</string>
<string name="media_transfer_external_device_name" msgid="2588672258721846418">"Dispositivo externo"</string>
<string name="media_transfer_default_device_name" msgid="4315604017399871828">"Dispositivo conectado"</string>
@@ -688,9 +687,11 @@
<string name="cached_apps_freezer_reboot_dialog_text" msgid="695330563489230096">"É necessário reinicializar o dispositivo para que a mudança seja aplicada. Faça isso agora ou cancele."</string>
<string name="media_transfer_wired_headphone_name" msgid="8698668536022665254">"Fones de ouvido com fio"</string>
<string name="media_transfer_headphone_name" msgid="1131962659136578852">"Fone de ouvido"</string>
- <string name="media_transfer_usb_speaker_name" msgid="4736537022543593896">"Alto-falante USB"</string>
+ <!-- no translation found for media_transfer_usb_audio_name (1789292056757821355) -->
+ <skip />
<string name="media_transfer_wired_device_mic_name" msgid="7417067197803840965">"Entrada para microfone"</string>
- <string name="media_transfer_usb_device_mic_name" msgid="9189914846215516322">"Microfone USB"</string>
+ <!-- no translation found for media_transfer_usb_device_mic_name (7171789543226269822) -->
+ <skip />
<string name="wifi_hotspot_switch_on_text" msgid="9212273118217786155">"Ativado"</string>
<string name="wifi_hotspot_switch_off_text" msgid="7245567251496959764">"Desativado"</string>
<string name="carrier_network_change_mode" msgid="4257621815706644026">"Alteração de rede da operadora"</string>
diff --git a/packages/SettingsLib/src/com/android/settingslib/RestrictedInterface.kt b/packages/SettingsLib/src/com/android/settingslib/RestrictedInterface.kt
new file mode 100644
index 000000000000..14f9a19ee753
--- /dev/null
+++ b/packages/SettingsLib/src/com/android/settingslib/RestrictedInterface.kt
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settingslib
+
+import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin
+
+interface RestrictedInterface {
+ fun useAdminDisabledSummary(useSummary: Boolean)
+
+ fun checkRestrictionAndSetDisabled(userRestriction: String)
+
+ fun checkRestrictionAndSetDisabled(userRestriction: String, userId: Int)
+
+ /**
+ * Checks if the given setting is subject to Enhanced Confirmation Mode restrictions for this
+ * package. Marks the preference as disabled if so.
+ *
+ * @param settingIdentifier The key identifying the setting
+ * @param packageName the package to check the settingIdentifier for
+ */
+ fun checkEcmRestrictionAndSetDisabled(
+ settingIdentifier: String,
+ packageName: String
+ )
+
+ val isDisabledByAdmin: Boolean
+
+ fun setDisabledByAdmin(admin: EnforcedAdmin?)
+
+ val isDisabledByEcm: Boolean
+
+ val uid: Int
+
+ val packageName: String?
+}
diff --git a/packages/SettingsLib/src/com/android/settingslib/RestrictedSliderPreference.java b/packages/SettingsLib/src/com/android/settingslib/RestrictedSliderPreference.java
new file mode 100644
index 000000000000..1dc5281c266c
--- /dev/null
+++ b/packages/SettingsLib/src/com/android/settingslib/RestrictedSliderPreference.java
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settingslib;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.os.Process;
+import android.os.UserHandle;
+import android.util.AttributeSet;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.content.res.TypedArrayUtils;
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settingslib.widget.SliderPreference;
+
+/**
+ * Slide Preference that supports being disabled by a user restriction
+ * set by a device admin.
+ */
+public class RestrictedSliderPreference extends SliderPreference implements RestrictedInterface {
+ RestrictedPreferenceHelper mHelper;
+
+ public RestrictedSliderPreference(@NonNull Context context, @Nullable AttributeSet attrs,
+ int defStyleAttr, @Nullable String packageName, int uid) {
+ super(context, attrs, defStyleAttr);
+ mHelper = new RestrictedPreferenceHelper(context, this, attrs, packageName, uid);
+ }
+
+ public RestrictedSliderPreference(@NonNull Context context,
+ @Nullable AttributeSet attrs, int defStyleAttr) {
+ this(context, attrs, defStyleAttr, null, Process.INVALID_UID);
+ }
+
+ @SuppressLint("RestrictedApi")
+ public RestrictedSliderPreference(@NonNull Context context, @Nullable AttributeSet attrs) {
+ this(context, attrs, TypedArrayUtils.getAttr(context, R.attr.preferenceStyle,
+ android.R.attr.preferenceStyle));
+ }
+
+ public RestrictedSliderPreference(@NonNull Context context) {
+ this(context, null);
+ }
+
+ @SuppressLint("RestrictedApi")
+ public RestrictedSliderPreference(@NonNull Context context, @Nullable String packageName,
+ int uid) {
+ this(context, null, TypedArrayUtils.getAttr(context, R.attr.preferenceStyle,
+ android.R.attr.preferenceStyle), packageName, uid);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+ mHelper.onBindViewHolder(holder);
+ }
+
+ @SuppressLint("RestrictedApi")
+ @Override
+ public void performClick() {
+ if (!mHelper.performClick()) {
+ super.performClick();
+ }
+ }
+
+ @Override
+ public void setEnabled(boolean enabled) {
+ if (enabled && isDisabledByAdmin()) {
+ mHelper.setDisabledByAdmin(null);
+ return;
+ }
+
+ if (enabled && isDisabledByEcm()) {
+ mHelper.setDisabledByEcm(null);
+ return;
+ }
+
+ super.setEnabled(enabled);
+ }
+
+ @Override
+ public void useAdminDisabledSummary(boolean useSummary) {
+ mHelper.useAdminDisabledSummary(useSummary);
+ }
+
+ @Override
+ public void checkRestrictionAndSetDisabled(@NonNull String userRestriction) {
+ mHelper.checkRestrictionAndSetDisabled(userRestriction, UserHandle.myUserId());
+ }
+
+ @Override
+ public void checkRestrictionAndSetDisabled(@NonNull String userRestriction, int userId) {
+ mHelper.checkRestrictionAndSetDisabled(userRestriction, userId);
+ }
+
+ @Override
+ public void checkEcmRestrictionAndSetDisabled(@NonNull String settingIdentifier,
+ @NonNull String packageName) {
+ mHelper.checkEcmRestrictionAndSetDisabled(settingIdentifier, packageName);
+ }
+
+ @Override
+ public void setDisabledByAdmin(@Nullable RestrictedLockUtils.EnforcedAdmin admin) {
+ if (mHelper.setDisabledByAdmin(admin)) {
+ notifyChanged();
+ }
+ }
+
+ @Override
+ public boolean isDisabledByAdmin() {
+ return mHelper.isDisabledByAdmin();
+ }
+
+ @Override
+ public boolean isDisabledByEcm() {
+ return mHelper.isDisabledByEcm();
+ }
+
+ @Override
+ public int getUid() {
+ return mHelper != null ? mHelper.uid : Process.INVALID_UID;
+ }
+
+ @Override
+ @Nullable
+ public String getPackageName() {
+ return mHelper != null ? mHelper.packageName : null;
+ }
+
+ @Override
+ protected void onAttachedToHierarchy(@NonNull PreferenceManager preferenceManager) {
+ mHelper.onAttachedToHierarchy();
+ super.onAttachedToHierarchy(preferenceManager);
+ }
+}
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java
index 243ce85bd579..2b8b3b74dab9 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java
@@ -19,8 +19,6 @@ package com.android.settingslib.widget;
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
import android.app.Application;
import android.platform.test.annotations.DisableFlags;
@@ -68,7 +66,7 @@ public class SelectorWithWidgetPreferenceTest {
mPreference = new SelectorWithWidgetPreference(mContext);
View view = LayoutInflater.from(mContext)
- .inflate(R.layout.preference_selector_with_widget, null /* root */);
+ .inflate(mPreference.getLayoutResource(), null /* root */);
PreferenceViewHolder preferenceViewHolder =
PreferenceViewHolder.createInstanceForTests(view);
mPreference.onBindViewHolder(preferenceViewHolder);
@@ -104,28 +102,28 @@ public class SelectorWithWidgetPreferenceTest {
@Test
public void onBindViewHolder_withSummary_containerShouldBeVisible() {
mPreference.setSummary("some summary");
- View summaryContainer = new View(mContext);
- View view = mock(View.class);
- when(view.findViewById(R.id.summary_container)).thenReturn(summaryContainer);
+ View view = LayoutInflater.from(mContext)
+ .inflate(mPreference.getLayoutResource(), null /* root */);
PreferenceViewHolder preferenceViewHolder =
PreferenceViewHolder.createInstanceForTests(view);
mPreference.onBindViewHolder(preferenceViewHolder);
+ View summaryContainer = view.findViewById(R.id.summary_container);
assertEquals(View.VISIBLE, summaryContainer.getVisibility());
}
@Test
public void onBindViewHolder_emptySummary_containerShouldBeGone() {
mPreference.setSummary("");
- View summaryContainer = new View(mContext);
- View view = mock(View.class);
- when(view.findViewById(R.id.summary_container)).thenReturn(summaryContainer);
+ View view = LayoutInflater.from(mContext)
+ .inflate(mPreference.getLayoutResource(), null /* root */);
PreferenceViewHolder preferenceViewHolder =
PreferenceViewHolder.createInstanceForTests(view);
mPreference.onBindViewHolder(preferenceViewHolder);
+ View summaryContainer = view.findViewById(R.id.summary_container);
assertEquals(View.GONE, summaryContainer.getVisibility());
}
@@ -184,25 +182,49 @@ public class SelectorWithWidgetPreferenceTest {
}
@Test
+ public void onBindViewHolder_appliesWidgetContentDescription() {
+ mPreference = new SelectorWithWidgetPreference(mContext);
+ View view = LayoutInflater.from(mContext)
+ .inflate(mPreference.getLayoutResource(), /* root= */ null);
+ PreferenceViewHolder preferenceViewHolder =
+ PreferenceViewHolder.createInstanceForTests(view);
+
+ mPreference.setExtraWidgetContentDescription("this is clearer");
+ mPreference.onBindViewHolder(preferenceViewHolder);
+
+ View widget = preferenceViewHolder.findViewById(R.id.selector_extra_widget);
+ assertThat(widget.getContentDescription().toString()).isEqualTo("this is clearer");
+
+ mPreference.setExtraWidgetContentDescription(null);
+ mPreference.onBindViewHolder(preferenceViewHolder);
+
+ assertThat(widget.getContentDescription().toString()).isEqualTo("Settings");
+ }
+
+ @Test
public void nullSummary_containerShouldBeGone() {
mPreference.setSummary(null);
- View summaryContainer = new View(mContext);
- View view = mock(View.class);
- when(view.findViewById(R.id.summary_container)).thenReturn(summaryContainer);
+ View view = LayoutInflater.from(mContext)
+ .inflate(mPreference.getLayoutResource(), null /* root */);
PreferenceViewHolder preferenceViewHolder =
PreferenceViewHolder.createInstanceForTests(view);
+
mPreference.onBindViewHolder(preferenceViewHolder);
+
+ View summaryContainer = view.findViewById(R.id.summary_container);
assertEquals(View.GONE, summaryContainer.getVisibility());
}
@Test
public void setAppendixVisibility_setGone_shouldBeGone() {
mPreference.setAppendixVisibility(View.GONE);
-
View view = LayoutInflater.from(mContext)
- .inflate(R.layout.preference_selector_with_widget, null /* root */);
- PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(view);
+ .inflate(mPreference.getLayoutResource(), null /* root */);
+ PreferenceViewHolder holder =
+ PreferenceViewHolder.createInstanceForTests(view);
+
mPreference.onBindViewHolder(holder);
+
assertThat(holder.findViewById(R.id.appendix).getVisibility()).isEqualTo(View.GONE);
}
diff --git a/packages/SystemUI/aconfig/systemui.aconfig b/packages/SystemUI/aconfig/systemui.aconfig
index cb1411bdd91e..d98b2da5a811 100644
--- a/packages/SystemUI/aconfig/systemui.aconfig
+++ b/packages/SystemUI/aconfig/systemui.aconfig
@@ -630,6 +630,13 @@ flag {
}
flag {
+ name: "screenshot_multidisplay_focus_change"
+ namespace: "systemui"
+ description: "Only capture a single display when screenshotting"
+ bug: "362720389"
+}
+
+flag {
name: "run_fingerprint_detect_on_dismissible_keyguard"
namespace: "systemui"
description: "Run fingerprint detect instead of authenticate if the keyguard is dismissible."
@@ -1431,6 +1438,13 @@ flag {
}
flag {
+ name: "override_suppress_overlay_condition"
+ namespace: "systemui"
+ description: "Allow override the conditions to suppress the clipboard overlay"
+ bug: "358473717"
+}
+
+flag {
name: "media_projection_dialog_behind_lockscreen"
namespace: "systemui"
description: "Ensure MediaProjection Dialog appears behind the lockscreen"
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt
index d326f00d869e..bf8f6ce50944 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt
@@ -450,7 +450,7 @@ private fun BesideUserSwitcherLayout(
viewModel = viewModel,
pinButtonRowVerticalSpacing = 12.dp,
centerPatternDotsVertically = true,
- modifier = Modifier.align(Alignment.BottomCenter).testTag("InputArea"),
+ modifier = Modifier.align(Alignment.BottomCenter),
)
}
@@ -904,12 +904,9 @@ private fun UserSwitcherDropdownMenu(
DropdownMenu(
expanded = isExpanded,
onDismissRequest = onDismissed,
- offset =
- DpOffset(
- x = 0.dp,
- y = -UserSwitcherDropdownHeight,
- ),
- modifier = Modifier.width(UserSwitcherDropdownWidth),
+ offset = DpOffset(x = 0.dp, y = -UserSwitcherDropdownHeight),
+ modifier =
+ Modifier.width(UserSwitcherDropdownWidth).sysuiResTag("user_switcher_dropdown"),
) {
items.forEach { userSwitcherDropdownItem ->
DropdownMenuItem(
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationScrimNestedScrollConnection.kt b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationScrimNestedScrollConnection.kt
index fdf82ca026b1..8b9e9274b448 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationScrimNestedScrollConnection.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationScrimNestedScrollConnection.kt
@@ -81,7 +81,7 @@ fun NotificationScrimNestedScrollConnection(
if (scrimOffset() < minScrimOffset()) {
animateScrimOffset(minScrimOffset())
}
- 0f
+ { 0f }
},
)
}
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationStackNestedScrollConnection.kt b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationStackNestedScrollConnection.kt
index a2ae8bbf66e4..a706585deebc 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationStackNestedScrollConnection.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationStackNestedScrollConnection.kt
@@ -100,7 +100,7 @@ fun NotificationStackNestedScrollConnection(
},
onStop = { velocityAvailable ->
onStop(velocityAvailable)
- velocityAvailable
+ suspend { velocityAvailable }
},
)
}
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt b/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt
index a6d5c1cef81f..e9c5c0333fe5 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt
@@ -29,6 +29,8 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.drawWithContent
import androidx.compose.ui.layout.layout
import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.dimensionResource
+import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.viewinterop.AndroidView
import androidx.lifecycle.compose.collectAsStateWithLifecycle
@@ -45,6 +47,7 @@ import com.android.systemui.qs.ui.adapter.QSSceneAdapter.State.Companion.Collaps
import com.android.systemui.qs.ui.adapter.QSSceneAdapter.State.Expanding
import com.android.systemui.qs.ui.adapter.QSSceneAdapter.State.UnsquishingQQS
import com.android.systemui.qs.ui.adapter.QSSceneAdapter.State.UnsquishingQS
+import com.android.systemui.res.R
import com.android.systemui.scene.shared.model.Scenes
object QuickSettings {
@@ -73,10 +76,21 @@ object QuickSettings {
val MediaLandscapeTopOffset = ValueKey("MediaLandscapeTopOffset")
object MediaOffset {
- val InQQS = 0.dp
// Brightness + padding
val InQS = 92.dp
val Default = 0.dp
+
+ @Composable
+ fun inQqs(isMediaInRow: Boolean): Dp {
+ return if (isMediaInRow) {
+ // Tiles are laid out in a center of a container, that has this
+ // margin on the bottom. This compensates this margin, so that the Media
+ // Carousel can be properly centered
+ -dimensionResource(id = R.dimen.qqs_layout_padding_bottom) / 2
+ } else {
+ 0.dp
+ }
+ }
}
}
}
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt
index ef415b151200..c6c42fce7553 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt
@@ -53,7 +53,6 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.CompositingStrategy
import androidx.compose.ui.graphics.graphicsLayer
-import androidx.compose.ui.input.pointer.pointerInteropFilter
import androidx.compose.ui.layout.Layout
import androidx.compose.ui.layout.layoutId
import androidx.compose.ui.platform.LocalContext
@@ -70,7 +69,7 @@ import com.android.compose.animation.scene.NestedScrollBehavior
import com.android.compose.animation.scene.SceneScope
import com.android.compose.animation.scene.UserAction
import com.android.compose.animation.scene.UserActionResult
-import com.android.compose.animation.scene.animateSceneDpAsState
+import com.android.compose.animation.scene.animateContentDpAsState
import com.android.compose.animation.scene.animateSceneFloatAsState
import com.android.compose.animation.scene.content.state.TransitionState
import com.android.compose.modifiers.padding
@@ -101,7 +100,6 @@ import com.android.systemui.qs.footer.ui.compose.FooterActionsWithAnimatedVisibi
import com.android.systemui.qs.ui.composable.BrightnessMirror
import com.android.systemui.qs.ui.composable.QuickSettings
import com.android.systemui.qs.ui.composable.QuickSettings.SharedValues.MediaLandscapeTopOffset
-import com.android.systemui.qs.ui.composable.QuickSettings.SharedValues.MediaOffset.InQQS
import com.android.systemui.res.R
import com.android.systemui.scene.session.ui.composable.SaveableSession
import com.android.systemui.scene.shared.model.Scenes
@@ -292,7 +290,11 @@ private fun SceneScope.SingleShade(
// Media is visible and we are in landscape on a small height screen
val mediaInRow = isMediaVisible && isLandscape()
val mediaOffset by
- animateSceneDpAsState(value = InQQS, key = MediaLandscapeTopOffset, canOverflow = false)
+ animateContentDpAsState(
+ value = QuickSettings.SharedValues.MediaOffset.inQqs(mediaInRow),
+ key = MediaLandscapeTopOffset,
+ canOverflow = false,
+ )
val navBarHeight = WindowInsets.systemBars.asPaddingValues().calculateBottomPadding()
@@ -395,7 +397,8 @@ private fun SceneScope.SingleShade(
modifier =
Modifier.align(Alignment.BottomCenter)
.height(navBarHeight)
- .pointerInteropFilter { true }
+ // Intercepts touches, prevents the scrollable container behind from scrolling.
+ .clickable(interactionSource = null, indication = null) { /* do nothing */ }
.verticalNestedScrollToScene(
topBehavior = NestedScrollBehavior.EdgeAlways,
isExternalOverscrollGesture = { false },
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/SingleShadeMeasurePolicy.kt b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/SingleShadeMeasurePolicy.kt
index 6275ac396628..352d29e21987 100644
--- a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/SingleShadeMeasurePolicy.kt
+++ b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/SingleShadeMeasurePolicy.kt
@@ -90,19 +90,28 @@ class SingleShadeMeasurePolicy(
y = insetsTop + shadeHeaderPlaceable.height,
)
- if (isMediaInRow) {
- mediaPlaceable?.placeRelative(
- x = insetsLeft + constraintsWithCutout.maxWidth / 2,
- y = mediaOffset() + insetsTop + shadeHeaderPlaceable.height,
- zIndex = mediaZIndex(),
- )
- } else {
- mediaPlaceable?.placeRelative(
- x = insetsLeft,
- y = insetsTop + shadeHeaderPlaceable.height + quickSettingsPlaceable.height,
- zIndex = mediaZIndex(),
- )
- }
+ if (mediaPlaceable != null)
+ if (isMediaInRow) {
+ // mediaPlaceable height ranges from 0 to qsHeight. We want it to be centered
+ // vertically when it's smaller than the QS
+ val mediaCenteringOffset =
+ (quickSettingsPlaceable.height - mediaPlaceable.height) / 2
+ mediaPlaceable.placeRelative(
+ x = insetsLeft + constraintsWithCutout.maxWidth / 2,
+ y =
+ insetsTop +
+ shadeHeaderPlaceable.height +
+ mediaCenteringOffset +
+ mediaOffset(),
+ zIndex = mediaZIndex(),
+ )
+ } else {
+ mediaPlaceable.placeRelative(
+ x = insetsLeft,
+ y = insetsTop + shadeHeaderPlaceable.height + quickSettingsPlaceable.height,
+ zIndex = mediaZIndex(),
+ )
+ }
// Notifications don't need to accommodate for horizontal insets
notificationsPlaceable.placeRelative(x = 0, y = notificationsTop)
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/DraggableHandler.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/DraggableHandler.kt
index 367faed7b7f7..c8adac064690 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/DraggableHandler.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/DraggableHandler.kt
@@ -27,6 +27,7 @@ import com.android.compose.animation.scene.content.Content
import com.android.compose.animation.scene.content.state.TransitionState
import com.android.compose.animation.scene.content.state.TransitionState.HasOverscrollProperties.Companion.DistanceUnspecified
import com.android.compose.nestedscroll.PriorityNestedScrollConnection
+import com.android.compose.nestedscroll.SuspendedValue
import kotlin.math.absoluteValue
internal interface DraggableHandler {
@@ -54,9 +55,9 @@ internal interface DragController {
/**
* Stop the current drag with the given [velocity].
*
- * @return the consumed [velocity]
+ * @return the consumed [velocity] when the animation complete
*/
- fun onStop(velocity: Float, canChangeContent: Boolean): Float
+ fun onStop(velocity: Float, canChangeContent: Boolean): SuspendedValue<Float>
}
internal class DraggableHandlerImpl(
@@ -188,7 +189,7 @@ internal class DraggableHandlerImpl(
return createSwipeAnimation(layoutImpl, result, isUpOrLeft, orientation)
}
- private fun resolveSwipeSource(startedPosition: Offset?): SwipeSource.Resolved? {
+ internal fun resolveSwipeSource(startedPosition: Offset?): SwipeSource.Resolved? {
if (startedPosition == null) return null
return layoutImpl.swipeSourceDetector.source(
layoutSize = layoutImpl.lastSize,
@@ -198,7 +199,7 @@ internal class DraggableHandlerImpl(
)
}
- private fun resolveSwipe(
+ internal fun resolveSwipe(
pointersDown: Int,
fromSource: SwipeSource.Resolved?,
isUpOrLeft: Boolean,
@@ -386,7 +387,7 @@ private class DragControllerImpl(
return consumedDelta
}
- override fun onStop(velocity: Float, canChangeContent: Boolean): Float {
+ override fun onStop(velocity: Float, canChangeContent: Boolean): SuspendedValue<Float> {
return onStop(velocity, canChangeContent, swipeAnimation)
}
@@ -399,14 +400,14 @@ private class DragControllerImpl(
// callbacks (like onAnimationCompleted()) might incorrectly finish a new transition that
// replaced this one.
swipeAnimation: SwipeAnimation<T>,
- ): Float {
+ ): SuspendedValue<Float> {
// The state was changed since the drag started; don't do anything.
if (!isDrivingTransition || swipeAnimation.isAnimatingOffset()) {
- return 0f
+ return { 0f }
}
val fromContent = swipeAnimation.fromContent
- val consumedVelocity: Float
+ val consumedVelocity: SuspendedValue<Float>
if (canChangeContent) {
// If we are halfway between two contents, we check what the target will be based on the
// velocity and offset of the transition, then we launch the animation.
@@ -558,6 +559,14 @@ internal class NestedScrollHandlerImpl(
val connection: PriorityNestedScrollConnection = nestedScrollConnection()
+ private fun PointersInfo.resolveSwipe(isUpOrLeft: Boolean): Swipe.Resolved {
+ return draggableHandler.resolveSwipe(
+ pointersDown = pointersDown,
+ fromSource = draggableHandler.resolveSwipeSource(startedPosition),
+ isUpOrLeft = isUpOrLeft,
+ )
+ }
+
private fun nestedScrollConnection(): PriorityNestedScrollConnection {
// If we performed a long gesture before entering priority mode, we would have to avoid
// moving on to the next scene.
@@ -574,36 +583,19 @@ internal class NestedScrollHandlerImpl(
val transitionState = layoutState.transitionState
val scene = transitionState.currentScene
val fromScene = layoutImpl.scene(scene)
- val nextScene =
+ val resolvedSwipe =
when {
- amount < 0f -> {
- val actionUpOrLeft =
- Swipe.Resolved(
- direction =
- when (orientation) {
- Orientation.Horizontal -> SwipeDirection.Resolved.Left
- Orientation.Vertical -> SwipeDirection.Resolved.Up
- },
- pointerCount = pointersInfo().pointersDown,
- fromSource = null,
- )
- fromScene.userActions[actionUpOrLeft]
- }
- amount > 0f -> {
- val actionDownOrRight =
- Swipe.Resolved(
- direction =
- when (orientation) {
- Orientation.Horizontal -> SwipeDirection.Resolved.Right
- Orientation.Vertical -> SwipeDirection.Resolved.Down
- },
- pointerCount = pointersInfo().pointersDown,
- fromSource = null,
- )
- fromScene.userActions[actionDownOrRight]
- }
+ amount < 0f -> pointersInfo().resolveSwipe(isUpOrLeft = true)
+ amount > 0f -> pointersInfo().resolveSwipe(isUpOrLeft = false)
else -> null
}
+ val nextScene =
+ resolvedSwipe?.let {
+ fromScene.userActions[it]
+ ?: if (it.fromSource != null) {
+ fromScene.userActions[it.copy(fromSource = null)]
+ } else null
+ }
if (nextScene != null) return true
if (transitionState !is TransitionState.Idle) return false
@@ -738,5 +730,5 @@ internal const val OffsetVisibilityThreshold = 0.5f
private object NoOpDragController : DragController {
override fun onDrag(delta: Float) = 0f
- override fun onStop(velocity: Float, canChangeContent: Boolean) = 0f
+ override fun onStop(velocity: Float, canChangeContent: Boolean) = suspend { 0f }
}
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/MultiPointerDraggable.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/MultiPointerDraggable.kt
index 0bb1d928c2b4..dc3135ddbf54 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/MultiPointerDraggable.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/MultiPointerDraggable.kt
@@ -213,8 +213,9 @@ internal class MultiPointerDraggableNode(
internal fun pointersInfo(): PointersInfo {
return PointersInfo(
+ // This may be null, i.e. when the user uses TalkBack
startedPosition = startedPosition,
- // Note: We could have 0 pointers during fling or for other reasons.
+ // We could have 0 pointers during fling or for other reasons.
pointersDown = pointersDown.coerceAtLeast(1),
)
}
@@ -325,13 +326,17 @@ internal class MultiPointerDraggableNode(
velocityTracker.calculateVelocity(maxVelocity)
}
.toFloat(),
- onFling = { controller.onStop(it, canChangeContent = true) },
+ onFling = {
+ controller.onStop(it, canChangeContent = true).invoke()
+ },
)
},
onDragCancel = { controller ->
startFlingGesture(
initialVelocity = 0f,
- onFling = { controller.onStop(it, canChangeContent = true) },
+ onFling = {
+ controller.onStop(it, canChangeContent = true).invoke()
+ },
)
},
swipeDetector = swipeDetector,
@@ -353,7 +358,10 @@ internal class MultiPointerDraggableNode(
*
* Note: Inspired by [androidx.compose.foundation.gestures.ScrollableNode.onDragStopped]
*/
- private fun startFlingGesture(initialVelocity: Float, onFling: (velocity: Float) -> Float) {
+ private fun startFlingGesture(
+ initialVelocity: Float,
+ onFling: suspend (velocity: Float) -> Float,
+ ) {
// Note: [AwaitPointerEventScope] is annotated as @RestrictsSuspension, we need another
// CoroutineScope to run the fling gestures.
// We do not need to cancel this [Job], the source will take care of emitting an
@@ -415,7 +423,7 @@ internal class MultiPointerDraggableNode(
*/
private suspend inline fun dispatchFlingEvents(
availableOnPreFling: Float,
- onFling: (velocity: Float) -> Float,
+ onFling: suspend (velocity: Float) -> Float,
): Float {
// PreFling phase
val consumedByPreFling =
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SwipeAnimation.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SwipeAnimation.kt
index 84dce0d730c4..205267da151a 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SwipeAnimation.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SwipeAnimation.kt
@@ -27,6 +27,7 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.unit.IntSize
import com.android.compose.animation.scene.content.state.TransitionState
import com.android.compose.animation.scene.content.state.TransitionState.HasOverscrollProperties.Companion.DistanceUnspecified
+import com.android.compose.nestedscroll.SuspendedValue
import kotlin.math.absoluteValue
import kotlinx.coroutines.CompletableDeferred
@@ -321,7 +322,7 @@ internal class SwipeAnimation<T : ContentKey>(
initialVelocity: Float,
targetContent: T,
spec: AnimationSpec<Float>? = null,
- ): Float {
+ ): SuspendedValue<Float> {
check(!isAnimatingOffset()) { "SwipeAnimation.animateOffset() can only be called once" }
val initialProgress = progress
@@ -360,7 +361,7 @@ internal class SwipeAnimation<T : ContentKey>(
currentContent = targetContent
}
- val startProgress =
+ val initialOffset =
if (contentTransition.previewTransformationSpec != null && targetContent == toContent) {
0f
} else {
@@ -368,7 +369,7 @@ internal class SwipeAnimation<T : ContentKey>(
}
val animatable =
- Animatable(startProgress, OffsetVisibilityThreshold).also { offsetAnimation = it }
+ Animatable(initialOffset, OffsetVisibilityThreshold).also { offsetAnimation = it }
check(isAnimatingOffset())
@@ -379,7 +380,7 @@ internal class SwipeAnimation<T : ContentKey>(
if (skipAnimation) {
// Unblock the job.
offsetAnimationRunnable.complete(null)
- return 0f
+ return { 0f }
}
val isTargetGreater = targetOffset > animatable.value
@@ -391,6 +392,8 @@ internal class SwipeAnimation<T : ContentKey>(
?: contentTransition.transformationSpec.swipeSpec
?: layoutState.transitions.defaultSwipeSpec
+ val velocityConsumed = CompletableDeferred<Float>()
+
offsetAnimationRunnable.complete {
try {
animatable.animateTo(
@@ -420,6 +423,9 @@ internal class SwipeAnimation<T : ContentKey>(
// Immediately stop this transition if we are bouncing on a content that
// does not bounce.
if (!contentTransition.isWithinProgressRange(progress)) {
+ // We are no longer able to consume the velocity, the rest can be
+ // consumed by another component in the hierarchy.
+ velocityConsumed.complete(initialVelocity - velocity)
throw SnapException()
}
}
@@ -427,11 +433,15 @@ internal class SwipeAnimation<T : ContentKey>(
}
} catch (_: SnapException) {
/* Ignore. */
+ } finally {
+ if (!velocityConsumed.isCompleted) {
+ // The animation consumed the whole available velocity
+ velocityConsumed.complete(initialVelocity)
+ }
}
}
- // This animation always consumes the whole available velocity
- return initialVelocity
+ return { velocityConsumed.await() }
}
/** An exception thrown during the animation to stop it immediately. */
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/LargeTopAppBarNestedScrollConnection.kt b/packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/LargeTopAppBarNestedScrollConnection.kt
index ae3169b117ba..4ae323517b26 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/LargeTopAppBarNestedScrollConnection.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/LargeTopAppBarNestedScrollConnection.kt
@@ -72,6 +72,6 @@ fun LargeTopAppBarNestedScrollConnection(
amountConsumed
},
// Don't consume the velocity on pre/post fling
- onStop = { 0f },
+ onStop = { { 0f } },
)
}
diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/PriorityNestedScrollConnection.kt b/packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/PriorityNestedScrollConnection.kt
index 16fb533bbe06..a6ebb0e3ba56 100644
--- a/packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/PriorityNestedScrollConnection.kt
+++ b/packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/PriorityNestedScrollConnection.kt
@@ -24,6 +24,8 @@ import androidx.compose.ui.unit.Velocity
import com.android.compose.ui.util.SpaceVectorConverter
import kotlin.math.sign
+internal typealias SuspendedValue<T> = suspend () -> T
+
/**
* This [NestedScrollConnection] waits for a child to scroll ([onPreScroll] or [onPostScroll]), and
* then decides (via [canStartPreScroll] or [canStartPostScroll]) if it should take over scrolling.
@@ -42,7 +44,7 @@ class PriorityNestedScrollConnection(
private val canScrollOnFling: Boolean,
private val onStart: (offsetAvailable: Offset) -> Unit,
private val onScroll: (offsetAvailable: Offset) -> Offset,
- private val onStop: (velocityAvailable: Velocity) -> Velocity,
+ private val onStop: (velocityAvailable: Velocity) -> SuspendedValue<Velocity>,
) : NestedScrollConnection {
/** In priority mode [onPreScroll] events are first consumed by the parent, via [onScroll]. */
@@ -106,12 +108,12 @@ class PriorityNestedScrollConnection(
}
// Step 3b: The finger is lifted, we can stop intercepting scroll events and use the speed
// of the fling gesture.
- return onPriorityStop(velocity = available)
+ return onPriorityStop(velocity = available).invoke()
}
override suspend fun onPostFling(consumed: Velocity, available: Velocity): Velocity {
if (isPriorityMode) {
- return onPriorityStop(velocity = available)
+ return onPriorityStop(velocity = available).invoke()
}
if (!canStartPostFling(available)) {
@@ -126,7 +128,7 @@ class PriorityNestedScrollConnection(
onPriorityStart(available = smallOffset)
// This is the last event of a scroll gesture.
- return onPriorityStop(available)
+ return onPriorityStop(available).invoke()
}
/**
@@ -155,12 +157,12 @@ class PriorityNestedScrollConnection(
return onScroll(available)
}
- private fun onPriorityStop(velocity: Velocity): Velocity {
+ private fun onPriorityStop(velocity: Velocity): SuspendedValue<Velocity> {
// We can restart tracking the consumed offsets from scratch.
offsetScrolledBeforePriorityMode = Offset.Zero
if (!isPriorityMode) {
- return Velocity.Zero
+ return { Velocity.Zero }
}
isPriorityMode = false
@@ -178,7 +180,7 @@ fun PriorityNestedScrollConnection(
canScrollOnFling: Boolean,
onStart: (offsetAvailable: Float) -> Unit,
onScroll: (offsetAvailable: Float) -> Float,
- onStop: (velocityAvailable: Float) -> Float,
+ onStop: (velocityAvailable: Float) -> SuspendedValue<Float>,
) =
with(SpaceVectorConverter(orientation)) {
PriorityNestedScrollConnection(
@@ -198,7 +200,8 @@ fun PriorityNestedScrollConnection(
onScroll(offsetAvailable.toFloat()).toOffset()
},
onStop = { velocityAvailable: Velocity ->
- onStop(velocityAvailable.toFloat()).toVelocity()
+ val consumedVelocity = onStop(velocityAvailable.toFloat())
+ suspend { consumedVelocity.invoke().toVelocity() }
},
)
}
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt
index b64b8be90ad2..16dc0d544fd2 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt
@@ -39,6 +39,7 @@ import com.android.compose.animation.scene.TestScenes.SceneC
import com.android.compose.animation.scene.content.state.TransitionState
import com.android.compose.animation.scene.content.state.TransitionState.Transition
import com.android.compose.animation.scene.subjects.assertThat
+import com.android.compose.nestedscroll.SuspendedValue
import com.android.compose.test.MonotonicClockTestScope
import com.android.compose.test.runMonotonicClockTest
import com.android.compose.test.transition
@@ -129,6 +130,10 @@ class DraggableHandlerTest {
val draggableHandler = layoutImpl.draggableHandler(Orientation.Vertical)
val horizontalDraggableHandler = layoutImpl.draggableHandler(Orientation.Horizontal)
+ var pointerInfoOwner: () -> PointersInfo = {
+ PointersInfo(startedPosition = Offset.Zero, pointersDown = 1)
+ }
+
fun nestedScrollConnection(
nestedScrollBehavior: NestedScrollBehavior,
isExternalOverscrollGesture: Boolean = false,
@@ -139,9 +144,7 @@ class DraggableHandlerTest {
topOrLeftBehavior = nestedScrollBehavior,
bottomOrRightBehavior = nestedScrollBehavior,
isExternalOverscrollGesture = { isExternalOverscrollGesture },
- pointersInfoOwner = {
- PointersInfo(startedPosition = Offset.Zero, pointersDown = 1)
- },
+ pointersInfoOwner = { pointerInfoOwner() },
)
.connection
@@ -155,11 +158,18 @@ class DraggableHandlerTest {
fun downOffset(fractionOfScreen: Float) =
if (fractionOfScreen < 0f) {
- error("upOffset() is required, not implemented yet")
+ error("use upOffset()")
} else {
Offset(x = 0f, y = down(fractionOfScreen))
}
+ fun upOffset(fractionOfScreen: Float) =
+ if (fractionOfScreen < 0f) {
+ error("use downOffset()")
+ } else {
+ Offset(x = 0f, y = up(fractionOfScreen))
+ }
+
val transitionState: TransitionState
get() = layoutState.transitionState
@@ -253,13 +263,35 @@ class DraggableHandlerTest {
assertThat(consumed).isEqualTo(expectedConsumed)
}
- fun DragController.onDragStopped(
+ suspend fun DragController.onDragStoppedAnimateNow(
velocity: Float,
canChangeScene: Boolean = true,
- expectedConsumed: Boolean = true,
+ onAnimationStart: () -> Unit,
+ onAnimationEnd: (Float) -> Unit,
) {
- val consumed = onStop(velocity, canChangeScene)
- assertThat(consumed).isEqualTo(if (expectedConsumed) velocity else 0f)
+ val velocityConsumed = onDragStoppedAnimateLater(velocity, canChangeScene)
+ onAnimationStart()
+ onAnimationEnd(velocityConsumed.invoke())
+ }
+
+ suspend fun DragController.onDragStoppedAnimateNow(
+ velocity: Float,
+ canChangeScene: Boolean = true,
+ onAnimationStart: () -> Unit,
+ expectedConsumedVelocity: Float,
+ ) =
+ onDragStoppedAnimateNow(
+ velocity = velocity,
+ canChangeScene = canChangeScene,
+ onAnimationStart = onAnimationStart,
+ onAnimationEnd = { assertThat(it).isEqualTo(expectedConsumedVelocity) },
+ )
+
+ fun DragController.onDragStoppedAnimateLater(
+ velocity: Float,
+ canChangeScene: Boolean = true,
+ ): SuspendedValue<Float> {
+ return onStop(velocity, canChangeScene)
}
fun NestedScrollConnection.scroll(
@@ -341,11 +373,12 @@ class DraggableHandlerTest {
val dragController = onDragStarted(overSlop = down(fractionOfScreen = 0.1f))
assertTransition(currentScene = SceneA)
- dragController.onDragStopped(velocity = velocityThreshold - 0.01f)
- assertTransition(currentScene = SceneA)
+ dragController.onDragStoppedAnimateNow(
+ velocity = velocityThreshold - 0.01f,
+ onAnimationStart = { assertTransition(currentScene = SceneA) },
+ expectedConsumedVelocity = velocityThreshold - 0.01f,
+ )
- // wait for the stop animation
- advanceUntilIdle()
assertIdle(currentScene = SceneA)
}
@@ -359,19 +392,21 @@ class DraggableHandlerTest {
val dragController = onDragStarted(overSlop = down(fractionOfScreen = 0.1f))
assertTransition(currentScene = SceneA)
- dragController.onDragStopped(velocity = velocityThreshold - 0.01f)
- runCurrent()
-
- // verify that transition remains in preview stage and animates back to fromScene
- assertTransition(
- currentScene = SceneA,
- isInPreviewStage = true,
- previewProgress = 0.1f,
- progress = 0f,
+ dragController.onDragStoppedAnimateNow(
+ velocity = velocityThreshold - 0.01f,
+ onAnimationStart = {
+ // verify that transition remains in preview stage and animates back to
+ // fromScene
+ assertTransition(
+ currentScene = SceneA,
+ isInPreviewStage = true,
+ previewProgress = 0.1f,
+ progress = 0f,
+ )
+ },
+ expectedConsumedVelocity = velocityThreshold - 0.01f,
)
- // wait for the stop animation
- advanceUntilIdle()
assertIdle(currentScene = SceneA)
}
@@ -380,11 +415,11 @@ class DraggableHandlerTest {
val dragController = onDragStarted(overSlop = down(fractionOfScreen = 0.1f))
assertTransition(currentScene = SceneA)
- dragController.onDragStopped(velocity = velocityThreshold)
- assertTransition(currentScene = SceneC)
-
- // wait for the stop animation
- advanceUntilIdle()
+ dragController.onDragStoppedAnimateNow(
+ velocity = velocityThreshold,
+ onAnimationStart = { assertTransition(currentScene = SceneC) },
+ expectedConsumedVelocity = velocityThreshold,
+ )
assertIdle(currentScene = SceneC)
}
@@ -393,8 +428,11 @@ class DraggableHandlerTest {
val dragController = onDragStarted(overSlop = down(fractionOfScreen = 0.1f))
assertTransition(currentScene = SceneA)
- dragController.onDragStopped(velocity = 0f)
- advanceUntilIdle()
+ dragController.onDragStoppedAnimateNow(
+ velocity = 0f,
+ onAnimationStart = { assertTransition(currentScene = SceneA) },
+ expectedConsumedVelocity = 0f,
+ )
assertIdle(currentScene = SceneA)
}
@@ -419,11 +457,13 @@ class DraggableHandlerTest {
)
// After the drag stopped scene C should be committed
- dragController.onDragStopped(velocity = velocityThreshold)
- assertTransition(currentScene = SceneC, fromScene = SceneA, toScene = SceneC)
-
- // wait for the stop animation
- advanceUntilIdle()
+ dragController.onDragStoppedAnimateNow(
+ velocity = velocityThreshold,
+ onAnimationStart = {
+ assertTransition(currentScene = SceneC, fromScene = SceneA, toScene = SceneC)
+ },
+ expectedConsumedVelocity = velocityThreshold,
+ )
assertIdle(currentScene = SceneC)
}
@@ -511,12 +551,17 @@ class DraggableHandlerTest {
)
}
- private fun TestGestureScope.navigateToSceneC() {
+ private suspend fun TestGestureScope.navigateToSceneC() {
assertIdle(currentScene = SceneA)
val dragController = onDragStarted(overSlop = down(fractionOfScreen = 1f))
assertTransition(currentScene = SceneA, fromScene = SceneA, toScene = SceneC)
- dragController.onDragStopped(velocity = 0f)
- advanceUntilIdle()
+ dragController.onDragStoppedAnimateNow(
+ velocity = 0f,
+ onAnimationStart = {
+ assertTransition(currentScene = SceneC, fromScene = SceneA, toScene = SceneC)
+ },
+ expectedConsumedVelocity = 0f,
+ )
assertIdle(currentScene = SceneC)
}
@@ -532,7 +577,7 @@ class DraggableHandlerTest {
)
// Start animation A -> B with progress 0.2 -> 1.0
- dragController1.onDragStopped(velocity = -velocityThreshold)
+ dragController1.onDragStoppedAnimateLater(velocity = -velocityThreshold)
assertTransition(currentScene = SceneB, fromScene = SceneA, toScene = SceneB)
// While at A -> B do a 100% screen drag (progress 1.2). This should go past B and change
@@ -547,11 +592,13 @@ class DraggableHandlerTest {
)
// After the drag stopped scene C should be committed
- dragController2.onDragStopped(velocity = -velocityThreshold)
- assertTransition(currentScene = SceneC, fromScene = SceneB, toScene = SceneC)
-
- // wait for the stop animation
- advanceUntilIdle()
+ dragController2.onDragStoppedAnimateNow(
+ velocity = -velocityThreshold,
+ onAnimationStart = {
+ assertTransition(currentScene = SceneC, fromScene = SceneB, toScene = SceneC)
+ },
+ expectedConsumedVelocity = -velocityThreshold,
+ )
assertIdle(currentScene = SceneC)
}
@@ -559,7 +606,7 @@ class DraggableHandlerTest {
fun onAcceleratedScrollBothTargetsBecomeNull_settlesToIdle() = runGestureTest {
val dragController1 = onDragStarted(overSlop = up(fractionOfScreen = 0.2f))
dragController1.onDragDelta(pixels = up(fractionOfScreen = 0.2f))
- dragController1.onDragStopped(velocity = -velocityThreshold)
+ dragController1.onDragStoppedAnimateLater(velocity = -velocityThreshold)
assertTransition(currentScene = SceneB, fromScene = SceneA, toScene = SceneB)
mutableUserActionsA = emptyMap()
@@ -573,14 +620,24 @@ class DraggableHandlerTest {
// here onDragStopped is already triggered, but subsequent onDelta/onDragStopped calls may
// still be called. Make sure that they don't crash or change the scene
dragController2.onDragDelta(pixels = up(fractionOfScreen = 0.5f), expectedConsumed = 0f)
- dragController2.onDragStopped(velocity = 0f)
+ dragController2.onDragStoppedAnimateNow(
+ velocity = 0f,
+ onAnimationStart = {
+ assertTransition(currentScene = SceneB, fromScene = SceneA, toScene = SceneB)
+ },
+ expectedConsumedVelocity = 0f,
+ )
advanceUntilIdle()
assertIdle(SceneB)
// These events can still come in after the animation has settled
dragController2.onDragDelta(pixels = up(fractionOfScreen = 0.5f), expectedConsumed = 0f)
- dragController2.onDragStopped(velocity = 0f)
+ dragController2.onDragStoppedAnimateNow(
+ velocity = 0f,
+ onAnimationStart = { assertIdle(SceneB) },
+ expectedConsumedVelocity = 0f,
+ )
assertIdle(SceneB)
}
@@ -593,8 +650,15 @@ class DraggableHandlerTest {
dragController1.onDragDelta(pixels = up(fractionOfScreen = 0.1f))
// target stays B even though UserActions changed
assertTransition(fromScene = SceneA, toScene = SceneB, progress = 0.2f)
- dragController1.onDragStopped(velocity = down(fractionOfScreen = 0.1f))
- advanceUntilIdle()
+
+ dragController1.onDragStoppedAnimateNow(
+ velocity = down(fractionOfScreen = 0.1f),
+ onAnimationStart = {
+ assertTransition(fromScene = SceneA, toScene = SceneB, progress = 0.2f)
+ },
+ expectedConsumedVelocity = down(fractionOfScreen = 0.1f),
+ )
+ assertIdle(SceneA)
// now target changed to C for new drag
onDragStarted(overSlop = up(fractionOfScreen = 0.1f))
@@ -608,7 +672,7 @@ class DraggableHandlerTest {
mutableUserActionsA += Swipe.Up to UserActionResult(SceneC)
dragController1.onDragDelta(pixels = up(fractionOfScreen = 0.1f))
- dragController1.onDragStopped(velocity = down(fractionOfScreen = 0.1f))
+ dragController1.onDragStoppedAnimateLater(velocity = down(fractionOfScreen = 0.1f))
// now target changed to C for new drag that started before previous drag settled to Idle
val dragController2 = onDragStartedImmediately()
@@ -621,7 +685,7 @@ class DraggableHandlerTest {
val dragController = onDragStarted(overSlop = down(fractionOfScreen = 0.1f))
assertTransition(currentScene = SceneA)
- dragController.onDragStopped(velocity = velocityThreshold)
+ dragController.onDragStoppedAnimateLater(velocity = velocityThreshold)
runCurrent()
assertTransition(currentScene = SceneC)
@@ -907,7 +971,11 @@ class DraggableHandlerTest {
assertThat(progress).isEqualTo(0.2f)
// this should be ignored, we are scrolling now!
- dragController.onDragStopped(-velocityThreshold, expectedConsumed = false)
+ dragController.onDragStoppedAnimateNow(
+ velocity = -velocityThreshold,
+ onAnimationStart = { assertTransition(currentScene = SceneA) },
+ expectedConsumedVelocity = 0f,
+ )
assertTransition(currentScene = SceneA)
nestedScroll.scroll(available = -offsetY10)
@@ -1019,8 +1087,11 @@ class DraggableHandlerTest {
// Block the transition when the user release their finger.
canChangeScene = { false }
- dragController.onDragStopped(velocity = -velocityThreshold)
- advanceUntilIdle()
+ dragController.onDragStoppedAnimateNow(
+ velocity = -velocityThreshold,
+ onAnimationStart = { assertTransition(fromScene = SceneA, toScene = SceneB) },
+ expectedConsumedVelocity = -velocityThreshold,
+ )
assertIdle(SceneA)
}
@@ -1031,7 +1102,7 @@ class DraggableHandlerTest {
// Swipe up to B.
val dragController1 = onDragStarted(overSlop = up(0.1f))
assertTransition(currentScene = SceneA, fromScene = SceneA, toScene = SceneB)
- dragController1.onDragStopped(velocity = -velocityThreshold)
+ dragController1.onDragStoppedAnimateLater(velocity = -velocityThreshold)
assertTransition(currentScene = SceneB, fromScene = SceneA, toScene = SceneB)
// Intercept the transition and swipe down back to scene A.
@@ -1040,9 +1111,11 @@ class DraggableHandlerTest {
// Block the transition when the user release their finger.
canChangeScene = { false }
- dragController2.onDragStopped(velocity = velocityThreshold)
-
- advanceUntilIdle()
+ dragController2.onDragStoppedAnimateNow(
+ velocity = velocityThreshold,
+ onAnimationStart = { assertTransition(fromScene = SceneA, toScene = SceneB) },
+ expectedConsumedVelocity = velocityThreshold,
+ )
assertIdle(SceneB)
}
@@ -1071,13 +1144,52 @@ class DraggableHandlerTest {
}
@Test
+ fun nestedScrollUseFromSourceInfo() = runGestureTest {
+ // Start at scene C.
+ navigateToSceneC()
+ val nestedScroll = nestedScrollConnection(nestedScrollBehavior = EdgeAlways)
+
+ // Drag from the **top** of the screen
+ pointerInfoOwner = { PointersInfo(startedPosition = Offset(0f, 0f), pointersDown = 1) }
+ assertIdle(currentScene = SceneC)
+
+ nestedScroll.scroll(available = upOffset(fractionOfScreen = 0.1f))
+ assertTransition(
+ currentScene = SceneC,
+ fromScene = SceneC,
+ // userAction: Swipe.Up to SceneB
+ toScene = SceneB,
+ progress = 0.1f,
+ )
+
+ // Reset to SceneC
+ nestedScroll.preFling(Velocity.Zero)
+ advanceUntilIdle()
+
+ // Drag from the **bottom** of the screen
+ pointerInfoOwner = {
+ PointersInfo(startedPosition = Offset(0f, SCREEN_SIZE), pointersDown = 1)
+ }
+ assertIdle(currentScene = SceneC)
+
+ nestedScroll.scroll(available = upOffset(fractionOfScreen = 0.1f))
+ assertTransition(
+ currentScene = SceneC,
+ fromScene = SceneC,
+ // userAction: Swipe(SwipeDirection.Up, fromSource = Edge.Bottom) to SceneA
+ toScene = SceneA,
+ progress = 0.1f,
+ )
+ }
+
+ @Test
fun transitionIsImmediatelyUpdatedWhenReleasingFinger() = runGestureTest {
// Swipe up from the middle to transition to scene B.
val middle = Offset(SCREEN_SIZE / 2f, SCREEN_SIZE / 2f)
val dragController = onDragStarted(startedPosition = middle, overSlop = up(0.1f))
assertTransition(fromScene = SceneA, toScene = SceneB, isUserInputOngoing = true)
- dragController.onDragStopped(velocity = 0f)
+ dragController.onDragStoppedAnimateLater(velocity = 0f)
assertTransition(isUserInputOngoing = false)
}
@@ -1100,7 +1212,11 @@ class DraggableHandlerTest {
assertTransition(fromScene = SceneA, toScene = SceneB, progress = 1f)
// Release the finger.
- dragController.onDragStopped(velocity = -velocityThreshold, expectedConsumed = false)
+ dragController.onDragStoppedAnimateNow(
+ velocity = -velocityThreshold,
+ onAnimationStart = { assertTransition(fromScene = SceneA, toScene = SceneB) },
+ expectedConsumedVelocity = 0f,
+ )
// Exhaust all coroutines *without advancing the clock*. Given that we are at progress >=
// 100% and that the overscroll on scene B is doing nothing, we are already idle.
@@ -1109,6 +1225,29 @@ class DraggableHandlerTest {
}
@Test
+ fun emptyOverscrollAbortsSettleAnimationAndExposeTheConsumedVelocity() = runGestureTest {
+ // Overscrolling on scene B does nothing.
+ layoutState.transitions = transitions { overscrollDisabled(SceneB, Orientation.Vertical) }
+
+ // Swipe up to scene B at progress = 200%.
+ val middle = Offset(SCREEN_SIZE / 2f, SCREEN_SIZE / 2f)
+ val dragController = onDragStarted(startedPosition = middle, overSlop = up(0.99f))
+ assertTransition(fromScene = SceneA, toScene = SceneB, progress = 0.99f)
+
+ // Release the finger.
+ dragController.onDragStoppedAnimateNow(
+ velocity = -velocityThreshold,
+ onAnimationStart = { assertTransition(fromScene = SceneA, toScene = SceneB) },
+ onAnimationEnd = { consumedVelocity ->
+ // Our progress value was 0.99f and it is coerced in `[0..1]` (overscrollDisabled).
+ // Some of the velocity will be used for animation, but not all of it.
+ assertThat(consumedVelocity).isLessThan(0f)
+ assertThat(consumedVelocity).isGreaterThan(-velocityThreshold)
+ },
+ )
+ }
+
+ @Test
fun overscroll_releaseBetween0And100Percent_up() = runGestureTest {
// Make scene B overscrollable.
layoutState.transitions = transitions {
@@ -1125,8 +1264,13 @@ class DraggableHandlerTest {
assertThat(transition).hasProgress(0.5f)
// Release to B.
- dragController.onDragStopped(velocity = -velocityThreshold)
- advanceUntilIdle()
+ dragController.onDragStoppedAnimateNow(
+ velocity = -velocityThreshold,
+ onAnimationStart = {
+ assertTransition(fromScene = SceneA, toScene = SceneB, progress = 0.5f)
+ },
+ expectedConsumedVelocity = -velocityThreshold,
+ )
// We didn't overscroll at the end of the transition.
assertIdle(SceneB)
@@ -1151,8 +1295,13 @@ class DraggableHandlerTest {
assertThat(transition).hasProgress(0.5f)
// Release to C.
- dragController.onDragStopped(velocity = velocityThreshold)
- advanceUntilIdle()
+ dragController.onDragStoppedAnimateNow(
+ velocity = velocityThreshold,
+ onAnimationStart = {
+ assertTransition(fromScene = SceneA, toScene = SceneC, progress = 0.5f)
+ },
+ expectedConsumedVelocity = velocityThreshold,
+ )
// We didn't overscroll at the end of the transition.
assertIdle(SceneC)
@@ -1177,8 +1326,13 @@ class DraggableHandlerTest {
assertThat(transition).hasProgress(1.5f)
// Release to B.
- dragController.onDragStopped(velocity = 0f)
- advanceUntilIdle()
+ dragController.onDragStoppedAnimateNow(
+ velocity = 0f,
+ onAnimationStart = {
+ assertTransition(fromScene = SceneA, toScene = SceneB, progress = 1.5f)
+ },
+ expectedConsumedVelocity = 0f,
+ )
// We kept the overscroll at 100% so that the placement logic didn't change at the end of
// the animation.
@@ -1204,8 +1358,13 @@ class DraggableHandlerTest {
assertThat(transition).hasProgress(1.5f)
// Release to C.
- dragController.onDragStopped(velocity = 0f)
- advanceUntilIdle()
+ dragController.onDragStoppedAnimateNow(
+ velocity = 0f,
+ onAnimationStart = {
+ assertTransition(fromScene = SceneA, toScene = SceneC, progress = 1.5f)
+ },
+ expectedConsumedVelocity = 0f,
+ )
// We kept the overscroll at 100% so that the placement logic didn't change at the end of
// the animation.
@@ -1232,8 +1391,13 @@ class DraggableHandlerTest {
assertThat(transition).hasProgress(-1f)
// Release to A.
- dragController.onDragStopped(velocity = 0f)
- advanceUntilIdle()
+ dragController.onDragStoppedAnimateNow(
+ velocity = 0f,
+ onAnimationStart = {
+ assertTransition(fromScene = SceneA, toScene = SceneB, progress = -1f)
+ },
+ expectedConsumedVelocity = 0f,
+ )
// We kept the overscroll at 100% so that the placement logic didn't change at the end of
// the animation.
@@ -1260,8 +1424,13 @@ class DraggableHandlerTest {
assertThat(transition).hasProgress(-1f)
// Release to A.
- dragController.onDragStopped(velocity = 0f)
- advanceUntilIdle()
+ dragController.onDragStoppedAnimateNow(
+ velocity = 0f,
+ onAnimationStart = {
+ assertTransition(fromScene = SceneA, toScene = SceneC, progress = -1f)
+ },
+ expectedConsumedVelocity = 0f,
+ )
// We kept the overscroll at 100% so that the placement logic didn't change at the end of
// the animation.
@@ -1284,7 +1453,7 @@ class DraggableHandlerTest {
// Intercept the transition and change the swipe distance. The original distance and
// progress should be the same.
swipeDistance = 50f
- controller.onDragStopped(0f)
+ controller.onDragStoppedAnimateLater(0f)
onDragStartedImmediately()
assertTransition(fromScene = SceneA, toScene = SceneB, progress = 50f / 75f)
}
@@ -1297,14 +1466,24 @@ class DraggableHandlerTest {
val controller = onDragStarted(overSlop = up(fractionOfScreen = 0.9f))
assertTransition(fromScene = SceneA, toScene = SceneB, progress = 0.9f)
- controller.onDragStopped(velocity = 0f)
- advanceUntilIdle()
+ controller.onDragStoppedAnimateNow(
+ velocity = 0f,
+ onAnimationStart = {
+ assertTransition(fromScene = SceneA, toScene = SceneB, progress = 0.9f)
+ },
+ expectedConsumedVelocity = 0f,
+ )
assertIdle(SceneA)
val otherController = onDragStarted(overSlop = up(fractionOfScreen = 1f))
assertTransition(fromScene = SceneA, toScene = SceneB, progress = 1f)
- otherController.onDragStopped(velocity = 0f)
- advanceUntilIdle()
+ otherController.onDragStoppedAnimateNow(
+ velocity = 0f,
+ onAnimationStart = {
+ assertTransition(fromScene = SceneA, toScene = SceneB, progress = 1f)
+ },
+ expectedConsumedVelocity = 0f,
+ )
assertIdle(SceneB)
}
@@ -1312,7 +1491,7 @@ class DraggableHandlerTest {
fun interceptingTransitionReplacesCurrentTransition() = runGestureTest {
val controller = onDragStarted(overSlop = up(fractionOfScreen = 0.5f))
val transition = assertThat(layoutState.transitionState).isSceneTransition()
- controller.onDragStopped(velocity = 0f)
+ controller.onDragStoppedAnimateLater(velocity = 0f)
// Intercept the transition.
onDragStartedImmediately()
@@ -1340,9 +1519,11 @@ class DraggableHandlerTest {
assertThat(transition).hasProgress(0.1f)
// Commit the gesture. The overlay is instantly added in the set of current overlays.
- controller.onDragStopped(velocityThreshold)
- assertThat(transition).hasCurrentOverlays(OverlayA)
- advanceUntilIdle()
+ controller.onDragStoppedAnimateNow(
+ velocity = velocityThreshold,
+ onAnimationStart = { assertThat(transition).hasCurrentOverlays(OverlayA) },
+ expectedConsumedVelocity = velocityThreshold,
+ )
assertThat(layoutState.transitionState).isIdle()
assertThat(layoutState.transitionState).hasCurrentScene(SceneA)
assertThat(layoutState.transitionState).hasCurrentOverlays(OverlayA)
@@ -1368,9 +1549,11 @@ class DraggableHandlerTest {
assertThat(transition).hasProgress(0.1f)
// Commit the gesture. The overlay is instantly removed from the set of current overlays.
- controller.onDragStopped(-velocityThreshold)
- assertThat(transition).hasCurrentOverlays(/* empty */ )
- advanceUntilIdle()
+ controller.onDragStoppedAnimateNow(
+ velocity = -velocityThreshold,
+ onAnimationStart = { assertThat(transition).hasCurrentOverlays(/* empty */ ) },
+ expectedConsumedVelocity = -velocityThreshold,
+ )
assertThat(layoutState.transitionState).isIdle()
assertThat(layoutState.transitionState).hasCurrentScene(SceneA)
assertThat(layoutState.transitionState).hasCurrentOverlays(/* empty */ )
@@ -1396,9 +1579,11 @@ class DraggableHandlerTest {
assertThat(transition).hasProgress(0.1f)
// Commit the gesture. The overlays are instantly swapped in the set of current overlays.
- controller.onDragStopped(velocityThreshold)
- assertThat(transition).hasCurrentOverlays(OverlayB)
- advanceUntilIdle()
+ controller.onDragStoppedAnimateNow(
+ velocity = velocityThreshold,
+ onAnimationStart = { assertThat(transition).hasCurrentOverlays(OverlayB) },
+ expectedConsumedVelocity = velocityThreshold,
+ )
assertThat(layoutState.transitionState).isIdle()
assertThat(layoutState.transitionState).hasCurrentScene(SceneA)
assertThat(layoutState.transitionState).hasCurrentOverlays(OverlayB)
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/MultiPointerDraggableTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/MultiPointerDraggableTest.kt
index af717ac7d50b..493f3a1377cc 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/MultiPointerDraggableTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/MultiPointerDraggableTest.kt
@@ -45,6 +45,7 @@ import androidx.compose.ui.test.performTouchInput
import androidx.compose.ui.unit.Density
import androidx.compose.ui.unit.Velocity
import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.compose.nestedscroll.SuspendedValue
import com.google.common.truth.Truth.assertThat
import kotlin.properties.Delegates
import kotlinx.coroutines.coroutineScope
@@ -71,9 +72,9 @@ class MultiPointerDraggableTest {
return delta
}
- override fun onStop(velocity: Float, canChangeContent: Boolean): Float {
+ override fun onStop(velocity: Float, canChangeContent: Boolean): SuspendedValue<Float> {
onStop.invoke(velocity)
- return velocity
+ return { velocity }
}
}
diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/nestedscroll/PriorityNestedScrollConnectionTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/nestedscroll/PriorityNestedScrollConnectionTest.kt
index 7f1af05b7252..bde769920676 100644
--- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/nestedscroll/PriorityNestedScrollConnectionTest.kt
+++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/nestedscroll/PriorityNestedScrollConnectionTest.kt
@@ -54,7 +54,7 @@ class PriorityNestedScrollConnectionTest {
},
onStop = {
lastStop = it
- returnOnStop
+ { returnOnStop }
},
)
diff --git a/packages/SystemUI/frp/Android.bp b/packages/SystemUI/frp/Android.bp
new file mode 100644
index 000000000000..c3381db7a0e3
--- /dev/null
+++ b/packages/SystemUI/frp/Android.bp
@@ -0,0 +1,49 @@
+//
+// Copyright (C) 2024 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+package {
+ default_team: "trendy_team_system_ui_please_use_a_more_specific_subteam_if_possible_",
+ default_applicable_licenses: ["frameworks_base_packages_SystemUI_license"],
+}
+
+java_library {
+ name: "kt-frp",
+ host_supported: true,
+ kotlincflags: ["-opt-in=com.android.systemui.experimental.frp.ExperimentalFrpApi"],
+ srcs: ["src/**/*.kt"],
+ static_libs: [
+ "kotlin-stdlib",
+ "kotlinx_coroutines",
+ ],
+}
+
+java_test {
+ name: "kt-frp-test",
+ optimize: {
+ enabled: false,
+ },
+ srcs: [
+ "test/**/*.kt",
+ ],
+ static_libs: [
+ "kt-frp",
+ "junit",
+ "kotlin-stdlib",
+ "kotlin-test",
+ "kotlinx_coroutines",
+ "kotlinx_coroutines_test",
+ ],
+}
diff --git a/packages/SystemUI/frp/OWNERS b/packages/SystemUI/frp/OWNERS
new file mode 100644
index 000000000000..8876ad6f6224
--- /dev/null
+++ b/packages/SystemUI/frp/OWNERS
@@ -0,0 +1,3 @@
+steell@google.com
+nijamkin@google.com
+evanlaird@google.com
diff --git a/packages/SystemUI/frp/README.md b/packages/SystemUI/frp/README.md
new file mode 100644
index 000000000000..9c5bdb036c45
--- /dev/null
+++ b/packages/SystemUI/frp/README.md
@@ -0,0 +1,64 @@
+# kt-frp
+
+A functional reactive programming (FRP) library for Kotlin.
+
+This library is **experimental** and should not be used for general production
+code. The APIs within are subject to change, and there may be bugs.
+
+## About FRP
+
+Functional reactive programming is a type of reactive programming system that
+follows a set of clear and composable rules, without sacrificing consistency.
+FRP exposes an API that should be familiar to those versed in Kotlin `Flow`.
+
+### Details for nerds
+
+`kt-frp` implements an applicative / monadic flavor of FRP, using a push-pull
+methodology to allow for efficient updates.
+
+"Real" functional reactive programming should be specified with denotational
+semantics ([wikipedia](https://en.wikipedia.org/wiki/Denotational_semantics)):
+you can view the semantics for `kt-frp` [here](docs/semantics.md).
+
+## Usage
+
+First, stand up a new `FrpNetwork`. All reactive events and state is kept
+consistent within a single network.
+
+``` kotlin
+val coroutineScope: CoroutineScope = ...
+val frpNetwork = coroutineScope.newFrpNetwork()
+```
+
+You can use the `FrpNetwork` to stand-up a network of reactive events and state.
+Events are modeled with `TFlow` (short for "transactional flow"), and state
+`TState` (short for "transactional state").
+
+``` kotlin
+suspend fun activate(network: FrpNetwork) {
+ network.activateSpec {
+ val input = network.mutableTFlow<Unit>()
+ // Launch a long-running side-effect that emits to the network
+ // every second.
+ launchEffect {
+ while (true) {
+ input.emit(Unit)
+ delay(1.seconds)
+ }
+ }
+ // Accumulate state
+ val count: TState<Int> = input.fold { _, i -> i + 1 }
+ // Observe events to perform side-effects in reaction to them
+ input.observe {
+ println("Got event ${count.sample()} at time: ${System.currentTimeMillis()}")
+ }
+ }
+}
+```
+
+`FrpNetwork.activateSpec` will suspend indefinitely; cancelling the invocation
+will tear-down all effects and obervers running within the lambda.
+
+## Resources
+
+- [Cheatsheet for those coming from Kotlin Flow](docs/flow-to-frp-cheatsheet.md)
diff --git a/packages/SystemUI/frp/docs/flow-to-frp-cheatsheet.md b/packages/SystemUI/frp/docs/flow-to-frp-cheatsheet.md
new file mode 100644
index 000000000000..e20f3e6c7461
--- /dev/null
+++ b/packages/SystemUI/frp/docs/flow-to-frp-cheatsheet.md
@@ -0,0 +1,330 @@
+# From Flows to FRP
+
+## Key differences
+
+* FRP evaluates all events (`TFlow` emissions + observers) in a transaction.
+
+* FRP splits `Flow` APIs into two distinct types: `TFlow` and `TState`
+
+ * `TFlow` is roughly equivalent to `SharedFlow` w/ a replay cache that
+ exists for the duration of the current FRP transaction and shared with
+ `SharingStarted.WhileSubscribed()`
+
+ * `TState` is roughly equivalent to `StateFlow` shared with
+ `SharingStarted.Eagerly`, but the current value can only be queried within
+ a FRP transaction, and the value is only updated at the end of the
+ transaction
+
+* FRP further divides `Flow` APIs based on how they internally use state:
+
+ * **FrpTransactionScope:** APIs that internally query some state need to be
+ performed within an FRP transaction
+
+ * this scope is available from the other scopes, and from most lambdas
+ passed to other FRP APIs
+
+ * **FrpStateScope:** APIs that internally accumulate state in reaction to
+ events need to be performed within an FRP State scope (akin to a
+ `CoroutineScope`)
+
+ * this scope is a side-effect-free subset of FrpBuildScope, and so can be
+ used wherever you have an FrpBuildScope
+
+ * **FrpBuildScope:** APIs that perform external side-effects (`Flow.collect`)
+ need to be performed within an FRP Build scope (akin to a `CoroutineScope`)
+
+ * this scope is available from `FrpNetwork.activateSpec { … }`
+
+ * All other APIs can be used anywhere
+
+## emptyFlow()
+
+Use `emptyTFlow`
+
+``` kotlin
+// this TFlow emits nothing
+val noEvents: TFlow<Int> = emptyTFlow
+```
+
+## map { … }
+
+Use `TFlow.map` / `TState.map`
+
+``` kotlin
+val anInt: TState<Int> = …
+val squared: TState<Int> = anInt.map { it * it }
+val messages: TFlow<String> = …
+val messageLengths: TFlow<Int> = messages.map { it.size }
+```
+
+## filter { … } / mapNotNull { … }
+
+### I have a TFlow
+
+Use `TFlow.filter` / `TFlow.mapNotNull`
+
+``` kotlin
+val messages: TFlow<String> = …
+val nonEmpty: TFlow<String> = messages.filter { it.isNotEmpty() }
+```
+
+### I have a TState
+
+Convert the `TState` to `TFlow` using `TState.stateChanges`, then use
+`TFlow.filter` / `TFlow.mapNotNull`
+
+If you need to convert back to `TState`, use `TFlow.hold(initialValue)` on the
+result.
+
+``` kotlin
+tState.stateChanges.filter { … }.hold(initialValue)
+```
+
+Note that `TFlow.hold` is only available within an `FrpStateScope` in order to
+track the lifetime of the state accumulation.
+
+## combine(...) { … }
+
+### I have TStates
+
+Use `combine(TStates)`
+
+``` kotlin
+val someInt: TState<Int> = …
+val someString: TState<String> = …
+val model: TState<MyModel> = combine(someInt, someString) { i, s -> MyModel(i, s) }
+```
+
+### I have TFlows
+
+Convert the TFlows to TStates using `TFlow.hold(initialValue)`, then use
+`combine(TStates)`
+
+If you want the behavior of Flow.combine where nothing is emitted until each
+TFlow has emitted at least once, you can use filter:
+
+``` kotlin
+// null used as an example, can use a different sentinel if needed
+combine(tFlowA.hold(null), tFlowB.hold(null)) { a, b ->
+ a?.let { b?.let { … } }
+ }
+ .filterNotNull()
+```
+
+Note that `TFlow.hold` is only available within an `FrpStateScope` in order to
+track the lifetime of the state accumulation.
+
+#### Explanation
+
+`Flow.combine` always tracks the last-emitted value of each `Flow` it's
+combining. This is a form of state-accumulation; internally, it collects from
+each `Flow`, tracks the latest-emitted value, and when anything changes, it
+re-runs the lambda to combine the latest values.
+
+An effect of this is that `Flow.combine` doesn't emit until each combined `Flow`
+has emitted at least once. This often bites developers. As a workaround,
+developers generally append `.onStart { emit(initialValue) }` to the `Flows`
+that don't immediately emit.
+
+FRP avoids this gotcha by forcing usage of `TState` for `combine`, thus ensuring
+that there is always a current value to be combined for each input.
+
+## collect { … }
+
+Use `observe { … }`
+
+``` kotlin
+val job: Job = tFlow.observe { println("observed: $it") }
+```
+
+Note that `observe` is only available within an `FrpBuildScope` in order to
+track the lifetime of the observer. `FrpBuildScope` can only come from a
+top-level `FrpNetwork.transaction { … }`, or a sub-scope created by using a
+`-Latest` operator.
+
+## sample(flow) { … }
+
+### I want to sample a TState
+
+Use `TState.sample()` to get the current value of a `TState`. This can be
+invoked anywhere you have access to an `FrpTransactionScope`.
+
+``` kotlin
+// the lambda passed to map receives an FrpTransactionScope, so it can invoke
+// sample
+tFlow.map { tState.sample() }
+```
+
+#### Explanation
+
+To keep all state-reads consistent, the current value of a TState can only be
+queried within an FRP transaction, modeled with `FrpTransactionScope`. Note that
+both `FrpStateScope` and `FrpBuildScope` extend `FrpTransactionScope`.
+
+### I want to sample a TFlow
+
+Convert to a `TState` by using `TFlow.hold(initialValue)`, then use `sample`.
+
+Note that `hold` is only available within an `FrpStateScope` in order to track
+the lifetime of the state accumulation.
+
+## stateIn(scope, sharingStarted, initialValue)
+
+Use `TFlow.hold(initialValue)`. There is no need to supply a sharingStarted
+argument; all states are accumulated eagerly.
+
+``` kotlin
+val ints: TFlow<Int> = …
+val lastSeenInt: TState<Int> = ints.hold(initialValue = 0)
+```
+
+Note that `hold` is only available within an `FrpStateScope` in order to track
+the lifetime of the state accumulation (akin to the scope parameter of
+`Flow.stateIn`). `FrpStateScope` can only come from a top-level
+`FrpNetwork.transaction { … }`, or a sub-scope created by using a `-Latest`
+operator. Also note that `FrpBuildScope` extends `FrpStateScope`.
+
+## distinctUntilChanged()
+
+Use `distinctUntilChanged` like normal. This is only available for `TFlow`;
+`TStates` are already `distinctUntilChanged`.
+
+## merge(...)
+
+### I have TFlows
+
+Use `merge(TFlows) { … }`. The lambda argument is used to disambiguate multiple
+simultaneous emissions within the same transaction.
+
+#### Explanation
+
+Under FRP's rules, a `TFlow` may only emit up to once per transaction. This
+means that if we are merging two or more `TFlows` that are emitting at the same
+time (within the same transaction), the resulting merged `TFlow` must emit a
+single value. The lambda argument allows the developer to decide what to do in
+this case.
+
+### I have TStates
+
+If `combine` doesn't satisfy your needs, you can use `TState.stateChanges` to
+convert to a `TFlow`, and then `merge`.
+
+## conflatedCallbackFlow { … }
+
+Use `tFlow { … }`.
+
+As a shortcut, if you already have a `conflatedCallbackFlow { … }`, you can
+convert it to a TFlow via `Flow.toTFlow()`.
+
+Note that `tFlow` is only available within an `FrpBuildScope` in order to track
+the lifetime of the input registration.
+
+## first()
+
+### I have a TState
+
+Use `TState.sample`.
+
+### I have a TFlow
+
+Use `TFlow.nextOnly`, which works exactly like `Flow.first` but instead of
+suspending it returns a `TFlow` that emits once.
+
+The naming is intentionally different because `first` implies that it is the
+first-ever value emitted from the `Flow` (which makes sense for cold `Flows`),
+whereas `nextOnly` indicates that only the next value relative to the current
+transaction (the one `nextOnly` is being invoked in) will be emitted.
+
+Note that `nextOnly` is only available within an `FrpStateScope` in order to
+track the lifetime of the state accumulation.
+
+## flatMapLatest { … }
+
+If you want to use -Latest to cancel old side-effects, similar to what the Flow
+-Latest operators offer for coroutines, see `mapLatest`.
+
+### I have a TState…
+
+#### …and want to switch TStates
+
+Use `TState.flatMap`
+
+``` kotlin
+val flattened = tState.flatMap { a -> getTState(a) }
+```
+
+#### …and want to switch TFlows
+
+Use `TState<TFlow<T>>.switch()`
+
+``` kotlin
+val tFlow = tState.map { a -> getTFlow(a) }.switch()
+```
+
+### I have a TFlow…
+
+#### …and want to switch TFlows
+
+Use `hold` to convert to a `TState<TFlow<T>>`, then use `switch` to switch to
+the latest `TFlow`.
+
+``` kotlin
+val tFlow = tFlowOfFlows.hold(emptyTFlow).switch()
+```
+
+#### …and want to switch TStates
+
+Use `hold` to convert to a `TState<TState<T>>`, then use `flatMap` to switch to
+the latest `TState`.
+
+``` kotlin
+val tState = tFlowOfStates.hold(tStateOf(initialValue)).flatMap { it }
+```
+
+## mapLatest { … } / collectLatest { … }
+
+`FrpStateScope` and `FrpBuildScope` both provide `-Latest` operators that
+automatically cancel old work when new values are emitted.
+
+``` kotlin
+val currentModel: TState<SomeModel> = …
+val mapped: TState<...> = currentModel.mapLatestBuild { model ->
+ effect { "new model in the house: $model" }
+ model.someState.observe { "someState: $it" }
+ val someData: TState<SomeInfo> =
+ getBroadcasts(model.uri)
+ .map { extractInfo(it) }
+ .hold(initialInfo)
+ …
+}
+```
+
+## flowOf(...)
+
+### I want a TState
+
+Use `tStateOf(initialValue)`.
+
+### I want a TFlow
+
+Use `now.map { initialValue }`
+
+Note that `now` is only available within an `FrpTransactionScope`.
+
+#### Explanation
+
+`TFlows` are not cold, and so there isn't a notion of "emit this value once
+there is a collector" like there is for `Flow`. The closest analog would be
+`TState`, since the initial value is retained indefinitely until there is an
+observer. However, it is often useful to immediately emit a value within the
+current transaction, usually when using a `flatMap` or `switch`. In these cases,
+using `now` explicitly models that the emission will occur within the current
+transaction.
+
+``` kotlin
+fun <T> FrpTransactionScope.tFlowOf(value: T): TFlow<T> = now.map { value }
+```
+
+## MutableStateFlow / MutableSharedFlow
+
+Use `MutableTState(frpNetwork, initialValue)` and `MutableTFlow(frpNetwork)`.
diff --git a/packages/SystemUI/frp/docs/semantics.md b/packages/SystemUI/frp/docs/semantics.md
new file mode 100644
index 000000000000..b533190e687d
--- /dev/null
+++ b/packages/SystemUI/frp/docs/semantics.md
@@ -0,0 +1,225 @@
+# FRP Semantics
+
+`kt-frp`'s pure API is based off of the following denotational semantics
+([wikipedia](https://en.wikipedia.org/wiki/Denotational_semantics)).
+
+The semantics model `kt-frp` types as time-varying values; by making `Time` a
+first-class value, we can define a referentially-transparent API that allows us
+to reason about the behavior of the pure FRP combinators. This is
+implementation-agnostic; we can compare the behavior of any implementation with
+expected behavior denoted by these semantics to identify bugs.
+
+The semantics are written in pseudo-Kotlin; places where we are deviating from
+real Kotlin are noted with comments.
+
+``` kotlin
+
+sealed class Time : Comparable<Time> {
+ object BigBang : Time()
+ data class At(time: BigDecimal) : Time()
+ object Infinity : Time()
+
+ override final fun compareTo(other: Time): Int =
+ when (this) {
+ BigBang -> if (other === BigBang) 0 else -1
+ is At -> when (other) {
+ BigBang -> 1
+ is At -> time.compareTo(other.time)
+ Infinity -> -1
+ }
+ Infinity -> if (other === Infinity) 0 else 1
+ }
+}
+
+typealias Transactional<T> = (Time) -> T
+
+typealias TFlow<T> = SortedMap<Time, T>
+
+private fun <T> SortedMap<Time, T>.pairwise(): List<Pair<Pair<Time, T>, Pair<Time<T>>>> =
+ // NOTE: pretend evaluation is lazy, so that error() doesn't immediately throw
+ (toList() + Pair(Time.Infinity, error("no value"))).zipWithNext()
+
+class TState<T> internal constructor(
+ internal val current: Transactional<T>,
+ val stateChanges: TFlow<T>,
+)
+
+val emptyTFlow: TFlow<Nothing> = emptyMap()
+
+fun <A, B> TFlow<A>.map(f: FrpTransactionScope.(A) -> B): TFlow<B> =
+ mapValues { (t, a) -> FrpTransactionScope(t).f(a) }
+
+fun <A> TFlow<A>.filter(f: FrpTransactionScope.(A) -> Boolean): TFlow<A> =
+ filter { (t, a) -> FrpTransactionScope(t).f(a) }
+
+fun <A> merge(
+ first: TFlow<A>,
+ second: TFlow<A>,
+ onCoincidence: Time.(A, A) -> A,
+): TFlow<A> =
+ first.toMutableMap().also { result ->
+ second.forEach { (t, a) ->
+ result.merge(t, a) { f, s ->
+ FrpTranscationScope(t).onCoincidence(f, a)
+ }
+ }
+ }.toSortedMap()
+
+fun <A> TState<TFlow<A>>.switch(): TFlow<A> {
+ val truncated = listOf(Pair(Time.BigBang, current.invoke(Time.BigBang))) +
+ stateChanges.dropWhile { (time, _) -> time < time0 }
+ val events =
+ truncated
+ .pairwise()
+ .flatMap { ((t0, sa), (t2, _)) ->
+ sa.filter { (t1, a) -> t0 < t1 && t1 <= t2 }
+ }
+ return events.toSortedMap()
+}
+
+fun <A> TState<TFlow<A>>.switchPromptly(): TFlow<A> {
+ val truncated = listOf(Pair(Time.BigBang, current.invoke(Time.BigBang))) +
+ stateChanges.dropWhile { (time, _) -> time < time0 }
+ val events =
+ truncated
+ .pairwise()
+ .flatMap { ((t0, sa), (t2, _)) ->
+ sa.filter { (t1, a) -> t0 <= t1 && t1 <= t2 }
+ }
+ return events.toSortedMap()
+}
+
+typealias GroupedTFlow<K, V> = TFlow<Map<K, V>>
+
+fun <K, V> TFlow<Map<K, V>>.groupByKey(): GroupedTFlow<K, V> = this
+
+fun <K, V> GroupedTFlow<K, V>.eventsForKey(key: K): TFlow<V> =
+ map { m -> m[k] }.filter { it != null }.map { it!! }
+
+fun <A, B> TState<A>.map(f: (A) -> B): TState<B> =
+ TState(
+ current = { t -> f(current.invoke(t)) },
+ stateChanges = stateChanges.map { f(it) },
+ )
+
+fun <A, B, C> TState<A>.combineWith(
+ other: TState<B>,
+ f: (A, B) -> C,
+): TState<C> =
+ TState(
+ current = { t -> f(current.invoke(t), other.current.invoke(t)) },
+ stateChanges = run {
+ val aChanges =
+ stateChanges
+ .map { a ->
+ val b = other.current.sample()
+ Triple(a, b, f(a, b))
+ }
+ val bChanges =
+ other
+ .stateChanges
+ .map { b ->
+ val a = current.sample()
+ Triple(a, b, f(a, b))
+ }
+ merge(aChanges, bChanges) { (a, _, _), (_, b, _) ->
+ Triple(a, b, f(a, b))
+ }
+ .map { (_, _, zipped) -> zipped }
+ },
+ )
+
+fun <A> TState<TState<A>>.flatten(): TState<A> {
+ val changes =
+ stateChanges
+ .pairwise()
+ .flatMap { ((t0, oldInner), (t2, _)) ->
+ val inWindow =
+ oldInner
+ .stateChanges
+ .filter { (t1, b) -> t0 <= t1 && t1 < t2 }
+ if (inWindow.firstOrNull()?.time != t0) {
+ listOf(Pair(t0, oldInner.current.invoke(t0))) + inWindow
+ } else {
+ inWindow
+ }
+ }
+ return TState(
+ current = { t -> current.invoke(t).current.invoke(t) },
+ stateChanges = changes.toSortedMap(),
+ )
+}
+
+open class FrpTranscationScope internal constructor(
+ internal val currentTime: Time,
+) {
+ val now: TFlow<Unit> =
+ sortedMapOf(currentTime to Unit)
+
+ fun <A> Transactional<A>.sample(): A =
+ invoke(currentTime)
+
+ fun <A> TState<A>.sample(): A =
+ current.sample()
+}
+
+class FrpStateScope internal constructor(
+ time: Time,
+ internal val stopTime: Time,
+): FrpTransactionScope(time) {
+
+ fun <A, B> TFlow<A>.fold(
+ initialValue: B,
+ f: FrpTransactionScope.(B, A) -> B,
+ ): TState<B> {
+ val truncated =
+ dropWhile { (t, _) -> t < currentTime }
+ .takeWhile { (t, _) -> t <= stopTime }
+ val folded =
+ truncated
+ .scan(Pair(currentTime, initialValue)) { (_, b) (t, a) ->
+ Pair(t, FrpTransactionScope(t).f(a, b))
+ }
+ val lookup = { t1 ->
+ folded.lastOrNull { (t0, _) -> t0 < t1 }?.value ?: initialValue
+ }
+ return TState(lookup, folded.toSortedMap())
+ }
+
+ fun <A> TFlow<A>.hold(initialValue: A): TState<A> =
+ fold(initialValue) { _, a -> a }
+
+ fun <K, V> TFlow<Map<K, Maybe<V>>>.foldMapIncrementally(
+ initialValues: Map<K, V>
+ ): TState<Map<K, V>> =
+ fold(initialValues) { patch, map ->
+ val eithers = patch.map { (k, v) ->
+ if (v is Just) Left(k to v.value) else Right(k)
+ }
+ val adds = eithers.filterIsInstance<Left>().map { it.left }
+ val removes = eithers.filterIsInstance<Right>().map { it.right }
+ val removed: Map<K, V> = map - removes.toSet()
+ val updated: Map<K, V> = removed + adds
+ updated
+ }
+
+ fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementally(
+ initialTFlows: Map<K, TFlow<V>>,
+ ): TFlow<Map<K, V>> =
+ foldMapIncrementally(initialTFlows).map { it.merge() }.switch()
+
+ fun <K, A, B> TFlow<Map<K, Maybe<A>>.mapLatestStatefulForKey(
+ transform: suspend FrpStateScope.(A) -> B,
+ ): TFlow<Map<K, Maybe<B>>> =
+ pairwise().map { ((t0, patch), (t1, _)) ->
+ patch.map { (k, ma) ->
+ ma.map { a ->
+ FrpStateScope(t0, t1).transform(a)
+ }
+ }
+ }
+ }
+
+}
+
+```
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/Combinators.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/Combinators.kt
new file mode 100644
index 000000000000..298c071a4229
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/Combinators.kt
@@ -0,0 +1,250 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp
+
+import com.android.systemui.experimental.frp.util.These
+import com.android.systemui.experimental.frp.util.just
+import com.android.systemui.experimental.frp.util.none
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.channelFlow
+import kotlinx.coroutines.flow.conflate
+
+/**
+ * Returns a [TFlow] that emits the value sampled from the [Transactional] produced by each emission
+ * of the original [TFlow], within the same transaction of the original emission.
+ */
+fun <A> TFlow<Transactional<A>>.sampleTransactionals(): TFlow<A> = map { it.sample() }
+
+/** @see FrpTransactionScope.sample */
+fun <A, B, C> TFlow<A>.sample(
+ state: TState<B>,
+ transform: suspend FrpTransactionScope.(A, B) -> C,
+): TFlow<C> = map { transform(it, state.sample()) }
+
+/** @see FrpTransactionScope.sample */
+fun <A, B, C> TFlow<A>.sample(
+ transactional: Transactional<B>,
+ transform: suspend FrpTransactionScope.(A, B) -> C,
+): TFlow<C> = map { transform(it, transactional.sample()) }
+
+/**
+ * Like [sample], but if [state] is changing at the time it is sampled ([stateChanges] is emitting),
+ * then the new value is passed to [transform].
+ *
+ * Note that [sample] is both more performant, and safer to use with recursive definitions. You will
+ * generally want to use it rather than this.
+ *
+ * @see sample
+ */
+fun <A, B, C> TFlow<A>.samplePromptly(
+ state: TState<B>,
+ transform: suspend FrpTransactionScope.(A, B) -> C,
+): TFlow<C> =
+ sample(state) { a, b -> These.thiz<Pair<A, B>, B>(a to b) }
+ .mergeWith(state.stateChanges.map { These.that(it) }) { thiz, that ->
+ These.both((thiz as These.This).thiz, (that as These.That).that)
+ }
+ .mapMaybe { these ->
+ when (these) {
+ // both present, transform the upstream value and the new value
+ is These.Both -> just(transform(these.thiz.first, these.that))
+ // no upstream present, so don't perform the sample
+ is These.That -> none()
+ // just the upstream, so transform the upstream and the old value
+ is These.This -> just(transform(these.thiz.first, these.thiz.second))
+ }
+ }
+
+/**
+ * Returns a [TState] containing a map with a snapshot of the current state of each [TState] in the
+ * original map.
+ */
+fun <K, A> Map<K, TState<A>>.combineValues(): TState<Map<K, A>> =
+ asIterable()
+ .map { (k, state) -> state.map { v -> k to v } }
+ .combine()
+ .map { entries -> entries.toMap() }
+
+/**
+ * Returns a cold [Flow] that, when collected, emits from this [TFlow]. [network] is needed to
+ * transactionally connect to / disconnect from the [TFlow] when collection starts/stops.
+ */
+fun <A> TFlow<A>.toColdConflatedFlow(network: FrpNetwork): Flow<A> =
+ channelFlow { network.activateSpec { observe { trySend(it) } } }.conflate()
+
+/**
+ * Returns a cold [Flow] that, when collected, emits from this [TState]. [network] is needed to
+ * transactionally connect to / disconnect from the [TState] when collection starts/stops.
+ */
+fun <A> TState<A>.toColdConflatedFlow(network: FrpNetwork): Flow<A> =
+ channelFlow { network.activateSpec { observe { trySend(it) } } }.conflate()
+
+/**
+ * Returns a cold [Flow] that, when collected, applies this [FrpSpec] in a new transaction in this
+ * [network], and then emits from the returned [TFlow].
+ *
+ * When collection is cancelled, so is the [FrpSpec]. This means all ongoing work is cleaned up.
+ */
+@JvmName("flowSpecToColdConflatedFlow")
+fun <A> FrpSpec<TFlow<A>>.toColdConflatedFlow(network: FrpNetwork): Flow<A> =
+ channelFlow { network.activateSpec { applySpec().observe { trySend(it) } } }.conflate()
+
+/**
+ * Returns a cold [Flow] that, when collected, applies this [FrpSpec] in a new transaction in this
+ * [network], and then emits from the returned [TState].
+ *
+ * When collection is cancelled, so is the [FrpSpec]. This means all ongoing work is cleaned up.
+ */
+@JvmName("stateSpecToColdConflatedFlow")
+fun <A> FrpSpec<TState<A>>.toColdConflatedFlow(network: FrpNetwork): Flow<A> =
+ channelFlow { network.activateSpec { applySpec().observe { trySend(it) } } }.conflate()
+
+/**
+ * Returns a cold [Flow] that, when collected, applies this [Transactional] in a new transaction in
+ * this [network], and then emits from the returned [TFlow].
+ */
+@JvmName("transactionalFlowToColdConflatedFlow")
+fun <A> Transactional<TFlow<A>>.toColdConflatedFlow(network: FrpNetwork): Flow<A> =
+ channelFlow { network.activateSpec { sample().observe { trySend(it) } } }.conflate()
+
+/**
+ * Returns a cold [Flow] that, when collected, applies this [Transactional] in a new transaction in
+ * this [network], and then emits from the returned [TState].
+ */
+@JvmName("transactionalStateToColdConflatedFlow")
+fun <A> Transactional<TState<A>>.toColdConflatedFlow(network: FrpNetwork): Flow<A> =
+ channelFlow { network.activateSpec { sample().observe { trySend(it) } } }.conflate()
+
+/**
+ * Returns a cold [Flow] that, when collected, applies this [FrpStateful] in a new transaction in
+ * this [network], and then emits from the returned [TFlow].
+ *
+ * When collection is cancelled, so is the [FrpStateful]. This means all ongoing work is cleaned up.
+ */
+@JvmName("statefulFlowToColdConflatedFlow")
+fun <A> FrpStateful<TFlow<A>>.toColdConflatedFlow(network: FrpNetwork): Flow<A> =
+ channelFlow { network.activateSpec { applyStateful().observe { trySend(it) } } }.conflate()
+
+/**
+ * Returns a cold [Flow] that, when collected, applies this [Transactional] in a new transaction in
+ * this [network], and then emits from the returned [TState].
+ *
+ * When collection is cancelled, so is the [FrpStateful]. This means all ongoing work is cleaned up.
+ */
+@JvmName("statefulStateToColdConflatedFlow")
+fun <A> FrpStateful<TState<A>>.toColdConflatedFlow(network: FrpNetwork): Flow<A> =
+ channelFlow { network.activateSpec { applyStateful().observe { trySend(it) } } }.conflate()
+
+/** Return a [TFlow] that emits from the original [TFlow] only when [state] is `true`. */
+fun <A> TFlow<A>.filter(state: TState<Boolean>): TFlow<A> = filter { state.sample() }
+
+private fun Iterable<Boolean>.allTrue() = all { it }
+
+private fun Iterable<Boolean>.anyTrue() = any { it }
+
+/** Returns a [TState] that is `true` only when all of [states] are `true`. */
+fun allOf(vararg states: TState<Boolean>): TState<Boolean> = combine(*states) { it.allTrue() }
+
+/** Returns a [TState] that is `true` when any of [states] are `true`. */
+fun anyOf(vararg states: TState<Boolean>): TState<Boolean> = combine(*states) { it.anyTrue() }
+
+/** Returns a [TState] containing the inverse of the Boolean held by the original [TState]. */
+fun not(state: TState<Boolean>): TState<Boolean> = state.mapCheapUnsafe { !it }
+
+/**
+ * Represents a modal FRP sub-network.
+ *
+ * When [enabled][enableMode], all network modifications are applied immediately to the FRP network.
+ * When the returned [TFlow] emits a [FrpBuildMode], that mode is enabled and replaces this mode,
+ * undoing all modifications in the process (any registered [observers][FrpBuildScope.observe] are
+ * unregistered, and any pending [side-effects][FrpBuildScope.effect] are cancelled).
+ *
+ * Use [compiledFrpSpec] to compile and stand-up a mode graph.
+ *
+ * @see FrpStatefulMode
+ */
+fun interface FrpBuildMode<out A> {
+ /**
+ * Invoked when this mode is enabled. Returns a value and a [TFlow] that signals a switch to a
+ * new mode.
+ */
+ suspend fun FrpBuildScope.enableMode(): Pair<A, TFlow<FrpBuildMode<A>>>
+}
+
+/**
+ * Returns an [FrpSpec] that, when [applied][FrpBuildScope.applySpec], stands up a modal-transition
+ * graph starting with this [FrpBuildMode], automatically switching to new modes as they are
+ * produced.
+ *
+ * @see FrpBuildMode
+ */
+val <A> FrpBuildMode<A>.compiledFrpSpec: FrpSpec<TState<A>>
+ get() = frpSpec {
+ var modeChangeEvents by TFlowLoop<FrpBuildMode<A>>()
+ val activeMode: TState<Pair<A, TFlow<FrpBuildMode<A>>>> =
+ modeChangeEvents
+ .map { it.run { frpSpec { enableMode() } } }
+ .holdLatestSpec(frpSpec { enableMode() })
+ modeChangeEvents =
+ activeMode.map { statefully { it.second.nextOnly() } }.applyLatestStateful().switch()
+ activeMode.map { it.first }
+ }
+
+/**
+ * Represents a modal FRP sub-network.
+ *
+ * When [enabled][enableMode], all state accumulation is immediately started. When the returned
+ * [TFlow] emits a [FrpBuildMode], that mode is enabled and replaces this mode, stopping all state
+ * accumulation in the process.
+ *
+ * Use [compiledStateful] to compile and stand-up a mode graph.
+ *
+ * @see FrpBuildMode
+ */
+fun interface FrpStatefulMode<out A> {
+ /**
+ * Invoked when this mode is enabled. Returns a value and a [TFlow] that signals a switch to a
+ * new mode.
+ */
+ suspend fun FrpStateScope.enableMode(): Pair<A, TFlow<FrpStatefulMode<A>>>
+}
+
+/**
+ * Returns an [FrpStateful] that, when [applied][FrpStateScope.applyStateful], stands up a
+ * modal-transition graph starting with this [FrpStatefulMode], automatically switching to new modes
+ * as they are produced.
+ *
+ * @see FrpBuildMode
+ */
+val <A> FrpStatefulMode<A>.compiledStateful: FrpStateful<TState<A>>
+ get() = statefully {
+ var modeChangeEvents by TFlowLoop<FrpStatefulMode<A>>()
+ val activeMode: TState<Pair<A, TFlow<FrpStatefulMode<A>>>> =
+ modeChangeEvents
+ .map { it.run { statefully { enableMode() } } }
+ .holdLatestStateful(statefully { enableMode() })
+ modeChangeEvents =
+ activeMode.map { statefully { it.second.nextOnly() } }.applyLatestStateful().switch()
+ activeMode.map { it.first }
+ }
+
+/**
+ * Runs [spec] in this [FrpBuildScope], and then re-runs it whenever [rebuildSignal] emits. Returns
+ * a [TState] that holds the result of the currently-active [FrpSpec].
+ */
+fun <A> FrpBuildScope.rebuildOn(rebuildSignal: TFlow<*>, spec: FrpSpec<A>): TState<A> =
+ rebuildSignal.map { spec }.holdLatestSpec(spec)
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpBuildScope.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpBuildScope.kt
new file mode 100644
index 000000000000..6e4c9eba90bf
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpBuildScope.kt
@@ -0,0 +1,864 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@file:OptIn(ExperimentalCoroutinesApi::class)
+
+package com.android.systemui.experimental.frp
+
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.just
+import com.android.systemui.experimental.frp.util.map
+import kotlin.coroutines.CoroutineContext
+import kotlin.coroutines.EmptyCoroutineContext
+import kotlin.coroutines.RestrictsSuspension
+import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Deferred
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.awaitCancellation
+import kotlinx.coroutines.coroutineScope
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.FlowCollector
+import kotlinx.coroutines.flow.MutableSharedFlow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.SharedFlow
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.dropWhile
+import kotlinx.coroutines.launch
+
+/** A function that modifies the FrpNetwork. */
+typealias FrpSpec<A> = suspend FrpBuildScope.() -> A
+
+/**
+ * Constructs an [FrpSpec]. The passed [block] will be invoked with an [FrpBuildScope] that can be
+ * used to perform network-building operations, including adding new inputs and outputs to the
+ * network, as well as all operations available in [FrpTransactionScope].
+ */
+@ExperimentalFrpApi
+@Suppress("NOTHING_TO_INLINE")
+inline fun <A> frpSpec(noinline block: suspend FrpBuildScope.() -> A): FrpSpec<A> = block
+
+/** Applies the [FrpSpec] within this [FrpBuildScope]. */
+@ExperimentalFrpApi
+inline operator fun <A> FrpBuildScope.invoke(block: FrpBuildScope.() -> A) = run(block)
+
+/** Operations that add inputs and outputs to an FRP network. */
+@ExperimentalFrpApi
+@RestrictsSuspension
+interface FrpBuildScope : FrpStateScope {
+
+ /** TODO: Javadoc */
+ @ExperimentalFrpApi
+ fun <R> deferredBuildScope(block: suspend FrpBuildScope.() -> R): FrpDeferredValue<R>
+
+ /** TODO: Javadoc */
+ @ExperimentalFrpApi fun deferredBuildScopeAction(block: suspend FrpBuildScope.() -> Unit)
+
+ /**
+ * Returns a [TFlow] containing the results of applying [transform] to each value of the
+ * original [TFlow].
+ *
+ * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver.
+ * Unlike [mapLatestBuild], these modifications are not undone with each subsequent emission of
+ * the original [TFlow].
+ *
+ * **NOTE:** This API does not [observe] the original [TFlow], meaning that unless the returned
+ * (or a downstream) [TFlow] is observed separately, [transform] will not be invoked, and no
+ * internal side-effects will occur.
+ */
+ @ExperimentalFrpApi
+ fun <A, B> TFlow<A>.mapBuild(transform: suspend FrpBuildScope.(A) -> B): TFlow<B>
+
+ /**
+ * Invokes [block] whenever this [TFlow] emits a value, allowing side-effects to be safely
+ * performed in reaction to the emission.
+ *
+ * Specifically, [block] is deferred to the end of the transaction, and is only actually
+ * executed if this [FrpBuildScope] is still active by that time. It can be deactivated due to a
+ * -Latest combinator, for example.
+ *
+ * Shorthand for:
+ * ```kotlin
+ * tFlow.observe { effect { ... } }
+ * ```
+ */
+ @ExperimentalFrpApi
+ fun <A> TFlow<A>.observe(
+ coroutineContext: CoroutineContext = EmptyCoroutineContext,
+ block: suspend FrpEffectScope.(A) -> Unit = {},
+ ): Job
+
+ /**
+ * Returns a [TFlow] containing the results of applying each [FrpSpec] emitted from the original
+ * [TFlow], and a [FrpDeferredValue] containing the result of applying [initialSpecs]
+ * immediately.
+ *
+ * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] with the same
+ * key are undone (any registered [observers][observe] are unregistered, and any pending
+ * [side-effects][effect] are cancelled).
+ *
+ * If the [Maybe] contained within the value for an associated key is [none], then the
+ * previously-active [FrpSpec] will be undone with no replacement.
+ */
+ @ExperimentalFrpApi
+ fun <K, A, B> TFlow<Map<K, Maybe<FrpSpec<A>>>>.applyLatestSpecForKey(
+ initialSpecs: FrpDeferredValue<Map<K, FrpSpec<B>>>,
+ numKeys: Int? = null,
+ ): Pair<TFlow<Map<K, Maybe<A>>>, FrpDeferredValue<Map<K, B>>>
+
+ /**
+ * Creates an instance of a [TFlow] with elements that are from [builder].
+ *
+ * [builder] is run in its own coroutine, allowing for ongoing work that can emit to the
+ * provided [MutableTFlow].
+ *
+ * By default, [builder] is only running while the returned [TFlow] is being
+ * [observed][observe]. If you want it to run at all times, simply add a no-op observer:
+ * ```kotlin
+ * tFlow { ... }.apply { observe() }
+ * ```
+ */
+ @ExperimentalFrpApi fun <T> tFlow(builder: suspend FrpProducerScope<T>.() -> Unit): TFlow<T>
+
+ /**
+ * Creates an instance of a [TFlow] with elements that are emitted from [builder].
+ *
+ * [builder] is run in its own coroutine, allowing for ongoing work that can emit to the
+ * provided [MutableTFlow].
+ *
+ * By default, [builder] is only running while the returned [TFlow] is being
+ * [observed][observe]. If you want it to run at all times, simply add a no-op observer:
+ * ```kotlin
+ * tFlow { ... }.apply { observe() }
+ * ```
+ *
+ * In the event of backpressure, emissions are *coalesced* into batches. When a value is
+ * [emitted][FrpCoalescingProducerScope.emit] from [builder], it is merged into the batch via
+ * [coalesce]. Once the batch is consumed by the frp network in the next transaction, the batch
+ * is reset back to [getInitialValue].
+ */
+ @ExperimentalFrpApi
+ fun <In, Out> coalescingTFlow(
+ getInitialValue: () -> Out,
+ coalesce: (old: Out, new: In) -> Out,
+ builder: suspend FrpCoalescingProducerScope<In>.() -> Unit,
+ ): TFlow<Out>
+
+ /**
+ * Creates a new [FrpBuildScope] that is a child of this one.
+ *
+ * This new scope can be manually cancelled via the returned [Job], or will be cancelled
+ * automatically when its parent is cancelled. Cancellation will unregister all
+ * [observers][observe] and cancel all scheduled [effects][effect].
+ *
+ * The return value from [block] can be accessed via the returned [FrpDeferredValue].
+ */
+ @ExperimentalFrpApi fun <A> asyncScope(block: FrpSpec<A>): Pair<FrpDeferredValue<A>, Job>
+
+ // TODO: once we have context params, these can all become extensions:
+
+ /**
+ * Returns a [TFlow] containing the results of applying the given [transform] function to each
+ * value of the original [TFlow].
+ *
+ * Unlike [TFlow.map], [transform] can perform arbitrary asynchronous code. This code is run
+ * outside of the current FRP transaction; when [transform] returns, the returned value is
+ * emitted from the result [TFlow] in a new transaction.
+ *
+ * Shorthand for:
+ * ```kotlin
+ * tflow.mapLatestBuild { a -> asyncTFlow { transform(a) } }.flatten()
+ * ```
+ */
+ @ExperimentalFrpApi
+ fun <A, B> TFlow<A>.mapAsyncLatest(transform: suspend (A) -> B): TFlow<B> =
+ mapLatestBuild { a -> asyncTFlow { transform(a) } }.flatten()
+
+ /**
+ * Invokes [block] whenever this [TFlow] emits a value. [block] receives an [FrpBuildScope] that
+ * can be used to make further modifications to the FRP network, and/or perform side-effects via
+ * [effect].
+ *
+ * @see observe
+ */
+ @ExperimentalFrpApi
+ fun <A> TFlow<A>.observeBuild(block: suspend FrpBuildScope.(A) -> Unit = {}): Job =
+ mapBuild(block).observe()
+
+ /**
+ * Returns a [StateFlow] whose [value][StateFlow.value] tracks the current
+ * [value of this TState][TState.sample], and will emit at the same rate as
+ * [TState.stateChanges].
+ *
+ * Note that the [value][StateFlow.value] is not available until the *end* of the current
+ * transaction. If you need the current value before this time, then use [TState.sample].
+ */
+ @ExperimentalFrpApi
+ fun <A> TState<A>.toStateFlow(): StateFlow<A> {
+ val uninitialized = Any()
+ var initialValue: Any? = uninitialized
+ val innerStateFlow = MutableStateFlow<Any?>(uninitialized)
+ deferredBuildScope {
+ initialValue = sample()
+ stateChanges.observe {
+ innerStateFlow.value = it
+ initialValue = null
+ }
+ }
+
+ @Suppress("UNCHECKED_CAST")
+ fun getValue(innerValue: Any?): A =
+ when {
+ innerValue !== uninitialized -> innerValue as A
+ initialValue !== uninitialized -> initialValue as A
+ else ->
+ error(
+ "Attempted to access StateFlow.value before FRP transaction has completed."
+ )
+ }
+
+ return object : StateFlow<A> {
+ override val replayCache: List<A>
+ get() = innerStateFlow.replayCache.map(::getValue)
+
+ override val value: A
+ get() = getValue(innerStateFlow.value)
+
+ override suspend fun collect(collector: FlowCollector<A>): Nothing {
+ innerStateFlow.collect { collector.emit(getValue(it)) }
+ }
+ }
+ }
+
+ /**
+ * Returns a [SharedFlow] configured with a replay cache of size [replay] that emits the current
+ * [value][TState.sample] of this [TState] followed by all [stateChanges].
+ */
+ @ExperimentalFrpApi
+ fun <A> TState<A>.toSharedFlow(replay: Int = 0): SharedFlow<A> {
+ val result = MutableSharedFlow<A>(replay, extraBufferCapacity = 1)
+ deferredBuildScope {
+ result.tryEmit(sample())
+ stateChanges.observe { a -> result.tryEmit(a) }
+ }
+ return result
+ }
+
+ /**
+ * Returns a [SharedFlow] configured with a replay cache of size [replay] that emits values
+ * whenever this [TFlow] emits.
+ */
+ @ExperimentalFrpApi
+ fun <A> TFlow<A>.toSharedFlow(replay: Int = 0): SharedFlow<A> {
+ val result = MutableSharedFlow<A>(replay, extraBufferCapacity = 1)
+ observe { a -> result.tryEmit(a) }
+ return result
+ }
+
+ /**
+ * Returns a [TState] that holds onto the value returned by applying the most recently emitted
+ * [FrpSpec] from the original [TFlow], or the value returned by applying [initialSpec] if
+ * nothing has been emitted since it was constructed.
+ *
+ * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] are undone (any
+ * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are
+ * cancelled).
+ */
+ @ExperimentalFrpApi
+ fun <A> TFlow<FrpSpec<A>>.holdLatestSpec(initialSpec: FrpSpec<A>): TState<A> {
+ val (changes: TFlow<A>, initApplied: FrpDeferredValue<A>) = applyLatestSpec(initialSpec)
+ return changes.holdDeferred(initApplied)
+ }
+
+ /**
+ * Returns a [TState] containing the value returned by applying the [FrpSpec] held by the
+ * original [TState].
+ *
+ * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] are undone (any
+ * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are
+ * cancelled).
+ */
+ @ExperimentalFrpApi
+ fun <A> TState<FrpSpec<A>>.applyLatestSpec(): TState<A> {
+ val (appliedChanges: TFlow<A>, init: FrpDeferredValue<A>) =
+ stateChanges.applyLatestSpec(frpSpec { sample().applySpec() })
+ return appliedChanges.holdDeferred(init)
+ }
+
+ /**
+ * Returns a [TFlow] containing the results of applying each [FrpSpec] emitted from the original
+ * [TFlow].
+ *
+ * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] are undone (any
+ * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are
+ * cancelled).
+ */
+ @ExperimentalFrpApi
+ fun <A> TFlow<FrpSpec<A>>.applyLatestSpec(): TFlow<A> = applyLatestSpec(frpSpec {}).first
+
+ /**
+ * Returns a [TFlow] that switches to a new [TFlow] produced by [transform] every time the
+ * original [TFlow] emits a value.
+ *
+ * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver.
+ * When the original [TFlow] emits a new value, those changes are undone (any registered
+ * [observers][observe] are unregistered, and any pending [effects][effect] are cancelled).
+ */
+ @ExperimentalFrpApi
+ fun <A, B> TFlow<A>.flatMapLatestBuild(
+ transform: suspend FrpBuildScope.(A) -> TFlow<B>
+ ): TFlow<B> = mapCheap { frpSpec { transform(it) } }.applyLatestSpec().flatten()
+
+ /**
+ * Returns a [TState] by applying [transform] to the value held by the original [TState].
+ *
+ * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver.
+ * When the value held by the original [TState] changes, those changes are undone (any
+ * registered [observers][observe] are unregistered, and any pending [effects][effect] are
+ * cancelled).
+ */
+ @ExperimentalFrpApi
+ fun <A, B> TState<A>.flatMapLatestBuild(
+ transform: suspend FrpBuildScope.(A) -> TState<B>
+ ): TState<B> = mapLatestBuild { transform(it) }.flatten()
+
+ /**
+ * Returns a [TState] that transforms the value held inside this [TState] by applying it to the
+ * [transform].
+ *
+ * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver.
+ * When the value held by the original [TState] changes, those changes are undone (any
+ * registered [observers][observe] are unregistered, and any pending [effects][effect] are
+ * cancelled).
+ */
+ @ExperimentalFrpApi
+ fun <A, B> TState<A>.mapLatestBuild(transform: suspend FrpBuildScope.(A) -> B): TState<B> =
+ mapCheapUnsafe { frpSpec { transform(it) } }.applyLatestSpec()
+
+ /**
+ * Returns a [TFlow] containing the results of applying each [FrpSpec] emitted from the original
+ * [TFlow], and a [FrpDeferredValue] containing the result of applying [initialSpec]
+ * immediately.
+ *
+ * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] are undone (any
+ * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are
+ * cancelled).
+ */
+ @ExperimentalFrpApi
+ fun <A : Any?, B> TFlow<FrpSpec<B>>.applyLatestSpec(
+ initialSpec: FrpSpec<A>
+ ): Pair<TFlow<B>, FrpDeferredValue<A>> {
+ val (flow, result) =
+ mapCheap { spec -> mapOf(Unit to just(spec)) }
+ .applyLatestSpecForKey(initialSpecs = mapOf(Unit to initialSpec), numKeys = 1)
+ val outFlow: TFlow<B> =
+ flow.mapMaybe {
+ checkNotNull(it[Unit]) { "applyLatest: expected result, but none present in: $it" }
+ }
+ val outInit: FrpDeferredValue<A> = deferredBuildScope {
+ val initResult: Map<Unit, A> = result.get()
+ check(Unit in initResult) {
+ "applyLatest: expected initial result, but none present in: $initResult"
+ }
+ @Suppress("UNCHECKED_CAST")
+ initResult.getOrDefault(Unit) { null } as A
+ }
+ return Pair(outFlow, outInit)
+ }
+
+ /**
+ * Returns a [TFlow] containing the results of applying [transform] to each value of the
+ * original [TFlow].
+ *
+ * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver.
+ * With each invocation of [transform], changes from the previous invocation are undone (any
+ * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are
+ * cancelled).
+ */
+ @ExperimentalFrpApi
+ fun <A, B> TFlow<A>.mapLatestBuild(transform: suspend FrpBuildScope.(A) -> B): TFlow<B> =
+ mapCheap { frpSpec { transform(it) } }.applyLatestSpec()
+
+ /**
+ * Returns a [TFlow] containing the results of applying [transform] to each value of the
+ * original [TFlow], and a [FrpDeferredValue] containing the result of applying [transform] to
+ * [initialValue] immediately.
+ *
+ * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver.
+ * With each invocation of [transform], changes from the previous invocation are undone (any
+ * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are
+ * cancelled).
+ */
+ @ExperimentalFrpApi
+ fun <A, B> TFlow<A>.mapLatestBuild(
+ initialValue: A,
+ transform: suspend FrpBuildScope.(A) -> B,
+ ): Pair<TFlow<B>, FrpDeferredValue<B>> =
+ mapLatestBuildDeferred(deferredOf(initialValue), transform)
+
+ /**
+ * Returns a [TFlow] containing the results of applying [transform] to each value of the
+ * original [TFlow], and a [FrpDeferredValue] containing the result of applying [transform] to
+ * [initialValue] immediately.
+ *
+ * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver.
+ * With each invocation of [transform], changes from the previous invocation are undone (any
+ * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are
+ * cancelled).
+ */
+ @ExperimentalFrpApi
+ fun <A, B> TFlow<A>.mapLatestBuildDeferred(
+ initialValue: FrpDeferredValue<A>,
+ transform: suspend FrpBuildScope.(A) -> B,
+ ): Pair<TFlow<B>, FrpDeferredValue<B>> =
+ mapCheap { frpSpec { transform(it) } }
+ .applyLatestSpec(initialSpec = frpSpec { transform(initialValue.get()) })
+
+ /**
+ * Returns a [TFlow] containing the results of applying each [FrpSpec] emitted from the original
+ * [TFlow], and a [FrpDeferredValue] containing the result of applying [initialSpecs]
+ * immediately.
+ *
+ * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] with the same
+ * key are undone (any registered [observers][observe] are unregistered, and any pending
+ * [side-effects][effect] are cancelled).
+ *
+ * If the [Maybe] contained within the value for an associated key is [none], then the
+ * previously-active [FrpSpec] will be undone with no replacement.
+ */
+ @ExperimentalFrpApi
+ fun <K, A, B> TFlow<Map<K, Maybe<FrpSpec<A>>>>.applyLatestSpecForKey(
+ initialSpecs: Map<K, FrpSpec<B>>,
+ numKeys: Int? = null,
+ ): Pair<TFlow<Map<K, Maybe<A>>>, FrpDeferredValue<Map<K, B>>> =
+ applyLatestSpecForKey(deferredOf(initialSpecs), numKeys)
+
+ /**
+ * Returns a [TFlow] containing the results of applying each [FrpSpec] emitted from the original
+ * [TFlow].
+ *
+ * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] with the same
+ * key are undone (any registered [observers][observe] are unregistered, and any pending
+ * [side-effects][effect] are cancelled).
+ *
+ * If the [Maybe] contained within the value for an associated key is [none], then the
+ * previously-active [FrpSpec] will be undone with no replacement.
+ */
+ @ExperimentalFrpApi
+ fun <K, A> TFlow<Map<K, Maybe<FrpSpec<A>>>>.applyLatestSpecForKey(
+ numKeys: Int? = null
+ ): TFlow<Map<K, Maybe<A>>> =
+ applyLatestSpecForKey<K, A, Nothing>(deferredOf(emptyMap()), numKeys).first
+
+ /**
+ * Returns a [TState] containing the latest results of applying each [FrpSpec] emitted from the
+ * original [TFlow].
+ *
+ * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] with the same
+ * key are undone (any registered [observers][observe] are unregistered, and any pending
+ * [side-effects][effect] are cancelled).
+ *
+ * If the [Maybe] contained within the value for an associated key is [none], then the
+ * previously-active [FrpSpec] will be undone with no replacement.
+ */
+ @ExperimentalFrpApi
+ fun <K, A> TFlow<Map<K, Maybe<FrpSpec<A>>>>.holdLatestSpecForKey(
+ initialSpecs: FrpDeferredValue<Map<K, FrpSpec<A>>>,
+ numKeys: Int? = null,
+ ): TState<Map<K, A>> {
+ val (changes, initialValues) = applyLatestSpecForKey(initialSpecs, numKeys)
+ return changes.foldMapIncrementally(initialValues)
+ }
+
+ /**
+ * Returns a [TState] containing the latest results of applying each [FrpSpec] emitted from the
+ * original [TFlow].
+ *
+ * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] with the same
+ * key are undone (any registered [observers][observe] are unregistered, and any pending
+ * [side-effects][effect] are cancelled).
+ *
+ * If the [Maybe] contained within the value for an associated key is [none], then the
+ * previously-active [FrpSpec] will be undone with no replacement.
+ */
+ @ExperimentalFrpApi
+ fun <K, A> TFlow<Map<K, Maybe<FrpSpec<A>>>>.holdLatestSpecForKey(
+ initialSpecs: Map<K, FrpSpec<A>> = emptyMap(),
+ numKeys: Int? = null,
+ ): TState<Map<K, A>> = holdLatestSpecForKey(deferredOf(initialSpecs), numKeys)
+
+ /**
+ * Returns a [TFlow] containing the results of applying [transform] to each value of the
+ * original [TFlow], and a [FrpDeferredValue] containing the result of applying [transform] to
+ * [initialValues] immediately.
+ *
+ * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver.
+ * With each invocation of [transform], changes from the previous invocation are undone (any
+ * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are
+ * cancelled).
+ *
+ * If the [Maybe] contained within the value for an associated key is [none], then the
+ * previously-active [FrpBuildScope] will be undone with no replacement.
+ */
+ @ExperimentalFrpApi
+ fun <K, A, B> TFlow<Map<K, Maybe<A>>>.mapLatestBuildForKey(
+ initialValues: FrpDeferredValue<Map<K, A>>,
+ numKeys: Int? = null,
+ transform: suspend FrpBuildScope.(A) -> B,
+ ): Pair<TFlow<Map<K, Maybe<B>>>, FrpDeferredValue<Map<K, B>>> =
+ map { patch -> patch.mapValues { (_, v) -> v.map { frpSpec { transform(it) } } } }
+ .applyLatestSpecForKey(
+ deferredBuildScope {
+ initialValues.get().mapValues { (_, v) -> frpSpec { transform(v) } }
+ },
+ numKeys = numKeys,
+ )
+
+ /**
+ * Returns a [TFlow] containing the results of applying [transform] to each value of the
+ * original [TFlow], and a [FrpDeferredValue] containing the result of applying [transform] to
+ * [initialValues] immediately.
+ *
+ * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver.
+ * With each invocation of [transform], changes from the previous invocation are undone (any
+ * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are
+ * cancelled).
+ *
+ * If the [Maybe] contained within the value for an associated key is [none], then the
+ * previously-active [FrpBuildScope] will be undone with no replacement.
+ */
+ @ExperimentalFrpApi
+ fun <K, A, B> TFlow<Map<K, Maybe<A>>>.mapLatestBuildForKey(
+ initialValues: Map<K, A>,
+ numKeys: Int? = null,
+ transform: suspend FrpBuildScope.(A) -> B,
+ ): Pair<TFlow<Map<K, Maybe<B>>>, FrpDeferredValue<Map<K, B>>> =
+ mapLatestBuildForKey(deferredOf(initialValues), numKeys, transform)
+
+ /**
+ * Returns a [TFlow] containing the results of applying [transform] to each value of the
+ * original [TFlow].
+ *
+ * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver.
+ * With each invocation of [transform], changes from the previous invocation are undone (any
+ * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are
+ * cancelled).
+ *
+ * If the [Maybe] contained within the value for an associated key is [none], then the
+ * previously-active [FrpBuildScope] will be undone with no replacement.
+ */
+ @ExperimentalFrpApi
+ fun <K, A, B> TFlow<Map<K, Maybe<A>>>.mapLatestBuildForKey(
+ numKeys: Int? = null,
+ transform: suspend FrpBuildScope.(A) -> B,
+ ): TFlow<Map<K, Maybe<B>>> = mapLatestBuildForKey(emptyMap(), numKeys, transform).first
+
+ /** Returns a [Deferred] containing the next value to be emitted from this [TFlow]. */
+ @ExperimentalFrpApi
+ fun <R> TFlow<R>.nextDeferred(): Deferred<R> {
+ lateinit var next: CompletableDeferred<R>
+ val job = nextOnly().observe { next.complete(it) }
+ next = CompletableDeferred<R>(parent = job)
+ return next
+ }
+
+ /** Returns a [TState] that reflects the [StateFlow.value] of this [StateFlow]. */
+ @ExperimentalFrpApi
+ fun <A> StateFlow<A>.toTState(): TState<A> {
+ val initial = value
+ return tFlow { dropWhile { it == initial }.collect { emit(it) } }.hold(initial)
+ }
+
+ /** Returns a [TFlow] that emits whenever this [Flow] emits. */
+ @ExperimentalFrpApi fun <A> Flow<A>.toTFlow(): TFlow<A> = tFlow { collect { emit(it) } }
+
+ /**
+ * Shorthand for:
+ * ```kotlin
+ * flow.toTFlow().hold(initialValue)
+ * ```
+ */
+ @ExperimentalFrpApi
+ fun <A> Flow<A>.toTState(initialValue: A): TState<A> = toTFlow().hold(initialValue)
+
+ /**
+ * Invokes [block] whenever this [TFlow] emits a value. [block] receives an [FrpBuildScope] that
+ * can be used to make further modifications to the FRP network, and/or perform side-effects via
+ * [effect].
+ *
+ * With each invocation of [block], changes from the previous invocation are undone (any
+ * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are
+ * cancelled).
+ */
+ @ExperimentalFrpApi
+ fun <A> TFlow<A>.observeLatestBuild(block: suspend FrpBuildScope.(A) -> Unit = {}): Job =
+ mapLatestBuild { block(it) }.observe()
+
+ /**
+ * Invokes [block] whenever this [TFlow] emits a value, allowing side-effects to be safely
+ * performed in reaction to the emission.
+ *
+ * With each invocation of [block], running effects from the previous invocation are cancelled.
+ */
+ @ExperimentalFrpApi
+ fun <A> TFlow<A>.observeLatest(block: suspend FrpEffectScope.(A) -> Unit = {}): Job {
+ var innerJob: Job? = null
+ return observeBuild {
+ innerJob?.cancel()
+ innerJob = effect { block(it) }
+ }
+ }
+
+ /**
+ * Invokes [block] with the value held by this [TState], allowing side-effects to be safely
+ * performed in reaction to the state changing.
+ *
+ * With each invocation of [block], running effects from the previous invocation are cancelled.
+ */
+ @ExperimentalFrpApi
+ fun <A> TState<A>.observeLatest(block: suspend FrpEffectScope.(A) -> Unit = {}): Job =
+ launchScope {
+ var innerJob = effect { block(sample()) }
+ stateChanges.observeBuild {
+ innerJob.cancel()
+ innerJob = effect { block(it) }
+ }
+ }
+
+ /**
+ * Applies [block] to the value held by this [TState]. [block] receives an [FrpBuildScope] that
+ * can be used to make further modifications to the FRP network, and/or perform side-effects via
+ * [effect].
+ *
+ * [block] can perform modifications to the FRP network via its [FrpBuildScope] receiver. With
+ * each invocation of [block], changes from the previous invocation are undone (any registered
+ * [observers][observe] are unregistered, and any pending [side-effects][effect] are cancelled).
+ */
+ @ExperimentalFrpApi
+ fun <A> TState<A>.observeLatestBuild(block: suspend FrpBuildScope.(A) -> Unit = {}): Job =
+ launchScope {
+ var innerJob: Job = launchScope { block(sample()) }
+ stateChanges.observeBuild {
+ innerJob.cancel()
+ innerJob = launchScope { block(it) }
+ }
+ }
+
+ /** Applies the [FrpSpec] within this [FrpBuildScope]. */
+ @ExperimentalFrpApi suspend fun <A> FrpSpec<A>.applySpec(): A = this()
+
+ /**
+ * Applies the [FrpSpec] within this [FrpBuildScope], returning the result as an
+ * [FrpDeferredValue].
+ */
+ @ExperimentalFrpApi
+ fun <A> FrpSpec<A>.applySpecDeferred(): FrpDeferredValue<A> = deferredBuildScope { applySpec() }
+
+ /**
+ * Invokes [block] on the value held in this [TState]. [block] receives an [FrpBuildScope] that
+ * can be used to make further modifications to the FRP network, and/or perform side-effects via
+ * [effect].
+ */
+ @ExperimentalFrpApi
+ fun <A> TState<A>.observeBuild(block: suspend FrpBuildScope.(A) -> Unit = {}): Job =
+ launchScope {
+ block(sample())
+ stateChanges.observeBuild(block)
+ }
+
+ /**
+ * Invokes [block] with the current value of this [TState], re-invoking whenever it changes,
+ * allowing side-effects to be safely performed in reaction value changing.
+ *
+ * Specifically, [block] is deferred to the end of the transaction, and is only actually
+ * executed if this [FrpBuildScope] is still active by that time. It can be deactivated due to a
+ * -Latest combinator, for example.
+ *
+ * If the [TState] is changing within the *current* transaction (i.e. [stateChanges] is
+ * presently emitting) then [block] will be invoked for the first time with the new value;
+ * otherwise, it will be invoked with the [current][sample] value.
+ */
+ @ExperimentalFrpApi
+ fun <A> TState<A>.observe(block: suspend FrpEffectScope.(A) -> Unit = {}): Job =
+ now.map { sample() }.mergeWith(stateChanges) { _, new -> new }.observe { block(it) }
+}
+
+/**
+ * Returns a [TFlow] that emits the result of [block] once it completes. [block] is evaluated
+ * outside of the current FRP transaction; when it completes, the returned [TFlow] emits in a new
+ * transaction.
+ *
+ * Shorthand for:
+ * ```
+ * tFlow { emitter: MutableTFlow<A> ->
+ * val a = block()
+ * emitter.emit(a)
+ * }
+ * ```
+ */
+@ExperimentalFrpApi
+fun <A> FrpBuildScope.asyncTFlow(block: suspend () -> A): TFlow<A> =
+ tFlow {
+ // TODO: if block completes synchronously, it would be nice to emit within this
+ // transaction
+ emit(block())
+ }
+ .apply { observe() }
+
+/**
+ * Performs a side-effect in a safe manner w/r/t the current FRP transaction.
+ *
+ * Specifically, [block] is deferred to the end of the current transaction, and is only actually
+ * executed if this [FrpBuildScope] is still active by that time. It can be deactivated due to a
+ * -Latest combinator, for example.
+ *
+ * Shorthand for:
+ * ```kotlin
+ * now.observe { block() }
+ * ```
+ */
+@ExperimentalFrpApi
+fun FrpBuildScope.effect(block: suspend FrpEffectScope.() -> Unit): Job = now.observe { block() }
+
+/**
+ * Launches [block] in a new coroutine, returning a [Job] bound to the coroutine.
+ *
+ * This coroutine is not actually started until the *end* of the current FRP transaction. This is
+ * done because the current [FrpBuildScope] might be deactivated within this transaction, perhaps
+ * due to a -Latest combinator. If this happens, then the coroutine will never actually be started.
+ *
+ * Shorthand for:
+ * ```kotlin
+ * effect { frpCoroutineScope.launch { block() } }
+ * ```
+ */
+@ExperimentalFrpApi
+fun FrpBuildScope.launchEffect(block: suspend CoroutineScope.() -> Unit): Job = asyncEffect(block)
+
+/**
+ * Launches [block] in a new coroutine, returning the result as a [Deferred].
+ *
+ * This coroutine is not actually started until the *end* of the current FRP transaction. This is
+ * done because the current [FrpBuildScope] might be deactivated within this transaction, perhaps
+ * due to a -Latest combinator. If this happens, then the coroutine will never actually be started.
+ *
+ * Shorthand for:
+ * ```kotlin
+ * CompletableDeferred<R>.apply {
+ * effect { frpCoroutineScope.launch { complete(coroutineScope { block() }) } }
+ * }
+ * .await()
+ * ```
+ */
+@ExperimentalFrpApi
+fun <R> FrpBuildScope.asyncEffect(block: suspend CoroutineScope.() -> R): Deferred<R> {
+ val result = CompletableDeferred<R>()
+ val job = now.observe { frpCoroutineScope.launch { result.complete(coroutineScope(block)) } }
+ val handle = job.invokeOnCompletion { result.cancel() }
+ result.invokeOnCompletion {
+ handle.dispose()
+ job.cancel()
+ }
+ return result
+}
+
+/** Like [FrpBuildScope.asyncScope], but ignores the result of [block]. */
+@ExperimentalFrpApi fun FrpBuildScope.launchScope(block: FrpSpec<*>): Job = asyncScope(block).second
+
+/**
+ * Creates an instance of a [TFlow] with elements that are emitted from [builder].
+ *
+ * [builder] is run in its own coroutine, allowing for ongoing work that can emit to the provided
+ * [MutableTFlow].
+ *
+ * By default, [builder] is only running while the returned [TFlow] is being
+ * [observed][FrpBuildScope.observe]. If you want it to run at all times, simply add a no-op
+ * observer:
+ * ```kotlin
+ * tFlow { ... }.apply { observe() }
+ * ```
+ *
+ * In the event of backpressure, emissions are *coalesced* into batches. When a value is
+ * [emitted][FrpCoalescingProducerScope.emit] from [builder], it is merged into the batch via
+ * [coalesce]. Once the batch is consumed by the FRP network in the next transaction, the batch is
+ * reset back to [initialValue].
+ */
+@ExperimentalFrpApi
+fun <In, Out> FrpBuildScope.coalescingTFlow(
+ initialValue: Out,
+ coalesce: (old: Out, new: In) -> Out,
+ builder: suspend FrpCoalescingProducerScope<In>.() -> Unit,
+): TFlow<Out> = coalescingTFlow(getInitialValue = { initialValue }, coalesce, builder)
+
+/**
+ * Creates an instance of a [TFlow] with elements that are emitted from [builder].
+ *
+ * [builder] is run in its own coroutine, allowing for ongoing work that can emit to the provided
+ * [MutableTFlow].
+ *
+ * By default, [builder] is only running while the returned [TFlow] is being
+ * [observed][FrpBuildScope.observe]. If you want it to run at all times, simply add a no-op
+ * observer:
+ * ```kotlin
+ * tFlow { ... }.apply { observe() }
+ * ```
+ *
+ * In the event of backpressure, emissions are *conflated*; any older emissions are dropped and only
+ * the most recent emission will be used when the FRP network is ready.
+ */
+@ExperimentalFrpApi
+fun <T> FrpBuildScope.conflatedTFlow(
+ builder: suspend FrpCoalescingProducerScope<T>.() -> Unit
+): TFlow<T> =
+ coalescingTFlow<T, Any?>(initialValue = Any(), coalesce = { _, new -> new }, builder = builder)
+ .mapCheap {
+ @Suppress("UNCHECKED_CAST")
+ it as T
+ }
+
+/** Scope for emitting to a [FrpBuildScope.coalescingTFlow]. */
+interface FrpCoalescingProducerScope<in T> {
+ /**
+ * Inserts [value] into the current batch, enqueueing it for emission from this [TFlow] if not
+ * already pending.
+ *
+ * Backpressure occurs when [emit] is called while the FRP network is currently in a
+ * transaction; if called multiple times, then emissions will be coalesced into a single batch
+ * that is then processed when the network is ready.
+ */
+ fun emit(value: T)
+}
+
+/** Scope for emitting to a [FrpBuildScope.tFlow]. */
+interface FrpProducerScope<in T> {
+ /**
+ * Emits a [value] to this [TFlow], suspending the caller until the FRP transaction containing
+ * the emission has completed.
+ */
+ suspend fun emit(value: T)
+}
+
+/**
+ * Suspends forever. Upon cancellation, runs [block]. Useful for unregistering callbacks inside of
+ * [FrpBuildScope.tFlow] and [FrpBuildScope.coalescingTFlow].
+ */
+suspend fun awaitClose(block: () -> Unit): Nothing =
+ try {
+ awaitCancellation()
+ } finally {
+ block()
+ }
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpEffectScope.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpEffectScope.kt
new file mode 100644
index 000000000000..a8ec98fdc6c9
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpEffectScope.kt
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp
+
+import kotlin.coroutines.RestrictsSuspension
+import kotlinx.coroutines.CoroutineScope
+
+/**
+ * Scope for external side-effects triggered by the Frp network. This still occurs within the
+ * context of a transaction, so general suspending calls are disallowed to prevent blocking the
+ * transaction. You can use [frpCoroutineScope] to [launch] new coroutines to perform long-running
+ * asynchronous work. This scope is alive for the duration of the containing [FrpBuildScope] that
+ * this side-effect scope is running in.
+ */
+@RestrictsSuspension
+@ExperimentalFrpApi
+interface FrpEffectScope : FrpTransactionScope {
+ /**
+ * A [CoroutineScope] whose lifecycle lives for as long as this [FrpEffectScope] is alive. This
+ * is generally until the [Job] returned by [FrpBuildScope.effect] is cancelled.
+ */
+ @ExperimentalFrpApi val frpCoroutineScope: CoroutineScope
+
+ /**
+ * A [FrpNetwork] instance that can be used to transactionally query / modify the FRP network.
+ *
+ * The lambda passed to [FrpNetwork.transact] on this instance will receive an [FrpBuildScope]
+ * that is lifetime-bound to this [FrpEffectScope]. Once this [FrpEffectScope] is no longer
+ * alive, any modifications to the FRP network performed via this [FrpNetwork] instance will be
+ * undone (any registered [observers][FrpBuildScope.observe] are unregistered, and any pending
+ * [side-effects][FrpBuildScope.effect] are cancelled).
+ */
+ @ExperimentalFrpApi val frpNetwork: FrpNetwork
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpNetwork.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpNetwork.kt
new file mode 100644
index 000000000000..acc76d93f928
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpNetwork.kt
@@ -0,0 +1,195 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp
+
+import com.android.systemui.experimental.frp.internal.BuildScopeImpl
+import com.android.systemui.experimental.frp.internal.Network
+import com.android.systemui.experimental.frp.internal.StateScopeImpl
+import com.android.systemui.experimental.frp.internal.util.awaitCancellationAndThen
+import com.android.systemui.experimental.frp.internal.util.childScope
+import kotlin.coroutines.CoroutineContext
+import kotlin.coroutines.EmptyCoroutineContext
+import kotlin.coroutines.coroutineContext
+import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.CoroutineName
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.job
+import kotlinx.coroutines.launch
+
+/**
+ * Marks declarations that are still **experimental** and shouldn't be used in general production
+ * code.
+ */
+@RequiresOptIn(
+ message = "This API is experimental and should not be used in general production code."
+)
+@Retention(AnnotationRetention.BINARY)
+annotation class ExperimentalFrpApi
+
+/**
+ * External interface to an FRP network. Can be used to make transactional queries and modifications
+ * to the network.
+ */
+@ExperimentalFrpApi
+interface FrpNetwork {
+ /**
+ * Runs [block] inside of a transaction, suspending until the transaction is complete.
+ *
+ * The [FrpBuildScope] receiver exposes methods that can be used to query or modify the network.
+ * If the network is cancelled while the caller of [transact] is suspended, then the call will
+ * be cancelled.
+ */
+ @ExperimentalFrpApi suspend fun <R> transact(block: suspend FrpTransactionScope.() -> R): R
+
+ /**
+ * Activates [spec] in a transaction, suspending indefinitely. While suspended, all observers
+ * and long-running effects are kept alive. When cancelled, observers are unregistered and
+ * effects are cancelled.
+ */
+ @ExperimentalFrpApi suspend fun activateSpec(spec: FrpSpec<*>)
+
+ /** Returns a [CoalescingMutableTFlow] that can emit values into this [FrpNetwork]. */
+ @ExperimentalFrpApi
+ fun <In, Out> coalescingMutableTFlow(
+ coalesce: (old: Out, new: In) -> Out,
+ getInitialValue: () -> Out,
+ ): CoalescingMutableTFlow<In, Out>
+
+ /** Returns a [MutableTFlow] that can emit values into this [FrpNetwork]. */
+ @ExperimentalFrpApi fun <T> mutableTFlow(): MutableTFlow<T>
+
+ /** Returns a [MutableTState]. with initial state [initialValue]. */
+ @ExperimentalFrpApi
+ fun <T> mutableTStateDeferred(initialValue: FrpDeferredValue<T>): MutableTState<T>
+}
+
+/** Returns a [CoalescingMutableTFlow] that can emit values into this [FrpNetwork]. */
+@ExperimentalFrpApi
+fun <In, Out> FrpNetwork.coalescingMutableTFlow(
+ coalesce: (old: Out, new: In) -> Out,
+ initialValue: Out,
+): CoalescingMutableTFlow<In, Out> =
+ coalescingMutableTFlow(coalesce, getInitialValue = { initialValue })
+
+/** Returns a [MutableTState]. with initial state [initialValue]. */
+@ExperimentalFrpApi
+fun <T> FrpNetwork.mutableTState(initialValue: T): MutableTState<T> =
+ mutableTStateDeferred(deferredOf(initialValue))
+
+/** Returns a [MutableTState]. with initial state [initialValue]. */
+@ExperimentalFrpApi
+fun <T> MutableTState(network: FrpNetwork, initialValue: T): MutableTState<T> =
+ network.mutableTState(initialValue)
+
+/** Returns a [MutableTFlow] that can emit values into this [FrpNetwork]. */
+@ExperimentalFrpApi
+fun <T> MutableTFlow(network: FrpNetwork): MutableTFlow<T> = network.mutableTFlow()
+
+/** Returns a [CoalescingMutableTFlow] that can emit values into this [FrpNetwork]. */
+@ExperimentalFrpApi
+fun <In, Out> CoalescingMutableTFlow(
+ network: FrpNetwork,
+ coalesce: (old: Out, new: In) -> Out,
+ initialValue: Out,
+): CoalescingMutableTFlow<In, Out> = network.coalescingMutableTFlow(coalesce) { initialValue }
+
+/** Returns a [CoalescingMutableTFlow] that can emit values into this [FrpNetwork]. */
+@ExperimentalFrpApi
+fun <In, Out> CoalescingMutableTFlow(
+ network: FrpNetwork,
+ coalesce: (old: Out, new: In) -> Out,
+ getInitialValue: () -> Out,
+): CoalescingMutableTFlow<In, Out> = network.coalescingMutableTFlow(coalesce, getInitialValue)
+
+/**
+ * Activates [spec] in a transaction and invokes [block] with the result, suspending indefinitely.
+ * While suspended, all observers and long-running effects are kept alive. When cancelled, observers
+ * are unregistered and effects are cancelled.
+ */
+@ExperimentalFrpApi
+suspend fun <R> FrpNetwork.activateSpec(spec: FrpSpec<R>, block: suspend (R) -> Unit) {
+ activateSpec {
+ val result = spec.applySpec()
+ launchEffect { block(result) }
+ }
+}
+
+internal class LocalFrpNetwork(
+ private val network: Network,
+ private val scope: CoroutineScope,
+ private val endSignal: TFlow<Any>,
+) : FrpNetwork {
+ override suspend fun <R> transact(block: suspend FrpTransactionScope.() -> R): R {
+ val result = CompletableDeferred<R>(coroutineContext[Job])
+ @Suppress("DeferredResultUnused")
+ network.transaction {
+ val buildScope =
+ BuildScopeImpl(
+ stateScope = StateScopeImpl(evalScope = this, endSignal = endSignal),
+ coroutineScope = scope,
+ )
+ buildScope.runInBuildScope { effect { result.complete(block()) } }
+ }
+ return result.await()
+ }
+
+ override suspend fun activateSpec(spec: FrpSpec<*>) {
+ val job =
+ network
+ .transaction {
+ val buildScope =
+ BuildScopeImpl(
+ stateScope = StateScopeImpl(evalScope = this, endSignal = endSignal),
+ coroutineScope = scope,
+ )
+ buildScope.runInBuildScope { launchScope(spec) }
+ }
+ .await()
+ awaitCancellationAndThen { job.cancel() }
+ }
+
+ override fun <In, Out> coalescingMutableTFlow(
+ coalesce: (old: Out, new: In) -> Out,
+ getInitialValue: () -> Out,
+ ): CoalescingMutableTFlow<In, Out> = CoalescingMutableTFlow(coalesce, network, getInitialValue)
+
+ override fun <T> mutableTFlow(): MutableTFlow<T> = MutableTFlow(network)
+
+ override fun <T> mutableTStateDeferred(initialValue: FrpDeferredValue<T>): MutableTState<T> =
+ MutableTState(network, initialValue.unwrapped)
+}
+
+/**
+ * Combination of an [FrpNetwork] and a [Job] that, when cancelled, will cancel the entire FRP
+ * network.
+ */
+@ExperimentalFrpApi
+class RootFrpNetwork
+internal constructor(private val network: Network, private val scope: CoroutineScope, job: Job) :
+ Job by job, FrpNetwork by LocalFrpNetwork(network, scope, emptyTFlow)
+
+/** Constructs a new [RootFrpNetwork] in the given [CoroutineScope]. */
+@ExperimentalFrpApi
+fun CoroutineScope.newFrpNetwork(
+ context: CoroutineContext = EmptyCoroutineContext
+): RootFrpNetwork {
+ val scope = childScope(context)
+ val network = Network(scope)
+ scope.launch(CoroutineName("newFrpNetwork scheduler")) { network.runInputScheduler() }
+ return RootFrpNetwork(network, scope, scope.coroutineContext.job)
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpScope.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpScope.kt
new file mode 100644
index 000000000000..a5a7977f2177
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpScope.kt
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp
+
+import kotlin.coroutines.RestrictsSuspension
+import kotlin.coroutines.resume
+import kotlin.coroutines.resumeWithException
+import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.Deferred
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.suspendCancellableCoroutine
+
+/** Denotes [FrpScope] interfaces as [DSL markers][DslMarker]. */
+@DslMarker annotation class FrpScopeMarker
+
+/**
+ * Base scope for all FRP scopes. Used to prevent implicitly capturing other scopes from in lambdas.
+ */
+@FrpScopeMarker
+@RestrictsSuspension
+@ExperimentalFrpApi
+interface FrpScope {
+ /**
+ * Returns the value held by the [FrpDeferredValue], suspending until available if necessary.
+ */
+ @ExperimentalFrpApi
+ @OptIn(ExperimentalCoroutinesApi::class)
+ suspend fun <A> FrpDeferredValue<A>.get(): A = suspendCancellableCoroutine { k ->
+ unwrapped.invokeOnCompletion { ex ->
+ ex?.let { k.resumeWithException(ex) } ?: k.resume(unwrapped.getCompleted())
+ }
+ }
+}
+
+/**
+ * A value that may not be immediately (synchronously) available, but is guaranteed to be available
+ * before this transaction is completed.
+ *
+ * @see FrpScope.get
+ */
+@ExperimentalFrpApi
+class FrpDeferredValue<out A> internal constructor(internal val unwrapped: Deferred<A>)
+
+/**
+ * Returns the value held by this [FrpDeferredValue], or throws [IllegalStateException] if it is not
+ * yet available.
+ *
+ * This API is not meant for general usage within the FRP network. It is made available mainly for
+ * debugging and logging. You should always prefer [get][FrpScope.get] if possible.
+ *
+ * @see FrpScope.get
+ */
+@ExperimentalFrpApi
+@OptIn(ExperimentalCoroutinesApi::class)
+fun <A> FrpDeferredValue<A>.getUnsafe(): A = unwrapped.getCompleted()
+
+/** Returns an already-available [FrpDeferredValue] containing [value]. */
+@ExperimentalFrpApi
+fun <A> deferredOf(value: A): FrpDeferredValue<A> = FrpDeferredValue(CompletableDeferred(value))
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpStateScope.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpStateScope.kt
new file mode 100644
index 000000000000..61336f4f4608
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpStateScope.kt
@@ -0,0 +1,780 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp
+
+import com.android.systemui.experimental.frp.combine as combinePure
+import com.android.systemui.experimental.frp.map as mapPure
+import com.android.systemui.experimental.frp.util.Just
+import com.android.systemui.experimental.frp.util.Left
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.Right
+import com.android.systemui.experimental.frp.util.WithPrev
+import com.android.systemui.experimental.frp.util.just
+import com.android.systemui.experimental.frp.util.map
+import com.android.systemui.experimental.frp.util.none
+import com.android.systemui.experimental.frp.util.partitionEithers
+import com.android.systemui.experimental.frp.util.zipWith
+import kotlin.coroutines.RestrictsSuspension
+
+typealias FrpStateful<R> = suspend FrpStateScope.() -> R
+
+/**
+ * Returns a [FrpStateful] that, when [applied][FrpStateScope.applyStateful], invokes [block] with
+ * the applier's [FrpStateScope].
+ */
+// TODO: caching story? should each Scope have a cache of applied FrpStateful instances?
+@ExperimentalFrpApi
+@Suppress("NOTHING_TO_INLINE")
+inline fun <A> statefully(noinline block: suspend FrpStateScope.() -> A): FrpStateful<A> = block
+
+/**
+ * Operations that accumulate state within the FRP network.
+ *
+ * State accumulation is an ongoing process that has a lifetime. Use `-Latest` combinators, such as
+ * [mapLatestStateful], to create smaller, nested lifecycles so that accumulation isn't running
+ * longer than needed.
+ */
+@ExperimentalFrpApi
+@RestrictsSuspension
+interface FrpStateScope : FrpTransactionScope {
+
+ /** TODO */
+ @ExperimentalFrpApi
+ // TODO: wish this could just be `deferred` but alas
+ fun <A> deferredStateScope(block: suspend FrpStateScope.() -> A): FrpDeferredValue<A>
+
+ /**
+ * Returns a [TState] that holds onto the most recently emitted value from this [TFlow], or
+ * [initialValue] if nothing has been emitted since it was constructed.
+ *
+ * Note that the value contained within the [TState] is not updated until *after* all [TFlow]s
+ * have been processed; this keeps the value of the [TState] consistent during the entire FRP
+ * transaction.
+ */
+ @ExperimentalFrpApi fun <A> TFlow<A>.holdDeferred(initialValue: FrpDeferredValue<A>): TState<A>
+
+ /**
+ * Returns a [TFlow] that emits from a merged, incrementally-accumulated collection of [TFlow]s
+ * emitted from this, following the same "patch" rules as outlined in [foldMapIncrementally].
+ *
+ * Conceptually this is equivalent to:
+ * ```kotlin
+ * fun <K, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementally(
+ * initialTFlows: Map<K, TFlow<V>>,
+ * ): TFlow<Map<K, V>> =
+ * foldMapIncrementally(initialTFlows).map { it.merge() }.switch()
+ * ```
+ *
+ * While the behavior is equivalent to the conceptual definition above, the implementation is
+ * significantly more efficient.
+ *
+ * @see merge
+ */
+ @ExperimentalFrpApi
+ fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementally(
+ initialTFlows: FrpDeferredValue<Map<K, TFlow<V>>>
+ ): TFlow<Map<K, V>>
+
+ /**
+ * Returns a [TFlow] that emits from a merged, incrementally-accumulated collection of [TFlow]s
+ * emitted from this, following the same "patch" rules as outlined in [foldMapIncrementally].
+ *
+ * Conceptually this is equivalent to:
+ * ```kotlin
+ * fun <K, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementallyPrompt(
+ * initialTFlows: Map<K, TFlow<V>>,
+ * ): TFlow<Map<K, V>> =
+ * foldMapIncrementally(initialTFlows).map { it.merge() }.switchPromptly()
+ * ```
+ *
+ * While the behavior is equivalent to the conceptual definition above, the implementation is
+ * significantly more efficient.
+ *
+ * @see merge
+ */
+ @ExperimentalFrpApi
+ fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementallyPromptly(
+ initialTFlows: FrpDeferredValue<Map<K, TFlow<V>>>
+ ): TFlow<Map<K, V>>
+
+ // TODO: everything below this comment can be made into extensions once we have context params
+
+ /**
+ * Returns a [TFlow] that emits from a merged, incrementally-accumulated collection of [TFlow]s
+ * emitted from this, following the same "patch" rules as outlined in [foldMapIncrementally].
+ *
+ * Conceptually this is equivalent to:
+ * ```kotlin
+ * fun <K, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementally(
+ * initialTFlows: Map<K, TFlow<V>>,
+ * ): TFlow<Map<K, V>> =
+ * foldMapIncrementally(initialTFlows).map { it.merge() }.switch()
+ * ```
+ *
+ * While the behavior is equivalent to the conceptual definition above, the implementation is
+ * significantly more efficient.
+ *
+ * @see merge
+ */
+ @ExperimentalFrpApi
+ fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementally(
+ initialTFlows: Map<K, TFlow<V>> = emptyMap()
+ ): TFlow<Map<K, V>> = mergeIncrementally(deferredOf(initialTFlows))
+
+ /**
+ * Returns a [TFlow] that emits from a merged, incrementally-accumulated collection of [TFlow]s
+ * emitted from this, following the same "patch" rules as outlined in [foldMapIncrementally].
+ *
+ * Conceptually this is equivalent to:
+ * ```kotlin
+ * fun <K, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementallyPrompt(
+ * initialTFlows: Map<K, TFlow<V>>,
+ * ): TFlow<Map<K, V>> =
+ * foldMapIncrementally(initialTFlows).map { it.merge() }.switchPromptly()
+ * ```
+ *
+ * While the behavior is equivalent to the conceptual definition above, the implementation is
+ * significantly more efficient.
+ *
+ * @see merge
+ */
+ @ExperimentalFrpApi
+ fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementallyPromptly(
+ initialTFlows: Map<K, TFlow<V>> = emptyMap()
+ ): TFlow<Map<K, V>> = mergeIncrementallyPromptly(deferredOf(initialTFlows))
+
+ /** Applies the [FrpStateful] within this [FrpStateScope]. */
+ @ExperimentalFrpApi suspend fun <A> FrpStateful<A>.applyStateful(): A = this()
+
+ /**
+ * Applies the [FrpStateful] within this [FrpStateScope], returning the result as an
+ * [FrpDeferredValue].
+ */
+ @ExperimentalFrpApi
+ fun <A> FrpStateful<A>.applyStatefulDeferred(): FrpDeferredValue<A> = deferredStateScope {
+ applyStateful()
+ }
+
+ /**
+ * Returns a [TState] that holds onto the most recently emitted value from this [TFlow], or
+ * [initialValue] if nothing has been emitted since it was constructed.
+ *
+ * Note that the value contained within the [TState] is not updated until *after* all [TFlow]s
+ * have been processed; this keeps the value of the [TState] consistent during the entire FRP
+ * transaction.
+ */
+ @ExperimentalFrpApi
+ fun <A> TFlow<A>.hold(initialValue: A): TState<A> = holdDeferred(deferredOf(initialValue))
+
+ /**
+ * Returns a [TFlow] the emits the result of applying [FrpStatefuls][FrpStateful] emitted from
+ * the original [TFlow].
+ *
+ * Unlike [applyLatestStateful], state accumulation is not stopped with each subsequent emission
+ * of the original [TFlow].
+ */
+ @ExperimentalFrpApi fun <A> TFlow<FrpStateful<A>>.applyStatefuls(): TFlow<A>
+
+ /**
+ * Returns a [TFlow] containing the results of applying [transform] to each value of the
+ * original [TFlow].
+ *
+ * [transform] can perform state accumulation via its [FrpStateScope] receiver. Unlike
+ * [mapLatestStateful], accumulation is not stopped with each subsequent emission of the
+ * original [TFlow].
+ */
+ @ExperimentalFrpApi
+ fun <A, B> TFlow<A>.mapStateful(transform: suspend FrpStateScope.(A) -> B): TFlow<B> =
+ mapPure { statefully { transform(it) } }.applyStatefuls()
+
+ /**
+ * Returns a [TState] the holds the result of applying the [FrpStateful] held by the original
+ * [TState].
+ *
+ * Unlike [applyLatestStateful], state accumulation is not stopped with each state change.
+ */
+ @ExperimentalFrpApi
+ fun <A> TState<FrpStateful<A>>.applyStatefuls(): TState<A> =
+ stateChanges
+ .applyStatefuls()
+ .holdDeferred(initialValue = deferredStateScope { sampleDeferred().get()() })
+
+ /** Returns a [TFlow] that switches to the [TFlow] emitted by the original [TFlow]. */
+ @ExperimentalFrpApi fun <A> TFlow<TFlow<A>>.flatten() = hold(emptyTFlow).switch()
+
+ /**
+ * Returns a [TFlow] containing the results of applying [transform] to each value of the
+ * original [TFlow].
+ *
+ * [transform] can perform state accumulation via its [FrpStateScope] receiver. With each
+ * invocation of [transform], state accumulation from previous invocation is stopped.
+ */
+ @ExperimentalFrpApi
+ fun <A, B> TFlow<A>.mapLatestStateful(transform: suspend FrpStateScope.(A) -> B): TFlow<B> =
+ mapPure { statefully { transform(it) } }.applyLatestStateful()
+
+ /**
+ * Returns a [TFlow] that switches to a new [TFlow] produced by [transform] every time the
+ * original [TFlow] emits a value.
+ *
+ * [transform] can perform state accumulation via its [FrpStateScope] receiver. With each
+ * invocation of [transform], state accumulation from previous invocation is stopped.
+ */
+ @ExperimentalFrpApi
+ fun <A, B> TFlow<A>.flatMapLatestStateful(
+ transform: suspend FrpStateScope.(A) -> TFlow<B>
+ ): TFlow<B> = mapLatestStateful(transform).flatten()
+
+ /**
+ * Returns a [TFlow] containing the results of applying each [FrpStateful] emitted from the
+ * original [TFlow].
+ *
+ * When each [FrpStateful] is applied, state accumulation from the previously-active
+ * [FrpStateful] is stopped.
+ */
+ @ExperimentalFrpApi
+ fun <A> TFlow<FrpStateful<A>>.applyLatestStateful(): TFlow<A> = applyLatestStateful {}.first
+
+ /**
+ * Returns a [TState] containing the value returned by applying the [FrpStateful] held by the
+ * original [TState].
+ *
+ * When each [FrpStateful] is applied, state accumulation from the previously-active
+ * [FrpStateful] is stopped.
+ */
+ @ExperimentalFrpApi
+ fun <A> TState<FrpStateful<A>>.applyLatestStateful(): TState<A> {
+ val (changes, init) = stateChanges.applyLatestStateful { sample()() }
+ return changes.holdDeferred(init)
+ }
+
+ /**
+ * Returns a [TFlow] containing the results of applying each [FrpStateful] emitted from the
+ * original [TFlow], and a [FrpDeferredValue] containing the result of applying [init]
+ * immediately.
+ *
+ * When each [FrpStateful] is applied, state accumulation from the previously-active
+ * [FrpStateful] is stopped.
+ */
+ @ExperimentalFrpApi
+ fun <A, B> TFlow<FrpStateful<B>>.applyLatestStateful(
+ init: FrpStateful<A>
+ ): Pair<TFlow<B>, FrpDeferredValue<A>> {
+ val (flow, result) =
+ mapCheap { spec -> mapOf(Unit to just(spec)) }
+ .applyLatestStatefulForKey(init = mapOf(Unit to init), numKeys = 1)
+ val outFlow: TFlow<B> =
+ flow.mapMaybe {
+ checkNotNull(it[Unit]) { "applyLatest: expected result, but none present in: $it" }
+ }
+ val outInit: FrpDeferredValue<A> = deferredTransactionScope {
+ val initResult: Map<Unit, A> = result.get()
+ check(Unit in initResult) {
+ "applyLatest: expected initial result, but none present in: $initResult"
+ }
+ @Suppress("UNCHECKED_CAST")
+ initResult.getOrDefault(Unit) { null } as A
+ }
+ return Pair(outFlow, outInit)
+ }
+
+ /**
+ * Returns a [TFlow] containing the results of applying each [FrpStateful] emitted from the
+ * original [TFlow], and a [FrpDeferredValue] containing the result of applying [init]
+ * immediately.
+ *
+ * If the [Maybe] contained within the value for an associated key is [none], then the
+ * previously-active [FrpStateful] will be stopped with no replacement.
+ *
+ * When each [FrpStateful] is applied, state accumulation from the previously-active
+ * [FrpStateful] with the same key is stopped.
+ */
+ @ExperimentalFrpApi
+ fun <K, A, B> TFlow<Map<K, Maybe<FrpStateful<A>>>>.applyLatestStatefulForKey(
+ init: FrpDeferredValue<Map<K, FrpStateful<B>>>,
+ numKeys: Int? = null,
+ ): Pair<TFlow<Map<K, Maybe<A>>>, FrpDeferredValue<Map<K, B>>>
+
+ /**
+ * Returns a [TFlow] containing the results of applying each [FrpStateful] emitted from the
+ * original [TFlow], and a [FrpDeferredValue] containing the result of applying [init]
+ * immediately.
+ *
+ * When each [FrpStateful] is applied, state accumulation from the previously-active
+ * [FrpStateful] with the same key is stopped.
+ *
+ * If the [Maybe] contained within the value for an associated key is [none], then the
+ * previously-active [FrpStateful] will be stopped with no replacement.
+ */
+ @ExperimentalFrpApi
+ fun <K, A, B> TFlow<Map<K, Maybe<FrpStateful<A>>>>.applyLatestStatefulForKey(
+ init: Map<K, FrpStateful<B>>,
+ numKeys: Int? = null,
+ ): Pair<TFlow<Map<K, Maybe<A>>>, FrpDeferredValue<Map<K, B>>> =
+ applyLatestStatefulForKey(deferredOf(init), numKeys)
+
+ /**
+ * Returns a [TState] containing the latest results of applying each [FrpStateful] emitted from
+ * the original [TFlow].
+ *
+ * When each [FrpStateful] is applied, state accumulation from the previously-active
+ * [FrpStateful] with the same key is stopped.
+ *
+ * If the [Maybe] contained within the value for an associated key is [none], then the
+ * previously-active [FrpStateful] will be stopped with no replacement.
+ */
+ @ExperimentalFrpApi
+ fun <K, A> TFlow<Map<K, Maybe<FrpStateful<A>>>>.holdLatestStatefulForKey(
+ init: FrpDeferredValue<Map<K, FrpStateful<A>>>,
+ numKeys: Int? = null,
+ ): TState<Map<K, A>> {
+ val (changes, initialValues) = applyLatestStatefulForKey(init, numKeys)
+ return changes.foldMapIncrementally(initialValues)
+ }
+
+ /**
+ * Returns a [TState] containing the latest results of applying each [FrpStateful] emitted from
+ * the original [TFlow].
+ *
+ * When each [FrpStateful] is applied, state accumulation from the previously-active
+ * [FrpStateful] with the same key is stopped.
+ *
+ * If the [Maybe] contained within the value for an associated key is [none], then the
+ * previously-active [FrpStateful] will be stopped with no replacement.
+ */
+ @ExperimentalFrpApi
+ fun <K, A> TFlow<Map<K, Maybe<FrpStateful<A>>>>.holdLatestStatefulForKey(
+ init: Map<K, FrpStateful<A>> = emptyMap(),
+ numKeys: Int? = null,
+ ): TState<Map<K, A>> = holdLatestStatefulForKey(deferredOf(init), numKeys)
+
+ /**
+ * Returns a [TFlow] containing the results of applying each [FrpStateful] emitted from the
+ * original [TFlow], and a [FrpDeferredValue] containing the result of applying [init]
+ * immediately.
+ *
+ * When each [FrpStateful] is applied, state accumulation from the previously-active
+ * [FrpStateful] with the same key is stopped.
+ *
+ * If the [Maybe] contained within the value for an associated key is [none], then the
+ * previously-active [FrpStateful] will be stopped with no replacement.
+ */
+ @ExperimentalFrpApi
+ fun <K, A> TFlow<Map<K, Maybe<FrpStateful<A>>>>.applyLatestStatefulForKey(
+ numKeys: Int? = null
+ ): TFlow<Map<K, Maybe<A>>> =
+ applyLatestStatefulForKey(init = emptyMap<K, FrpStateful<*>>(), numKeys = numKeys).first
+
+ /**
+ * Returns a [TFlow] containing the results of applying [transform] to each value of the
+ * original [TFlow], and a [FrpDeferredValue] containing the result of applying [transform] to
+ * [initialValues] immediately.
+ *
+ * [transform] can perform state accumulation via its [FrpStateScope] receiver. With each
+ * invocation of [transform], state accumulation from previous invocation is stopped.
+ *
+ * If the [Maybe] contained within the value for an associated key is [none], then the
+ * previously-active [FrpStateScope] will be stopped with no replacement.
+ */
+ @ExperimentalFrpApi
+ fun <K, A, B> TFlow<Map<K, Maybe<A>>>.mapLatestStatefulForKey(
+ initialValues: FrpDeferredValue<Map<K, A>>,
+ numKeys: Int? = null,
+ transform: suspend FrpStateScope.(A) -> B,
+ ): Pair<TFlow<Map<K, Maybe<B>>>, FrpDeferredValue<Map<K, B>>> =
+ mapPure { patch -> patch.mapValues { (_, v) -> v.map { statefully { transform(it) } } } }
+ .applyLatestStatefulForKey(
+ deferredStateScope {
+ initialValues.get().mapValues { (_, v) -> statefully { transform(v) } }
+ },
+ numKeys = numKeys,
+ )
+
+ /**
+ * Returns a [TFlow] containing the results of applying [transform] to each value of the
+ * original [TFlow], and a [FrpDeferredValue] containing the result of applying [transform] to
+ * [initialValues] immediately.
+ *
+ * [transform] can perform state accumulation via its [FrpStateScope] receiver. With each
+ * invocation of [transform], state accumulation from previous invocation is stopped.
+ *
+ * If the [Maybe] contained within the value for an associated key is [none], then the
+ * previously-active [FrpStateScope] will be stopped with no replacement.
+ */
+ @ExperimentalFrpApi
+ fun <K, A, B> TFlow<Map<K, Maybe<A>>>.mapLatestStatefulForKey(
+ initialValues: Map<K, A>,
+ numKeys: Int? = null,
+ transform: suspend FrpStateScope.(A) -> B,
+ ): Pair<TFlow<Map<K, Maybe<B>>>, FrpDeferredValue<Map<K, B>>> =
+ mapLatestStatefulForKey(deferredOf(initialValues), numKeys, transform)
+
+ /**
+ * Returns a [TFlow] containing the results of applying [transform] to each value of the
+ * original [TFlow].
+ *
+ * [transform] can perform state accumulation via its [FrpStateScope] receiver. With each
+ * invocation of [transform], state accumulation from previous invocation is stopped.
+ *
+ * If the [Maybe] contained within the value for an associated key is [none], then the
+ * previously-active [FrpStateScope] will be stopped with no replacement.
+ */
+ @ExperimentalFrpApi
+ fun <K, A, B> TFlow<Map<K, Maybe<A>>>.mapLatestStatefulForKey(
+ numKeys: Int? = null,
+ transform: suspend FrpStateScope.(A) -> B,
+ ): TFlow<Map<K, Maybe<B>>> = mapLatestStatefulForKey(emptyMap(), numKeys, transform).first
+
+ /**
+ * Returns a [TFlow] that will only emit the next event of the original [TFlow], and then will
+ * act as [emptyTFlow].
+ *
+ * If the original [TFlow] is emitting an event at this exact time, then it will be the only
+ * even emitted from the result [TFlow].
+ */
+ @ExperimentalFrpApi
+ fun <A> TFlow<A>.nextOnly(): TFlow<A> =
+ if (this === emptyTFlow) {
+ this
+ } else {
+ TFlowLoop<A>().also {
+ it.loopback = it.mapCheap { emptyTFlow }.hold(this@nextOnly).switch()
+ }
+ }
+
+ /** Returns a [TFlow] that skips the next emission of the original [TFlow]. */
+ @ExperimentalFrpApi
+ fun <A> TFlow<A>.skipNext(): TFlow<A> =
+ if (this === emptyTFlow) {
+ this
+ } else {
+ nextOnly().mapCheap { this@skipNext }.hold(emptyTFlow).switch()
+ }
+
+ /**
+ * Returns a [TFlow] that emits values from the original [TFlow] up until [stop] emits a value.
+ *
+ * If the original [TFlow] emits at the same time as [stop], then the returned [TFlow] will emit
+ * that value.
+ */
+ @ExperimentalFrpApi
+ fun <A> TFlow<A>.takeUntil(stop: TFlow<*>): TFlow<A> =
+ if (stop === emptyTFlow) {
+ this
+ } else {
+ stop.mapCheap { emptyTFlow }.nextOnly().hold(this).switch()
+ }
+
+ /**
+ * Invokes [stateful] in a new [FrpStateScope] that is a child of this one.
+ *
+ * This new scope is stopped when [stop] first emits a value, or when the parent scope is
+ * stopped. Stopping will end all state accumulation; any [TStates][TState] returned from this
+ * scope will no longer update.
+ */
+ @ExperimentalFrpApi
+ fun <A> childStateScope(stop: TFlow<*>, stateful: FrpStateful<A>): FrpDeferredValue<A> {
+ val (_, init: FrpDeferredValue<Map<Unit, A>>) =
+ stop
+ .nextOnly()
+ .mapPure { mapOf(Unit to none<FrpStateful<A>>()) }
+ .applyLatestStatefulForKey(init = mapOf(Unit to stateful), numKeys = 1)
+ return deferredStateScope { init.get().getValue(Unit) }
+ }
+
+ /**
+ * Returns a [TFlow] that emits values from the original [TFlow] up to and including a value is
+ * emitted that satisfies [predicate].
+ */
+ @ExperimentalFrpApi
+ fun <A> TFlow<A>.takeUntil(predicate: suspend FrpTransactionScope.(A) -> Boolean): TFlow<A> =
+ takeUntil(filter(predicate))
+
+ /**
+ * Returns a [TState] that is incrementally updated when this [TFlow] emits a value, by applying
+ * [transform] to both the emitted value and the currently tracked state.
+ *
+ * Note that the value contained within the [TState] is not updated until *after* all [TFlow]s
+ * have been processed; this keeps the value of the [TState] consistent during the entire FRP
+ * transaction.
+ */
+ @ExperimentalFrpApi
+ fun <A, B> TFlow<A>.fold(
+ initialValue: B,
+ transform: suspend FrpTransactionScope.(A, B) -> B,
+ ): TState<B> {
+ lateinit var state: TState<B>
+ return mapPure { a -> transform(a, state.sample()) }.hold(initialValue).also { state = it }
+ }
+
+ /**
+ * Returns a [TState] that is incrementally updated when this [TFlow] emits a value, by applying
+ * [transform] to both the emitted value and the currently tracked state.
+ *
+ * Note that the value contained within the [TState] is not updated until *after* all [TFlow]s
+ * have been processed; this keeps the value of the [TState] consistent during the entire FRP
+ * transaction.
+ */
+ @ExperimentalFrpApi
+ fun <A, B> TFlow<A>.foldDeferred(
+ initialValue: FrpDeferredValue<B>,
+ transform: suspend FrpTransactionScope.(A, B) -> B,
+ ): TState<B> {
+ lateinit var state: TState<B>
+ return mapPure { a -> transform(a, state.sample()) }
+ .holdDeferred(initialValue)
+ .also { state = it }
+ }
+
+ /**
+ * Returns a [TState] that holds onto the result of applying the most recently emitted
+ * [FrpStateful] this [TFlow], or [init] if nothing has been emitted since it was constructed.
+ *
+ * When each [FrpStateful] is applied, state accumulation from the previously-active
+ * [FrpStateful] is stopped.
+ *
+ * Note that the value contained within the [TState] is not updated until *after* all [TFlow]s
+ * have been processed; this keeps the value of the [TState] consistent during the entire FRP
+ * transaction.
+ *
+ * Shorthand for:
+ * ```kotlin
+ * val (changes, initApplied) = applyLatestStateful(init)
+ * return changes.toTStateDeferred(initApplied)
+ * ```
+ */
+ @ExperimentalFrpApi
+ fun <A> TFlow<FrpStateful<A>>.holdLatestStateful(init: FrpStateful<A>): TState<A> {
+ val (changes, initApplied) = applyLatestStateful(init)
+ return changes.holdDeferred(initApplied)
+ }
+
+ /**
+ * Returns a [TFlow] that emits the two most recent emissions from the original [TFlow].
+ * [initialValue] is used as the previous value for the first emission.
+ *
+ * Shorthand for `sample(hold(init)) { new, old -> Pair(old, new) }`
+ */
+ @ExperimentalFrpApi
+ fun <S, T : S> TFlow<T>.pairwise(initialValue: S): TFlow<WithPrev<S, T>> {
+ val previous = hold(initialValue)
+ return mapCheap { new -> WithPrev(previousValue = previous.sample(), newValue = new) }
+ }
+
+ /**
+ * Returns a [TFlow] that emits the two most recent emissions from the original [TFlow]. Note
+ * that the returned [TFlow] will not emit until the original [TFlow] has emitted twice.
+ */
+ @ExperimentalFrpApi
+ fun <A> TFlow<A>.pairwise(): TFlow<WithPrev<A, A>> =
+ mapCheap { just(it) }
+ .pairwise(none)
+ .mapMaybe { (prev, next) -> prev.zipWith(next, ::WithPrev) }
+
+ /**
+ * Returns a [TState] that holds both the current and previous values of the original [TState].
+ * [initialPreviousValue] is used as the first previous value.
+ *
+ * Shorthand for `sample(hold(init)) { new, old -> Pair(old, new) }`
+ */
+ @ExperimentalFrpApi
+ fun <S, T : S> TState<T>.pairwise(initialPreviousValue: S): TState<WithPrev<S, T>> =
+ stateChanges
+ .pairwise(initialPreviousValue)
+ .holdDeferred(deferredTransactionScope { WithPrev(initialPreviousValue, sample()) })
+
+ /**
+ * Returns a [TState] holding a [Map] that is updated incrementally whenever this emits a value.
+ *
+ * The value emitted is used as a "patch" for the tracked [Map]; for each key [K] in the emitted
+ * map, an associated value of [Just] will insert or replace the value in the tracked [Map], and
+ * an associated value of [none] will remove the key from the tracked [Map].
+ */
+ @ExperimentalFrpApi
+ fun <K, V> TFlow<Map<K, Maybe<V>>>.foldMapIncrementally(
+ initialValues: FrpDeferredValue<Map<K, V>>
+ ): TState<Map<K, V>> =
+ foldDeferred(initialValues) { patch, map ->
+ val (adds: List<Pair<K, V>>, removes: List<K>) =
+ patch
+ .asSequence()
+ .map { (k, v) -> if (v is Just) Left(k to v.value) else Right(k) }
+ .partitionEithers()
+ val removed: Map<K, V> = map - removes.toSet()
+ val updated: Map<K, V> = removed + adds
+ updated
+ }
+
+ /**
+ * Returns a [TState] holding a [Map] that is updated incrementally whenever this emits a value.
+ *
+ * The value emitted is used as a "patch" for the tracked [Map]; for each key [K] in the emitted
+ * map, an associated value of [Just] will insert or replace the value in the tracked [Map], and
+ * an associated value of [none] will remove the key from the tracked [Map].
+ */
+ @ExperimentalFrpApi
+ fun <K, V> TFlow<Map<K, Maybe<V>>>.foldMapIncrementally(
+ initialValues: Map<K, V> = emptyMap()
+ ): TState<Map<K, V>> = foldMapIncrementally(deferredOf(initialValues))
+
+ /**
+ * Returns a [TFlow] that wraps each emission of the original [TFlow] into an [IndexedValue],
+ * containing the emitted value and its index (starting from zero).
+ *
+ * Shorthand for:
+ * ```
+ * val index = fold(0) { _, oldIdx -> oldIdx + 1 }
+ * sample(index) { a, idx -> IndexedValue(idx, a) }
+ * ```
+ */
+ @ExperimentalFrpApi
+ fun <A> TFlow<A>.withIndex(): TFlow<IndexedValue<A>> {
+ val index = fold(0) { _, old -> old + 1 }
+ return sample(index) { a, idx -> IndexedValue(idx, a) }
+ }
+
+ /**
+ * Returns a [TFlow] containing the results of applying [transform] to each value of the
+ * original [TFlow] and its index (starting from zero).
+ *
+ * Shorthand for:
+ * ```
+ * withIndex().map { (idx, a) -> transform(idx, a) }
+ * ```
+ */
+ @ExperimentalFrpApi
+ fun <A, B> TFlow<A>.mapIndexed(transform: suspend FrpTransactionScope.(Int, A) -> B): TFlow<B> {
+ val index = fold(0) { _, i -> i + 1 }
+ return sample(index) { a, idx -> transform(idx, a) }
+ }
+
+ /** Returns a [TFlow] where all subsequent repetitions of the same value are filtered out. */
+ @ExperimentalFrpApi
+ fun <A> TFlow<A>.distinctUntilChanged(): TFlow<A> {
+ val state: TState<Any?> = hold(Any())
+ return filter { it != state.sample() }
+ }
+
+ /**
+ * Returns a new [TFlow] that emits at the same rate as the original [TFlow], but combines the
+ * emitted value with the most recent emission from [other] using [transform].
+ *
+ * Note that the returned [TFlow] will not emit anything until [other] has emitted at least one
+ * value.
+ */
+ @ExperimentalFrpApi
+ fun <A, B, C> TFlow<A>.sample(
+ other: TFlow<B>,
+ transform: suspend FrpTransactionScope.(A, B) -> C,
+ ): TFlow<C> {
+ val state = other.mapCheap { just(it) }.hold(none)
+ return sample(state) { a, b -> b.map { transform(a, it) } }.filterJust()
+ }
+
+ /**
+ * Returns a [TState] that samples the [Transactional] held by the given [TState] within the
+ * same transaction that the state changes.
+ */
+ @ExperimentalFrpApi
+ fun <A> TState<Transactional<A>>.sampleTransactionals(): TState<A> =
+ stateChanges
+ .sampleTransactionals()
+ .holdDeferred(deferredTransactionScope { sample().sample() })
+
+ /**
+ * Returns a [TState] that transforms the value held inside this [TState] by applying it to the
+ * given function [transform].
+ */
+ @ExperimentalFrpApi
+ fun <A, B> TState<A>.map(transform: suspend FrpTransactionScope.(A) -> B): TState<B> =
+ mapPure { transactionally { transform(it) } }.sampleTransactionals()
+
+ /**
+ * Returns a [TState] whose value is generated with [transform] by combining the current values
+ * of each given [TState].
+ *
+ * @see TState.combineWith
+ */
+ @ExperimentalFrpApi
+ fun <A, B, Z> combine(
+ stateA: TState<A>,
+ stateB: TState<B>,
+ transform: suspend FrpTransactionScope.(A, B) -> Z,
+ ): TState<Z> =
+ com.android.systemui.experimental.frp
+ .combine(stateA, stateB) { a, b -> transactionally { transform(a, b) } }
+ .sampleTransactionals()
+
+ /**
+ * Returns a [TState] whose value is generated with [transform] by combining the current values
+ * of each given [TState].
+ *
+ * @see TState.combineWith
+ */
+ @ExperimentalFrpApi
+ fun <A, B, C, D, Z> combine(
+ stateA: TState<A>,
+ stateB: TState<B>,
+ stateC: TState<C>,
+ stateD: TState<D>,
+ transform: suspend FrpTransactionScope.(A, B, C, D) -> Z,
+ ): TState<Z> =
+ com.android.systemui.experimental.frp
+ .combine(stateA, stateB, stateC, stateD) { a, b, c, d ->
+ transactionally { transform(a, b, c, d) }
+ }
+ .sampleTransactionals()
+
+ /** Returns a [TState] by applying [transform] to the value held by the original [TState]. */
+ @ExperimentalFrpApi
+ fun <A, B> TState<A>.flatMap(
+ transform: suspend FrpTransactionScope.(A) -> TState<B>
+ ): TState<B> = mapPure { transactionally { transform(it) } }.sampleTransactionals().flatten()
+
+ /**
+ * Returns a [TState] whose value is generated with [transform] by combining the current values
+ * of each given [TState].
+ *
+ * @see TState.combineWith
+ */
+ @ExperimentalFrpApi
+ fun <A, Z> combine(
+ vararg states: TState<A>,
+ transform: suspend FrpTransactionScope.(List<A>) -> Z,
+ ): TState<Z> = combinePure(*states).map(transform)
+
+ /**
+ * Returns a [TState] whose value is generated with [transform] by combining the current values
+ * of each given [TState].
+ *
+ * @see TState.combineWith
+ */
+ @ExperimentalFrpApi
+ fun <A, Z> Iterable<TState<A>>.combine(
+ transform: suspend FrpTransactionScope.(List<A>) -> Z
+ ): TState<Z> = combinePure().map(transform)
+
+ /**
+ * Returns a [TState] by combining the values held inside the given [TState]s by applying them
+ * to the given function [transform].
+ */
+ @ExperimentalFrpApi
+ fun <A, B, C> TState<A>.combineWith(
+ other: TState<B>,
+ transform: suspend FrpTransactionScope.(A, B) -> C,
+ ): TState<C> = combine(this, other, transform)
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpTransactionScope.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpTransactionScope.kt
new file mode 100644
index 000000000000..b0b9dbcbe8c1
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpTransactionScope.kt
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp
+
+import kotlin.coroutines.RestrictsSuspension
+
+/**
+ * FRP operations that are available while a transaction is active.
+ *
+ * These operations do not accumulate state, which makes [FrpTransactionScope] weaker than
+ * [FrpStateScope], but allows them to be used in more places.
+ */
+@ExperimentalFrpApi
+@RestrictsSuspension
+interface FrpTransactionScope : FrpScope {
+
+ /**
+ * Returns the current value of this [Transactional] as a [FrpDeferredValue].
+ *
+ * @see sample
+ */
+ @ExperimentalFrpApi fun <A> Transactional<A>.sampleDeferred(): FrpDeferredValue<A>
+
+ /**
+ * Returns the current value of this [TState] as a [FrpDeferredValue].
+ *
+ * @see sample
+ */
+ @ExperimentalFrpApi fun <A> TState<A>.sampleDeferred(): FrpDeferredValue<A>
+
+ /** TODO */
+ @ExperimentalFrpApi
+ fun <A> deferredTransactionScope(
+ block: suspend FrpTransactionScope.() -> A
+ ): FrpDeferredValue<A>
+
+ /** A [TFlow] that emits once, within this transaction, and then never again. */
+ @ExperimentalFrpApi val now: TFlow<Unit>
+
+ /**
+ * Returns the current value held by this [TState]. Guaranteed to be consistent within the same
+ * transaction.
+ */
+ @ExperimentalFrpApi suspend fun <A> TState<A>.sample(): A = sampleDeferred().get()
+
+ /**
+ * Returns the current value held by this [Transactional]. Guaranteed to be consistent within
+ * the same transaction.
+ */
+ @ExperimentalFrpApi suspend fun <A> Transactional<A>.sample(): A = sampleDeferred().get()
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/TFlow.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/TFlow.kt
new file mode 100644
index 000000000000..cca6c9a623f2
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/TFlow.kt
@@ -0,0 +1,560 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp
+
+import com.android.systemui.experimental.frp.internal.DemuxImpl
+import com.android.systemui.experimental.frp.internal.Init
+import com.android.systemui.experimental.frp.internal.InitScope
+import com.android.systemui.experimental.frp.internal.InputNode
+import com.android.systemui.experimental.frp.internal.Network
+import com.android.systemui.experimental.frp.internal.NoScope
+import com.android.systemui.experimental.frp.internal.TFlowImpl
+import com.android.systemui.experimental.frp.internal.activated
+import com.android.systemui.experimental.frp.internal.cached
+import com.android.systemui.experimental.frp.internal.constInit
+import com.android.systemui.experimental.frp.internal.filterNode
+import com.android.systemui.experimental.frp.internal.init
+import com.android.systemui.experimental.frp.internal.map
+import com.android.systemui.experimental.frp.internal.mapImpl
+import com.android.systemui.experimental.frp.internal.mapMaybeNode
+import com.android.systemui.experimental.frp.internal.mergeNodes
+import com.android.systemui.experimental.frp.internal.mergeNodesLeft
+import com.android.systemui.experimental.frp.internal.neverImpl
+import com.android.systemui.experimental.frp.internal.switchDeferredImplSingle
+import com.android.systemui.experimental.frp.internal.switchPromptImpl
+import com.android.systemui.experimental.frp.internal.util.hashString
+import com.android.systemui.experimental.frp.util.Either
+import com.android.systemui.experimental.frp.util.Left
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.Right
+import com.android.systemui.experimental.frp.util.just
+import com.android.systemui.experimental.frp.util.map
+import com.android.systemui.experimental.frp.util.toMaybe
+import java.util.concurrent.atomic.AtomicReference
+import kotlin.reflect.KProperty
+import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.CoroutineStart
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.async
+import kotlinx.coroutines.coroutineScope
+
+/** A series of values of type [A] available at discrete points in time. */
+@ExperimentalFrpApi
+sealed class TFlow<out A> {
+ companion object {
+ /** A [TFlow] with no values. */
+ val empty: TFlow<Nothing> = EmptyFlow
+ }
+}
+
+/** A [TFlow] with no values. */
+@ExperimentalFrpApi val emptyTFlow: TFlow<Nothing> = TFlow.empty
+
+/**
+ * A forward-reference to a [TFlow]. Useful for recursive definitions.
+ *
+ * This reference can be used like a standard [TFlow], but will hold up evaluation of the FRP
+ * network until the [loopback] reference is set.
+ */
+@ExperimentalFrpApi
+class TFlowLoop<A> : TFlow<A>() {
+ private val deferred = CompletableDeferred<TFlow<A>>()
+
+ internal val init: Init<TFlowImpl<A>> =
+ init(name = null) { deferred.await().init.connect(evalScope = this) }
+
+ /** The [TFlow] this reference is referring to. */
+ @ExperimentalFrpApi
+ var loopback: TFlow<A>? = null
+ set(value) {
+ value?.let {
+ check(deferred.complete(value)) { "TFlowLoop.loopback has already been set." }
+ field = value
+ }
+ }
+
+ operator fun getValue(thisRef: Any?, property: KProperty<*>): TFlow<A> = this
+
+ operator fun setValue(thisRef: Any?, property: KProperty<*>, value: TFlow<A>) {
+ loopback = value
+ }
+
+ override fun toString(): String = "${this::class.simpleName}@$hashString"
+}
+
+/** TODO */
+@ExperimentalFrpApi fun <A> Lazy<TFlow<A>>.defer(): TFlow<A> = deferInline { value }
+
+/** TODO */
+@ExperimentalFrpApi
+fun <A> FrpDeferredValue<TFlow<A>>.defer(): TFlow<A> = deferInline { unwrapped.await() }
+
+/** TODO */
+@ExperimentalFrpApi
+fun <A> deferTFlow(block: suspend FrpScope.() -> TFlow<A>): TFlow<A> = deferInline {
+ NoScope.runInFrpScope(block)
+}
+
+/** Returns a [TFlow] that emits the new value of this [TState] when it changes. */
+@ExperimentalFrpApi
+val <A> TState<A>.stateChanges: TFlow<A>
+ get() = TFlowInit(init(name = null) { init.connect(evalScope = this).changes })
+
+/**
+ * Returns a [TFlow] that contains only the [just] results of applying [transform] to each value of
+ * the original [TFlow].
+ *
+ * @see mapNotNull
+ */
+@ExperimentalFrpApi
+fun <A, B> TFlow<A>.mapMaybe(transform: suspend FrpTransactionScope.(A) -> Maybe<B>): TFlow<B> {
+ val pulse =
+ mapMaybeNode({ init.connect(evalScope = this) }) { runInTransactionScope { transform(it) } }
+ return TFlowInit(constInit(name = null, pulse))
+}
+
+/**
+ * Returns a [TFlow] that contains only the non-null results of applying [transform] to each value
+ * of the original [TFlow].
+ *
+ * @see mapMaybe
+ */
+@ExperimentalFrpApi
+fun <A, B> TFlow<A>.mapNotNull(transform: suspend FrpTransactionScope.(A) -> B?): TFlow<B> =
+ mapMaybe {
+ transform(it).toMaybe()
+ }
+
+/** Returns a [TFlow] containing only values of the original [TFlow] that are not null. */
+@ExperimentalFrpApi fun <A> TFlow<A?>.filterNotNull(): TFlow<A> = mapNotNull { it }
+
+/** Shorthand for `mapNotNull { it as? A }`. */
+@ExperimentalFrpApi
+inline fun <reified A> TFlow<*>.filterIsInstance(): TFlow<A> = mapNotNull { it as? A }
+
+/** Shorthand for `mapMaybe { it }`. */
+@ExperimentalFrpApi fun <A> TFlow<Maybe<A>>.filterJust(): TFlow<A> = mapMaybe { it }
+
+/**
+ * Returns a [TFlow] containing the results of applying [transform] to each value of the original
+ * [TFlow].
+ */
+@ExperimentalFrpApi
+fun <A, B> TFlow<A>.map(transform: suspend FrpTransactionScope.(A) -> B): TFlow<B> {
+ val mapped: TFlowImpl<B> =
+ mapImpl({ init.connect(evalScope = this) }) { a -> runInTransactionScope { transform(a) } }
+ return TFlowInit(constInit(name = null, mapped.cached()))
+}
+
+/**
+ * Like [map], but the emission is not cached during the transaction. Use only if [transform] is
+ * fast and pure.
+ *
+ * @see map
+ */
+@ExperimentalFrpApi
+fun <A, B> TFlow<A>.mapCheap(transform: suspend FrpTransactionScope.(A) -> B): TFlow<B> =
+ TFlowInit(
+ constInit(
+ name = null,
+ mapImpl({ init.connect(evalScope = this) }) { a ->
+ runInTransactionScope { transform(a) }
+ },
+ )
+ )
+
+/**
+ * Returns a [TFlow] that invokes [action] before each value of the original [TFlow] is emitted.
+ * Useful for logging and debugging.
+ *
+ * ```
+ * pulse.onEach { foo(it) } == pulse.map { foo(it); it }
+ * ```
+ *
+ * Note that the side effects performed in [onEach] are only performed while the resulting [TFlow]
+ * is connected to an output of the FRP network. If your goal is to reliably perform side effects in
+ * response to a [TFlow], use the output combinators available in [FrpBuildScope], such as
+ * [FrpBuildScope.toSharedFlow] or [FrpBuildScope.observe].
+ */
+@ExperimentalFrpApi
+fun <A> TFlow<A>.onEach(action: suspend FrpTransactionScope.(A) -> Unit): TFlow<A> = map {
+ action(it)
+ it
+}
+
+/**
+ * Returns a [TFlow] containing only values of the original [TFlow] that satisfy the given
+ * [predicate].
+ */
+@ExperimentalFrpApi
+fun <A> TFlow<A>.filter(predicate: suspend FrpTransactionScope.(A) -> Boolean): TFlow<A> {
+ val pulse =
+ filterNode({ init.connect(evalScope = this) }) { runInTransactionScope { predicate(it) } }
+ return TFlowInit(constInit(name = null, pulse.cached()))
+}
+
+/**
+ * Splits a [TFlow] of pairs into a pair of [TFlows][TFlow], where each returned [TFlow] emits half
+ * of the original.
+ *
+ * Shorthand for:
+ * ```kotlin
+ * val lefts = map { it.first }
+ * val rights = map { it.second }
+ * return Pair(lefts, rights)
+ * ```
+ */
+@ExperimentalFrpApi
+fun <A, B> TFlow<Pair<A, B>>.unzip(): Pair<TFlow<A>, TFlow<B>> {
+ val lefts = map { it.first }
+ val rights = map { it.second }
+ return lefts to rights
+}
+
+/**
+ * Merges the given [TFlows][TFlow] into a single [TFlow] that emits events from both.
+ *
+ * Because [TFlow]s can only emit one value per transaction, the provided [transformCoincidence]
+ * function is used to combine coincident emissions to produce the result value to be emitted by the
+ * merged [TFlow].
+ */
+@ExperimentalFrpApi
+fun <A> TFlow<A>.mergeWith(
+ other: TFlow<A>,
+ transformCoincidence: suspend FrpTransactionScope.(A, A) -> A = { a, _ -> a },
+): TFlow<A> {
+ val node =
+ mergeNodes(
+ getPulse = { init.connect(evalScope = this) },
+ getOther = { other.init.connect(evalScope = this) },
+ ) { a, b ->
+ runInTransactionScope { transformCoincidence(a, b) }
+ }
+ return TFlowInit(constInit(name = null, node))
+}
+
+/**
+ * Merges the given [TFlows][TFlow] into a single [TFlow] that emits events from all. All coincident
+ * emissions are collected into the emitted [List], preserving the input ordering.
+ *
+ * @see mergeWith
+ * @see mergeLeft
+ */
+@ExperimentalFrpApi
+fun <A> merge(vararg flows: TFlow<A>): TFlow<List<A>> = flows.asIterable().merge()
+
+/**
+ * Merges the given [TFlows][TFlow] into a single [TFlow] that emits events from all. In the case of
+ * coincident emissions, the emission from the left-most [TFlow] is emitted.
+ *
+ * @see merge
+ */
+@ExperimentalFrpApi
+fun <A> mergeLeft(vararg flows: TFlow<A>): TFlow<A> = flows.asIterable().mergeLeft()
+
+/**
+ * Merges the given [TFlows][TFlow] into a single [TFlow] that emits events from all.
+ *
+ * Because [TFlow]s can only emit one value per transaction, the provided [transformCoincidence]
+ * function is used to combine coincident emissions to produce the result value to be emitted by the
+ * merged [TFlow].
+ */
+// TODO: can be optimized to avoid creating the intermediate list
+fun <A> merge(vararg flows: TFlow<A>, transformCoincidence: (A, A) -> A): TFlow<A> =
+ merge(*flows).map { l -> l.reduce(transformCoincidence) }
+
+/**
+ * Merges the given [TFlows][TFlow] into a single [TFlow] that emits events from all. All coincident
+ * emissions are collected into the emitted [List], preserving the input ordering.
+ *
+ * @see mergeWith
+ * @see mergeLeft
+ */
+@ExperimentalFrpApi
+fun <A> Iterable<TFlow<A>>.merge(): TFlow<List<A>> =
+ TFlowInit(constInit(name = null, mergeNodes { map { it.init.connect(evalScope = this) } }))
+
+/**
+ * Merges the given [TFlows][TFlow] into a single [TFlow] that emits events from all. In the case of
+ * coincident emissions, the emission from the left-most [TFlow] is emitted.
+ *
+ * @see merge
+ */
+@ExperimentalFrpApi
+fun <A> Iterable<TFlow<A>>.mergeLeft(): TFlow<A> =
+ TFlowInit(constInit(name = null, mergeNodesLeft { map { it.init.connect(evalScope = this) } }))
+
+/**
+ * Creates a new [TFlow] that emits events from all given [TFlow]s. All simultaneous emissions are
+ * collected into the emitted [List], preserving the input ordering.
+ *
+ * @see mergeWith
+ */
+@ExperimentalFrpApi fun <A> Sequence<TFlow<A>>.merge(): TFlow<List<A>> = asIterable().merge()
+
+/**
+ * Creates a new [TFlow] that emits events from all given [TFlow]s. All simultaneous emissions are
+ * collected into the emitted [Map], and are given the same key of the associated [TFlow] in the
+ * input [Map].
+ *
+ * @see mergeWith
+ */
+@ExperimentalFrpApi
+fun <K, A> Map<K, TFlow<A>>.merge(): TFlow<Map<K, A>> =
+ asSequence().map { (k, flowA) -> flowA.map { a -> k to a } }.toList().merge().map { it.toMap() }
+
+/**
+ * Returns a [GroupedTFlow] that can be used to efficiently split a single [TFlow] into multiple
+ * downstream [TFlow]s.
+ *
+ * The input [TFlow] emits [Map] instances that specify which downstream [TFlow] the associated
+ * value will be emitted from. These downstream [TFlow]s can be obtained via
+ * [GroupedTFlow.eventsForKey].
+ *
+ * An example:
+ * ```
+ * val sFoo: TFlow<Map<String, Foo>> = ...
+ * val fooById: GroupedTFlow<String, Foo> = sFoo.groupByKey()
+ * val fooBar: TFlow<Foo> = fooById["bar"]
+ * ```
+ *
+ * This is semantically equivalent to `val fooBar = sFoo.mapNotNull { map -> map["bar"] }` but is
+ * significantly more efficient; specifically, using [mapNotNull] in this way incurs a `O(n)`
+ * performance hit, where `n` is the number of different [mapNotNull] operations used to filter on a
+ * specific key's presence in the emitted [Map]. [groupByKey] internally uses a [HashMap] to lookup
+ * the appropriate downstream [TFlow], and so operates in `O(1)`.
+ *
+ * Note that the result [GroupedTFlow] should be cached and re-used to gain the performance benefit.
+ *
+ * @see selector
+ */
+@ExperimentalFrpApi
+fun <K, A> TFlow<Map<K, A>>.groupByKey(numKeys: Int? = null): GroupedTFlow<K, A> =
+ GroupedTFlow(DemuxImpl({ init.connect(this) }, numKeys))
+
+/**
+ * Shorthand for `map { mapOf(extractKey(it) to it) }.groupByKey()`
+ *
+ * @see groupByKey
+ */
+@ExperimentalFrpApi
+fun <K, A> TFlow<A>.groupBy(
+ numKeys: Int? = null,
+ extractKey: suspend FrpTransactionScope.(A) -> K,
+): GroupedTFlow<K, A> = map { mapOf(extractKey(it) to it) }.groupByKey(numKeys)
+
+/**
+ * Returns two new [TFlow]s that contain elements from this [TFlow] that satisfy or don't satisfy
+ * [predicate].
+ *
+ * Using this is equivalent to `upstream.filter(predicate) to upstream.filter { !predicate(it) }`
+ * but is more efficient; specifically, [partition] will only invoke [predicate] once per element.
+ */
+@ExperimentalFrpApi
+fun <A> TFlow<A>.partition(
+ predicate: suspend FrpTransactionScope.(A) -> Boolean
+): Pair<TFlow<A>, TFlow<A>> {
+ val grouped: GroupedTFlow<Boolean, A> = groupBy(numKeys = 2, extractKey = predicate)
+ return Pair(grouped.eventsForKey(true), grouped.eventsForKey(false))
+}
+
+/**
+ * Returns two new [TFlow]s that contain elements from this [TFlow]; [Pair.first] will contain
+ * [Left] values, and [Pair.second] will contain [Right] values.
+ *
+ * Using this is equivalent to using [filterIsInstance] in conjunction with [map] twice, once for
+ * [Left]s and once for [Right]s, but is slightly more efficient; specifically, the
+ * [filterIsInstance] check is only performed once per element.
+ */
+@ExperimentalFrpApi
+fun <A, B> TFlow<Either<A, B>>.partitionEither(): Pair<TFlow<A>, TFlow<B>> {
+ val (left, right) = partition { it is Left }
+ return Pair(left.mapCheap { (it as Left).value }, right.mapCheap { (it as Right).value })
+}
+
+/**
+ * A mapping from keys of type [K] to [TFlow]s emitting values of type [A].
+ *
+ * @see groupByKey
+ */
+@ExperimentalFrpApi
+class GroupedTFlow<in K, out A> internal constructor(internal val impl: DemuxImpl<K, A>) {
+ /**
+ * Returns a [TFlow] that emits values of type [A] that correspond to the given [key].
+ *
+ * @see groupByKey
+ */
+ @ExperimentalFrpApi
+ fun eventsForKey(key: K): TFlow<A> = TFlowInit(constInit(name = null, impl.eventsForKey(key)))
+
+ /**
+ * Returns a [TFlow] that emits values of type [A] that correspond to the given [key].
+ *
+ * @see groupByKey
+ */
+ @ExperimentalFrpApi operator fun get(key: K): TFlow<A> = eventsForKey(key)
+}
+
+/**
+ * Returns a [TFlow] that switches to the [TFlow] contained within this [TState] whenever it
+ * changes.
+ *
+ * This switch does take effect until the *next* transaction after [TState] changes. For a switch
+ * that takes effect immediately, see [switchPromptly].
+ */
+@ExperimentalFrpApi
+fun <A> TState<TFlow<A>>.switch(): TFlow<A> {
+ return TFlowInit(
+ constInit(
+ name = null,
+ switchDeferredImplSingle(
+ getStorage = {
+ init.connect(this).getCurrentWithEpoch(this).first.init.connect(this)
+ },
+ getPatches = {
+ mapImpl({ init.connect(this).changes }) { newFlow ->
+ newFlow.init.connect(this)
+ }
+ },
+ ),
+ )
+ )
+}
+
+/**
+ * Returns a [TFlow] that switches to the [TFlow] contained within this [TState] whenever it
+ * changes.
+ *
+ * This switch takes effect immediately within the same transaction that [TState] changes. In
+ * general, you should prefer [switch] over this method. It is both safer and more performant.
+ */
+// TODO: parameter to handle coincidental emission from both old and new
+@ExperimentalFrpApi
+fun <A> TState<TFlow<A>>.switchPromptly(): TFlow<A> {
+ val switchNode =
+ switchPromptImpl(
+ getStorage = {
+ mapOf(Unit to init.connect(this).getCurrentWithEpoch(this).first.init.connect(this))
+ },
+ getPatches = {
+ val patches = init.connect(this).changes
+ mapImpl({ patches }) { newFlow -> mapOf(Unit to just(newFlow.init.connect(this))) }
+ },
+ )
+ return TFlowInit(constInit(name = null, mapImpl({ switchNode }) { it.getValue(Unit) }))
+}
+
+/**
+ * A mutable [TFlow] that provides the ability to [emit] values to the flow, handling backpressure
+ * by coalescing all emissions into batches.
+ *
+ * @see FrpNetwork.coalescingMutableTFlow
+ */
+@ExperimentalFrpApi
+class CoalescingMutableTFlow<In, Out>
+internal constructor(
+ internal val coalesce: (old: Out, new: In) -> Out,
+ internal val network: Network,
+ private val getInitialValue: () -> Out,
+ internal val impl: InputNode<Out> = InputNode(),
+) : TFlow<Out>() {
+ internal val name: String? = null
+ internal val storage = AtomicReference(false to getInitialValue())
+
+ override fun toString(): String = "${this::class.simpleName}@$hashString"
+
+ /**
+ * Inserts [value] into the current batch, enqueueing it for emission from this [TFlow] if not
+ * already pending.
+ *
+ * Backpressure occurs when [emit] is called while the FRP network is currently in a
+ * transaction; if called multiple times, then emissions will be coalesced into a single batch
+ * that is then processed when the network is ready.
+ */
+ @ExperimentalFrpApi
+ fun emit(value: In) {
+ val (scheduled, _) = storage.getAndUpdate { (_, old) -> true to coalesce(old, value) }
+ if (!scheduled) {
+ @Suppress("DeferredResultUnused")
+ network.transaction {
+ impl.visit(this, storage.getAndSet(false to getInitialValue()).second)
+ }
+ }
+ }
+}
+
+/**
+ * A mutable [TFlow] that provides the ability to [emit] values to the flow, handling backpressure
+ * by suspending the emitter.
+ *
+ * @see FrpNetwork.coalescingMutableTFlow
+ */
+@ExperimentalFrpApi
+class MutableTFlow<T>
+internal constructor(internal val network: Network, internal val impl: InputNode<T> = InputNode()) :
+ TFlow<T>() {
+ internal val name: String? = null
+
+ private val storage = AtomicReference<Job?>(null)
+
+ override fun toString(): String = "${this::class.simpleName}@$hashString"
+
+ /**
+ * Emits a [value] to this [TFlow], suspending the caller until the FRP transaction containing
+ * the emission has completed.
+ */
+ @ExperimentalFrpApi
+ suspend fun emit(value: T) {
+ coroutineScope {
+ val newEmit =
+ async(start = CoroutineStart.LAZY) {
+ network.transaction { impl.visit(this, value) }.await()
+ }
+ val jobOrNull = storage.getAndSet(newEmit)
+ if (jobOrNull?.isActive != true) {
+ newEmit.await()
+ } else {
+ jobOrNull.join()
+ }
+ }
+ }
+
+ // internal suspend fun emitInCurrentTransaction(value: T, evalScope: EvalScope) {
+ // if (storage.getAndSet(just(value)) is None) {
+ // impl.visit(evalScope)
+ // }
+ // }
+}
+
+private data object EmptyFlow : TFlow<Nothing>()
+
+internal class TFlowInit<out A>(val init: Init<TFlowImpl<A>>) : TFlow<A>() {
+ override fun toString(): String = "${this::class.simpleName}@$hashString"
+}
+
+internal val <A> TFlow<A>.init: Init<TFlowImpl<A>>
+ get() =
+ when (this) {
+ is EmptyFlow -> constInit("EmptyFlow", neverImpl)
+ is TFlowInit -> init
+ is TFlowLoop -> init
+ is CoalescingMutableTFlow<*, A> -> constInit(name, impl.activated())
+ is MutableTFlow -> constInit(name, impl.activated())
+ }
+
+private inline fun <A> deferInline(crossinline block: suspend InitScope.() -> TFlow<A>): TFlow<A> =
+ TFlowInit(init(name = null) { block().init.connect(evalScope = this) })
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/TState.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/TState.kt
new file mode 100644
index 000000000000..a5ec503e5c8d
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/TState.kt
@@ -0,0 +1,492 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp
+
+import com.android.systemui.experimental.frp.internal.DerivedMapCheap
+import com.android.systemui.experimental.frp.internal.Init
+import com.android.systemui.experimental.frp.internal.InitScope
+import com.android.systemui.experimental.frp.internal.Network
+import com.android.systemui.experimental.frp.internal.NoScope
+import com.android.systemui.experimental.frp.internal.Schedulable
+import com.android.systemui.experimental.frp.internal.TFlowImpl
+import com.android.systemui.experimental.frp.internal.TStateImpl
+import com.android.systemui.experimental.frp.internal.TStateSource
+import com.android.systemui.experimental.frp.internal.activated
+import com.android.systemui.experimental.frp.internal.cached
+import com.android.systemui.experimental.frp.internal.constInit
+import com.android.systemui.experimental.frp.internal.constS
+import com.android.systemui.experimental.frp.internal.filterNode
+import com.android.systemui.experimental.frp.internal.flatMap
+import com.android.systemui.experimental.frp.internal.init
+import com.android.systemui.experimental.frp.internal.map
+import com.android.systemui.experimental.frp.internal.mapCheap
+import com.android.systemui.experimental.frp.internal.mapImpl
+import com.android.systemui.experimental.frp.internal.util.hashString
+import com.android.systemui.experimental.frp.internal.zipStates
+import kotlin.reflect.KProperty
+import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.Deferred
+import kotlinx.coroutines.async
+import kotlinx.coroutines.coroutineScope
+
+/**
+ * A time-varying value with discrete changes. Essentially, a combination of a [Transactional] that
+ * holds a value, and a [TFlow] that emits when the value changes.
+ */
+@ExperimentalFrpApi sealed class TState<out A>
+
+/** A [TState] that never changes. */
+@ExperimentalFrpApi
+fun <A> tStateOf(value: A): TState<A> {
+ val operatorName = "tStateOf"
+ val name = "$operatorName($value)"
+ return TStateInit(constInit(name, constS(name, operatorName, value)))
+}
+
+/** TODO */
+@ExperimentalFrpApi fun <A> Lazy<TState<A>>.defer(): TState<A> = deferInline { value }
+
+/** TODO */
+@ExperimentalFrpApi
+fun <A> FrpDeferredValue<TState<A>>.defer(): TState<A> = deferInline { unwrapped.await() }
+
+/** TODO */
+@ExperimentalFrpApi
+fun <A> deferTState(block: suspend FrpScope.() -> TState<A>): TState<A> = deferInline {
+ NoScope.runInFrpScope(block)
+}
+
+/**
+ * Returns a [TState] containing the results of applying [transform] to the value held by the
+ * original [TState].
+ */
+@ExperimentalFrpApi
+fun <A, B> TState<A>.map(transform: suspend FrpScope.(A) -> B): TState<B> {
+ val operatorName = "map"
+ val name = operatorName
+ return TStateInit(
+ init(name) {
+ init.connect(evalScope = this).map(name, operatorName) {
+ NoScope.runInFrpScope { transform(it) }
+ }
+ }
+ )
+}
+
+/**
+ * Returns a [TState] that transforms the value held inside this [TState] by applying it to the
+ * [transform].
+ *
+ * Note that unlike [map], the result is not cached. This means that not only should [transform] be
+ * fast and pure, it should be *monomorphic* (1-to-1). Failure to do this means that [stateChanges]
+ * for the returned [TState] will operate unexpectedly, emitting at rates that do not reflect an
+ * observable change to the returned [TState].
+ */
+@ExperimentalFrpApi
+fun <A, B> TState<A>.mapCheapUnsafe(transform: suspend FrpScope.(A) -> B): TState<B> {
+ val operatorName = "map"
+ val name = operatorName
+ return TStateInit(
+ init(name) {
+ init.connect(evalScope = this).mapCheap(name, operatorName) {
+ NoScope.runInFrpScope { transform(it) }
+ }
+ }
+ )
+}
+
+/**
+ * Returns a [TState] by combining the values held inside the given [TState]s by applying them to
+ * the given function [transform].
+ */
+@ExperimentalFrpApi
+fun <A, B, C> TState<A>.combineWith(
+ other: TState<B>,
+ transform: suspend FrpScope.(A, B) -> C,
+): TState<C> = combine(this, other, transform)
+
+/**
+ * Splits a [TState] of pairs into a pair of [TFlows][TState], where each returned [TState] holds
+ * hald of the original.
+ *
+ * Shorthand for:
+ * ```kotlin
+ * val lefts = map { it.first }
+ * val rights = map { it.second }
+ * return Pair(lefts, rights)
+ * ```
+ */
+@ExperimentalFrpApi
+fun <A, B> TState<Pair<A, B>>.unzip(): Pair<TState<A>, TState<B>> {
+ val left = map { it.first }
+ val right = map { it.second }
+ return left to right
+}
+
+/**
+ * Returns a [TState] by combining the values held inside the given [TStates][TState] into a [List].
+ *
+ * @see TState.combineWith
+ */
+@ExperimentalFrpApi
+fun <A> Iterable<TState<A>>.combine(): TState<List<A>> {
+ val operatorName = "combine"
+ val name = operatorName
+ return TStateInit(
+ init(name) {
+ zipStates(name, operatorName, states = map { it.init.connect(evalScope = this) })
+ }
+ )
+}
+
+/**
+ * Returns a [TState] by combining the values held inside the given [TStates][TState] into a [Map].
+ *
+ * @see TState.combineWith
+ */
+@ExperimentalFrpApi
+fun <K : Any, A> Map<K, TState<A>>.combine(): TState<Map<K, A>> {
+ val operatorName = "combine"
+ val name = operatorName
+ return TStateInit(
+ init(name) {
+ zipStates(
+ name,
+ operatorName,
+ states = mapValues { it.value.init.connect(evalScope = this) },
+ )
+ }
+ )
+}
+
+/**
+ * Returns a [TState] whose value is generated with [transform] by combining the current values of
+ * each given [TState].
+ *
+ * @see TState.combineWith
+ */
+@ExperimentalFrpApi
+fun <A, B> Iterable<TState<A>>.combine(transform: suspend FrpScope.(List<A>) -> B): TState<B> =
+ combine().map(transform)
+
+/**
+ * Returns a [TState] by combining the values held inside the given [TState]s into a [List].
+ *
+ * @see TState.combineWith
+ */
+@ExperimentalFrpApi
+fun <A> combine(vararg states: TState<A>): TState<List<A>> = states.asIterable().combine()
+
+/**
+ * Returns a [TState] whose value is generated with [transform] by combining the current values of
+ * each given [TState].
+ *
+ * @see TState.combineWith
+ */
+@ExperimentalFrpApi
+fun <A, B> combine(
+ vararg states: TState<A>,
+ transform: suspend FrpScope.(List<A>) -> B,
+): TState<B> = states.asIterable().combine(transform)
+
+/**
+ * Returns a [TState] whose value is generated with [transform] by combining the current values of
+ * each given [TState].
+ *
+ * @see TState.combineWith
+ */
+@ExperimentalFrpApi
+fun <A, B, Z> combine(
+ stateA: TState<A>,
+ stateB: TState<B>,
+ transform: suspend FrpScope.(A, B) -> Z,
+): TState<Z> {
+ val operatorName = "combine"
+ val name = operatorName
+ return TStateInit(
+ init(name) {
+ coroutineScope {
+ val dl1: Deferred<TStateImpl<A>> = async {
+ stateA.init.connect(evalScope = this@init)
+ }
+ val dl2: Deferred<TStateImpl<B>> = async {
+ stateB.init.connect(evalScope = this@init)
+ }
+ zipStates(name, operatorName, dl1.await(), dl2.await()) { a, b ->
+ NoScope.runInFrpScope { transform(a, b) }
+ }
+ }
+ }
+ )
+}
+
+/**
+ * Returns a [TState] whose value is generated with [transform] by combining the current values of
+ * each given [TState].
+ *
+ * @see TState.combineWith
+ */
+@ExperimentalFrpApi
+fun <A, B, C, Z> combine(
+ stateA: TState<A>,
+ stateB: TState<B>,
+ stateC: TState<C>,
+ transform: suspend FrpScope.(A, B, C) -> Z,
+): TState<Z> {
+ val operatorName = "combine"
+ val name = operatorName
+ return TStateInit(
+ init(name) {
+ coroutineScope {
+ val dl1: Deferred<TStateImpl<A>> = async {
+ stateA.init.connect(evalScope = this@init)
+ }
+ val dl2: Deferred<TStateImpl<B>> = async {
+ stateB.init.connect(evalScope = this@init)
+ }
+ val dl3: Deferred<TStateImpl<C>> = async {
+ stateC.init.connect(evalScope = this@init)
+ }
+ zipStates(name, operatorName, dl1.await(), dl2.await(), dl3.await()) { a, b, c ->
+ NoScope.runInFrpScope { transform(a, b, c) }
+ }
+ }
+ }
+ )
+}
+
+/**
+ * Returns a [TState] whose value is generated with [transform] by combining the current values of
+ * each given [TState].
+ *
+ * @see TState.combineWith
+ */
+@ExperimentalFrpApi
+fun <A, B, C, D, Z> combine(
+ stateA: TState<A>,
+ stateB: TState<B>,
+ stateC: TState<C>,
+ stateD: TState<D>,
+ transform: suspend FrpScope.(A, B, C, D) -> Z,
+): TState<Z> {
+ val operatorName = "combine"
+ val name = operatorName
+ return TStateInit(
+ init(name) {
+ coroutineScope {
+ val dl1: Deferred<TStateImpl<A>> = async {
+ stateA.init.connect(evalScope = this@init)
+ }
+ val dl2: Deferred<TStateImpl<B>> = async {
+ stateB.init.connect(evalScope = this@init)
+ }
+ val dl3: Deferred<TStateImpl<C>> = async {
+ stateC.init.connect(evalScope = this@init)
+ }
+ val dl4: Deferred<TStateImpl<D>> = async {
+ stateD.init.connect(evalScope = this@init)
+ }
+ zipStates(name, operatorName, dl1.await(), dl2.await(), dl3.await(), dl4.await()) {
+ a,
+ b,
+ c,
+ d ->
+ NoScope.runInFrpScope { transform(a, b, c, d) }
+ }
+ }
+ }
+ )
+}
+
+/** Returns a [TState] by applying [transform] to the value held by the original [TState]. */
+@ExperimentalFrpApi
+fun <A, B> TState<A>.flatMap(transform: suspend FrpScope.(A) -> TState<B>): TState<B> {
+ val operatorName = "flatMap"
+ val name = operatorName
+ return TStateInit(
+ init(name) {
+ init.connect(this).flatMap(name, operatorName) { a ->
+ NoScope.runInFrpScope { transform(a) }.init.connect(this)
+ }
+ }
+ )
+}
+
+/** Shorthand for `flatMap { it }` */
+@ExperimentalFrpApi fun <A> TState<TState<A>>.flatten() = flatMap { it }
+
+/**
+ * Returns a [TStateSelector] that can be used to efficiently check if the input [TState] is
+ * currently holding a specific value.
+ *
+ * An example:
+ * ```
+ * val lInt: TState<Int> = ...
+ * val intSelector: TStateSelector<Int> = lInt.selector()
+ * // Tracks if lInt is holding 1
+ * val isOne: TState<Boolean> = intSelector.whenSelected(1)
+ * ```
+ *
+ * This is semantically equivalent to `val isOne = lInt.map { i -> i == 1 }`, but is significantly
+ * more efficient; specifically, using [TState.map] in this way incurs a `O(n)` performance hit,
+ * where `n` is the number of different [TState.map] operations used to track a specific value.
+ * [selector] internally uses a [HashMap] to lookup the appropriate downstream [TState] to update,
+ * and so operates in `O(1)`.
+ *
+ * Note that the result [TStateSelector] should be cached and re-used to gain the performance
+ * benefit.
+ *
+ * @see groupByKey
+ */
+@ExperimentalFrpApi
+fun <A> TState<A>.selector(numDistinctValues: Int? = null): TStateSelector<A> =
+ TStateSelector(
+ this,
+ stateChanges
+ .map { new -> mapOf(new to true, sampleDeferred().get() to false) }
+ .groupByKey(numDistinctValues),
+ )
+
+/**
+ * Tracks the currently selected value of type [A] from an upstream [TState].
+ *
+ * @see selector
+ */
+@ExperimentalFrpApi
+class TStateSelector<A>
+internal constructor(
+ private val upstream: TState<A>,
+ private val groupedChanges: GroupedTFlow<A, Boolean>,
+) {
+ /**
+ * Returns a [TState] that tracks whether the upstream [TState] is currently holding the given
+ * [value].
+ *
+ * @see selector
+ */
+ @ExperimentalFrpApi
+ fun whenSelected(value: A): TState<Boolean> {
+ val operatorName = "TStateSelector#whenSelected"
+ val name = "$operatorName[$value]"
+ return TStateInit(
+ init(name) {
+ DerivedMapCheap(
+ name,
+ operatorName,
+ upstream = upstream.init.connect(evalScope = this),
+ changes = groupedChanges.impl.eventsForKey(value),
+ ) {
+ it == value
+ }
+ }
+ )
+ }
+
+ @ExperimentalFrpApi operator fun get(value: A): TState<Boolean> = whenSelected(value)
+}
+
+/** TODO */
+@ExperimentalFrpApi
+class MutableTState<T>
+internal constructor(internal val network: Network, initialValue: Deferred<T>) : TState<T>() {
+
+ private val input: CoalescingMutableTFlow<Deferred<T>, Deferred<T>?> =
+ CoalescingMutableTFlow(
+ coalesce = { _, new -> new },
+ network = network,
+ getInitialValue = { null },
+ )
+
+ internal val tState = run {
+ val changes = input.impl
+ val name = null
+ val operatorName = "MutableTState"
+ lateinit var state: TStateSource<T>
+ val calm: TFlowImpl<T> =
+ filterNode({ mapImpl(upstream = { changes.activated() }) { it!!.await() } }) { new ->
+ new != state.getCurrentWithEpoch(evalScope = this).first
+ }
+ .cached()
+ state = TStateSource(name, operatorName, initialValue, calm)
+ @Suppress("DeferredResultUnused")
+ network.transaction {
+ calm.activate(evalScope = this, downstream = Schedulable.S(state))?.let {
+ (connection, needsEval) ->
+ state.upstreamConnection = connection
+ if (needsEval) {
+ schedule(state)
+ }
+ }
+ }
+ TStateInit(constInit(name, state))
+ }
+
+ /** TODO */
+ @ExperimentalFrpApi fun setValue(value: T) = input.emit(CompletableDeferred(value))
+
+ @ExperimentalFrpApi
+ fun setValueDeferred(value: FrpDeferredValue<T>) = input.emit(value.unwrapped)
+}
+
+/** A forward-reference to a [TState], allowing for recursive definitions. */
+@ExperimentalFrpApi
+class TStateLoop<A> : TState<A>() {
+
+ private val name: String? = null
+
+ private val deferred = CompletableDeferred<TState<A>>()
+
+ internal val init: Init<TStateImpl<A>> =
+ init(name) { deferred.await().init.connect(evalScope = this) }
+
+ /** The [TState] this [TStateLoop] will forward to. */
+ @ExperimentalFrpApi
+ var loopback: TState<A>? = null
+ set(value) {
+ value?.let {
+ check(deferred.complete(value)) { "TStateLoop.loopback has already been set." }
+ field = value
+ }
+ }
+
+ @ExperimentalFrpApi
+ operator fun getValue(thisRef: Any?, property: KProperty<*>): TState<A> = this
+
+ @ExperimentalFrpApi
+ operator fun setValue(thisRef: Any?, property: KProperty<*>, value: TState<A>) {
+ loopback = value
+ }
+
+ override fun toString(): String = "${this::class.simpleName}@$hashString"
+}
+
+internal class TStateInit<A> internal constructor(internal val init: Init<TStateImpl<A>>) :
+ TState<A>() {
+ override fun toString(): String = "${this::class.simpleName}@$hashString"
+}
+
+internal val <A> TState<A>.init: Init<TStateImpl<A>>
+ get() =
+ when (this) {
+ is TStateInit -> init
+ is TStateLoop -> init
+ is MutableTState -> tState.init
+ }
+
+private inline fun <A> deferInline(
+ crossinline block: suspend InitScope.() -> TState<A>
+): TState<A> = TStateInit(init(name = null) { block().init.connect(evalScope = this) })
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/Transactional.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/Transactional.kt
new file mode 100644
index 000000000000..0e7b420afd51
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/Transactional.kt
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp
+
+import com.android.systemui.experimental.frp.internal.InitScope
+import com.android.systemui.experimental.frp.internal.NoScope
+import com.android.systemui.experimental.frp.internal.TransactionalImpl
+import com.android.systemui.experimental.frp.internal.init
+import com.android.systemui.experimental.frp.internal.transactionalImpl
+import com.android.systemui.experimental.frp.internal.util.hashString
+import kotlinx.coroutines.CompletableDeferred
+
+/**
+ * A time-varying value. A [Transactional] encapsulates the idea of some continuous state; each time
+ * it is "sampled", a new result may be produced.
+ *
+ * Because FRP operates over an "idealized" model of Time that can be passed around as a data type,
+ * [Transactional]s are guaranteed to produce the same result if queried multiple times at the same
+ * (conceptual) time, in order to preserve _referential transparency_.
+ */
+@ExperimentalFrpApi
+class Transactional<out A> internal constructor(internal val impl: TState<TransactionalImpl<A>>) {
+ override fun toString(): String = "${this::class.simpleName}@$hashString"
+}
+
+/** A constant [Transactional] that produces [value] whenever it is sampled. */
+@ExperimentalFrpApi
+fun <A> transactionalOf(value: A): Transactional<A> =
+ Transactional(tStateOf(TransactionalImpl.Const(CompletableDeferred(value))))
+
+/** TODO */
+@ExperimentalFrpApi
+fun <A> FrpDeferredValue<Transactional<A>>.defer(): Transactional<A> = deferInline {
+ unwrapped.await()
+}
+
+/** TODO */
+@ExperimentalFrpApi fun <A> Lazy<Transactional<A>>.defer(): Transactional<A> = deferInline { value }
+
+/** TODO */
+@ExperimentalFrpApi
+fun <A> deferTransactional(block: suspend FrpScope.() -> Transactional<A>): Transactional<A> =
+ deferInline {
+ NoScope.runInFrpScope(block)
+ }
+
+private inline fun <A> deferInline(
+ crossinline block: suspend InitScope.() -> Transactional<A>
+): Transactional<A> =
+ Transactional(TStateInit(init(name = null) { block().impl.init.connect(evalScope = this) }))
+
+/**
+ * Returns a [Transactional]. The passed [block] will be evaluated on demand at most once per
+ * transaction; any subsequent sampling within the same transaction will receive a cached value.
+ */
+@ExperimentalFrpApi
+fun <A> transactionally(block: suspend FrpTransactionScope.() -> A): Transactional<A> =
+ Transactional(tStateOf(transactionalImpl { runInTransactionScope(block) }))
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/debug/Debug.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/debug/Debug.kt
new file mode 100644
index 000000000000..806234184d81
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/debug/Debug.kt
@@ -0,0 +1,180 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.debug
+
+import com.android.systemui.experimental.frp.MutableTState
+import com.android.systemui.experimental.frp.TState
+import com.android.systemui.experimental.frp.TStateInit
+import com.android.systemui.experimental.frp.TStateLoop
+import com.android.systemui.experimental.frp.internal.DerivedFlatten
+import com.android.systemui.experimental.frp.internal.DerivedMap
+import com.android.systemui.experimental.frp.internal.DerivedMapCheap
+import com.android.systemui.experimental.frp.internal.DerivedZipped
+import com.android.systemui.experimental.frp.internal.Init
+import com.android.systemui.experimental.frp.internal.TStateDerived
+import com.android.systemui.experimental.frp.internal.TStateImpl
+import com.android.systemui.experimental.frp.internal.TStateSource
+import com.android.systemui.experimental.frp.util.Just
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.None
+import com.android.systemui.experimental.frp.util.none
+import com.android.systemui.experimental.frp.util.orElseGet
+
+// object IdGen {
+// private val counter = AtomicLong()
+// fun getId() = counter.getAndIncrement()
+// }
+
+typealias StateGraph = Graph<ActivationInfo>
+
+sealed class StateInfo(
+ val name: String,
+ val value: Maybe<Any?>,
+ val operator: String,
+ val epoch: Long?,
+)
+
+class Source(name: String, value: Maybe<Any?>, operator: String, epoch: Long) :
+ StateInfo(name, value, operator, epoch)
+
+class Derived(
+ name: String,
+ val type: DerivedStateType,
+ value: Maybe<Any?>,
+ operator: String,
+ epoch: Long?,
+) : StateInfo(name, value, operator, epoch)
+
+sealed interface DerivedStateType
+
+data object Flatten : DerivedStateType
+
+data class Mapped(val cheap: Boolean) : DerivedStateType
+
+data object Combine : DerivedStateType
+
+sealed class InitInfo(val name: String)
+
+class Uninitialized(name: String) : InitInfo(name)
+
+class Initialized(val state: StateInfo) : InitInfo(state.name)
+
+sealed interface ActivationInfo
+
+class Inactive(val name: String) : ActivationInfo
+
+class Active(val nodeInfo: StateInfo) : ActivationInfo
+
+class Dead(val name: String) : ActivationInfo
+
+data class Edge(val upstream: Any, val downstream: Any, val tag: Any? = null)
+
+data class Graph<T>(val nodes: Map<Any, T>, val edges: List<Edge>)
+
+internal fun TState<*>.dump(infoMap: MutableMap<Any, InitInfo>, edges: MutableList<Edge>) {
+ val init: Init<TStateImpl<Any?>> =
+ when (this) {
+ is TStateInit -> init
+ is TStateLoop -> init
+ is MutableTState -> tState.init
+ }
+ when (val stateMaybe = init.getUnsafe()) {
+ None -> {
+ infoMap[this] = Uninitialized(init.name ?: init.toString())
+ }
+ is Just -> {
+ stateMaybe.value.dump(infoMap, edges)
+ }
+ }
+}
+
+internal fun TStateImpl<*>.dump(infoById: MutableMap<Any, InitInfo>, edges: MutableList<Edge>) {
+ val state = this
+ if (state in infoById) return
+ val stateInfo =
+ when (state) {
+ is TStateDerived -> {
+ val type =
+ when (state) {
+ is DerivedFlatten -> {
+ state.upstream.dump(infoById, edges)
+ edges.add(
+ Edge(upstream = state.upstream, downstream = state, tag = "outer")
+ )
+ state.upstream
+ .getUnsafe()
+ .orElseGet { null }
+ ?.let {
+ edges.add(
+ Edge(upstream = it, downstream = state, tag = "inner")
+ )
+ it.dump(infoById, edges)
+ }
+ Flatten
+ }
+ is DerivedMap<*, *> -> {
+ state.upstream.dump(infoById, edges)
+ edges.add(Edge(upstream = state.upstream, downstream = state))
+ Mapped(cheap = false)
+ }
+ is DerivedZipped<*, *> -> {
+ state.upstream.forEach { (key, upstream) ->
+ edges.add(
+ Edge(upstream = upstream, downstream = state, tag = "key=$key")
+ )
+ upstream.dump(infoById, edges)
+ }
+ Combine
+ }
+ }
+ Derived(
+ state.name ?: state.operatorName,
+ type,
+ state.getCachedUnsafe(),
+ state.operatorName,
+ state.invalidatedEpoch,
+ )
+ }
+ is TStateSource ->
+ Source(
+ state.name ?: state.operatorName,
+ state.getStorageUnsafe(),
+ state.operatorName,
+ state.writeEpoch,
+ )
+ is DerivedMapCheap<*, *> -> {
+ state.upstream.dump(infoById, edges)
+ edges.add(Edge(upstream = state.upstream, downstream = state))
+ val type = Mapped(cheap = true)
+ Derived(
+ state.name ?: state.operatorName,
+ type,
+ state.getUnsafe(),
+ state.operatorName,
+ null,
+ )
+ }
+ }
+ infoById[state] = Initialized(stateInfo)
+}
+
+private fun <A> TStateImpl<A>.getUnsafe(): Maybe<A> =
+ when (this) {
+ is TStateDerived -> getCachedUnsafe()
+ is TStateSource -> getStorageUnsafe()
+ is DerivedMapCheap<*, *> -> none
+ }
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/BuildScopeImpl.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/BuildScopeImpl.kt
new file mode 100644
index 000000000000..127abd857fb3
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/BuildScopeImpl.kt
@@ -0,0 +1,363 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.CoalescingMutableTFlow
+import com.android.systemui.experimental.frp.FrpBuildScope
+import com.android.systemui.experimental.frp.FrpCoalescingProducerScope
+import com.android.systemui.experimental.frp.FrpDeferredValue
+import com.android.systemui.experimental.frp.FrpEffectScope
+import com.android.systemui.experimental.frp.FrpNetwork
+import com.android.systemui.experimental.frp.FrpProducerScope
+import com.android.systemui.experimental.frp.FrpSpec
+import com.android.systemui.experimental.frp.FrpStateScope
+import com.android.systemui.experimental.frp.FrpTransactionScope
+import com.android.systemui.experimental.frp.GroupedTFlow
+import com.android.systemui.experimental.frp.LocalFrpNetwork
+import com.android.systemui.experimental.frp.MutableTFlow
+import com.android.systemui.experimental.frp.TFlow
+import com.android.systemui.experimental.frp.TFlowInit
+import com.android.systemui.experimental.frp.groupByKey
+import com.android.systemui.experimental.frp.init
+import com.android.systemui.experimental.frp.internal.util.childScope
+import com.android.systemui.experimental.frp.internal.util.launchOnCancel
+import com.android.systemui.experimental.frp.internal.util.mapValuesParallel
+import com.android.systemui.experimental.frp.launchEffect
+import com.android.systemui.experimental.frp.util.Just
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.None
+import com.android.systemui.experimental.frp.util.just
+import com.android.systemui.experimental.frp.util.map
+import java.util.concurrent.atomic.AtomicReference
+import kotlin.coroutines.Continuation
+import kotlin.coroutines.CoroutineContext
+import kotlin.coroutines.EmptyCoroutineContext
+import kotlin.coroutines.startCoroutine
+import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.CompletableJob
+import kotlinx.coroutines.CoroutineName
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Deferred
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.cancel
+import kotlinx.coroutines.completeWith
+import kotlinx.coroutines.job
+
+internal class BuildScopeImpl(val stateScope: StateScopeImpl, val coroutineScope: CoroutineScope) :
+ BuildScope, StateScope by stateScope {
+
+ private val job: Job
+ get() = coroutineScope.coroutineContext.job
+
+ override val frpScope: FrpBuildScope = FrpBuildScopeImpl()
+
+ override suspend fun <R> runInBuildScope(block: suspend FrpBuildScope.() -> R): R {
+ val complete = CompletableDeferred<R>(parent = coroutineContext.job)
+ block.startCoroutine(
+ frpScope,
+ object : Continuation<R> {
+ override val context: CoroutineContext
+ get() = EmptyCoroutineContext
+
+ override fun resumeWith(result: Result<R>) {
+ complete.completeWith(result)
+ }
+ },
+ )
+ return complete.await()
+ }
+
+ private fun <A, T : TFlow<A>, S> buildTFlow(
+ constructFlow: (InputNode<A>) -> Pair<T, S>,
+ builder: suspend S.() -> Unit,
+ ): TFlow<A> {
+ var job: Job? = null
+ val stopEmitter = newStopEmitter()
+ val handle = this.job.invokeOnCompletion { stopEmitter.emit(Unit) }
+ // Create a child scope that will be kept alive beyond the end of this transaction.
+ val childScope = coroutineScope.childScope()
+ lateinit var emitter: Pair<T, S>
+ val inputNode =
+ InputNode<A>(
+ activate = {
+ check(job == null) { "already activated" }
+ job =
+ reenterBuildScope(this@BuildScopeImpl, childScope).runInBuildScope {
+ launchEffect {
+ builder(emitter.second)
+ handle.dispose()
+ stopEmitter.emit(Unit)
+ }
+ }
+ },
+ deactivate = {
+ checkNotNull(job) { "already deactivated" }.cancel()
+ job = null
+ },
+ )
+ emitter = constructFlow(inputNode)
+ return with(frpScope) { emitter.first.takeUntil(stopEmitter) }
+ }
+
+ private fun <T> tFlowInternal(builder: suspend FrpProducerScope<T>.() -> Unit): TFlow<T> =
+ buildTFlow(
+ constructFlow = { inputNode ->
+ val flow = MutableTFlow(network, inputNode)
+ flow to
+ object : FrpProducerScope<T> {
+ override suspend fun emit(value: T) {
+ flow.emit(value)
+ }
+ }
+ },
+ builder = builder,
+ )
+
+ private fun <In, Out> coalescingTFlowInternal(
+ getInitialValue: () -> Out,
+ coalesce: (old: Out, new: In) -> Out,
+ builder: suspend FrpCoalescingProducerScope<In>.() -> Unit,
+ ): TFlow<Out> =
+ buildTFlow(
+ constructFlow = { inputNode ->
+ val flow = CoalescingMutableTFlow(coalesce, network, getInitialValue, inputNode)
+ flow to
+ object : FrpCoalescingProducerScope<In> {
+ override fun emit(value: In) {
+ flow.emit(value)
+ }
+ }
+ },
+ builder = builder,
+ )
+
+ private fun <A> asyncScopeInternal(block: FrpSpec<A>): Pair<FrpDeferredValue<A>, Job> {
+ val childScope = mutableChildBuildScope()
+ return FrpDeferredValue(deferAsync { childScope.runInBuildScope(block) }) to childScope.job
+ }
+
+ private fun <R> deferredInternal(block: suspend FrpBuildScope.() -> R): FrpDeferredValue<R> =
+ FrpDeferredValue(deferAsync { runInBuildScope(block) })
+
+ private fun deferredActionInternal(block: suspend FrpBuildScope.() -> Unit) {
+ deferAction { runInBuildScope(block) }
+ }
+
+ private fun <A> TFlow<A>.observeEffectInternal(
+ context: CoroutineContext,
+ block: suspend FrpEffectScope.(A) -> Unit,
+ ): Job {
+ val subRef = AtomicReference<Maybe<Output<A>>>(null)
+ val childScope = coroutineScope.childScope()
+ // When our scope is cancelled, deactivate this observer.
+ childScope.launchOnCancel(CoroutineName("TFlow.observeEffect")) {
+ subRef.getAndSet(None)?.let { output ->
+ if (output is Just) {
+ @Suppress("DeferredResultUnused")
+ network.transaction { scheduleDeactivation(output.value) }
+ }
+ }
+ }
+ // Defer so that we don't suspend the caller
+ deferAction {
+ val outputNode =
+ Output<A>(
+ context = context,
+ onDeath = { subRef.getAndSet(None)?.let { childScope.cancel() } },
+ onEmit = { output ->
+ if (subRef.get() is Just) {
+ // Not cancelled, safe to emit
+ val coroutine: suspend FrpEffectScope.() -> Unit = { block(output) }
+ val complete = CompletableDeferred<Unit>(parent = coroutineContext.job)
+ coroutine.startCoroutine(
+ object : FrpEffectScope, FrpTransactionScope by frpScope {
+ override val frpCoroutineScope: CoroutineScope = childScope
+ override val frpNetwork: FrpNetwork =
+ LocalFrpNetwork(network, childScope, endSignal)
+ },
+ completion =
+ object : Continuation<Unit> {
+ override val context: CoroutineContext
+ get() = EmptyCoroutineContext
+
+ override fun resumeWith(result: Result<Unit>) {
+ complete.completeWith(result)
+ }
+ },
+ )
+ complete.await()
+ }
+ },
+ )
+ with(frpScope) { this@observeEffectInternal.takeUntil(endSignal) }
+ .init
+ .connect(evalScope = stateScope.evalScope)
+ .activate(evalScope = stateScope.evalScope, outputNode.schedulable)
+ ?.let { (conn, needsEval) ->
+ outputNode.upstream = conn
+ if (!subRef.compareAndSet(null, just(outputNode))) {
+ // Job's already been cancelled, schedule deactivation
+ scheduleDeactivation(outputNode)
+ } else if (needsEval) {
+ outputNode.schedule(evalScope = stateScope.evalScope)
+ }
+ } ?: childScope.cancel()
+ }
+ return childScope.coroutineContext.job
+ }
+
+ private fun <A, B> TFlow<A>.mapBuildInternal(
+ transform: suspend FrpBuildScope.(A) -> B
+ ): TFlow<B> {
+ val childScope = coroutineScope.childScope()
+ return TFlowInit(
+ constInit(
+ "mapBuild",
+ mapImpl({ init.connect(evalScope = this) }) { spec ->
+ reenterBuildScope(outerScope = this@BuildScopeImpl, childScope)
+ .runInBuildScope {
+ val (result, _) = asyncScope { transform(spec) }
+ result.get()
+ }
+ }
+ .cached(),
+ )
+ )
+ }
+
+ private fun <K, A, B> TFlow<Map<K, Maybe<FrpSpec<A>>>>.applyLatestForKeyInternal(
+ init: FrpDeferredValue<Map<K, FrpSpec<B>>>,
+ numKeys: Int?,
+ ): Pair<TFlow<Map<K, Maybe<A>>>, FrpDeferredValue<Map<K, B>>> {
+ val eventsByKey: GroupedTFlow<K, Maybe<FrpSpec<A>>> = groupByKey(numKeys)
+ val initOut: Deferred<Map<K, B>> = deferAsync {
+ init.unwrapped.await().mapValuesParallel { (k, spec) ->
+ val newEnd = with(frpScope) { eventsByKey[k].skipNext() }
+ val newScope = childBuildScope(newEnd)
+ newScope.runInBuildScope(spec)
+ }
+ }
+ val childScope = coroutineScope.childScope()
+ val changesNode: TFlowImpl<Map<K, Maybe<A>>> =
+ mapImpl(upstream = { this@applyLatestForKeyInternal.init.connect(evalScope = this) }) {
+ upstreamMap ->
+ reenterBuildScope(this@BuildScopeImpl, childScope).run {
+ upstreamMap.mapValuesParallel { (k: K, ma: Maybe<FrpSpec<A>>) ->
+ ma.map { spec ->
+ val newEnd = with(frpScope) { eventsByKey[k].skipNext() }
+ val newScope = childBuildScope(newEnd)
+ newScope.runInBuildScope(spec)
+ }
+ }
+ }
+ }
+ val changes: TFlow<Map<K, Maybe<A>>> =
+ TFlowInit(constInit("applyLatestForKey", changesNode.cached()))
+ // Ensure effects are observed; otherwise init will stay alive longer than expected
+ changes.observeEffectInternal(EmptyCoroutineContext) {}
+ return changes to FrpDeferredValue(initOut)
+ }
+
+ private fun newStopEmitter(): CoalescingMutableTFlow<Unit, Unit> =
+ CoalescingMutableTFlow(
+ coalesce = { _, _: Unit -> },
+ network = network,
+ getInitialValue = {},
+ )
+
+ private suspend fun childBuildScope(newEnd: TFlow<Any>): BuildScopeImpl {
+ val newCoroutineScope: CoroutineScope = coroutineScope.childScope()
+ return BuildScopeImpl(
+ stateScope = stateScope.childStateScope(newEnd),
+ coroutineScope = newCoroutineScope,
+ )
+ .apply {
+ // Ensure that once this transaction is done, the new child scope enters the
+ // completing state (kept alive so long as there are child jobs).
+ scheduleOutput(
+ OneShot {
+ // TODO: don't like this cast
+ (newCoroutineScope.coroutineContext.job as CompletableJob).complete()
+ }
+ )
+ runInBuildScope { endSignal.nextOnly().observe { newCoroutineScope.cancel() } }
+ }
+ }
+
+ private fun mutableChildBuildScope(): BuildScopeImpl {
+ val stopEmitter = newStopEmitter()
+ val childScope = coroutineScope.childScope()
+ childScope.coroutineContext.job.invokeOnCompletion { stopEmitter.emit(Unit) }
+ // Ensure that once this transaction is done, the new child scope enters the completing
+ // state (kept alive so long as there are child jobs).
+ scheduleOutput(
+ OneShot {
+ // TODO: don't like this cast
+ (childScope.coroutineContext.job as CompletableJob).complete()
+ }
+ )
+ return BuildScopeImpl(
+ stateScope = StateScopeImpl(evalScope = stateScope.evalScope, endSignal = stopEmitter),
+ coroutineScope = childScope,
+ )
+ }
+
+ private inner class FrpBuildScopeImpl : FrpBuildScope, FrpStateScope by stateScope.frpScope {
+
+ override fun <T> tFlow(builder: suspend FrpProducerScope<T>.() -> Unit): TFlow<T> =
+ tFlowInternal(builder)
+
+ override fun <In, Out> coalescingTFlow(
+ getInitialValue: () -> Out,
+ coalesce: (old: Out, new: In) -> Out,
+ builder: suspend FrpCoalescingProducerScope<In>.() -> Unit,
+ ): TFlow<Out> = coalescingTFlowInternal(getInitialValue, coalesce, builder)
+
+ override fun <A> asyncScope(block: FrpSpec<A>): Pair<FrpDeferredValue<A>, Job> =
+ asyncScopeInternal(block)
+
+ override fun <R> deferredBuildScope(
+ block: suspend FrpBuildScope.() -> R
+ ): FrpDeferredValue<R> = deferredInternal(block)
+
+ override fun deferredBuildScopeAction(block: suspend FrpBuildScope.() -> Unit) =
+ deferredActionInternal(block)
+
+ override fun <A> TFlow<A>.observe(
+ coroutineContext: CoroutineContext,
+ block: suspend FrpEffectScope.(A) -> Unit,
+ ): Job = observeEffectInternal(coroutineContext, block)
+
+ override fun <A, B> TFlow<A>.mapBuild(transform: suspend FrpBuildScope.(A) -> B): TFlow<B> =
+ mapBuildInternal(transform)
+
+ override fun <K, A, B> TFlow<Map<K, Maybe<FrpSpec<A>>>>.applyLatestSpecForKey(
+ initialSpecs: FrpDeferredValue<Map<K, FrpSpec<B>>>,
+ numKeys: Int?,
+ ): Pair<TFlow<Map<K, Maybe<A>>>, FrpDeferredValue<Map<K, B>>> =
+ applyLatestForKeyInternal(initialSpecs, numKeys)
+ }
+}
+
+private fun EvalScope.reenterBuildScope(
+ outerScope: BuildScopeImpl,
+ coroutineScope: CoroutineScope,
+) =
+ BuildScopeImpl(
+ stateScope = StateScopeImpl(evalScope = this, endSignal = outerScope.endSignal),
+ coroutineScope,
+ )
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/DeferScope.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/DeferScope.kt
new file mode 100644
index 000000000000..f72ba5fdfc6f
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/DeferScope.kt
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.internal.util.asyncImmediate
+import com.android.systemui.experimental.frp.internal.util.launchImmediate
+import kotlinx.coroutines.CoroutineName
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.CoroutineStart
+import kotlinx.coroutines.Deferred
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.coroutineScope
+import kotlinx.coroutines.isActive
+
+internal typealias DeferScope = CoroutineScope
+
+internal inline fun DeferScope.deferAction(
+ start: CoroutineStart = CoroutineStart.UNDISPATCHED,
+ crossinline block: suspend () -> Unit,
+): Job {
+ check(isActive) { "Cannot perform deferral, scope already closed." }
+ return launchImmediate(start, CoroutineName("deferAction")) { block() }
+}
+
+internal inline fun <R> DeferScope.deferAsync(
+ start: CoroutineStart = CoroutineStart.UNDISPATCHED,
+ crossinline block: suspend () -> R,
+): Deferred<R> {
+ check(isActive) { "Cannot perform deferral, scope already closed." }
+ return asyncImmediate(start, CoroutineName("deferAsync")) { block() }
+}
+
+internal suspend inline fun <A> deferScope(noinline block: suspend DeferScope.() -> A): A =
+ coroutineScope(block)
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Demux.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Demux.kt
new file mode 100644
index 000000000000..418220f2da4d
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Demux.kt
@@ -0,0 +1,349 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@file:Suppress("NOTHING_TO_INLINE")
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.internal.util.hashString
+import com.android.systemui.experimental.frp.util.Just
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.flatMap
+import com.android.systemui.experimental.frp.util.getMaybe
+import java.util.concurrent.ConcurrentHashMap
+import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.async
+import kotlinx.coroutines.coroutineScope
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.sync.Mutex
+import kotlinx.coroutines.sync.withLock
+
+internal class DemuxNode<K, A>(
+ private val branchNodeByKey: ConcurrentHashMap<K, DemuxBranchNode<K, A>>,
+ val lifecycle: DemuxLifecycle<K, A>,
+ private val spec: DemuxActivator<K, A>,
+) : SchedulableNode {
+
+ val schedulable = Schedulable.N(this)
+
+ inline val mutex
+ get() = lifecycle.mutex
+
+ lateinit var upstreamConnection: NodeConnection<Map<K, A>>
+
+ fun getAndMaybeAddDownstream(key: K): DemuxBranchNode<K, A> =
+ branchNodeByKey.getOrPut(key) { DemuxBranchNode(key, this) }
+
+ override suspend fun schedule(evalScope: EvalScope) {
+ val upstreamResult = upstreamConnection.getPushEvent(evalScope)
+ if (upstreamResult is Just) {
+ coroutineScope {
+ val outerScope = this
+ mutex.withLock {
+ coroutineScope {
+ for ((key, _) in upstreamResult.value) {
+ launch {
+ branchNodeByKey[key]?.let { branch ->
+ outerScope.launch { branch.schedule(evalScope) }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ override suspend fun adjustDirectUpstream(scheduler: Scheduler, oldDepth: Int, newDepth: Int) {
+ coroutineScope {
+ mutex.withLock {
+ for ((_, branchNode) in branchNodeByKey) {
+ branchNode.downstreamSet.adjustDirectUpstream(
+ coroutineScope = this,
+ scheduler,
+ oldDepth,
+ newDepth,
+ )
+ }
+ }
+ }
+ }
+
+ override suspend fun moveIndirectUpstreamToDirect(
+ scheduler: Scheduler,
+ oldIndirectDepth: Int,
+ oldIndirectSet: Set<MuxDeferredNode<*, *>>,
+ newDirectDepth: Int,
+ ) {
+ coroutineScope {
+ mutex.withLock {
+ for ((_, branchNode) in branchNodeByKey) {
+ branchNode.downstreamSet.moveIndirectUpstreamToDirect(
+ coroutineScope = this,
+ scheduler,
+ oldIndirectDepth,
+ oldIndirectSet,
+ newDirectDepth,
+ )
+ }
+ }
+ }
+ }
+
+ override suspend fun adjustIndirectUpstream(
+ scheduler: Scheduler,
+ oldDepth: Int,
+ newDepth: Int,
+ removals: Set<MuxDeferredNode<*, *>>,
+ additions: Set<MuxDeferredNode<*, *>>,
+ ) {
+ coroutineScope {
+ mutex.withLock {
+ for ((_, branchNode) in branchNodeByKey) {
+ branchNode.downstreamSet.adjustIndirectUpstream(
+ coroutineScope = this,
+ scheduler,
+ oldDepth,
+ newDepth,
+ removals,
+ additions,
+ )
+ }
+ }
+ }
+ }
+
+ override suspend fun moveDirectUpstreamToIndirect(
+ scheduler: Scheduler,
+ oldDirectDepth: Int,
+ newIndirectDepth: Int,
+ newIndirectSet: Set<MuxDeferredNode<*, *>>,
+ ) {
+ coroutineScope {
+ mutex.withLock {
+ for ((_, branchNode) in branchNodeByKey) {
+ branchNode.downstreamSet.moveDirectUpstreamToIndirect(
+ coroutineScope = this,
+ scheduler,
+ oldDirectDepth,
+ newIndirectDepth,
+ newIndirectSet,
+ )
+ }
+ }
+ }
+ }
+
+ override suspend fun removeIndirectUpstream(
+ scheduler: Scheduler,
+ depth: Int,
+ indirectSet: Set<MuxDeferredNode<*, *>>,
+ ) {
+ coroutineScope {
+ mutex.withLock {
+ lifecycle.lifecycleState = DemuxLifecycleState.Dead
+ for ((_, branchNode) in branchNodeByKey) {
+ branchNode.downstreamSet.removeIndirectUpstream(
+ coroutineScope = this,
+ scheduler,
+ depth,
+ indirectSet,
+ )
+ }
+ }
+ }
+ }
+
+ override suspend fun removeDirectUpstream(scheduler: Scheduler, depth: Int) {
+ coroutineScope {
+ mutex.withLock {
+ lifecycle.lifecycleState = DemuxLifecycleState.Dead
+ for ((_, branchNode) in branchNodeByKey) {
+ branchNode.downstreamSet.removeDirectUpstream(
+ coroutineScope = this,
+ scheduler,
+ depth,
+ )
+ }
+ }
+ }
+ }
+
+ suspend fun removeDownstreamAndDeactivateIfNeeded(key: K) {
+ val deactivate =
+ mutex.withLock {
+ branchNodeByKey.remove(key)
+ branchNodeByKey.isEmpty()
+ }
+ if (deactivate) {
+ // No need for mutex here; no more concurrent changes to can occur during this phase
+ lifecycle.lifecycleState = DemuxLifecycleState.Inactive(spec)
+ upstreamConnection.removeDownstreamAndDeactivateIfNeeded(downstream = schedulable)
+ }
+ }
+}
+
+internal class DemuxBranchNode<K, A>(val key: K, private val demuxNode: DemuxNode<K, A>) :
+ PushNode<A> {
+
+ private val mutex = Mutex()
+
+ val downstreamSet = DownstreamSet()
+
+ override val depthTracker: DepthTracker
+ get() = demuxNode.upstreamConnection.depthTracker
+
+ override suspend fun hasCurrentValue(transactionStore: TransactionStore): Boolean =
+ demuxNode.upstreamConnection.hasCurrentValue(transactionStore)
+
+ override suspend fun getPushEvent(evalScope: EvalScope): Maybe<A> =
+ demuxNode.upstreamConnection.getPushEvent(evalScope).flatMap { it.getMaybe(key) }
+
+ override suspend fun addDownstream(downstream: Schedulable) {
+ mutex.withLock { downstreamSet.add(downstream) }
+ }
+
+ override suspend fun removeDownstream(downstream: Schedulable) {
+ mutex.withLock { downstreamSet.remove(downstream) }
+ }
+
+ override suspend fun removeDownstreamAndDeactivateIfNeeded(downstream: Schedulable) {
+ val canDeactivate =
+ mutex.withLock {
+ downstreamSet.remove(downstream)
+ downstreamSet.isEmpty()
+ }
+ if (canDeactivate) {
+ demuxNode.removeDownstreamAndDeactivateIfNeeded(key)
+ }
+ }
+
+ override suspend fun deactivateIfNeeded() {
+ if (mutex.withLock { downstreamSet.isEmpty() }) {
+ demuxNode.removeDownstreamAndDeactivateIfNeeded(key)
+ }
+ }
+
+ override suspend fun scheduleDeactivationIfNeeded(evalScope: EvalScope) {
+ if (mutex.withLock { downstreamSet.isEmpty() }) {
+ evalScope.scheduleDeactivation(this)
+ }
+ }
+
+ suspend fun schedule(evalScope: EvalScope) {
+ if (!coroutineScope { mutex.withLock { scheduleAll(downstreamSet, evalScope) } }) {
+ evalScope.scheduleDeactivation(this)
+ }
+ }
+}
+
+internal fun <K, A> DemuxImpl(
+ upstream: suspend EvalScope.() -> TFlowImpl<Map<K, A>>,
+ numKeys: Int?,
+): DemuxImpl<K, A> =
+ DemuxImpl(
+ DemuxLifecycle(
+ object : DemuxActivator<K, A> {
+ override suspend fun activate(
+ evalScope: EvalScope,
+ lifecycle: DemuxLifecycle<K, A>,
+ ): Pair<DemuxNode<K, A>, Boolean>? {
+ val dmux = DemuxNode(ConcurrentHashMap(numKeys ?: 16), lifecycle, this)
+ return upstream
+ .invoke(evalScope)
+ .activate(evalScope, downstream = dmux.schedulable)
+ ?.let { (conn, needsEval) ->
+ dmux.apply { upstreamConnection = conn } to needsEval
+ }
+ }
+ }
+ )
+ )
+
+internal class DemuxImpl<in K, out A>(private val dmux: DemuxLifecycle<K, A>) {
+ fun eventsForKey(key: K): TFlowImpl<A> = TFlowCheap { downstream ->
+ dmux.activate(evalScope = this, key)?.let { (branchNode, needsEval) ->
+ branchNode.addDownstream(downstream)
+ val branchNeedsEval = needsEval && branchNode.getPushEvent(evalScope = this) is Just
+ ActivationResult(
+ connection = NodeConnection(branchNode, branchNode),
+ needsEval = branchNeedsEval,
+ )
+ }
+ }
+}
+
+internal class DemuxLifecycle<K, A>(@Volatile var lifecycleState: DemuxLifecycleState<K, A>) {
+ val mutex = Mutex()
+
+ override fun toString(): String = "TFlowDmuxState[$hashString][$lifecycleState][$mutex]"
+
+ suspend fun activate(evalScope: EvalScope, key: K): Pair<DemuxBranchNode<K, A>, Boolean>? =
+ coroutineScope {
+ mutex
+ .withLock {
+ when (val state = lifecycleState) {
+ is DemuxLifecycleState.Dead -> null
+ is DemuxLifecycleState.Active ->
+ state.node.getAndMaybeAddDownstream(key) to
+ async {
+ state.node.upstreamConnection.hasCurrentValue(
+ evalScope.transactionStore
+ )
+ }
+ is DemuxLifecycleState.Inactive -> {
+ state.spec
+ .activate(evalScope, this@DemuxLifecycle)
+ .also { result ->
+ lifecycleState =
+ if (result == null) {
+ DemuxLifecycleState.Dead
+ } else {
+ DemuxLifecycleState.Active(result.first)
+ }
+ }
+ ?.let { (node, needsEval) ->
+ node.getAndMaybeAddDownstream(key) to
+ CompletableDeferred(needsEval)
+ }
+ }
+ }
+ }
+ ?.let { (branch, result) -> branch to result.await() }
+ }
+}
+
+internal sealed interface DemuxLifecycleState<out K, out A> {
+ class Inactive<K, A>(val spec: DemuxActivator<K, A>) : DemuxLifecycleState<K, A> {
+ override fun toString(): String = "Inactive"
+ }
+
+ class Active<K, A>(val node: DemuxNode<K, A>) : DemuxLifecycleState<K, A> {
+ override fun toString(): String = "Active(node=$node)"
+ }
+
+ data object Dead : DemuxLifecycleState<Nothing, Nothing>
+}
+
+internal interface DemuxActivator<K, A> {
+ suspend fun activate(
+ evalScope: EvalScope,
+ lifecycle: DemuxLifecycle<K, A>,
+ ): Pair<DemuxNode<K, A>, Boolean>?
+}
+
+internal inline fun <K, A> DemuxLifecycle(onSubscribe: DemuxActivator<K, A>) =
+ DemuxLifecycle(DemuxLifecycleState.Inactive(onSubscribe))
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/EvalScopeImpl.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/EvalScopeImpl.kt
new file mode 100644
index 000000000000..38bc22f1df80
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/EvalScopeImpl.kt
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.FrpDeferredValue
+import com.android.systemui.experimental.frp.FrpTransactionScope
+import com.android.systemui.experimental.frp.TFlow
+import com.android.systemui.experimental.frp.TFlowInit
+import com.android.systemui.experimental.frp.TFlowLoop
+import com.android.systemui.experimental.frp.TState
+import com.android.systemui.experimental.frp.TStateInit
+import com.android.systemui.experimental.frp.Transactional
+import com.android.systemui.experimental.frp.emptyTFlow
+import com.android.systemui.experimental.frp.init
+import com.android.systemui.experimental.frp.mapCheap
+import com.android.systemui.experimental.frp.switch
+import kotlin.coroutines.Continuation
+import kotlin.coroutines.CoroutineContext
+import kotlin.coroutines.EmptyCoroutineContext
+import kotlin.coroutines.startCoroutine
+import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.completeWith
+import kotlinx.coroutines.job
+
+internal class EvalScopeImpl(networkScope: NetworkScope, deferScope: DeferScope) :
+ EvalScope, NetworkScope by networkScope, DeferScope by deferScope {
+
+ private suspend fun <A> Transactional<A>.sample(): A =
+ impl.sample().sample(this@EvalScopeImpl).await()
+
+ private suspend fun <A> TState<A>.sample(): A =
+ init.connect(evalScope = this@EvalScopeImpl).getCurrentWithEpoch(this@EvalScopeImpl).first
+
+ private val <A> Transactional<A>.deferredValue: FrpDeferredValue<A>
+ get() = FrpDeferredValue(deferAsync { sample() })
+
+ private val <A> TState<A>.deferredValue: FrpDeferredValue<A>
+ get() = FrpDeferredValue(deferAsync { sample() })
+
+ private val nowInternal: TFlow<Unit> by lazy {
+ var result by TFlowLoop<Unit>()
+ result =
+ TStateInit(
+ constInit(
+ "now",
+ mkState(
+ "now",
+ "now",
+ this,
+ { result.mapCheap { emptyTFlow }.init.connect(evalScope = this) },
+ CompletableDeferred(
+ TFlowInit(
+ constInit(
+ "now",
+ TFlowCheap {
+ ActivationResult(
+ connection = NodeConnection(AlwaysNode, AlwaysNode),
+ needsEval = true,
+ )
+ },
+ )
+ )
+ ),
+ ),
+ )
+ )
+ .switch()
+ result
+ }
+
+ private fun <R> deferredInternal(
+ block: suspend FrpTransactionScope.() -> R
+ ): FrpDeferredValue<R> = FrpDeferredValue(deferAsync { runInTransactionScope(block) })
+
+ override suspend fun <R> runInTransactionScope(block: suspend FrpTransactionScope.() -> R): R {
+ val complete = CompletableDeferred<R>(parent = coroutineContext.job)
+ block.startCoroutine(
+ frpScope,
+ object : Continuation<R> {
+ override val context: CoroutineContext
+ get() = EmptyCoroutineContext
+
+ override fun resumeWith(result: Result<R>) {
+ complete.completeWith(result)
+ }
+ },
+ )
+ return complete.await()
+ }
+
+ override val frpScope: FrpTransactionScope = FrpTransactionScopeImpl()
+
+ inner class FrpTransactionScopeImpl : FrpTransactionScope {
+ override fun <A> Transactional<A>.sampleDeferred(): FrpDeferredValue<A> = deferredValue
+
+ override fun <A> TState<A>.sampleDeferred(): FrpDeferredValue<A> = deferredValue
+
+ override fun <R> deferredTransactionScope(
+ block: suspend FrpTransactionScope.() -> R
+ ): FrpDeferredValue<R> = deferredInternal(block)
+
+ override val now: TFlow<Unit>
+ get() = nowInternal
+ }
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/FilterNode.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/FilterNode.kt
new file mode 100644
index 000000000000..4f2a76999bb6
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/FilterNode.kt
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.util.Just
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.just
+import com.android.systemui.experimental.frp.util.none
+
+internal inline fun <A, B> mapMaybeNode(
+ crossinline getPulse: suspend EvalScope.() -> TFlowImpl<A>,
+ crossinline f: suspend EvalScope.(A) -> Maybe<B>,
+): TFlowImpl<B> {
+ return DemuxImpl(
+ {
+ mapImpl(getPulse) {
+ val maybeResult = f(it)
+ if (maybeResult is Just) {
+ mapOf(Unit to maybeResult.value)
+ } else {
+ emptyMap()
+ }
+ }
+ },
+ numKeys = 1,
+ )
+ .eventsForKey(Unit)
+}
+
+internal inline fun <A> filterNode(
+ crossinline getPulse: suspend EvalScope.() -> TFlowImpl<A>,
+ crossinline f: suspend EvalScope.(A) -> Boolean,
+): TFlowImpl<A> = mapMaybeNode(getPulse) { if (f(it)) just(it) else none }
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Graph.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Graph.kt
new file mode 100644
index 000000000000..9425870738fc
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Graph.kt
@@ -0,0 +1,530 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.internal.util.Bag
+import java.util.TreeMap
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.launch
+
+/**
+ * Tracks all upstream connections for Mux nodes.
+ *
+ * Connections come in two flavors:
+ * 1. **DIRECT** :: The upstream node may emit events that would cause the owner of this depth
+ * tracker to also emit.
+ * 2. **INDIRECT** :: The upstream node will not emit events, but may start doing so in a future
+ * transaction (at which point its depth will change to DIRECT).
+ *
+ * DIRECT connections are the standard, active connections that propagate events through the graph.
+ * They are used to calculate the evaluation depth of a node, so that it is only visited once it is
+ * certain that all DIRECT upstream connections have already been visited (or are not emitting in
+ * the current transaction).
+ *
+ * It is *invalid* for a node to be directly upstream of itself. Doing so is an error.
+ *
+ * INDIRECT connections identify nodes that are still "alive" (should not be garbage-collected) but
+ * are presently "dormant". This only occurs when a MuxDeferredNode has nothing switched-in, but is
+ * still connected to its "patches" upstream node, implying that something *may* be switched-in at a
+ * later time.
+ *
+ * It is *invalid* for a node to be indirectly upstream of itself. These connections are
+ * automatically filtered out.
+ *
+ * When there are no connections, either DIRECT or INDIRECT, a node *dies* and all incoming/outgoing
+ * connections are freed so that it can be garbage-collected.
+ *
+ * Note that there is an edge case where a MuxDeferredNode is connected to itself via its "patches"
+ * upstream node. In this case:
+ * 1. If the node has switched-in upstream nodes, then this is perfectly valid. Downstream nodes
+ * will see a direct connection to this MuxDeferredNode.
+ * 2. Otherwise, the node would normally be considered "dormant" and downstream nodes would see an
+ * indirect connection. However, because a node cannot be indirectly upstream of itself, then the
+ * MuxDeferredNode sees no connection via its patches upstream node, and so is considered "dead".
+ * Conceptually, this makes some sense: The only way for this recursive MuxDeferredNode to become
+ * non-dormant is to switch some upstream nodes back in, but since the patches node is itself,
+ * this will never happen.
+ *
+ * This behavior underpins the recursive definition of `nextOnly`.
+ */
+internal class DepthTracker {
+
+ @Volatile var snapshotIsDirect = true
+ @Volatile private var snapshotIsIndirectRoot = false
+
+ private inline val snapshotIsIndirect: Boolean
+ get() = !snapshotIsDirect
+
+ @Volatile var snapshotIndirectDepth: Int = 0
+ @Volatile var snapshotDirectDepth: Int = 0
+
+ private val _snapshotIndirectRoots = HashSet<MuxDeferredNode<*, *>>()
+ val snapshotIndirectRoots
+ get() = _snapshotIndirectRoots.toSet()
+
+ private val indirectAdditions = HashSet<MuxDeferredNode<*, *>>()
+ private val indirectRemovals = HashSet<MuxDeferredNode<*, *>>()
+ private val dirty_directUpstreamDepths = TreeMap<Int, Int>()
+ private val dirty_indirectUpstreamDepths = TreeMap<Int, Int>()
+ private val dirty_indirectUpstreamRoots = Bag<MuxDeferredNode<*, *>>()
+ @Volatile var dirty_directDepth = 0
+ @Volatile private var dirty_indirectDepth = 0
+ @Volatile private var dirty_depthIsDirect = true
+ @Volatile private var dirty_isIndirectRoot = false
+
+ suspend fun schedule(scheduler: Scheduler, node: MuxNode<*, *, *>) {
+ if (dirty_depthIsDirect) {
+ scheduler.schedule(dirty_directDepth, node)
+ } else {
+ scheduler.scheduleIndirect(dirty_indirectDepth, node)
+ }
+ }
+
+ // only used by MuxDeferred
+ // and only when there is a direct connection to the patch node
+ fun setIsIndirectRoot(isRoot: Boolean): Boolean {
+ if (isRoot != dirty_isIndirectRoot) {
+ dirty_isIndirectRoot = isRoot
+ return !dirty_depthIsDirect
+ }
+ return false
+ }
+
+ // adds an upstream connection, and recalcs depth
+ // returns true if depth has changed
+ fun addDirectUpstream(oldDepth: Int?, newDepth: Int): Boolean {
+ if (oldDepth != null) {
+ dirty_directUpstreamDepths.compute(oldDepth) { _, count ->
+ count?.minus(1)?.takeIf { it > 0 }
+ }
+ }
+ dirty_directUpstreamDepths.compute(newDepth) { _, current -> current?.plus(1) ?: 1 }
+ return recalcDepth()
+ }
+
+ private fun recalcDepth(): Boolean {
+ val newDepth =
+ dirty_directUpstreamDepths.lastEntry()?.let { (maxDepth, _) -> maxDepth + 1 } ?: 0
+
+ val isDirect = dirty_directUpstreamDepths.isNotEmpty()
+ val isDirectChanged = dirty_depthIsDirect != isDirect
+ dirty_depthIsDirect = isDirect
+
+ return (newDepth != dirty_directDepth).also { dirty_directDepth = newDepth } or
+ isDirectChanged
+ }
+
+ private fun recalcIndirDepth(): Boolean {
+ val newDepth =
+ dirty_indirectUpstreamDepths.lastEntry()?.let { (maxDepth, _) -> maxDepth + 1 } ?: 0
+ return (!dirty_depthIsDirect && !dirty_isIndirectRoot && newDepth != dirty_indirectDepth)
+ .also { dirty_indirectDepth = newDepth }
+ }
+
+ fun removeDirectUpstream(depth: Int): Boolean {
+ dirty_directUpstreamDepths.compute(depth) { _, count -> count?.minus(1)?.takeIf { it > 0 } }
+ return recalcDepth()
+ }
+
+ fun addIndirectUpstream(oldDepth: Int?, newDepth: Int): Boolean =
+ if (oldDepth == newDepth) {
+ false
+ } else {
+ if (oldDepth != null) {
+ dirty_indirectUpstreamDepths.compute(oldDepth) { _, current ->
+ current?.minus(1)?.takeIf { it > 0 }
+ }
+ }
+ dirty_indirectUpstreamDepths.compute(newDepth) { _, current -> current?.plus(1) ?: 1 }
+ recalcIndirDepth()
+ }
+
+ fun removeIndirectUpstream(depth: Int): Boolean {
+ dirty_indirectUpstreamDepths.compute(depth) { _, current ->
+ current?.minus(1)?.takeIf { it > 0 }
+ }
+ return recalcIndirDepth()
+ }
+
+ fun updateIndirectRoots(
+ additions: Set<MuxDeferredNode<*, *>>? = null,
+ removals: Set<MuxDeferredNode<*, *>>? = null,
+ butNot: MuxDeferredNode<*, *>? = null,
+ ): Boolean {
+ val addsChanged =
+ additions
+ ?.let { dirty_indirectUpstreamRoots.addAll(additions, butNot) }
+ ?.let {
+ indirectAdditions.addAll(indirectRemovals.applyRemovalDiff(it))
+ true
+ } ?: false
+ val removalsChanged =
+ removals
+ ?.let { dirty_indirectUpstreamRoots.removeAll(removals) }
+ ?.let {
+ indirectRemovals.addAll(indirectAdditions.applyRemovalDiff(it))
+ true
+ } ?: false
+ return (!dirty_depthIsDirect && (addsChanged || removalsChanged))
+ }
+
+ private fun <T> HashSet<T>.applyRemovalDiff(changeSet: Set<T>): Set<T> {
+ val remainder = HashSet<T>()
+ for (element in changeSet) {
+ if (!add(element)) {
+ remainder.add(element)
+ }
+ }
+ return remainder
+ }
+
+ suspend fun propagateChanges(scheduler: Scheduler, muxNode: MuxNode<*, *, *>) {
+ if (isDirty()) {
+ schedule(scheduler, muxNode)
+ }
+ }
+
+ fun applyChanges(
+ coroutineScope: CoroutineScope,
+ scheduler: Scheduler,
+ downstreamSet: DownstreamSet,
+ muxNode: MuxNode<*, *, *>,
+ ) {
+ when {
+ dirty_depthIsDirect -> {
+ if (snapshotIsDirect) {
+ downstreamSet.adjustDirectUpstream(
+ coroutineScope,
+ scheduler,
+ oldDepth = snapshotDirectDepth,
+ newDepth = dirty_directDepth,
+ )
+ } else {
+ downstreamSet.moveIndirectUpstreamToDirect(
+ coroutineScope,
+ scheduler,
+ oldIndirectDepth = snapshotIndirectDepth,
+ oldIndirectSet =
+ buildSet {
+ addAll(snapshotIndirectRoots)
+ if (snapshotIsIndirectRoot) {
+ add(muxNode as MuxDeferredNode<*, *>)
+ }
+ },
+ newDirectDepth = dirty_directDepth,
+ )
+ }
+ }
+
+ dirty_hasIndirectUpstream() || dirty_isIndirectRoot -> {
+ if (snapshotIsDirect) {
+ downstreamSet.moveDirectUpstreamToIndirect(
+ coroutineScope,
+ scheduler,
+ oldDirectDepth = snapshotDirectDepth,
+ newIndirectDepth = dirty_indirectDepth,
+ newIndirectSet =
+ buildSet {
+ addAll(dirty_indirectUpstreamRoots)
+ if (dirty_isIndirectRoot) {
+ add(muxNode as MuxDeferredNode<*, *>)
+ }
+ },
+ )
+ } else {
+ downstreamSet.adjustIndirectUpstream(
+ coroutineScope,
+ scheduler,
+ oldDepth = snapshotIndirectDepth,
+ newDepth = dirty_indirectDepth,
+ removals =
+ buildSet {
+ addAll(indirectRemovals)
+ if (snapshotIsIndirectRoot && !dirty_isIndirectRoot) {
+ add(muxNode as MuxDeferredNode<*, *>)
+ }
+ },
+ additions =
+ buildSet {
+ addAll(indirectAdditions)
+ if (!snapshotIsIndirectRoot && dirty_isIndirectRoot) {
+ add(muxNode as MuxDeferredNode<*, *>)
+ }
+ },
+ )
+ }
+ }
+
+ else -> {
+ // die
+ muxNode.lifecycle.lifecycleState = MuxLifecycleState.Dead
+
+ if (snapshotIsDirect) {
+ downstreamSet.removeDirectUpstream(
+ coroutineScope,
+ scheduler,
+ depth = snapshotDirectDepth,
+ )
+ } else {
+ downstreamSet.removeIndirectUpstream(
+ coroutineScope,
+ scheduler,
+ depth = snapshotIndirectDepth,
+ indirectSet =
+ buildSet {
+ addAll(snapshotIndirectRoots)
+ if (snapshotIsIndirectRoot) {
+ add(muxNode as MuxDeferredNode<*, *>)
+ }
+ },
+ )
+ }
+ downstreamSet.clear()
+ }
+ }
+ reset()
+ }
+
+ fun dirty_hasDirectUpstream(): Boolean = dirty_directUpstreamDepths.isNotEmpty()
+
+ private fun dirty_hasIndirectUpstream(): Boolean = dirty_indirectUpstreamRoots.isNotEmpty()
+
+ override fun toString(): String =
+ "DepthTracker(" +
+ "sIsDirect=$snapshotIsDirect, " +
+ "sDirectDepth=$snapshotDirectDepth, " +
+ "sIndirectDepth=$snapshotIndirectDepth, " +
+ "sIndirectRoots=$snapshotIndirectRoots, " +
+ "dIsIndirectRoot=$dirty_isIndirectRoot, " +
+ "dDirectDepths=$dirty_directUpstreamDepths, " +
+ "dIndirectDepths=$dirty_indirectUpstreamDepths, " +
+ "dIndirectRoots=$dirty_indirectUpstreamRoots" +
+ ")"
+
+ fun reset() {
+ snapshotIsDirect = dirty_hasDirectUpstream()
+ snapshotDirectDepth = dirty_directDepth
+ snapshotIndirectDepth = dirty_indirectDepth
+ snapshotIsIndirectRoot = dirty_isIndirectRoot
+ if (indirectAdditions.isNotEmpty() || indirectRemovals.isNotEmpty()) {
+ _snapshotIndirectRoots.clear()
+ _snapshotIndirectRoots.addAll(dirty_indirectUpstreamRoots)
+ }
+ indirectAdditions.clear()
+ indirectRemovals.clear()
+ // check(!isDirty()) { "should not be dirty after a reset" }
+ }
+
+ fun isDirty(): Boolean =
+ when {
+ snapshotIsDirect -> !dirty_depthIsDirect || snapshotDirectDepth != dirty_directDepth
+ snapshotIsIndirectRoot -> dirty_depthIsDirect || !dirty_isIndirectRoot
+ else ->
+ dirty_depthIsDirect ||
+ dirty_isIndirectRoot ||
+ snapshotIndirectDepth != dirty_indirectDepth ||
+ indirectAdditions.isNotEmpty() ||
+ indirectRemovals.isNotEmpty()
+ }
+
+ fun dirty_depthIncreased(): Boolean =
+ snapshotDirectDepth < dirty_directDepth || snapshotIsIndirect && dirty_hasDirectUpstream()
+}
+
+/**
+ * Tracks downstream nodes to be scheduled when the owner of this DownstreamSet produces a value in
+ * a transaction.
+ */
+internal class DownstreamSet {
+
+ val outputs = HashSet<Output<*>>()
+ val stateWriters = mutableListOf<TStateSource<*>>()
+ val muxMovers = HashSet<MuxDeferredNode<*, *>>()
+ val nodes = HashSet<SchedulableNode>()
+
+ fun add(schedulable: Schedulable) {
+ when (schedulable) {
+ is Schedulable.S -> stateWriters.add(schedulable.state)
+ is Schedulable.M -> muxMovers.add(schedulable.muxMover)
+ is Schedulable.N -> nodes.add(schedulable.node)
+ is Schedulable.O -> outputs.add(schedulable.output)
+ }
+ }
+
+ fun remove(schedulable: Schedulable) {
+ when (schedulable) {
+ is Schedulable.S -> error("WTF: latches are never removed")
+ is Schedulable.M -> muxMovers.remove(schedulable.muxMover)
+ is Schedulable.N -> nodes.remove(schedulable.node)
+ is Schedulable.O -> outputs.remove(schedulable.output)
+ }
+ }
+
+ fun adjustDirectUpstream(
+ coroutineScope: CoroutineScope,
+ scheduler: Scheduler,
+ oldDepth: Int,
+ newDepth: Int,
+ ) =
+ coroutineScope.run {
+ for (node in nodes) {
+ launch { node.adjustDirectUpstream(scheduler, oldDepth, newDepth) }
+ }
+ }
+
+ fun moveIndirectUpstreamToDirect(
+ coroutineScope: CoroutineScope,
+ scheduler: Scheduler,
+ oldIndirectDepth: Int,
+ oldIndirectSet: Set<MuxDeferredNode<*, *>>,
+ newDirectDepth: Int,
+ ) =
+ coroutineScope.run {
+ for (node in nodes) {
+ launch {
+ node.moveIndirectUpstreamToDirect(
+ scheduler,
+ oldIndirectDepth,
+ oldIndirectSet,
+ newDirectDepth,
+ )
+ }
+ }
+ for (mover in muxMovers) {
+ launch {
+ mover.moveIndirectPatchNodeToDirect(scheduler, oldIndirectDepth, oldIndirectSet)
+ }
+ }
+ }
+
+ fun adjustIndirectUpstream(
+ coroutineScope: CoroutineScope,
+ scheduler: Scheduler,
+ oldDepth: Int,
+ newDepth: Int,
+ removals: Set<MuxDeferredNode<*, *>>,
+ additions: Set<MuxDeferredNode<*, *>>,
+ ) =
+ coroutineScope.run {
+ for (node in nodes) {
+ launch {
+ node.adjustIndirectUpstream(scheduler, oldDepth, newDepth, removals, additions)
+ }
+ }
+ for (mover in muxMovers) {
+ launch {
+ mover.adjustIndirectPatchNode(
+ scheduler,
+ oldDepth,
+ newDepth,
+ removals,
+ additions,
+ )
+ }
+ }
+ }
+
+ fun moveDirectUpstreamToIndirect(
+ coroutineScope: CoroutineScope,
+ scheduler: Scheduler,
+ oldDirectDepth: Int,
+ newIndirectDepth: Int,
+ newIndirectSet: Set<MuxDeferredNode<*, *>>,
+ ) =
+ coroutineScope.run {
+ for (node in nodes) {
+ launch {
+ node.moveDirectUpstreamToIndirect(
+ scheduler,
+ oldDirectDepth,
+ newIndirectDepth,
+ newIndirectSet,
+ )
+ }
+ }
+ for (mover in muxMovers) {
+ launch {
+ mover.moveDirectPatchNodeToIndirect(scheduler, newIndirectDepth, newIndirectSet)
+ }
+ }
+ }
+
+ fun removeIndirectUpstream(
+ coroutineScope: CoroutineScope,
+ scheduler: Scheduler,
+ depth: Int,
+ indirectSet: Set<MuxDeferredNode<*, *>>,
+ ) =
+ coroutineScope.run {
+ for (node in nodes) {
+ launch { node.removeIndirectUpstream(scheduler, depth, indirectSet) }
+ }
+ for (mover in muxMovers) {
+ launch { mover.removeIndirectPatchNode(scheduler, depth, indirectSet) }
+ }
+ for (output in outputs) {
+ launch { output.kill() }
+ }
+ }
+
+ fun removeDirectUpstream(coroutineScope: CoroutineScope, scheduler: Scheduler, depth: Int) =
+ coroutineScope.run {
+ for (node in nodes) {
+ launch { node.removeDirectUpstream(scheduler, depth) }
+ }
+ for (mover in muxMovers) {
+ launch { mover.removeDirectPatchNode(scheduler) }
+ }
+ for (output in outputs) {
+ launch { output.kill() }
+ }
+ }
+
+ fun clear() {
+ outputs.clear()
+ stateWriters.clear()
+ muxMovers.clear()
+ nodes.clear()
+ }
+}
+
+// TODO: remove this indirection
+internal sealed interface Schedulable {
+ data class S constructor(val state: TStateSource<*>) : Schedulable
+
+ data class M constructor(val muxMover: MuxDeferredNode<*, *>) : Schedulable
+
+ data class N constructor(val node: SchedulableNode) : Schedulable
+
+ data class O constructor(val output: Output<*>) : Schedulable
+}
+
+internal fun DownstreamSet.isEmpty() =
+ nodes.isEmpty() && outputs.isEmpty() && muxMovers.isEmpty() && stateWriters.isEmpty()
+
+@Suppress("NOTHING_TO_INLINE") internal inline fun DownstreamSet.isNotEmpty() = !isEmpty()
+
+internal fun CoroutineScope.scheduleAll(
+ downstreamSet: DownstreamSet,
+ evalScope: EvalScope,
+): Boolean {
+ downstreamSet.nodes.forEach { launch { it.schedule(evalScope) } }
+ downstreamSet.muxMovers.forEach { launch { it.scheduleMover(evalScope) } }
+ downstreamSet.outputs.forEach { launch { it.schedule(evalScope) } }
+ downstreamSet.stateWriters.forEach { evalScope.schedule(it) }
+ return downstreamSet.isNotEmpty()
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Init.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Init.kt
new file mode 100644
index 000000000000..efb7a0951737
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Init.kt
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.just
+import com.android.systemui.experimental.frp.util.none
+import java.util.concurrent.atomic.AtomicBoolean
+import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+
+/** Performs actions once, when the reactive component is first connected to the network. */
+internal class Init<out A>(val name: String?, private val block: suspend InitScope.() -> A) {
+
+ /** Has the initialization logic been evaluated yet? */
+ private val initialized = AtomicBoolean()
+
+ /**
+ * Stores the result after initialization, as well as the id of the [Network] it's been
+ * initialized with.
+ */
+ private val cache = CompletableDeferred<Pair<Any, A>>()
+
+ suspend fun connect(evalScope: InitScope): A =
+ if (initialized.getAndSet(true)) {
+ // Read from cache
+ val (networkId, result) = cache.await()
+ check(networkId == evalScope.networkId) { "Network mismatch" }
+ result
+ } else {
+ // Write to cache
+ block(evalScope).also { cache.complete(evalScope.networkId to it) }
+ }
+
+ @OptIn(ExperimentalCoroutinesApi::class)
+ fun getUnsafe(): Maybe<A> =
+ if (cache.isCompleted) {
+ just(cache.getCompleted().second)
+ } else {
+ none
+ }
+}
+
+internal fun <A> init(name: String?, block: suspend InitScope.() -> A) = Init(name, block)
+
+internal fun <A> constInit(name: String?, value: A) = init(name) { value }
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Inputs.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Inputs.kt
new file mode 100644
index 000000000000..85c87fea299b
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Inputs.kt
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.internal.util.Key
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.just
+import java.util.concurrent.atomic.AtomicBoolean
+import kotlinx.coroutines.coroutineScope
+import kotlinx.coroutines.sync.Mutex
+import kotlinx.coroutines.sync.withLock
+
+internal class InputNode<A>(
+ private val activate: suspend EvalScope.() -> Unit = {},
+ private val deactivate: () -> Unit = {},
+) : PushNode<A>, Key<A> {
+
+ internal val downstreamSet = DownstreamSet()
+ private val mutex = Mutex()
+ private val activated = AtomicBoolean(false)
+
+ override val depthTracker: DepthTracker = DepthTracker()
+
+ override suspend fun hasCurrentValue(transactionStore: TransactionStore): Boolean =
+ transactionStore.contains(this)
+
+ suspend fun visit(evalScope: EvalScope, value: A) {
+ evalScope.setResult(this, value)
+ coroutineScope {
+ if (!mutex.withLock { scheduleAll(downstreamSet, evalScope) }) {
+ evalScope.scheduleDeactivation(this@InputNode)
+ }
+ }
+ }
+
+ override suspend fun removeDownstream(downstream: Schedulable) {
+ mutex.withLock { downstreamSet.remove(downstream) }
+ }
+
+ override suspend fun deactivateIfNeeded() {
+ if (mutex.withLock { downstreamSet.isEmpty() && activated.getAndSet(false) }) {
+ deactivate()
+ }
+ }
+
+ override suspend fun scheduleDeactivationIfNeeded(evalScope: EvalScope) {
+ if (mutex.withLock { downstreamSet.isEmpty() }) {
+ evalScope.scheduleDeactivation(this)
+ }
+ }
+
+ override suspend fun addDownstream(downstream: Schedulable) {
+ mutex.withLock { downstreamSet.add(downstream) }
+ }
+
+ suspend fun addDownstreamAndActivateIfNeeded(downstream: Schedulable, evalScope: EvalScope) {
+ val needsActivation =
+ mutex.withLock {
+ val wasEmpty = downstreamSet.isEmpty()
+ downstreamSet.add(downstream)
+ wasEmpty && !activated.getAndSet(true)
+ }
+ if (needsActivation) {
+ activate(evalScope)
+ }
+ }
+
+ override suspend fun removeDownstreamAndDeactivateIfNeeded(downstream: Schedulable) {
+ val needsDeactivation =
+ mutex.withLock {
+ downstreamSet.remove(downstream)
+ downstreamSet.isEmpty() && activated.getAndSet(false)
+ }
+ if (needsDeactivation) {
+ deactivate()
+ }
+ }
+
+ override suspend fun getPushEvent(evalScope: EvalScope): Maybe<A> =
+ evalScope.getCurrentValue(this)
+}
+
+internal fun <A> InputNode<A>.activated() = TFlowCheap { downstream ->
+ val input = this@activated
+ addDownstreamAndActivateIfNeeded(downstream, evalScope = this)
+ ActivationResult(connection = NodeConnection(input, input), needsEval = hasCurrentValue(input))
+}
+
+internal data object AlwaysNode : PushNode<Unit> {
+
+ override val depthTracker = DepthTracker()
+
+ override suspend fun hasCurrentValue(transactionStore: TransactionStore): Boolean = true
+
+ override suspend fun removeDownstream(downstream: Schedulable) {}
+
+ override suspend fun deactivateIfNeeded() {}
+
+ override suspend fun scheduleDeactivationIfNeeded(evalScope: EvalScope) {}
+
+ override suspend fun addDownstream(downstream: Schedulable) {}
+
+ override suspend fun removeDownstreamAndDeactivateIfNeeded(downstream: Schedulable) {}
+
+ override suspend fun getPushEvent(evalScope: EvalScope): Maybe<Unit> = just(Unit)
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/InternalScopes.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/InternalScopes.kt
new file mode 100644
index 000000000000..b6cd9063622b
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/InternalScopes.kt
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.FrpBuildScope
+import com.android.systemui.experimental.frp.FrpStateScope
+import com.android.systemui.experimental.frp.FrpTransactionScope
+import com.android.systemui.experimental.frp.TFlow
+import com.android.systemui.experimental.frp.internal.util.HeteroMap
+import com.android.systemui.experimental.frp.internal.util.Key
+import com.android.systemui.experimental.frp.util.Maybe
+
+internal interface InitScope {
+ val networkId: Any
+}
+
+internal interface EvalScope : NetworkScope, DeferScope {
+ val frpScope: FrpTransactionScope
+
+ suspend fun <R> runInTransactionScope(block: suspend FrpTransactionScope.() -> R): R
+}
+
+internal interface StateScope : EvalScope {
+ override val frpScope: FrpStateScope
+
+ suspend fun <R> runInStateScope(block: suspend FrpStateScope.() -> R): R
+
+ val endSignal: TFlow<Any>
+
+ fun childStateScope(newEnd: TFlow<Any>): StateScope
+}
+
+internal interface BuildScope : StateScope {
+ override val frpScope: FrpBuildScope
+
+ suspend fun <R> runInBuildScope(block: suspend FrpBuildScope.() -> R): R
+}
+
+internal interface NetworkScope : InitScope {
+
+ val epoch: Long
+ val network: Network
+
+ val compactor: Scheduler
+ val scheduler: Scheduler
+
+ val transactionStore: HeteroMap
+
+ fun scheduleOutput(output: Output<*>)
+
+ fun scheduleMuxMover(muxMover: MuxDeferredNode<*, *>)
+
+ fun schedule(state: TStateSource<*>)
+
+ suspend fun schedule(node: MuxNode<*, *, *>)
+
+ fun scheduleDeactivation(node: PushNode<*>)
+
+ fun scheduleDeactivation(output: Output<*>)
+}
+
+internal fun <A> NetworkScope.setResult(node: Key<A>, result: A) {
+ transactionStore[node] = result
+}
+
+internal fun <A> NetworkScope.getCurrentValue(key: Key<A>): Maybe<A> = transactionStore[key]
+
+internal fun NetworkScope.hasCurrentValue(key: Key<*>): Boolean = transactionStore.contains(key)
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Mux.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Mux.kt
new file mode 100644
index 000000000000..e616d625dd1c
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Mux.kt
@@ -0,0 +1,326 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@file:Suppress("NOTHING_TO_INLINE")
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.internal.util.ConcurrentNullableHashMap
+import com.android.systemui.experimental.frp.internal.util.hashString
+import com.android.systemui.experimental.frp.util.Just
+import java.util.concurrent.ConcurrentHashMap
+import kotlinx.coroutines.coroutineScope
+import kotlinx.coroutines.sync.Mutex
+import kotlinx.coroutines.sync.withLock
+
+/** Base class for muxing nodes, which have a potentially dynamic collection of upstream nodes. */
+internal sealed class MuxNode<K : Any, V, Output>(val lifecycle: MuxLifecycle<Output>) :
+ PushNode<Output> {
+
+ inline val mutex
+ get() = lifecycle.mutex
+
+ // TODO: preserve insertion order?
+ val upstreamData = ConcurrentNullableHashMap<K, V>()
+ val switchedIn = ConcurrentHashMap<K, MuxBranchNode<K, V>>()
+ val downstreamSet: DownstreamSet = DownstreamSet()
+
+ // TODO: inline DepthTracker? would need to be added to PushNode signature
+ final override val depthTracker = DepthTracker()
+
+ final override suspend fun addDownstream(downstream: Schedulable) {
+ mutex.withLock { addDownstreamLocked(downstream) }
+ }
+
+ /**
+ * Adds a downstream schedulable to this mux node, such that when this mux node emits a value,
+ * it will be scheduled for evaluation within this same transaction.
+ *
+ * Must only be called when [mutex] is acquired.
+ */
+ fun addDownstreamLocked(downstream: Schedulable) {
+ downstreamSet.add(downstream)
+ }
+
+ final override suspend fun removeDownstream(downstream: Schedulable) {
+ // TODO: return boolean?
+ mutex.withLock { downstreamSet.remove(downstream) }
+ }
+
+ final override suspend fun removeDownstreamAndDeactivateIfNeeded(downstream: Schedulable) {
+ val deactivate =
+ mutex.withLock {
+ downstreamSet.remove(downstream)
+ downstreamSet.isEmpty()
+ }
+ if (deactivate) {
+ doDeactivate()
+ }
+ }
+
+ final override suspend fun deactivateIfNeeded() {
+ if (mutex.withLock { downstreamSet.isEmpty() }) {
+ doDeactivate()
+ }
+ }
+
+ /** visit this node from the scheduler (push eval) */
+ abstract suspend fun visit(evalScope: EvalScope)
+
+ /** perform deactivation logic, propagating to all upstream nodes. */
+ protected abstract suspend fun doDeactivate()
+
+ final override suspend fun scheduleDeactivationIfNeeded(evalScope: EvalScope) {
+ if (mutex.withLock { downstreamSet.isEmpty() }) {
+ evalScope.scheduleDeactivation(this)
+ }
+ }
+
+ suspend fun adjustDirectUpstream(scheduler: Scheduler, oldDepth: Int, newDepth: Int) {
+ mutex.withLock {
+ if (depthTracker.addDirectUpstream(oldDepth, newDepth)) {
+ depthTracker.schedule(scheduler, this)
+ }
+ }
+ }
+
+ suspend fun moveIndirectUpstreamToDirect(
+ scheduler: Scheduler,
+ oldIndirectDepth: Int,
+ oldIndirectRoots: Set<MuxDeferredNode<*, *>>,
+ newDepth: Int,
+ ) {
+ mutex.withLock {
+ if (
+ depthTracker.addDirectUpstream(oldDepth = null, newDepth) or
+ depthTracker.removeIndirectUpstream(depth = oldIndirectDepth) or
+ depthTracker.updateIndirectRoots(removals = oldIndirectRoots)
+ ) {
+ depthTracker.schedule(scheduler, this)
+ }
+ }
+ }
+
+ suspend fun adjustIndirectUpstream(
+ scheduler: Scheduler,
+ oldDepth: Int,
+ newDepth: Int,
+ removals: Set<MuxDeferredNode<*, *>>,
+ additions: Set<MuxDeferredNode<*, *>>,
+ ) {
+ mutex.withLock {
+ if (
+ depthTracker.addIndirectUpstream(oldDepth, newDepth) or
+ depthTracker.updateIndirectRoots(
+ additions,
+ removals,
+ butNot = this as? MuxDeferredNode<*, *>,
+ )
+ ) {
+ depthTracker.schedule(scheduler, this)
+ }
+ }
+ }
+
+ suspend fun moveDirectUpstreamToIndirect(
+ scheduler: Scheduler,
+ oldDepth: Int,
+ newDepth: Int,
+ newIndirectSet: Set<MuxDeferredNode<*, *>>,
+ ) {
+ mutex.withLock {
+ if (
+ depthTracker.addIndirectUpstream(oldDepth = null, newDepth) or
+ depthTracker.removeDirectUpstream(oldDepth) or
+ depthTracker.updateIndirectRoots(
+ additions = newIndirectSet,
+ butNot = this as? MuxDeferredNode<*, *>,
+ )
+ ) {
+ depthTracker.schedule(scheduler, this)
+ }
+ }
+ }
+
+ suspend fun removeDirectUpstream(scheduler: Scheduler, depth: Int, key: K) {
+ mutex.withLock {
+ switchedIn.remove(key)
+ if (depthTracker.removeDirectUpstream(depth)) {
+ depthTracker.schedule(scheduler, this)
+ }
+ }
+ }
+
+ suspend fun removeIndirectUpstream(
+ scheduler: Scheduler,
+ oldDepth: Int,
+ indirectSet: Set<MuxDeferredNode<*, *>>,
+ key: K,
+ ) {
+ mutex.withLock {
+ switchedIn.remove(key)
+ if (
+ depthTracker.removeIndirectUpstream(oldDepth) or
+ depthTracker.updateIndirectRoots(removals = indirectSet)
+ ) {
+ depthTracker.schedule(scheduler, this)
+ }
+ }
+ }
+
+ suspend fun visitCompact(scheduler: Scheduler) = coroutineScope {
+ if (depthTracker.isDirty()) {
+ depthTracker.applyChanges(coroutineScope = this, scheduler, downstreamSet, this@MuxNode)
+ }
+ }
+
+ abstract fun hasCurrentValueLocked(transactionStore: TransactionStore): Boolean
+}
+
+/** An input branch of a mux node, associated with a key. */
+internal class MuxBranchNode<K : Any, V>(private val muxNode: MuxNode<K, V, *>, val key: K) :
+ SchedulableNode {
+
+ val schedulable = Schedulable.N(this)
+
+ @Volatile lateinit var upstream: NodeConnection<V>
+
+ override suspend fun schedule(evalScope: EvalScope) {
+ val upstreamResult = upstream.getPushEvent(evalScope)
+ if (upstreamResult is Just) {
+ muxNode.upstreamData[key] = upstreamResult.value
+ evalScope.schedule(muxNode)
+ }
+ }
+
+ override suspend fun adjustDirectUpstream(scheduler: Scheduler, oldDepth: Int, newDepth: Int) {
+ muxNode.adjustDirectUpstream(scheduler, oldDepth, newDepth)
+ }
+
+ override suspend fun moveIndirectUpstreamToDirect(
+ scheduler: Scheduler,
+ oldIndirectDepth: Int,
+ oldIndirectSet: Set<MuxDeferredNode<*, *>>,
+ newDirectDepth: Int,
+ ) {
+ muxNode.moveIndirectUpstreamToDirect(
+ scheduler,
+ oldIndirectDepth,
+ oldIndirectSet,
+ newDirectDepth,
+ )
+ }
+
+ override suspend fun adjustIndirectUpstream(
+ scheduler: Scheduler,
+ oldDepth: Int,
+ newDepth: Int,
+ removals: Set<MuxDeferredNode<*, *>>,
+ additions: Set<MuxDeferredNode<*, *>>,
+ ) {
+ muxNode.adjustIndirectUpstream(scheduler, oldDepth, newDepth, removals, additions)
+ }
+
+ override suspend fun moveDirectUpstreamToIndirect(
+ scheduler: Scheduler,
+ oldDirectDepth: Int,
+ newIndirectDepth: Int,
+ newIndirectSet: Set<MuxDeferredNode<*, *>>,
+ ) {
+ muxNode.moveDirectUpstreamToIndirect(
+ scheduler,
+ oldDirectDepth,
+ newIndirectDepth,
+ newIndirectSet,
+ )
+ }
+
+ override suspend fun removeDirectUpstream(scheduler: Scheduler, depth: Int) {
+ muxNode.removeDirectUpstream(scheduler, depth, key)
+ }
+
+ override suspend fun removeIndirectUpstream(
+ scheduler: Scheduler,
+ depth: Int,
+ indirectSet: Set<MuxDeferredNode<*, *>>,
+ ) {
+ muxNode.removeIndirectUpstream(scheduler, depth, indirectSet, key)
+ }
+
+ override fun toString(): String = "MuxBranchNode(key=$key, mux=$muxNode)"
+}
+
+/** Tracks lifecycle of MuxNode in the network. Essentially a mutable ref for MuxLifecycleState. */
+internal class MuxLifecycle<A>(@Volatile var lifecycleState: MuxLifecycleState<A>) : TFlowImpl<A> {
+ val mutex = Mutex()
+
+ override fun toString(): String = "TFlowLifecycle[$hashString][$lifecycleState][$mutex]"
+
+ override suspend fun activate(
+ evalScope: EvalScope,
+ downstream: Schedulable,
+ ): ActivationResult<A>? =
+ mutex.withLock {
+ when (val state = lifecycleState) {
+ is MuxLifecycleState.Dead -> null
+ is MuxLifecycleState.Active -> {
+ state.node.addDownstreamLocked(downstream)
+ ActivationResult(
+ connection = NodeConnection(state.node, state.node),
+ needsEval = state.node.hasCurrentValueLocked(evalScope.transactionStore),
+ )
+ }
+ is MuxLifecycleState.Inactive -> {
+ state.spec
+ .activate(evalScope, this@MuxLifecycle)
+ .also { node ->
+ lifecycleState =
+ if (node == null) {
+ MuxLifecycleState.Dead
+ } else {
+ MuxLifecycleState.Active(node)
+ }
+ }
+ ?.let { node ->
+ node.addDownstreamLocked(downstream)
+ ActivationResult(
+ connection = NodeConnection(node, node),
+ needsEval = false,
+ )
+ }
+ }
+ }
+ }
+}
+
+internal sealed interface MuxLifecycleState<out A> {
+ class Inactive<A>(val spec: MuxActivator<A>) : MuxLifecycleState<A> {
+ override fun toString(): String = "Inactive"
+ }
+
+ class Active<A>(val node: MuxNode<*, *, A>) : MuxLifecycleState<A> {
+ override fun toString(): String = "Active(node=$node)"
+ }
+
+ data object Dead : MuxLifecycleState<Nothing>
+}
+
+internal interface MuxActivator<A> {
+ suspend fun activate(evalScope: EvalScope, lifecycle: MuxLifecycle<A>): MuxNode<*, *, A>?
+}
+
+internal inline fun <A> MuxLifecycle(onSubscribe: MuxActivator<A>): TFlowImpl<A> =
+ MuxLifecycle(MuxLifecycleState.Inactive(onSubscribe))
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/MuxDeferred.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/MuxDeferred.kt
new file mode 100644
index 000000000000..6d43285c9ef5
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/MuxDeferred.kt
@@ -0,0 +1,473 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.internal.util.Key
+import com.android.systemui.experimental.frp.internal.util.associateByIndexTo
+import com.android.systemui.experimental.frp.internal.util.hashString
+import com.android.systemui.experimental.frp.internal.util.mapParallel
+import com.android.systemui.experimental.frp.internal.util.mapValuesNotNullParallelTo
+import com.android.systemui.experimental.frp.util.Just
+import com.android.systemui.experimental.frp.util.Left
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.None
+import com.android.systemui.experimental.frp.util.Right
+import com.android.systemui.experimental.frp.util.These
+import com.android.systemui.experimental.frp.util.flatMap
+import com.android.systemui.experimental.frp.util.getMaybe
+import com.android.systemui.experimental.frp.util.just
+import com.android.systemui.experimental.frp.util.maybeThat
+import com.android.systemui.experimental.frp.util.maybeThis
+import com.android.systemui.experimental.frp.util.merge
+import com.android.systemui.experimental.frp.util.orElseGet
+import com.android.systemui.experimental.frp.util.partitionEithers
+import com.android.systemui.experimental.frp.util.these
+import java.util.TreeMap
+import kotlinx.coroutines.coroutineScope
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.sync.withLock
+
+internal class MuxDeferredNode<K : Any, V>(
+ lifecycle: MuxLifecycle<Map<K, V>>,
+ val spec: MuxActivator<Map<K, V>>,
+) : MuxNode<K, V, Map<K, V>>(lifecycle), Key<Map<K, V>> {
+
+ val schedulable = Schedulable.M(this)
+
+ @Volatile var patches: NodeConnection<Map<K, Maybe<TFlowImpl<V>>>>? = null
+ @Volatile var patchData: Map<K, Maybe<TFlowImpl<V>>>? = null
+
+ override fun hasCurrentValueLocked(transactionStore: TransactionStore): Boolean =
+ transactionStore.contains(this)
+
+ override suspend fun hasCurrentValue(transactionStore: TransactionStore): Boolean =
+ mutex.withLock { hasCurrentValueLocked(transactionStore) }
+
+ override suspend fun visit(evalScope: EvalScope) {
+ val result = upstreamData.toMap()
+ upstreamData.clear()
+ val scheduleDownstream = result.isNotEmpty()
+ val compactDownstream = depthTracker.isDirty()
+ if (scheduleDownstream || compactDownstream) {
+ coroutineScope {
+ mutex.withLock {
+ if (compactDownstream) {
+ depthTracker.applyChanges(
+ coroutineScope = this,
+ evalScope.scheduler,
+ downstreamSet,
+ muxNode = this@MuxDeferredNode,
+ )
+ }
+ if (scheduleDownstream) {
+ evalScope.setResult(this@MuxDeferredNode, result)
+ if (!scheduleAll(downstreamSet, evalScope)) {
+ evalScope.scheduleDeactivation(this@MuxDeferredNode)
+ }
+ }
+ }
+ }
+ }
+ }
+
+ override suspend fun getPushEvent(evalScope: EvalScope): Maybe<Map<K, V>> =
+ evalScope.getCurrentValue(key = this)
+
+ private suspend fun compactIfNeeded(evalScope: EvalScope) {
+ depthTracker.propagateChanges(evalScope.compactor, this)
+ }
+
+ override suspend fun doDeactivate() {
+ // Update lifecycle
+ lifecycle.mutex.withLock {
+ if (lifecycle.lifecycleState !is MuxLifecycleState.Active) return@doDeactivate
+ lifecycle.lifecycleState = MuxLifecycleState.Inactive(spec)
+ }
+ // Process branch nodes
+ coroutineScope {
+ switchedIn.values.forEach { branchNode ->
+ branchNode.upstream.let {
+ launch { it.removeDownstreamAndDeactivateIfNeeded(branchNode.schedulable) }
+ }
+ }
+ }
+ // Process patch node
+ patches?.removeDownstreamAndDeactivateIfNeeded(schedulable)
+ }
+
+ // MOVE phase
+ // - concurrent moves may be occurring, but no more evals. all depth recalculations are
+ // deferred to the end of this phase.
+ suspend fun performMove(evalScope: EvalScope) {
+ val patch = patchData ?: return
+ patchData = null
+
+ // TODO: this logic is very similar to what's in MuxPromptMoving, maybe turn into an inline
+ // fun?
+
+ // We have a patch, process additions/updates and removals
+ val (adds, removes) =
+ patch
+ .asSequence()
+ .map { (k, newUpstream: Maybe<TFlowImpl<V>>) ->
+ when (newUpstream) {
+ is Just -> Left(k to newUpstream.value)
+ None -> Right(k)
+ }
+ }
+ .partitionEithers()
+
+ val severed = mutableListOf<NodeConnection<*>>()
+
+ coroutineScope {
+ // remove and sever
+ removes.forEach { k ->
+ switchedIn.remove(k)?.let { branchNode: MuxBranchNode<K, V> ->
+ val conn = branchNode.upstream
+ severed.add(conn)
+ launch { conn.removeDownstream(downstream = branchNode.schedulable) }
+ depthTracker.removeDirectUpstream(conn.depthTracker.snapshotDirectDepth)
+ }
+ }
+
+ // add or replace
+ adds
+ .mapParallel { (k, newUpstream: TFlowImpl<V>) ->
+ val branchNode = MuxBranchNode(this@MuxDeferredNode, k)
+ k to
+ newUpstream.activate(evalScope, branchNode.schedulable)?.let { (conn, _) ->
+ branchNode.apply { upstream = conn }
+ }
+ }
+ .forEach { (k, newBranch: MuxBranchNode<K, V>?) ->
+ // remove old and sever, if present
+ switchedIn.remove(k)?.let { branchNode ->
+ val conn = branchNode.upstream
+ severed.add(conn)
+ launch { conn.removeDownstream(downstream = branchNode.schedulable) }
+ depthTracker.removeDirectUpstream(conn.depthTracker.snapshotDirectDepth)
+ }
+
+ // add new
+ newBranch?.let {
+ switchedIn[k] = newBranch
+ val branchDepthTracker = newBranch.upstream.depthTracker
+ if (branchDepthTracker.snapshotIsDirect) {
+ depthTracker.addDirectUpstream(
+ oldDepth = null,
+ newDepth = branchDepthTracker.snapshotDirectDepth,
+ )
+ } else {
+ depthTracker.addIndirectUpstream(
+ oldDepth = null,
+ newDepth = branchDepthTracker.snapshotIndirectDepth,
+ )
+ depthTracker.updateIndirectRoots(
+ additions = branchDepthTracker.snapshotIndirectRoots,
+ butNot = this@MuxDeferredNode,
+ )
+ }
+ }
+ }
+ }
+
+ coroutineScope {
+ for (severedNode in severed) {
+ launch { severedNode.scheduleDeactivationIfNeeded(evalScope) }
+ }
+ }
+
+ compactIfNeeded(evalScope)
+ }
+
+ suspend fun removeDirectPatchNode(scheduler: Scheduler) {
+ mutex.withLock {
+ if (
+ depthTracker.removeIndirectUpstream(depth = 0) or
+ depthTracker.setIsIndirectRoot(false)
+ ) {
+ depthTracker.schedule(scheduler, this)
+ }
+ patches = null
+ }
+ }
+
+ suspend fun removeIndirectPatchNode(
+ scheduler: Scheduler,
+ depth: Int,
+ indirectSet: Set<MuxDeferredNode<*, *>>,
+ ) {
+ // indirectly connected patches forward the indirectSet
+ mutex.withLock {
+ if (
+ depthTracker.updateIndirectRoots(removals = indirectSet) or
+ depthTracker.removeIndirectUpstream(depth)
+ ) {
+ depthTracker.schedule(scheduler, this)
+ }
+ patches = null
+ }
+ }
+
+ suspend fun moveIndirectPatchNodeToDirect(
+ scheduler: Scheduler,
+ oldIndirectDepth: Int,
+ oldIndirectSet: Set<MuxDeferredNode<*, *>>,
+ ) {
+ // directly connected patches are stored as an indirect singleton set of the patchNode
+ mutex.withLock {
+ if (
+ depthTracker.updateIndirectRoots(removals = oldIndirectSet) or
+ depthTracker.removeIndirectUpstream(oldIndirectDepth) or
+ depthTracker.setIsIndirectRoot(true)
+ ) {
+ depthTracker.schedule(scheduler, this)
+ }
+ }
+ }
+
+ suspend fun moveDirectPatchNodeToIndirect(
+ scheduler: Scheduler,
+ newIndirectDepth: Int,
+ newIndirectSet: Set<MuxDeferredNode<*, *>>,
+ ) {
+ // indirectly connected patches forward the indirectSet
+ mutex.withLock {
+ if (
+ depthTracker.setIsIndirectRoot(false) or
+ depthTracker.updateIndirectRoots(additions = newIndirectSet, butNot = this) or
+ depthTracker.addIndirectUpstream(oldDepth = null, newDepth = newIndirectDepth)
+ ) {
+ depthTracker.schedule(scheduler, this)
+ }
+ }
+ }
+
+ suspend fun adjustIndirectPatchNode(
+ scheduler: Scheduler,
+ oldDepth: Int,
+ newDepth: Int,
+ removals: Set<MuxDeferredNode<*, *>>,
+ additions: Set<MuxDeferredNode<*, *>>,
+ ) {
+ // indirectly connected patches forward the indirectSet
+ mutex.withLock {
+ if (
+ depthTracker.updateIndirectRoots(
+ additions = additions,
+ removals = removals,
+ butNot = this,
+ ) or depthTracker.addIndirectUpstream(oldDepth = oldDepth, newDepth = newDepth)
+ ) {
+ depthTracker.schedule(scheduler, this)
+ }
+ }
+ }
+
+ suspend fun scheduleMover(evalScope: EvalScope) {
+ patchData =
+ checkNotNull(patches) { "mux mover scheduled with unset patches upstream node" }
+ .getPushEvent(evalScope)
+ .orElseGet { null }
+ evalScope.scheduleMuxMover(this)
+ }
+
+ override fun toString(): String = "${this::class.simpleName}@$hashString"
+}
+
+internal inline fun <A> switchDeferredImplSingle(
+ crossinline getStorage: suspend EvalScope.() -> TFlowImpl<A>,
+ crossinline getPatches: suspend EvalScope.() -> TFlowImpl<TFlowImpl<A>>,
+): TFlowImpl<A> =
+ mapImpl({
+ switchDeferredImpl(
+ getStorage = { mapOf(Unit to getStorage()) },
+ getPatches = { mapImpl(getPatches) { newFlow -> mapOf(Unit to just(newFlow)) } },
+ )
+ }) { map ->
+ map.getValue(Unit)
+ }
+
+internal fun <K : Any, A> switchDeferredImpl(
+ getStorage: suspend EvalScope.() -> Map<K, TFlowImpl<A>>,
+ getPatches: suspend EvalScope.() -> TFlowImpl<Map<K, Maybe<TFlowImpl<A>>>>,
+): TFlowImpl<Map<K, A>> =
+ MuxLifecycle(
+ object : MuxActivator<Map<K, A>> {
+ override suspend fun activate(
+ evalScope: EvalScope,
+ lifecycle: MuxLifecycle<Map<K, A>>,
+ ): MuxNode<*, *, Map<K, A>>? {
+ val storage: Map<K, TFlowImpl<A>> = getStorage(evalScope)
+ // Initialize mux node and switched-in connections.
+ val muxNode =
+ MuxDeferredNode(lifecycle, this).apply {
+ storage.mapValuesNotNullParallelTo(switchedIn) { (key, flow) ->
+ val branchNode = MuxBranchNode(this@apply, key)
+ flow.activate(evalScope, branchNode.schedulable)?.let {
+ (conn, needsEval) ->
+ branchNode
+ .apply { upstream = conn }
+ .also {
+ if (needsEval) {
+ val result = conn.getPushEvent(evalScope)
+ if (result is Just) {
+ upstreamData[key] = result.value
+ }
+ }
+ }
+ }
+ }
+ }
+ // Update depth based on all initial switched-in nodes.
+ muxNode.switchedIn.values.forEach { branch ->
+ val conn = branch.upstream
+ if (conn.depthTracker.snapshotIsDirect) {
+ muxNode.depthTracker.addDirectUpstream(
+ oldDepth = null,
+ newDepth = conn.depthTracker.snapshotDirectDepth,
+ )
+ } else {
+ muxNode.depthTracker.addIndirectUpstream(
+ oldDepth = null,
+ newDepth = conn.depthTracker.snapshotIndirectDepth,
+ )
+ muxNode.depthTracker.updateIndirectRoots(
+ additions = conn.depthTracker.snapshotIndirectRoots,
+ butNot = muxNode,
+ )
+ }
+ }
+ // We don't have our patches connection established yet, so for now pretend we have
+ // a direct connection to patches. We will update downstream nodes later if this
+ // turns out to be a lie.
+ muxNode.depthTracker.setIsIndirectRoot(true)
+ muxNode.depthTracker.reset()
+
+ // Setup patches connection; deferring allows for a recursive connection, where
+ // muxNode is downstream of itself via patches.
+ var isIndirect = true
+ evalScope.deferAction {
+ val (patchesConn, needsEval) =
+ getPatches(evalScope).activate(evalScope, downstream = muxNode.schedulable)
+ ?: run {
+ isIndirect = false
+ // Turns out we can't connect to patches, so update our depth and
+ // propagate
+ muxNode.mutex.withLock {
+ if (muxNode.depthTracker.setIsIndirectRoot(false)) {
+ muxNode.depthTracker.schedule(evalScope.scheduler, muxNode)
+ }
+ }
+ return@deferAction
+ }
+ muxNode.patches = patchesConn
+
+ if (!patchesConn.schedulerUpstream.depthTracker.snapshotIsDirect) {
+ // Turns out patches is indirect, so we are not a root. Update depth and
+ // propagate.
+ muxNode.mutex.withLock {
+ if (
+ muxNode.depthTracker.setIsIndirectRoot(false) or
+ muxNode.depthTracker.addIndirectUpstream(
+ oldDepth = null,
+ newDepth = patchesConn.depthTracker.snapshotIndirectDepth,
+ ) or
+ muxNode.depthTracker.updateIndirectRoots(
+ additions = patchesConn.depthTracker.snapshotIndirectRoots
+ )
+ ) {
+ muxNode.depthTracker.schedule(evalScope.scheduler, muxNode)
+ }
+ }
+ }
+ // Schedule mover to process patch emission at the end of this transaction, if
+ // needed.
+ if (needsEval) {
+ val result = patchesConn.getPushEvent(evalScope)
+ if (result is Just) {
+ muxNode.patchData = result.value
+ evalScope.scheduleMuxMover(muxNode)
+ }
+ }
+ }
+
+ // Schedule for evaluation if any switched-in nodes have already emitted within
+ // this transaction.
+ if (muxNode.upstreamData.isNotEmpty()) {
+ evalScope.schedule(muxNode)
+ }
+ return muxNode.takeUnless { muxNode.switchedIn.isEmpty() && !isIndirect }
+ }
+ }
+ )
+
+internal inline fun <A> mergeNodes(
+ crossinline getPulse: suspend EvalScope.() -> TFlowImpl<A>,
+ crossinline getOther: suspend EvalScope.() -> TFlowImpl<A>,
+ crossinline f: suspend EvalScope.(A, A) -> A,
+): TFlowImpl<A> {
+ val merged =
+ mapImpl({ mergeNodes(getPulse, getOther) }) { these ->
+ these.merge { thiz, that -> f(thiz, that) }
+ }
+ return merged.cached()
+}
+
+internal inline fun <A, B> mergeNodes(
+ crossinline getPulse: suspend EvalScope.() -> TFlowImpl<A>,
+ crossinline getOther: suspend EvalScope.() -> TFlowImpl<B>,
+): TFlowImpl<These<A, B>> {
+ val storage =
+ mapOf(
+ 0 to mapImpl(getPulse) { These.thiz<A, B>(it) },
+ 1 to mapImpl(getOther) { These.that(it) },
+ )
+ val switchNode = switchDeferredImpl(getStorage = { storage }, getPatches = { neverImpl })
+ val merged =
+ mapImpl({ switchNode }) { mergeResults ->
+ val first = mergeResults.getMaybe(0).flatMap { it.maybeThis() }
+ val second = mergeResults.getMaybe(1).flatMap { it.maybeThat() }
+ these(first, second).orElseGet { error("unexpected missing merge result") }
+ }
+ return merged.cached()
+}
+
+internal inline fun <A> mergeNodes(
+ crossinline getPulses: suspend EvalScope.() -> Iterable<TFlowImpl<A>>
+): TFlowImpl<List<A>> {
+ val switchNode =
+ switchDeferredImpl(
+ getStorage = { getPulses().associateByIndexTo(TreeMap()) },
+ getPatches = { neverImpl },
+ )
+ val merged = mapImpl({ switchNode }) { mergeResults -> mergeResults.values.toList() }
+ return merged.cached()
+}
+
+internal inline fun <A> mergeNodesLeft(
+ crossinline getPulses: suspend EvalScope.() -> Iterable<TFlowImpl<A>>
+): TFlowImpl<A> {
+ val switchNode =
+ switchDeferredImpl(
+ getStorage = { getPulses().associateByIndexTo(TreeMap()) },
+ getPatches = { neverImpl },
+ )
+ val merged =
+ mapImpl({ switchNode }) { mergeResults: Map<Int, A> -> mergeResults.values.first() }
+ return merged.cached()
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/MuxPrompt.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/MuxPrompt.kt
new file mode 100644
index 000000000000..ea0c1501f6a4
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/MuxPrompt.kt
@@ -0,0 +1,472 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.internal.util.Key
+import com.android.systemui.experimental.frp.internal.util.launchImmediate
+import com.android.systemui.experimental.frp.internal.util.mapParallel
+import com.android.systemui.experimental.frp.internal.util.mapValuesNotNullParallelTo
+import com.android.systemui.experimental.frp.util.Just
+import com.android.systemui.experimental.frp.util.Left
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.None
+import com.android.systemui.experimental.frp.util.Right
+import com.android.systemui.experimental.frp.util.filterJust
+import com.android.systemui.experimental.frp.util.map
+import com.android.systemui.experimental.frp.util.partitionEithers
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.async
+import kotlinx.coroutines.awaitAll
+import kotlinx.coroutines.coroutineScope
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.sync.withLock
+
+internal class MuxPromptMovingNode<K : Any, V>(
+ lifecycle: MuxLifecycle<Pair<Map<K, V>, Map<K, PullNode<V>>?>>,
+ private val spec: MuxActivator<Pair<Map<K, V>, Map<K, PullNode<V>>?>>,
+) :
+ MuxNode<K, V, Pair<Map<K, V>, Map<K, PullNode<V>>?>>(lifecycle),
+ Key<Pair<Map<K, V>, Map<K, PullNode<V>>?>> {
+
+ @Volatile var patchData: Map<K, Maybe<TFlowImpl<V>>>? = null
+ @Volatile var patches: MuxPromptPatchNode<K, V>? = null
+
+ @Volatile private var reEval: Pair<Map<K, V>, Map<K, PullNode<V>>?>? = null
+
+ override fun hasCurrentValueLocked(transactionStore: TransactionStore): Boolean =
+ transactionStore.contains(this)
+
+ override suspend fun hasCurrentValue(transactionStore: TransactionStore): Boolean =
+ mutex.withLock { hasCurrentValueLocked(transactionStore) }
+
+ override suspend fun visit(evalScope: EvalScope) {
+ val preSwitchResults: Map<K, V> = upstreamData.toMap()
+ upstreamData.clear()
+
+ val patch: Map<K, Maybe<TFlowImpl<V>>>? = patchData
+ patchData = null
+
+ val (reschedule, evalResult) =
+ reEval?.let { false to it }
+ ?: if (preSwitchResults.isNotEmpty() || patch?.isNotEmpty() == true) {
+ doEval(preSwitchResults, patch, evalScope)
+ } else {
+ false to null
+ }
+ reEval = null
+
+ if (reschedule || depthTracker.dirty_depthIncreased()) {
+ reEval = evalResult
+ // Can't schedule downstream yet, need to compact first
+ if (depthTracker.dirty_depthIncreased()) {
+ depthTracker.schedule(evalScope.compactor, node = this)
+ }
+ evalScope.schedule(this)
+ } else {
+ val compactDownstream = depthTracker.isDirty()
+ if (evalResult != null || compactDownstream) {
+ coroutineScope {
+ mutex.withLock {
+ if (compactDownstream) {
+ adjustDownstreamDepths(evalScope, coroutineScope = this)
+ }
+ if (evalResult != null) {
+ evalScope.setResult(this@MuxPromptMovingNode, evalResult)
+ if (!scheduleAll(downstreamSet, evalScope)) {
+ evalScope.scheduleDeactivation(this@MuxPromptMovingNode)
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private suspend fun doEval(
+ preSwitchResults: Map<K, V>,
+ patch: Map<K, Maybe<TFlowImpl<V>>>?,
+ evalScope: EvalScope,
+ ): Pair<Boolean, Pair<Map<K, V>, Map<K, PullNode<V>>?>?> {
+ val newlySwitchedIn: Map<K, PullNode<V>>? =
+ patch?.let {
+ // We have a patch, process additions/updates and removals
+ val (adds, removes) =
+ patch
+ .asSequence()
+ .map { (k, newUpstream: Maybe<TFlowImpl<V>>) ->
+ when (newUpstream) {
+ is Just -> Left(k to newUpstream.value)
+ None -> Right(k)
+ }
+ }
+ .partitionEithers()
+
+ val additionsAndUpdates = mutableMapOf<K, PullNode<V>>()
+ val severed = mutableListOf<NodeConnection<*>>()
+
+ coroutineScope {
+ // remove and sever
+ removes.forEach { k ->
+ switchedIn.remove(k)?.let { branchNode: MuxBranchNode<K, V> ->
+ val conn: NodeConnection<V> = branchNode.upstream
+ severed.add(conn)
+ launchImmediate {
+ conn.removeDownstream(downstream = branchNode.schedulable)
+ }
+ depthTracker.removeDirectUpstream(conn.depthTracker.snapshotDirectDepth)
+ }
+ }
+
+ // add or replace
+ adds
+ .mapParallel { (k, newUpstream: TFlowImpl<V>) ->
+ val branchNode = MuxBranchNode(this@MuxPromptMovingNode, k)
+ k to
+ newUpstream.activate(evalScope, branchNode.schedulable)?.let {
+ (conn, _) ->
+ branchNode.apply { upstream = conn }
+ }
+ }
+ .forEach { (k, newBranch: MuxBranchNode<K, V>?) ->
+ // remove old and sever, if present
+ switchedIn.remove(k)?.let { oldBranch: MuxBranchNode<K, V> ->
+ val conn: NodeConnection<V> = oldBranch.upstream
+ severed.add(conn)
+ launchImmediate {
+ conn.removeDownstream(downstream = oldBranch.schedulable)
+ }
+ depthTracker.removeDirectUpstream(
+ conn.depthTracker.snapshotDirectDepth
+ )
+ }
+
+ // add new
+ newBranch?.let {
+ switchedIn[k] = newBranch
+ additionsAndUpdates[k] = newBranch.upstream.directUpstream
+ val branchDepthTracker = newBranch.upstream.depthTracker
+ if (branchDepthTracker.snapshotIsDirect) {
+ depthTracker.addDirectUpstream(
+ oldDepth = null,
+ newDepth = branchDepthTracker.snapshotDirectDepth,
+ )
+ } else {
+ depthTracker.addIndirectUpstream(
+ oldDepth = null,
+ newDepth = branchDepthTracker.snapshotIndirectDepth,
+ )
+ depthTracker.updateIndirectRoots(
+ additions = branchDepthTracker.snapshotIndirectRoots,
+ butNot = null,
+ )
+ }
+ }
+ }
+ }
+
+ coroutineScope {
+ for (severedNode in severed) {
+ launch { severedNode.scheduleDeactivationIfNeeded(evalScope) }
+ }
+ }
+
+ additionsAndUpdates.takeIf { it.isNotEmpty() }
+ }
+
+ return if (preSwitchResults.isNotEmpty() || newlySwitchedIn != null) {
+ (newlySwitchedIn != null) to (preSwitchResults to newlySwitchedIn)
+ } else {
+ false to null
+ }
+ }
+
+ private suspend fun adjustDownstreamDepths(
+ evalScope: EvalScope,
+ coroutineScope: CoroutineScope,
+ ) {
+ if (depthTracker.dirty_depthIncreased()) {
+ // schedule downstream nodes on the compaction scheduler; this scheduler is drained at
+ // the end of this eval depth, so that all depth increases are applied before we advance
+ // the eval step
+ depthTracker.schedule(evalScope.compactor, node = this@MuxPromptMovingNode)
+ } else if (depthTracker.isDirty()) {
+ // schedule downstream nodes on the eval scheduler; this is more efficient and is only
+ // safe if the depth hasn't increased
+ depthTracker.applyChanges(
+ coroutineScope,
+ evalScope.scheduler,
+ downstreamSet,
+ muxNode = this@MuxPromptMovingNode,
+ )
+ }
+ }
+
+ override suspend fun getPushEvent(
+ evalScope: EvalScope
+ ): Maybe<Pair<Map<K, V>, Map<K, PullNode<V>>?>> = evalScope.getCurrentValue(key = this)
+
+ override suspend fun doDeactivate() {
+ // Update lifecycle
+ lifecycle.mutex.withLock {
+ if (lifecycle.lifecycleState !is MuxLifecycleState.Active) return@doDeactivate
+ lifecycle.lifecycleState = MuxLifecycleState.Inactive(spec)
+ }
+ // Process branch nodes
+ switchedIn.values.forEach { branchNode ->
+ branchNode.upstream.removeDownstreamAndDeactivateIfNeeded(
+ downstream = branchNode.schedulable
+ )
+ }
+ // Process patch node
+ patches?.let { patches ->
+ patches.upstream.removeDownstreamAndDeactivateIfNeeded(downstream = patches.schedulable)
+ }
+ }
+
+ suspend fun removeIndirectPatchNode(
+ scheduler: Scheduler,
+ oldDepth: Int,
+ indirectSet: Set<MuxDeferredNode<*, *>>,
+ ) {
+ mutex.withLock {
+ patches = null
+ if (
+ depthTracker.removeIndirectUpstream(oldDepth) or
+ depthTracker.updateIndirectRoots(removals = indirectSet)
+ ) {
+ depthTracker.schedule(scheduler, this)
+ }
+ }
+ }
+
+ suspend fun removeDirectPatchNode(scheduler: Scheduler, depth: Int) {
+ mutex.withLock {
+ patches = null
+ if (depthTracker.removeDirectUpstream(depth)) {
+ depthTracker.schedule(scheduler, this)
+ }
+ }
+ }
+}
+
+internal class MuxPromptEvalNode<K, V>(
+ private val movingNode: PullNode<Pair<Map<K, V>, Map<K, PullNode<V>>?>>
+) : PullNode<Map<K, V>> {
+ override suspend fun getPushEvent(evalScope: EvalScope): Maybe<Map<K, V>> =
+ movingNode.getPushEvent(evalScope).map { (preSwitchResults, newlySwitchedIn) ->
+ coroutineScope {
+ newlySwitchedIn
+ ?.map { (k, v) -> async { v.getPushEvent(evalScope).map { k to it } } }
+ ?.awaitAll()
+ ?.asSequence()
+ ?.filterJust()
+ ?.toMap(preSwitchResults.toMutableMap()) ?: preSwitchResults
+ }
+ }
+}
+
+// TODO: inner class?
+internal class MuxPromptPatchNode<K : Any, V>(private val muxNode: MuxPromptMovingNode<K, V>) :
+ SchedulableNode {
+
+ val schedulable = Schedulable.N(this)
+
+ lateinit var upstream: NodeConnection<Map<K, Maybe<TFlowImpl<V>>>>
+
+ override suspend fun schedule(evalScope: EvalScope) {
+ val upstreamResult = upstream.getPushEvent(evalScope)
+ if (upstreamResult is Just) {
+ muxNode.patchData = upstreamResult.value
+ evalScope.schedule(muxNode)
+ }
+ }
+
+ override suspend fun adjustDirectUpstream(scheduler: Scheduler, oldDepth: Int, newDepth: Int) {
+ muxNode.adjustDirectUpstream(scheduler, oldDepth, newDepth)
+ }
+
+ override suspend fun moveIndirectUpstreamToDirect(
+ scheduler: Scheduler,
+ oldIndirectDepth: Int,
+ oldIndirectSet: Set<MuxDeferredNode<*, *>>,
+ newDirectDepth: Int,
+ ) {
+ muxNode.moveIndirectUpstreamToDirect(
+ scheduler,
+ oldIndirectDepth,
+ oldIndirectSet,
+ newDirectDepth,
+ )
+ }
+
+ override suspend fun adjustIndirectUpstream(
+ scheduler: Scheduler,
+ oldDepth: Int,
+ newDepth: Int,
+ removals: Set<MuxDeferredNode<*, *>>,
+ additions: Set<MuxDeferredNode<*, *>>,
+ ) {
+ muxNode.adjustIndirectUpstream(scheduler, oldDepth, newDepth, removals, additions)
+ }
+
+ override suspend fun moveDirectUpstreamToIndirect(
+ scheduler: Scheduler,
+ oldDirectDepth: Int,
+ newIndirectDepth: Int,
+ newIndirectSet: Set<MuxDeferredNode<*, *>>,
+ ) {
+ muxNode.moveDirectUpstreamToIndirect(
+ scheduler,
+ oldDirectDepth,
+ newIndirectDepth,
+ newIndirectSet,
+ )
+ }
+
+ override suspend fun removeDirectUpstream(scheduler: Scheduler, depth: Int) {
+ muxNode.removeDirectPatchNode(scheduler, depth)
+ }
+
+ override suspend fun removeIndirectUpstream(
+ scheduler: Scheduler,
+ depth: Int,
+ indirectSet: Set<MuxDeferredNode<*, *>>,
+ ) {
+ muxNode.removeIndirectPatchNode(scheduler, depth, indirectSet)
+ }
+}
+
+internal fun <K : Any, A> switchPromptImpl(
+ getStorage: suspend EvalScope.() -> Map<K, TFlowImpl<A>>,
+ getPatches: suspend EvalScope.() -> TFlowImpl<Map<K, Maybe<TFlowImpl<A>>>>,
+): TFlowImpl<Map<K, A>> {
+ val moving =
+ MuxLifecycle(
+ object : MuxActivator<Pair<Map<K, A>, Map<K, PullNode<A>>?>> {
+ override suspend fun activate(
+ evalScope: EvalScope,
+ lifecycle: MuxLifecycle<Pair<Map<K, A>, Map<K, PullNode<A>>?>>,
+ ): MuxNode<*, *, Pair<Map<K, A>, Map<K, PullNode<A>>?>>? {
+ val storage: Map<K, TFlowImpl<A>> = getStorage(evalScope)
+ // Initialize mux node and switched-in connections.
+ val movingNode =
+ MuxPromptMovingNode(lifecycle, this).apply {
+ coroutineScope {
+ launch {
+ storage.mapValuesNotNullParallelTo(switchedIn) { (key, flow) ->
+ val branchNode = MuxBranchNode(this@apply, key)
+ flow
+ .activate(
+ evalScope = evalScope,
+ downstream = branchNode.schedulable,
+ )
+ ?.let { (conn, needsEval) ->
+ branchNode
+ .apply { upstream = conn }
+ .also {
+ if (needsEval) {
+ val result =
+ conn.getPushEvent(evalScope)
+ if (result is Just) {
+ upstreamData[key] = result.value
+ }
+ }
+ }
+ }
+ }
+ }
+ // Setup patches connection
+ val patchNode = MuxPromptPatchNode(this@apply)
+ getPatches(evalScope)
+ .activate(
+ evalScope = evalScope,
+ downstream = patchNode.schedulable,
+ )
+ ?.let { (conn, needsEval) ->
+ patchNode.upstream = conn
+ patches = patchNode
+
+ if (needsEval) {
+ val result = conn.getPushEvent(evalScope)
+ if (result is Just) {
+ patchData = result.value
+ }
+ }
+ }
+ }
+ }
+ // Update depth based on all initial switched-in nodes.
+ movingNode.switchedIn.values.forEach { branch ->
+ val conn = branch.upstream
+ if (conn.depthTracker.snapshotIsDirect) {
+ movingNode.depthTracker.addDirectUpstream(
+ oldDepth = null,
+ newDepth = conn.depthTracker.snapshotDirectDepth,
+ )
+ } else {
+ movingNode.depthTracker.addIndirectUpstream(
+ oldDepth = null,
+ newDepth = conn.depthTracker.snapshotIndirectDepth,
+ )
+ movingNode.depthTracker.updateIndirectRoots(
+ additions = conn.depthTracker.snapshotIndirectRoots,
+ butNot = null,
+ )
+ }
+ }
+ // Update depth based on patches node.
+ movingNode.patches?.upstream?.let { conn ->
+ if (conn.depthTracker.snapshotIsDirect) {
+ movingNode.depthTracker.addDirectUpstream(
+ oldDepth = null,
+ newDepth = conn.depthTracker.snapshotDirectDepth,
+ )
+ } else {
+ movingNode.depthTracker.addIndirectUpstream(
+ oldDepth = null,
+ newDepth = conn.depthTracker.snapshotIndirectDepth,
+ )
+ movingNode.depthTracker.updateIndirectRoots(
+ additions = conn.depthTracker.snapshotIndirectRoots,
+ butNot = null,
+ )
+ }
+ }
+ movingNode.depthTracker.reset()
+
+ // Schedule for evaluation if any switched-in nodes or the patches node have
+ // already emitted within this transaction.
+ if (movingNode.patchData != null || movingNode.upstreamData.isNotEmpty()) {
+ evalScope.schedule(movingNode)
+ }
+
+ return movingNode.takeUnless { it.patches == null && it.switchedIn.isEmpty() }
+ }
+ }
+ )
+
+ val eval = TFlowCheap { downstream ->
+ moving.activate(evalScope = this, downstream)?.let { (connection, needsEval) ->
+ val evalNode = MuxPromptEvalNode(connection.directUpstream)
+ ActivationResult(
+ connection = NodeConnection(evalNode, connection.schedulerUpstream),
+ needsEval = needsEval,
+ )
+ }
+ }
+ return eval.cached()
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Network.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Network.kt
new file mode 100644
index 000000000000..b5ffe75eb9f4
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Network.kt
@@ -0,0 +1,252 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.TState
+import com.android.systemui.experimental.frp.internal.util.HeteroMap
+import com.android.systemui.experimental.frp.util.Just
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.just
+import com.android.systemui.experimental.frp.util.none
+import java.util.concurrent.ConcurrentHashMap
+import java.util.concurrent.ConcurrentLinkedDeque
+import java.util.concurrent.ConcurrentLinkedQueue
+import java.util.concurrent.atomic.AtomicLong
+import kotlin.coroutines.ContinuationInterceptor
+import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Deferred
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.channels.Channel
+import kotlinx.coroutines.coroutineScope
+import kotlinx.coroutines.job
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.sync.Mutex
+import kotlinx.coroutines.sync.withLock
+import kotlinx.coroutines.yield
+
+private val nextNetworkId = AtomicLong()
+
+internal class Network(val coroutineScope: CoroutineScope) : NetworkScope {
+
+ override val networkId: Any = nextNetworkId.getAndIncrement()
+
+ @Volatile
+ override var epoch: Long = 0L
+ private set
+
+ override val network
+ get() = this
+
+ override val compactor = SchedulerImpl()
+ override val scheduler = SchedulerImpl()
+ override val transactionStore = HeteroMap()
+
+ private val stateWrites = ConcurrentLinkedQueue<TStateSource<*>>()
+ private val outputsByDispatcher =
+ ConcurrentHashMap<ContinuationInterceptor, ConcurrentLinkedQueue<Output<*>>>()
+ private val muxMovers = ConcurrentLinkedQueue<MuxDeferredNode<*, *>>()
+ private val deactivations = ConcurrentLinkedDeque<PushNode<*>>()
+ private val outputDeactivations = ConcurrentLinkedQueue<Output<*>>()
+ private val transactionMutex = Mutex()
+ private val inputScheduleChan = Channel<ScheduledAction<*>>()
+
+ override fun scheduleOutput(output: Output<*>) {
+ val continuationInterceptor =
+ output.context[ContinuationInterceptor] ?: Dispatchers.Unconfined
+ outputsByDispatcher
+ .computeIfAbsent(continuationInterceptor) { ConcurrentLinkedQueue() }
+ .add(output)
+ }
+
+ override fun scheduleMuxMover(muxMover: MuxDeferredNode<*, *>) {
+ muxMovers.add(muxMover)
+ }
+
+ override fun schedule(state: TStateSource<*>) {
+ stateWrites.add(state)
+ }
+
+ // TODO: weird that we have this *and* scheduler exposed
+ override suspend fun schedule(node: MuxNode<*, *, *>) {
+ scheduler.schedule(node.depthTracker.dirty_directDepth, node)
+ }
+
+ override fun scheduleDeactivation(node: PushNode<*>) {
+ deactivations.add(node)
+ }
+
+ override fun scheduleDeactivation(output: Output<*>) {
+ outputDeactivations.add(output)
+ }
+
+ /** Listens for external events and starts FRP transactions. Runs forever. */
+ suspend fun runInputScheduler() = coroutineScope {
+ launch { scheduler.activate() }
+ launch { compactor.activate() }
+ val actions = mutableListOf<ScheduledAction<*>>()
+ for (first in inputScheduleChan) {
+ // Drain and conflate all transaction requests into a single transaction
+ actions.add(first)
+ while (true) {
+ yield()
+ val func = inputScheduleChan.tryReceive().getOrNull() ?: break
+ actions.add(func)
+ }
+ transactionMutex.withLock {
+ // Run all actions
+ evalScope {
+ for (action in actions) {
+ launch { action.started(evalScope = this@evalScope) }
+ }
+ }
+ // Step through the network
+ doTransaction()
+ // Signal completion
+ while (actions.isNotEmpty()) {
+ actions.removeLast().completed()
+ }
+ }
+ }
+ }
+
+ /** Evaluates [block] inside of a new transaction when the network is ready. */
+ fun <R> transaction(block: suspend EvalScope.() -> R): Deferred<R> =
+ CompletableDeferred<R>(parent = coroutineScope.coroutineContext.job).also { onResult ->
+ val job =
+ coroutineScope.launch {
+ inputScheduleChan.send(
+ ScheduledAction(onStartTransaction = block, onResult = onResult)
+ )
+ }
+ onResult.invokeOnCompletion { job.cancel() }
+ }
+
+ suspend fun <R> evalScope(block: suspend EvalScope.() -> R): R = deferScope {
+ block(EvalScopeImpl(this@Network, this))
+ }
+
+ /** Performs a transactional update of the FRP network. */
+ private suspend fun doTransaction() {
+ // Traverse network, then run outputs
+ do {
+ scheduler.drainEval(this)
+ } while (evalScope { evalOutputs(this) })
+ // Update states
+ evalScope { evalStateWriters(this) }
+ transactionStore.clear()
+ // Perform deferred switches
+ evalScope { evalMuxMovers(this) }
+ // Compact depths
+ scheduler.drainCompact()
+ compactor.drainCompact()
+ // Deactivate nodes with no downstream
+ evalDeactivations()
+ epoch++
+ }
+
+ /** Invokes all [Output]s that have received data within this transaction. */
+ private suspend fun evalOutputs(evalScope: EvalScope): Boolean {
+ // Outputs can enqueue other outputs, so we need two loops
+ if (outputsByDispatcher.isEmpty()) return false
+ while (outputsByDispatcher.isNotEmpty()) {
+ var launchedAny = false
+ coroutineScope {
+ for ((key, outputs) in outputsByDispatcher) {
+ if (outputs.isNotEmpty()) {
+ launchedAny = true
+ launch(key) {
+ while (outputs.isNotEmpty()) {
+ val output = outputs.remove()
+ launch { output.visit(evalScope) }
+ }
+ }
+ }
+ }
+ }
+ if (!launchedAny) outputsByDispatcher.clear()
+ }
+ return true
+ }
+
+ private suspend fun evalMuxMovers(evalScope: EvalScope) {
+ while (muxMovers.isNotEmpty()) {
+ coroutineScope {
+ val toMove = muxMovers.remove()
+ launch { toMove.performMove(evalScope) }
+ }
+ }
+ }
+
+ /** Updates all [TState]es that have changed within this transaction. */
+ private suspend fun evalStateWriters(evalScope: EvalScope) {
+ coroutineScope {
+ while (stateWrites.isNotEmpty()) {
+ val latch = stateWrites.remove()
+ launch { latch.updateState(evalScope) }
+ }
+ }
+ }
+
+ private suspend fun evalDeactivations() {
+ coroutineScope {
+ launch {
+ while (deactivations.isNotEmpty()) {
+ // traverse in reverse order
+ // - deactivations are added in depth-order during the node traversal phase
+ // - perform deactivations in reverse order, in case later ones propagate to
+ // earlier ones
+ val toDeactivate = deactivations.removeLast()
+ launch { toDeactivate.deactivateIfNeeded() }
+ }
+ }
+ while (outputDeactivations.isNotEmpty()) {
+ val toDeactivate = outputDeactivations.remove()
+ launch {
+ toDeactivate.upstream?.removeDownstreamAndDeactivateIfNeeded(
+ downstream = toDeactivate.schedulable
+ )
+ }
+ }
+ }
+ check(deactivations.isEmpty()) { "unexpected lingering deactivations" }
+ check(outputDeactivations.isEmpty()) { "unexpected lingering output deactivations" }
+ }
+}
+
+internal class ScheduledAction<T>(
+ private val onResult: CompletableDeferred<T>? = null,
+ private val onStartTransaction: suspend EvalScope.() -> T,
+) {
+ private var result: Maybe<T> = none
+
+ suspend fun started(evalScope: EvalScope) {
+ result = just(onStartTransaction(evalScope))
+ }
+
+ fun completed() {
+ if (onResult != null) {
+ when (val result = result) {
+ is Just -> onResult.complete(result.value)
+ else -> {}
+ }
+ }
+ result = none
+ }
+}
+
+internal typealias TransactionStore = HeteroMap
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/NoScope.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/NoScope.kt
new file mode 100644
index 000000000000..6375918f35cd
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/NoScope.kt
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.FrpScope
+import kotlin.coroutines.Continuation
+import kotlin.coroutines.CoroutineContext
+import kotlin.coroutines.EmptyCoroutineContext
+import kotlin.coroutines.coroutineContext
+import kotlin.coroutines.startCoroutine
+import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.completeWith
+import kotlinx.coroutines.job
+
+internal object NoScope {
+ private object FrpScopeImpl : FrpScope
+
+ suspend fun <R> runInFrpScope(block: suspend FrpScope.() -> R): R {
+ val complete = CompletableDeferred<R>(coroutineContext.job)
+ block.startCoroutine(
+ FrpScopeImpl,
+ object : Continuation<R> {
+ override val context: CoroutineContext
+ get() = EmptyCoroutineContext
+
+ override fun resumeWith(result: Result<R>) {
+ complete.completeWith(result)
+ }
+ },
+ )
+ return complete.await()
+ }
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/NodeTypes.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/NodeTypes.kt
new file mode 100644
index 000000000000..e7f76a08b638
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/NodeTypes.kt
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.util.Maybe
+
+/*
+Dmux
+Muxes + Branch
+*/
+internal sealed interface SchedulableNode {
+ /** schedule this node w/ given NodeEvalScope */
+ suspend fun schedule(evalScope: EvalScope)
+
+ suspend fun adjustDirectUpstream(scheduler: Scheduler, oldDepth: Int, newDepth: Int)
+
+ suspend fun moveIndirectUpstreamToDirect(
+ scheduler: Scheduler,
+ oldIndirectDepth: Int,
+ oldIndirectSet: Set<MuxDeferredNode<*, *>>,
+ newDirectDepth: Int,
+ )
+
+ suspend fun adjustIndirectUpstream(
+ scheduler: Scheduler,
+ oldDepth: Int,
+ newDepth: Int,
+ removals: Set<MuxDeferredNode<*, *>>,
+ additions: Set<MuxDeferredNode<*, *>>,
+ )
+
+ suspend fun moveDirectUpstreamToIndirect(
+ scheduler: Scheduler,
+ oldDirectDepth: Int,
+ newIndirectDepth: Int,
+ newIndirectSet: Set<MuxDeferredNode<*, *>>,
+ )
+
+ suspend fun removeIndirectUpstream(
+ scheduler: Scheduler,
+ depth: Int,
+ indirectSet: Set<MuxDeferredNode<*, *>>,
+ )
+
+ suspend fun removeDirectUpstream(scheduler: Scheduler, depth: Int)
+}
+
+/*
+All but Dmux
+ */
+internal sealed interface PullNode<out A> {
+ /**
+ * query the result of this node within the current transaction. if the node is cached, this
+ * will read from the cache, otherwise it will perform a full evaluation, even if invoked
+ * multiple times within a transaction.
+ */
+ suspend fun getPushEvent(evalScope: EvalScope): Maybe<A>
+}
+
+/*
+Muxes + DmuxBranch
+ */
+internal sealed interface PushNode<A> : PullNode<A> {
+
+ suspend fun hasCurrentValue(transactionStore: TransactionStore): Boolean
+
+ val depthTracker: DepthTracker
+
+ suspend fun removeDownstream(downstream: Schedulable)
+
+ /** called during cleanup phase */
+ suspend fun deactivateIfNeeded()
+
+ /** called from mux nodes after severs */
+ suspend fun scheduleDeactivationIfNeeded(evalScope: EvalScope)
+
+ suspend fun addDownstream(downstream: Schedulable)
+
+ suspend fun removeDownstreamAndDeactivateIfNeeded(downstream: Schedulable)
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Output.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Output.kt
new file mode 100644
index 000000000000..e60dccaac392
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Output.kt
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.util.Just
+import kotlin.coroutines.CoroutineContext
+import kotlin.coroutines.EmptyCoroutineContext
+
+internal class Output<A>(
+ val context: CoroutineContext = EmptyCoroutineContext,
+ val onDeath: suspend () -> Unit = {},
+ val onEmit: suspend EvalScope.(A) -> Unit,
+) {
+
+ val schedulable = Schedulable.O(this)
+
+ @Volatile var upstream: NodeConnection<A>? = null
+ @Volatile var result: Any? = NoResult
+
+ private object NoResult
+
+ // invoked by network
+ suspend fun visit(evalScope: EvalScope) {
+ val upstreamResult = result
+ check(upstreamResult !== NoResult) { "output visited with null upstream result" }
+ result = null
+ @Suppress("UNCHECKED_CAST") evalScope.onEmit(upstreamResult as A)
+ }
+
+ suspend fun kill() {
+ onDeath()
+ }
+
+ suspend fun schedule(evalScope: EvalScope) {
+ val upstreamResult =
+ checkNotNull(upstream) { "output scheduled with null upstream" }.getPushEvent(evalScope)
+ if (upstreamResult is Just) {
+ result = upstreamResult.value
+ evalScope.scheduleOutput(this)
+ }
+ }
+}
+
+internal inline fun OneShot(crossinline onEmit: suspend EvalScope.() -> Unit): Output<Unit> =
+ Output<Unit>(onEmit = { onEmit() }).apply { result = Unit }
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/PullNodes.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/PullNodes.kt
new file mode 100644
index 000000000000..b4656e0aee3a
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/PullNodes.kt
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.internal.util.Key
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.map
+import kotlinx.coroutines.CoroutineStart
+import kotlinx.coroutines.Deferred
+
+internal val neverImpl: TFlowImpl<Nothing> = TFlowCheap { null }
+
+internal class MapNode<A, B>(val upstream: PullNode<A>, val transform: suspend EvalScope.(A) -> B) :
+ PullNode<B> {
+ override suspend fun getPushEvent(evalScope: EvalScope): Maybe<B> =
+ upstream.getPushEvent(evalScope).map { evalScope.transform(it) }
+}
+
+internal inline fun <A, B> mapImpl(
+ crossinline upstream: suspend EvalScope.() -> TFlowImpl<A>,
+ noinline transform: suspend EvalScope.(A) -> B,
+): TFlowImpl<B> = TFlowCheap { downstream ->
+ upstream().activate(evalScope = this, downstream)?.let { (connection, needsEval) ->
+ ActivationResult(
+ connection =
+ NodeConnection(
+ directUpstream = MapNode(connection.directUpstream, transform),
+ schedulerUpstream = connection.schedulerUpstream,
+ ),
+ needsEval = needsEval,
+ )
+ }
+}
+
+internal class CachedNode<A>(val key: Key<Deferred<Maybe<A>>>, val upstream: PullNode<A>) :
+ PullNode<A> {
+ override suspend fun getPushEvent(evalScope: EvalScope): Maybe<A> {
+ val deferred =
+ evalScope.transactionStore.getOrPut(key) {
+ evalScope.deferAsync(CoroutineStart.LAZY) { upstream.getPushEvent(evalScope) }
+ }
+ return deferred.await()
+ }
+}
+
+internal fun <A> TFlowImpl<A>.cached(): TFlowImpl<A> {
+ val key = object : Key<Deferred<Maybe<A>>> {}
+ return TFlowCheap {
+ activate(this, it)?.let { (connection, needsEval) ->
+ ActivationResult(
+ connection =
+ NodeConnection(
+ directUpstream = CachedNode(key, connection.directUpstream),
+ schedulerUpstream = connection.schedulerUpstream,
+ ),
+ needsEval = needsEval,
+ )
+ }
+ }
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Scheduler.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Scheduler.kt
new file mode 100644
index 000000000000..4fef865e87e7
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Scheduler.kt
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@file:OptIn(ExperimentalCoroutinesApi::class)
+
+package com.android.systemui.experimental.frp.internal
+
+import java.util.concurrent.ConcurrentHashMap
+import java.util.concurrent.PriorityBlockingQueue
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.channels.Channel
+import kotlinx.coroutines.coroutineScope
+import kotlinx.coroutines.launch
+
+internal interface Scheduler {
+ suspend fun schedule(depth: Int, node: MuxNode<*, *, *>)
+
+ suspend fun scheduleIndirect(indirectDepth: Int, node: MuxNode<*, *, *>)
+}
+
+internal class SchedulerImpl : Scheduler {
+ val enqueued = ConcurrentHashMap<MuxNode<*, *, *>, Any>()
+ val scheduledQ = PriorityBlockingQueue<Pair<Int, MuxNode<*, *, *>>>(16, compareBy { it.first })
+ val chan = Channel<Pair<Int, MuxNode<*, *, *>>>(Channel.UNLIMITED)
+
+ override suspend fun schedule(depth: Int, node: MuxNode<*, *, *>) {
+ if (enqueued.putIfAbsent(node, node) == null) {
+ chan.send(Pair(depth, node))
+ }
+ }
+
+ override suspend fun scheduleIndirect(indirectDepth: Int, node: MuxNode<*, *, *>) {
+ schedule(Int.MIN_VALUE + indirectDepth, node)
+ }
+
+ suspend fun activate() {
+ for (nodeSchedule in chan) {
+ scheduledQ.add(nodeSchedule)
+ drainChan()
+ }
+ }
+
+ internal suspend fun drainEval(network: Network) {
+ drain { runStep ->
+ runStep { muxNode -> network.evalScope { muxNode.visit(this) } }
+ // If any visited MuxPromptNodes had their depths increased, eagerly propagate those
+ // depth
+ // changes now before performing further network evaluation.
+ network.compactor.drainCompact()
+ }
+ }
+
+ internal suspend fun drainCompact() {
+ drain { runStep -> runStep { muxNode -> muxNode.visitCompact(scheduler = this) } }
+ }
+
+ private suspend inline fun drain(
+ crossinline onStep:
+ suspend (runStep: suspend (visit: suspend (MuxNode<*, *, *>) -> Unit) -> Unit) -> Unit
+ ): Unit = coroutineScope {
+ while (!chan.isEmpty || scheduledQ.isNotEmpty()) {
+ drainChan()
+ val maxDepth = scheduledQ.peek()?.first ?: error("Unexpected empty scheduler")
+ onStep { visit -> runStep(maxDepth, visit) }
+ }
+ }
+
+ private suspend fun drainChan() {
+ while (!chan.isEmpty) {
+ scheduledQ.add(chan.receive())
+ }
+ }
+
+ private suspend inline fun runStep(
+ maxDepth: Int,
+ crossinline visit: suspend (MuxNode<*, *, *>) -> Unit,
+ ) = coroutineScope {
+ while (scheduledQ.peek()?.first?.let { it <= maxDepth } == true) {
+ val (d, node) = scheduledQ.remove()
+ if (
+ node.depthTracker.dirty_hasDirectUpstream() &&
+ d < node.depthTracker.dirty_directDepth
+ ) {
+ scheduledQ.add(node.depthTracker.dirty_directDepth to node)
+ } else {
+ launch {
+ enqueued.remove(node)
+ visit(node)
+ }
+ }
+ }
+ }
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/StateScopeImpl.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/StateScopeImpl.kt
new file mode 100644
index 000000000000..c1d10760978a
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/StateScopeImpl.kt
@@ -0,0 +1,257 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.FrpDeferredValue
+import com.android.systemui.experimental.frp.FrpStateScope
+import com.android.systemui.experimental.frp.FrpStateful
+import com.android.systemui.experimental.frp.FrpTransactionScope
+import com.android.systemui.experimental.frp.GroupedTFlow
+import com.android.systemui.experimental.frp.TFlow
+import com.android.systemui.experimental.frp.TFlowInit
+import com.android.systemui.experimental.frp.TFlowLoop
+import com.android.systemui.experimental.frp.TState
+import com.android.systemui.experimental.frp.TStateInit
+import com.android.systemui.experimental.frp.emptyTFlow
+import com.android.systemui.experimental.frp.groupByKey
+import com.android.systemui.experimental.frp.init
+import com.android.systemui.experimental.frp.internal.util.mapValuesParallel
+import com.android.systemui.experimental.frp.mapCheap
+import com.android.systemui.experimental.frp.merge
+import com.android.systemui.experimental.frp.switch
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.map
+import kotlin.coroutines.Continuation
+import kotlin.coroutines.CoroutineContext
+import kotlin.coroutines.EmptyCoroutineContext
+import kotlin.coroutines.startCoroutine
+import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.Deferred
+import kotlinx.coroutines.completeWith
+import kotlinx.coroutines.job
+
+internal class StateScopeImpl(val evalScope: EvalScope, override val endSignal: TFlow<Any>) :
+ StateScope, EvalScope by evalScope {
+
+ private val endSignalOnce: TFlow<Any> = endSignal.nextOnlyInternal("StateScope.endSignal")
+
+ private fun <A> TFlow<A>.truncateToScope(operatorName: String): TFlow<A> =
+ if (endSignalOnce === emptyTFlow) {
+ this
+ } else {
+ endSignalOnce.mapCheap { emptyTFlow }.toTStateInternal(operatorName, this).switch()
+ }
+
+ private fun <A> TFlow<A>.nextOnlyInternal(operatorName: String): TFlow<A> =
+ if (this === emptyTFlow) {
+ this
+ } else {
+ TFlowLoop<A>().apply {
+ loopback =
+ mapCheap { emptyTFlow }
+ .toTStateInternal(operatorName, this@nextOnlyInternal)
+ .switch()
+ }
+ }
+
+ private fun <A> TFlow<A>.toTStateInternal(operatorName: String, init: A): TState<A> =
+ toTStateInternalDeferred(operatorName, CompletableDeferred(init))
+
+ private fun <A> TFlow<A>.toTStateInternalDeferred(
+ operatorName: String,
+ init: Deferred<A>,
+ ): TState<A> {
+ val changes = this@toTStateInternalDeferred
+ val name = operatorName
+ val impl =
+ mkState(name, operatorName, evalScope, { changes.init.connect(evalScope = this) }, init)
+ return TStateInit(constInit(name, impl))
+ }
+
+ private fun <R> deferredInternal(block: suspend FrpStateScope.() -> R): FrpDeferredValue<R> =
+ FrpDeferredValue(deferAsync { runInStateScope(block) })
+
+ private fun <A> TFlow<A>.toTStateDeferredInternal(
+ initialValue: FrpDeferredValue<A>
+ ): TState<A> {
+ val operatorName = "toTStateDeferred"
+ // Ensure state is only collected until the end of this scope
+ return truncateToScope(operatorName)
+ .toTStateInternalDeferred(operatorName, initialValue.unwrapped)
+ }
+
+ private fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementallyInternal(
+ storage: TState<Map<K, TFlow<V>>>
+ ): TFlow<Map<K, V>> {
+ val name = "mergeIncrementally"
+ return TFlowInit(
+ constInit(
+ name,
+ switchDeferredImpl(
+ getStorage = {
+ storage.init
+ .connect(this)
+ .getCurrentWithEpoch(this)
+ .first
+ .mapValuesParallel { (_, flow) -> flow.init.connect(this) }
+ },
+ getPatches = {
+ mapImpl({ init.connect(this) }) { patch ->
+ patch.mapValuesParallel { (_, m) ->
+ m.map { flow -> flow.init.connect(this) }
+ }
+ }
+ },
+ ),
+ )
+ )
+ }
+
+ private fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementallyPromptInternal(
+ storage: TState<Map<K, TFlow<V>>>
+ ): TFlow<Map<K, V>> {
+ val name = "mergeIncrementallyPrompt"
+ return TFlowInit(
+ constInit(
+ name,
+ switchPromptImpl(
+ getStorage = {
+ storage.init
+ .connect(this)
+ .getCurrentWithEpoch(this)
+ .first
+ .mapValuesParallel { (_, flow) -> flow.init.connect(this) }
+ },
+ getPatches = {
+ mapImpl({ init.connect(this) }) { patch ->
+ patch.mapValuesParallel { (_, m) ->
+ m.map { flow -> flow.init.connect(this) }
+ }
+ }
+ },
+ ),
+ )
+ )
+ }
+
+ private fun <K, A, B> TFlow<Map<K, Maybe<FrpStateful<A>>>>.applyLatestStatefulForKeyInternal(
+ init: FrpDeferredValue<Map<K, FrpStateful<B>>>,
+ numKeys: Int?,
+ ): Pair<TFlow<Map<K, Maybe<A>>>, FrpDeferredValue<Map<K, B>>> {
+ val eventsByKey: GroupedTFlow<K, Maybe<FrpStateful<A>>> = groupByKey(numKeys)
+ val initOut: Deferred<Map<K, B>> = deferAsync {
+ init.unwrapped.await().mapValuesParallel { (k, stateful) ->
+ val newEnd = with(frpScope) { eventsByKey[k].skipNext() }
+ val newScope = childStateScope(newEnd)
+ newScope.runInStateScope(stateful)
+ }
+ }
+ val changesNode: TFlowImpl<Map<K, Maybe<A>>> =
+ mapImpl(
+ upstream = { this@applyLatestStatefulForKeyInternal.init.connect(evalScope = this) }
+ ) { upstreamMap ->
+ upstreamMap.mapValuesParallel { (k: K, ma: Maybe<FrpStateful<A>>) ->
+ reenterStateScope(this@StateScopeImpl).run {
+ ma.map { stateful ->
+ val newEnd = with(frpScope) { eventsByKey[k].skipNext() }
+ val newScope = childStateScope(newEnd)
+ newScope.runInStateScope(stateful)
+ }
+ }
+ }
+ }
+ val operatorName = "applyLatestStatefulForKey"
+ val name = operatorName
+ val changes: TFlow<Map<K, Maybe<A>>> = TFlowInit(constInit(name, changesNode.cached()))
+ return changes to FrpDeferredValue(initOut)
+ }
+
+ private fun <A> TFlow<FrpStateful<A>>.observeStatefulsInternal(): TFlow<A> {
+ val operatorName = "observeStatefuls"
+ val name = operatorName
+ return TFlowInit(
+ constInit(
+ name,
+ mapImpl(
+ upstream = { this@observeStatefulsInternal.init.connect(evalScope = this) }
+ ) { stateful ->
+ reenterStateScope(outerScope = this@StateScopeImpl)
+ .runInStateScope(stateful)
+ }
+ .cached(),
+ )
+ )
+ }
+
+ override val frpScope: FrpStateScope = FrpStateScopeImpl()
+
+ private inner class FrpStateScopeImpl :
+ FrpStateScope, FrpTransactionScope by evalScope.frpScope {
+
+ override fun <A> deferredStateScope(
+ block: suspend FrpStateScope.() -> A
+ ): FrpDeferredValue<A> = deferredInternal(block)
+
+ override fun <A> TFlow<A>.holdDeferred(initialValue: FrpDeferredValue<A>): TState<A> =
+ toTStateDeferredInternal(initialValue)
+
+ override fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementally(
+ initialTFlows: FrpDeferredValue<Map<K, TFlow<V>>>
+ ): TFlow<Map<K, V>> {
+ val storage: TState<Map<K, TFlow<V>>> = foldMapIncrementally(initialTFlows)
+ return mergeIncrementallyInternal(storage)
+ }
+
+ override fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementallyPromptly(
+ initialTFlows: FrpDeferredValue<Map<K, TFlow<V>>>
+ ): TFlow<Map<K, V>> {
+ val storage: TState<Map<K, TFlow<V>>> = foldMapIncrementally(initialTFlows)
+ return mergeIncrementallyPromptInternal(storage)
+ }
+
+ override fun <K, A, B> TFlow<Map<K, Maybe<FrpStateful<A>>>>.applyLatestStatefulForKey(
+ init: FrpDeferredValue<Map<K, FrpStateful<B>>>,
+ numKeys: Int?,
+ ): Pair<TFlow<Map<K, Maybe<A>>>, FrpDeferredValue<Map<K, B>>> =
+ applyLatestStatefulForKeyInternal(init, numKeys)
+
+ override fun <A> TFlow<FrpStateful<A>>.applyStatefuls(): TFlow<A> =
+ observeStatefulsInternal()
+ }
+
+ override suspend fun <R> runInStateScope(block: suspend FrpStateScope.() -> R): R {
+ val complete = CompletableDeferred<R>(parent = coroutineContext.job)
+ block.startCoroutine(
+ frpScope,
+ object : Continuation<R> {
+ override val context: CoroutineContext
+ get() = EmptyCoroutineContext
+
+ override fun resumeWith(result: Result<R>) {
+ complete.completeWith(result)
+ }
+ },
+ )
+ return complete.await()
+ }
+
+ override fun childStateScope(newEnd: TFlow<Any>) =
+ StateScopeImpl(evalScope, merge(newEnd, endSignal))
+}
+
+private fun EvalScope.reenterStateScope(outerScope: StateScopeImpl) =
+ StateScopeImpl(evalScope = this, endSignal = outerScope.endSignal)
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TFlowImpl.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TFlowImpl.kt
new file mode 100644
index 000000000000..79978640d5a8
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TFlowImpl.kt
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.util.Maybe
+
+/* Initialized TFlow */
+internal fun interface TFlowImpl<out A> {
+ suspend fun activate(evalScope: EvalScope, downstream: Schedulable): ActivationResult<A>?
+}
+
+internal data class ActivationResult<out A>(
+ val connection: NodeConnection<A>,
+ val needsEval: Boolean,
+)
+
+internal inline fun <A> TFlowCheap(crossinline cheap: CheapNodeSubscribe<A>) =
+ TFlowImpl { scope, ds ->
+ scope.cheap(ds)
+ }
+
+internal typealias CheapNodeSubscribe<A> =
+ suspend EvalScope.(downstream: Schedulable) -> ActivationResult<A>?
+
+internal data class NodeConnection<out A>(
+ val directUpstream: PullNode<A>,
+ val schedulerUpstream: PushNode<*>,
+)
+
+internal suspend fun <A> NodeConnection<A>.hasCurrentValue(
+ transactionStore: TransactionStore
+): Boolean = schedulerUpstream.hasCurrentValue(transactionStore)
+
+internal suspend fun <A> NodeConnection<A>.removeDownstreamAndDeactivateIfNeeded(
+ downstream: Schedulable
+) = schedulerUpstream.removeDownstreamAndDeactivateIfNeeded(downstream)
+
+internal suspend fun <A> NodeConnection<A>.scheduleDeactivationIfNeeded(evalScope: EvalScope) =
+ schedulerUpstream.scheduleDeactivationIfNeeded(evalScope)
+
+internal suspend fun <A> NodeConnection<A>.removeDownstream(downstream: Schedulable) =
+ schedulerUpstream.removeDownstream(downstream)
+
+internal suspend fun <A> NodeConnection<A>.getPushEvent(evalScope: EvalScope): Maybe<A> =
+ directUpstream.getPushEvent(evalScope)
+
+internal val <A> NodeConnection<A>.depthTracker: DepthTracker
+ get() = schedulerUpstream.depthTracker
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TStateImpl.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TStateImpl.kt
new file mode 100644
index 000000000000..d8b6dac000bb
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TStateImpl.kt
@@ -0,0 +1,377 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.internal.util.Key
+import com.android.systemui.experimental.frp.internal.util.associateByIndex
+import com.android.systemui.experimental.frp.internal.util.hashString
+import com.android.systemui.experimental.frp.internal.util.mapValuesParallel
+import com.android.systemui.experimental.frp.util.Just
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.just
+import com.android.systemui.experimental.frp.util.none
+import java.util.concurrent.atomic.AtomicLong
+import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.CoroutineStart
+import kotlinx.coroutines.Deferred
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+
+internal sealed interface TStateImpl<out A> {
+ val name: String?
+ val operatorName: String
+ val changes: TFlowImpl<A>
+
+ suspend fun getCurrentWithEpoch(evalScope: EvalScope): Pair<A, Long>
+}
+
+internal sealed class TStateDerived<A>(override val changes: TFlowImpl<A>) :
+ TStateImpl<A>, Key<Deferred<Pair<A, Long>>> {
+
+ @Volatile
+ var invalidatedEpoch = Long.MIN_VALUE
+ private set
+
+ @Volatile
+ protected var cache: Any? = EmptyCache
+ private set
+
+ override suspend fun getCurrentWithEpoch(evalScope: EvalScope): Pair<A, Long> =
+ evalScope.transactionStore
+ .getOrPut(this) { evalScope.deferAsync(CoroutineStart.LAZY) { pull(evalScope) } }
+ .await()
+
+ suspend fun pull(evalScope: EvalScope): Pair<A, Long> {
+ @Suppress("UNCHECKED_CAST")
+ return recalc(evalScope)?.also { (a, epoch) -> setCache(a, epoch) }
+ ?: ((cache as A) to invalidatedEpoch)
+ }
+
+ fun setCache(value: A, epoch: Long) {
+ if (epoch > invalidatedEpoch) {
+ cache = value
+ invalidatedEpoch = epoch
+ }
+ }
+
+ fun getCachedUnsafe(): Maybe<A> {
+ @Suppress("UNCHECKED_CAST")
+ return if (cache == EmptyCache) none else just(cache as A)
+ }
+
+ protected abstract suspend fun recalc(evalScope: EvalScope): Pair<A, Long>?
+
+ private data object EmptyCache
+}
+
+internal class TStateSource<A>(
+ override val name: String?,
+ override val operatorName: String,
+ init: Deferred<A>,
+ override val changes: TFlowImpl<A>,
+) : TStateImpl<A> {
+ constructor(
+ name: String?,
+ operatorName: String,
+ init: A,
+ changes: TFlowImpl<A>,
+ ) : this(name, operatorName, CompletableDeferred(init), changes)
+
+ lateinit var upstreamConnection: NodeConnection<A>
+
+ // Note: Don't need to synchronize; we will never interleave reads and writes, since all writes
+ // are performed at the end of a network step, after any reads would have taken place.
+
+ @Volatile private var _current: Deferred<A> = init
+ @Volatile
+ var writeEpoch = 0L
+ private set
+
+ override suspend fun getCurrentWithEpoch(evalScope: EvalScope): Pair<A, Long> =
+ _current.await() to writeEpoch
+
+ /** called by network after eval phase has completed */
+ suspend fun updateState(evalScope: EvalScope) {
+ // write the latch
+ val eventResult = upstreamConnection.getPushEvent(evalScope)
+ if (eventResult is Just) {
+ _current = CompletableDeferred(eventResult.value)
+ writeEpoch = evalScope.epoch
+ }
+ }
+
+ override fun toString(): String = "TStateImpl(changes=$changes, current=$_current)"
+
+ @OptIn(ExperimentalCoroutinesApi::class)
+ fun getStorageUnsafe(): Maybe<A> =
+ if (_current.isCompleted) just(_current.getCompleted()) else none
+}
+
+internal fun <A> constS(name: String?, operatorName: String, init: A): TStateImpl<A> =
+ TStateSource(name, operatorName, init, neverImpl)
+
+internal inline fun <A> mkState(
+ name: String?,
+ operatorName: String,
+ evalScope: EvalScope,
+ crossinline getChanges: suspend EvalScope.() -> TFlowImpl<A>,
+ init: Deferred<A>,
+): TStateImpl<A> {
+ lateinit var state: TStateSource<A>
+ val calm: TFlowImpl<A> =
+ filterNode(getChanges) { new -> new != state.getCurrentWithEpoch(evalScope = this).first }
+ .cached()
+ return TStateSource(name, operatorName, init, calm).also {
+ state = it
+ evalScope.scheduleOutput(
+ OneShot {
+ calm.activate(evalScope = this, downstream = Schedulable.S(state))?.let {
+ (connection, needsEval) ->
+ state.upstreamConnection = connection
+ if (needsEval) {
+ schedule(state)
+ }
+ }
+ }
+ )
+ }
+}
+
+private inline fun <A> TFlowImpl<A>.calm(
+ crossinline getState: () -> TStateDerived<A>
+): TFlowImpl<A> =
+ filterNode({ this@calm }) { new ->
+ val state = getState()
+ val (current, _) = state.getCurrentWithEpoch(evalScope = this)
+ if (new != current) {
+ state.setCache(new, epoch)
+ true
+ } else {
+ false
+ }
+ }
+ .cached()
+
+internal fun <A, B> TStateImpl<A>.mapCheap(
+ name: String?,
+ operatorName: String,
+ transform: suspend EvalScope.(A) -> B,
+): TStateImpl<B> =
+ DerivedMapCheap(name, operatorName, this, mapImpl({ changes }) { transform(it) }, transform)
+
+internal class DerivedMapCheap<A, B>(
+ override val name: String?,
+ override val operatorName: String,
+ val upstream: TStateImpl<A>,
+ override val changes: TFlowImpl<B>,
+ private val transform: suspend EvalScope.(A) -> B,
+) : TStateImpl<B> {
+
+ override suspend fun getCurrentWithEpoch(evalScope: EvalScope): Pair<B, Long> {
+ val (a, epoch) = upstream.getCurrentWithEpoch(evalScope)
+ return evalScope.transform(a) to epoch
+ }
+
+ override fun toString(): String = "${this::class.simpleName}@$hashString"
+}
+
+internal fun <A, B> TStateImpl<A>.map(
+ name: String?,
+ operatorName: String,
+ transform: suspend EvalScope.(A) -> B,
+): TStateImpl<B> {
+ lateinit var state: TStateDerived<B>
+ val mappedChanges = mapImpl({ changes }) { transform(it) }.cached().calm { state }
+ state = DerivedMap(name, operatorName, transform, this, mappedChanges)
+ return state
+}
+
+internal class DerivedMap<A, B>(
+ override val name: String?,
+ override val operatorName: String,
+ private val transform: suspend EvalScope.(A) -> B,
+ val upstream: TStateImpl<A>,
+ changes: TFlowImpl<B>,
+) : TStateDerived<B>(changes) {
+ override fun toString(): String = "${this::class.simpleName}@$hashString"
+
+ override suspend fun recalc(evalScope: EvalScope): Pair<B, Long>? {
+ val (a, epoch) = upstream.getCurrentWithEpoch(evalScope)
+ return if (epoch > invalidatedEpoch) {
+ evalScope.transform(a) to epoch
+ } else {
+ null
+ }
+ }
+}
+
+internal fun <A> TStateImpl<TStateImpl<A>>.flatten(name: String?, operator: String): TStateImpl<A> {
+ // emits the current value of the new inner state, when that state is emitted
+ val switchEvents = mapImpl({ changes }) { newInner -> newInner.getCurrentWithEpoch(this).first }
+ // emits the new value of the new inner state when that state is emitted, or
+ // falls back to the current value if a new state is *not* being emitted this
+ // transaction
+ val innerChanges =
+ mapImpl({ changes }) { newInner ->
+ mergeNodes({ switchEvents }, { newInner.changes }) { _, new -> new }
+ }
+ val switchedChanges: TFlowImpl<A> =
+ mapImpl({
+ switchPromptImpl(
+ getStorage = {
+ mapOf(Unit to this@flatten.getCurrentWithEpoch(evalScope = this).first.changes)
+ },
+ getPatches = { mapImpl({ innerChanges }) { new -> mapOf(Unit to just(new)) } },
+ )
+ }) { map ->
+ map.getValue(Unit)
+ }
+ lateinit var state: DerivedFlatten<A>
+ state = DerivedFlatten(name, operator, this, switchedChanges.calm { state })
+ return state
+}
+
+internal class DerivedFlatten<A>(
+ override val name: String?,
+ override val operatorName: String,
+ val upstream: TStateImpl<TStateImpl<A>>,
+ changes: TFlowImpl<A>,
+) : TStateDerived<A>(changes) {
+ override suspend fun recalc(evalScope: EvalScope): Pair<A, Long> {
+ val (inner, epoch0) = upstream.getCurrentWithEpoch(evalScope)
+ val (a, epoch1) = inner.getCurrentWithEpoch(evalScope)
+ return a to maxOf(epoch0, epoch1)
+ }
+
+ override fun toString(): String = "${this::class.simpleName}@$hashString"
+}
+
+@Suppress("NOTHING_TO_INLINE")
+internal inline fun <A, B> TStateImpl<A>.flatMap(
+ name: String?,
+ operatorName: String,
+ noinline transform: suspend EvalScope.(A) -> TStateImpl<B>,
+): TStateImpl<B> = map(null, operatorName, transform).flatten(name, operatorName)
+
+internal fun <A, B, Z> zipStates(
+ name: String?,
+ operatorName: String,
+ l1: TStateImpl<A>,
+ l2: TStateImpl<B>,
+ transform: suspend EvalScope.(A, B) -> Z,
+): TStateImpl<Z> =
+ zipStates(null, operatorName, mapOf(0 to l1, 1 to l2)).map(name, operatorName) {
+ val a = it.getValue(0)
+ val b = it.getValue(1)
+ @Suppress("UNCHECKED_CAST") transform(a as A, b as B)
+ }
+
+internal fun <A, B, C, Z> zipStates(
+ name: String?,
+ operatorName: String,
+ l1: TStateImpl<A>,
+ l2: TStateImpl<B>,
+ l3: TStateImpl<C>,
+ transform: suspend EvalScope.(A, B, C) -> Z,
+): TStateImpl<Z> =
+ zipStates(null, operatorName, mapOf(0 to l1, 1 to l2, 2 to l3)).map(name, operatorName) {
+ val a = it.getValue(0)
+ val b = it.getValue(1)
+ val c = it.getValue(2)
+ @Suppress("UNCHECKED_CAST") transform(a as A, b as B, c as C)
+ }
+
+internal fun <A, B, C, D, Z> zipStates(
+ name: String?,
+ operatorName: String,
+ l1: TStateImpl<A>,
+ l2: TStateImpl<B>,
+ l3: TStateImpl<C>,
+ l4: TStateImpl<D>,
+ transform: suspend EvalScope.(A, B, C, D) -> Z,
+): TStateImpl<Z> =
+ zipStates(null, operatorName, mapOf(0 to l1, 1 to l2, 2 to l3, 3 to l4)).map(
+ name,
+ operatorName,
+ ) {
+ val a = it.getValue(0)
+ val b = it.getValue(1)
+ val c = it.getValue(2)
+ val d = it.getValue(3)
+ @Suppress("UNCHECKED_CAST") transform(a as A, b as B, c as C, d as D)
+ }
+
+internal fun <K : Any, A> zipStates(
+ name: String?,
+ operatorName: String,
+ states: Map<K, TStateImpl<A>>,
+): TStateImpl<Map<K, A>> {
+ if (states.isEmpty()) return constS(name, operatorName, emptyMap())
+ val stateChanges: Map<K, TFlowImpl<A>> = states.mapValues { it.value.changes }
+ lateinit var state: DerivedZipped<K, A>
+ // No need for calm; invariant ensures that changes will only emit when there's a difference
+ val changes: TFlowImpl<Map<K, A>> =
+ mapImpl({
+ switchDeferredImpl(getStorage = { stateChanges }, getPatches = { neverImpl })
+ }) { patch ->
+ states
+ .mapValues { (k, v) ->
+ if (k in patch) {
+ patch.getValue(k)
+ } else {
+ v.getCurrentWithEpoch(evalScope = this).first
+ }
+ }
+ .also { state.setCache(it, epoch) }
+ }
+ state = DerivedZipped(name, operatorName, states, changes)
+ return state
+}
+
+internal class DerivedZipped<K : Any, A>(
+ override val name: String?,
+ override val operatorName: String,
+ val upstream: Map<K, TStateImpl<A>>,
+ changes: TFlowImpl<Map<K, A>>,
+) : TStateDerived<Map<K, A>>(changes) {
+ override suspend fun recalc(evalScope: EvalScope): Pair<Map<K, A>, Long> {
+ val newEpoch = AtomicLong()
+ return upstream.mapValuesParallel {
+ val (a, epoch) = it.value.getCurrentWithEpoch(evalScope)
+ newEpoch.accumulateAndGet(epoch, ::maxOf)
+ a
+ } to newEpoch.get()
+ }
+
+ override fun toString(): String = "${this::class.simpleName}@$hashString"
+}
+
+@Suppress("NOTHING_TO_INLINE")
+internal inline fun <A> zipStates(
+ name: String?,
+ operatorName: String,
+ states: List<TStateImpl<A>>,
+): TStateImpl<List<A>> =
+ if (states.isEmpty()) {
+ constS(name, operatorName, emptyList())
+ } else {
+ zipStates(null, operatorName, states.asIterable().associateByIndex()).mapCheap(
+ name,
+ operatorName,
+ ) {
+ it.values.toList()
+ }
+ }
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TransactionalImpl.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TransactionalImpl.kt
new file mode 100644
index 000000000000..c3f80a179684
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TransactionalImpl.kt
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal
+
+import com.android.systemui.experimental.frp.internal.util.Key
+import com.android.systemui.experimental.frp.internal.util.hashString
+import kotlinx.coroutines.CoroutineStart
+import kotlinx.coroutines.Deferred
+
+internal sealed class TransactionalImpl<out A> {
+ data class Const<out A>(val value: Deferred<A>) : TransactionalImpl<A>()
+
+ class Impl<A>(val block: suspend EvalScope.() -> A) : TransactionalImpl<A>(), Key<Deferred<A>> {
+ override fun toString(): String = "${this::class.simpleName}@$hashString"
+ }
+}
+
+@Suppress("NOTHING_TO_INLINE")
+internal inline fun <A> transactionalImpl(
+ noinline block: suspend EvalScope.() -> A
+): TransactionalImpl<A> = TransactionalImpl.Impl(block)
+
+internal fun <A> TransactionalImpl<A>.sample(evalScope: EvalScope): Deferred<A> =
+ when (this) {
+ is TransactionalImpl.Const -> value
+ is TransactionalImpl.Impl ->
+ evalScope.transactionStore
+ .getOrPut(this) {
+ evalScope.deferAsync(start = CoroutineStart.LAZY) { evalScope.block() }
+ }
+ .also { it.start() }
+ }
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/Bag.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/Bag.kt
new file mode 100644
index 000000000000..cc5538e5c87c
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/Bag.kt
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal.util
+
+internal class Bag<T> private constructor(private val intMap: MutableMap<T, Int>) :
+ Set<T> by intMap.keys {
+
+ constructor() : this(hashMapOf())
+
+ override fun toString(): String = intMap.toString()
+
+ fun add(element: T): Boolean {
+ val entry = intMap[element]
+ return if (entry != null) {
+ intMap[element] = entry + 1
+ false
+ } else {
+ intMap[element] = 1
+ true
+ }
+ }
+
+ fun remove(element: T): Boolean {
+ val entry = intMap[element]
+ return when {
+ entry == null -> {
+ false
+ }
+ entry <= 1 -> {
+ intMap.remove(element)
+ true
+ }
+ else -> {
+ intMap[element] = entry - 1
+ false
+ }
+ }
+ }
+
+ fun addAll(elements: Iterable<T>, butNot: T? = null): Set<T>? {
+ val newlyAdded = hashSetOf<T>()
+ for (value in elements) {
+ if (value != butNot) {
+ if (add(value)) {
+ newlyAdded.add(value)
+ }
+ }
+ }
+ return newlyAdded.ifEmpty { null }
+ }
+
+ fun clear() {
+ intMap.clear()
+ }
+
+ fun removeAll(elements: Collection<T>): Set<T>? {
+ val result = hashSetOf<T>()
+ for (element in elements) {
+ if (remove(element)) {
+ result.add(element)
+ }
+ }
+ return result.ifEmpty { null }
+ }
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/ConcurrentNullableHashMap.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/ConcurrentNullableHashMap.kt
new file mode 100644
index 000000000000..449aa19be635
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/ConcurrentNullableHashMap.kt
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal.util
+
+import java.util.concurrent.ConcurrentHashMap
+
+internal class ConcurrentNullableHashMap<K : Any, V>
+private constructor(private val inner: ConcurrentHashMap<K, Any>) {
+ constructor() : this(ConcurrentHashMap())
+
+ @Suppress("UNCHECKED_CAST")
+ operator fun get(key: K): V? = inner[key]?.takeIf { it !== NullValue } as V?
+
+ @Suppress("UNCHECKED_CAST")
+ fun put(key: K, value: V?): V? =
+ inner.put(key, value ?: NullValue)?.takeIf { it !== NullValue } as V?
+
+ operator fun set(key: K, value: V?) {
+ put(key, value)
+ }
+
+ @Suppress("UNCHECKED_CAST")
+ fun toMap(): Map<K, V> = inner.mapValues { (_, v) -> v.takeIf { it !== NullValue } as V }
+
+ fun clear() {
+ inner.clear()
+ }
+
+ fun isNotEmpty(): Boolean = inner.isNotEmpty()
+}
+
+private object NullValue
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/HeteroMap.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/HeteroMap.kt
new file mode 100644
index 000000000000..14a567ca67c8
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/HeteroMap.kt
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal.util
+
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.None
+import com.android.systemui.experimental.frp.util.just
+import java.util.concurrent.ConcurrentHashMap
+
+internal interface Key<A>
+
+private object NULL
+
+internal class HeteroMap {
+
+ private val store = ConcurrentHashMap<Key<*>, Any>()
+
+ @Suppress("UNCHECKED_CAST")
+ operator fun <A> get(key: Key<A>): Maybe<A> =
+ store[key]?.let { just((if (it === NULL) null else it) as A) } ?: None
+
+ operator fun <A> set(key: Key<A>, value: A) {
+ store[key] = value ?: NULL
+ }
+
+ operator fun contains(key: Key<*>): Boolean = store.containsKey(key)
+
+ fun clear() {
+ store.clear()
+ }
+
+ @Suppress("UNCHECKED_CAST")
+ fun <A> remove(key: Key<A>): Maybe<A> =
+ store.remove(key)?.let { just((if (it === NULL) null else it) as A) } ?: None
+
+ @Suppress("UNCHECKED_CAST")
+ fun <A> getOrPut(key: Key<A>, defaultValue: () -> A): A =
+ store.compute(key) { _, value -> value ?: defaultValue() ?: NULL } as A
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/MapUtils.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/MapUtils.kt
new file mode 100644
index 000000000000..6f19a76f8900
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/MapUtils.kt
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.internal.util
+
+import kotlinx.coroutines.CoroutineStart
+import kotlinx.coroutines.async
+import kotlinx.coroutines.awaitAll
+import kotlinx.coroutines.coroutineScope
+import kotlinx.coroutines.yield
+
+// TODO: It's possible that this is less efficient than having each coroutine directly insert into a
+// ConcurrentHashMap, but then we would lose ordering
+internal suspend inline fun <K, A, B : Any, M : MutableMap<K, B>> Map<K, A>
+ .mapValuesNotNullParallelTo(
+ destination: M,
+ crossinline block: suspend (Map.Entry<K, A>) -> B?,
+): M =
+ destination.also {
+ coroutineScope {
+ mapValues {
+ async {
+ yield()
+ block(it)
+ }
+ }
+ }
+ .mapValuesNotNullTo(it) { (_, deferred) -> deferred.await() }
+ }
+
+internal inline fun <K, A, B : Any, M : MutableMap<K, B>> Map<K, A>.mapValuesNotNullTo(
+ destination: M,
+ block: (Map.Entry<K, A>) -> B?,
+): M =
+ destination.also {
+ for (entry in this@mapValuesNotNullTo) {
+ block(entry)?.let { destination.put(entry.key, it) }
+ }
+ }
+
+internal suspend fun <A, B> Iterable<A>.mapParallel(transform: suspend (A) -> B): List<B> =
+ coroutineScope {
+ map { async(start = CoroutineStart.LAZY) { transform(it) } }.awaitAll()
+ }
+
+internal suspend fun <K, A, B, M : MutableMap<K, B>> Map<K, A>.mapValuesParallelTo(
+ destination: M,
+ transform: suspend (Map.Entry<K, A>) -> B,
+): Map<K, B> = entries.mapParallel { it.key to transform(it) }.toMap(destination)
+
+internal suspend fun <K, A, B> Map<K, A>.mapValuesParallel(
+ transform: suspend (Map.Entry<K, A>) -> B
+): Map<K, B> = mapValuesParallelTo(mutableMapOf(), transform)
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/Util.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/Util.kt
new file mode 100644
index 000000000000..0a47429d4113
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/Util.kt
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@file:OptIn(ExperimentalCoroutinesApi::class)
+
+package com.android.systemui.experimental.frp.internal.util
+
+import kotlin.coroutines.CoroutineContext
+import kotlin.coroutines.EmptyCoroutineContext
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.CoroutineStart
+import kotlinx.coroutines.Deferred
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.async
+import kotlinx.coroutines.awaitCancellation
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.newCoroutineContext
+
+internal fun <A> CoroutineScope.asyncImmediate(
+ start: CoroutineStart = CoroutineStart.UNDISPATCHED,
+ context: CoroutineContext = EmptyCoroutineContext,
+ block: suspend CoroutineScope.() -> A,
+): Deferred<A> = async(start = start, context = Dispatchers.Unconfined + context, block = block)
+
+internal fun CoroutineScope.launchImmediate(
+ start: CoroutineStart = CoroutineStart.UNDISPATCHED,
+ context: CoroutineContext = EmptyCoroutineContext,
+ block: suspend CoroutineScope.() -> Unit,
+): Job = launch(start = start, context = Dispatchers.Unconfined + context, block = block)
+
+internal suspend fun awaitCancellationAndThen(block: suspend () -> Unit) {
+ try {
+ awaitCancellation()
+ } finally {
+ block()
+ }
+}
+
+internal fun CoroutineScope.launchOnCancel(
+ context: CoroutineContext = EmptyCoroutineContext,
+ block: () -> Unit,
+): Job =
+ launch(context = context, start = CoroutineStart.UNDISPATCHED) {
+ awaitCancellationAndThen(block)
+ }
+
+internal fun CoroutineScope.childScope(
+ context: CoroutineContext = EmptyCoroutineContext
+): CoroutineScope {
+ val newContext = newCoroutineContext(context)
+ val newJob = Job(parent = newContext[Job])
+ return CoroutineScope(newContext + newJob)
+}
+
+internal fun <A> Iterable<A>.associateByIndex(): Map<Int, A> = buildMap {
+ forEachIndexed { index, a -> put(index, a) }
+}
+
+internal fun <A, M : MutableMap<Int, A>> Iterable<A>.associateByIndexTo(destination: M): M =
+ destination.apply { forEachIndexed { index, a -> put(index, a) } }
+
+internal val Any.hashString: String
+ get() = Integer.toHexString(System.identityHashCode(this))
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/Either.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/Either.kt
new file mode 100644
index 000000000000..dca8364ed8ef
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/Either.kt
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@file:Suppress("NOTHING_TO_INLINE")
+
+package com.android.systemui.experimental.frp.util
+
+/**
+ * Contains a value of two possibilities: `Left<A>` or `Right<B>`
+ *
+ * [Either] generalizes sealed classes the same way that [Pair] generalizes data classes; if a
+ * [Pair] is effectively an anonymous grouping of two instances, then an [Either] is an anonymous
+ * set of two options.
+ */
+sealed class Either<out A, out B>
+
+/** An [Either] that contains a [Left] value. */
+data class Left<out A>(val value: A) : Either<A, Nothing>()
+
+/** An [Either] that contains a [Right] value. */
+data class Right<out B>(val value: B) : Either<Nothing, B>()
+
+/**
+ * Returns an [Either] containing the result of applying [transform] to the [Left] value, or the
+ * [Right] value unchanged.
+ */
+inline fun <A, B, C> Either<A, C>.mapLeft(transform: (A) -> B): Either<B, C> =
+ when (this) {
+ is Left -> Left(transform(value))
+ is Right -> this
+ }
+
+/**
+ * Returns an [Either] containing the result of applying [transform] to the [Right] value, or the
+ * [Left] value unchanged.
+ */
+inline fun <A, B, C> Either<A, B>.mapRight(transform: (B) -> C): Either<A, C> =
+ when (this) {
+ is Left -> this
+ is Right -> Right(transform(value))
+ }
+
+/** Returns a [Maybe] containing the [Left] value held by this [Either], if present. */
+inline fun <A> Either<A, *>.leftMaybe(): Maybe<A> =
+ when (this) {
+ is Left -> just(value)
+ else -> None
+ }
+
+/** Returns the [Left] value held by this [Either], or `null` if this is a [Right] value. */
+inline fun <A> Either<A, *>.leftOrNull(): A? =
+ when (this) {
+ is Left -> value
+ else -> null
+ }
+
+/** Returns a [Maybe] containing the [Right] value held by this [Either], if present. */
+inline fun <B> Either<*, B>.rightMaybe(): Maybe<B> =
+ when (this) {
+ is Right -> just(value)
+ else -> None
+ }
+
+/** Returns the [Right] value held by this [Either], or `null` if this is a [Left] value. */
+inline fun <B> Either<*, B>.rightOrNull(): B? =
+ when (this) {
+ is Right -> value
+ else -> null
+ }
+
+/**
+ * Partitions this sequence of [Either] into two lists; [Pair.first] contains all [Left] values, and
+ * [Pair.second] contains all [Right] values.
+ */
+fun <A, B> Sequence<Either<A, B>>.partitionEithers(): Pair<List<A>, List<B>> {
+ val lefts = mutableListOf<A>()
+ val rights = mutableListOf<B>()
+ for (either in this) {
+ when (either) {
+ is Left -> lefts.add(either.value)
+ is Right -> rights.add(either.value)
+ }
+ }
+ return lefts to rights
+}
+
+/**
+ * Partitions this map of [Either] values into two maps; [Pair.first] contains all [Left] values,
+ * and [Pair.second] contains all [Right] values.
+ */
+fun <K, A, B> Map<K, Either<A, B>>.partitionEithers(): Pair<Map<K, A>, Map<K, B>> {
+ val lefts = mutableMapOf<K, A>()
+ val rights = mutableMapOf<K, B>()
+ for ((k, e) in this) {
+ when (e) {
+ is Left -> lefts[k] = e.value
+ is Right -> rights[k] = e.value
+ }
+ }
+ return lefts to rights
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/Maybe.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/Maybe.kt
new file mode 100644
index 000000000000..59c680e91a52
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/Maybe.kt
@@ -0,0 +1,271 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@file:Suppress("NOTHING_TO_INLINE", "SuspendCoroutine")
+
+package com.android.systemui.experimental.frp.util
+
+import kotlin.coroutines.Continuation
+import kotlin.coroutines.CoroutineContext
+import kotlin.coroutines.EmptyCoroutineContext
+import kotlin.coroutines.RestrictsSuspension
+import kotlin.coroutines.resume
+import kotlin.coroutines.startCoroutine
+import kotlin.coroutines.suspendCoroutine
+
+/** Represents a value that may or may not be present. */
+sealed class Maybe<out A>
+
+/** A [Maybe] value that is present. */
+data class Just<out A> internal constructor(val value: A) : Maybe<A>()
+
+/** A [Maybe] value that is not present. */
+data object None : Maybe<Nothing>()
+
+/** Utilities to query [Maybe] instances from within a [maybe] block. */
+@RestrictsSuspension
+object MaybeScope {
+ suspend operator fun <A> Maybe<A>.not(): A = suspendCoroutine { k ->
+ if (this is Just) k.resume(value)
+ }
+
+ suspend inline fun guard(crossinline block: () -> Boolean): Unit = suspendCoroutine { k ->
+ if (block()) k.resume(Unit)
+ }
+}
+
+/**
+ * Returns a [Maybe] value produced by evaluating [block].
+ *
+ * [block] can use its [MaybeScope] receiver to query other [Maybe] values, automatically cancelling
+ * execution of [block] and producing [None] when attempting to query a [Maybe] that is not present.
+ *
+ * This can be used instead of Kotlin's built-in nullability (`?.` and `?:`) operators when dealing
+ * with complex combinations of nullables:
+ * ``` kotlin
+ * val aMaybe: Maybe<Any> = ...
+ * val bMaybe: Maybe<Any> = ...
+ * val result: String = maybe {
+ * val a = !aMaybe
+ * val b = !bMaybe
+ * "Got: $a and $b"
+ * }
+ * ```
+ */
+fun <A> maybe(block: suspend MaybeScope.() -> A): Maybe<A> {
+ var maybeResult: Maybe<A> = None
+ val k =
+ object : Continuation<A> {
+ override val context: CoroutineContext = EmptyCoroutineContext
+
+ override fun resumeWith(result: Result<A>) {
+ maybeResult = result.getOrNull()?.let { just(it) } ?: None
+ }
+ }
+ block.startCoroutine(MaybeScope, k)
+ return maybeResult
+}
+
+/** Returns a [Just] containing this value, or [None] if `null`. */
+inline fun <A> (A?).toMaybe(): Maybe<A> = maybe(this)
+
+/** Returns a [Just] containing a non-null [value], or [None] if `null`. */
+inline fun <A> maybe(value: A?): Maybe<A> = value?.let(::just) ?: None
+
+/** Returns a [Just] containing [value]. */
+fun <A> just(value: A): Maybe<A> = Just(value)
+
+/** A [Maybe] that is not present. */
+val none: Maybe<Nothing> = None
+
+/** A [Maybe] that is not present. */
+inline fun <A> none(): Maybe<A> = None
+
+/** Returns the value present in this [Maybe], or `null` if not present. */
+inline fun <A> Maybe<A>.orNull(): A? = orElse(null)
+
+/**
+ * Returns a [Maybe] holding the result of applying [transform] to the value in the original
+ * [Maybe].
+ */
+inline fun <A, B> Maybe<A>.map(transform: (A) -> B): Maybe<B> =
+ when (this) {
+ is Just -> just(transform(value))
+ is None -> None
+ }
+
+/** Returns the result of applying [transform] to the value in the original [Maybe]. */
+inline fun <A, B> Maybe<A>.flatMap(transform: (A) -> Maybe<B>): Maybe<B> =
+ when (this) {
+ is Just -> transform(value)
+ is None -> None
+ }
+
+/** Returns the value present in this [Maybe], or the result of [defaultValue] if not present. */
+inline fun <A> Maybe<A>.orElseGet(defaultValue: () -> A): A =
+ when (this) {
+ is Just -> value
+ is None -> defaultValue()
+ }
+
+/**
+ * Returns the value present in this [Maybe], or invokes [error] with the message returned from
+ * [getMessage].
+ */
+inline fun <A> Maybe<A>.orError(getMessage: () -> Any): A = orElseGet { error(getMessage()) }
+
+/** Returns the value present in this [Maybe], or [defaultValue] if not present. */
+inline fun <A> Maybe<A>.orElse(defaultValue: A): A =
+ when (this) {
+ is Just -> value
+ is None -> defaultValue
+ }
+
+/**
+ * Returns a [Maybe] that contains the present in the original [Maybe], only if it satisfies
+ * [predicate].
+ */
+inline fun <A> Maybe<A>.filter(predicate: (A) -> Boolean): Maybe<A> =
+ when (this) {
+ is Just -> if (predicate(value)) this else None
+ else -> this
+ }
+
+/** Returns a [List] containing all values that are present in this [Iterable]. */
+fun <A> Iterable<Maybe<A>>.filterJust(): List<A> = asSequence().filterJust().toList()
+
+/** Returns a [List] containing all values that are present in this [Sequence]. */
+fun <A> Sequence<Maybe<A>>.filterJust(): Sequence<A> = filterIsInstance<Just<A>>().map { it.value }
+
+// Align
+
+/**
+ * Returns a [Maybe] containing the result of applying the values present in the original [Maybe]
+ * and other, applied to [transform] as a [These].
+ */
+inline fun <A, B, C> Maybe<A>.alignWith(other: Maybe<B>, transform: (These<A, B>) -> C): Maybe<C> =
+ when (this) {
+ is Just -> {
+ val a = value
+ when (other) {
+ is Just -> {
+ val b = other.value
+ just(transform(These.both(a, b)))
+ }
+ None -> just(transform(These.thiz(a)))
+ }
+ }
+ None ->
+ when (other) {
+ is Just -> {
+ val b = other.value
+ just(transform(These.that(b)))
+ }
+ None -> none
+ }
+ }
+
+// Alt
+
+/** Returns a [Maybe] containing the value present in the original [Maybe], or [other]. */
+infix fun <A> Maybe<A>.orElseMaybe(other: Maybe<A>): Maybe<A> = orElseGetMaybe { other }
+
+/**
+ * Returns a [Maybe] containing the value present in the original [Maybe], or the result of [other].
+ */
+inline fun <A> Maybe<A>.orElseGetMaybe(other: () -> Maybe<A>): Maybe<A> =
+ when (this) {
+ is Just -> this
+ else -> other()
+ }
+
+// Apply
+
+/**
+ * Returns a [Maybe] containing the value present in [argMaybe] applied to the function present in
+ * the original [Maybe].
+ */
+fun <A, B> Maybe<(A) -> B>.apply(argMaybe: Maybe<A>): Maybe<B> = flatMap { f ->
+ argMaybe.map { a -> f(a) }
+}
+
+/**
+ * Returns a [Maybe] containing the result of applying [transform] to the values present in the
+ * original [Maybe] and [other].
+ */
+inline fun <A, B, C> Maybe<A>.zipWith(other: Maybe<B>, transform: (A, B) -> C) = flatMap { a ->
+ other.map { b -> transform(a, b) }
+}
+
+// Bind
+
+/**
+ * Returns a [Maybe] containing the value present in the [Maybe] present in the original [Maybe].
+ */
+fun <A> Maybe<Maybe<A>>.flatten(): Maybe<A> = flatMap { it }
+
+// Semigroup
+
+/**
+ * Returns a [Maybe] containing the result of applying the values present in the original [Maybe]
+ * and other, applied to [transform].
+ */
+fun <A> Maybe<A>.mergeWith(other: Maybe<A>, transform: (A, A) -> A): Maybe<A> =
+ alignWith(other) { it.merge(transform) }
+
+/**
+ * Returns a list containing only the present results of applying [transform] to each element in the
+ * original iterable.
+ */
+fun <A, B> Iterable<A>.mapMaybe(transform: (A) -> Maybe<B>): List<B> =
+ asSequence().mapMaybe(transform).toList()
+
+/**
+ * Returns a sequence containing only the present results of applying [transform] to each element in
+ * the original sequence.
+ */
+fun <A, B> Sequence<A>.mapMaybe(transform: (A) -> Maybe<B>): Sequence<B> =
+ map(transform).filterIsInstance<Just<B>>().map { it.value }
+
+/**
+ * Returns a map with values of only the present results of applying [transform] to each entry in
+ * the original map.
+ */
+inline fun <K, A, B> Map<K, A>.mapMaybeValues(
+ crossinline p: (Map.Entry<K, A>) -> Maybe<B>
+): Map<K, B> = asSequence().mapMaybe { entry -> p(entry).map { entry.key to it } }.toMap()
+
+/** Returns a map with all non-present values filtered out. */
+fun <K, A> Map<K, Maybe<A>>.filterJustValues(): Map<K, A> =
+ asSequence().mapMaybe { (key, mValue) -> mValue.map { key to it } }.toMap()
+
+/**
+ * Returns a pair of [Maybes][Maybe] that contain the [Pair.first] and [Pair.second] values present
+ * in the original [Maybe].
+ */
+fun <A, B> Maybe<Pair<A, B>>.splitPair(): Pair<Maybe<A>, Maybe<B>> =
+ map { it.first } to map { it.second }
+
+/** Returns the value associated with [key] in this map as a [Maybe]. */
+fun <K, V> Map<K, V>.getMaybe(key: K): Maybe<V> {
+ val value = get(key)
+ if (value == null && !containsKey(key)) {
+ return none
+ } else {
+ @Suppress("UNCHECKED_CAST")
+ return just(value as V)
+ }
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/These.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/These.kt
new file mode 100644
index 000000000000..5404c0795af8
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/These.kt
@@ -0,0 +1,148 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.util
+
+/** Contains at least one of two potential values. */
+sealed class These<A, B> {
+ /** Contains a single potential value. */
+ class This<A, B> internal constructor(val thiz: A) : These<A, B>()
+
+ /** Contains a single potential value. */
+ class That<A, B> internal constructor(val that: B) : These<A, B>()
+
+ /** Contains both potential values. */
+ class Both<A, B> internal constructor(val thiz: A, val that: B) : These<A, B>()
+
+ companion object {
+ /** Constructs a [These] containing only [thiz]. */
+ fun <A, B> thiz(thiz: A): These<A, B> = This(thiz)
+
+ /** Constructs a [These] containing only [that]. */
+ fun <A, B> that(that: B): These<A, B> = That(that)
+
+ /** Constructs a [These] containing both [thiz] and [that]. */
+ fun <A, B> both(thiz: A, that: B): These<A, B> = Both(thiz, that)
+ }
+}
+
+/**
+ * Returns a single value from this [These]; either the single value held within, or the result of
+ * applying [f] to both values.
+ */
+inline fun <A> These<A, A>.merge(f: (A, A) -> A): A =
+ when (this) {
+ is These.This -> thiz
+ is These.That -> that
+ is These.Both -> f(thiz, that)
+ }
+
+/** Returns the [These.This] [value][These.This.thiz] present in this [These] as a [Maybe]. */
+fun <A> These<A, *>.maybeThis(): Maybe<A> =
+ when (this) {
+ is These.Both -> just(thiz)
+ is These.That -> None
+ is These.This -> just(thiz)
+ }
+
+/**
+ * Returns the [These.This] [value][These.This.thiz] present in this [These], or `null` if not
+ * present.
+ */
+fun <A : Any> These<A, *>.thisOrNull(): A? =
+ when (this) {
+ is These.Both -> thiz
+ is These.That -> null
+ is These.This -> thiz
+ }
+
+/** Returns the [These.That] [value][These.That.that] present in this [These] as a [Maybe]. */
+fun <A> These<*, A>.maybeThat(): Maybe<A> =
+ when (this) {
+ is These.Both -> just(that)
+ is These.That -> just(that)
+ is These.This -> None
+ }
+
+/**
+ * Returns the [These.That] [value][These.That.that] present in this [These], or `null` if not
+ * present.
+ */
+fun <A : Any> These<*, A>.thatOrNull(): A? =
+ when (this) {
+ is These.Both -> that
+ is These.That -> that
+ is These.This -> null
+ }
+
+/** Returns [These.Both] values present in this [These] as a [Maybe]. */
+fun <A, B> These<A, B>.maybeBoth(): Maybe<Pair<A, B>> =
+ when (this) {
+ is These.Both -> just(thiz to that)
+ else -> None
+ }
+
+/** Returns a [These] containing [thiz] and/or [that] if they are present. */
+fun <A, B> these(thiz: Maybe<A>, that: Maybe<B>): Maybe<These<A, B>> =
+ when (thiz) {
+ is Just ->
+ just(
+ when (that) {
+ is Just -> These.both(thiz.value, that.value)
+ else -> These.thiz(thiz.value)
+ }
+ )
+ else ->
+ when (that) {
+ is Just -> just(These.that(that.value))
+ else -> none
+ }
+ }
+
+/**
+ * Returns a [These] containing [thiz] and/or [that] if they are non-null, or `null` if both are
+ * `null`.
+ */
+fun <A : Any, B : Any> theseNull(thiz: A?, that: B?): These<A, B>? =
+ thiz?.let { that?.let { These.both(thiz, that) } ?: These.thiz(thiz) }
+ ?: that?.let { These.that(that) }
+
+/**
+ * Returns two maps, with [Pair.first] containing all [These.This] values and [Pair.second]
+ * containing all [These.That] values.
+ *
+ * If the value is [These.Both], then the associated key with appear in both output maps, bound to
+ * [These.Both.thiz] and [These.Both.that] in each respective output.
+ */
+fun <K, A, B> Map<K, These<A, B>>.partitionThese(): Pair<Map<K, A>, Map<K, B>> {
+ val a = mutableMapOf<K, A>()
+ val b = mutableMapOf<K, B>()
+ for ((k, t) in this) {
+ when (t) {
+ is These.Both -> {
+ a[k] = t.thiz
+ b[k] = t.that
+ }
+ is These.That -> {
+ b[k] = t.that
+ }
+ is These.This -> {
+ a[k] = t.thiz
+ }
+ }
+ }
+ return a to b
+}
diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/WithPrev.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/WithPrev.kt
new file mode 100644
index 000000000000..e52a6e166ec5
--- /dev/null
+++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/WithPrev.kt
@@ -0,0 +1,20 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.experimental.frp.util
+
+/** Holds a [newValue] emitted from a `TFlow`, along with the [previousValue] emitted value. */
+data class WithPrev<out S, out T : S>(val previousValue: S, val newValue: T)
diff --git a/packages/SystemUI/frp/test/com/android/systemui/experimental/frp/FrpTests.kt b/packages/SystemUI/frp/test/com/android/systemui/experimental/frp/FrpTests.kt
new file mode 100644
index 000000000000..a58f4995138a
--- /dev/null
+++ b/packages/SystemUI/frp/test/com/android/systemui/experimental/frp/FrpTests.kt
@@ -0,0 +1,1370 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@file:OptIn(ExperimentalCoroutinesApi::class, ExperimentalFrpApi::class)
+
+package com.android.systemui.experimental.frp
+
+import com.android.systemui.experimental.frp.util.Either
+import com.android.systemui.experimental.frp.util.Left
+import com.android.systemui.experimental.frp.util.Maybe
+import com.android.systemui.experimental.frp.util.None
+import com.android.systemui.experimental.frp.util.Right
+import com.android.systemui.experimental.frp.util.just
+import com.android.systemui.experimental.frp.util.map
+import com.android.systemui.experimental.frp.util.maybe
+import com.android.systemui.experimental.frp.util.none
+import kotlin.time.Duration
+import kotlin.time.Duration.Companion.seconds
+import kotlin.time.DurationUnit
+import kotlin.time.measureTime
+import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.async
+import kotlinx.coroutines.awaitCancellation
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableSharedFlow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.SharedFlow
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.first
+import kotlinx.coroutines.flow.flow
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.onEach
+import kotlinx.coroutines.flow.stateIn
+import kotlinx.coroutines.flow.toCollection
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.runCurrent
+import kotlinx.coroutines.test.runTest
+import org.junit.Assert.assertNull
+import org.junit.Assert.assertTrue
+import org.junit.Test
+
+class FrpTests {
+
+ @Test
+ fun basic() = runFrpTest { network ->
+ val emitter = network.mutableTFlow<Int>()
+ var result: Int? = null
+ activateSpec(network) { emitter.observe { result = it } }
+ runCurrent()
+ emitter.emit(3)
+ runCurrent()
+ assertEquals(3, result)
+ runCurrent()
+ }
+
+ @Test
+ fun basicTFlow() = runFrpTest { network ->
+ val emitter = network.mutableTFlow<Int>()
+ println("starting network")
+ val result = activateSpecWithResult(network) { emitter.nextDeferred() }
+ runCurrent()
+ println("emitting")
+ emitter.emit(3)
+ runCurrent()
+ println("awaiting")
+ assertEquals(3, result.await())
+ runCurrent()
+ }
+
+ @Test
+ fun basicTState() = runFrpTest { network ->
+ val emitter = network.mutableTFlow<Int>()
+ val result = activateSpecWithResult(network) { emitter.hold(0).stateChanges.nextDeferred() }
+ runCurrent()
+
+ emitter.emit(3)
+ runCurrent()
+
+ assertEquals(3, result.await())
+ }
+
+ @Test
+ fun basicEvent() = runFrpTest { network ->
+ val emitter = MutableSharedFlow<Int>()
+ val result = activateSpecWithResult(network) { async { emitter.first() } }
+ runCurrent()
+ emitter.emit(1)
+ runCurrent()
+ assertTrue("Result eventual has not completed.", result.isCompleted)
+ assertEquals(1, result.await())
+ }
+
+ @Test
+ fun basicTransactional() = runFrpTest { network ->
+ var value: Int? = null
+ var bSource = 1
+ val emitter = network.mutableTFlow<Unit>()
+ // Sampling this transactional will increment the source count.
+ val transactional = transactionally { bSource++ }
+ measureTime {
+ activateSpecWithResult(network) {
+ // Two different flows that sample the same transactional.
+ (0 until 2).map {
+ val sampled = emitter.sample(transactional) { _, v -> v }
+ sampled.toSharedFlow()
+ }
+ }
+ .forEach { backgroundScope.launch { it.collect { value = it } } }
+ runCurrent()
+ }
+ .also { println("setup: ${it.toString(DurationUnit.MILLISECONDS, 2)}") }
+
+ measureTime {
+ emitter.emit(Unit)
+ runCurrent()
+ }
+ .also { println("emit 1: ${it.toString(DurationUnit.MILLISECONDS, 2)}") }
+
+ // Even though the transactional would be sampled twice, the first result is cached.
+ assertEquals(2, bSource)
+ assertEquals(1, value)
+
+ measureTime {
+ bSource = 10
+ emitter.emit(Unit)
+ runCurrent()
+ }
+ .also { println("emit 2: ${it.toString(DurationUnit.MILLISECONDS, 2)}") }
+
+ assertEquals(11, bSource)
+ assertEquals(10, value)
+ }
+
+ @Test
+ fun diamondGraph() = runFrpTest { network ->
+ val flow = network.mutableTFlow<Int>()
+ val outFlow =
+ activateSpecWithResult(network) {
+ // map TFlow like we map Flow
+ val left = flow.map { "left" to it }.onEach { println("left: $it") }
+ val right = flow.map { "right" to it }.onEach { println("right: $it") }
+
+ // convert TFlows to TStates so that they can be combined
+ val combined =
+ left.hold("left" to 0).combineWith(right.hold("right" to 0)) { l, r -> l to r }
+ combined.stateChanges // get TState changes
+ .onEach { println("merged: $it") }
+ .toSharedFlow() // convert back to Flow
+ }
+ runCurrent()
+
+ val results = mutableListOf<Pair<Pair<String, Int>, Pair<String, Int>>>()
+ backgroundScope.launch { outFlow.toCollection(results) }
+ runCurrent()
+
+ flow.emit(1)
+ runCurrent()
+
+ flow.emit(2)
+ runCurrent()
+
+ assertEquals(
+ listOf(("left" to 1) to ("right" to 1), ("left" to 2) to ("right" to 2)),
+ results,
+ )
+ }
+
+ @Test
+ fun staticNetwork() = runFrpTest { network ->
+ var finalSum: Int? = null
+
+ val intEmitter = network.mutableTFlow<Int>()
+ val sampleEmitter = network.mutableTFlow<Unit>()
+
+ activateSpecWithResult(network) {
+ val updates = intEmitter.map { a -> { b: Int -> a + b } }
+
+ val sumD =
+ TStateLoop<Int>().apply {
+ loopback =
+ updates
+ .sample(this) { f, sum -> f(sum) }
+ .onEach { println("sum update: $it") }
+ .hold(0)
+ }
+ sampleEmitter
+ .onEach { println("sampleEmitter emitted") }
+ .sample(sumD) { _, sum -> sum }
+ .onEach { println("sampled: $it") }
+ .nextDeferred()
+ }
+ .let { launch { finalSum = it.await() } }
+
+ runCurrent()
+
+ (1..5).forEach { i ->
+ println("emitting: $i")
+ intEmitter.emit(i)
+ runCurrent()
+ }
+ runCurrent()
+
+ sampleEmitter.emit(Unit)
+ runCurrent()
+
+ assertEquals(15, finalSum)
+ }
+
+ @Test
+ fun recursiveDefinition() = runFrpTest { network ->
+ var wasSold = false
+ var currentAmt: Int? = null
+
+ val coin = network.mutableTFlow<Unit>()
+ val price = 50
+ val frpSpec = frpSpec {
+ val eSold = TFlowLoop<Unit>()
+
+ val eInsert =
+ coin.map {
+ { runningTotal: Int ->
+ println("TEST: $runningTotal - 10 = ${runningTotal - 10}")
+ runningTotal - 10
+ }
+ }
+
+ val eReset =
+ eSold.map {
+ { _: Int ->
+ println("TEST: Resetting")
+ price
+ }
+ }
+
+ val eUpdate = eInsert.mergeWith(eReset) { f, g -> { a -> g(f(a)) } }
+
+ val dTotal = TStateLoop<Int>()
+ dTotal.loopback = eUpdate.sample(dTotal) { f, total -> f(total) }.hold(price)
+
+ val eAmt = dTotal.stateChanges
+ val bAmt = transactionally { dTotal.sample() }
+ eSold.loopback =
+ coin
+ .sample(bAmt) { coin, total -> coin to total }
+ .mapMaybe { (_, total) -> maybe { guard { total <= 10 } } }
+
+ val amts = eAmt.filter { amt -> amt >= 0 }
+
+ amts.observe { currentAmt = it }
+ eSold.observe { wasSold = true }
+
+ eSold.nextDeferred()
+ }
+
+ activateSpec(network) { frpSpec.applySpec() }
+
+ runCurrent()
+
+ println()
+ println()
+ coin.emit(Unit)
+ runCurrent()
+
+ assertEquals(40, currentAmt)
+
+ println()
+ println()
+ coin.emit(Unit)
+ runCurrent()
+
+ assertEquals(30, currentAmt)
+
+ println()
+ println()
+ coin.emit(Unit)
+ runCurrent()
+
+ assertEquals(20, currentAmt)
+
+ println()
+ println()
+ coin.emit(Unit)
+ runCurrent()
+
+ assertEquals(10, currentAmt)
+ assertEquals(false, wasSold)
+
+ println()
+ println()
+ coin.emit(Unit)
+ runCurrent()
+
+ assertEquals(true, wasSold)
+ assertEquals(50, currentAmt)
+ }
+
+ @Test
+ fun promptCleanup() = runFrpTest { network ->
+ val emitter = network.mutableTFlow<Int>()
+ val stopper = network.mutableTFlow<Unit>()
+
+ var result: Int? = null
+
+ val flow = activateSpecWithResult(network) { emitter.takeUntil(stopper).toSharedFlow() }
+ backgroundScope.launch { flow.collect { result = it } }
+ runCurrent()
+
+ emitter.emit(2)
+ runCurrent()
+
+ assertEquals(2, result)
+
+ stopper.emit(Unit)
+ runCurrent()
+ }
+
+ @Test
+ fun switchTFlow() = runFrpTest { network ->
+ var currentSum: Int? = null
+
+ val switchHandler = network.mutableTFlow<Pair<TFlow<Int>, String>>()
+ val aHandler = network.mutableTFlow<Int>()
+ val stopHandler = network.mutableTFlow<Unit>()
+ val bHandler = network.mutableTFlow<Int>()
+
+ val sumFlow =
+ activateSpecWithResult(network) {
+ val switchE = TFlowLoop<TFlow<Int>>()
+ switchE.loopback =
+ switchHandler.mapStateful { (intFlow, name) ->
+ println("[onEach] Switching to: $name")
+ val nextSwitch =
+ switchE.skipNext().onEach { println("[onEach] switched-out") }
+ val stopEvent =
+ stopHandler
+ .onEach { println("[onEach] stopped") }
+ .mergeWith(nextSwitch) { _, b -> b }
+ intFlow.takeUntil(stopEvent)
+ }
+
+ val adderE: TFlow<(Int) -> Int> =
+ switchE.hold(emptyTFlow).switch().map { a ->
+ println("[onEach] new number $a")
+ ({ sum: Int ->
+ println("$a+$sum=${a + sum}")
+ sum + a
+ })
+ }
+
+ val sumD = TStateLoop<Int>()
+ sumD.loopback =
+ adderE
+ .sample(sumD) { f, sum -> f(sum) }
+ .onEach { println("[onEach] writing sum: $it") }
+ .hold(0)
+ val sumE = sumD.stateChanges
+
+ sumE.toSharedFlow()
+ }
+
+ runCurrent()
+
+ backgroundScope.launch { sumFlow.collect { currentSum = it } }
+
+ runCurrent()
+
+ switchHandler.emit(aHandler to "A")
+ runCurrent()
+
+ aHandler.emit(1)
+ runCurrent()
+
+ assertEquals(1, currentSum)
+
+ aHandler.emit(2)
+ runCurrent()
+
+ assertEquals(3, currentSum)
+
+ aHandler.emit(3)
+ runCurrent()
+
+ assertEquals(6, currentSum)
+
+ aHandler.emit(4)
+ runCurrent()
+
+ assertEquals(10, currentSum)
+
+ aHandler.emit(5)
+ runCurrent()
+
+ assertEquals(15, currentSum)
+
+ switchHandler.emit(bHandler to "B")
+ runCurrent()
+
+ aHandler.emit(6)
+ runCurrent()
+
+ assertEquals(15, currentSum)
+
+ bHandler.emit(6)
+ runCurrent()
+
+ assertEquals(21, currentSum)
+
+ bHandler.emit(7)
+ runCurrent()
+
+ assertEquals(28, currentSum)
+
+ bHandler.emit(8)
+ runCurrent()
+
+ assertEquals(36, currentSum)
+
+ bHandler.emit(9)
+ runCurrent()
+
+ assertEquals(45, currentSum)
+
+ bHandler.emit(10)
+ runCurrent()
+
+ assertEquals(55, currentSum)
+
+ println()
+ println("Stopping: B")
+ stopHandler.emit(Unit) // bHandler.complete()
+ runCurrent()
+
+ bHandler.emit(20)
+ runCurrent()
+
+ assertEquals(55, currentSum)
+
+ println()
+ println("Switching to: A2")
+ switchHandler.emit(aHandler to "A2")
+ runCurrent()
+
+ println("aHandler.emit(11)")
+ aHandler.emit(11)
+ runCurrent()
+
+ assertEquals(66, currentSum)
+
+ aHandler.emit(12)
+ runCurrent()
+
+ assertEquals(78, currentSum)
+
+ aHandler.emit(13)
+ runCurrent()
+
+ assertEquals(91, currentSum)
+
+ aHandler.emit(14)
+ runCurrent()
+
+ assertEquals(105, currentSum)
+
+ aHandler.emit(15)
+ runCurrent()
+
+ assertEquals(120, currentSum)
+
+ stopHandler.emit(Unit)
+ runCurrent()
+
+ aHandler.emit(100)
+ runCurrent()
+
+ assertEquals(120, currentSum)
+ }
+
+ @Test
+ fun switchIndirect() = runFrpTest { network ->
+ val emitter = network.mutableTFlow<Unit>()
+ activateSpec(network) {
+ emptyTFlow.map { emitter.map { 1 } }.flatten().map { "$it" }.observe()
+ }
+ runCurrent()
+ }
+
+ @Test
+ fun switchInWithResult() = runFrpTest { network ->
+ val emitter = network.mutableTFlow<Unit>()
+ val out =
+ activateSpecWithResult(network) {
+ emitter.map { emitter.map { 1 } }.flatten().toSharedFlow()
+ }
+ val result = out.stateIn(backgroundScope, SharingStarted.Eagerly, null)
+ runCurrent()
+ emitter.emit(Unit)
+ runCurrent()
+ assertEquals(null, result.value)
+ }
+
+ @Test
+ fun switchInCompleted() = runFrpTest { network ->
+ val outputs = mutableListOf<Int>()
+
+ val switchAH = network.mutableTFlow<Unit>()
+ val intAH = network.mutableTFlow<Int>()
+ val stopEmitter = network.mutableTFlow<Unit>()
+
+ val top = frpSpec {
+ val intS = intAH.takeUntil(stopEmitter)
+ val switched = switchAH.map { intS }.flatten()
+ switched.toSharedFlow()
+ }
+ val flow = activateSpecWithResult(network) { top.applySpec() }
+ backgroundScope.launch { flow.collect { outputs.add(it) } }
+ runCurrent()
+
+ switchAH.emit(Unit)
+ runCurrent()
+
+ stopEmitter.emit(Unit)
+ runCurrent()
+
+ // assertEquals(0, intAH.subscriptionCount.value)
+ intAH.emit(10)
+ runCurrent()
+
+ assertEquals(true, outputs.isEmpty())
+
+ switchAH.emit(Unit)
+ runCurrent()
+
+ // assertEquals(0, intAH.subscriptionCount.value)
+ intAH.emit(10)
+ runCurrent()
+
+ assertEquals(true, outputs.isEmpty())
+ }
+
+ @Test
+ fun switchTFlow_outerCompletesFirst() = runFrpTest { network ->
+ var stepResult: Int? = null
+
+ val switchAH = network.mutableTFlow<Unit>()
+ val switchStopEmitter = network.mutableTFlow<Unit>()
+ val intStopEmitter = network.mutableTFlow<Unit>()
+ val intAH = network.mutableTFlow<Int>()
+ val flow =
+ activateSpecWithResult(network) {
+ val intS = intAH.takeUntil(intStopEmitter)
+ val switchS = switchAH.takeUntil(switchStopEmitter)
+
+ val switched = switchS.map { intS }.flatten()
+ switched.toSharedFlow()
+ }
+ backgroundScope.launch { flow.collect { stepResult = it } }
+ runCurrent()
+
+ // assertEquals(0, intAH.subscriptionCount.value)
+ intAH.emit(100)
+ runCurrent()
+
+ assertEquals(null, stepResult)
+
+ switchAH.emit(Unit)
+ runCurrent()
+
+ // assertEquals(1, intAH.subscriptionCount.value)
+
+ intAH.emit(5)
+ runCurrent()
+
+ assertEquals(5, stepResult)
+
+ println("stop outer")
+ switchStopEmitter.emit(Unit) // switchAH.complete()
+ runCurrent()
+
+ // assertEquals(1, intAH.subscriptionCount.value)
+ // assertEquals(0, switchAH.subscriptionCount.value)
+
+ intAH.emit(10)
+ runCurrent()
+
+ assertEquals(10, stepResult)
+
+ println("stop inner")
+ intStopEmitter.emit(Unit) // intAH.complete()
+ runCurrent()
+
+ // assertEquals(just(10), network.await())
+ }
+
+ @Test
+ fun mapTFlow() = runFrpTest { network ->
+ val emitter = network.mutableTFlow<Int>()
+ var stepResult: Int? = null
+
+ val flow =
+ activateSpecWithResult(network) {
+ val mappedS = emitter.map { it * it }
+ mappedS.toSharedFlow()
+ }
+
+ backgroundScope.launch { flow.collect { stepResult = it } }
+ runCurrent()
+
+ emitter.emit(1)
+ runCurrent()
+
+ assertEquals(1, stepResult)
+
+ emitter.emit(2)
+ runCurrent()
+
+ assertEquals(4, stepResult)
+
+ emitter.emit(10)
+ runCurrent()
+
+ assertEquals(100, stepResult)
+ }
+
+ @Test
+ fun mapTransactional() = runFrpTest { network ->
+ var doubledResult: Int? = null
+ var pullValue = 0
+ val a = transactionally { pullValue }
+ val b = transactionally { a.sample() * 2 }
+ val emitter = network.mutableTFlow<Unit>()
+ val flow =
+ activateSpecWithResult(network) {
+ val sampleB = emitter.sample(b) { _, b -> b }
+ sampleB.toSharedFlow()
+ }
+
+ backgroundScope.launch { flow.collect { doubledResult = it } }
+
+ runCurrent()
+
+ emitter.emit(Unit)
+ runCurrent()
+
+ assertEquals(0, doubledResult)
+
+ pullValue = 5
+ emitter.emit(Unit)
+ runCurrent()
+
+ assertEquals(10, doubledResult)
+ }
+
+ @Test
+ fun mapTState() = runFrpTest { network ->
+ val emitter = network.mutableTFlow<Int>()
+ var stepResult: Int? = null
+ val flow =
+ activateSpecWithResult(network) {
+ val state = emitter.hold(0).map { it + 2 }
+ val stateCurrent = transactionally { state.sample() }
+ val stateChanges = state.stateChanges
+ val sampleState = emitter.sample(stateCurrent) { _, b -> b }
+ val merge = stateChanges.mergeWith(sampleState) { a, b -> a + b }
+ merge.toSharedFlow()
+ }
+ backgroundScope.launch { flow.collect { stepResult = it } }
+ runCurrent()
+
+ emitter.emit(1)
+ runCurrent()
+
+ assertEquals(5, stepResult)
+
+ emitter.emit(10)
+ runCurrent()
+
+ assertEquals(15, stepResult)
+ }
+
+ @Test
+ fun partitionEither() = runFrpTest { network ->
+ val emitter = network.mutableTFlow<Either<Int, Int>>()
+ val result =
+ activateSpecWithResult(network) {
+ val (l, r) = emitter.partitionEither()
+ val pDiamond =
+ l.map { it * 2 }
+ .mergeWith(r.map { it * -1 }) { _, _ -> error("unexpected coincidence") }
+ pDiamond.hold(null).toStateFlow()
+ }
+ runCurrent()
+
+ emitter.emit(Left(10))
+ runCurrent()
+
+ assertEquals(20, result.value)
+
+ emitter.emit(Right(30))
+ runCurrent()
+
+ assertEquals(-30, result.value)
+ }
+
+ @Test
+ fun accumTState() = runFrpTest { network ->
+ val emitter = network.mutableTFlow<Int>()
+ val sampler = network.mutableTFlow<Unit>()
+ var stepResult: Int? = null
+ val flow =
+ activateSpecWithResult(network) {
+ val sumState = emitter.map { a -> { b: Int -> a + b } }.fold(0) { f, a -> f(a) }
+
+ sumState.stateChanges
+ .mergeWith(sampler.sample(sumState) { _, sum -> sum }) { _, _ ->
+ error("Unexpected coincidence")
+ }
+ .toSharedFlow()
+ }
+
+ backgroundScope.launch { flow.collect { stepResult = it } }
+ runCurrent()
+
+ emitter.emit(5)
+ runCurrent()
+ assertEquals(5, stepResult)
+
+ emitter.emit(10)
+ runCurrent()
+ assertEquals(15, stepResult)
+
+ sampler.emit(Unit)
+ runCurrent()
+ assertEquals(15, stepResult)
+ }
+
+ @Test
+ fun mergeTFlows() = runFrpTest { network ->
+ val first = network.mutableTFlow<Int>()
+ val stopFirst = network.mutableTFlow<Unit>()
+ val second = network.mutableTFlow<Int>()
+ val stopSecond = network.mutableTFlow<Unit>()
+ var stepResult: Int? = null
+
+ val flow: SharedFlow<Int>
+ val setupDuration = measureTime {
+ flow =
+ activateSpecWithResult(network) {
+ val firstS = first.takeUntil(stopFirst)
+ val secondS = second.takeUntil(stopSecond)
+ val mergedS =
+ firstS.mergeWith(secondS) { _, _ -> error("Unexpected coincidence") }
+ mergedS.toSharedFlow()
+ // mergedS.last("onComplete")
+ }
+ backgroundScope.launch { flow.collect { stepResult = it } }
+ runCurrent()
+ }
+
+ // assertEquals(1, first.subscriptionCount.value)
+ // assertEquals(1, second.subscriptionCount.value)
+
+ val firstEmitDuration = measureTime {
+ first.emit(1)
+ runCurrent()
+ }
+
+ assertEquals(1, stepResult)
+
+ val secondEmitDuration = measureTime {
+ second.emit(2)
+ runCurrent()
+ }
+
+ assertEquals(2, stepResult)
+
+ val stopFirstDuration = measureTime {
+ stopFirst.emit(Unit)
+ runCurrent()
+ }
+
+ // assertEquals(0, first.subscriptionCount.value)
+ val testDeadEmitFirstDuration = measureTime {
+ first.emit(10)
+ runCurrent()
+ }
+
+ assertEquals(2, stepResult)
+
+ // assertEquals(1, second.subscriptionCount.value)
+
+ val secondEmitDuration2 = measureTime {
+ second.emit(3)
+ runCurrent()
+ }
+
+ assertEquals(3, stepResult)
+
+ val stopSecondDuration = measureTime {
+ stopSecond.emit(Unit)
+ runCurrent()
+ }
+
+ // assertEquals(0, second.subscriptionCount.value)
+ val testDeadEmitSecondDuration = measureTime {
+ second.emit(10)
+ runCurrent()
+ }
+
+ assertEquals(3, stepResult)
+
+ println(
+ """
+ setupDuration: ${setupDuration.toString(DurationUnit.MILLISECONDS, 2)}
+ firstEmitDuration: ${firstEmitDuration.toString(DurationUnit.MILLISECONDS, 2)}
+ secondEmitDuration: ${secondEmitDuration.toString(DurationUnit.MILLISECONDS, 2)}
+ stopFirstDuration: ${stopFirstDuration.toString(DurationUnit.MILLISECONDS, 2)}
+ testDeadEmitFirstDuration: ${
+ testDeadEmitFirstDuration.toString(
+ DurationUnit.MILLISECONDS,
+ 2,
+ )
+ }
+ secondEmitDuration2: ${secondEmitDuration2.toString(DurationUnit.MILLISECONDS, 2)}
+ stopSecondDuration: ${stopSecondDuration.toString(DurationUnit.MILLISECONDS, 2)}
+ testDeadEmitSecondDuration: ${
+ testDeadEmitSecondDuration.toString(
+ DurationUnit.MILLISECONDS,
+ 2,
+ )
+ }
+ """
+ .trimIndent()
+ )
+ }
+
+ @Test
+ fun sampleCancel() = runFrpTest { network ->
+ val updater = network.mutableTFlow<Int>()
+ val stopUpdater = network.mutableTFlow<Unit>()
+ val sampler = network.mutableTFlow<Unit>()
+ val stopSampler = network.mutableTFlow<Unit>()
+ var stepResult: Int? = null
+ val flow =
+ activateSpecWithResult(network) {
+ val stopSamplerFirst = stopSampler
+ val samplerS = sampler.takeUntil(stopSamplerFirst)
+ val stopUpdaterFirst = stopUpdater
+ val updaterS = updater.takeUntil(stopUpdaterFirst)
+ val sampledS = samplerS.sample(updaterS.hold(0)) { _, b -> b }
+ sampledS.toSharedFlow()
+ }
+
+ backgroundScope.launch { flow.collect { stepResult = it } }
+ runCurrent()
+
+ updater.emit(1)
+ runCurrent()
+
+ sampler.emit(Unit)
+ runCurrent()
+
+ assertEquals(1, stepResult)
+
+ stopSampler.emit(Unit)
+ runCurrent()
+
+ // assertEquals(0, updater.subscriptionCount.value)
+ // assertEquals(0, sampler.subscriptionCount.value)
+ updater.emit(10)
+ runCurrent()
+
+ sampler.emit(Unit)
+ runCurrent()
+
+ assertEquals(1, stepResult)
+ }
+
+ @Test
+ fun combineStates_differentUpstreams() = runFrpTest { network ->
+ val a = network.mutableTFlow<Int>()
+ val b = network.mutableTFlow<Int>()
+ var observed: Pair<Int, Int>? = null
+ val tState =
+ activateSpecWithResult(network) {
+ val state = combine(a.hold(0), b.hold(0)) { a, b -> Pair(a, b) }
+ state.stateChanges.observe { observed = it }
+ state
+ }
+ assertEquals(0 to 0, network.transact { tState.sample() })
+ assertEquals(null, observed)
+ a.emit(5)
+ assertEquals(5 to 0, observed)
+ assertEquals(5 to 0, network.transact { tState.sample() })
+ b.emit(3)
+ assertEquals(5 to 3, observed)
+ assertEquals(5 to 3, network.transact { tState.sample() })
+ }
+
+ @Test
+ fun sampleCombinedStates() = runFrpTest { network ->
+ val updater = network.mutableTFlow<Int>()
+ val emitter = network.mutableTFlow<Unit>()
+
+ val result =
+ activateSpecWithResult(network) {
+ val bA = updater.map { it * 2 }.hold(0)
+ val bB = updater.hold(0)
+ val combineD: TState<Pair<Int, Int>> = bA.combineWith(bB) { a, b -> a to b }
+ val sampleS = emitter.sample(combineD) { _, b -> b }
+ sampleS.nextDeferred()
+ }
+ println("launching")
+ runCurrent()
+
+ println("emitting update")
+ updater.emit(10)
+ runCurrent()
+
+ println("emitting sampler")
+ emitter.emit(Unit)
+ runCurrent()
+
+ println("asserting")
+ assertEquals(20 to 10, result.await())
+ }
+
+ @Test
+ fun switchMapPromptly() = runFrpTest { network ->
+ val emitter = network.mutableTFlow<Unit>()
+ val result =
+ activateSpecWithResult(network) {
+ emitter
+ .map { emitter.map { 1 }.map { it + 1 }.map { it * 2 } }
+ .hold(emptyTFlow)
+ .switchPromptly()
+ .nextDeferred()
+ }
+ runCurrent()
+
+ emitter.emit(Unit)
+ runCurrent()
+
+ assertTrue("Not complete", result.isCompleted)
+ assertEquals(4, result.await())
+ }
+
+ @Test
+ fun switchDeeper() = runFrpTest { network ->
+ val emitter = network.mutableTFlow<Unit>()
+ val e2 = network.mutableTFlow<Unit>()
+ val result =
+ activateSpecWithResult(network) {
+ val tres =
+ merge(e2.map { 1 }, e2.map { 2 }, transformCoincidence = { a, b -> a + b })
+ tres.observeBuild()
+ val switch = emitter.map { tres }.flatten()
+ merge(switch, e2.map { null }, transformCoincidence = { a, _ -> a })
+ .filterNotNull()
+ .nextDeferred()
+ }
+ runCurrent()
+
+ emitter.emit(Unit)
+ runCurrent()
+
+ e2.emit(Unit)
+ runCurrent()
+
+ assertTrue("Not complete", result.isCompleted)
+ assertEquals(3, result.await())
+ }
+
+ @Test
+ fun recursionBasic() = runFrpTest { network ->
+ val add1 = network.mutableTFlow<Unit>()
+ val sub1 = network.mutableTFlow<Unit>()
+ val stepResult: StateFlow<Int> =
+ activateSpecWithResult(network) {
+ val dSum = TStateLoop<Int>()
+ val sAdd1 = add1.sample(dSum) { _, sum -> sum + 1 }
+ val sMinus1 = sub1.sample(dSum) { _, sum -> sum - 1 }
+ dSum.loopback = sAdd1.mergeWith(sMinus1) { a, _ -> a }.hold(0)
+ dSum.toStateFlow()
+ }
+ runCurrent()
+
+ add1.emit(Unit)
+ runCurrent()
+
+ assertEquals(1, stepResult.value)
+
+ add1.emit(Unit)
+ runCurrent()
+
+ assertEquals(2, stepResult.value)
+
+ sub1.emit(Unit)
+ runCurrent()
+
+ assertEquals(1, stepResult.value)
+ }
+
+ @Test
+ fun recursiveTState() = runFrpTest { network ->
+ val e = network.mutableTFlow<Unit>()
+ var changes = 0
+ val state =
+ activateSpecWithResult(network) {
+ val s = TFlowLoop<Unit>()
+ val deferred = s.map { tStateOf(null) }
+ val e3 = e.map { tStateOf(Unit) }
+ val flattened = e3.mergeWith(deferred) { a, _ -> a }.hold(tStateOf(null)).flatten()
+ s.loopback = emptyTFlow
+ flattened.toStateFlow()
+ }
+
+ backgroundScope.launch { state.collect { changes++ } }
+ runCurrent()
+ }
+
+ @Test
+ fun fanOut() = runFrpTest { network ->
+ val e = network.mutableTFlow<Map<String, Int>>()
+ val (fooFlow, barFlow) =
+ activateSpecWithResult(network) {
+ val selector = e.groupByKey()
+ val foos = selector.eventsForKey("foo")
+ val bars = selector.eventsForKey("bar")
+ foos.toSharedFlow() to bars.toSharedFlow()
+ }
+ val stateFlow = fooFlow.stateIn(backgroundScope, SharingStarted.Eagerly, null)
+ backgroundScope.launch { barFlow.collect { error("unexpected bar") } }
+ runCurrent()
+
+ assertEquals(null, stateFlow.value)
+
+ e.emit(mapOf("foo" to 1))
+ runCurrent()
+
+ assertEquals(1, stateFlow.value)
+ }
+
+ @Test
+ fun fanOutLateSubscribe() = runFrpTest { network ->
+ val e = network.mutableTFlow<Map<String, Int>>()
+ val barFlow =
+ activateSpecWithResult(network) {
+ val selector = e.groupByKey()
+ selector
+ .eventsForKey("foo")
+ .map { selector.eventsForKey("bar") }
+ .hold(emptyTFlow)
+ .switchPromptly()
+ .toSharedFlow()
+ }
+ val stateFlow = barFlow.stateIn(backgroundScope, SharingStarted.Eagerly, null)
+ runCurrent()
+
+ assertEquals(null, stateFlow.value)
+
+ e.emit(mapOf("foo" to 0, "bar" to 1))
+ runCurrent()
+
+ assertEquals(1, stateFlow.value)
+ }
+
+ @Test
+ fun inputFlowCompleted() = runFrpTest { network ->
+ val results = mutableListOf<Int>()
+ val e = network.mutableTFlow<Int>()
+ activateSpec(network) { e.nextOnly().observe { results.add(it) } }
+ runCurrent()
+
+ e.emit(10)
+ runCurrent()
+
+ assertEquals(listOf(10), results)
+
+ e.emit(20)
+ runCurrent()
+ assertEquals(listOf(10), results)
+ }
+
+ @Test
+ fun fanOutThenMergeIncrementally() = runFrpTest { network ->
+ // A tflow of group updates, where a group is a tflow of child updates, where a child is a
+ // stateflow
+ val e = network.mutableTFlow<Map<Int, Maybe<TFlow<Map<Int, Maybe<StateFlow<String>>>>>>>()
+ println("fanOutMergeInc START")
+ val state =
+ activateSpecWithResult(network) {
+ // Convert nested Flows to nested TFlow/TState
+ val emitter: TFlow<Map<Int, Maybe<TFlow<Map<Int, Maybe<TState<String>>>>>>> =
+ e.mapBuild { m ->
+ m.mapValues { (_, mFlow) ->
+ mFlow.map {
+ it.mapBuild { m2 ->
+ m2.mapValues { (_, mState) ->
+ mState.map { stateFlow -> stateFlow.toTState() }
+ }
+ }
+ }
+ }
+ }
+ // Accumulate all of our updates into a single TState
+ val accState: TState<Map<Int, Map<Int, String>>> =
+ emitter
+ .mapStateful {
+ changeMap: Map<Int, Maybe<TFlow<Map<Int, Maybe<TState<String>>>>>> ->
+ changeMap.mapValues { (groupId, mGroupChanges) ->
+ mGroupChanges.map {
+ groupChanges: TFlow<Map<Int, Maybe<TState<String>>>> ->
+ // New group
+ val childChangeById = groupChanges.groupByKey()
+ val map: TFlow<Map<Int, Maybe<TFlow<Maybe<TState<String>>>>>> =
+ groupChanges.mapStateful {
+ gChangeMap: Map<Int, Maybe<TState<String>>> ->
+ gChangeMap.mapValues { (childId, mChild) ->
+ mChild.map { child: TState<String> ->
+ println("new child $childId in the house")
+ // New child
+ val eRemoved =
+ childChangeById
+ .eventsForKey(childId)
+ .filter { it === None }
+ .nextOnly()
+
+ val addChild: TFlow<Maybe<TState<String>>> =
+ now.map { mChild }
+ .onEach {
+ println(
+ "addChild (groupId=$groupId, childId=$childId) ${child.sample()}"
+ )
+ }
+
+ val removeChild: TFlow<Maybe<TState<String>>> =
+ eRemoved
+ .onEach {
+ println(
+ "removeChild (groupId=$groupId, childId=$childId)"
+ )
+ }
+ .map { none() }
+
+ addChild.mergeWith(removeChild) { _, _ ->
+ error("unexpected coincidence")
+ }
+ }
+ }
+ }
+ val mergeIncrementally: TFlow<Map<Int, Maybe<TState<String>>>> =
+ map.onEach { println("merge patch: $it") }
+ .mergeIncrementallyPromptly()
+ mergeIncrementally
+ .onEach { println("patch: $it") }
+ .foldMapIncrementally()
+ .flatMap { it.combineValues() }
+ }
+ }
+ }
+ .foldMapIncrementally()
+ .flatMap { it.combineValues() }
+
+ accState.toStateFlow()
+ }
+ runCurrent()
+
+ assertEquals(emptyMap(), state.value)
+
+ val emitter2 = network.mutableTFlow<Map<Int, Maybe<StateFlow<String>>>>()
+ println()
+ println("init outer 0")
+ e.emit(mapOf(0 to just(emitter2.onEach { println("emitter2 emit: $it") })))
+ runCurrent()
+
+ assertEquals(mapOf(0 to emptyMap()), state.value)
+
+ println()
+ println("init inner 10")
+ emitter2.emit(mapOf(10 to just(MutableStateFlow("(0, 10)"))))
+ runCurrent()
+
+ assertEquals(mapOf(0 to mapOf(10 to "(0, 10)")), state.value)
+
+ // replace
+ println()
+ println("replace inner 10")
+ emitter2.emit(mapOf(10 to just(MutableStateFlow("(1, 10)"))))
+ runCurrent()
+
+ assertEquals(mapOf(0 to mapOf(10 to "(1, 10)")), state.value)
+
+ // remove
+ emitter2.emit(mapOf(10 to none()))
+ runCurrent()
+
+ assertEquals(mapOf(0 to emptyMap()), state.value)
+
+ // add again
+ emitter2.emit(mapOf(10 to just(MutableStateFlow("(2, 10)"))))
+ runCurrent()
+
+ assertEquals(mapOf(0 to mapOf(10 to "(2, 10)")), state.value)
+
+ // batch update
+ emitter2.emit(
+ mapOf(
+ 10 to none(),
+ 11 to just(MutableStateFlow("(0, 11)")),
+ 12 to just(MutableStateFlow("(0, 12)")),
+ )
+ )
+ runCurrent()
+
+ assertEquals(mapOf(0 to mapOf(11 to "(0, 11)", 12 to "(0, 12)")), state.value)
+ }
+
+ @Test
+ fun applyLatestNetworkChanges() = runFrpTest { network ->
+ val newCount = network.mutableTFlow<FrpSpec<Flow<Int>>>()
+ val flowOfFlows: Flow<Flow<Int>> =
+ activateSpecWithResult(network) { newCount.applyLatestSpec().toSharedFlow() }
+ runCurrent()
+
+ val incCount = network.mutableTFlow<Unit>()
+ fun newFlow(): FrpSpec<SharedFlow<Int>> = frpSpec {
+ launchEffect {
+ try {
+ println("new flow!")
+ awaitCancellation()
+ } finally {
+ println("cancelling old flow")
+ }
+ }
+ lateinit var count: TState<Int>
+ count =
+ incCount
+ .onEach { println("incrementing ${count.sample()}") }
+ .fold(0) { _, c -> c + 1 }
+ count.stateChanges.toSharedFlow()
+ }
+
+ var outerCount = 0
+ val lastFlows: StateFlow<Pair<StateFlow<Int?>, StateFlow<Int?>>> =
+ flowOfFlows
+ .map { it.stateIn(backgroundScope, SharingStarted.Eagerly, null) }
+ .pairwise(MutableStateFlow(null))
+ .onEach { outerCount++ }
+ .stateIn(
+ backgroundScope,
+ SharingStarted.Eagerly,
+ MutableStateFlow(null) to MutableStateFlow(null),
+ )
+
+ runCurrent()
+
+ newCount.emit(newFlow())
+ runCurrent()
+
+ assertEquals(1, outerCount)
+ // assertEquals(1, incCount.subscriptionCount)
+ assertNull(lastFlows.value.second.value)
+
+ incCount.emit(Unit)
+ runCurrent()
+
+ println("checking")
+ assertEquals(1, lastFlows.value.second.value)
+
+ incCount.emit(Unit)
+ runCurrent()
+
+ assertEquals(2, lastFlows.value.second.value)
+
+ newCount.emit(newFlow())
+ runCurrent()
+ incCount.emit(Unit)
+ runCurrent()
+
+ // verify old flow is not getting updates
+ assertEquals(2, lastFlows.value.first.value)
+ // but the new one is
+ assertEquals(1, lastFlows.value.second.value)
+ }
+
+ @Test
+ fun effect() = runFrpTest { network ->
+ val input = network.mutableTFlow<Unit>()
+ var effectRunning = false
+ var count = 0
+ activateSpec(network) {
+ val j = launchEffect {
+ effectRunning = true
+ try {
+ awaitCancellation()
+ } finally {
+ effectRunning = false
+ }
+ }
+ merge(emptyTFlow, input.nextOnly()).observe {
+ count++
+ j.cancel()
+ }
+ }
+ runCurrent()
+ assertEquals(true, effectRunning)
+ assertEquals(0, count)
+
+ println("1")
+ input.emit(Unit)
+ assertEquals(false, effectRunning)
+ assertEquals(1, count)
+
+ println("2")
+ input.emit(Unit)
+ assertEquals(1, count)
+ println("3")
+ input.emit(Unit)
+ assertEquals(1, count)
+ }
+
+ private fun runFrpTest(
+ timeout: Duration = 3.seconds,
+ block: suspend TestScope.(FrpNetwork) -> Unit,
+ ) {
+ runTest(timeout = timeout) {
+ val network = backgroundScope.newFrpNetwork()
+ runCurrent()
+ block(network)
+ }
+ }
+
+ private fun TestScope.activateSpec(network: FrpNetwork, spec: FrpSpec<*>) =
+ backgroundScope.launch { network.activateSpec(spec) }
+
+ private suspend fun <R> TestScope.activateSpecWithResult(
+ network: FrpNetwork,
+ spec: FrpSpec<R>,
+ ): R =
+ CompletableDeferred<R>()
+ .apply { activateSpec(network) { complete(spec.applySpec()) } }
+ .await()
+}
+
+private fun <T> assertEquals(expected: T, actual: T) =
+ org.junit.Assert.assertEquals(expected, actual)
+
+private fun <A> Flow<A>.pairwise(init: A): Flow<Pair<A, A>> = flow {
+ var prev = init
+ collect {
+ emit(prev to it)
+ prev = it
+ }
+}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/BiometricTestExtensions.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/BiometricTestExtensions.kt
index 75a77cf781d2..194b41fbeaea 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/BiometricTestExtensions.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/BiometricTestExtensions.kt
@@ -27,12 +27,23 @@ import android.hardware.face.FaceSensorProperties
import android.hardware.face.FaceSensorPropertiesInternal
import android.hardware.fingerprint.FingerprintSensorProperties
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
+import com.android.keyguard.keyguardUpdateMonitor
+import com.android.systemui.SysuiTestableContext
+import com.android.systemui.biometrics.data.repository.biometricStatusRepository
+import com.android.systemui.biometrics.shared.model.AuthenticationReason
+import com.android.systemui.bouncer.data.repository.keyguardBouncerRepository
+import com.android.systemui.kosmos.Kosmos
+import com.android.systemui.res.R
+import com.android.systemui.util.mockito.whenever
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.runCurrent
/** Create [FingerprintSensorPropertiesInternal] for a test. */
internal fun fingerprintSensorPropertiesInternal(
ids: List<Int> = listOf(0),
strong: Boolean = true,
- sensorType: Int = FingerprintSensorProperties.TYPE_REAR
+ sensorType: Int = FingerprintSensorProperties.TYPE_REAR,
): List<FingerprintSensorPropertiesInternal> {
val componentInfo =
listOf(
@@ -41,15 +52,15 @@ internal fun fingerprintSensorPropertiesInternal(
"vendor/model/revision" /* hardwareVersion */,
"1.01" /* firmwareVersion */,
"00000001" /* serialNumber */,
- "" /* softwareVersion */
+ "", /* softwareVersion */
),
ComponentInfoInternal(
"matchingAlgorithm" /* componentId */,
"" /* hardwareVersion */,
"" /* firmwareVersion */,
"" /* serialNumber */,
- "vendor/version/revision" /* softwareVersion */
- )
+ "vendor/version/revision", /* softwareVersion */
+ ),
)
return ids.map { id ->
FingerprintSensorPropertiesInternal(
@@ -58,7 +69,7 @@ internal fun fingerprintSensorPropertiesInternal(
5 /* maxEnrollmentsPerUser */,
componentInfo,
sensorType,
- false /* resetLockoutRequiresHardwareAuthToken */
+ false, /* resetLockoutRequiresHardwareAuthToken */
)
}
}
@@ -75,15 +86,15 @@ internal fun faceSensorPropertiesInternal(
"vendor/model/revision" /* hardwareVersion */,
"1.01" /* firmwareVersion */,
"00000001" /* serialNumber */,
- "" /* softwareVersion */
+ "", /* softwareVersion */
),
ComponentInfoInternal(
"matchingAlgorithm" /* componentId */,
"" /* hardwareVersion */,
"" /* firmwareVersion */,
"" /* serialNumber */,
- "vendor/version/revision" /* softwareVersion */
- )
+ "vendor/version/revision", /* softwareVersion */
+ ),
)
return ids.map { id ->
FaceSensorPropertiesInternal(
@@ -94,7 +105,7 @@ internal fun faceSensorPropertiesInternal(
FaceSensorProperties.TYPE_RGB,
true /* supportsFaceDetection */,
true /* supportsSelfIllumination */,
- false /* resetLockoutRequiresHardwareAuthToken */
+ false, /* resetLockoutRequiresHardwareAuthToken */
)
}
}
@@ -145,3 +156,67 @@ internal fun promptInfo(
info.negativeButtonText = negativeButton
return info
}
+
+@OptIn(ExperimentalCoroutinesApi::class)
+internal fun TestScope.updateSfpsIndicatorRequests(
+ kosmos: Kosmos,
+ mContext: SysuiTestableContext,
+ primaryBouncerRequest: Boolean? = null,
+ alternateBouncerRequest: Boolean? = null,
+ biometricPromptRequest: Boolean? = null,
+ // TODO(b/365182034): update when rest to unlock feature is implemented
+ // progressBarShowing: Boolean? = null
+) {
+ biometricPromptRequest?.let { hasBiometricPromptRequest ->
+ if (hasBiometricPromptRequest) {
+ kosmos.biometricStatusRepository.setFingerprintAuthenticationReason(
+ AuthenticationReason.BiometricPromptAuthentication
+ )
+ } else {
+ kosmos.biometricStatusRepository.setFingerprintAuthenticationReason(
+ AuthenticationReason.NotRunning
+ )
+ }
+ }
+
+ primaryBouncerRequest?.let { hasPrimaryBouncerRequest ->
+ updatePrimaryBouncer(
+ kosmos,
+ mContext,
+ isShowing = hasPrimaryBouncerRequest,
+ isAnimatingAway = false,
+ fpsDetectionRunning = true,
+ isUnlockingWithFpAllowed = true,
+ )
+ }
+
+ alternateBouncerRequest?.let { hasAlternateBouncerRequest ->
+ kosmos.keyguardBouncerRepository.setAlternateVisible(hasAlternateBouncerRequest)
+ }
+
+ // TODO(b/365182034): set progress bar visibility when rest to unlock feature is implemented
+
+ runCurrent()
+}
+
+internal fun updatePrimaryBouncer(
+ kosmos: Kosmos,
+ mContext: SysuiTestableContext,
+ isShowing: Boolean,
+ isAnimatingAway: Boolean,
+ fpsDetectionRunning: Boolean,
+ isUnlockingWithFpAllowed: Boolean,
+) {
+ kosmos.keyguardBouncerRepository.setPrimaryShow(isShowing)
+ kosmos.keyguardBouncerRepository.setPrimaryStartingToHide(false)
+ val primaryStartDisappearAnimation = if (isAnimatingAway) Runnable {} else null
+ kosmos.keyguardBouncerRepository.setPrimaryStartDisappearAnimation(
+ primaryStartDisappearAnimation
+ )
+
+ whenever(kosmos.keyguardUpdateMonitor.isFingerprintDetectionRunning)
+ .thenReturn(fpsDetectionRunning)
+ whenever(kosmos.keyguardUpdateMonitor.isUnlockingWithFingerprintAllowed)
+ .thenReturn(isUnlockingWithFpAllowed)
+ mContext.orCreateTestableResources.addOverride(R.bool.config_show_sidefps_hint_on_bouncer, true)
+}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinderTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinderTest.kt
index 7fa165c19f60..57df66207380 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinderTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinderTest.kt
@@ -16,64 +16,48 @@
package com.android.systemui.biometrics.ui.binder
-import android.animation.Animator
-import android.graphics.Rect
-import android.hardware.biometrics.SensorLocationInternal
-import android.hardware.display.DisplayManager
-import android.hardware.display.DisplayManagerGlobal
import android.testing.TestableLooper
-import android.view.Display
-import android.view.DisplayInfo
import android.view.LayoutInflater
import android.view.View
-import android.view.ViewPropertyAnimator
-import android.view.WindowInsets
import android.view.WindowManager
-import android.view.WindowMetrics
import android.view.layoutInflater
import android.view.windowManager
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.airbnb.lottie.LottieAnimationView
-import com.android.keyguard.keyguardUpdateMonitor
import com.android.systemui.SysuiTestCase
-import com.android.systemui.biometrics.FingerprintInteractiveToAuthProvider
-import com.android.systemui.biometrics.data.repository.biometricStatusRepository
import com.android.systemui.biometrics.data.repository.fingerprintPropertyRepository
-import com.android.systemui.biometrics.shared.model.AuthenticationReason
import com.android.systemui.biometrics.shared.model.DisplayRotation
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
import com.android.systemui.biometrics.shared.model.SensorStrength
-import com.android.systemui.bouncer.data.repository.keyguardBouncerRepository
+import com.android.systemui.biometrics.updateSfpsIndicatorRequests
import com.android.systemui.display.data.repository.displayRepository
import com.android.systemui.display.data.repository.displayStateRepository
-import com.android.systemui.keyguard.ui.viewmodel.sideFpsProgressBarViewModel
import com.android.systemui.kosmos.testScope
import com.android.systemui.res.R
import com.android.systemui.testKosmos
import com.android.systemui.util.mockito.eq
-import com.android.systemui.util.mockito.whenever
import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runTest
import org.junit.Before
+import org.junit.Ignore
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
+import org.mockito.ArgumentCaptor
+import org.mockito.Captor
import org.mockito.Mock
-import org.mockito.Mockito
import org.mockito.Mockito.any
import org.mockito.Mockito.inOrder
import org.mockito.Mockito.mock
import org.mockito.Mockito.never
-import org.mockito.Mockito.spy
import org.mockito.Mockito.verify
import org.mockito.Mockito.`when`
import org.mockito.junit.MockitoJUnit
import org.mockito.junit.MockitoRule
-import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.firstValue
@OptIn(ExperimentalCoroutinesApi::class)
@SmallTest
@@ -83,84 +67,25 @@ class SideFpsOverlayViewBinderTest : SysuiTestCase() {
private val kosmos = testKosmos()
@JvmField @Rule var mockitoRule: MockitoRule = MockitoJUnit.rule()
- @Mock private lateinit var displayManager: DisplayManager
- @Mock
- private lateinit var fingerprintInteractiveToAuthProvider: FingerprintInteractiveToAuthProvider
@Mock private lateinit var layoutInflater: LayoutInflater
@Mock private lateinit var sideFpsView: View
-
- private val contextDisplayInfo = DisplayInfo()
-
- private var displayWidth: Int = 0
- private var displayHeight: Int = 0
- private var boundsWidth: Int = 0
- private var boundsHeight: Int = 0
-
- private lateinit var deviceConfig: DeviceConfig
- private lateinit var sensorLocation: SensorLocationInternal
-
- enum class DeviceConfig {
- X_ALIGNED,
- Y_ALIGNED,
- }
+ @Captor private lateinit var viewCaptor: ArgumentCaptor<View>
@Before
fun setup() {
allowTestableLooperAsMainThread() // repeatWhenAttached requires the main thread
-
- mContext = spy(mContext)
-
- val resources = mContext.resources
- whenever(mContext.display)
- .thenReturn(
- Display(mock(DisplayManagerGlobal::class.java), 1, contextDisplayInfo, resources)
- )
-
kosmos.layoutInflater = layoutInflater
-
- whenever(fingerprintInteractiveToAuthProvider.enabledForCurrentUser)
- .thenReturn(MutableStateFlow(false))
-
- context.addMockSystemService(DisplayManager::class.java, displayManager)
context.addMockSystemService(WindowManager::class.java, kosmos.windowManager)
-
`when`(layoutInflater.inflate(R.layout.sidefps_view, null, false)).thenReturn(sideFpsView)
`when`(sideFpsView.requireViewById<LottieAnimationView>(eq(R.id.sidefps_animation)))
.thenReturn(mock(LottieAnimationView::class.java))
- with(mock(ViewPropertyAnimator::class.java)) {
- `when`(sideFpsView.animate()).thenReturn(this)
- `when`(alpha(Mockito.anyFloat())).thenReturn(this)
- `when`(setStartDelay(Mockito.anyLong())).thenReturn(this)
- `when`(setDuration(Mockito.anyLong())).thenReturn(this)
- `when`(setListener(any())).thenAnswer {
- (it.arguments[0] as Animator.AnimatorListener).onAnimationEnd(
- mock(Animator::class.java)
- )
- this
- }
- }
}
@Test
fun verifyIndicatorNotAdded_whenInRearDisplayMode() {
kosmos.testScope.runTest {
- setupTestConfiguration(
- DeviceConfig.X_ALIGNED,
- rotation = DisplayRotation.ROTATION_0,
- isInRearDisplayMode = true
- )
- kosmos.biometricStatusRepository.setFingerprintAuthenticationReason(
- AuthenticationReason.NotRunning
- )
- kosmos.sideFpsProgressBarViewModel.setVisible(false)
- updatePrimaryBouncer(
- isShowing = true,
- isAnimatingAway = false,
- fpsDetectionRunning = true,
- isUnlockingWithFpAllowed = true
- )
- runCurrent()
-
+ setupTestConfiguration(isInRearDisplayMode = true)
+ updateSfpsIndicatorRequests(kosmos, mContext, primaryBouncerRequest = true)
verify(kosmos.windowManager, never()).addView(any(), any())
}
}
@@ -168,33 +93,14 @@ class SideFpsOverlayViewBinderTest : SysuiTestCase() {
@Test
fun verifyIndicatorShowAndHide_onPrimaryBouncerShowAndHide() {
kosmos.testScope.runTest {
- setupTestConfiguration(
- DeviceConfig.X_ALIGNED,
- rotation = DisplayRotation.ROTATION_0,
- isInRearDisplayMode = false
- )
- kosmos.biometricStatusRepository.setFingerprintAuthenticationReason(
- AuthenticationReason.NotRunning
- )
- kosmos.sideFpsProgressBarViewModel.setVisible(false)
- // Show primary bouncer
- updatePrimaryBouncer(
- isShowing = true,
- isAnimatingAway = false,
- fpsDetectionRunning = true,
- isUnlockingWithFpAllowed = true
- )
+ setupTestConfiguration(isInRearDisplayMode = false)
+ updateSfpsIndicatorRequests(kosmos, mContext, primaryBouncerRequest = true)
runCurrent()
verify(kosmos.windowManager).addView(any(), any())
// Hide primary bouncer
- updatePrimaryBouncer(
- isShowing = false,
- isAnimatingAway = false,
- fpsDetectionRunning = true,
- isUnlockingWithFpAllowed = true
- )
+ updateSfpsIndicatorRequests(kosmos, mContext, primaryBouncerRequest = false)
runCurrent()
verify(kosmos.windowManager).removeView(any())
@@ -204,30 +110,19 @@ class SideFpsOverlayViewBinderTest : SysuiTestCase() {
@Test
fun verifyIndicatorShowAndHide_onAlternateBouncerShowAndHide() {
kosmos.testScope.runTest {
- setupTestConfiguration(
- DeviceConfig.X_ALIGNED,
- rotation = DisplayRotation.ROTATION_0,
- isInRearDisplayMode = false
- )
- kosmos.biometricStatusRepository.setFingerprintAuthenticationReason(
- AuthenticationReason.NotRunning
- )
- kosmos.sideFpsProgressBarViewModel.setVisible(false)
- // Show alternate bouncer
- kosmos.keyguardBouncerRepository.setAlternateVisible(true)
+ setupTestConfiguration(isInRearDisplayMode = false)
+ updateSfpsIndicatorRequests(kosmos, mContext, alternateBouncerRequest = true)
runCurrent()
verify(kosmos.windowManager).addView(any(), any())
- var viewCaptor = argumentCaptor<View>()
verify(kosmos.windowManager).addView(viewCaptor.capture(), any())
verify(viewCaptor.firstValue)
.announceForAccessibility(
mContext.getText(R.string.accessibility_side_fingerprint_indicator_label)
)
- // Hide alternate bouncer
- kosmos.keyguardBouncerRepository.setAlternateVisible(false)
+ updateSfpsIndicatorRequests(kosmos, mContext, alternateBouncerRequest = false)
runCurrent()
verify(kosmos.windowManager).removeView(any())
@@ -237,30 +132,14 @@ class SideFpsOverlayViewBinderTest : SysuiTestCase() {
@Test
fun verifyIndicatorShownAndHidden_onSystemServerAuthenticationStartedAndStopped() {
kosmos.testScope.runTest {
- setupTestConfiguration(
- DeviceConfig.X_ALIGNED,
- rotation = DisplayRotation.ROTATION_0,
- isInRearDisplayMode = false
- )
- kosmos.sideFpsProgressBarViewModel.setVisible(false)
- updatePrimaryBouncer(
- isShowing = false,
- isAnimatingAway = false,
- fpsDetectionRunning = true,
- isUnlockingWithFpAllowed = true
- )
- // System server authentication started
- kosmos.biometricStatusRepository.setFingerprintAuthenticationReason(
- AuthenticationReason.BiometricPromptAuthentication
- )
+ setupTestConfiguration(isInRearDisplayMode = false)
+ updateSfpsIndicatorRequests(kosmos, mContext, biometricPromptRequest = true)
runCurrent()
verify(kosmos.windowManager).addView(any(), any())
// System server authentication stopped
- kosmos.biometricStatusRepository.setFingerprintAuthenticationReason(
- AuthenticationReason.NotRunning
- )
+ updateSfpsIndicatorRequests(kosmos, mContext, biometricPromptRequest = false)
runCurrent()
verify(kosmos.windowManager).removeView(any())
@@ -269,45 +148,37 @@ class SideFpsOverlayViewBinderTest : SysuiTestCase() {
// On progress bar shown - hide indicator
// On progress bar hidden - show indicator
+ // TODO(b/365182034): update + enable when rest to unlock feature is implemented
+ @Ignore("b/365182034")
@Test
fun verifyIndicatorProgressBarInteraction() {
kosmos.testScope.runTest {
// Pre-auth conditions
- setupTestConfiguration(
- DeviceConfig.X_ALIGNED,
- rotation = DisplayRotation.ROTATION_0,
- isInRearDisplayMode = false
- )
- kosmos.biometricStatusRepository.setFingerprintAuthenticationReason(
- AuthenticationReason.NotRunning
- )
- kosmos.sideFpsProgressBarViewModel.setVisible(false)
-
- // Show primary bouncer
- updatePrimaryBouncer(
- isShowing = true,
- isAnimatingAway = false,
- fpsDetectionRunning = true,
- isUnlockingWithFpAllowed = true
- )
+ setupTestConfiguration(isInRearDisplayMode = false)
+ updateSfpsIndicatorRequests(kosmos, mContext, primaryBouncerRequest = true)
runCurrent()
val inOrder = inOrder(kosmos.windowManager)
-
// Verify indicator shown
inOrder.verify(kosmos.windowManager).addView(any(), any())
// Set progress bar visible
- kosmos.sideFpsProgressBarViewModel.setVisible(true)
-
+ updateSfpsIndicatorRequests(
+ kosmos,
+ mContext,
+ primaryBouncerRequest = true,
+ ) // , progressBarShowing = true)
runCurrent()
// Verify indicator hidden
inOrder.verify(kosmos.windowManager).removeView(any())
// Set progress bar invisible
- kosmos.sideFpsProgressBarViewModel.setVisible(false)
-
+ updateSfpsIndicatorRequests(
+ kosmos,
+ mContext,
+ primaryBouncerRequest = true,
+ ) // , progressBarShowing = false)
runCurrent()
// Verify indicator shown
@@ -315,78 +186,18 @@ class SideFpsOverlayViewBinderTest : SysuiTestCase() {
}
}
- private fun updatePrimaryBouncer(
- isShowing: Boolean,
- isAnimatingAway: Boolean,
- fpsDetectionRunning: Boolean,
- isUnlockingWithFpAllowed: Boolean,
- ) {
- kosmos.keyguardBouncerRepository.setPrimaryShow(isShowing)
- kosmos.keyguardBouncerRepository.setPrimaryStartingToHide(false)
- val primaryStartDisappearAnimation = if (isAnimatingAway) Runnable {} else null
- kosmos.keyguardBouncerRepository.setPrimaryStartDisappearAnimation(
- primaryStartDisappearAnimation
- )
-
- whenever(kosmos.keyguardUpdateMonitor.isFingerprintDetectionRunning)
- .thenReturn(fpsDetectionRunning)
- whenever(kosmos.keyguardUpdateMonitor.isUnlockingWithFingerprintAllowed)
- .thenReturn(isUnlockingWithFpAllowed)
- mContext.orCreateTestableResources.addOverride(
- R.bool.config_show_sidefps_hint_on_bouncer,
- true
- )
- }
-
- private suspend fun TestScope.setupTestConfiguration(
- deviceConfig: DeviceConfig,
- rotation: DisplayRotation = DisplayRotation.ROTATION_0,
- isInRearDisplayMode: Boolean,
- ) {
- this@SideFpsOverlayViewBinderTest.deviceConfig = deviceConfig
-
- when (deviceConfig) {
- DeviceConfig.X_ALIGNED -> {
- displayWidth = 3000
- displayHeight = 1500
- boundsWidth = 200
- boundsHeight = 100
- sensorLocation = SensorLocationInternal("", 2500, 0, boundsWidth / 2)
- }
- DeviceConfig.Y_ALIGNED -> {
- displayWidth = 2500
- displayHeight = 2000
- boundsWidth = 100
- boundsHeight = 200
- sensorLocation = SensorLocationInternal("", displayWidth, 300, boundsHeight / 2)
- }
- }
-
- whenever(kosmos.windowManager.maximumWindowMetrics)
- .thenReturn(
- WindowMetrics(
- Rect(0, 0, displayWidth, displayHeight),
- mock(WindowInsets::class.java),
- )
- )
-
- contextDisplayInfo.uniqueId = DISPLAY_ID
-
+ private suspend fun TestScope.setupTestConfiguration(isInRearDisplayMode: Boolean) {
kosmos.fingerprintPropertyRepository.setProperties(
sensorId = 1,
strength = SensorStrength.STRONG,
sensorType = FingerprintSensorType.POWER_BUTTON,
- sensorLocations = mapOf(DISPLAY_ID to sensorLocation)
+ sensorLocations = emptyMap(),
)
kosmos.displayStateRepository.setIsInRearDisplayMode(isInRearDisplayMode)
- kosmos.displayStateRepository.setCurrentRotation(rotation)
+ kosmos.displayStateRepository.setCurrentRotation(DisplayRotation.ROTATION_0)
kosmos.displayRepository.emitDisplayChangeEvent(0)
kosmos.sideFpsOverlayViewBinder.start()
runCurrent()
}
-
- companion object {
- private const val DISPLAY_ID = "displayId"
- }
}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/viewmodel/SideFpsOverlayViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/viewmodel/SideFpsOverlayViewModelTest.kt
index 0db7b62b8ef1..84d062a3e7be 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/viewmodel/SideFpsOverlayViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/viewmodel/SideFpsOverlayViewModelTest.kt
@@ -30,23 +30,19 @@ import android.view.windowManager
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.airbnb.lottie.model.KeyPath
-import com.android.keyguard.keyguardUpdateMonitor
import com.android.settingslib.Utils
import com.android.systemui.SysuiTestCase
import com.android.systemui.biometrics.FingerprintInteractiveToAuthProvider
-import com.android.systemui.biometrics.data.repository.biometricStatusRepository
import com.android.systemui.biometrics.data.repository.fingerprintPropertyRepository
import com.android.systemui.biometrics.domain.interactor.displayStateInteractor
-import com.android.systemui.biometrics.shared.model.AuthenticationReason
import com.android.systemui.biometrics.shared.model.DisplayRotation
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
import com.android.systemui.biometrics.shared.model.LottieCallback
import com.android.systemui.biometrics.shared.model.SensorStrength
-import com.android.systemui.bouncer.data.repository.keyguardBouncerRepository
+import com.android.systemui.biometrics.updateSfpsIndicatorRequests
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.display.data.repository.displayRepository
import com.android.systemui.display.data.repository.displayStateRepository
-import com.android.systemui.keyguard.ui.viewmodel.sideFpsProgressBarViewModel
import com.android.systemui.kosmos.testScope
import com.android.systemui.res.R
import com.android.systemui.testKosmos
@@ -84,17 +80,17 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() {
private val indicatorColor =
Utils.getColorAttrDefaultColor(
context,
- com.android.internal.R.attr.materialColorPrimaryFixed
+ com.android.internal.R.attr.materialColorPrimaryFixed,
)
private val outerRimColor =
Utils.getColorAttrDefaultColor(
context,
- com.android.internal.R.attr.materialColorPrimaryFixedDim
+ com.android.internal.R.attr.materialColorPrimaryFixedDim,
)
private val chevronFill =
Utils.getColorAttrDefaultColor(
context,
- com.android.internal.R.attr.materialColorOnPrimaryFixed
+ com.android.internal.R.attr.materialColorOnPrimaryFixed,
)
private val color_blue400 =
context.getColor(com.android.settingslib.color.R.color.settingslib_color_blue400)
@@ -133,7 +129,7 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() {
setupTestConfiguration(
DeviceConfig.X_ALIGNED,
rotation = DisplayRotation.ROTATION_0,
- isInRearDisplayMode = false
+ isInRearDisplayMode = false,
)
val overlayViewProperties by
@@ -167,7 +163,7 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() {
setupTestConfiguration(
DeviceConfig.Y_ALIGNED,
rotation = DisplayRotation.ROTATION_0,
- isInRearDisplayMode = false
+ isInRearDisplayMode = false,
)
val overlayViewProperties by
@@ -201,7 +197,7 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() {
setupTestConfiguration(
DeviceConfig.X_ALIGNED,
rotation = DisplayRotation.ROTATION_0,
- isInRearDisplayMode = false
+ isInRearDisplayMode = false,
)
val overlayViewParams by
@@ -243,7 +239,7 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() {
setupTestConfiguration(
DeviceConfig.Y_ALIGNED,
rotation = DisplayRotation.ROTATION_0,
- isInRearDisplayMode = false
+ isInRearDisplayMode = false,
)
val overlayViewParams by
@@ -284,17 +280,7 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() {
kosmos.testScope.runTest {
val lottieCallbacks by collectLastValue(kosmos.sideFpsOverlayViewModel.lottieCallbacks)
- kosmos.biometricStatusRepository.setFingerprintAuthenticationReason(
- AuthenticationReason.NotRunning
- )
- kosmos.sideFpsProgressBarViewModel.setVisible(false)
-
- updatePrimaryBouncer(
- isShowing = true,
- isAnimatingAway = false,
- fpsDetectionRunning = true,
- isUnlockingWithFpAllowed = true
- )
+ updateSfpsIndicatorRequests(kosmos, mContext, primaryBouncerRequest = true)
runCurrent()
assertThat(lottieCallbacks)
@@ -312,17 +298,7 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() {
val lottieCallbacks by collectLastValue(kosmos.sideFpsOverlayViewModel.lottieCallbacks)
setDarkMode(true)
- kosmos.biometricStatusRepository.setFingerprintAuthenticationReason(
- AuthenticationReason.BiometricPromptAuthentication
- )
- kosmos.sideFpsProgressBarViewModel.setVisible(false)
-
- updatePrimaryBouncer(
- isShowing = false,
- isAnimatingAway = false,
- fpsDetectionRunning = true,
- isUnlockingWithFpAllowed = true
- )
+ updateSfpsIndicatorRequests(kosmos, mContext, biometricPromptRequest = true)
runCurrent()
assertThat(lottieCallbacks)
@@ -338,17 +314,7 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() {
val lottieCallbacks by collectLastValue(kosmos.sideFpsOverlayViewModel.lottieCallbacks)
setDarkMode(false)
- kosmos.biometricStatusRepository.setFingerprintAuthenticationReason(
- AuthenticationReason.BiometricPromptAuthentication
- )
- kosmos.sideFpsProgressBarViewModel.setVisible(false)
-
- updatePrimaryBouncer(
- isShowing = false,
- isAnimatingAway = false,
- fpsDetectionRunning = true,
- isUnlockingWithFpAllowed = true
- )
+ updateSfpsIndicatorRequests(kosmos, mContext, biometricPromptRequest = true)
runCurrent()
assertThat(lottieCallbacks)
@@ -371,29 +337,6 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() {
mContext.resources.configuration.uiMode = uiMode
}
- private fun updatePrimaryBouncer(
- isShowing: Boolean,
- isAnimatingAway: Boolean,
- fpsDetectionRunning: Boolean,
- isUnlockingWithFpAllowed: Boolean,
- ) {
- kosmos.keyguardBouncerRepository.setPrimaryShow(isShowing)
- kosmos.keyguardBouncerRepository.setPrimaryStartingToHide(false)
- val primaryStartDisappearAnimation = if (isAnimatingAway) Runnable {} else null
- kosmos.keyguardBouncerRepository.setPrimaryStartDisappearAnimation(
- primaryStartDisappearAnimation
- )
-
- whenever(kosmos.keyguardUpdateMonitor.isFingerprintDetectionRunning)
- .thenReturn(fpsDetectionRunning)
- whenever(kosmos.keyguardUpdateMonitor.isUnlockingWithFingerprintAllowed)
- .thenReturn(isUnlockingWithFpAllowed)
- mContext.orCreateTestableResources.addOverride(
- R.bool.config_show_sidefps_hint_on_bouncer,
- true
- )
- }
-
private suspend fun TestScope.setupTestConfiguration(
deviceConfig: DeviceConfig,
rotation: DisplayRotation = DisplayRotation.ROTATION_0,
@@ -432,7 +375,7 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() {
sensorId = 1,
strength = SensorStrength.STRONG,
sensorType = FingerprintSensorType.POWER_BUTTON,
- sensorLocations = mapOf(DISPLAY_ID to sensorLocation)
+ sensorLocations = mapOf(DISPLAY_ID to sensorLocation),
)
kosmos.displayStateRepository.setIsInRearDisplayMode(isInRearDisplayMode)
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractorTest.kt
index 1ec78742f0dd..4d81317b7755 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractorTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractorTest.kt
@@ -30,6 +30,7 @@ import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository
import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository
import com.android.systemui.keyguard.data.repository.keyguardOcclusionRepository
import com.android.systemui.keyguard.shared.model.KeyguardState
+import com.android.systemui.keyguard.shared.model.StatusBarState.KEYGUARD
import com.android.systemui.keyguard.shared.model.TransitionState
import com.android.systemui.keyguard.shared.model.TransitionStep
import com.android.systemui.keyguard.util.KeyguardTransitionRepositorySpySubject.Companion.assertThat as assertThatRepository
@@ -81,7 +82,7 @@ class FromLockscreenTransitionInteractorTest : SysuiTestCase() {
assertThat(values)
.containsExactly(
- null, // LOCKSCREEN -> AOD does not have any specific surface visibility.
+ null // LOCKSCREEN -> AOD does not have any specific surface visibility.
)
transitionRepository.sendTransitionStep(
@@ -118,6 +119,53 @@ class FromLockscreenTransitionInteractorTest : SysuiTestCase() {
}
@Test
+ fun draggingToPrimaryBouncerUpdateIsSent() =
+ testScope.runTest {
+ underTest.start()
+ transitionRepository.sendTransitionSteps(
+ from = KeyguardState.OFF,
+ to = KeyguardState.LOCKSCREEN,
+ testScope,
+ )
+
+ val steps by collectValues(transitionRepository.transitions)
+
+ shadeRepository.setLegacyShadeExpansion(0f)
+ shadeRepository.setLegacyShadeTracking(true)
+ keyguardRepository.setKeyguardDismissible(false)
+ keyguardRepository.setStatusBarState(KEYGUARD)
+ runCurrent()
+
+ // User starts dragging up
+ shadeRepository.setLegacyShadeExpansion(0.1f)
+ runCurrent()
+
+ assertThatRepository(transitionRepository)
+ .startedTransition(
+ from = KeyguardState.LOCKSCREEN,
+ to = KeyguardState.PRIMARY_BOUNCER,
+ )
+
+ // FakeKeyguardRepository doesn't send the step, so do that
+ transitionRepository.sendTransitionStep(
+ TransitionStep(
+ transitionState = TransitionState.STARTED,
+ from = KeyguardState.LOCKSCREEN,
+ to = KeyguardState.PRIMARY_BOUNCER,
+ value = 0f,
+ )
+ )
+ runCurrent()
+
+ // Update is sent
+ shadeRepository.setLegacyShadeExpansion(0.2f)
+ runCurrent()
+
+ assertThatRepository(transitionRepository)
+ .updatedTransition(value = 1f, state = TransitionState.RUNNING)
+ }
+
+ @Test
@EnableFlags(Flags.FLAG_KEYGUARD_WM_STATE_REFACTOR)
fun testTransitionsToGone_whenDismissFlingWhileDismissable_flagEnabled() =
testScope.runTest {
@@ -132,10 +180,7 @@ class FromLockscreenTransitionInteractorTest : SysuiTestCase() {
runCurrent()
assertThatRepository(transitionRepository)
- .startedTransition(
- from = KeyguardState.LOCKSCREEN,
- to = KeyguardState.GONE,
- )
+ .startedTransition(from = KeyguardState.LOCKSCREEN, to = KeyguardState.GONE)
}
@Test
@@ -184,15 +229,12 @@ class FromLockscreenTransitionInteractorTest : SysuiTestCase() {
true,
ActivityManager.RunningTaskInfo().apply {
topActivityType = WindowConfiguration.ACTIVITY_TYPE_STANDARD
- }
+ },
)
runCurrent()
assertThatRepository(transitionRepository)
- .startedTransition(
- from = KeyguardState.LOCKSCREEN,
- to = KeyguardState.OCCLUDED,
- )
+ .startedTransition(from = KeyguardState.LOCKSCREEN, to = KeyguardState.OCCLUDED)
}
@Test
@@ -207,14 +249,11 @@ class FromLockscreenTransitionInteractorTest : SysuiTestCase() {
true,
ActivityManager.RunningTaskInfo().apply {
topActivityType = WindowConfiguration.ACTIVITY_TYPE_DREAM
- }
+ },
)
runCurrent()
assertThatRepository(transitionRepository)
- .startedTransition(
- from = KeyguardState.LOCKSCREEN,
- to = KeyguardState.DREAMING,
- )
+ .startedTransition(from = KeyguardState.LOCKSCREEN, to = KeyguardState.DREAMING)
}
}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoaderTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoaderTest.kt
index 7da2e9a8a283..fc9e595945dd 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoaderTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoaderTest.kt
@@ -408,6 +408,40 @@ class MediaDataLoaderTest : SysuiTestCase() {
verify(mockImageLoader, times(1)).loadBitmap(any(), anyInt(), anyInt(), anyInt())
}
+ @OptIn(ExperimentalCoroutinesApi::class)
+ @Test
+ fun testLoadMediaDataInBg_fromResumeToActive_doesNotCancelResumeToActiveTask() =
+ testScope.runTest {
+ val mockImageLoader = mock<ImageLoader>()
+ val mediaDataLoader =
+ MediaDataLoader(
+ context,
+ testDispatcher,
+ testScope,
+ mediaControllerFactory,
+ mediaFlags,
+ mockImageLoader,
+ statusBarManager,
+ )
+ metadataBuilder.putString(
+ MediaMetadata.METADATA_KEY_ALBUM_ART_URI,
+ "content://album_art_uri",
+ )
+
+ testScope.launch {
+ mediaDataLoader.loadMediaData(
+ KEY,
+ createMediaNotification(),
+ isConvertingToActive = true,
+ )
+ }
+ testScope.launch { mediaDataLoader.loadMediaData(KEY, createMediaNotification()) }
+ testScope.launch { mediaDataLoader.loadMediaData(KEY, createMediaNotification()) }
+ testScope.advanceUntilIdle()
+
+ verify(mockImageLoader, times(2)).loadBitmap(any(), anyInt(), anyInt(), anyInt())
+ }
+
private fun createMediaNotification(
mediaSession: MediaSession? = session,
applicationInfo: ApplicationInfo? = null,
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationListViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationListViewModelTest.kt
index d12d6f6b885d..f40bfbdeb54b 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationListViewModelTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationListViewModelTest.kt
@@ -21,6 +21,7 @@ package com.android.systemui.statusbar.notification.stack.ui.viewmodel
import android.platform.test.annotations.EnableFlags
import android.platform.test.flag.junit.FlagsParameterization
import androidx.test.filters.SmallTest
+import com.android.app.tracing.coroutines.flow.map
import com.android.systemui.SysuiTestCase
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.flags.DisableSceneContainer
@@ -40,6 +41,7 @@ import com.android.systemui.statusbar.data.repository.fakeRemoteInputRepository
import com.android.systemui.statusbar.notification.data.repository.FakeHeadsUpRowRepository
import com.android.systemui.statusbar.notification.data.repository.activeNotificationListRepository
import com.android.systemui.statusbar.notification.data.repository.setActiveNotifs
+import com.android.systemui.statusbar.notification.emptyshade.shared.ModesEmptyShadeFix
import com.android.systemui.statusbar.notification.footer.shared.FooterViewRefactor
import com.android.systemui.statusbar.notification.stack.data.repository.headsUpNotificationRepository
import com.android.systemui.statusbar.policy.data.repository.fakeUserSetupRepository
@@ -150,7 +152,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas
@Test
fun shouldShowEmptyShadeView_trueWhenNoNotifs() =
testScope.runTest {
- val shouldShowEmptyShadeView by collectLastValue(underTest.shouldShowEmptyShadeView)
+ val shouldShowEmptyShadeView by collectEmptyShadeViewVisibility()
val shouldIncludeFooterView by collectFooterViewVisibility()
// WHEN has no notifs
@@ -165,7 +167,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas
@Test
fun shouldShowEmptyShadeView_falseWhenNotifs() =
testScope.runTest {
- val shouldShowEmptyShadeView by collectLastValue(underTest.shouldShowEmptyShadeView)
+ val shouldShowEmptyShadeView by collectEmptyShadeViewVisibility()
// WHEN has notifs
activeNotificationListRepository.setActiveNotifs(count = 2)
@@ -178,7 +180,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas
@Test
fun shouldShowEmptyShadeView_falseWhenQsExpandedDefault() =
testScope.runTest {
- val shouldShow by collectLastValue(underTest.shouldShowEmptyShadeView)
+ val shouldShow by collectEmptyShadeViewVisibility()
// WHEN has no notifs
activeNotificationListRepository.setActiveNotifs(count = 0)
@@ -193,7 +195,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas
@Test
fun shouldShowEmptyShadeView_trueWhenQsExpandedInSplitShade() =
testScope.runTest {
- val shouldShowEmptyShadeView by collectLastValue(underTest.shouldShowEmptyShadeView)
+ val shouldShowEmptyShadeView by collectEmptyShadeViewVisibility()
val shouldIncludeFooterView by collectFooterViewVisibility()
// WHEN has no notifs
@@ -214,7 +216,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas
@Test
fun shouldShowEmptyShadeView_trueWhenLockedShade() =
testScope.runTest {
- val shouldShowEmptyShadeView by collectLastValue(underTest.shouldShowEmptyShadeView)
+ val shouldShowEmptyShadeView by collectEmptyShadeViewVisibility()
val shouldIncludeFooterView by collectFooterViewVisibility()
// WHEN has no notifs
@@ -231,7 +233,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas
@Test
fun shouldShowEmptyShadeView_falseWhenKeyguard() =
testScope.runTest {
- val shouldShow by collectLastValue(underTest.shouldShowEmptyShadeView)
+ val shouldShow by collectEmptyShadeViewVisibility()
// WHEN has no notifs
activeNotificationListRepository.setActiveNotifs(count = 0)
@@ -246,7 +248,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas
@Test
fun shouldShowEmptyShadeView_falseWhenStartingToSleep() =
testScope.runTest {
- val shouldShow by collectLastValue(underTest.shouldShowEmptyShadeView)
+ val shouldShow by collectEmptyShadeViewVisibility()
// WHEN has no notifs
activeNotificationListRepository.setActiveNotifs(count = 0)
@@ -264,7 +266,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas
fun shouldIncludeFooterView_trueWhenShade() =
testScope.runTest {
val shouldIncludeFooterView by collectFooterViewVisibility()
- val shouldShowEmptyShadeView by collectLastValue(underTest.shouldShowEmptyShadeView)
+ val shouldShowEmptyShadeView by collectEmptyShadeViewVisibility()
// WHEN has notifs
activeNotificationListRepository.setActiveNotifs(count = 2)
@@ -282,7 +284,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas
fun shouldIncludeFooterView_trueWhenLockedShade() =
testScope.runTest {
val shouldIncludeFooterView by collectFooterViewVisibility()
- val shouldShowEmptyShadeView by collectLastValue(underTest.shouldShowEmptyShadeView)
+ val shouldShowEmptyShadeView by collectEmptyShadeViewVisibility()
// WHEN has notifs
activeNotificationListRepository.setActiveNotifs(count = 2)
@@ -370,7 +372,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas
fun shouldIncludeFooterView_trueWhenQsExpandedSplitShade() =
testScope.runTest {
val shouldIncludeFooterView by collectFooterViewVisibility()
- val shouldShowEmptyShadeView by collectLastValue(underTest.shouldShowEmptyShadeView)
+ val shouldShowEmptyShadeView by collectEmptyShadeViewVisibility()
// WHEN has notifs
activeNotificationListRepository.setActiveNotifs(count = 2)
@@ -614,4 +616,11 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas
if (SceneContainerFlag.isEnabled) underTest.shouldShowFooterView
else underTest.shouldIncludeFooterView
)
+
+ private fun TestScope.collectEmptyShadeViewVisibility() =
+ collectLastValue(
+ if (ModesEmptyShadeFix.isEnabled)
+ underTest.shouldShowEmptyShadeViewAnimated.map { it.value }
+ else underTest.shouldShowEmptyShadeView
+ )
}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/HeadsUpManagerPhoneTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/HeadsUpManagerPhoneTest.kt
index 305367213571..1915e8ede7e7 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/HeadsUpManagerPhoneTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/HeadsUpManagerPhoneTest.kt
@@ -47,6 +47,7 @@ import com.android.systemui.util.kotlin.JavaAdapter
import com.android.systemui.util.mockito.mock
import com.android.systemui.util.settings.GlobalSettings
import com.android.systemui.util.time.SystemClock
+import com.google.common.truth.Truth.assertThat
import junit.framework.Assert
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.MutableStateFlow
@@ -244,35 +245,37 @@ class HeadsUpManagerPhoneTest(flags: FlagsParameterization) : BaseHeadsUpManager
mSystemClock.advanceTime((TEST_AUTO_DISMISS_TIME + hmp.mExtensionTime / 2).toLong())
Assert.assertTrue(hmp.isHeadsUpEntry(entry.key))
}
+ @Test
+ @EnableFlags(NotificationThrottleHun.FLAG_NAME)
+ fun testShowNotification_removeWhenReorderingAllowedTrue() {
+ whenever(mVSProvider.isReorderingAllowed).thenReturn(true)
+ val hmp = createHeadsUpManagerPhone()
+
+ val notifEntry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext)
+ hmp.showNotification(notifEntry)
+ assertThat(hmp.mEntriesToRemoveWhenReorderingAllowed.contains(notifEntry)).isTrue();
+ }
@Test
@EnableFlags(NotificationThrottleHun.FLAG_NAME)
- fun testShowNotification_reorderNotAllowed_notPulsing_seenInShadeTrue() {
+ fun testShowNotification_reorderNotAllowed_seenInShadeTrue() {
whenever(mVSProvider.isReorderingAllowed).thenReturn(false)
val hmp = createHeadsUpManagerPhone()
val notifEntry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext)
- val row = mock<ExpandableNotificationRow>()
- whenever(row.showingPulsing()).thenReturn(false)
- notifEntry.row = row
-
hmp.showNotification(notifEntry)
- Assert.assertTrue(notifEntry.isSeenInShade)
+ assertThat(notifEntry.isSeenInShade).isTrue();
}
@Test
@EnableFlags(NotificationThrottleHun.FLAG_NAME)
- fun testShowNotification_reorderAllowed_notPulsing_seenInShadeFalse() {
+ fun testShowNotification_reorderAllowed_seenInShadeFalse() {
whenever(mVSProvider.isReorderingAllowed).thenReturn(true)
val hmp = createHeadsUpManagerPhone()
val notifEntry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext)
- val row = mock<ExpandableNotificationRow>()
- whenever(row.showingPulsing()).thenReturn(false)
- notifEntry.row = row
-
hmp.showNotification(notifEntry)
- Assert.assertFalse(notifEntry.isSeenInShade)
+ assertThat(notifEntry.isSeenInShade).isFalse();
}
@Test
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/EasterEggGestureTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/EasterEggGestureTest.kt
new file mode 100644
index 000000000000..a83ed5649889
--- /dev/null
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/EasterEggGestureTest.kt
@@ -0,0 +1,156 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.touchpad.tutorial.ui.gesture
+
+import android.view.MotionEvent
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.touchpad.tutorial.ui.gesture.MultiFingerGesture.Companion.SWIPE_DISTANCE
+import com.google.common.truth.Truth.assertThat
+import kotlin.math.cos
+import kotlin.math.sin
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class EasterEggGestureTest : SysuiTestCase() {
+
+ private data class Point(val x: Float, val y: Float)
+
+ private var triggered = false
+ private val handler =
+ TouchpadGestureHandler(
+ BackGestureMonitor(
+ gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt(),
+ gestureStateChangedCallback = {},
+ ),
+ EasterEggGestureMonitor(callback = { triggered = true }),
+ )
+
+ @Test
+ fun easterEggTriggeredAfterThreeCircles() {
+ assertStateAfterTwoFingerGesture(
+ gesturePath = generateCircularGesturePoints(circlesCount = 3),
+ wasTriggered = true,
+ )
+ }
+
+ @Test
+ fun easterEggTriggeredAfterThreeImperfectCircles() {
+ assertStateAfterTwoFingerGesture(
+ gesturePath =
+ generateCircularGesturePoints(circlesCount = 3, radiusNoiseFraction = 0.2),
+ wasTriggered = true,
+ )
+ }
+
+ @Test
+ fun easterEggTriggeredAfterFiveCircles() {
+ assertStateAfterTwoFingerGesture(
+ gesturePath = generateCircularGesturePoints(circlesCount = 5),
+ wasTriggered = true,
+ )
+ }
+
+ @Test
+ fun easterEggNotTriggeredAfterTwoCircles() {
+ assertStateAfterTwoFingerGesture(
+ gesturePath = generateCircularGesturePoints(circlesCount = 2),
+ wasTriggered = false,
+ )
+ }
+
+ @Test
+ fun easterEggNotTriggeredAfterVariousSwipes() {
+ val allSwipeGestures =
+ listOf(
+ // two finger gestures
+ TwoFingerGesture.swipeUp(),
+ TwoFingerGesture.swipeDown(),
+ TwoFingerGesture.swipeLeft(),
+ TwoFingerGesture.swipeRight(),
+ // three finger gestures
+ ThreeFingerGesture.swipeUp(),
+ ThreeFingerGesture.swipeDown(),
+ ThreeFingerGesture.swipeLeft(),
+ ThreeFingerGesture.swipeRight(),
+ // four finger gestures
+ FourFingerGesture.swipeUp(),
+ FourFingerGesture.swipeDown(),
+ FourFingerGesture.swipeLeft(),
+ FourFingerGesture.swipeRight(),
+ )
+ allSwipeGestures.forEach { gesture ->
+ assertStateAfterEvents(events = gesture, wasTriggered = false)
+ }
+ }
+
+ private fun assertStateAfterEvents(events: List<MotionEvent>, wasTriggered: Boolean) {
+ events.forEach { handler.onMotionEvent(it) }
+ assertThat(triggered).isEqualTo(wasTriggered)
+ }
+
+ private fun assertStateAfterTwoFingerGesture(gesturePath: List<Point>, wasTriggered: Boolean) {
+ val events = TwoFingerGesture.createEvents { gesturePath.forEach { (x, y) -> move(x, y) } }
+ assertStateAfterEvents(events = events, wasTriggered = wasTriggered)
+ }
+
+ /**
+ * Generates list of points that would make up clockwise circular motion with given [radius].
+ * [circlesCount] determines how many full circles gesture should perform. [radiusNoiseFraction]
+ * can introduce noise to mimic real-world gesture which is not perfect - shape will be still
+ * circular but radius at any given point can be deviate from given radius by
+ * [radiusNoiseFraction].
+ */
+ private fun generateCircularGesturePoints(
+ circlesCount: Int,
+ radiusNoiseFraction: Double? = null,
+ radius: Float = 100f,
+ ): List<Point> {
+ val pointsPerCircle = 50
+ val angleStep = 360 / pointsPerCircle
+ val angleBuffer = 20 // buffer to make sure we're doing a bit more than 360 degree
+ val totalAngle = circlesCount * (360 + angleBuffer)
+ // Because all gestures in tests should start at (DEFAULT_X, DEFAULT_Y) we need to shift
+ // circle center x coordinate by radius
+ val centerX = -radius
+ val centerY = 0f
+
+ val events = mutableListOf<Point>()
+ val randomNoise: (Double) -> Double =
+ if (radiusNoiseFraction == null) {
+ { 0.0 }
+ } else {
+ { radianAngle -> sin(radianAngle * 2) * radiusNoiseFraction }
+ }
+
+ var currentAngle = 0f
+ // as cos(0) == 1 and sin(0) == 0 we start gesture at position of (radius, 0) and go
+ // clockwise - first Y increases and X decreases
+ while (currentAngle < totalAngle) {
+ val radianAngle = Math.toRadians(currentAngle.toDouble())
+ val radiusWithNoise = radius * (1 + randomNoise(radianAngle).toFloat())
+ val x = centerX + radiusWithNoise * cos(radianAngle).toFloat()
+ val y = centerY + radiusWithNoise * sin(radianAngle).toFloat()
+ events.add(Point(x, y))
+ currentAngle += angleStep
+ }
+ return events
+ }
+}
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandlerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandlerTest.kt
index 3a01d4f5a500..466ddbe25c54 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandlerTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandlerTest.kt
@@ -41,8 +41,9 @@ class TouchpadGestureHandlerTest : SysuiTestCase() {
TouchpadGestureHandler(
BackGestureMonitor(
gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt(),
- gestureStateChangedCallback = { gestureState = it }
- )
+ gestureStateChangedCallback = { gestureState = it },
+ ),
+ EasterEggGestureMonitor {},
)
@Test
diff --git a/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml b/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml
index 3b3ed39c8993..91cd019c85d1 100644
--- a/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml
+++ b/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml
@@ -215,17 +215,4 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0"
tools:srcCompat="@tools:sample/avatars" />
-
- <com.android.systemui.biometrics.BiometricPromptLottieViewWrapper
- android:id="@+id/biometric_icon_overlay"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:layout_gravity="center"
- android:contentDescription="@null"
- android:scaleType="fitXY"
- android:importantForAccessibility="no"
- app:layout_constraintBottom_toBottomOf="@+id/biometric_icon"
- app:layout_constraintEnd_toEndOf="@+id/biometric_icon"
- app:layout_constraintStart_toStartOf="@+id/biometric_icon"
- app:layout_constraintTop_toTopOf="@+id/biometric_icon" />
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/packages/SystemUI/res/layout/biometric_prompt_two_pane_layout.xml b/packages/SystemUI/res/layout/biometric_prompt_two_pane_layout.xml
index 2a00495e9d01..51117a7845df 100644
--- a/packages/SystemUI/res/layout/biometric_prompt_two_pane_layout.xml
+++ b/packages/SystemUI/res/layout/biometric_prompt_two_pane_layout.xml
@@ -40,19 +40,6 @@ android:layout_height="match_parent">
app:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@tools:sample/avatars" />
- <com.android.systemui.biometrics.BiometricPromptLottieViewWrapper
- android:id="@+id/biometric_icon_overlay"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:layout_gravity="center"
- android:contentDescription="@null"
- android:scaleType="fitXY"
- android:importantForAccessibility="no"
- app:layout_constraintBottom_toBottomOf="@+id/biometric_icon"
- app:layout_constraintEnd_toEndOf="@+id/biometric_icon"
- app:layout_constraintStart_toStartOf="@+id/biometric_icon"
- app:layout_constraintTop_toTopOf="@+id/biometric_icon" />
-
<ScrollView
android:id="@+id/scrollView"
android:layout_width="0dp"
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index 9b7ae5da01ed..cea405b7d18d 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -573,8 +573,7 @@
<string name="notification_section_header_conversations" msgid="821834744538345661">"Conversations"</string>
<string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Clear all silent notifications"</string>
<string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notifications paused by Do Not Disturb"</string>
- <!-- no translation found for modes_suppressing_shade_text (6037581130837903239) -->
- <skip />
+ <string name="modes_suppressing_shade_text" msgid="6037581130837903239">"{count,plural,offset:1 =0{No notifications}=1{Notifications paused by {mode}}=2{Notifications paused by {mode} and one other mode}other{Notifications paused by {mode} and # other modes}}"</string>
<string name="media_projection_action_text" msgid="3634906766918186440">"Start now"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"No notifications"</string>
<string name="no_unseen_notif_text" msgid="395512586119868682">"No new notifications"</string>
@@ -1436,6 +1435,8 @@
<string name="all_apps_edu_toast_content" msgid="8807496014667211562">"To view all your apps, press the action key on your keyboard"</string>
<string name="redacted_notification_single_line_title" msgid="212019960919261670">"Redacted"</string>
<string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Unlock to view"</string>
+ <!-- no translation found for contextual_education_dialog_title (4630392552837487324) -->
+ <skip />
<string name="back_edu_notification_title" msgid="5624780717751357278">"Use your touchpad to go back"</string>
<string name="back_edu_notification_content" msgid="2497557451540954068">"Swipe left or right using three fingers. Tap to learn more gestures."</string>
<string name="home_edu_notification_title" msgid="6097902076909654045">"Use your touchpad to go home"</string>
diff --git a/packages/SystemUI/res/values-night/styles.xml b/packages/SystemUI/res/values-night/styles.xml
index e9dd039f38c2..7bd4ca8b940b 100644
--- a/packages/SystemUI/res/values-night/styles.xml
+++ b/packages/SystemUI/res/values-night/styles.xml
@@ -64,4 +64,9 @@
<item name="android:windowLightNavigationBar">false</item>
</style>
+ <style name="ContextualEduDialog" parent="@android:style/Theme.DeviceDefault.Dialog.NoActionBar">
+ <!-- To make the dialog wrap to content when the education text is short -->
+ <item name="windowMinWidthMajor">0%</item>
+ <item name="windowMinWidthMinor">0%</item>
+ </style>
</resources>
diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml
index 5c9679d73d41..399523e1aba2 100644
--- a/packages/SystemUI/res/values-pt-rBR/strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/strings.xml
@@ -1436,6 +1436,8 @@
<string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Para ver todos os apps, pressione a tecla de ação no teclado"</string>
<string name="redacted_notification_single_line_title" msgid="212019960919261670">"Encoberto"</string>
<string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Desbloquear para visualizar"</string>
+ <!-- no translation found for contextual_education_dialog_title (4630392552837487324) -->
+ <skip />
<string name="back_edu_notification_title" msgid="5624780717751357278">"Use o touchpad para voltar"</string>
<string name="back_edu_notification_content" msgid="2497557451540954068">"Deslize para a esquerda ou direita usando três dedos. Toque para aprender outros gestos."</string>
<string name="home_edu_notification_title" msgid="6097902076909654045">"Use o touchpad para acessar a tela inicial"</string>
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index b34d6e4067b6..1c09f84b6fd0 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -1721,7 +1721,7 @@
<item name="android:windowLightNavigationBar">true</item>
</style>
- <style name="ContextualEduDialog" parent="@android:style/Theme.DeviceDefault.Dialog.NoActionBar">
+ <style name="ContextualEduDialog" parent="@android:style/Theme.DeviceDefault.Light.Dialog.NoActionBar">
<!-- To make the dialog wrap to content when the education text is short -->
<item name="windowMinWidthMajor">0%</item>
<item name="windowMinWidthMinor">0%</item>
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java
index 78cd02fed9eb..ab611901328d 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java
@@ -347,7 +347,12 @@ public class QuickStepContract {
}
// Disable back gesture on the hub, but not when the shade is showing.
if ((sysuiStateFlags & SYSUI_STATE_COMMUNAL_HUB_SHOWING) != 0) {
- return (sysuiStateFlags & SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE) == 0;
+ // Use QS expanded signal as the notification panel is always considered visible
+ // expanded when on the lock screen and when opening hub over lock screen. This does
+ // mean that back gesture is disabled when opening shade over hub while in portrait
+ // mode, since QS is not expanded.
+ // TODO(b/370108274): allow back gesture on shade over hub in portrait
+ return (sysuiStateFlags & SYSUI_STATE_QUICK_SETTINGS_EXPANDED) == 0;
}
if ((sysuiStateFlags & SYSUI_STATE_ALLOW_GESTURE_IGNORING_BAR_VISIBILITY) != 0) {
sysuiStateFlags &= ~SYSUI_STATE_NAV_BAR_HIDDEN;
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
index 22130f827841..8e01e04c155e 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -114,6 +114,7 @@ import com.android.internal.logging.UiEventLogger;
import com.android.internal.util.LatencyTracker;
import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.logging.KeyguardUpdateMonitorLogger;
+import com.android.keyguard.logging.SimLogger;
import com.android.settingslib.Utils;
import com.android.settingslib.WirelessUtils;
import com.android.settingslib.fuelgauge.BatteryStatus;
@@ -285,6 +286,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
private final Context mContext;
private final UserTracker mUserTracker;
private final KeyguardUpdateMonitorLogger mLogger;
+ private final SimLogger mSimLogger;
private final boolean mIsSystemUser;
private final Provider<JavaAdapter> mJavaAdapter;
private final Provider<SceneInteractor> mSceneInteractor;
@@ -582,14 +584,14 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
private void handleSimSubscriptionInfoChanged() {
Assert.isMainThread();
- mLogger.v("onSubscriptionInfoChanged()");
+ mSimLogger.v("onSubscriptionInfoChanged()");
List<SubscriptionInfo> subscriptionInfos = getSubscriptionInfo(true /* forceReload */);
if (!subscriptionInfos.isEmpty()) {
for (SubscriptionInfo subInfo : subscriptionInfos) {
- mLogger.logSubInfo(subInfo);
+ mSimLogger.logSubInfo(subInfo);
}
} else {
- mLogger.v("onSubscriptionInfoChanged: list is null");
+ mSimLogger.v("onSubscriptionInfoChanged: list is null");
}
// Hack level over 9000: Because the subscription id is not yet valid when we see the
@@ -612,7 +614,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
while (iter.hasNext()) {
Map.Entry<Integer, SimData> simData = iter.next();
if (!activeSubIds.contains(simData.getKey())) {
- mLogger.logInvalidSubId(simData.getKey());
+ mSimLogger.logInvalidSubId(simData.getKey());
iter.remove();
SimData data = simData.getValue();
@@ -1700,7 +1702,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
}
return;
}
- mLogger.logSimStateFromIntent(action,
+ mSimLogger.logSimStateFromIntent(action,
intent.getStringExtra(Intent.EXTRA_SIM_STATE),
args.slotId,
args.subId);
@@ -1720,7 +1722,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
ServiceState serviceState = ServiceState.newFromBundle(intent.getExtras());
int subId = intent.getIntExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX,
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
- mLogger.logServiceStateIntent(action, serviceState, subId);
+ mSimLogger.logServiceStateIntent(action, serviceState, subId);
mHandler.sendMessage(
mHandler.obtainMessage(MSG_SERVICE_STATE_CHANGE, subId, 0, serviceState));
} else if (TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED.equals(action)) {
@@ -2154,6 +2156,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
LatencyTracker latencyTracker,
ActiveUnlockConfig activeUnlockConfiguration,
KeyguardUpdateMonitorLogger logger,
+ SimLogger simLogger,
UiEventLogger uiEventLogger,
// This has to be a provider because SessionTracker depends on KeyguardUpdateMonitor :(
Provider<SessionTracker> sessionTrackerProvider,
@@ -2196,6 +2199,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
mSensorPrivacyManager = sensorPrivacyManager;
mActiveUnlockConfig = activeUnlockConfiguration;
mLogger = logger;
+ mSimLogger = simLogger;
mUiEventLogger = uiEventLogger;
mSessionTrackerProvider = sessionTrackerProvider;
mTrustManager = trustManager;
@@ -3369,36 +3373,39 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
}
/**
+ * Removes all valid subscription info from the map for the given slotId.
+ */
+ private void invalidateSlot(int slotId) {
+ Iterator<Map.Entry<Integer, SimData>> iter = mSimDatas.entrySet().iterator();
+ while (iter.hasNext()) {
+ SimData data = iter.next().getValue();
+ if (data.slotId == slotId && SubscriptionManager.isValidSubscriptionId(data.subId)) {
+ mSimLogger.logInvalidSubId(data.subId);
+ iter.remove();
+ }
+ }
+ }
+
+ /**
* Handle {@link #MSG_SIM_STATE_CHANGE}
*/
@VisibleForTesting
void handleSimStateChange(int subId, int slotId, int state) {
Assert.isMainThread();
- mLogger.logSimState(subId, slotId, state);
+ mSimLogger.logSimState(subId, slotId, state);
- boolean becameAbsent = false;
+ boolean becameAbsent = ABSENT_SIM_STATE_LIST.contains(state);
if (!SubscriptionManager.isValidSubscriptionId(subId)) {
- mLogger.w("invalid subId in handleSimStateChange()");
+ mSimLogger.w("invalid subId in handleSimStateChange()");
/* Only handle No SIM(ABSENT) and Card Error(CARD_IO_ERROR) due to
* handleServiceStateChange() handle other case */
- if (state == TelephonyManager.SIM_STATE_ABSENT) {
- updateTelephonyCapable(true);
- // Even though the subscription is not valid anymore, we need to notify that the
- // SIM card was removed so we can update the UI.
- becameAbsent = true;
- for (SimData data : mSimDatas.values()) {
- // Set the SIM state of all SimData associated with that slot to ABSENT se we
- // do not move back into PIN/PUK locked and not detect the change below.
- if (data.slotId == slotId) {
- data.simState = TelephonyManager.SIM_STATE_ABSENT;
- }
- }
- } else if (state == TelephonyManager.SIM_STATE_CARD_IO_ERROR) {
+ if (state == TelephonyManager.SIM_STATE_ABSENT
+ || state == TelephonyManager.SIM_STATE_CARD_IO_ERROR) {
updateTelephonyCapable(true);
}
- }
- becameAbsent |= ABSENT_SIM_STATE_LIST.contains(state);
+ invalidateSlot(slotId);
+ }
// TODO(b/327476182): Preserve SIM_STATE_CARD_IO_ERROR sims in a separate data source.
SimData data = mSimDatas.get(subId);
@@ -3428,10 +3435,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
*/
@VisibleForTesting
void handleServiceStateChange(int subId, ServiceState serviceState) {
- mLogger.logServiceStateChange(subId, serviceState);
+ mSimLogger.logServiceStateChange(subId, serviceState);
if (!SubscriptionManager.isValidSubscriptionId(subId)) {
- mLogger.w("invalid subId in handleServiceStateChange()");
+ mSimLogger.w("invalid subId in handleServiceStateChange()");
return;
} else {
updateTelephonyCapable(true);
@@ -3711,7 +3718,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
*/
@MainThread
public void reportSimUnlocked(int subId) {
- mLogger.logSimUnlocked(subId);
+ mSimLogger.logSimUnlocked(subId);
handleSimStateChange(subId, getSlotId(subId), TelephonyManager.SIM_STATE_READY);
}
@@ -3870,6 +3877,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
private boolean refreshSimState(int subId, int slotId) {
int state = mTelephonyManager.getSimState(slotId);
SimData data = mSimDatas.get(subId);
+
+ if (!SubscriptionManager.isValidSubscriptionId(subId)) {
+ invalidateSlot(slotId);
+ }
+
final boolean changed;
if (data == null) {
data = new SimData(state, slotId, subId);
diff --git a/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt b/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt
index 0b58f06e0d5d..12fc3c262367 100644
--- a/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt
+++ b/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt
@@ -20,8 +20,6 @@ import android.content.Intent
import android.hardware.biometrics.BiometricConstants.LockoutMode
import android.hardware.biometrics.BiometricSourceType
import android.os.PowerManager
-import android.telephony.ServiceState
-import android.telephony.SubscriptionInfo
import android.telephony.SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX
import android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID
import android.telephony.TelephonyManager
@@ -34,7 +32,6 @@ import com.android.systemui.log.LogBuffer
import com.android.systemui.log.core.LogLevel
import com.android.systemui.log.core.LogLevel.DEBUG
import com.android.systemui.log.core.LogLevel.ERROR
-import com.android.systemui.log.core.LogLevel.INFO
import com.android.systemui.log.core.LogLevel.VERBOSE
import com.android.systemui.log.core.LogLevel.WARNING
import com.android.systemui.log.dagger.KeyguardUpdateMonitorLog
@@ -63,7 +60,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
"ActiveUnlock",
DEBUG,
{ str1 = reason },
- { "initiate active unlock triggerReason=$str1" }
+ { "initiate active unlock triggerReason=$str1" },
)
}
@@ -75,7 +72,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
{
"Skip requesting active unlock from wake reason that doesn't trigger face auth" +
" reason=${PowerManager.wakeReasonToString(int1)}"
- }
+ },
)
}
@@ -92,7 +89,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
TAG,
DEBUG,
{ bool1 = deviceProvisioned },
- { "DEVICE_PROVISIONED state = $bool1" }
+ { "DEVICE_PROVISIONED state = $bool1" },
)
}
@@ -108,7 +105,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
str1 = originalErrMsg
int1 = msgId
},
- { "Face error received: $str1 msgId= $int1" }
+ { "Face error received: $str1 msgId= $int1" },
)
}
@@ -117,7 +114,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
TAG,
DEBUG,
{ int1 = authUserId },
- { "Face authenticated for wrong user: $int1" }
+ { "Face authenticated for wrong user: $int1" },
)
}
@@ -130,7 +127,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
FP_LOG_TAG,
DEBUG,
{ int1 = authUserId },
- { "Fingerprint authenticated for wrong user: $int1" }
+ { "Fingerprint authenticated for wrong user: $int1" },
)
}
@@ -139,7 +136,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
FP_LOG_TAG,
DEBUG,
{ int1 = userId },
- { "Fingerprint disabled by DPM for userId: $int1" }
+ { "Fingerprint disabled by DPM for userId: $int1" },
)
}
@@ -148,7 +145,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
FP_LOG_TAG,
DEBUG,
{ int1 = mode },
- { "handleFingerprintLockoutReset: $int1" }
+ { "handleFingerprintLockoutReset: $int1" },
)
}
@@ -157,7 +154,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
FP_LOG_TAG,
DEBUG,
{ int1 = fingerprintRunningState },
- { "fingerprintRunningState: $int1" }
+ { "fingerprintRunningState: $int1" },
)
}
@@ -169,7 +166,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
int1 = userId
bool1 = isStrongBiometric
},
- { "Fingerprint auth successful: userId: $int1, isStrongBiometric: $bool1" }
+ { "Fingerprint auth successful: userId: $int1, isStrongBiometric: $bool1" },
)
}
@@ -181,7 +178,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
int1 = userId
bool1 = isStrongBiometric
},
- { "Face detected: userId: $int1, isStrongBiometric: $bool1" }
+ { "Face detected: userId: $int1, isStrongBiometric: $bool1" },
)
}
@@ -193,7 +190,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
int1 = userId
bool1 = isStrongBiometric
},
- { "Fingerprint detected: userId: $int1, isStrongBiometric: $bool1" }
+ { "Fingerprint detected: userId: $int1, isStrongBiometric: $bool1" },
)
}
@@ -205,22 +202,13 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
str1 = originalErrMsg
int1 = msgId
},
- { "Fingerprint error received: $str1 msgId= $int1" }
- )
- }
-
- fun logInvalidSubId(subId: Int) {
- logBuffer.log(
- TAG,
- INFO,
- { int1 = subId },
- { "Previously active sub id $int1 is now invalid, will remove" }
+ { "Fingerprint error received: $str1 msgId= $int1" },
)
}
fun logPrimaryKeyguardBouncerChanged(
primaryBouncerIsOrWillBeShowing: Boolean,
- primaryBouncerFullyShown: Boolean
+ primaryBouncerFullyShown: Boolean,
) {
logBuffer.log(
TAG,
@@ -232,7 +220,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
{
"handlePrimaryBouncerChanged " +
"primaryBouncerIsOrWillBeShowing=$bool1 primaryBouncerFullyShown=$bool2"
- }
+ },
)
}
@@ -249,7 +237,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
bool2 = occluded
bool3 = visible
},
- { "keyguardShowingChanged(showing=$bool1 occluded=$bool2 visible=$bool3)" }
+ { "keyguardShowingChanged(showing=$bool1 occluded=$bool2 visible=$bool3)" },
)
}
@@ -258,7 +246,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
TAG,
ERROR,
{ int1 = userId },
- { "No Profile Owner or Device Owner supervision app found for User $int1" }
+ { "No Profile Owner or Device Owner supervision app found for User $int1" },
)
}
@@ -279,7 +267,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
int2 = delay
str1 = "$errString"
},
- { "Fingerprint scheduling retry auth after $int2 ms due to($int1) -> $str1" }
+ { "Fingerprint scheduling retry auth after $int2 ms due to($int1) -> $str1" },
)
}
@@ -288,7 +276,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
TAG,
WARNING,
{ int1 = retryCount },
- { "Retrying fingerprint attempt: $int1" }
+ { "Retrying fingerprint attempt: $int1" },
)
}
@@ -306,32 +294,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
{
"sendPrimaryBouncerChanged primaryBouncerIsOrWillBeShowing=$bool1 " +
"primaryBouncerFullyShown=$bool2"
- }
- )
- }
-
- fun logServiceStateChange(subId: Int, serviceState: ServiceState?) {
- logBuffer.log(
- TAG,
- DEBUG,
- {
- int1 = subId
- str1 = "$serviceState"
- },
- { "handleServiceStateChange(subId=$int1, serviceState=$str1)" }
- )
- }
-
- fun logServiceStateIntent(action: String?, serviceState: ServiceState?, subId: Int) {
- logBuffer.log(
- TAG,
- VERBOSE,
- {
- str1 = action
- str2 = "$serviceState"
- int1 = subId
},
- { "action $str1 serviceState=$str2 subId=$int1" }
)
}
@@ -344,51 +307,16 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
str1 = intent.getStringExtra(TelephonyManager.EXTRA_SPN)
str2 = intent.getStringExtra(TelephonyManager.EXTRA_PLMN)
},
- { "action SERVICE_PROVIDERS_UPDATED subId=$int1 spn=$str1 plmn=$str2" }
+ { "action SERVICE_PROVIDERS_UPDATED subId=$int1 spn=$str1 plmn=$str2" },
)
}
- fun logSimState(subId: Int, slotId: Int, state: Int) {
- logBuffer.log(
- TAG,
- DEBUG,
- {
- int1 = subId
- int2 = slotId
- long1 = state.toLong()
- },
- { "handleSimStateChange(subId=$int1, slotId=$int2, state=$long1)" }
- )
- }
-
- fun logSimStateFromIntent(action: String?, extraSimState: String?, slotId: Int, subId: Int) {
- logBuffer.log(
- TAG,
- VERBOSE,
- {
- str1 = action
- str2 = extraSimState
- int1 = slotId
- int2 = subId
- },
- { "action $str1 state: $str2 slotId: $int1 subid: $int2" }
- )
- }
-
- fun logSimUnlocked(subId: Int) {
- logBuffer.log(TAG, VERBOSE, { int1 = subId }, { "reportSimUnlocked(subId=$int1)" })
- }
-
- fun logSubInfo(subInfo: SubscriptionInfo?) {
- logBuffer.log(TAG, DEBUG, { str1 = "$subInfo" }, { "SubInfo:$str1" })
- }
-
fun logTimeFormatChanged(newTimeFormat: String?) {
logBuffer.log(
TAG,
DEBUG,
{ str1 = newTimeFormat },
- { "handleTimeFormatUpdate timeFormat=$str1" }
+ { "handleTimeFormatUpdate timeFormat=$str1" },
)
}
@@ -402,7 +330,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
fun logUnexpectedFpCancellationSignalState(
fingerprintRunningState: Int,
- unlockPossible: Boolean
+ unlockPossible: Boolean,
) {
logBuffer.log(
TAG,
@@ -414,7 +342,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
{
"Cancellation signal is not null, high chance of bug in " +
"fp auth lifecycle management. FP state: $int1, unlockPossible: $bool1"
- }
+ },
)
}
@@ -425,7 +353,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
fun logUserRequestedUnlock(
requestOrigin: ActiveUnlockConfig.ActiveUnlockRequestOrigin,
reason: String?,
- dismissKeyguard: Boolean
+ dismissKeyguard: Boolean,
) {
logBuffer.log(
"ActiveUnlock",
@@ -435,7 +363,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
str2 = reason
bool1 = dismissKeyguard
},
- { "reportUserRequestedUnlock origin=$str1 reason=$str2 dismissKeyguard=$bool1" }
+ { "reportUserRequestedUnlock origin=$str1 reason=$str2 dismissKeyguard=$bool1" },
)
}
@@ -443,7 +371,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
flags: Int,
newlyUnlocked: Boolean,
userId: Int,
- message: String?
+ message: String?,
) {
logBuffer.log(
TAG,
@@ -457,7 +385,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
{
"trustGrantedWithFlags[user=$int2] newlyUnlocked=$bool1 " +
"flags=${TrustGrantFlags(int1)} message=$str1"
- }
+ },
)
}
@@ -470,7 +398,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
bool2 = isNowTrusted
int1 = userId
},
- { "onTrustChanged[user=$int1] wasTrusted=$bool1 isNowTrusted=$bool2" }
+ { "onTrustChanged[user=$int1] wasTrusted=$bool1 isNowTrusted=$bool2" },
)
}
@@ -478,7 +406,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
secure: Boolean,
canDismissLockScreen: Boolean,
trusted: Boolean,
- trustManaged: Boolean
+ trustManaged: Boolean,
) {
logBuffer.log(
"KeyguardState",
@@ -492,7 +420,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
{
"#update secure=$bool1 canDismissKeyguard=$bool2" +
" trusted=$bool3 trustManaged=$bool4"
- }
+ },
)
}
@@ -501,7 +429,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
TAG,
VERBOSE,
{ bool1 = assistantVisible },
- { "TaskStackChanged for ACTIVITY_TYPE_ASSISTANT, assistant visible: $bool1" }
+ { "TaskStackChanged for ACTIVITY_TYPE_ASSISTANT, assistant visible: $bool1" },
)
}
@@ -510,7 +438,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
TAG,
VERBOSE,
{ bool1 = allow },
- { "allowFingerprintOnCurrentOccludingActivityChanged: $bool1" }
+ { "allowFingerprintOnCurrentOccludingActivityChanged: $bool1" },
)
}
@@ -519,7 +447,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
TAG,
VERBOSE,
{ bool1 = assistantVisible },
- { "Updating mAssistantVisible to new value: $bool1" }
+ { "Updating mAssistantVisible to new value: $bool1" },
)
}
@@ -531,7 +459,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
bool1 = isStrongBiometric
int1 = userId
},
- { "reporting successful biometric unlock: isStrongBiometric: $bool1, userId: $int1" }
+ { "reporting successful biometric unlock: isStrongBiometric: $bool1, userId: $int1" },
)
}
@@ -543,7 +471,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
{
"MSG_BIOMETRIC_AUTHENTICATION_CONTINUE already queued up, " +
"ignoring updating FP listening state to $int1"
- }
+ },
)
}
@@ -551,7 +479,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
userId: Int,
oldValue: Boolean,
newValue: Boolean,
- context: String
+ context: String,
) {
logBuffer.log(
TAG,
@@ -568,7 +496,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
"old: $bool1, " +
"new: $bool2 " +
"context: $str1"
- }
+ },
)
}
@@ -591,7 +519,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
"plugged=$str1, " +
"chargingStatus=$int2, " +
"maxChargingWattage= $long2}"
- }
+ },
)
}
@@ -604,7 +532,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
TAG,
DEBUG,
{ str1 = "$biometricSourceType" },
- { "notifying about enrollments changed: $str1" }
+ { "notifying about enrollments changed: $str1" },
)
}
@@ -616,7 +544,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
int1 = userId
str1 = context
},
- { "userCurrentlySwitching: $str1, userId: $int1" }
+ { "userCurrentlySwitching: $str1, userId: $int1" },
)
}
@@ -628,7 +556,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
int1 = userId
str1 = context
},
- { "userSwitchComplete: $str1, userId: $int1" }
+ { "userSwitchComplete: $str1, userId: $int1" },
)
}
@@ -637,7 +565,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
FP_LOG_TAG,
DEBUG,
{ int1 = acquireInfo },
- { "fingerprint acquire message: $int1" }
+ { "fingerprint acquire message: $int1" },
)
}
@@ -646,7 +574,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
TAG,
DEBUG,
{ bool1 = keepUnlocked },
- { "keepUnlockedOnFold changed to: $bool1" }
+ { "keepUnlockedOnFold changed to: $bool1" },
)
}
@@ -662,7 +590,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
int1 = userId
bool1 = isUnlocked
},
- { "userStopped userId: $int1 isUnlocked: $bool1" }
+ { "userStopped userId: $int1 isUnlocked: $bool1" },
)
}
@@ -678,7 +606,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) {
int1 = userId
bool1 = isUnlocked
},
- { "userUnlockedInitialState userId: $int1 isUnlocked: $bool1" }
+ { "userUnlockedInitialState userId: $int1 isUnlocked: $bool1" },
)
}
}
diff --git a/packages/SystemUI/src/com/android/keyguard/logging/SimLogger.kt b/packages/SystemUI/src/com/android/keyguard/logging/SimLogger.kt
new file mode 100644
index 000000000000..a81698ba3387
--- /dev/null
+++ b/packages/SystemUI/src/com/android/keyguard/logging/SimLogger.kt
@@ -0,0 +1,131 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.keyguard.logging
+
+import android.content.Intent
+import android.telephony.ServiceState
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX
+import android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID
+import android.telephony.TelephonyManager
+import com.android.systemui.log.LogBuffer
+import com.android.systemui.log.core.LogLevel
+import com.android.systemui.log.core.LogLevel.DEBUG
+import com.android.systemui.log.core.LogLevel.ERROR
+import com.android.systemui.log.core.LogLevel.INFO
+import com.android.systemui.log.core.LogLevel.VERBOSE
+import com.android.systemui.log.core.LogLevel.WARNING
+import com.android.systemui.log.dagger.SimLog
+import com.google.errorprone.annotations.CompileTimeConstant
+import javax.inject.Inject
+
+private const val TAG = "SimLog"
+
+/** Helper class for logging for SIM events */
+class SimLogger @Inject constructor(@SimLog private val logBuffer: LogBuffer) {
+ fun d(@CompileTimeConstant msg: String) = log(msg, DEBUG)
+
+ fun e(@CompileTimeConstant msg: String) = log(msg, ERROR)
+
+ fun v(@CompileTimeConstant msg: String) = log(msg, VERBOSE)
+
+ fun w(@CompileTimeConstant msg: String) = log(msg, WARNING)
+
+ fun log(@CompileTimeConstant msg: String, level: LogLevel) = logBuffer.log(TAG, level, msg)
+
+ fun logInvalidSubId(subId: Int) {
+ logBuffer.log(
+ TAG,
+ INFO,
+ { int1 = subId },
+ { "Previously active sub id $int1 is now invalid, will remove" },
+ )
+ }
+
+ fun logServiceStateChange(subId: Int, serviceState: ServiceState?) {
+ logBuffer.log(
+ TAG,
+ DEBUG,
+ {
+ int1 = subId
+ str1 = "$serviceState"
+ },
+ { "handleServiceStateChange(subId=$int1, serviceState=$str1)" },
+ )
+ }
+
+ fun logServiceStateIntent(action: String?, serviceState: ServiceState?, subId: Int) {
+ logBuffer.log(
+ TAG,
+ VERBOSE,
+ {
+ str1 = action
+ str2 = "$serviceState"
+ int1 = subId
+ },
+ { "action $str1 serviceState=$str2 subId=$int1" },
+ )
+ }
+
+ fun logServiceProvidersUpdated(intent: Intent) {
+ logBuffer.log(
+ TAG,
+ VERBOSE,
+ {
+ int1 = intent.getIntExtra(EXTRA_SUBSCRIPTION_INDEX, INVALID_SUBSCRIPTION_ID)
+ str1 = intent.getStringExtra(TelephonyManager.EXTRA_SPN)
+ str2 = intent.getStringExtra(TelephonyManager.EXTRA_PLMN)
+ },
+ { "action SERVICE_PROVIDERS_UPDATED subId=$int1 spn=$str1 plmn=$str2" },
+ )
+ }
+
+ fun logSimState(subId: Int, slotId: Int, state: Int) {
+ logBuffer.log(
+ TAG,
+ DEBUG,
+ {
+ int1 = subId
+ int2 = slotId
+ long1 = state.toLong()
+ },
+ { "handleSimStateChange(subId=$int1, slotId=$int2, state=$long1)" },
+ )
+ }
+
+ fun logSimStateFromIntent(action: String?, extraSimState: String?, slotId: Int, subId: Int) {
+ logBuffer.log(
+ TAG,
+ VERBOSE,
+ {
+ str1 = action
+ str2 = extraSimState
+ int1 = slotId
+ int2 = subId
+ },
+ { "action $str1 state: $str2 slotId: $int1 subid: $int2" },
+ )
+ }
+
+ fun logSimUnlocked(subId: Int) {
+ logBuffer.log(TAG, VERBOSE, { int1 = subId }, { "reportSimUnlocked(subId=$int1)" })
+ }
+
+ fun logSubInfo(subInfo: SubscriptionInfo?) {
+ logBuffer.log(TAG, DEBUG, { str1 = "$subInfo" }, { "SubInfo:$str1" })
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt
index 73f75a4ff639..18446f02778a 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt
@@ -18,13 +18,11 @@ package com.android.systemui.biometrics.ui.binder
import android.animation.Animator
import android.animation.AnimatorSet
-import android.animation.ValueAnimator
import android.graphics.Outline
import android.graphics.Rect
import android.transition.AutoTransition
import android.transition.TransitionManager
import android.util.TypedValue
-import android.view.Surface
import android.view.View
import android.view.ViewGroup
import android.view.ViewOutlineProvider
@@ -52,7 +50,6 @@ import com.android.systemui.lifecycle.repeatWhenAttached
import com.android.systemui.res.R
import kotlin.math.abs
import kotlinx.coroutines.flow.combine
-import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch
/** Helper for [BiometricViewBinder] to handle resize transitions. */
@@ -98,7 +95,7 @@ object BiometricViewSizeBinder {
TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
1f,
- view.resources.displayMetrics
+ view.resources.displayMetrics,
)
val cornerRadiusPx = (pxToDp * cornerRadius).toInt()
@@ -114,7 +111,7 @@ object BiometricViewSizeBinder {
0,
view.width + cornerRadiusPx,
view.height,
- cornerRadiusPx.toFloat()
+ cornerRadiusPx.toFloat(),
)
}
PromptPosition.Left -> {
@@ -123,7 +120,7 @@ object BiometricViewSizeBinder {
0,
view.width,
view.height,
- cornerRadiusPx.toFloat()
+ cornerRadiusPx.toFloat(),
)
}
PromptPosition.Bottom,
@@ -133,7 +130,7 @@ object BiometricViewSizeBinder {
0,
view.width,
view.height + cornerRadiusPx,
- cornerRadiusPx.toFloat()
+ cornerRadiusPx.toFloat(),
)
}
}
@@ -160,16 +157,13 @@ object BiometricViewSizeBinder {
fun setVisibilities(hideSensorIcon: Boolean, size: PromptSize) {
viewsToHideWhenSmall.forEach { it.showContentOrHide(forceHide = size.isSmall) }
largeConstraintSet.setVisibility(iconHolderView.id, View.GONE)
- largeConstraintSet.setVisibility(R.id.biometric_icon_overlay, View.GONE)
largeConstraintSet.setVisibility(R.id.indicator, View.GONE)
largeConstraintSet.setVisibility(R.id.scrollView, View.GONE)
if (hideSensorIcon) {
smallConstraintSet.setVisibility(iconHolderView.id, View.GONE)
- smallConstraintSet.setVisibility(R.id.biometric_icon_overlay, View.GONE)
smallConstraintSet.setVisibility(R.id.indicator, View.GONE)
mediumConstraintSet.setVisibility(iconHolderView.id, View.GONE)
- mediumConstraintSet.setVisibility(R.id.biometric_icon_overlay, View.GONE)
mediumConstraintSet.setVisibility(R.id.indicator, View.GONE)
}
}
@@ -189,24 +183,24 @@ object BiometricViewSizeBinder {
R.id.biometric_icon,
ConstraintSet.LEFT,
ConstraintSet.PARENT_ID,
- ConstraintSet.LEFT
+ ConstraintSet.LEFT,
)
mediumConstraintSet.setMargin(
R.id.biometric_icon,
ConstraintSet.LEFT,
- position.left
+ position.left,
)
smallConstraintSet.clear(R.id.biometric_icon, ConstraintSet.RIGHT)
smallConstraintSet.connect(
R.id.biometric_icon,
ConstraintSet.LEFT,
ConstraintSet.PARENT_ID,
- ConstraintSet.LEFT
+ ConstraintSet.LEFT,
)
smallConstraintSet.setMargin(
R.id.biometric_icon,
ConstraintSet.LEFT,
- position.left
+ position.left,
)
}
if (position.top != 0) {
@@ -216,13 +210,13 @@ object BiometricViewSizeBinder {
mediumConstraintSet.setMargin(
R.id.biometric_icon,
ConstraintSet.TOP,
- position.top
+ position.top,
)
smallConstraintSet.clear(R.id.biometric_icon, ConstraintSet.BOTTOM)
smallConstraintSet.setMargin(
R.id.biometric_icon,
ConstraintSet.TOP,
- position.top
+ position.top,
)
}
if (position.right != 0) {
@@ -233,24 +227,24 @@ object BiometricViewSizeBinder {
R.id.biometric_icon,
ConstraintSet.RIGHT,
ConstraintSet.PARENT_ID,
- ConstraintSet.RIGHT
+ ConstraintSet.RIGHT,
)
mediumConstraintSet.setMargin(
R.id.biometric_icon,
ConstraintSet.RIGHT,
- position.right
+ position.right,
)
smallConstraintSet.clear(R.id.biometric_icon, ConstraintSet.LEFT)
smallConstraintSet.connect(
R.id.biometric_icon,
ConstraintSet.RIGHT,
ConstraintSet.PARENT_ID,
- ConstraintSet.RIGHT
+ ConstraintSet.RIGHT,
)
smallConstraintSet.setMargin(
R.id.biometric_icon,
ConstraintSet.RIGHT,
- position.right
+ position.right,
)
}
if (position.bottom != 0) {
@@ -260,13 +254,13 @@ object BiometricViewSizeBinder {
mediumConstraintSet.setMargin(
R.id.biometric_icon,
ConstraintSet.BOTTOM,
- position.bottom
+ position.bottom,
)
smallConstraintSet.clear(R.id.biometric_icon, ConstraintSet.TOP)
smallConstraintSet.setMargin(
R.id.biometric_icon,
ConstraintSet.BOTTOM,
- position.bottom
+ position.bottom,
)
}
iconHolderView.layoutParams = iconParams
@@ -305,11 +299,11 @@ object BiometricViewSizeBinder {
} else if (bounds.right < 0) {
mediumConstraintSet.setGuidelineBegin(
rightGuideline.id,
- abs(bounds.right)
+ abs(bounds.right),
)
smallConstraintSet.setGuidelineBegin(
rightGuideline.id,
- abs(bounds.right)
+ abs(bounds.right),
)
}
@@ -362,13 +356,13 @@ object BiometricViewSizeBinder {
R.id.scrollView,
ConstraintSet.LEFT,
R.id.midGuideline,
- ConstraintSet.LEFT
+ ConstraintSet.LEFT,
)
flipConstraintSet.connect(
R.id.scrollView,
ConstraintSet.RIGHT,
R.id.rightGuideline,
- ConstraintSet.RIGHT
+ ConstraintSet.RIGHT,
)
} else if (position.isTop) {
// Top position is only used for 180 rotation Udfps
@@ -377,24 +371,24 @@ object BiometricViewSizeBinder {
R.id.scrollView,
ConstraintSet.TOP,
R.id.indicator,
- ConstraintSet.BOTTOM
+ ConstraintSet.BOTTOM,
)
mediumConstraintSet.connect(
R.id.scrollView,
ConstraintSet.BOTTOM,
R.id.button_bar,
- ConstraintSet.TOP
+ ConstraintSet.TOP,
)
mediumConstraintSet.connect(
R.id.panel,
ConstraintSet.TOP,
R.id.biometric_icon,
- ConstraintSet.TOP
+ ConstraintSet.TOP,
)
mediumConstraintSet.setMargin(
R.id.panel,
ConstraintSet.TOP,
- (-24 * pxToDp).toInt()
+ (-24 * pxToDp).toInt(),
)
mediumConstraintSet.setVerticalBias(R.id.scrollView, 0f)
}
diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/util/BouncerTestUtils.kt b/packages/SystemUI/src/com/android/systemui/bouncer/util/BouncerTestUtils.kt
new file mode 100644
index 000000000000..08a79c92919f
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/bouncer/util/BouncerTestUtils.kt
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.bouncer.util
+
+import android.app.ActivityManager
+import android.content.res.Resources
+import com.android.systemui.res.R
+import java.io.File
+
+private const val ENABLE_MENU_KEY_FILE = "/data/local/enable_menu_key"
+
+/**
+ * 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 is prone
+ * to false positives.
+ *
+ * @return true if the menu key should be enabled
+ */
+fun Resources.shouldEnableMenuKey(): Boolean {
+ val configDisabled = getBoolean(R.bool.config_disableMenuKeyInLockScreen)
+ val isTestHarness = ActivityManager.isRunningInTestHarness()
+ val fileOverride = File(ENABLE_MENU_KEY_FILE).exists()
+ return !configDisabled || isTestHarness || fileOverride
+}
diff --git a/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardListener.java b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardListener.java
index 1ada56dea45a..7033e641dc2c 100644
--- a/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardListener.java
+++ b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardListener.java
@@ -19,6 +19,7 @@ package com.android.systemui.clipboardoverlay;
import static android.content.ClipDescription.CLASSIFICATION_COMPLETE;
import static com.android.systemui.Flags.clipboardNoninteractiveOnLockscreen;
+import static com.android.systemui.Flags.overrideSuppressOverlayCondition;
import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_ENTERED;
import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_UPDATED;
import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_TOAST_SHOWN;
@@ -63,6 +64,7 @@ public class ClipboardListener implements
private final ClipboardManager mClipboardManager;
private final KeyguardManager mKeyguardManager;
private final UiEventLogger mUiEventLogger;
+ private final ClipboardOverlaySuppressionController mClipboardOverlaySuppressionController;
private ClipboardOverlay mClipboardOverlay;
@Inject
@@ -71,13 +73,15 @@ public class ClipboardListener implements
ClipboardToast clipboardToast,
UserScopedService<ClipboardManager> clipboardManager,
KeyguardManager keyguardManager,
- UiEventLogger uiEventLogger) {
+ UiEventLogger uiEventLogger,
+ ClipboardOverlaySuppressionController clipboardOverlaySuppressionController) {
mContext = context;
mOverlayProvider = clipboardOverlayControllerProvider;
mClipboardToast = clipboardToast;
mClipboardManager = clipboardManager.forUser(UserHandle.CURRENT);
mKeyguardManager = keyguardManager;
mUiEventLogger = uiEventLogger;
+ mClipboardOverlaySuppressionController = clipboardOverlaySuppressionController;
}
@Override
@@ -94,9 +98,17 @@ public class ClipboardListener implements
String clipSource = mClipboardManager.getPrimaryClipSource();
ClipData clipData = mClipboardManager.getPrimaryClip();
- if (shouldSuppressOverlay(clipData, clipSource, Build.IS_EMULATOR)) {
- Log.i(TAG, "Clipboard overlay suppressed.");
- return;
+ if (overrideSuppressOverlayCondition()) {
+ if (mClipboardOverlaySuppressionController.shouldSuppressOverlay(clipData, clipSource,
+ Build.IS_EMULATOR)) {
+ Log.i(TAG, "Clipboard overlay suppressed.");
+ return;
+ }
+ } else {
+ if (shouldSuppressOverlay(clipData, clipSource, Build.IS_EMULATOR)) {
+ Log.i(TAG, "Clipboard overlay suppressed.");
+ return;
+ }
}
// user should not access intents before setup or while device is locked
diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRedirectionClass.java b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionController.kt
index bee9222ae5eb..be592daccc1e 100644
--- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRedirectionClass.java
+++ b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionController.kt
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2023 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,24 +13,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package android.ravenwood.annotation;
+package com.android.systemui.clipboardoverlay
-import static java.lang.annotation.ElementType.TYPE;
+import android.content.ClipData
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+/** Interface to control the clipboard overlay suppression behavior. */
+interface ClipboardOverlaySuppressionController {
-/**
- * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY
- * QUESTIONS ABOUT IT.
- *
- * TODO: Javadoc
- *
- * @hide
- */
-@Target({TYPE})
-@Retention(RetentionPolicy.CLASS)
-public @interface RavenwoodRedirectionClass {
- String value();
+ /** Decides if the clipboard overlay should be suppressed. */
+ fun shouldSuppressOverlay(
+ clipData: ClipData?,
+ clipSource: String?,
+ isEmulator: Boolean,
+ ): Boolean
}
diff --git a/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionControllerImpl.kt
new file mode 100644
index 000000000000..814341d6e242
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionControllerImpl.kt
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.systemui.clipboardoverlay
+
+import android.content.ClipData
+import com.android.internal.annotations.VisibleForTesting
+import com.android.systemui.dagger.SysUISingleton
+import javax.inject.Inject
+
+@SysUISingleton
+open class ClipboardOverlaySuppressionControllerImpl @Inject constructor() :
+ ClipboardOverlaySuppressionController {
+
+ // The overlay is suppressed if EXTRA_SUPPRESS_OVERLAY is true and the device is an emulator or
+ // the source package is SHELL_PACKAGE. This is meant to suppress the overlay when the emulator
+ // or a mirrored device is syncing the clipboard.
+ override fun shouldSuppressOverlay(
+ clipData: ClipData?,
+ clipSource: String?,
+ isEmulator: Boolean,
+ ): Boolean {
+ if (!(isEmulator || SHELL_PACKAGE == clipSource)) {
+ return false
+ }
+ if (clipData == null || clipData.description.extras == null) {
+ return false
+ }
+ return clipData.description.extras.getBoolean(EXTRA_SUPPRESS_OVERLAY, false)
+ }
+
+ companion object {
+ @VisibleForTesting const val SHELL_PACKAGE = "com.android.shell"
+
+ @VisibleForTesting
+ const val EXTRA_SUPPRESS_OVERLAY = "com.android.systemui.SUPPRESS_CLIPBOARD_OVERLAY"
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/clipboardoverlay/dagger/ClipboardOverlaySuppressionModule.kt b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/dagger/ClipboardOverlaySuppressionModule.kt
new file mode 100644
index 000000000000..527819c73e2f
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/dagger/ClipboardOverlaySuppressionModule.kt
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.systemui.clipboardoverlay.dagger
+
+import com.android.systemui.clipboardoverlay.ClipboardOverlaySuppressionController
+import com.android.systemui.clipboardoverlay.ClipboardOverlaySuppressionControllerImpl
+import dagger.Binds
+import dagger.Module
+
+/** Dagger Module for code in the clipboard overlay package. */
+@Module
+interface ClipboardOverlaySuppressionModule {
+
+ /** Provides implementation for [ClipboardOverlaySuppressionController]. */
+ @Binds
+ fun provideClipboardOverlaySuppressionController(
+ clipboardOverlaySuppressionControllerImpl: ClipboardOverlaySuppressionControllerImpl
+ ): ClipboardOverlaySuppressionController
+}
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java b/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java
index 5c075c240caf..a94fbd937afc 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java
@@ -29,6 +29,7 @@ import com.android.systemui.accessibility.AccessibilityModule;
import com.android.systemui.accessibility.SystemActionsModule;
import com.android.systemui.accessibility.data.repository.AccessibilityRepositoryModule;
import com.android.systemui.battery.BatterySaverModule;
+import com.android.systemui.clipboardoverlay.dagger.ClipboardOverlaySuppressionModule;
import com.android.systemui.display.ui.viewmodel.ConnectingDisplayViewModel;
import com.android.systemui.dock.DockManager;
import com.android.systemui.dock.DockManagerImpl;
@@ -116,6 +117,7 @@ import javax.inject.Named;
AccessibilityRepositoryModule.class,
AospPolicyModule.class,
BatterySaverModule.class,
+ ClipboardOverlaySuppressionModule.class,
CollapsedStatusBarFragmentStartableModule.class,
ConnectingDisplayViewModel.StartableModule.class,
DefaultBlueprintModule.class,
diff --git a/packages/SystemUI/src/com/android/systemui/display/data/repository/FocusedDisplayRepository.kt b/packages/SystemUI/src/com/android/systemui/display/data/repository/FocusedDisplayRepository.kt
new file mode 100644
index 000000000000..dc07cca08d7b
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/display/data/repository/FocusedDisplayRepository.kt
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.display.data.repository
+
+import android.annotation.MainThread
+import android.view.Display.DEFAULT_DISPLAY
+import com.android.systemui.dagger.SysUISingleton
+import com.android.systemui.dagger.qualifiers.Application
+import com.android.systemui.dagger.qualifiers.Main
+import com.android.systemui.log.LogBuffer
+import com.android.systemui.log.core.LogLevel
+import com.android.systemui.log.dagger.FocusedDisplayRepoLog
+import com.android.systemui.utils.coroutines.flow.conflatedCallbackFlow
+import com.android.wm.shell.shared.FocusTransitionListener
+import com.android.wm.shell.shared.ShellTransitions
+import java.util.concurrent.Executor
+import javax.inject.Inject
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.onEach
+import kotlinx.coroutines.flow.stateIn
+
+/** Repository tracking display focus. */
+@SysUISingleton
+@MainThread
+class FocusedDisplayRepository
+@Inject
+constructor(
+ @Application val scope: CoroutineScope,
+ @Main private val mainExecutor: Executor,
+ transitions: ShellTransitions,
+ @FocusedDisplayRepoLog logBuffer: LogBuffer,
+) {
+ val focusedTask: Flow<Int> =
+ conflatedCallbackFlow {
+ val listener = FocusTransitionListener { displayId -> trySend(displayId) }
+ transitions.setFocusTransitionListener(listener, mainExecutor)
+ awaitClose { transitions.unsetFocusTransitionListener(listener) }
+ }
+ .onEach {
+ logBuffer.log(
+ "FocusedDisplayRepository",
+ LogLevel.INFO,
+ { str1 = it.toString() },
+ { "Newly focused display: $str1" },
+ )
+ }
+
+ /** Provides the currently focused display. */
+ val focusedDisplayId: StateFlow<Int>
+ get() = focusedTask.stateIn(scope, SharingStarted.Eagerly, DEFAULT_DISPLAY)
+}
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt
index cd5daf9a99f0..1e9541e1923e 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt
@@ -210,13 +210,18 @@ constructor(
} else {
TransitionState.RUNNING
}
- transitionRepository.updateTransition(
- id,
- // This maps the shadeExpansion to a much faster curve, to match
- // the existing logic
- 1f - MathUtils.constrainedMap(0f, 1f, 0.95f, 1f, shadeExpansion),
- nextState,
- )
+
+ // startTransition below will issue the CANCELED directly
+ if (nextState != TransitionState.CANCELED) {
+ transitionRepository.updateTransition(
+ id,
+ // This maps the shadeExpansion to a much faster curve, to match
+ // the existing logic
+ 1f -
+ MathUtils.constrainedMap(0f, 1f, 0.95f, 1f, shadeExpansion),
+ nextState,
+ )
+ }
if (
nextState == TransitionState.CANCELED ||
@@ -234,11 +239,12 @@ constructor(
ownerName = name,
from = KeyguardState.PRIMARY_BOUNCER,
to = KeyguardState.LOCKSCREEN,
+ modeOnCanceled = TransitionModeOnCanceled.REVERSE,
animator =
getDefaultAnimatorForTransitionsToState(
KeyguardState.LOCKSCREEN
)
- .apply { duration = 0 },
+ .apply { duration = 100L },
)
)
}
diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepPartialClass.java b/packages/SystemUI/src/com/android/systemui/log/dagger/FocusedDisplayRepoLog.kt
index 784727410188..302f9624b056 100644
--- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepPartialClass.java
+++ b/packages/SystemUI/src/com/android/systemui/log/dagger/FocusedDisplayRepoLog.kt
@@ -13,22 +13,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package android.ravenwood.annotation;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+package com.android.systemui.log.dagger
-/**
- * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY
- * QUESTIONS ABOUT IT.
- *
- * TODO: Javadoc
- *
- * @hide
- */
-@Target(ElementType.TYPE)
-@Retention(RetentionPolicy.CLASS)
-public @interface RavenwoodKeepPartialClass {
-}
+import javax.inject.Qualifier
+
+/** A [com.android.systemui.log.LogBuffer] for display metrics related logging. */
+@Qualifier
+@MustBeDocumented
+@Retention(AnnotationRetention.RUNTIME)
+annotation class FocusedDisplayRepoLog
diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java b/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java
index 2053b53dba63..4e975ff27361 100644
--- a/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java
+++ b/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java
@@ -480,6 +480,16 @@ public class LogModule {
}
/**
+ * Provides a {@link LogBuffer} for use by SIM events.
+ */
+ @Provides
+ @SysUISingleton
+ @SimLog
+ public static LogBuffer provideSimLogBuffer(LogBufferFactory factory) {
+ return factory.create("SimLog", 500);
+ }
+
+ /**
* Provides a {@link LogBuffer} for use by {@link com.android.keyguard.KeyguardUpdateMonitor}.
*/
@Provides
@@ -655,6 +665,14 @@ public class LogModule {
return factory.create("DisplayMetricsRepo", 50);
}
+ /** Provides a {@link LogBuffer} for focus related logs. */
+ @Provides
+ @SysUISingleton
+ @FocusedDisplayRepoLog
+ public static LogBuffer provideFocusedDisplayRepoLogBuffer(LogBufferFactory factory) {
+ return factory.create("FocusedDisplayRepo", 50);
+ }
+
/** Provides a {@link LogBuffer} for the scene framework. */
@Provides
@SysUISingleton
diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/SimLog.kt b/packages/SystemUI/src/com/android/systemui/log/dagger/SimLog.kt
new file mode 100644
index 000000000000..64fc6e70f47f
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/log/dagger/SimLog.kt
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.log.dagger
+
+import javax.inject.Qualifier
+
+/** A [com.android.systemui.log.LogBuffer] for SIM events. */
+@Qualifier @MustBeDocumented @Retention(AnnotationRetention.RUNTIME) annotation class SimLog
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/LegacyMediaDataManagerImpl.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/LegacyMediaDataManagerImpl.kt
index 222d783ab79a..4528b047375a 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/LegacyMediaDataManagerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/LegacyMediaDataManagerImpl.kt
@@ -417,6 +417,7 @@ class LegacyMediaDataManagerImpl(
override fun onNotificationAdded(key: String, sbn: StatusBarNotification) {
if (useQsMediaPlayer && isMediaNotification(sbn)) {
var isNewlyActiveEntry = false
+ var isConvertingToActive = false
Assert.isMainThread()
val oldKey = findExistingEntry(key, sbn.packageName)
if (oldKey == null) {
@@ -433,9 +434,10 @@ class LegacyMediaDataManagerImpl(
// Resume -> active conversion; move to new key
val oldData = mediaEntries.remove(oldKey)!!
isNewlyActiveEntry = true
+ isConvertingToActive = true
mediaEntries.put(key, oldData)
}
- loadMediaData(key, sbn, oldKey, isNewlyActiveEntry)
+ loadMediaData(key, sbn, oldKey, isNewlyActiveEntry, isConvertingToActive)
} else {
onNotificationRemoved(key)
}
@@ -535,10 +537,11 @@ class LegacyMediaDataManagerImpl(
sbn: StatusBarNotification,
oldKey: String?,
isNewlyActiveEntry: Boolean = false,
+ isConvertingToActive: Boolean = false,
) {
if (Flags.mediaLoadMetadataViaMediaDataLoader()) {
applicationScope.launch {
- loadMediaDataWithLoader(key, sbn, oldKey, isNewlyActiveEntry)
+ loadMediaDataWithLoader(key, sbn, oldKey, isNewlyActiveEntry, isConvertingToActive)
}
} else {
backgroundExecutor.execute { loadMediaDataInBg(key, sbn, oldKey, isNewlyActiveEntry) }
@@ -550,10 +553,11 @@ class LegacyMediaDataManagerImpl(
sbn: StatusBarNotification,
oldKey: String?,
isNewlyActiveEntry: Boolean = false,
+ isConvertingToActive: Boolean = false,
) =
withContext(backgroundDispatcher) {
val lastActive = systemClock.elapsedRealtime()
- val result = mediaDataLoader.get().loadMediaData(key, sbn)
+ val result = mediaDataLoader.get().loadMediaData(key, sbn, isConvertingToActive)
if (result == null) {
Log.d(TAG, "No result from loadMediaData")
return@withContext
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoader.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoader.kt
index 7b55dac8eee1..7b8703dfbe4f 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoader.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoader.kt
@@ -111,16 +111,26 @@ constructor(
* If a new [loadMediaData] is issued while existing load is in progress, the existing (old)
* load will be cancelled.
*/
- suspend fun loadMediaData(key: String, sbn: StatusBarNotification): MediaDataLoaderResult? {
- val loadMediaJob = backgroundScope.async { loadMediaDataInBackground(key, sbn) }
+ suspend fun loadMediaData(
+ key: String,
+ sbn: StatusBarNotification,
+ isConvertingToActive: Boolean = false,
+ ): MediaDataLoaderResult? {
+ val loadMediaJob =
+ backgroundScope.async { loadMediaDataInBackground(key, sbn, isConvertingToActive) }
loadMediaJob.invokeOnCompletion {
// We need to make sure we're removing THIS job after cancellation, not
// a job that we created later.
mediaProcessingJobs.remove(key, loadMediaJob)
}
- val existingJob = mediaProcessingJobs.put(key, loadMediaJob)
+ var existingJob: Job? = null
+ // Do not cancel loading jobs that convert resume players to active.
+ if (!isConvertingToActive) {
+ existingJob = mediaProcessingJobs.put(key, loadMediaJob)
+ existingJob?.cancel("New processing job incoming.")
+ }
logD(TAG) { "Loading media data for $key... / existing job: $existingJob" }
- existingJob?.cancel("New processing job incoming.")
+
return loadMediaJob.await()
}
@@ -129,12 +139,16 @@ constructor(
private suspend fun loadMediaDataInBackground(
key: String,
sbn: StatusBarNotification,
+ isConvertingToActive: Boolean = false,
): MediaDataLoaderResult? =
traceCoroutine("MediaDataLoader#loadMediaData") {
// We have apps spamming us with quick notification updates which can cause
// us to spend significant CPU time loading duplicate data. This debounces
// those requests at the cost of a bit of latency.
- delay(DEBOUNCE_DELAY_MS)
+ // No delay needed to load jobs converting resume players to active.
+ if (!isConvertingToActive) {
+ delay(DEBOUNCE_DELAY_MS)
+ }
val token =
sbn.notification.extras.getParcelable(
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessor.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessor.kt
index fd7b6dcfebbc..affc7b741b2a 100644
--- a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessor.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessor.kt
@@ -330,6 +330,7 @@ class MediaDataProcessor(
fun onNotificationAdded(key: String, sbn: StatusBarNotification) {
if (useQsMediaPlayer && isMediaNotification(sbn)) {
var isNewlyActiveEntry = false
+ var isConvertingToActive = false
Assert.isMainThread()
val oldKey = findExistingEntry(key, sbn.packageName)
if (oldKey == null) {
@@ -347,9 +348,10 @@ class MediaDataProcessor(
// Resume -> active conversion; move to new key
val oldData = mediaDataRepository.removeMediaEntry(oldKey)!!
isNewlyActiveEntry = true
+ isConvertingToActive = true
mediaDataRepository.addMediaEntry(key, oldData)
}
- loadMediaData(key, sbn, oldKey, isNewlyActiveEntry)
+ loadMediaData(key, sbn, oldKey, isNewlyActiveEntry, isConvertingToActive)
} else {
onNotificationRemoved(key)
}
@@ -488,10 +490,11 @@ class MediaDataProcessor(
sbn: StatusBarNotification,
oldKey: String?,
isNewlyActiveEntry: Boolean = false,
+ isConvertingToActive: Boolean = false,
) {
if (Flags.mediaLoadMetadataViaMediaDataLoader()) {
applicationScope.launch {
- loadMediaDataWithLoader(key, sbn, oldKey, isNewlyActiveEntry)
+ loadMediaDataWithLoader(key, sbn, oldKey, isNewlyActiveEntry, isConvertingToActive)
}
} else {
backgroundExecutor.execute { loadMediaDataInBg(key, sbn, oldKey, isNewlyActiveEntry) }
@@ -835,10 +838,11 @@ class MediaDataProcessor(
sbn: StatusBarNotification,
oldKey: String?,
isNewlyActiveEntry: Boolean = false,
+ isConvertingToActive: Boolean = false,
) =
withContext(backgroundDispatcher) {
val lastActive = systemClock.elapsedRealtime()
- val result = mediaDataLoader.get().loadMediaData(key, sbn)
+ val result = mediaDataLoader.get().loadMediaData(key, sbn, isConvertingToActive)
if (result == null) {
Log.d(TAG, "No result from loadMediaData")
return@withContext
diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverLogger.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverLogger.kt
index 078d534833d1..f563f875a29f 100644
--- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverLogger.kt
@@ -26,18 +26,11 @@ import javax.inject.Inject
/** A logger for all events related to the media tap-to-transfer receiver experience. */
@SysUISingleton
-class MediaTttReceiverLogger
-@Inject
-constructor(
- @MediaTttReceiverLogBuffer buffer: LogBuffer,
-) : TemporaryViewLogger<ChipReceiverInfo>(buffer, TAG) {
+class MediaTttReceiverLogger @Inject constructor(@MediaTttReceiverLogBuffer buffer: LogBuffer) :
+ TemporaryViewLogger<ChipReceiverInfo>(buffer, TAG) {
/** Logs a change in the chip state for the given [mediaRouteId]. */
- fun logStateChange(
- stateName: String,
- mediaRouteId: String,
- packageName: String?,
- ) {
+ fun logStateChange(stateName: String, mediaRouteId: String, packageName: String?) {
MediaTttLoggerUtils.logStateChange(buffer, TAG, stateName, mediaRouteId, packageName)
}
@@ -51,12 +44,27 @@ constructor(
MediaTttLoggerUtils.logPackageNotFound(buffer, TAG, packageName)
}
- fun logRippleAnimationEnd(id: Int) {
+ fun logRippleAnimationEnd(id: Int, type: String) {
buffer.log(
tag,
LogLevel.DEBUG,
- { int1 = id },
- { "ripple animation for view with id: $int1 is ended" }
+ {
+ int1 = id
+ str1 = type
+ },
+ { "ripple animation for view with id=$int1 is ended, animation type=$str1" },
+ )
+ }
+
+ fun logRippleAnimationStart(id: Int, type: String) {
+ buffer.log(
+ tag,
+ LogLevel.DEBUG,
+ {
+ int1 = id
+ str1 = type
+ },
+ { "ripple animation for view with id=$int1 is started, animation type=$str1" },
)
}
diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverRippleController.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverRippleController.kt
index a232971c4e3f..9d004352e893 100644
--- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverRippleController.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverRippleController.kt
@@ -69,7 +69,9 @@ constructor(
)
rippleView.addOnAttachStateChangeListener(
object : View.OnAttachStateChangeListener {
- override fun onViewDetachedFromWindow(view: View) {}
+ override fun onViewDetachedFromWindow(view: View) {
+ view.visibility = View.GONE
+ }
override fun onViewAttachedToWindow(view: View) {
if (view == null) {
@@ -81,7 +83,7 @@ constructor(
} else {
layoutRipple(attachedRippleView)
}
- attachedRippleView.expandRipple()
+ attachedRippleView.expandRipple(mediaTttReceiverLogger)
attachedRippleView.removeOnAttachStateChangeListener(this)
}
}
@@ -126,7 +128,7 @@ constructor(
iconRippleView.setMaxSize(radius * 0.8f, radius * 0.8f)
iconRippleView.setCenter(
width * 0.5f,
- height - getReceiverIconSize() * 0.5f - getReceiverIconBottomMargin()
+ height - getReceiverIconSize() * 0.5f - getReceiverIconBottomMargin(),
)
iconRippleView.setColor(getRippleColor(), RIPPLE_OPACITY)
}
diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/ReceiverChipRippleView.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/ReceiverChipRippleView.kt
index 81059e31f3c1..cd733ec7bf94 100644
--- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/ReceiverChipRippleView.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/ReceiverChipRippleView.kt
@@ -37,10 +37,14 @@ class ReceiverChipRippleView(context: Context?, attrs: AttributeSet?) : RippleVi
isStarted = false
}
- fun expandRipple(onAnimationEnd: Runnable? = null) {
+ fun expandRipple(logger: MediaTttReceiverLogger, onAnimationEnd: Runnable? = null) {
duration = DEFAULT_DURATION
isStarted = true
- super.startRipple(onAnimationEnd)
+ super.startRipple {
+ logger.logRippleAnimationEnd(id, EXPAND)
+ onAnimationEnd?.run()
+ }
+ logger.logRippleAnimationStart(id, EXPAND)
}
/** Used to animate out the ripple. No-op if the ripple was never started via [startRipple]. */
@@ -53,10 +57,14 @@ class ReceiverChipRippleView(context: Context?, attrs: AttributeSet?) : RippleVi
animator.removeAllListeners()
animator.addListener(
object : AnimatorListenerAdapter() {
+ override fun onAnimationCancel(animation: Animator) {
+ onAnimationEnd(animation)
+ }
+
override fun onAnimationEnd(animation: Animator) {
animation?.let {
visibility = GONE
- logger.logRippleAnimationEnd(id)
+ logger.logRippleAnimationEnd(id, COLLAPSE)
}
onAnimationEnd?.run()
isStarted = false
@@ -64,13 +72,14 @@ class ReceiverChipRippleView(context: Context?, attrs: AttributeSet?) : RippleVi
}
)
animator.reverse()
+ logger.logRippleAnimationStart(id, COLLAPSE)
}
// Expands the ripple to cover full screen.
fun expandToFull(
newHeight: Float,
logger: MediaTttReceiverLogger,
- onAnimationEnd: Runnable? = null
+ onAnimationEnd: Runnable? = null,
) {
if (!isStarted) {
return
@@ -95,10 +104,14 @@ class ReceiverChipRippleView(context: Context?, attrs: AttributeSet?) : RippleVi
}
animator.addListener(
object : AnimatorListenerAdapter() {
+ override fun onAnimationCancel(animation: Animator) {
+ onAnimationEnd(animation)
+ }
+
override fun onAnimationEnd(animation: Animator) {
animation?.let {
visibility = GONE
- logger.logRippleAnimationEnd(id)
+ logger.logRippleAnimationEnd(id, EXPAND_TO_FULL)
}
onAnimationEnd?.run()
isStarted = false
@@ -106,6 +119,7 @@ class ReceiverChipRippleView(context: Context?, attrs: AttributeSet?) : RippleVi
}
)
animator.start()
+ logger.logRippleAnimationStart(id, EXPAND_TO_FULL)
}
// Calculates the actual starting percentage according to ripple shader progress set method.
@@ -151,5 +165,8 @@ class ReceiverChipRippleView(context: Context?, attrs: AttributeSet?) : RippleVi
companion object {
const val DEFAULT_DURATION = 333L
const val EXPAND_TO_FULL_DURATION = 1000L
+ private const val COLLAPSE = "collapse"
+ private const val EXPAND_TO_FULL = "expand to full"
+ private const val EXPAND = "expand"
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/model/SceneContainerPlugin.kt b/packages/SystemUI/src/com/android/systemui/model/SceneContainerPlugin.kt
index 0d748a1cf077..0bf4c7e8d9f9 100644
--- a/packages/SystemUI/src/com/android/systemui/model/SceneContainerPlugin.kt
+++ b/packages/SystemUI/src/com/android/systemui/model/SceneContainerPlugin.kt
@@ -84,7 +84,10 @@ constructor(
*/
val EvaluatorByFlag =
mapOf<Long, (SceneContainerPluginState) -> Boolean>(
- SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE to { it.scene != Scenes.Gone },
+ SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE to
+ {
+ it.scene != Scenes.Gone || it.overlays.isNotEmpty()
+ },
SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED to
{
when {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt b/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt
index 66ac01ab95a0..51d232946b97 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt
@@ -52,7 +52,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.layout.onPlaced
import androidx.compose.ui.layout.onSizeChanged
import androidx.compose.ui.layout.positionInRoot
@@ -62,7 +61,6 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.semantics.CustomAccessibilityAction
import androidx.compose.ui.semantics.customActions
import androidx.compose.ui.semantics.semantics
-import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.round
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.compose.collectAsStateWithLifecycle
@@ -191,58 +189,22 @@ constructor(
val context = inflater.context
val composeView =
ComposeView(context).apply {
- setBackPressedDispatcher()
- setContent {
- PlatformTheme {
- val visible by viewModel.qsVisible.collectAsStateWithLifecycle()
-
- AnimatedVisibility(
- visible = visible,
- modifier =
- Modifier.windowInsetsPadding(WindowInsets.navigationBars)
- .thenIf(notificationScrimClippingParams.isEnabled) {
- Modifier.notificationScrimClip(
- notificationScrimClippingParams.leftInset,
- notificationScrimClippingParams.top,
- notificationScrimClippingParams.rightInset,
- notificationScrimClippingParams.bottom,
- notificationScrimClippingParams.radius,
+ repeatWhenAttached {
+ repeatOnLifecycle(Lifecycle.State.CREATED) {
+ setViewTreeOnBackPressedDispatcherOwner(
+ object : OnBackPressedDispatcherOwner {
+ override val onBackPressedDispatcher =
+ OnBackPressedDispatcher().apply {
+ setOnBackInvokedDispatcher(
+ it.viewRootImpl.onBackInvokedDispatcher
)
}
- .graphicsLayer { elevation = 4.dp.toPx() },
- ) {
- val isEditing by
- viewModel.containerViewModel.editModeViewModel.isEditing
- .collectAsStateWithLifecycle()
- val animationSpecEditMode = tween<Float>(EDIT_MODE_TIME_MILLIS)
- AnimatedContent(
- targetState = isEditing,
- transitionSpec = {
- fadeIn(animationSpecEditMode) togetherWith
- fadeOut(animationSpecEditMode)
- },
- label = "EditModeAnimatedContent",
- ) { editing ->
- if (editing) {
- val qqsPadding by
- viewModel.qqsHeaderHeight.collectAsStateWithLifecycle()
- EditMode(
- viewModel = viewModel.containerViewModel.editModeViewModel,
- modifier =
- Modifier.fillMaxWidth()
- .padding(top = { qqsPadding })
- .padding(
- horizontal = {
- QuickSettingsShade.Dimensions.Padding
- .roundToPx()
- }
- ),
- )
- } else {
- CollapsableQuickSettingsSTL()
- }
+
+ override val lifecycle: Lifecycle =
+ this@repeatWhenAttached.lifecycle
}
- }
+ )
+ setContent { this@QSFragmentCompose.Content() }
}
}
}
@@ -261,6 +223,58 @@ constructor(
return frame
}
+ @Composable
+ private fun Content() {
+ PlatformTheme {
+ val visible by viewModel.qsVisible.collectAsStateWithLifecycle()
+
+ AnimatedVisibility(
+ visible = visible,
+ modifier =
+ Modifier.windowInsetsPadding(WindowInsets.navigationBars).thenIf(
+ notificationScrimClippingParams.isEnabled
+ ) {
+ Modifier.notificationScrimClip(
+ notificationScrimClippingParams.leftInset,
+ notificationScrimClippingParams.top,
+ notificationScrimClippingParams.rightInset,
+ notificationScrimClippingParams.bottom,
+ notificationScrimClippingParams.radius,
+ )
+ },
+ ) {
+ val isEditing by
+ viewModel.containerViewModel.editModeViewModel.isEditing
+ .collectAsStateWithLifecycle()
+ val animationSpecEditMode = tween<Float>(EDIT_MODE_TIME_MILLIS)
+ AnimatedContent(
+ targetState = isEditing,
+ transitionSpec = {
+ fadeIn(animationSpecEditMode) togetherWith fadeOut(animationSpecEditMode)
+ },
+ label = "EditModeAnimatedContent",
+ ) { editing ->
+ if (editing) {
+ val qqsPadding by viewModel.qqsHeaderHeight.collectAsStateWithLifecycle()
+ EditMode(
+ viewModel = viewModel.containerViewModel.editModeViewModel,
+ modifier =
+ Modifier.fillMaxWidth()
+ .padding(top = { qqsPadding })
+ .padding(
+ horizontal = {
+ QuickSettingsShade.Dimensions.Padding.roundToPx()
+ }
+ ),
+ )
+ } else {
+ CollapsableQuickSettingsSTL()
+ }
+ }
+ }
+ }
+ }
+
/**
* STL that contains both QQS (tiles) and QS (brightness, tiles, footer actions), but no Edit
* mode. It tracks [QSFragmentComposeViewModel.expansionState] to drive the transition between
@@ -649,23 +663,6 @@ constructor(
}
}
-private fun View.setBackPressedDispatcher() {
- repeatWhenAttached {
- repeatOnLifecycle(Lifecycle.State.CREATED) {
- setViewTreeOnBackPressedDispatcherOwner(
- object : OnBackPressedDispatcherOwner {
- override val onBackPressedDispatcher =
- OnBackPressedDispatcher().apply {
- setOnBackInvokedDispatcher(it.viewRootImpl.onBackInvokedDispatcher)
- }
-
- override val lifecycle: Lifecycle = this@repeatWhenAttached.lifecycle
- }
- )
- }
- }
-}
-
private suspend inline fun <Listener : Any, Data> setListenerJob(
listenerFlow: MutableStateFlow<Listener?>,
dataFlow: Flow<Data>,
diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt
index 30bafaece923..45c1e48840ee 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt
@@ -606,6 +606,7 @@ private fun AvailableTileGridCell(
SmallTileContent(
icon = cell.tile.icon,
color = colors.icon,
+ animateToEnd = true,
modifier = Modifier.align(Alignment.Center),
)
}
@@ -652,6 +653,7 @@ fun EditTile(
SmallTileContent(
icon = tileViewModel.icon,
color = colors.icon,
+ animateToEnd = true,
modifier = Modifier.align(Alignment.Center),
)
}
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotData.kt b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotData.kt
index 4fdd90bdcded..b5d45a488997 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotData.kt
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotData.kt
@@ -4,10 +4,10 @@ import android.content.ComponentName
import android.graphics.Bitmap
import android.graphics.Insets
import android.graphics.Rect
-import android.net.Uri
import android.os.Process
import android.os.UserHandle
import android.view.Display
+import android.view.WindowManager
import android.view.WindowManager.ScreenshotSource
import android.view.WindowManager.ScreenshotType
import androidx.annotation.VisibleForTesting
@@ -26,11 +26,9 @@ data class ScreenshotData(
var insets: Insets,
var bitmap: Bitmap?,
var displayId: Int,
- /** App-provided URL representing the content the user was looking at in the screenshot. */
- var contextUrl: Uri? = null,
) {
- val packageNameString: String
- get() = if (topComponent == null) "" else topComponent!!.packageName
+ val packageNameString
+ get() = topComponent?.packageName ?: ""
fun getUserOrDefault(): UserHandle {
return userHandle ?: Process.myUserHandle()
@@ -54,8 +52,8 @@ data class ScreenshotData(
@VisibleForTesting
fun forTesting() =
ScreenshotData(
- type = 0,
- source = 0,
+ type = WindowManager.TAKE_SCREENSHOT_FULLSCREEN,
+ source = ScreenshotSource.SCREENSHOT_KEY_CHORD,
userHandle = null,
topComponent = null,
screenBounds = null,
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotExecutor.kt b/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotExecutor.kt
index 448f7c4d7e95..38608d0e793a 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotExecutor.kt
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotExecutor.kt
@@ -20,9 +20,11 @@ import android.net.Uri
import android.os.Trace
import android.util.Log
import android.view.Display
+import android.view.WindowManager.ScreenshotSource
import android.view.WindowManager.TAKE_SCREENSHOT_PROVIDED_IMAGE
import com.android.internal.logging.UiEventLogger
import com.android.internal.util.ScreenshotRequest
+import com.android.systemui.Flags.screenshotMultidisplayFocusChange
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.display.data.repository.DisplayRepository
@@ -40,7 +42,7 @@ interface TakeScreenshotExecutor {
suspend fun executeScreenshots(
screenshotRequest: ScreenshotRequest,
onSaved: (Uri?) -> Unit,
- requestCallback: RequestCallback
+ requestCallback: RequestCallback,
)
fun onCloseSystemDialogsReceived()
@@ -52,7 +54,7 @@ interface TakeScreenshotExecutor {
fun executeScreenshotsAsync(
screenshotRequest: ScreenshotRequest,
onSaved: Consumer<Uri?>,
- requestCallback: RequestCallback
+ requestCallback: RequestCallback,
)
}
@@ -60,7 +62,7 @@ interface ScreenshotHandler {
fun handleScreenshot(
screenshot: ScreenshotData,
finisher: Consumer<Uri?>,
- requestCallback: RequestCallback
+ requestCallback: RequestCallback,
)
}
@@ -75,7 +77,7 @@ class TakeScreenshotExecutorImpl
@Inject
constructor(
private val interactiveScreenshotHandlerFactory: InteractiveScreenshotHandler.Factory,
- displayRepository: DisplayRepository,
+ private val displayRepository: DisplayRepository,
@Application private val mainScope: CoroutineScope,
private val screenshotRequestProcessor: ScreenshotRequestProcessor,
private val uiEventLogger: UiEventLogger,
@@ -95,31 +97,44 @@ constructor(
override suspend fun executeScreenshots(
screenshotRequest: ScreenshotRequest,
onSaved: (Uri?) -> Unit,
- requestCallback: RequestCallback
+ requestCallback: RequestCallback,
) {
- val displays = getDisplaysToScreenshot(screenshotRequest.type)
- val resultCallbackWrapper = MultiResultCallbackWrapper(requestCallback)
- if (displays.isEmpty()) {
- Log.wtf(TAG, "No displays found for screenshot.")
- }
- displays.forEach { display ->
- val displayId = display.displayId
- var screenshotHandler: ScreenshotHandler =
- if (displayId == Display.DEFAULT_DISPLAY) {
- getScreenshotController(display)
- } else {
- headlessScreenshotHandler
- }
- Log.d(TAG, "Executing screenshot for display $displayId")
+ if (screenshotMultidisplayFocusChange()) {
+ val display = getDisplayToScreenshot(screenshotRequest)
+ val screenshotHandler = getScreenshotController(display)
dispatchToController(
screenshotHandler,
- rawScreenshotData = ScreenshotData.fromRequest(screenshotRequest, displayId),
- onSaved =
- if (displayId == Display.DEFAULT_DISPLAY) {
- onSaved
- } else { _ -> },
- callback = resultCallbackWrapper.createCallbackForId(displayId)
+ ScreenshotData.fromRequest(screenshotRequest, display.displayId),
+ onSaved,
+ requestCallback,
)
+ } else {
+ val displays = getDisplaysToScreenshot(screenshotRequest.type)
+ val resultCallbackWrapper = MultiResultCallbackWrapper(requestCallback)
+ if (displays.isEmpty()) {
+ Log.e(TAG, "No displays found for screenshot.")
+ }
+
+ displays.forEach { display ->
+ val displayId = display.displayId
+ var screenshotHandler: ScreenshotHandler =
+ if (displayId == Display.DEFAULT_DISPLAY) {
+ getScreenshotController(display)
+ } else {
+ headlessScreenshotHandler
+ }
+
+ Log.d(TAG, "Executing screenshot for display $displayId")
+ dispatchToController(
+ screenshotHandler,
+ rawScreenshotData = ScreenshotData.fromRequest(screenshotRequest, displayId),
+ onSaved =
+ if (displayId == Display.DEFAULT_DISPLAY) {
+ onSaved
+ } else { _ -> },
+ callback = resultCallbackWrapper.createCallbackForId(displayId),
+ )
+ }
}
}
@@ -128,7 +143,7 @@ constructor(
screenshotHandler: ScreenshotHandler,
rawScreenshotData: ScreenshotData,
onSaved: (Uri?) -> Unit,
- callback: RequestCallback
+ callback: RequestCallback,
) {
// Let's wait before logging "screenshot requested", as we should log the processed
// ScreenshotData.
@@ -160,13 +175,13 @@ constructor(
uiEventLogger.log(
ScreenshotEvent.getScreenshotSource(screenshotData.source),
0,
- screenshotData.packageNameString
+ screenshotData.packageNameString,
)
}
private fun onFailedScreenshotRequest(
screenshotData: ScreenshotData,
- callback: RequestCallback
+ callback: RequestCallback,
) {
uiEventLogger.log(SCREENSHOT_CAPTURE_FAILED, 0, screenshotData.packageNameString)
getNotificationController(screenshotData.displayId)
@@ -184,6 +199,31 @@ constructor(
}
}
+ // Return the single display to be screenshot based upon the request.
+ private suspend fun getDisplayToScreenshot(screenshotRequest: ScreenshotRequest): Display {
+ return when (screenshotRequest.source) {
+ // TODO(b/367394043): Overview requests should use a display ID provided in
+ // ScreenshotRequest.
+ ScreenshotSource.SCREENSHOT_OVERVIEW ->
+ displayRepository.getDisplay(Display.DEFAULT_DISPLAY)
+ ?: error("Can't find default display")
+
+ // Key chord and vendor gesture occur on the device itself, so screenshot the device's
+ // display
+ ScreenshotSource.SCREENSHOT_KEY_CHORD,
+ ScreenshotSource.SCREENSHOT_VENDOR_GESTURE ->
+ displayRepository.getDisplay(Display.DEFAULT_DISPLAY)
+ ?: error("Can't find default display")
+
+ // All other invocations use the focused display
+ else -> focusedDisplay()
+ }
+ }
+
+ // TODO(b/367394043): Determine the focused display here.
+ private suspend fun focusedDisplay() =
+ displayRepository.getDisplay(Display.DEFAULT_DISPLAY) ?: error("Can't find default display")
+
/** Propagates the close system dialog signal to the ScreenshotController. */
override fun onCloseSystemDialogsReceived() {
if (screenshotController?.isPendingSharedTransition() == false) {
@@ -214,7 +254,7 @@ constructor(
override fun executeScreenshotsAsync(
screenshotRequest: ScreenshotRequest,
onSaved: Consumer<Uri?>,
- requestCallback: RequestCallback
+ requestCallback: RequestCallback,
) {
mainScope.launch {
executeScreenshots(screenshotRequest, { uri -> onSaved.accept(uri) }, requestCallback)
@@ -235,9 +275,7 @@ constructor(
* - If any finished with an error, [reportError] of [originalCallback] is called
* - Otherwise, [onFinish] is called.
*/
- private class MultiResultCallbackWrapper(
- private val originalCallback: RequestCallback,
- ) {
+ private class MultiResultCallbackWrapper(private val originalCallback: RequestCallback) {
private val idsPending = mutableSetOf<Int>()
private val idsWithErrors = mutableSetOf<Int>()
@@ -290,7 +328,7 @@ constructor(
Display.TYPE_EXTERNAL,
Display.TYPE_INTERNAL,
Display.TYPE_OVERLAY,
- Display.TYPE_WIFI
+ Display.TYPE_WIFI,
)
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowViewController.java
index 5473af3b3fb5..cae141d014a8 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowViewController.java
@@ -736,7 +736,9 @@ public class NotificationShadeWindowViewController implements Dumpable {
event.recycle();
mTouchCancelled = true;
}
- mAmbientState.setSwipingUp(false);
+ if (!SceneContainerFlag.isEnabled()) {
+ mAmbientState.setSwipingUp(false);
+ }
if (MigrateClocksToBlueprint.isEnabled()) {
mDragDownHelper.stopDragging();
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/HeadsUpManagerPhone.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/HeadsUpManagerPhone.java
index 1c840e08f748..fb42bad7033d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/HeadsUpManagerPhone.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/HeadsUpManagerPhone.java
@@ -103,7 +103,8 @@ public class HeadsUpManagerPhone extends BaseHeadsUpManager implements
private boolean mTrackingHeadsUp;
private final HashSet<String> mSwipedOutKeys = new HashSet<>();
private final HashSet<NotificationEntry> mEntriesToRemoveAfterExpand = new HashSet<>();
- private final ArraySet<NotificationEntry> mEntriesToRemoveWhenReorderingAllowed
+ @VisibleForTesting
+ public final ArraySet<NotificationEntry> mEntriesToRemoveWhenReorderingAllowed
= new ArraySet<>();
private boolean mIsShadeOrQsExpanded;
private boolean mIsQsExpanded;
@@ -630,11 +631,8 @@ public class HeadsUpManagerPhone extends BaseHeadsUpManager implements
super.setEntry(entry, removeRunnable);
if (NotificationThrottleHun.isEnabled()) {
- if (!mVisualStabilityProvider.isReorderingAllowed()
- // We don't want to allow reordering while pulsing, but headsup need to
- // time out anyway
- && !entry.showingPulsing()) {
- mEntriesToRemoveWhenReorderingAllowed.add(entry);
+ mEntriesToRemoveWhenReorderingAllowed.add(entry);
+ if (!mVisualStabilityProvider.isReorderingAllowed()) {
entry.setSeenInShade(true);
}
}
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 1ea26e5727ac..5ae24f76a9bf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
@@ -63,6 +63,7 @@ import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerCallbackInte
import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor;
import com.android.systemui.bouncer.shared.flag.ComposeBouncerFlags;
import com.android.systemui.bouncer.ui.BouncerView;
+import com.android.systemui.bouncer.util.BouncerTestUtilsKt;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor;
@@ -1552,8 +1553,10 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
}
public boolean shouldDismissOnMenuPressed() {
- return mPrimaryBouncerView.getDelegate() != null
- && mPrimaryBouncerView.getDelegate().shouldDismissOnMenuPressed();
+ return (mPrimaryBouncerView.getDelegate() != null
+ && mPrimaryBouncerView.getDelegate().shouldDismissOnMenuPressed()) || (
+ ComposeBouncerFlags.INSTANCE.isEnabled() && BouncerTestUtilsKt.shouldEnableMenuKey(
+ mContext.getResources()));
}
public boolean interceptMediaKey(KeyEvent event) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/AvalancheController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/policy/AvalancheController.kt
index 674cbb7c3c0d..d406ed4e49c7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/AvalancheController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/AvalancheController.kt
@@ -46,6 +46,8 @@ constructor(
private val tag = "AvalancheController"
private val debug = Compile.IS_DEBUG && Log.isLoggable(tag, Log.DEBUG)
+ var baseEntryMapStr : () -> String = { "baseEntryMapStr not initialized" }
+
var enableAtRuntime = true
set(value) {
if (!value) {
@@ -116,17 +118,25 @@ constructor(
val key = getKey(entry)
if (runnable == null) {
- headsUpManagerLogger.logAvalancheUpdate(caller, isEnabled, key, "Runnable NULL, stop")
+ headsUpManagerLogger.logAvalancheUpdate(
+ caller, isEnabled, key,
+ "Runnable NULL, stop. ${getStateStr()}"
+ )
return
}
if (!isEnabled) {
- headsUpManagerLogger.logAvalancheUpdate(caller, isEnabled, key,
- "NOT ENABLED, run runnable")
+ headsUpManagerLogger.logAvalancheUpdate(
+ caller, isEnabled, key,
+ "NOT ENABLED, run runnable. ${getStateStr()}"
+ )
runnable.run()
return
}
if (entry == null) {
- headsUpManagerLogger.logAvalancheUpdate(caller, isEnabled, key, "Entry NULL, stop")
+ headsUpManagerLogger.logAvalancheUpdate(
+ caller, isEnabled, key,
+ "Entry NULL, stop. ${getStateStr()}"
+ )
return
}
if (debug) {
@@ -181,32 +191,40 @@ constructor(
val key = getKey(entry)
if (runnable == null) {
- headsUpManagerLogger.logAvalancheDelete(caller, isEnabled, key, "Runnable NULL, stop")
+ headsUpManagerLogger.logAvalancheDelete(
+ caller, isEnabled, key,
+ "Runnable NULL, stop. ${getStateStr()}"
+ )
return
}
if (!isEnabled) {
- headsUpManagerLogger.logAvalancheDelete(caller, isEnabled, key,
- "NOT ENABLED, run runnable")
runnable.run()
+ headsUpManagerLogger.logAvalancheDelete(
+ caller, isEnabled = false, key,
+ "NOT ENABLED, run runnable. ${getStateStr()}"
+ )
return
}
if (entry == null) {
- headsUpManagerLogger.logAvalancheDelete(caller, isEnabled, key,
- "Entry NULL, run runnable")
runnable.run()
+ headsUpManagerLogger.logAvalancheDelete(
+ caller, isEnabled = true, key,
+ "Entry NULL, run runnable. ${getStateStr()}"
+ )
return
}
val outcome: String
if (entry in nextMap) {
- outcome = "remove from next"
if (entry in nextMap) nextMap.remove(entry)
if (entry in nextList) nextList.remove(entry)
uiEventLogger.log(ThrottleEvent.AVALANCHE_THROTTLING_HUN_REMOVED)
+ outcome = "remove from next. ${getStateStr()}"
+
} else if (entry in debugDropSet) {
- outcome = "remove from dropset"
debugDropSet.remove(entry)
+ outcome = "remove from dropset. ${getStateStr()}"
+
} else if (isShowing(entry)) {
- outcome = "remove showing"
previousHunKey = getKey(headsUpEntryShowing)
// Show the next HUN before removing this one, so that we don't tell listeners
// onHeadsUpPinnedModeChanged, which causes
@@ -214,9 +232,11 @@ constructor(
// HUN is animating out, resulting in a flicker.
showNext()
runnable.run()
+ outcome = "remove showing. ${getStateStr()}"
+
} else {
- outcome = "run runnable for untracked shown"
runnable.run()
+ outcome = "run runnable for untracked shown HUN. ${getStateStr()}"
}
headsUpManagerLogger.logAvalancheDelete(caller, isEnabled(), getKey(entry), outcome)
}
@@ -405,7 +425,9 @@ constructor(
"\n\tprevious: [$previousHunKey]" +
"\n\tnext list: $nextListStr" +
"\n\tnext map: $nextMapStr" +
- "\n\tdropped: $dropSetStr"
+ "\n\tdropped: $dropSetStr" +
+ "\nBHUM.mHeadsUpEntryMap: " +
+ baseEntryMapStr()
}
private val dropSetStr: String
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseHeadsUpManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseHeadsUpManager.java
index f37393ac6729..4284c1911b33 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseHeadsUpManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseHeadsUpManager.java
@@ -116,6 +116,7 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager {
mAccessibilityMgr = accessibilityManagerWrapper;
mUiEventLogger = uiEventLogger;
mAvalancheController = avalancheController;
+ mAvalancheController.setBaseEntryMapStr(this::getEntryMapStr);
Resources resources = context.getResources();
mMinimumDisplayTime = NotificationThrottleHun.isEnabled()
? 500 : resources.getInteger(R.integer.heads_up_notification_minimum_time);
@@ -583,6 +584,18 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager {
return mUser;
}
+ private String getEntryMapStr() {
+ if (mHeadsUpEntryMap.isEmpty()) {
+ return "EMPTY";
+ }
+ StringBuilder entryMapStr = new StringBuilder();
+ for (HeadsUpEntry entry: mHeadsUpEntryMap.values()) {
+ entryMapStr.append("\n\t").append(
+ entry.mEntry == null ? "null" : entry.mEntry.getKey());
+ }
+ return entryMapStr.toString();
+ }
+
@Override
public void dump(@NonNull PrintWriter pw, @NonNull String[] args) {
pw.println("HeadsUpManager state:");
@@ -992,7 +1005,6 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager {
* Clear any pending removal runnables.
*/
public void cancelAutoRemovalCallbacks(@Nullable String reason) {
- mLogger.logAutoRemoveCancelRequest(this.mEntry, reason);
Runnable runnable = () -> {
final boolean removed = cancelAutoRemovalCallbackInternal();
@@ -1001,6 +1013,7 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager {
}
};
if (mEntry != null && isHeadsUpEntry(mEntry.getKey())) {
+ mLogger.logAutoRemoveCancelRequest(this.mEntry, reason);
mAvalancheController.update(this, runnable, reason + " cancelAutoRemovalCallbacks");
} else {
// Just removed
diff --git a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/GestureTutorialScreen.kt b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/GestureTutorialScreen.kt
index 0ecbf70f85c3..e1b89da392ea 100644
--- a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/GestureTutorialScreen.kt
+++ b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/GestureTutorialScreen.kt
@@ -18,20 +18,25 @@ package com.android.systemui.touchpad.tutorial.ui.composable
import android.content.res.Resources
import androidx.activity.compose.BackHandler
+import androidx.compose.animation.core.Animatable
+import androidx.compose.animation.core.tween
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.BoxScope
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.input.pointer.pointerInteropFilter
import androidx.compose.ui.platform.LocalContext
import com.android.systemui.inputdevice.tutorial.ui.composable.ActionTutorialContent
import com.android.systemui.inputdevice.tutorial.ui.composable.TutorialActionState
import com.android.systemui.inputdevice.tutorial.ui.composable.TutorialScreenConfig
+import com.android.systemui.touchpad.tutorial.ui.gesture.EasterEggGestureMonitor
import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState
import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.FINISHED
import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.IN_PROGRESS
@@ -44,7 +49,7 @@ interface GestureMonitorProvider {
@Composable
fun rememberGestureMonitor(
resources: Resources,
- gestureStateChangedCallback: (GestureState) -> Unit
+ gestureStateChangedCallback: (GestureState) -> Unit,
): TouchpadGestureMonitor
}
@@ -57,7 +62,7 @@ class DistanceBasedGestureMonitorProvider(
@Composable
override fun rememberGestureMonitor(
resources: Resources,
- gestureStateChangedCallback: (GestureState) -> Unit
+ gestureStateChangedCallback: (GestureState) -> Unit,
): TouchpadGestureMonitor {
val distanceThresholdPx =
resources.getDimensionPixelSize(
@@ -86,17 +91,25 @@ fun GestureTutorialScreen(
) {
BackHandler(onBack = onBack)
var gestureState by remember { mutableStateOf(NOT_STARTED) }
+ var easterEggTriggered by remember { mutableStateOf(false) }
val gestureMonitor =
gestureMonitorProvider.rememberGestureMonitor(
resources = LocalContext.current.resources,
- gestureStateChangedCallback = { gestureState = it }
+ gestureStateChangedCallback = { gestureState = it },
)
- val gestureHandler = remember(gestureMonitor) { TouchpadGestureHandler(gestureMonitor) }
- TouchpadGesturesHandlingBox(gestureHandler, gestureState) {
+ val easterEggMonitor = EasterEggGestureMonitor { easterEggTriggered = true }
+ val gestureHandler =
+ remember(gestureMonitor) { TouchpadGestureHandler(gestureMonitor, easterEggMonitor) }
+ TouchpadGesturesHandlingBox(
+ gestureHandler,
+ gestureState,
+ easterEggTriggered,
+ resetEasterEggFlag = { easterEggTriggered = false },
+ ) {
ActionTutorialContent(
gestureState.toTutorialActionState(),
onDoneButtonClicked,
- screenConfig
+ screenConfig,
)
}
}
@@ -105,9 +118,22 @@ fun GestureTutorialScreen(
private fun TouchpadGesturesHandlingBox(
gestureHandler: TouchpadGestureHandler,
gestureState: GestureState,
+ easterEggTriggered: Boolean,
+ resetEasterEggFlag: () -> Unit,
modifier: Modifier = Modifier,
- content: @Composable BoxScope.() -> Unit
+ content: @Composable BoxScope.() -> Unit,
) {
+ val rotationAnimation = remember { Animatable(0f) }
+ LaunchedEffect(easterEggTriggered) {
+ if (easterEggTriggered || rotationAnimation.isRunning) {
+ rotationAnimation.snapTo(0f)
+ rotationAnimation.animateTo(
+ targetValue = 360f,
+ animationSpec = tween(durationMillis = 2000),
+ )
+ resetEasterEggFlag()
+ }
+ }
Box(
modifier =
modifier
@@ -124,6 +150,7 @@ private fun TouchpadGesturesHandlingBox(
}
}
)
+ .graphicsLayer { rotationZ = rotationAnimation.value }
) {
content()
}
diff --git a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/EasterEggGestureMonitor.kt b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/EasterEggGestureMonitor.kt
new file mode 100644
index 000000000000..7483840d1933
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/EasterEggGestureMonitor.kt
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.touchpad.tutorial.ui.gesture
+
+import android.view.MotionEvent
+import com.android.systemui.touchpad.tutorial.ui.gesture.EasterEggGestureMonitor.Companion.CIRCLES_COUNT_THRESHOLD
+import kotlin.math.abs
+import kotlin.math.atan2
+import kotlin.math.pow
+import kotlin.math.sqrt
+
+/**
+ * Monitor recognizing easter egg gesture, that is at least [CIRCLES_COUNT_THRESHOLD] circles
+ * clockwise within one gesture. It tries to be on the safer side of not triggering gesture if we're
+ * not sure if full circle was done.
+ */
+class EasterEggGestureMonitor(private val callback: () -> Unit) {
+
+ private var last: Point = Point(0f, 0f)
+ private var cumulativeAngle: Float = 0f
+ private var lastAngle: Float? = null
+ private var circleCount: Int = 0
+
+ private class Point(val x: Float, val y: Float)
+
+ private val points = mutableListOf<Point>()
+
+ fun processTouchpadEvent(event: MotionEvent) {
+ when (event.action) {
+ MotionEvent.ACTION_DOWN -> {
+ reset()
+ last = Point(event.x, event.y)
+ points.add(Point(event.x, event.y))
+ }
+ MotionEvent.ACTION_MOVE -> {
+ val current = Point(event.x, event.y)
+ points.add(current)
+
+ if (distanceBetween(last, current) > MIN_MOTION_EVENT_DISTANCE_PX) {
+ val currentAngle = calculateAngle(last, current)
+ if (lastAngle == null) {
+ // we can't start calculating angle changes before having calculated first
+ // angle which serves as a reference point
+ lastAngle = currentAngle
+ } else {
+ val deltaAngle = currentAngle - lastAngle!!
+
+ cumulativeAngle += normalizeAngleDelta(deltaAngle)
+ lastAngle = currentAngle
+ last = current
+
+ val fullCircleCompleted = cumulativeAngle >= 2 * Math.PI
+ if (fullCircleCompleted) {
+ cumulativeAngle = 0f
+ circleCount += 1
+ }
+ }
+ }
+ }
+ MotionEvent.ACTION_UP -> {
+ // without checking if gesture is circular we can have gesture doing arches back and
+ // forth that finally reaches full circle angle
+ if (circleCount >= CIRCLES_COUNT_THRESHOLD && wasGestureCircular(points)) {
+ callback()
+ }
+ reset()
+ }
+ MotionEvent.ACTION_CANCEL -> {
+ reset()
+ }
+ }
+ }
+
+ private fun reset() {
+ cumulativeAngle = 0f
+ lastAngle = null
+ circleCount = 0
+ points.clear()
+ }
+
+ private fun normalizeAngleDelta(deltaAngle: Float): Float {
+ // Normalize the deltaAngle to [-PI, PI] range
+ val normalizedDelta =
+ if (deltaAngle > Math.PI) {
+ deltaAngle - (2 * Math.PI).toFloat()
+ } else if (deltaAngle < -Math.PI) {
+ deltaAngle + (2 * Math.PI).toFloat()
+ } else {
+ deltaAngle
+ }
+ return normalizedDelta
+ }
+
+ private fun wasGestureCircular(points: List<Point>): Boolean {
+ val center =
+ Point(
+ x = points.map { it.x }.average().toFloat(),
+ y = points.map { it.y }.average().toFloat(),
+ )
+ val radius = points.map { distanceBetween(it, center) }.average().toFloat()
+ for (point in points) {
+ val distance = distanceBetween(point, center)
+ if (abs(distance - radius) > RADIUS_DEVIATION_TOLERANCE * radius) {
+ return false
+ }
+ }
+ return true
+ }
+
+ private fun distanceBetween(point: Point, center: Point) =
+ sqrt((point.x - center.x).toDouble().pow(2.0) + (point.y - center.y).toDouble().pow(2.0))
+
+ private fun calculateAngle(point1: Point, point2: Point): Float {
+ return atan2(point2.y - point1.y, point2.x - point1.x)
+ }
+
+ companion object {
+ /**
+ * How much we allow any one point to deviate from average radius. In other words it's a
+ * modifier of how difficult is to trigger the gesture. The smaller value the harder it is
+ * to trigger. 0.6f seems quite high but:
+ * 1. this is just extra check after circles were verified with movement angle
+ * 2. it's because of how touchpad events work - they're approximating movement, so doing
+ * smooth circle is ~impossible. Rounded corners square is probably the best thing that
+ * user can do
+ */
+ private const val RADIUS_DEVIATION_TOLERANCE: Float = 0.7f
+ private const val CIRCLES_COUNT_THRESHOLD = 3
+
+ /**
+ * Min distance required between motion events to have angular difference calculated. This
+ * value is a tradeoff between: minimizing the noise and delaying circle recognition (high
+ * value) versus performing calculations very/too often (low value).
+ */
+ private const val MIN_MOTION_EVENT_DISTANCE_PX = 10
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandler.kt b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandler.kt
index bf85b0a899ea..88671d41f1cd 100644
--- a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandler.kt
+++ b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandler.kt
@@ -25,6 +25,7 @@ import android.view.MotionEvent
*/
class TouchpadGestureHandler(
private val gestureMonitor: TouchpadGestureMonitor,
+ private val easterEggGestureMonitor: EasterEggGestureMonitor,
) {
fun onMotionEvent(event: MotionEvent): Boolean {
@@ -36,7 +37,11 @@ class TouchpadGestureHandler(
event.actionMasked == MotionEvent.ACTION_DOWN &&
event.isButtonPressed(MotionEvent.BUTTON_PRIMARY)
return if (isFromTouchpad && !buttonClick) {
- gestureMonitor.processTouchpadEvent(event)
+ if (isTwoFingerSwipe(event)) {
+ easterEggGestureMonitor.processTouchpadEvent(event)
+ } else {
+ gestureMonitor.processTouchpadEvent(event)
+ }
true
} else {
false
diff --git a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureMonitor.kt b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureMonitor.kt
index 1d2097d56088..8774a9286022 100644
--- a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureMonitor.kt
+++ b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureMonitor.kt
@@ -38,3 +38,7 @@ private fun isNFingerTouchpadSwipe(event: MotionEvent, fingerCount: Int): Boolea
return event.classification == MotionEvent.CLASSIFICATION_MULTI_FINGER_SWIPE &&
event.getAxisValue(MotionEvent.AXIS_GESTURE_SWIPE_FINGER_COUNT) == fingerCount.toFloat()
}
+
+fun isTwoFingerSwipe(event: MotionEvent): Boolean {
+ return event.classification == MotionEvent.CLASSIFICATION_TWO_FINGER_SWIPE
+}
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
index e609d5f93626..34ebba844926 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
@@ -127,6 +127,7 @@ import com.android.internal.widget.ILockSettings;
import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.KeyguardUpdateMonitor.BiometricAuthenticated;
import com.android.keyguard.logging.KeyguardUpdateMonitorLogger;
+import com.android.keyguard.logging.SimLogger;
import com.android.settingslib.fuelgauge.BatteryStatus;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.biometrics.AuthController;
@@ -267,6 +268,8 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
@Mock
private KeyguardUpdateMonitorLogger mKeyguardUpdateMonitorLogger;
@Mock
+ private SimLogger mSimLogger;
+ @Mock
private SessionTracker mSessionTracker;
@Mock
private UiEventLogger mUiEventLogger;
@@ -2234,6 +2237,36 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
}
@Test
+ public void testOnSimStateChanged_LockedToNotReadyToLocked() {
+ int validSubId = 10;
+ int slotId = 0;
+
+ KeyguardUpdateMonitorCallback keyguardUpdateMonitorCallback = spy(
+ KeyguardUpdateMonitorCallback.class);
+ mKeyguardUpdateMonitor.registerCallback(keyguardUpdateMonitorCallback);
+ // Initially locked
+ mKeyguardUpdateMonitor.handleSimStateChange(validSubId, slotId,
+ TelephonyManager.SIM_STATE_PIN_REQUIRED);
+ verify(keyguardUpdateMonitorCallback).onSimStateChanged(validSubId, slotId,
+ TelephonyManager.SIM_STATE_PIN_REQUIRED);
+
+ reset(keyguardUpdateMonitorCallback);
+ // Not ready, with invalid sub id
+ mKeyguardUpdateMonitor.handleSimStateChange(SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+ slotId, TelephonyManager.SIM_STATE_NOT_READY);
+ verify(keyguardUpdateMonitorCallback).onSimStateChanged(
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID, slotId,
+ TelephonyManager.SIM_STATE_NOT_READY);
+
+ reset(keyguardUpdateMonitorCallback);
+ // Back to PIN required, which notifies listeners
+ mKeyguardUpdateMonitor.handleSimStateChange(validSubId, slotId,
+ TelephonyManager.SIM_STATE_PIN_REQUIRED);
+ verify(keyguardUpdateMonitorCallback).onSimStateChanged(validSubId, slotId,
+ TelephonyManager.SIM_STATE_PIN_REQUIRED);
+ }
+
+ @Test
public void onAuthEnrollmentChangesCallbacksAreNotified() {
KeyguardUpdateMonitorCallback callback = mock(KeyguardUpdateMonitorCallback.class);
ArgumentCaptor<AuthController.Callback> authCallback = ArgumentCaptor.forClass(
@@ -2487,7 +2520,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
mStatusBarStateController, mLockPatternUtils,
mAuthController, mTelephonyListenerManager,
mInteractionJankMonitor, mLatencyTracker, mActiveUnlockConfig,
- mKeyguardUpdateMonitorLogger, mUiEventLogger, () -> mSessionTracker,
+ mKeyguardUpdateMonitorLogger, mSimLogger, mUiEventLogger, () -> mSessionTracker,
mTrustManager, mSubscriptionManager, mUserManager,
mDreamManager, mDevicePolicyManager, mSensorPrivacyManager, mTelephonyManager,
mPackageManager, mFingerprintManager, mBiometricManager,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardListenerTest.java b/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardListenerTest.java
index ccdaa45513bd..d8d53e006ab6 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardListenerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardListenerTest.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyBoolean;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
@@ -31,6 +32,7 @@ import android.app.KeyguardManager;
import android.content.ClipData;
import android.content.ClipDescription;
import android.content.ClipboardManager;
+import android.os.Build;
import android.os.PersistableBundle;
import android.os.UserHandle;
import android.platform.test.annotations.DisableFlags;
@@ -71,6 +73,8 @@ public class ClipboardListenerTest extends SysuiTestCase {
private ClipboardToast mClipboardToast;
@Mock
private UiEventLogger mUiEventLogger;
+ @Mock
+ private ClipboardOverlaySuppressionController mClipboardOverlaySuppressionController;
private ClipData mSampleClipData;
private String mSampleSource = "Example source";
@@ -113,7 +117,8 @@ public class ClipboardListenerTest extends SysuiTestCase {
return null;
},
mKeyguardManager,
- mUiEventLogger);
+ mUiEventLogger,
+ mClipboardOverlaySuppressionController);
}
@@ -155,6 +160,7 @@ public class ClipboardListenerTest extends SysuiTestCase {
}
@Test
+ @DisableFlags(Flags.FLAG_OVERRIDE_SUPPRESS_OVERLAY_CONDITION)
public void test_shouldSuppressOverlay() {
// Regardless of the package or emulator, nothing should be suppressed without the flag
assertFalse(ClipboardListener.shouldSuppressOverlay(mSampleClipData, mSampleSource,
@@ -236,6 +242,64 @@ public class ClipboardListenerTest extends SysuiTestCase {
}
@Test
+ @EnableFlags(Flags.FLAG_OVERRIDE_SUPPRESS_OVERLAY_CONDITION)
+ public void test_onPrimaryClipChanged_notSuppressOverlay() {
+ when(mClipboardOverlaySuppressionController.shouldSuppressOverlay(any(), any(),
+ anyBoolean())).thenReturn(false);
+
+ mClipboardListener.start();
+ mClipboardListener.onPrimaryClipChanged();
+
+ verify(mClipboardOverlaySuppressionController).shouldSuppressOverlay(mSampleClipData,
+ mSampleSource, Build.IS_EMULATOR);
+ verify(mUiEventLogger, times(1)).log(
+ ClipboardOverlayEvent.CLIPBOARD_OVERLAY_ENTERED, 0, mSampleSource);
+ verify(mOverlayController).setClipData(mSampleClipData, mSampleSource);
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_OVERRIDE_SUPPRESS_OVERLAY_CONDITION)
+ public void test_onPrimaryClipChanged_suppressOverlay() {
+ when(mClipboardOverlaySuppressionController.shouldSuppressOverlay(any(), any(),
+ anyBoolean())).thenReturn(true);
+
+ mClipboardListener.start();
+ mClipboardListener.onPrimaryClipChanged();
+
+ verify(mClipboardOverlaySuppressionController).shouldSuppressOverlay(mSampleClipData,
+ mSampleSource, Build.IS_EMULATOR);
+ verifyNoMoreInteractions(mOverlayControllerProvider);
+ }
+
+ @Test
+ @DisableFlags(Flags.FLAG_OVERRIDE_SUPPRESS_OVERLAY_CONDITION)
+ public void test_onPrimaryClipChanged_legacyBehavior_notSuppressOverlay() {
+ mClipboardListener.start();
+ mClipboardListener.onPrimaryClipChanged();
+
+ verify(mUiEventLogger, times(1)).log(
+ ClipboardOverlayEvent.CLIPBOARD_OVERLAY_ENTERED, 0, mSampleSource);
+ verify(mOverlayController).setClipData(mSampleClipData, mSampleSource);
+ }
+
+ @Test
+ @DisableFlags(Flags.FLAG_OVERRIDE_SUPPRESS_OVERLAY_CONDITION)
+ public void test_onPrimaryClipChanged_legacyBehavior_suppressOverlay() {
+ ClipDescription desc = new ClipDescription("Test", new String[]{"text/plain"});
+ PersistableBundle bundle = new PersistableBundle();
+ bundle.putBoolean(ClipboardListener.EXTRA_SUPPRESS_OVERLAY, true);
+ desc.setExtras(bundle);
+ ClipData suppressableClipData = new ClipData(desc, new ClipData.Item("Test Item"));
+ when(mClipboardManager.getPrimaryClip()).thenReturn(suppressableClipData);
+ when(mClipboardManager.getPrimaryClipSource()).thenReturn(ClipboardListener.SHELL_PACKAGE);
+
+ mClipboardListener.start();
+ mClipboardListener.onPrimaryClipChanged();
+
+ verifyNoMoreInteractions(mOverlayControllerProvider);
+ }
+
+ @Test
public void test_nullClipData_showsNothing() {
when(mClipboardManager.getPrimaryClip()).thenReturn(null);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionControllerImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionControllerImplTest.kt
new file mode 100644
index 000000000000..86788d35a670
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionControllerImplTest.kt
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.systemui.clipboardoverlay
+
+import android.content.ClipData
+import android.content.ClipDescription
+import android.os.PersistableBundle
+import androidx.test.filters.SmallTest
+import androidx.test.runner.AndroidJUnit4
+import com.android.systemui.SysuiTestCase
+import org.junit.Assert
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@SmallTest
+@RunWith(AndroidJUnit4::class)
+class ClipboardOverlaySuppressionControllerImplTest : SysuiTestCase() {
+ private lateinit var mSampleClipData: ClipData
+ private lateinit var mSuppressableClipData: ClipData
+ private lateinit var mClipboardOverlaySuppressionControllerImpl:
+ ClipboardOverlaySuppressionControllerImpl
+
+ @Before
+ fun setup() {
+ mSampleClipData = ClipData("Test", arrayOf("text/plain"), ClipData.Item("Test Item"))
+
+ val desc = ClipDescription("Test", arrayOf("text/plain"))
+ val bundle = PersistableBundle()
+ bundle.putBoolean(ClipboardOverlaySuppressionControllerImpl.EXTRA_SUPPRESS_OVERLAY, true)
+ desc.extras = bundle
+ mSuppressableClipData = ClipData(desc, ClipData.Item("Test Item"))
+
+ mClipboardOverlaySuppressionControllerImpl = ClipboardOverlaySuppressionControllerImpl()
+ }
+
+ @Test
+ fun shouldSuppressOverlay_notEmulatorOrShellPackage_returnFalse() {
+ Assert.assertFalse(
+ mClipboardOverlaySuppressionControllerImpl.shouldSuppressOverlay(
+ mSuppressableClipData,
+ EXAMPLE_PACKAGE,
+ false,
+ )
+ )
+ }
+
+ @Test
+ fun shouldSuppressOverlay_nullClipData_returnFalse() {
+ Assert.assertFalse(
+ mClipboardOverlaySuppressionControllerImpl.shouldSuppressOverlay(
+ null,
+ ClipboardOverlaySuppressionControllerImpl.SHELL_PACKAGE,
+ true,
+ )
+ )
+ }
+
+ @Test
+ fun shouldSuppressOverlay_noSuppressOverlayExtra_returnFalse() {
+ // Regardless of the package or emulator, nothing should be suppressed without the flag.
+ Assert.assertFalse(
+ mClipboardOverlaySuppressionControllerImpl.shouldSuppressOverlay(
+ mSampleClipData,
+ EXAMPLE_PACKAGE,
+ true,
+ )
+ )
+ Assert.assertFalse(
+ mClipboardOverlaySuppressionControllerImpl.shouldSuppressOverlay(
+ mSampleClipData,
+ ClipboardOverlaySuppressionControllerImpl.SHELL_PACKAGE,
+ false,
+ )
+ )
+ }
+
+ @Test
+ fun shouldSuppressOverlay_hasSuppressOverlayExtra_returnTrue() {
+ // Clip data with the suppression extra is only honored in the emulator or with the shell
+ // package.
+ Assert.assertTrue(
+ mClipboardOverlaySuppressionControllerImpl.shouldSuppressOverlay(
+ mSuppressableClipData,
+ EXAMPLE_PACKAGE,
+ true,
+ )
+ )
+ Assert.assertTrue(
+ mClipboardOverlaySuppressionControllerImpl.shouldSuppressOverlay(
+ mSuppressableClipData,
+ ClipboardOverlaySuppressionControllerImpl.SHELL_PACKAGE,
+ false,
+ )
+ )
+ }
+
+ companion object {
+ const val EXAMPLE_PACKAGE = "com.example"
+ }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/screenshot/TakeScreenshotExecutorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/screenshot/TakeScreenshotExecutorTest.kt
index a2959811cd0a..15705fbfec33 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/screenshot/TakeScreenshotExecutorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/screenshot/TakeScreenshotExecutorTest.kt
@@ -3,6 +3,8 @@ package com.android.systemui.screenshot
import android.content.ComponentName
import android.graphics.Bitmap
import android.net.Uri
+import android.platform.test.annotations.DisableFlags
+import android.platform.test.annotations.EnableFlags
import android.view.Display
import android.view.Display.TYPE_EXTERNAL
import android.view.Display.TYPE_INTERNAL
@@ -15,6 +17,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.internal.logging.testing.UiEventLoggerFake
import com.android.internal.util.ScreenshotRequest
+import com.android.systemui.Flags
import com.android.systemui.SysuiTestCase
import com.android.systemui.display.data.repository.FakeDisplayRepository
import com.android.systemui.display.data.repository.display
@@ -75,6 +78,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() {
}
@Test
+ @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE)
fun executeScreenshots_severalDisplays_callsControllerForEachOne() =
testScope.runTest {
val internalDisplay = display(TYPE_INTERNAL, id = 0)
@@ -106,6 +110,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() {
}
@Test
+ @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE)
fun executeScreenshots_providedImageType_callsOnlyDefaultDisplayController() =
testScope.runTest {
val internalDisplay = display(TYPE_INTERNAL, id = 0)
@@ -115,7 +120,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() {
screenshotExecutor.executeScreenshots(
createScreenshotRequest(TAKE_SCREENSHOT_PROVIDED_IMAGE),
onSaved,
- callback
+ callback,
)
verify(controllerFactory).create(eq(internalDisplay))
@@ -137,6 +142,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() {
}
@Test
+ @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE)
fun executeScreenshots_onlyVirtualDisplays_noInteractionsWithControllers() =
testScope.runTest {
setDisplays(display(TYPE_VIRTUAL, id = 0), display(TYPE_VIRTUAL, id = 1))
@@ -149,6 +155,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() {
}
@Test
+ @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE)
fun executeScreenshots_allowedTypes_allCaptured() =
testScope.runTest {
whenever(controllerFactory.create(any())).thenReturn(controller)
@@ -157,7 +164,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() {
display(TYPE_INTERNAL, id = 0),
display(TYPE_EXTERNAL, id = 1),
display(TYPE_OVERLAY, id = 2),
- display(TYPE_WIFI, id = 3)
+ display(TYPE_WIFI, id = 3),
)
val onSaved = { _: Uri? -> }
screenshotExecutor.executeScreenshots(createScreenshotRequest(), onSaved, callback)
@@ -168,6 +175,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() {
}
@Test
+ @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE)
fun executeScreenshots_reportsOnFinishedOnlyWhenBothFinished() =
testScope.runTest {
setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1))
@@ -193,6 +201,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() {
}
@Test
+ @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE)
fun executeScreenshots_oneFinishesOtherFails_reportFailsOnlyAtTheEnd() =
testScope.runTest {
setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1))
@@ -220,6 +229,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() {
}
@Test
+ @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE)
fun executeScreenshots_allDisplaysFail_reportsFail() =
testScope.runTest {
setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1))
@@ -319,6 +329,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() {
}
@Test
+ @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE)
fun executeScreenshots_errorFromProcessor_logsScreenshotRequested() =
testScope.runTest {
setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1))
@@ -336,6 +347,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() {
}
@Test
+ @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE)
fun executeScreenshots_errorFromProcessor_logsUiError() =
testScope.runTest {
setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1))
@@ -379,7 +391,8 @@ class TakeScreenshotExecutorTest : SysuiTestCase() {
}
@Test
- fun executeScreenshots_errorFromScreenshotController_reportsRequested() =
+ @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE)
+ fun executeScreenshots_errorFromScreenshotController_multidisplay_reportsRequested() =
testScope.runTest {
setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1))
val onSaved = { _: Uri? -> }
@@ -399,7 +412,27 @@ class TakeScreenshotExecutorTest : SysuiTestCase() {
}
@Test
- fun executeScreenshots_errorFromScreenshotController_reportsError() =
+ @EnableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE)
+ fun executeScreenshots_errorFromScreenshotController_reportsRequested() =
+ testScope.runTest {
+ setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1))
+ val onSaved = { _: Uri? -> }
+ whenever(controller.handleScreenshot(any(), any(), any()))
+ .thenThrow(IllegalStateException::class.java)
+
+ screenshotExecutor.executeScreenshots(createScreenshotRequest(), onSaved, callback)
+
+ val screenshotRequested =
+ eventLogger.logs.filter {
+ it.eventId == ScreenshotEvent.SCREENSHOT_REQUESTED_KEY_OTHER.id
+ }
+ assertThat(screenshotRequested).hasSize(1)
+ screenshotExecutor.onDestroy()
+ }
+
+ @Test
+ @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE)
+ fun executeScreenshots_errorFromScreenshotController_multidisplay_reportsError() =
testScope.runTest {
setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1))
val onSaved = { _: Uri? -> }
@@ -419,7 +452,27 @@ class TakeScreenshotExecutorTest : SysuiTestCase() {
}
@Test
- fun executeScreenshots_errorFromScreenshotController_showsErrorNotification() =
+ @EnableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE)
+ fun executeScreenshots_errorFromScreenshotController_reportsError() =
+ testScope.runTest {
+ setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1))
+ val onSaved = { _: Uri? -> }
+ whenever(controller.handleScreenshot(any(), any(), any()))
+ .thenThrow(IllegalStateException::class.java)
+
+ screenshotExecutor.executeScreenshots(createScreenshotRequest(), onSaved, callback)
+
+ val screenshotRequested =
+ eventLogger.logs.filter {
+ it.eventId == ScreenshotEvent.SCREENSHOT_CAPTURE_FAILED.id
+ }
+ assertThat(screenshotRequested).hasSize(1)
+ screenshotExecutor.onDestroy()
+ }
+
+ @Test
+ @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE)
+ fun executeScreenshots_errorFromScreenshotController_multidisplay_showsErrorNotification() =
testScope.runTest {
setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1))
val onSaved = { _: Uri? -> }
@@ -436,6 +489,21 @@ class TakeScreenshotExecutorTest : SysuiTestCase() {
}
@Test
+ @EnableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE)
+ fun executeScreenshots_errorFromScreenshotController_showsErrorNotification() =
+ testScope.runTest {
+ setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1))
+ val onSaved = { _: Uri? -> }
+ whenever(controller.handleScreenshot(any(), any(), any()))
+ .thenThrow(IllegalStateException::class.java)
+
+ screenshotExecutor.executeScreenshots(createScreenshotRequest(), onSaved, callback)
+
+ verify(notificationsController0).notifyScreenshotError(any())
+ screenshotExecutor.onDestroy()
+ }
+
+ @Test
fun executeScreenshots_finisherCalledWithNullUri_succeeds() =
testScope.runTest {
setDisplays(display(TYPE_INTERNAL, id = 0))
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shared/system/QuickStepContractTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shared/system/QuickStepContractTest.kt
index 6254fb128859..ef03fab95778 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/shared/system/QuickStepContractTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/shared/system/QuickStepContractTest.kt
@@ -21,7 +21,7 @@ import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BOUNCER_SHOWING
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_COMMUNAL_HUB_SHOWING
-import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE
+import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_QUICK_SETTINGS_EXPANDED
import com.google.common.truth.Truth.assertThat
import kotlin.test.Test
import org.junit.runner.RunWith
@@ -41,9 +41,9 @@ class QuickStepContractTest : SysuiTestCase() {
}
@Test
- fun isBackGestureDisabled_hubAndShadeShowing() {
+ fun isBackGestureDisabled_hubAndQSExpanded() {
val sysuiStateFlags =
- SYSUI_STATE_COMMUNAL_HUB_SHOWING and SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE
+ SYSUI_STATE_COMMUNAL_HUB_SHOWING and SYSUI_STATE_QUICK_SETTINGS_EXPANDED
// Gestures are enabled because the shade shows over the hub.
assertThat(
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 bb9f12b4de31..8a3e5510b561 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
@@ -88,6 +88,7 @@ import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.render.GroupExpansionManager;
import com.android.systemui.statusbar.notification.collection.render.GroupMembershipManager;
+import com.android.systemui.statusbar.notification.emptyshade.shared.ModesEmptyShadeFix;
import com.android.systemui.statusbar.notification.emptyshade.ui.view.EmptyShadeView;
import com.android.systemui.statusbar.notification.footer.shared.FooterViewRefactor;
import com.android.systemui.statusbar.notification.footer.ui.view.FooterView;
@@ -383,6 +384,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
}
@Test
+ @DisableFlags(ModesEmptyShadeFix.FLAG_NAME)
public void updateEmptyView_dndSuppressing() {
when(mEmptyShadeView.willBeGone()).thenReturn(true);
@@ -394,6 +396,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
}
@Test
+ @DisableFlags(ModesEmptyShadeFix.FLAG_NAME)
public void updateEmptyView_dndNotSuppressing() {
mStackScroller.setEmptyShadeView(mEmptyShadeView);
when(mEmptyShadeView.willBeGone()).thenReturn(true);
@@ -406,6 +409,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
}
@Test
+ @DisableFlags(ModesEmptyShadeFix.FLAG_NAME)
public void updateEmptyView_noNotificationsToDndSuppressing() {
mStackScroller.setEmptyShadeView(mEmptyShadeView);
when(mEmptyShadeView.willBeGone()).thenReturn(true);
@@ -717,7 +721,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
}
@Test
- @DisableFlags(FooterViewRefactor.FLAG_NAME)
+ @DisableFlags({FooterViewRefactor.FLAG_NAME, ModesEmptyShadeFix.FLAG_NAME})
public void testReInflatesFooterViews() {
when(mEmptyShadeView.getTextResource()).thenReturn(R.string.empty_shade_text);
clearInvocations(mStackScroller);
@@ -728,6 +732,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
@Test
@EnableFlags(FooterViewRefactor.FLAG_NAME)
+ @DisableFlags(ModesEmptyShadeFix.FLAG_NAME)
public void testReInflatesEmptyShadeView() {
when(mEmptyShadeView.getTextResource()).thenReturn(R.string.empty_shade_text);
clearInvocations(mStackScroller);
@@ -1189,7 +1194,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
}
@Test
- @DisableFlags(FooterViewRefactor.FLAG_NAME)
+ @DisableFlags({FooterViewRefactor.FLAG_NAME, ModesEmptyShadeFix.FLAG_NAME})
public void hasFilteredOutSeenNotifs_updateEmptyShadeView() {
mStackScroller.setHasFilteredOutSeenNotifications(true);
mStackScroller.updateEmptyShadeView(true, false);
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/util/KeyguardTransitionRepositorySpySubject.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/util/KeyguardTransitionRepositorySpySubject.kt
index 450f08f1fe3f..11f0c19ffa67 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/util/KeyguardTransitionRepositorySpySubject.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/util/KeyguardTransitionRepositorySpySubject.kt
@@ -21,17 +21,20 @@ import com.android.systemui.keyguard.data.repository.KeyguardTransitionRepositor
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.keyguard.shared.model.TransitionInfo
import com.android.systemui.keyguard.shared.model.TransitionModeOnCanceled
-import com.android.systemui.util.mockito.any
+import com.android.systemui.keyguard.shared.model.TransitionState
import com.android.systemui.util.mockito.withArgCaptor
import com.google.common.truth.FailureMetadata
import com.google.common.truth.Subject
import com.google.common.truth.Truth
import com.google.common.truth.Truth.assertAbout
+import com.google.common.truth.Truth.assertThat
import junit.framework.Assert.assertEquals
import org.junit.Assert.fail
import org.mockito.Mockito
import org.mockito.Mockito.never
import org.mockito.Mockito.verify
+import org.mockito.kotlin.any
+import org.mockito.kotlin.argumentCaptor
/** [Subject] used to make assertions about a [Mockito.spy] KeyguardTransitionRepository. */
class KeyguardTransitionRepositorySpySubject
@@ -89,6 +92,20 @@ private constructor(
}
}
+ /**
+ * Asserts that we started a transition to the given state, optionally verifying additional
+ * params.
+ */
+ suspend fun updatedTransition(value: Float, state: TransitionState) {
+ val valueCaptor = argumentCaptor<Float>()
+ val stateCaptor = argumentCaptor<TransitionState>()
+
+ verify(repository).updateTransition(any(), valueCaptor.capture(), stateCaptor.capture())
+
+ assertThat(value).isEqualTo(valueCaptor.firstValue)
+ assertThat(state).isEqualTo(stateCaptor.firstValue)
+ }
+
/** Verifies that [KeyguardTransitionRepository.startTransition] was never called. */
suspend fun noTransitionsStarted() {
verify(repository, never()).startTransition(any())
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/util/NoUiThreadTestRule.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/util/NoUiThreadTestRule.kt
new file mode 100644
index 000000000000..e4c793dae950
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/util/NoUiThreadTestRule.kt
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+package com.android.systemui.util
+
+import android.testing.UiThreadTest
+import org.junit.Assert.fail
+import org.junit.rules.MethodRule
+import org.junit.runners.model.FrameworkMethod
+import org.junit.runners.model.Statement
+
+/**
+ * A Test rule which prevents us from using the UiThreadTest annotation. See
+ * go/android_junit4_uithreadtest (b/352170965)
+ */
+public class NoUiThreadTestRule : MethodRule {
+ override fun apply(base: Statement, method: FrameworkMethod, target: Any): Statement? {
+ if (hasUiThreadAnnotation(method, target)) {
+ fail("UiThreadTest doesn't actually run on the UiThread")
+ }
+ return base
+ }
+
+ private fun hasUiThreadAnnotation(method: FrameworkMethod, target: Any): Boolean {
+ if (method.getAnnotation(UiThreadTest::class.java) != null) {
+ return true
+ } else {
+ return target.javaClass.getAnnotation(UiThreadTest::class.java) != null
+ }
+ }
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/util/NoUiThreadTestRuleTest.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/util/NoUiThreadTestRuleTest.kt
new file mode 100644
index 000000000000..70dd10384db6
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/util/NoUiThreadTestRuleTest.kt
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+package com.android.systemui.util
+
+import android.testing.UiThreadTest
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import java.lang.AssertionError
+import org.junit.Assert
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.model.FrameworkMethod
+import org.junit.runners.model.Statement
+
+/**
+ * Test that NoUiThreadTestRule asserts when it finds a framework method with a UiThreadTest
+ * annotation.
+ */
+@RunWith(AndroidJUnit4::class)
+@SmallTest
+public class NoUiThreadTestRuleTest : SysuiTestCase() {
+
+ class TestStatement : Statement() {
+ override fun evaluate() {}
+ }
+
+ inner class TestInner {
+ @Test @UiThreadTest fun simpleUiTest() {}
+
+ @Test fun simpleTest() {}
+ }
+
+ /**
+ * Test that NoUiThreadTestRule throws an asserts false if a test is annotated
+ * with @UiThreadTest
+ */
+ @Test(expected = AssertionError::class)
+ fun testNoUiThreadFail() {
+ val method = TestInner::class.java.getDeclaredMethod("simpleUiTest")
+ val frameworkMethod = FrameworkMethod(method)
+ val noUiThreadTestRule = NoUiThreadTestRule()
+ val testStatement = TestStatement()
+ // target needs to be non-null
+ val obj = Object()
+ noUiThreadTestRule.apply(testStatement, frameworkMethod, obj)
+ }
+
+ /**
+ * Test that NoUiThreadTestRule throws an asserts false if a test is annotated
+ * with @UiThreadTest
+ */
+ fun testNoUiThreadOK() {
+ val method = TestInner::class.java.getDeclaredMethod("simpleUiTest")
+ val frameworkMethod = FrameworkMethod(method)
+ val noUiThreadTestRule = NoUiThreadTestRule()
+ val testStatement = TestStatement()
+
+ // because target needs to be non-null
+ val obj = Object()
+ val newStatement = noUiThreadTestRule.apply(testStatement, frameworkMethod, obj)
+ Assert.assertEquals(newStatement, testStatement)
+ }
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/util/UiThread.java b/packages/SystemUI/tests/utils/src/com/android/systemui/util/UiThread.java
new file mode 100644
index 000000000000..f81b7de86d00
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/util/UiThread.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.util;
+
+import android.os.Looper;
+import android.util.Log;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.FutureTask;
+
+/**
+ * A class to launch runnables on the UI thread explicitly.
+ */
+public class UiThread {
+ private static final String TAG = "UiThread";
+
+ /**
+ * Run a runnable on the UI thread using instrumentation.runOnMainSync.
+ *
+ * @param runnable code to run on the UI thread.
+ * @throws Throwable if the code threw an exception, so it can be reported
+ * to the test.
+ */
+ public static void runOnUiThread(final Runnable runnable) throws Throwable {
+ if (Looper.myLooper() == Looper.getMainLooper()) {
+ Log.w(
+ TAG,
+ "UiThread.runOnUiThread() should not be called from the "
+ + "main application thread");
+ runnable.run();
+ } else {
+ FutureTask<Void> task = new FutureTask<>(runnable, null);
+ InstrumentationRegistry.getInstrumentation().runOnMainSync(task);
+ try {
+ task.get();
+ } catch (ExecutionException e) {
+ // Expose the original exception
+ throw e.getCause();
+ }
+ }
+ }
+}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/util/UiThreadRunTest.java b/packages/SystemUI/tests/utils/src/com/android/systemui/util/UiThreadRunTest.java
new file mode 100644
index 000000000000..abf2e8d04d7e
--- /dev/null
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/util/UiThreadRunTest.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.util;
+
+import android.os.Looper;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.filters.SmallTest;
+
+import com.android.systemui.SysuiTestCase;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+
+/**
+ * Test that UiThread.runOnUiThread() actually runs on the UI Thread.
+ */
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public class UiThreadRunTest extends SysuiTestCase {
+
+ @Test
+ public void testUiThread() throws Throwable {
+ UiThread.runOnUiThread(() -> {
+ Assert.assertEquals(Looper.getMainLooper().getThread(), Thread.currentThread());
+ });
+ }
+}
diff --git a/ravenwood/Android.bp b/ravenwood/Android.bp
index 6b1197ad4c18..11b66fc3f1e5 100644
--- a/ravenwood/Android.bp
+++ b/ravenwood/Android.bp
@@ -12,15 +12,6 @@ package {
}
filegroup {
- name: "ravenwood-annotations",
- srcs: [
- "annotations-src/**/*.java",
- ],
- path: "annotations-src",
- visibility: ["//visibility:public"],
-}
-
-filegroup {
name: "ravenwood-services-policies",
srcs: [
"texts/ravenwood-services-policies.txt",
@@ -52,14 +43,6 @@ filegroup {
visibility: ["//visibility:public"],
}
-java_library {
- name: "ravenwood-annotations-lib",
- srcs: [":ravenwood-annotations"],
- sdk_version: "core_current",
- host_supported: true,
- visibility: ["//visibility:public"],
-}
-
// This and the next module contain the same classes with different implementations.
// "ravenwood-runtime-common-device" will be statically linked in device side tests.
// "ravenwood-runtime-common-ravenwood" will only exist in ravenwood-runtime, which will take
diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodClassLoadHook.java b/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodClassLoadHook.java
deleted file mode 100644
index 7a3142b041d1..000000000000
--- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodClassLoadHook.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package android.ravenwood.annotation;
-
-import static java.lang.annotation.ElementType.TYPE;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY
- * QUESTIONS ABOUT IT.
- *
- * Add this with a fully-specified method name (e.g. {@code "com.package.Class.methodName"})
- * of a callback to get a callback at the class load time.
- *
- * The method must be {@code public static} with a single argument that takes {@link Class}.
- *
- * Typically, this is used with {@link #LIBANDROID_LOADING_HOOK}, which will load the necessary
- * native libraries.
- *
- * @hide
- */
-@Target({TYPE})
-@Retention(RetentionPolicy.CLASS)
-public @interface RavenwoodClassLoadHook {
- String value();
-
- /**
- * Class load hook that loads <code>libandroid_runtime</code>.
- */
- public static String LIBANDROID_LOADING_HOOK
- = "com.android.platform.test.ravenwood.runtimehelper.ClassLoadHook.onClassLoaded";
-}
diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeep.java b/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeep.java
deleted file mode 100644
index f02f06c056bd..000000000000
--- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeep.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package android.ravenwood.annotation;
-
-import static java.lang.annotation.ElementType.CONSTRUCTOR;
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.ElementType.METHOD;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY
- * QUESTIONS ABOUT IT.
- *
- * TODO: Javadoc
- *
- * @hide
- */
-@Target({FIELD, METHOD, CONSTRUCTOR})
-@Retention(RetentionPolicy.CLASS)
-public @interface RavenwoodKeep {
-}
diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepWholeClass.java b/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepWholeClass.java
deleted file mode 100644
index d2c77c1b8566..000000000000
--- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepWholeClass.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package android.ravenwood.annotation;
-
-import static java.lang.annotation.ElementType.CONSTRUCTOR;
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.ElementType.TYPE;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY
- * QUESTIONS ABOUT IT.
- *
- * TODO: Javadoc
- * TODO: Create "whole-class-throw"?
- *
- * @hide
- */
-@Target({TYPE, FIELD, METHOD, CONSTRUCTOR})
-@Retention(RetentionPolicy.CLASS)
-public @interface RavenwoodKeepWholeClass {
-}
diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRemove.java b/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRemove.java
deleted file mode 100644
index b69c63748d81..000000000000
--- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRemove.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package android.ravenwood.annotation;
-
-import static java.lang.annotation.ElementType.CONSTRUCTOR;
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.ElementType.TYPE;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY
- * QUESTIONS ABOUT IT.
- *
- * TODO: Javadoc
- *
- * @hide
- */
-@Target({TYPE, FIELD, METHOD, CONSTRUCTOR})
-@Retention(RetentionPolicy.CLASS)
-public @interface RavenwoodRemove {
- /**
- * One or more classes that aren't yet supported by Ravenwood, which is why this method throws.
- */
- Class<?>[] blockedBy() default {};
-
- /**
- * General free-form description of why this method throws.
- */
- String reason() default "";
-
- /**
- * Tracking bug number, if any.
- */
- long bug() default 0;
-}
diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodReplace.java b/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodReplace.java
deleted file mode 100644
index 57cdfd2240d0..000000000000
--- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodReplace.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package android.ravenwood.annotation;
-
-import static java.lang.annotation.ElementType.METHOD;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY
- * QUESTIONS ABOUT IT.
- *
- * TODO: Javadoc
- *
- * @hide
- */
-@Target({METHOD})
-@Retention(RetentionPolicy.CLASS)
-public @interface RavenwoodReplace {
- /**
- * One or more classes that aren't yet supported by Ravenwood, which is why this method is
- * being replaced.
- */
- Class<?>[] blockedBy() default {};
-
- /**
- * General free-form description of why this method is being replaced.
- */
- String reason() default "";
-
- /**
- * Tracking bug number, if any.
- */
- long bug() default 0;
-}
diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodThrow.java b/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodThrow.java
deleted file mode 100644
index 19e6af1c478d..000000000000
--- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodThrow.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package android.ravenwood.annotation;
-
-import static java.lang.annotation.ElementType.CONSTRUCTOR;
-import static java.lang.annotation.ElementType.METHOD;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY
- * QUESTIONS ABOUT IT.
- *
- * TODO: Javadoc
- * TODO: Create "whole-class-throw"?
- *
- * @hide
- */
-@Target({METHOD, CONSTRUCTOR})
-@Retention(RetentionPolicy.CLASS)
-public @interface RavenwoodThrow {
- /**
- * One or more classes that aren't yet supported by Ravenwood, which is why this method throws.
- */
- Class<?>[] blockedBy() default {};
-
- /**
- * General free-form description of why this method throws.
- */
- String reason() default "";
-
- /**
- * Tracking bug number, if any.
- */
- long bug() default 0;
-}
diff --git a/services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerServiceImpl.java b/services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerServiceImpl.java
index b6c8fc7b80c7..c87d516d2ab4 100644
--- a/services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerServiceImpl.java
+++ b/services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerServiceImpl.java
@@ -53,6 +53,7 @@ import android.content.Context;
import android.content.Intent;
import android.os.Binder;
import android.os.CancellationSignal;
+import android.os.IBinder;
import android.os.ICancellationSignal;
import android.os.OutcomeReceiver;
import android.os.ParcelableException;
@@ -160,7 +161,8 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub {
callingUid,
callingPid,
localCancelTransport,
- safeExecuteAppFunctionCallback);
+ safeExecuteAppFunctionCallback,
+ executeAppFunctionCallback.asBinder());
} catch (Exception e) {
safeExecuteAppFunctionCallback.onResult(
mapExceptionToExecuteAppFunctionResponse(e));
@@ -171,11 +173,12 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub {
@WorkerThread
private void executeAppFunctionInternal(
- ExecuteAppFunctionAidlRequest requestInternal,
+ @NonNull ExecuteAppFunctionAidlRequest requestInternal,
int callingUid,
int callingPid,
- ICancellationSignal localCancelTransport,
- SafeOneTimeExecuteAppFunctionCallback safeExecuteAppFunctionCallback) {
+ @NonNull ICancellationSignal localCancelTransport,
+ @NonNull SafeOneTimeExecuteAppFunctionCallback safeExecuteAppFunctionCallback,
+ @NonNull IBinder callerBinder) {
UserHandle targetUser = requestInternal.getUserHandle();
// TODO(b/354956319): Add and honor the new enterprise policies.
if (mCallerValidator.isUserOrganizationManaged(targetUser)) {
@@ -250,7 +253,8 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub {
localCancelTransport,
safeExecuteAppFunctionCallback,
/* bindFlags= */ Context.BIND_AUTO_CREATE
- | Context.BIND_FOREGROUND_SERVICE);
+ | Context.BIND_FOREGROUND_SERVICE,
+ callerBinder);
})
.exceptionally(
ex -> {
@@ -326,8 +330,9 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub {
/**
* Sets the enabled status of a specified app function.
- * <p>
- * Required to hold a lock to call this function to avoid document changes during the process.
+ *
+ * <p>Required to hold a lock to call this function to avoid document changes during the
+ * process.
*/
@WorkerThread
@GuardedBy("mLock")
@@ -370,8 +375,7 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub {
newMetadata.setEnabled(false);
}
default ->
- throw new IllegalArgumentException(
- "Value of EnabledState is unsupported.");
+ throw new IllegalArgumentException("Value of EnabledState is unsupported.");
}
AppSearchBatchResult<String, Void> putDocumentBatchResult =
runtimeMetadataSearchSession
@@ -381,8 +385,8 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub {
.build())
.get();
if (!putDocumentBatchResult.isSuccess()) {
- throw new IllegalStateException("Failed writing updated doc to AppSearch due to "
- + putDocumentBatchResult);
+ throw new IllegalStateException(
+ "Failed writing updated doc to AppSearch due to " + putDocumentBatchResult);
}
}
}
@@ -414,7 +418,8 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub {
@NonNull UserHandle targetUser,
@NonNull ICancellationSignal cancellationSignalTransport,
@NonNull SafeOneTimeExecuteAppFunctionCallback safeExecuteAppFunctionCallback,
- int bindFlags) {
+ int bindFlags,
+ @NonNull IBinder callerBinder) {
CancellationSignal cancellationSignal =
CancellationSignal.fromTransport(cancellationSignalTransport);
ICancellationCallback cancellationCallback =
@@ -430,6 +435,8 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub {
serviceIntent,
bindFlags,
targetUser,
+ mServiceConfig.getExecuteAppFunctionCancellationTimeoutMillis(),
+ cancellationSignal,
new RunServiceCallCallback<IAppFunctionService>() {
@Override
public void onServiceConnected(
@@ -470,7 +477,16 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub {
"Failed to connect to AppFunctionService",
/* extras= */ null));
}
- });
+
+ @Override
+ public void onCancelled() {
+ // Do not forward the result back to the caller once it has been
+ // canceled. The caller does not need a notification and should
+ // proceed after initiating a cancellation.
+ safeExecuteAppFunctionCallback.disable();
+ }
+ },
+ callerBinder);
if (!bindServiceResult) {
Slog.e(TAG, "Failed to bind to the AppFunctionService");
diff --git a/services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCaller.java b/services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCaller.java
index cd5c3831bc0d..d0e858e71de4 100644
--- a/services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCaller.java
+++ b/services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCaller.java
@@ -17,41 +17,56 @@ package com.android.server.appfunctions;
import android.annotation.NonNull;
import android.content.Intent;
+import android.os.CancellationSignal;
+import android.os.IBinder;
import android.os.UserHandle;
/**
- * Defines a contract for establishing temporary connections to services and executing operations
- * within a specified timeout. Implementations of this interface provide mechanisms to ensure that
- * services are properly unbound after the operation completes or a timeout occurs.
+ * Defines a contract for establishing temporary connections to services and executing operations.
+ * Implementations of this interface provide mechanisms to ensure that services are properly unbound
+ * after the operation completes or a cancellation timeout occurs.
*
* @param <T> Class of wrapped service.
*/
public interface RemoteServiceCaller<T> {
/**
- * Initiates service binding and executes a provided method when the service connects. Unbinds
- * the service after execution or upon timeout. Returns the result of the bindService API.
+ * Initiates service binding and executes a provided method when the service connects.
+ *
+ * <p>Unbinds the service after execution or upon cancellation timeout or calling process death.
+ * Returns the result of the bindService API.
*
* <p>When the service connection was made successfully, it's the caller responsibility to
* report the usage is completed and can be unbound by calling {@link
* ServiceUsageCompleteListener#onCompleted()}.
*
- * <p>This method includes a timeout mechanism to prevent the system from being stuck in a state
- * where a service is bound indefinitely (for example, if the binder method never returns). This
- * helps ensure that the calling app does not remain alive unnecessarily.
+ * <p>This method includes a timeout mechanism for cancellation to prevent the system from being
+ * stuck in a state where a service is bound indefinitely. If the app to be bound does not
+ * return the result within `cancellationTimeoutMillis` after the cancellation signal is sent,
+ * this method will unbind the service connection.
+ *
+ * <p>This method will also unbind the service after the calling process dies (because a
+ * cancellation signal cannot be sent and system server can become bound forever if otherwise).
*
* @param intent An Intent object that describes the service that should be bound.
* @param bindFlags Flags used to control the binding process See {@link
* android.content.Context#bindService}.
* @param userHandle The UserHandle of the user for which the service should be bound.
+ * @param cancellationTimeoutMillis The timeout before the service is unbound after a
+ * cancellation signal is issued.
+ * @param cancellationSignal The cancellation signal forwarded to the service.
* @param callback A callback to be invoked for various events. See {@link
* RunServiceCallCallback}.
+ * @param callerBinder The binder of the caller.
*/
boolean runServiceCall(
@NonNull Intent intent,
int bindFlags,
@NonNull UserHandle userHandle,
- @NonNull RunServiceCallCallback<T> callback);
+ long cancellationTimeoutMillis,
+ @NonNull CancellationSignal cancellationSignal,
+ @NonNull RunServiceCallCallback<T> callback,
+ @NonNull IBinder callerBinder);
/** An interface for clients to signal that they have finished using a bound service. */
interface ServiceUsageCompleteListener {
@@ -73,5 +88,8 @@ public interface RemoteServiceCaller<T> {
/** Called when the service connection was failed to establish. */
void onFailedToConnect();
+
+ /** Called when the caller has cancelled this remote service call. */
+ void onCancelled();
}
}
diff --git a/services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCallerImpl.java b/services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCallerImpl.java
index ffca8491abcd..15081598c301 100644
--- a/services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCallerImpl.java
+++ b/services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCallerImpl.java
@@ -16,15 +16,19 @@
package com.android.server.appfunctions;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
+import android.os.CancellationSignal;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
+import android.os.RemoteException;
import android.os.UserHandle;
import android.util.Log;
+import android.util.Slog;
import java.util.concurrent.Executor;
import java.util.function.Function;
@@ -63,9 +67,19 @@ public class RemoteServiceCallerImpl<T> implements RemoteServiceCaller<T> {
@NonNull Intent intent,
int bindFlags,
@NonNull UserHandle userHandle,
- @NonNull RunServiceCallCallback<T> callback) {
+ long cancellationTimeoutMillis,
+ @NonNull CancellationSignal cancellationSignal,
+ @NonNull RunServiceCallCallback<T> callback,
+ @NonNull IBinder callerBinder) {
OneOffServiceConnection serviceConnection =
- new OneOffServiceConnection(intent, bindFlags, userHandle, callback);
+ new OneOffServiceConnection(
+ intent,
+ bindFlags,
+ userHandle,
+ cancellationTimeoutMillis,
+ cancellationSignal,
+ callback,
+ callerBinder);
return serviceConnection.bindAndRun();
}
@@ -76,23 +90,52 @@ public class RemoteServiceCallerImpl<T> implements RemoteServiceCaller<T> {
private final int mFlags;
private final UserHandle mUserHandle;
private final RunServiceCallCallback<T> mCallback;
+ private final long mCancellationTimeoutMillis;
+ private final CancellationSignal mCancellationSignal;
+ private final Runnable mCancellationTimeoutRunnable;
+ private final IBinder mCallerBinder;
+ @Nullable private IBinder.DeathRecipient mDirectServiceVulture;
OneOffServiceConnection(
@NonNull Intent intent,
int flags,
@NonNull UserHandle userHandle,
- @NonNull RunServiceCallCallback<T> callback) {
+ long cancellationTimeoutMillis,
+ @NonNull CancellationSignal cancellationSignal,
+ @NonNull RunServiceCallCallback<T> callback,
+ @NonNull IBinder callerBinder) {
mIntent = intent;
mFlags = flags;
mCallback = callback;
mUserHandle = userHandle;
+ mCancellationTimeoutMillis = cancellationTimeoutMillis;
+ mCancellationSignal = cancellationSignal;
+ mCancellationTimeoutRunnable = this::safeUnbind;
+ mCallerBinder = callerBinder;
}
public boolean bindAndRun() {
boolean bindServiceResult =
mContext.bindServiceAsUser(mIntent, this, mFlags, mUserHandle);
- if (!bindServiceResult) {
+ if (bindServiceResult) {
+ mCancellationSignal.setOnCancelListener(
+ () -> {
+ mCallback.onCancelled();
+ mHandler.postDelayed(
+ mCancellationTimeoutRunnable, mCancellationTimeoutMillis);
+ });
+ mDirectServiceVulture =
+ () -> {
+ Slog.w(TAG, "Caller process onDeath signal received");
+ mCancellationSignal.cancel();
+ };
+ try {
+ mCallerBinder.linkToDeath(mDirectServiceVulture, /* flags= */ 0);
+ } catch (RemoteException e) {
+ Slog.w(TAG, "Failed to link to death on " + mCallerBinder + ": ", e);
+ }
+ } else {
safeUnbind();
}
@@ -126,7 +169,11 @@ public class RemoteServiceCallerImpl<T> implements RemoteServiceCaller<T> {
private void safeUnbind() {
try {
+ mHandler.removeCallbacks(mCancellationTimeoutRunnable);
mContext.unbindService(this);
+ if (mDirectServiceVulture != null) {
+ mCallerBinder.unlinkToDeath(mDirectServiceVulture, 0);
+ }
} catch (Exception ex) {
Log.w(TAG, "Failed to unbind", ex);
}
diff --git a/services/appfunctions/java/com/android/server/appfunctions/ServiceConfig.java b/services/appfunctions/java/com/android/server/appfunctions/ServiceConfig.java
index caa4bf0e9d27..8d2d1b2dfd00 100644
--- a/services/appfunctions/java/com/android/server/appfunctions/ServiceConfig.java
+++ b/services/appfunctions/java/com/android/server/appfunctions/ServiceConfig.java
@@ -21,6 +21,9 @@ public interface ServiceConfig {
// TODO(b/357551503): Obtain namespace from DeviceConfig.
String NAMESPACE_APP_FUNCTIONS = "appfunctions";
- /** Returns the maximum time to wait for an app function execution to be complete. */
- long getExecuteAppFunctionTimeoutMillis();
+ /**
+ * Returns the timeout for which the system server waits for the app function service to
+ * successfully cancel the execution of an app function before forcefully unbinding the service.
+ */
+ long getExecuteAppFunctionCancellationTimeoutMillis();
}
diff --git a/services/appfunctions/java/com/android/server/appfunctions/ServiceConfigImpl.java b/services/appfunctions/java/com/android/server/appfunctions/ServiceConfigImpl.java
index f18789be5ce8..787f52afda4b 100644
--- a/services/appfunctions/java/com/android/server/appfunctions/ServiceConfigImpl.java
+++ b/services/appfunctions/java/com/android/server/appfunctions/ServiceConfigImpl.java
@@ -20,15 +20,16 @@ import android.provider.DeviceConfig;
/** Implementation of {@link ServiceConfig} */
public class ServiceConfigImpl implements ServiceConfig {
- static final String DEVICE_CONFIG_PROPERTY_EXECUTION_TIMEOUT =
- "execute_app_function_timeout_millis";
- static final long DEFAULT_EXECUTE_APP_FUNCTION_TIMEOUT_MS = 5000L;
+ static final String DEVICE_CONFIG_PROPERTY_EXECUTION_CANCELLATION_TIMEOUT =
+ "execute_app_function_cancellation_timeout_millis";
+ static final long DEFAULT_EXECUTE_APP_FUNCTION_CANCELLATION_TIMEOUT_MS = 5000L;
+
@Override
- public long getExecuteAppFunctionTimeoutMillis() {
+ public long getExecuteAppFunctionCancellationTimeoutMillis() {
return DeviceConfig.getLong(
NAMESPACE_APP_FUNCTIONS,
- DEVICE_CONFIG_PROPERTY_EXECUTION_TIMEOUT,
- DEFAULT_EXECUTE_APP_FUNCTION_TIMEOUT_MS);
+ DEVICE_CONFIG_PROPERTY_EXECUTION_CANCELLATION_TIMEOUT,
+ DEFAULT_EXECUTE_APP_FUNCTION_CANCELLATION_TIMEOUT_MS);
}
}
diff --git a/services/companion/java/com/android/server/companion/securechannel/SecureChannel.java b/services/companion/java/com/android/server/companion/securechannel/SecureChannel.java
index 71a182225013..dbeca82ade89 100644
--- a/services/companion/java/com/android/server/companion/securechannel/SecureChannel.java
+++ b/services/companion/java/com/android/server/companion/securechannel/SecureChannel.java
@@ -16,8 +16,6 @@
package com.android.server.companion.securechannel;
-import static android.security.attestationverification.AttestationVerificationManager.RESULT_SUCCESS;
-
import android.annotation.NonNull;
import android.content.Context;
import android.os.Build;
@@ -498,7 +496,7 @@ public class SecureChannel {
private void exchangeAttestation()
throws IOException, GeneralSecurityException, BadHandleException, CryptoException {
- if (mVerificationResult == RESULT_SUCCESS) {
+ if (mVerificationResult == 0) {
Slog.d(TAG, "Remote attestation was already verified.");
return;
}
@@ -530,11 +528,11 @@ public class SecureChannel {
sendMessage(MessageType.AVF_RESULT, verificationResult);
byte[] remoteVerificationResult = readMessage(MessageType.AVF_RESULT);
- if (ByteBuffer.wrap(remoteVerificationResult).getInt() != RESULT_SUCCESS) {
+ if (ByteBuffer.wrap(remoteVerificationResult).getInt() != 0) {
throw new SecureChannelException("Remote device failed to verify local attestation.");
}
- if (mVerificationResult != RESULT_SUCCESS) {
+ if (mVerificationResult != 0) {
throw new SecureChannelException("Failed to verify remote attestation.");
}
@@ -549,7 +547,7 @@ public class SecureChannel {
return false;
}
// Is authenticated
- return mPskVerified || mVerificationResult == RESULT_SUCCESS;
+ return mPskVerified || mVerificationResult == 0;
}
// First byte indicates message type; 0 = CLIENT INIT, 1 = SERVER INIT
diff --git a/services/core/Android.bp b/services/core/Android.bp
index c6e599e8edee..c73846350b40 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -60,7 +60,7 @@ genrule {
tools: ["protologtool"],
cmd: "$(location protologtool) transform-protolog-calls " +
"--protolog-class com.android.internal.protolog.ProtoLog " +
- "--loggroups-class com.android.internal.protolog.ProtoLogGroup " +
+ "--loggroups-class com.android.internal.protolog.WmProtoLogGroups " +
"--loggroups-jar $(location :protolog-groups) " +
"--viewer-config-file-path /etc/core.protolog.pb " +
"--legacy-viewer-config-file-path /system/etc/protolog.conf.json.gz " +
@@ -79,7 +79,7 @@ genrule {
tools: ["protologtool"],
cmd: "$(location protologtool) generate-viewer-config " +
"--protolog-class com.android.internal.protolog.ProtoLog " +
- "--loggroups-class com.android.internal.protolog.ProtoLogGroup " +
+ "--loggroups-class com.android.internal.protolog.WmProtoLogGroups " +
"--loggroups-jar $(location :protolog-groups) " +
"--viewer-config-type json " +
"--viewer-config $(out) " +
@@ -96,7 +96,7 @@ genrule {
tools: ["protologtool"],
cmd: "$(location protologtool) generate-viewer-config " +
"--protolog-class com.android.internal.protolog.ProtoLog " +
- "--loggroups-class com.android.internal.protolog.ProtoLogGroup " +
+ "--loggroups-class com.android.internal.protolog.WmProtoLogGroups " +
"--loggroups-jar $(location :protolog-groups) " +
"--viewer-config-type proto " +
"--viewer-config $(out) " +
diff --git a/services/core/java/com/android/server/PackageWatchdog.java b/services/core/java/com/android/server/PackageWatchdog.java
index 682eb768a23e..9060250d9869 100644
--- a/services/core/java/com/android/server/PackageWatchdog.java
+++ b/services/core/java/com/android/server/PackageWatchdog.java
@@ -1292,6 +1292,16 @@ public class PackageWatchdog {
/** Dump status of every observer in mAllObservers. */
public void dump(@NonNull PrintWriter pw) {
+ if (Flags.synchronousRebootInRescueParty() && RescueParty.isRecoveryTriggeredReboot()) {
+ dumpInternal(pw);
+ } else {
+ synchronized (mLock) {
+ dumpInternal(pw);
+ }
+ }
+ }
+
+ private void dumpInternal(@NonNull PrintWriter pw) {
IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ");
ipw.println("Package Watchdog status");
ipw.increaseIndent();
diff --git a/services/core/java/com/android/server/RescueParty.java b/services/core/java/com/android/server/RescueParty.java
index a6e21fccd294..ada19530abfb 100644
--- a/services/core/java/com/android/server/RescueParty.java
+++ b/services/core/java/com/android/server/RescueParty.java
@@ -631,7 +631,8 @@ public class RescueParty {
// Request the reboot from a separate thread to avoid deadlock on PackageWatchdog
// when device shutting down.
setRebootProperty(true);
- Runnable runnable = () -> {
+
+ if (Flags.synchronousRebootInRescueParty()) {
try {
PowerManager pm = context.getSystemService(PowerManager.class);
if (pm != null) {
@@ -640,9 +641,20 @@ public class RescueParty {
} catch (Throwable t) {
logRescueException(level, failedPackage, t);
}
- };
- Thread thread = new Thread(runnable);
- thread.start();
+ } else {
+ Runnable runnable = () -> {
+ try {
+ PowerManager pm = context.getSystemService(PowerManager.class);
+ if (pm != null) {
+ pm.reboot(TAG);
+ }
+ } catch (Throwable t) {
+ logRescueException(level, failedPackage, t);
+ }
+ };
+ Thread thread = new Thread(runnable);
+ thread.start();
+ }
}
private static void executeFactoryReset(Context context, int level,
@@ -655,18 +667,28 @@ public class RescueParty {
setFactoryResetProperty(true);
long now = System.currentTimeMillis();
setLastFactoryResetTimeMs(now);
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- try {
- RecoverySystem.rebootPromptAndWipeUserData(context, TAG + "," + failedPackage);
- } catch (Throwable t) {
- logRescueException(level, failedPackage, t);
- }
+
+ if (Flags.synchronousRebootInRescueParty()) {
+ try {
+ RecoverySystem.rebootPromptAndWipeUserData(context, TAG + "," + failedPackage);
+ } catch (Throwable t) {
+ logRescueException(level, failedPackage, t);
}
- };
- Thread thread = new Thread(runnable);
- thread.start();
+ } else {
+ Runnable runnable = new Runnable() {
+ @Override
+ public void run() {
+ try {
+ RecoverySystem.rebootPromptAndWipeUserData(context,
+ TAG + "," + failedPackage);
+ } catch (Throwable t) {
+ logRescueException(level, failedPackage, t);
+ }
+ }
+ };
+ Thread thread = new Thread(runnable);
+ thread.start();
+ }
}
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index e64a4803b14f..9d27731cecd4 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -2751,7 +2751,8 @@ class StorageManagerService extends IStorageManager.Stub
boolean smartIdleMaintEnabled = DeviceConfig.getBoolean(
DeviceConfig.NAMESPACE_STORAGE_NATIVE_BOOT,
"smart_idle_maint_enabled",
- DEFAULT_SMART_IDLE_MAINT_ENABLED);
+ DEFAULT_SMART_IDLE_MAINT_ENABLED)
+ && !SystemProperties.getBoolean("ro.boot.zufs_provisioned", false);
if (smartIdleMaintEnabled) {
mLifetimePercentThreshold = DeviceConfig.getInt(
DeviceConfig.NAMESPACE_STORAGE_NATIVE_BOOT,
diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java
index 3499a3a5edde..0ca3b56486e3 100644
--- a/services/core/java/com/android/server/accounts/AccountManagerService.java
+++ b/services/core/java/com/android/server/accounts/AccountManagerService.java
@@ -5062,6 +5062,8 @@ public class AccountManagerService
Log.e(TAG, String.format(tmpl, activityName, pkgName, mAccountType));
return false;
}
+ intent.setComponent(targetActivityInfo.getComponentName());
+ bundle.putParcelable(AccountManager.KEY_INTENT, intent);
return true;
} finally {
Binder.restoreCallingIdentity(bid);
@@ -5083,14 +5085,15 @@ public class AccountManagerService
Bundle simulateBundle = p.readBundle();
p.recycle();
Intent intent = bundle.getParcelable(AccountManager.KEY_INTENT, Intent.class);
- if (intent != null && intent.getClass() != Intent.class) {
- return false;
- }
Intent simulateIntent = simulateBundle.getParcelable(AccountManager.KEY_INTENT,
Intent.class);
if (intent == null) {
return (simulateIntent == null);
}
+ if (intent.getClass() != Intent.class || simulateIntent.getClass() != Intent.class) {
+ return false;
+ }
+
if (!intent.filterEquals(simulateIntent)) {
return false;
}
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 35323d6cb391..83bc75e9f66f 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -133,7 +133,7 @@ import static android.provider.Settings.Global.WAIT_FOR_DEBUGGER;
import static android.util.FeatureFlagUtils.SETTINGS_ENABLE_MONITOR_PHANTOM_PROCS;
import static android.view.Display.INVALID_DISPLAY;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION;
import static com.android.internal.util.FrameworkStatsLog.UNSAFE_INTENT_EVENT_REPORTED__EVENT_TYPE__NEW_MUTABLE_IMPLICIT_PENDING_INTENT_RETRIEVED;
import static com.android.sdksandbox.flags.Flags.sdkSandboxInstrumentationInfo;
import static com.android.server.am.ActiveServices.FGS_SAW_RESTRICTIONS;
diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java
index ef82c7477558..4ac42ecd8f50 100644
--- a/services/core/java/com/android/server/am/BatteryStatsService.java
+++ b/services/core/java/com/android/server/am/BatteryStatsService.java
@@ -25,6 +25,7 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_SUSPENDED;
import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
import static android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK;
+import static android.os.BatteryConsumer.POWER_COMPONENT_BASE;
import static android.os.BatteryStats.POWER_DATA_UNAVAILABLE;
import static com.android.internal.util.ConcurrentUtils.DIRECT_EXECUTOR;
@@ -432,7 +433,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
mPowerStatsStore = new PowerStatsStore(systemDir, mHandler);
mPowerAttributor = new MultiStatePowerAttributor(mContext, mPowerStatsStore, mPowerProfile,
- mCpuScalingPolicies, mPowerStatsUidResolver);
+ mCpuScalingPolicies, () -> mStats.getBatteryCapacity(),
+ mPowerStatsUidResolver);
mPowerStatsScheduler = createPowerStatsScheduler(mContext);
mBatteryUsageStatsProvider = new BatteryUsageStatsProvider(context,
mPowerAttributor, mPowerProfile, mCpuScalingPolicies,
@@ -513,6 +515,12 @@ public final class BatteryStatsService extends IBatteryStats.Stub
BatteryConsumer.POWER_COMPONENT_CPU,
Flags.streamlinedBatteryStats());
+ mStats.setPowerStatsCollectorEnabled(BatteryConsumer.POWER_COMPONENT_WAKELOCK,
+ Flags.streamlinedMiscBatteryStats());
+ attributor.setPowerComponentSupported(
+ BatteryConsumer.POWER_COMPONENT_WAKELOCK,
+ Flags.streamlinedMiscBatteryStats());
+
mStats.setPowerStatsCollectorEnabled(BatteryConsumer.POWER_COMPONENT_SCREEN,
Flags.streamlinedMiscBatteryStats());
attributor.setPowerComponentSupported(
@@ -1224,8 +1232,11 @@ public final class BatteryStatsService extends IBatteryStats.Stub
final float totalDeviceConsumedPowerMah = (float) deviceConsumer.getConsumedPower();
- for (@BatteryConsumer.PowerComponentId int componentIndex :
+ for (@BatteryConsumer.PowerComponentId int powerComponentId :
deviceConsumer.getPowerComponentIds()) {
+ if (powerComponentId == POWER_COMPONENT_BASE) {
+ continue;
+ }
for (@BatteryConsumer.ProcessState int processState : UID_PROCESS_STATES) {
@@ -1237,7 +1248,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
totalDeviceConsumedPowerMah,
0,
deviceConsumer,
- componentIndex)) {
+ powerComponentId)) {
return StatsManager.PULL_SUCCESS;
}
}
@@ -1253,8 +1264,11 @@ public final class BatteryStatsService extends IBatteryStats.Stub
final int uid = uidConsumer.getUid();
final float totalConsumedPowerMah = (float) uidConsumer.getConsumedPower();
- for (@BatteryConsumer.PowerComponentId int componentIndex :
+ for (@BatteryConsumer.PowerComponentId int powerComponentId :
uidConsumer.getPowerComponentIds()) {
+ if (powerComponentId == POWER_COMPONENT_BASE) {
+ continue;
+ }
for (@BatteryConsumer.ProcessState int processState : UID_PROCESS_STATES) {
@@ -1268,7 +1282,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
totalConsumedPowerMah,
timeInProcessStateMs,
uidConsumer,
- componentIndex)) {
+ powerComponentId)) {
return StatsManager.PULL_SUCCESS;
}
}
diff --git a/services/core/java/com/android/server/biometrics/OWNERS b/services/core/java/com/android/server/biometrics/OWNERS
index 4703efbcd7be..13bba9dfa4ce 100644
--- a/services/core/java/com/android/server/biometrics/OWNERS
+++ b/services/core/java/com/android/server/biometrics/OWNERS
@@ -1,14 +1,12 @@
set noparent
graciecheng@google.com
-ilyamaty@google.com
jbolinger@google.com
jeffpu@google.com
joshmccloskey@google.com
diyab@google.com
austindelgado@google.com
spdonghao@google.com
-wenhuiy@google.com
firewall@google.com
jasonsfchang@google.com
diff --git a/services/core/java/com/android/server/display/DisplayGroup.java b/services/core/java/com/android/server/display/DisplayGroup.java
index 2dcd5ccaf557..f73b66c78fce 100644
--- a/services/core/java/com/android/server/display/DisplayGroup.java
+++ b/services/core/java/com/android/server/display/DisplayGroup.java
@@ -87,4 +87,14 @@ public class DisplayGroup {
int getIdLocked(int index) {
return mDisplays.get(index).getDisplayIdLocked();
}
+
+ /** Returns the IDs of the {@link LogicalDisplay}s belonging to the DisplayGroup. */
+ int[] getIdsLocked() {
+ final int numDisplays = mDisplays.size();
+ final int[] displayIds = new int[numDisplays];
+ for (int i = 0; i < numDisplays; i++) {
+ displayIds[i] = mDisplays.get(i).getDisplayIdLocked();
+ }
+ return displayIds;
+ }
}
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index 67e2ca2b312c..4152ec9e26e3 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -45,6 +45,7 @@ import static android.hardware.display.HdrConversionMode.HDR_CONVERSION_UNSUPPOR
import static android.os.IServiceManager.DUMP_FLAG_PRIORITY_CRITICAL;
import static android.os.Process.FIRST_APPLICATION_UID;
import static android.os.Process.ROOT_UID;
+import static android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS;
import static android.provider.Settings.Secure.RESOLUTION_MODE_FULL;
import static android.provider.Settings.Secure.RESOLUTION_MODE_HIGH;
import static android.provider.Settings.Secure.RESOLUTION_MODE_UNKNOWN;
@@ -655,12 +656,14 @@ public final class DisplayManagerService extends SystemService {
mExtraDisplayLoggingPackageName = DisplayProperties.debug_vri_package().orElse(null);
mExtraDisplayEventLogging = !TextUtils.isEmpty(mExtraDisplayLoggingPackageName);
- mExternalDisplayStatsService = new ExternalDisplayStatsService(mContext, mHandler);
+ mExternalDisplayStatsService = new ExternalDisplayStatsService(mContext, mHandler,
+ this::isExtendedDisplayEnabled);
mDisplayNotificationManager = new DisplayNotificationManager(mFlags, mContext,
mExternalDisplayStatsService);
mExternalDisplayPolicy = new ExternalDisplayPolicy(new ExternalDisplayPolicyInjector());
if (mFlags.isDisplayTopologyEnabled()) {
- mDisplayTopologyCoordinator = new DisplayTopologyCoordinator();
+ mDisplayTopologyCoordinator =
+ new DisplayTopologyCoordinator(this::isExtendedDisplayEnabled);
} else {
mDisplayTopologyCoordinator = null;
}
@@ -2262,6 +2265,17 @@ public final class DisplayManagerService extends SystemService {
updateLogicalDisplayState(display);
}
+ private boolean isExtendedDisplayEnabled() {
+ try {
+ return 0 != Settings.Global.getInt(
+ mContext.getContentResolver(),
+ DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, 0);
+ } catch (Throwable e) {
+ // Some services might not be initialised yet to be able to call getInt
+ return false;
+ }
+ }
+
@SuppressLint("AndroidFrameworkRequiresPermission")
private void handleLogicalDisplayAddedLocked(LogicalDisplay display) {
final int displayId = display.getDisplayIdLocked();
@@ -5575,6 +5589,20 @@ public final class DisplayManagerService extends SystemService {
}
@Override
+ public int[] getDisplayIdsForGroup(int groupId) {
+ synchronized (mSyncRoot) {
+ return mLogicalDisplayMapper.getDisplayIdsForGroupLocked(groupId);
+ }
+ }
+
+ @Override
+ public SparseArray<int[]> getDisplayIdsByGroupsIds() {
+ synchronized (mSyncRoot) {
+ return mLogicalDisplayMapper.getDisplayIdsByGroupIdLocked();
+ }
+ }
+
+ @Override
public IntArray getDisplayIds() {
IntArray displayIds = new IntArray();
synchronized (mSyncRoot) {
diff --git a/services/core/java/com/android/server/display/DisplayTopology.java b/services/core/java/com/android/server/display/DisplayTopology.java
new file mode 100644
index 000000000000..90038a09850f
--- /dev/null
+++ b/services/core/java/com/android/server/display/DisplayTopology.java
@@ -0,0 +1,201 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.display;
+
+import android.annotation.Nullable;
+import android.util.IndentingPrintWriter;
+import android.util.Pair;
+import android.util.Slog;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Represents the relative placement of extended displays.
+ */
+class DisplayTopology {
+ private static final String TAG = "DisplayTopology";
+
+ /**
+ * The topology tree
+ */
+ @Nullable
+ @VisibleForTesting
+ TreeNode mRoot;
+
+ /**
+ * The logical display ID of the primary display that will show certain UI elements.
+ * This is not necessarily the same as the default display.
+ */
+ @VisibleForTesting
+ int mPrimaryDisplayId;
+
+ /**
+ * Add a display to the topology.
+ * If this is the second display in the topology, it will be placed above the first display.
+ * Subsequent displays will be places to the left or right of the second display.
+ * @param displayId The ID of the display
+ * @param width The width of the display
+ * @param height The height of the display
+ */
+ void addDisplay(int displayId, double width, double height) {
+ if (mRoot == null) {
+ mRoot = new TreeNode(displayId, width, height, /* position= */ null, /* offset= */ 0);
+ mPrimaryDisplayId = displayId;
+ Slog.i(TAG, "First display added: " + mRoot);
+ } else if (mRoot.mChildren.isEmpty()) {
+ // This is the 2nd display. Align the middles of the top and bottom edges.
+ double offset = mRoot.mWidth / 2 - width / 2;
+ TreeNode display = new TreeNode(displayId, width, height,
+ TreeNode.Position.POSITION_TOP, offset);
+ mRoot.mChildren.add(display);
+ Slog.i(TAG, "Second display added: " + display + ", parent ID: " + mRoot.mDisplayId);
+ } else {
+ TreeNode rightMostDisplay = findRightMostDisplay(mRoot, mRoot.mWidth).first;
+ TreeNode newDisplay = new TreeNode(displayId, width, height,
+ TreeNode.Position.POSITION_RIGHT, /* offset= */ 0);
+ rightMostDisplay.mChildren.add(newDisplay);
+ Slog.i(TAG, "Display added: " + newDisplay + ", parent ID: "
+ + rightMostDisplay.mDisplayId);
+ }
+ }
+
+ /**
+ * Print the object's state and debug information into the given stream.
+ * @param pw The stream to dump information to.
+ */
+ void dump(PrintWriter pw) {
+ pw.println("DisplayTopology:");
+ pw.println("--------------------");
+ IndentingPrintWriter ipw = new IndentingPrintWriter(pw);
+ ipw.increaseIndent();
+
+ ipw.println("mPrimaryDisplayId: " + mPrimaryDisplayId);
+
+ ipw.println("Topology tree:");
+ if (mRoot != null) {
+ ipw.increaseIndent();
+ mRoot.dump(ipw);
+ ipw.decreaseIndent();
+ }
+ }
+
+ /**
+ * @param display The display from which the search should start.
+ * @param xPos The x position of the right edge of that display.
+ * @return The display that is the furthest to the right and the x position of the right edge
+ * of that display
+ */
+ private Pair<TreeNode, Double> findRightMostDisplay(TreeNode display, double xPos) {
+ Pair<TreeNode, Double> result = new Pair<>(display, xPos);
+ for (TreeNode child : display.mChildren) {
+ // The x position of the right edge of the child
+ double childXPos;
+ switch (child.mPosition) {
+ case POSITION_LEFT -> childXPos = xPos - display.mWidth;
+ case POSITION_TOP, POSITION_BOTTOM ->
+ childXPos = xPos - display.mWidth + child.mOffset + child.mWidth;
+ case POSITION_RIGHT -> childXPos = xPos + child.mWidth;
+ default -> throw new IllegalStateException("Unexpected value: " + child.mPosition);
+ }
+
+ // Recursive call - find the rightmost display starting from the child
+ Pair<TreeNode, Double> childResult = findRightMostDisplay(child, childXPos);
+ // Check if the one found is further right
+ if (childResult.second > result.second) {
+ result = new Pair<>(childResult.first, childResult.second);
+ }
+ }
+ return result;
+ }
+
+ @VisibleForTesting
+ static class TreeNode {
+
+ /**
+ * The logical display ID
+ */
+ @VisibleForTesting
+ final int mDisplayId;
+
+ /**
+ * The width of the display in density-independent pixels (dp).
+ */
+ @VisibleForTesting
+ double mWidth;
+
+ /**
+ * The height of the display in density-independent pixels (dp).
+ */
+ @VisibleForTesting
+ double mHeight;
+
+ /**
+ * The position of this display relative to its parent.
+ */
+ @VisibleForTesting
+ Position mPosition;
+
+ /**
+ * The distance from the top edge of the parent display to the top edge of this display (in
+ * case of POSITION_LEFT or POSITION_RIGHT) or from the left edge of the parent display
+ * to the left edge of this display (in case of POSITION_TOP or POSITION_BOTTOM). The unit
+ * used is density-independent pixels (dp).
+ */
+ @VisibleForTesting
+ double mOffset;
+
+ @VisibleForTesting
+ final List<TreeNode> mChildren = new ArrayList<>();
+
+ TreeNode(int displayId, double width, double height, Position position,
+ double offset) {
+ mDisplayId = displayId;
+ mWidth = width;
+ mHeight = height;
+ mPosition = position;
+ mOffset = offset;
+ }
+
+ /**
+ * Print the object's state and debug information into the given stream.
+ * @param ipw The stream to dump information to.
+ */
+ void dump(IndentingPrintWriter ipw) {
+ ipw.println(this);
+ ipw.increaseIndent();
+ for (TreeNode child : mChildren) {
+ child.dump(ipw);
+ }
+ ipw.decreaseIndent();
+ }
+
+ @Override
+ public String toString() {
+ return "Display {id=" + mDisplayId + ", width=" + mWidth + ", height=" + mHeight
+ + ", position=" + mPosition + ", offset=" + mOffset + "}";
+ }
+
+ @VisibleForTesting
+ enum Position {
+ POSITION_LEFT, POSITION_TOP, POSITION_RIGHT, POSITION_BOTTOM
+ }
+ }
+}
diff --git a/services/core/java/com/android/server/display/DisplayTopologyCoordinator.java b/services/core/java/com/android/server/display/DisplayTopologyCoordinator.java
index 631f14755b12..cbd224c3d842 100644
--- a/services/core/java/com/android/server/display/DisplayTopologyCoordinator.java
+++ b/services/core/java/com/android/server/display/DisplayTopologyCoordinator.java
@@ -16,89 +16,91 @@
package com.android.server.display;
-import android.annotation.Nullable;
-import android.util.IndentingPrintWriter;
+import android.util.DisplayMetrics;
+import android.view.Display;
+import android.view.DisplayInfo;
+
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.function.BooleanSupplier;
/**
- * This class manages the relative placement (topology) of extended displays. It is responsible for
- * updating and persisting the topology.
+ * Manages the relative placement (topology) of extended displays. Responsible for updating and
+ * persisting the topology.
*/
class DisplayTopologyCoordinator {
+ @GuardedBy("mLock")
+ private final DisplayTopology mTopology;
+
/**
- * The topology tree
+ * Check if extended displays are enabled. If not, a topology is not needed.
*/
- @Nullable
- private TopologyTreeNode mRoot;
+ private final BooleanSupplier mIsExtendedDisplayEnabled;
+
+ private final Object mLock = new Object();
+
+ DisplayTopologyCoordinator(BooleanSupplier isExtendedDisplayEnabled) {
+ this(new Injector(), isExtendedDisplayEnabled);
+ }
+
+ @VisibleForTesting
+ DisplayTopologyCoordinator(Injector injector, BooleanSupplier isExtendedDisplayEnabled) {
+ mTopology = injector.getTopology();
+ mIsExtendedDisplayEnabled = isExtendedDisplayEnabled;
+ }
/**
- * The logical display ID of the primary display that will show certain UI elements.
- * This is not necessarily the same as the default display.
+ * Add a display to the topology.
+ * @param info The display info
*/
- private int mPrimaryDisplayId;
+ void onDisplayAdded(DisplayInfo info) {
+ if (!isDisplayAllowedInTopology(info)) {
+ return;
+ }
+ synchronized (mLock) {
+ mTopology.addDisplay(info.displayId, getWidth(info), getHeight(info));
+ }
+ }
/**
* Print the object's state and debug information into the given stream.
* @param pw The stream to dump information to.
*/
- public void dump(PrintWriter pw) {
- pw.println("DisplayTopologyCoordinator:");
- pw.println("--------------------");
- IndentingPrintWriter ipw = new IndentingPrintWriter(pw);
- ipw.increaseIndent();
-
- ipw.println("mPrimaryDisplayId: " + mPrimaryDisplayId);
-
- ipw.println("Topology tree:");
- if (mRoot != null) {
- ipw.increaseIndent();
- mRoot.dump(ipw);
- ipw.decreaseIndent();
+ void dump(PrintWriter pw) {
+ synchronized (mLock) {
+ mTopology.dump(pw);
}
}
- private static class TopologyTreeNode {
-
- /**
- * The logical display ID
- */
- private int mDisplayId;
-
- private final List<TopologyTreeNode> mChildren = new ArrayList<>();
-
- /**
- * The position of this display relative to its parent.
- */
- private Position mPosition;
-
- /**
- * The distance from the top edge of the parent display to the top edge of this display (in
- * case of POSITION_LEFT or POSITION_RIGHT) or from the left edge of the parent display
- * to the left edge of this display (in case of POSITION_TOP or POSITION_BOTTOM). The unit
- * used is density-independent pixels (dp).
- */
- private double mOffset;
-
- /**
- * Print the object's state and debug information into the given stream.
- * @param ipw The stream to dump information to.
- */
- void dump(IndentingPrintWriter ipw) {
- ipw.println("Display {id=" + mDisplayId + ", position=" + mPosition
- + ", offset=" + mOffset + "}");
- ipw.increaseIndent();
- for (TopologyTreeNode child : mChildren) {
- child.dump(ipw);
- }
- ipw.decreaseIndent();
- }
+ /**
+ * @param info The display info
+ * @return The width of the display in dp
+ */
+ private double getWidth(DisplayInfo info) {
+ return info.logicalWidth * (double) DisplayMetrics.DENSITY_DEFAULT
+ / info.logicalDensityDpi;
+ }
+
+ /**
+ * @param info The display info
+ * @return The height of the display in dp
+ */
+ private double getHeight(DisplayInfo info) {
+ return info.logicalHeight * (double) DisplayMetrics.DENSITY_DEFAULT
+ / info.logicalDensityDpi;
+ }
+
+ private boolean isDisplayAllowedInTopology(DisplayInfo info) {
+ return mIsExtendedDisplayEnabled.getAsBoolean()
+ && info.displayGroupId == Display.DEFAULT_DISPLAY_GROUP;
+ }
- private enum Position {
- POSITION_LEFT, POSITION_TOP, POSITION_RIGHT, POSITION_BOTTOM
+ static class Injector {
+ DisplayTopology getTopology() {
+ return new DisplayTopology();
}
}
}
diff --git a/services/core/java/com/android/server/display/ExternalDisplayStatsService.java b/services/core/java/com/android/server/display/ExternalDisplayStatsService.java
index 608fb35cea9a..666bd26db340 100644
--- a/services/core/java/com/android/server/display/ExternalDisplayStatsService.java
+++ b/services/core/java/com/android/server/display/ExternalDisplayStatsService.java
@@ -19,7 +19,6 @@ package com.android.server.display;
import static android.media.AudioDeviceInfo.TYPE_HDMI;
import static android.media.AudioDeviceInfo.TYPE_HDMI_ARC;
import static android.media.AudioDeviceInfo.TYPE_USB_DEVICE;
-import static android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -32,7 +31,6 @@ import android.media.AudioManager.AudioPlaybackCallback;
import android.media.AudioPlaybackConfiguration;
import android.os.Handler;
import android.os.PowerManager;
-import android.provider.Settings;
import android.util.Slog;
import android.util.SparseIntArray;
import android.view.Display;
@@ -44,6 +42,7 @@ import com.android.internal.util.FrameworkStatsLog;
import com.android.server.display.utils.DebugUtils;
import java.util.List;
+import java.util.function.BooleanSupplier;
/**
@@ -203,8 +202,9 @@ public final class ExternalDisplayStatsService {
}
};
- ExternalDisplayStatsService(Context context, Handler handler) {
- this(new Injector(context, handler));
+ ExternalDisplayStatsService(Context context, Handler handler,
+ BooleanSupplier isExtendedDisplayEnabled) {
+ this(new Injector(context, handler, isExtendedDisplayEnabled));
}
@VisibleForTesting
@@ -599,25 +599,21 @@ public final class ExternalDisplayStatsService {
private final Context mContext;
@NonNull
private final Handler mHandler;
+ private final BooleanSupplier mIsExtendedDisplayEnabled;
@Nullable
private AudioManager mAudioManager;
@Nullable
private PowerManager mPowerManager;
- Injector(@NonNull Context context, @NonNull Handler handler) {
+ Injector(@NonNull Context context, @NonNull Handler handler,
+ BooleanSupplier isExtendedDisplayEnabled) {
mContext = context;
mHandler = handler;
+ mIsExtendedDisplayEnabled = isExtendedDisplayEnabled;
}
boolean isExtendedDisplayEnabled() {
- try {
- return 0 != Settings.Global.getInt(
- mContext.getContentResolver(),
- DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, 0);
- } catch (Throwable e) {
- // Some services might not be initialised yet to be able to call getInt
- return false;
- }
+ return mIsExtendedDisplayEnabled.getAsBoolean();
}
void registerInteractivityReceiver(BroadcastReceiver interactivityReceiver,
diff --git a/services/core/java/com/android/server/display/LogicalDisplayMapper.java b/services/core/java/com/android/server/display/LogicalDisplayMapper.java
index c3f6a5285ae3..bcb600d0f91c 100644
--- a/services/core/java/com/android/server/display/LogicalDisplayMapper.java
+++ b/services/core/java/com/android/server/display/LogicalDisplayMapper.java
@@ -344,6 +344,23 @@ class LogicalDisplayMapper implements DisplayDeviceRepository.Listener {
return displayIds;
}
+ public int[] getDisplayIdsForGroupLocked(int groupId) {
+ DisplayGroup displayGroup = mDisplayGroups.get(groupId);
+ if (displayGroup == null) {
+ return new int[]{};
+ }
+ return displayGroup.getIdsLocked();
+ }
+
+ public SparseArray<int[]> getDisplayIdsByGroupIdLocked() {
+ SparseArray<int[]> displayIdsByGroupIds = new SparseArray<>();
+ for (int i = 0; i < mDisplayGroups.size(); i++) {
+ int groupId = mDisplayGroups.get(i).getGroupId();
+ displayIdsByGroupIds.put(groupId, getDisplayIdsForGroupLocked(groupId));
+ }
+ return displayIdsByGroupIds;
+ }
+
public void forEachLocked(Consumer<LogicalDisplay> consumer) {
forEachLocked(consumer, /* includeDisabled= */ true);
}
diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubClientBroker.java b/services/core/java/com/android/server/location/contexthub/ContextHubClientBroker.java
index 91a4d6f1707f..598901e33305 100644
--- a/services/core/java/com/android/server/location/contexthub/ContextHubClientBroker.java
+++ b/services/core/java/com/android/server/location/contexthub/ContextHubClientBroker.java
@@ -764,6 +764,7 @@ public class ContextHubClientBroker extends IContextHubClient.Stub
boolean hasPermissions(List<String> permissions) {
for (String permission : permissions) {
if (mContext.checkPermission(permission, mPid, mUid) != PERMISSION_GRANTED) {
+ Log.e(TAG, "no permission for " + permission);
return false;
}
}
@@ -919,6 +920,14 @@ public class ContextHubClientBroker extends IContextHubClient.Stub
}
}
if (curAuthState != newAuthState) {
+ if (newAuthState == AUTHORIZATION_DENIED
+ || newAuthState == AUTHORIZATION_DENIED_GRACE_PERIOD) {
+ Log.e(TAG, "updateNanoAppAuthState auth error: "
+ + Long.toHexString(nanoAppId) + ", "
+ + nanoappPermissions + ", "
+ + gracePeriodExpired + ", "
+ + forceDenied);
+ }
// Don't send the callback in the synchronized block or it could end up in a deadlock.
sendAuthStateCallback(nanoAppId, newAuthState);
}
diff --git a/services/core/java/com/android/server/notification/GroupHelper.java b/services/core/java/com/android/server/notification/GroupHelper.java
index 9d30c565bd96..e8d14cbde516 100644
--- a/services/core/java/com/android/server/notification/GroupHelper.java
+++ b/services/core/java/com/android/server/notification/GroupHelper.java
@@ -1435,6 +1435,10 @@ public class GroupHelper {
return false;
}
+ if (record.getSbn().getNotification().isMediaNotification()) {
+ return false;
+ }
+
return true;
}
}
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 655f2e4596aa..56e0a8929772 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -4117,6 +4117,34 @@ public class NotificationManagerService extends SystemService {
}
@Override
+ @FlaggedApi(android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION)
+ public void setAdjustmentTypeSupportedState(INotificationListener token,
+ @Adjustment.Keys String key, boolean supported) {
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ synchronized (mNotificationLock) {
+ final ManagedServiceInfo info = mAssistants.checkServiceTokenLocked(token);
+ if (key == null) {
+ return;
+ }
+ mAssistants.setAdjustmentTypeSupportedState(info, key, supported);
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ @FlaggedApi(android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION)
+ public @NonNull List<String> getUnsupportedAdjustmentTypes() {
+ checkCallerIsSystemOrSystemUiOrShell();
+ synchronized (mNotificationLock) {
+ return new ArrayList(mAssistants.mNasUnsupported.getOrDefault(
+ UserHandle.getUserId(Binder.getCallingUid()), new HashSet<>()));
+ }
+ }
+
+ @Override
@FlaggedApi(android.app.Flags.FLAG_API_RICH_ONGOING)
public boolean appCanBePromoted(String pkg, int uid) {
checkCallerIsSystemOrSystemUiOrShell();
@@ -7435,7 +7463,7 @@ public class NotificationManagerService extends SystemService {
NotificationRecord r = findNotificationLocked(pkg, null, notificationId, userId);
if (r != null) {
if (DBG) {
- final String type = (flag == FLAG_FOREGROUND_SERVICE) ? "FGS" : "UIJ";
+ final String type = (flag == FLAG_FOREGROUND_SERVICE) ? "FGS" : "UIJ";
Slog.d(TAG, "Remove " + type + " flag not allow. "
+ "Cancel " + type + " notification");
}
@@ -7452,7 +7480,11 @@ public class NotificationManagerService extends SystemService {
// strip flag from all enqueued notifications. listeners will be informed
// in post runnable.
StatusBarNotification sbn = r.getSbn();
- sbn.getNotification().flags = (r.mOriginalFlags & ~flag);
+ if (notificationForceGrouping()) {
+ sbn.getNotification().flags = (r.getFlags() & ~flag);
+ } else {
+ sbn.getNotification().flags = (r.mOriginalFlags & ~flag);
+ }
}
}
@@ -7461,7 +7493,11 @@ public class NotificationManagerService extends SystemService {
if (r != null) {
// if posted notification exists, strip its flag and tell listeners
StatusBarNotification sbn = r.getSbn();
- sbn.getNotification().flags = (r.mOriginalFlags & ~flag);
+ if (notificationForceGrouping()) {
+ sbn.getNotification().flags = (r.getFlags() & ~flag);
+ } else {
+ sbn.getNotification().flags = (r.mOriginalFlags & ~flag);
+ }
mRankingHelper.sort(mNotificationList);
mListeners.notifyPostedLocked(r, r);
}
@@ -9459,6 +9495,28 @@ public class NotificationManagerService extends SystemService {
}
/**
+ * Check if the notification was a summary that has been auto-grouped
+ * @param r the current notification record
+ * @param old the previous notification record
+ * @return true if the notification record was a summary that was auto-grouped
+ */
+ @GuardedBy("mNotificationLock")
+ private boolean wasSummaryAutogrouped(NotificationRecord r, NotificationRecord old) {
+ boolean wasAutogrouped = false;
+ if (old != null) {
+ boolean wasSummary = (old.mOriginalFlags & FLAG_GROUP_SUMMARY) != 0;
+ boolean wasForcedGrouped = (old.getFlags() & FLAG_GROUP_SUMMARY) == 0
+ && old.getSbn().getOverrideGroupKey() != null;
+ boolean isNotAutogroupSummary = (r.getFlags() & FLAG_AUTOGROUP_SUMMARY) == 0
+ && (r.getFlags() & FLAG_GROUP_SUMMARY) != 0;
+ if ((wasSummary && wasForcedGrouped) || (wasForcedGrouped && isNotAutogroupSummary)) {
+ wasAutogrouped = true;
+ }
+ }
+ return wasAutogrouped;
+ }
+
+ /**
* Ensures that grouped notification receive their special treatment.
*
* <p>Cancels group children if the new notification causes a group to lose
@@ -9478,14 +9536,9 @@ public class NotificationManagerService extends SystemService {
}
if (notificationForceGrouping()) {
- if (old != null) {
- // If this is an update to a summary that was forced grouped => remove summary flag
- boolean wasSummary = (old.mOriginalFlags & FLAG_GROUP_SUMMARY) != 0;
- boolean wasForcedGrouped = (old.getFlags() & FLAG_GROUP_SUMMARY) == 0
- && old.getSbn().getOverrideGroupKey() != null;
- if (n.isGroupSummary() && wasSummary && wasForcedGrouped) {
- n.flags &= ~FLAG_GROUP_SUMMARY;
- }
+ // If this is an update to a summary that was forced grouped => remove summary flag
+ if (wasSummaryAutogrouped(r, old)) {
+ n.flags &= ~FLAG_GROUP_SUMMARY;
}
}
@@ -11333,12 +11386,16 @@ public class NotificationManagerService extends SystemService {
static final String TAG_ENABLED_NOTIFICATION_ASSISTANTS = "enabled_assistants";
private static final String ATT_TYPES = "types";
+ private static final String ATT_NAS_UNSUPPORTED = "unsupported_adjustments";
private final Object mLock = new Object();
@GuardedBy("mLock")
private Set<String> mAllowedAdjustments = new ArraySet<>();
+ @GuardedBy("mLock")
+ private Map<Integer, HashSet<String>> mNasUnsupported = new ArrayMap<>();
+
protected ComponentName mDefaultFromConfig = null;
@Override
@@ -11831,6 +11888,10 @@ public class NotificationManagerService extends SystemService {
setNotificationAssistantAccessGrantedForUserInternal(
currentComponent, userId, false, userSet);
}
+ } else {
+ if (android.service.notification.Flags.notificationClassification()) {
+ mNasUnsupported.put(userId, new HashSet<>());
+ }
}
super.setPackageOrComponentEnabled(pkgOrComponent, userId, isPrimary, enabled, userSet);
}
@@ -11838,6 +11899,63 @@ public class NotificationManagerService extends SystemService {
private boolean isVerboseLogEnabled() {
return Log.isLoggable("notification_assistant", Log.VERBOSE);
}
+
+ @FlaggedApi(android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION)
+ @GuardedBy("mNotificationLock")
+ public void setAdjustmentTypeSupportedState(ManagedServiceInfo info,
+ @Adjustment.Keys String key, boolean supported) {
+ if (!android.service.notification.Flags.notificationClassification()) {
+ return;
+ }
+ HashSet<String> disabledAdjustments =
+ mNasUnsupported.getOrDefault(info.userid, new HashSet<>());
+ if (supported) {
+ disabledAdjustments.remove(key);
+ } else {
+ disabledAdjustments.add(key);
+ }
+ mNasUnsupported.put(info.userid, disabledAdjustments);
+ handleSavePolicyFile();
+ }
+
+ @FlaggedApi(android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION)
+ @GuardedBy("mNotificationLock")
+ public @NonNull Set<String> getUnsupportedAdjustments(@UserIdInt int userId) {
+ if (!android.service.notification.Flags.notificationClassification()) {
+ return new HashSet<>();
+ }
+ return mNasUnsupported.getOrDefault(userId, new HashSet<>());
+ }
+
+ @Override
+ protected void writeExtraAttributes(TypedXmlSerializer out, @UserIdInt int approvedUserId)
+ throws IOException {
+ if (!android.service.notification.Flags.notificationClassification()) {
+ return;
+ }
+ synchronized (mLock) {
+ if (mNasUnsupported.containsKey(approvedUserId)) {
+ out.attribute(null, ATT_NAS_UNSUPPORTED,
+ TextUtils.join(",", mNasUnsupported.get(approvedUserId)));
+ }
+ }
+ }
+
+ @Override
+ protected void readExtraAttributes(String tag, TypedXmlPullParser parser,
+ @UserIdInt int approvedUserId) throws IOException {
+ if (!android.service.notification.Flags.notificationClassification()) {
+ return;
+ }
+ if (ManagedServices.TAG_MANAGED_SERVICES.equals(tag)) {
+ final String types = XmlUtils.readStringAttribute(parser, ATT_NAS_UNSUPPORTED);
+ synchronized (mLock) {
+ if (!TextUtils.isEmpty(types)) {
+ mNasUnsupported.put(approvedUserId, new HashSet(List.of(types.split(","))));
+ }
+ }
+ }
+ }
}
/**
diff --git a/services/core/java/com/android/server/pm/TEST_MAPPING b/services/core/java/com/android/server/pm/TEST_MAPPING
index 21a6df203015..94b49e538621 100644
--- a/services/core/java/com/android/server/pm/TEST_MAPPING
+++ b/services/core/java/com/android/server/pm/TEST_MAPPING
@@ -101,6 +101,22 @@
]
},
{
+ "name": "CtsPackageInstallerCUJDeviceAdminTestCases",
+ "file_patterns": [
+ "core/java/.*Install.*",
+ "services/core/.*Install.*",
+ "services/core/java/com/android/server/pm/.*"
+ ],
+ "options":[
+ {
+ "exclude-annotation":"androidx.test.filters.FlakyTest"
+ },
+ {
+ "exclude-annotation":"org.junit.Ignore"
+ }
+ ]
+ },
+ {
"name": "CtsPackageInstallerCUJInstallationTestCases",
"file_patterns": [
"core/java/.*Install.*",
@@ -117,6 +133,22 @@
]
},
{
+ "name": "CtsPackageInstallerCUJMultiUsersTestCases",
+ "file_patterns": [
+ "core/java/.*Install.*",
+ "services/core/.*Install.*",
+ "services/core/java/com/android/server/pm/.*"
+ ],
+ "options":[
+ {
+ "exclude-annotation":"androidx.test.filters.FlakyTest"
+ },
+ {
+ "exclude-annotation":"org.junit.Ignore"
+ }
+ ]
+ },
+ {
"name": "CtsPackageInstallerCUJUninstallationTestCases",
"file_patterns": [
"core/java/.*Install.*",
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 228405074dbb..197f0070b553 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -3204,8 +3204,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
return ADD_OKAY;
}
- // Allow virtual device owners to add overlays on the displays they own.
+ // Allow virtual device owners to add overlays on the trusted displays they own.
if (mWindowManagerFuncs.isCallerVirtualDeviceOwner(displayId, callingUid)
+ && mWindowManagerFuncs.isDisplayTrusted(displayId)
&& mContext.checkCallingOrSelfPermission(CREATE_VIRTUAL_DEVICE)
== PERMISSION_GRANTED) {
return ADD_OKAY;
diff --git a/services/core/java/com/android/server/policy/WindowManagerPolicy.java b/services/core/java/com/android/server/policy/WindowManagerPolicy.java
index ad116578ae41..cc31bb17dc9d 100644
--- a/services/core/java/com/android/server/policy/WindowManagerPolicy.java
+++ b/services/core/java/com/android/server/policy/WindowManagerPolicy.java
@@ -368,6 +368,11 @@ public interface WindowManagerPolicy extends WindowManagerPolicyConstants {
* belongs to.
*/
boolean isCallerVirtualDeviceOwner(int displayId, int callingUid);
+
+ /**
+ * Returns whether the display with the given ID is trusted.
+ */
+ boolean isDisplayTrusted(int displayId);
}
/**
diff --git a/services/core/java/com/android/server/power/Notifier.java b/services/core/java/com/android/server/power/Notifier.java
index 0cdf537b3455..4fae798f0cef 100644
--- a/services/core/java/com/android/server/power/Notifier.java
+++ b/services/core/java/com/android/server/power/Notifier.java
@@ -164,6 +164,7 @@ public class Notifier {
}
private final SparseArray<Interactivity> mInteractivityByGroupId = new SparseArray<>();
+ private SparseBooleanArray mDisplayInteractivities = new SparseBooleanArray();
// The current global interactive state. This is set as soon as an interactive state
// transition begins so as to capture the reason that it happened. At some point
@@ -690,6 +691,42 @@ public class Notifier {
}
/**
+ * Update the interactivities of the displays in given DisplayGroup.
+ *
+ * @param groupId The group id of the DisplayGroup to update display interactivities for.
+ */
+ private void updateDisplayInteractivities(int groupId, boolean interactive) {
+ final int[] displayIds = mDisplayManagerInternal.getDisplayIdsForGroup(groupId);
+ for (int displayId : displayIds) {
+ mDisplayInteractivities.put(displayId, interactive);
+ }
+
+ }
+
+ private void resetDisplayInteractivities() {
+ final SparseArray<int[]> displaysByGroupId =
+ mDisplayManagerInternal.getDisplayIdsByGroupsIds();
+ SparseBooleanArray newDisplayInteractivities = new SparseBooleanArray();
+ for (int i = 0; i < displaysByGroupId.size(); i++) {
+ final int groupId = displaysByGroupId.keyAt(i);
+ for (int displayId : displaysByGroupId.get(i)) {
+ // If we already know display interactivity, use that
+ if (mDisplayInteractivities.indexOfKey(displayId) > 0) {
+ newDisplayInteractivities.put(
+ displayId, mDisplayInteractivities.get(displayId));
+ } else { // If display is new to Notifier, use the power group's interactive value
+ final Interactivity groupInteractivity = mInteractivityByGroupId.get(groupId);
+ // If group Interactivity hasn't been initialized, assume group is interactive
+ final boolean groupInteractive =
+ groupInteractivity == null || groupInteractivity.isInteractive;
+ newDisplayInteractivities.put(displayId, groupInteractive);
+ }
+ }
+ }
+ mDisplayInteractivities = newDisplayInteractivities;
+ }
+
+ /**
* Called when an individual PowerGroup changes wakefulness.
*/
public void onGroupWakefulnessChangeStarted(int groupId, int wakefulness, int changeReason,
@@ -717,6 +754,12 @@ public class Notifier {
handleEarlyInteractiveChange(groupId);
mWakefulnessSessionObserver.onWakefulnessChangeStarted(groupId, wakefulness,
changeReason, eventTime);
+
+ // Update input on which displays are interactive
+ if (mFlags.isPerDisplayWakeByTouchEnabled()) {
+ updateDisplayInteractivities(groupId, isInteractive);
+ mInputManagerInternal.setDisplayInteractivities(mDisplayInteractivities);
+ }
}
}
@@ -731,6 +774,16 @@ public class Notifier {
}
/**
+ * Called when a PowerGroup has been changed.
+ */
+ public void onGroupChanged() {
+ if (mFlags.isPerDisplayWakeByTouchEnabled()) {
+ resetDisplayInteractivities();
+ mInputManagerInternal.setDisplayInteractivities(mDisplayInteractivities);
+ }
+ }
+
+ /**
* Called when there has been user activity.
*/
public void onUserActivity(int displayGroupId, @PowerManager.UserActivityEvent int event,
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
index e0539647d061..21ab7812e604 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -125,7 +125,6 @@ import com.android.internal.util.DumpUtils;
import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.LatencyTracker;
import com.android.internal.util.Preconditions;
-import com.android.server.crashrecovery.CrashRecoveryHelper;
import com.android.server.EventLogTags;
import com.android.server.LockGuard;
import com.android.server.ServiceThread;
@@ -133,6 +132,7 @@ import com.android.server.SystemService;
import com.android.server.UiThread;
import com.android.server.Watchdog;
import com.android.server.am.BatteryStatsService;
+import com.android.server.crashrecovery.CrashRecoveryHelper;
import com.android.server.display.feature.DeviceConfigParameterProvider;
import com.android.server.lights.LightsManager;
import com.android.server.lights.LogicalLight;
@@ -2445,6 +2445,8 @@ public final class PowerManagerService extends SystemService
mClock.uptimeMillis());
} else if (event == DisplayGroupPowerChangeListener.DISPLAY_GROUP_REMOVED) {
mNotifier.onGroupRemoved(groupId);
+ } else if (event == DisplayGroupPowerChangeListener.DISPLAY_GROUP_CHANGED) {
+ mNotifier.onGroupChanged();
}
if (oldWakefulness != newWakefulness) {
diff --git a/services/core/java/com/android/server/power/stats/BatteryChargeCalculator.java b/services/core/java/com/android/server/power/stats/BatteryChargeCalculator.java
index c2e230ec8058..cc05630d037e 100644
--- a/services/core/java/com/android/server/power/stats/BatteryChargeCalculator.java
+++ b/services/core/java/com/android/server/power/stats/BatteryChargeCalculator.java
@@ -38,13 +38,7 @@ public class BatteryChargeCalculator extends PowerCalculator {
builder.setDischargePercentage(
batteryStats.getDischargeAmount(BatteryStats.STATS_SINCE_CHARGED));
- int batteryCapacityMah = batteryStats.getLearnedBatteryCapacity() / 1000;
- if (batteryCapacityMah <= 0) {
- batteryCapacityMah = batteryStats.getMinLearnedBatteryCapacity() / 1000;
- if (batteryCapacityMah <= 0) {
- batteryCapacityMah = batteryStats.getEstimatedBatteryCapacity();
- }
- }
+ int batteryCapacityMah = batteryStats.getBatteryCapacity();
builder.setBatteryCapacity(batteryCapacityMah);
final double dischargedPowerLowerBoundMah =
diff --git a/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java b/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java
index 3f1d9a3b87a0..936fadf0b12a 100644
--- a/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java
+++ b/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java
@@ -294,6 +294,7 @@ public class BatteryStatsImpl extends BatteryStats {
private final LongSparseArray<SamplingTimer> mKernelMemoryStats = new LongSparseArray<>();
private int[] mCpuPowerBracketMap;
private final CpuPowerStatsCollector mCpuPowerStatsCollector;
+ private final WakelockPowerStatsCollector mWakelockPowerStatsCollector;
private final ScreenPowerStatsCollector mScreenPowerStatsCollector;
private final MobileRadioPowerStatsCollector mMobileRadioPowerStatsCollector;
private final WifiPowerStatsCollector mWifiPowerStatsCollector;
@@ -400,6 +401,48 @@ public class BatteryStatsImpl extends BatteryStats {
}
}
+ private final WakelockPowerStatsCollector.WakelockDurationRetriever mWakelockDurationRetriever =
+ new WakelockPowerStatsCollector.WakelockDurationRetriever() {
+
+ @Override
+ public long getWakelockDurationMillis() {
+ synchronized (BatteryStatsImpl.this) {
+ long rawRealtimeUs = mClock.uptimeMillis() * 1000;
+ long batteryUptimeUs = getBatteryUptime(rawRealtimeUs);
+ long screenOnTimeUs = getScreenOnTime(rawRealtimeUs,
+ BatteryStats.STATS_SINCE_CHARGED);
+ return (batteryUptimeUs - screenOnTimeUs) / 1000;
+ }
+ }
+
+ @Override
+ public void retrieveUidWakelockDuration(Callback callback) {
+ synchronized (BatteryStatsImpl.this) {
+ long rawRealtimeUs = mClock.elapsedRealtime() * 1000;
+ for (int i = mUidStats.size() - 1; i >= 0; i--) {
+ Uid u = mUidStats.valueAt(i);
+ long wakeLockTimeUs = 0;
+ ArrayMap<String, ? extends BatteryStats.Uid.Wakelock> wakelockStats =
+ u.getWakelockStats();
+ final int wakelockStatsCount = wakelockStats.size();
+ for (int j = 0; j < wakelockStatsCount; j++) {
+ final BatteryStats.Uid.Wakelock wakelock = wakelockStats.valueAt(j);
+ BatteryStats.Timer timer = wakelock.getWakeTime(
+ BatteryStats.WAKE_TYPE_PARTIAL);
+ if (timer != null) {
+ wakeLockTimeUs += timer.getTotalTimeLocked(rawRealtimeUs,
+ BatteryStats.STATS_SINCE_CHARGED);
+ }
+ }
+
+ if (wakeLockTimeUs != 0) {
+ callback.onUidWakelockDuration(u.getUid(), wakeLockTimeUs / 1000);
+ }
+ }
+ }
+ }
+ };
+
public LongSparseArray<SamplingTimer> getKernelMemoryStats() {
return mKernelMemoryStats;
}
@@ -2015,7 +2058,7 @@ public class BatteryStatsImpl extends BatteryStats {
private class PowerStatsCollectorInjector implements CpuPowerStatsCollector.Injector,
ScreenPowerStatsCollector.Injector, MobileRadioPowerStatsCollector.Injector,
WifiPowerStatsCollector.Injector, BluetoothPowerStatsCollector.Injector,
- EnergyConsumerPowerStatsCollector.Injector {
+ EnergyConsumerPowerStatsCollector.Injector, WakelockPowerStatsCollector.Injector {
private PackageManager mPackageManager;
private PowerStatsCollector.ConsumedEnergyRetriever mConsumedEnergyRetriever;
private NetworkStatsManager mNetworkStatsManager;
@@ -2132,6 +2175,12 @@ public class BatteryStatsImpl extends BatteryStats {
return () -> mPhoneSignalScanningTimer.getTotalTimeLocked(
mClock.elapsedRealtime() * 1000, STATS_SINCE_CHARGED) / 1000;
}
+
+ @Override
+ public WakelockPowerStatsCollector.WakelockDurationRetriever
+ getWakelockDurationRetriever() {
+ return mWakelockDurationRetriever;
+ }
}
private final PowerStatsCollectorInjector mPowerStatsCollectorInjector =
@@ -10910,7 +10959,6 @@ public class BatteryStatsImpl extends BatteryStats {
// Make special note of Foreground Services
final boolean userAwareService = ActivityManager.isForegroundService(procState);
uidRunningState = BatteryStats.mapToInternalProcessState(procState);
-
if (mProcessState == uidRunningState && userAwareService == mInForegroundService) {
return;
}
@@ -10949,8 +10997,7 @@ public class BatteryStatsImpl extends BatteryStats {
final int batteryConsumerProcessState =
mapUidProcessStateToBatteryConsumerProcessState(uidRunningState);
- if (mBsi.mSystemReady && mBsi.mPowerStatsCollectorEnabled.get(
- BatteryConsumer.POWER_COMPONENT_CPU)) {
+ if (mBsi.mSystemReady) {
mBsi.mHistory.recordProcessStateChange(elapsedRealtimeMs, uptimeMs, mUid,
batteryConsumerProcessState);
}
@@ -11351,6 +11398,10 @@ public class BatteryStatsImpl extends BatteryStats {
mCpuPowerStatsCollector = new CpuPowerStatsCollector(mPowerStatsCollectorInjector);
mCpuPowerStatsCollector.addConsumer(this::recordPowerStats);
+ mWakelockPowerStatsCollector = new WakelockPowerStatsCollector(
+ mPowerStatsCollectorInjector);
+ mWakelockPowerStatsCollector.addConsumer(this::recordPowerStats);
+
mScreenPowerStatsCollector = new ScreenPowerStatsCollector(mPowerStatsCollectorInjector);
mScreenPowerStatsCollector.addConsumer(this::recordPowerStats);
@@ -14821,6 +14872,10 @@ public class BatteryStatsImpl extends BatteryStats {
mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_CPU));
mCpuPowerStatsCollector.schedule();
+ mWakelockPowerStatsCollector.setEnabled(
+ mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_WAKELOCK));
+ mWakelockPowerStatsCollector.schedule();
+
mScreenPowerStatsCollector.setEnabled(
mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_SCREEN));
mScreenPowerStatsCollector.schedule();
@@ -14861,6 +14916,8 @@ public class BatteryStatsImpl extends BatteryStats {
switch (powerComponent) {
case BatteryConsumer.POWER_COMPONENT_CPU:
return mCpuPowerStatsCollector;
+ case BatteryConsumer.POWER_COMPONENT_WAKELOCK:
+ return mWakelockPowerStatsCollector;
case BatteryConsumer.POWER_COMPONENT_SCREEN:
return mScreenPowerStatsCollector;
case BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO:
@@ -16402,6 +16459,7 @@ public class BatteryStatsImpl extends BatteryStats {
}
mCpuPowerStatsCollector.forceSchedule();
+ mWakelockPowerStatsCollector.forceSchedule();
mScreenPowerStatsCollector.forceSchedule();
mMobileRadioPowerStatsCollector.forceSchedule();
mWifiPowerStatsCollector.forceSchedule();
@@ -16426,6 +16484,7 @@ public class BatteryStatsImpl extends BatteryStats {
*/
public void dumpStatsSample(PrintWriter pw) {
mCpuPowerStatsCollector.collectAndDump(pw);
+ mWakelockPowerStatsCollector.collectAndDump(pw);
mScreenPowerStatsCollector.collectAndDump(pw);
mMobileRadioPowerStatsCollector.collectAndDump(pw);
mWifiPowerStatsCollector.collectAndDump(pw);
diff --git a/services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java b/services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java
index d66e05bd6f2a..b466dd2d8721 100644
--- a/services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java
+++ b/services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java
@@ -52,6 +52,7 @@ public class BatteryUsageStatsProvider {
private final Clock mClock;
private final Object mLock = new Object();
private List<PowerCalculator> mPowerCalculators;
+ private UserPowerCalculator mUserPowerCalculator;
public BatteryUsageStatsProvider(@NonNull Context context,
@NonNull PowerAttributor powerAttributor,
@@ -63,6 +64,7 @@ public class BatteryUsageStatsProvider {
mPowerProfile = powerProfile;
mCpuScalingPolicies = cpuScalingPolicies;
mClock = clock;
+ mUserPowerCalculator = new UserPowerCalculator();
mPowerStatsStore.addSectionReader(new BatteryUsageStatsSection.Reader());
mPowerStatsStore.addSectionReader(new AccumulatedBatteryUsageStatsSection.Reader());
@@ -74,14 +76,20 @@ public class BatteryUsageStatsProvider {
mPowerCalculators = new ArrayList<>();
// Power calculators are applied in the order of registration
- mPowerCalculators.add(new BatteryChargeCalculator());
+ if (!mPowerAttributor.isPowerComponentSupported(
+ BatteryConsumer.POWER_COMPONENT_BASE)) {
+ mPowerCalculators.add(new BatteryChargeCalculator());
+ }
if (!mPowerAttributor.isPowerComponentSupported(
BatteryConsumer.POWER_COMPONENT_CPU)) {
mPowerCalculators.add(
new CpuPowerCalculator(mCpuScalingPolicies, mPowerProfile));
}
mPowerCalculators.add(new MemoryPowerCalculator(mPowerProfile));
- mPowerCalculators.add(new WakelockPowerCalculator(mPowerProfile));
+ if (!mPowerAttributor.isPowerComponentSupported(
+ BatteryConsumer.POWER_COMPONENT_WAKELOCK)) {
+ mPowerCalculators.add(new WakelockPowerCalculator(mPowerProfile));
+ }
if (!BatteryStats.checkWifiOnly(mContext)) {
if (!mPowerAttributor.isPowerComponentSupported(
BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO)) {
@@ -138,8 +146,6 @@ public class BatteryUsageStatsProvider {
BatteryConsumer.POWER_COMPONENT_ANY)) {
mPowerCalculators.add(new CustomEnergyConsumerPowerCalculator(mPowerProfile));
}
- mPowerCalculators.add(new UserPowerCalculator());
-
if (!com.android.server.power.optimization.Flags.disableSystemServicePowerAttr()) {
// It is important that SystemServicePowerCalculator be applied last,
// because it re-attributes some of the power estimated by the other
@@ -317,58 +323,54 @@ public class BatteryUsageStatsProvider {
& BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_VIRTUAL_UIDS) != 0);
final double minConsumedPowerThreshold = query.getMinConsumedPowerThreshold();
- final BatteryUsageStats.Builder batteryUsageStatsBuilder;
+ String[] customEnergyConsumerNames;
long monotonicStartTime, monotonicEndTime;
synchronized (stats) {
+ customEnergyConsumerNames = stats.getCustomEnergyConsumerNames();
monotonicStartTime = stats.getMonotonicStartTime();
monotonicEndTime = stats.getMonotonicEndTime();
+ }
- batteryUsageStatsBuilder = new BatteryUsageStats.Builder(
- stats.getCustomEnergyConsumerNames(), includePowerModels,
- includeProcessStateData, query.isScreenStateDataNeeded(),
- query.isPowerStateDataNeeded(), minConsumedPowerThreshold);
+ final BatteryUsageStats.Builder batteryUsageStatsBuilder = new BatteryUsageStats.Builder(
+ customEnergyConsumerNames, includePowerModels,
+ includeProcessStateData, query.isScreenStateDataNeeded(),
+ query.isPowerStateDataNeeded(), minConsumedPowerThreshold);
+ synchronized (stats) {
// TODO(b/188068523): use a monotonic clock to ensure resilience of order and duration
// of batteryUsageStats sessions to wall-clock adjustments
batteryUsageStatsBuilder.setStatsStartTimestamp(stats.getStartClockTime());
batteryUsageStatsBuilder.setStatsEndTimestamp(currentTimeMs);
- SparseArray<? extends BatteryStats.Uid> uidStats = stats.getUidStats();
- for (int i = uidStats.size() - 1; i >= 0; i--) {
- final BatteryStats.Uid uid = uidStats.valueAt(i);
- if (!includeVirtualUids && uid.getUid() == Process.SDK_SANDBOX_VIRTUAL_UID) {
- continue;
- }
-
- batteryUsageStatsBuilder.getOrCreateUidBatteryConsumerBuilder(uid)
- .setTimeInProcessStateMs(UidBatteryConsumer.PROCESS_STATE_BACKGROUND,
- getProcessBackgroundTimeMs(uid, realtimeUs))
- .setTimeInProcessStateMs(UidBatteryConsumer.PROCESS_STATE_FOREGROUND,
- getProcessForegroundTimeMs(uid, realtimeUs))
- .setTimeInProcessStateMs(
- UidBatteryConsumer.PROCESS_STATE_FOREGROUND_SERVICE,
- getProcessForegroundServiceTimeMs(uid, realtimeUs));
- }
-
- final int[] powerComponents = query.getPowerComponents();
final List<PowerCalculator> powerCalculators = getPowerCalculators();
- for (int i = 0, count = powerCalculators.size(); i < count; i++) {
- PowerCalculator powerCalculator = powerCalculators.get(i);
- if (powerComponents != null) {
- boolean include = false;
- for (int powerComponent : powerComponents) {
- if (powerCalculator.isPowerComponentSupported(powerComponent)) {
- include = true;
- break;
- }
- }
- if (!include) {
+ if (!powerCalculators.isEmpty()) {
+ final int[] powerComponents = query.getPowerComponents();
+ SparseArray<? extends BatteryStats.Uid> uidStats = stats.getUidStats();
+ for (int i = uidStats.size() - 1; i >= 0; i--) {
+ final BatteryStats.Uid uid = uidStats.valueAt(i);
+ if (!includeVirtualUids && uid.getUid() == Process.SDK_SANDBOX_VIRTUAL_UID) {
continue;
}
+
+ batteryUsageStatsBuilder.getOrCreateUidBatteryConsumerBuilder(uid);
+ }
+ for (int i = 0, count = powerCalculators.size(); i < count; i++) {
+ PowerCalculator powerCalculator = powerCalculators.get(i);
+ if (powerComponents != null) {
+ boolean include = false;
+ for (int powerComponent : powerComponents) {
+ if (powerCalculator.isPowerComponentSupported(powerComponent)) {
+ include = true;
+ break;
+ }
+ }
+ if (!include) {
+ continue;
+ }
+ }
+ powerCalculator.calculate(batteryUsageStatsBuilder, stats, realtimeUs, uptimeUs,
+ query);
}
- powerCalculator.calculate(batteryUsageStatsBuilder, stats, realtimeUs, uptimeUs,
- query);
}
-
if ((query.getFlags()
& BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_HISTORY) != 0) {
batteryUsageStatsBuilder.setBatteryHistory(stats.copyHistory());
@@ -378,9 +380,28 @@ public class BatteryUsageStatsProvider {
mPowerAttributor.estimatePowerConsumption(batteryUsageStatsBuilder, stats.getHistory(),
monotonicStartTime, monotonicEndTime);
+ // Combine apps by the user if necessary
+ mUserPowerCalculator.calculate(batteryUsageStatsBuilder, stats, realtimeUs, uptimeUs,
+ query);
+
+ populateGeneralInfo(batteryUsageStatsBuilder, stats);
return batteryUsageStatsBuilder;
}
+ private void populateGeneralInfo(BatteryUsageStats.Builder builder, BatteryStatsImpl stats) {
+ builder.setBatteryCapacity(stats.getEstimatedBatteryCapacity());
+ final long batteryTimeRemainingMs = stats.computeBatteryTimeRemaining(
+ mClock.elapsedRealtime() * 1000);
+ if (batteryTimeRemainingMs != -1) {
+ builder.setBatteryTimeRemainingMs(batteryTimeRemainingMs / 1000);
+ }
+ final long chargeTimeRemainingMs = stats.computeChargeTimeRemaining(
+ mClock.elapsedRealtime() * 1000);
+ if (chargeTimeRemainingMs != -1) {
+ builder.setChargeTimeRemainingMs(chargeTimeRemainingMs / 1000);
+ }
+ }
+
// STOPSHIP(b/229906525): remove verification before shipping
private static boolean sErrorReported;
@@ -423,39 +444,6 @@ public class BatteryUsageStatsProvider {
}
}
- private long getProcessForegroundTimeMs(BatteryStats.Uid uid, long realtimeUs) {
- final long topStateDurationUs = uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_TOP,
- realtimeUs, BatteryStats.STATS_SINCE_CHARGED);
- long foregroundActivityDurationUs = 0;
- final BatteryStats.Timer foregroundActivityTimer = uid.getForegroundActivityTimer();
- if (foregroundActivityTimer != null) {
- foregroundActivityDurationUs = foregroundActivityTimer.getTotalTimeLocked(realtimeUs,
- BatteryStats.STATS_SINCE_CHARGED);
- }
-
- // Use the min value of STATE_TOP time and foreground activity time, since both of these
- // times are imprecise
- long totalForegroundDurationUs = Math.min(topStateDurationUs, foregroundActivityDurationUs);
-
- totalForegroundDurationUs += uid.getProcessStateTime(
- BatteryStats.Uid.PROCESS_STATE_FOREGROUND, realtimeUs,
- BatteryStats.STATS_SINCE_CHARGED);
-
- return totalForegroundDurationUs / 1000;
- }
-
- private long getProcessBackgroundTimeMs(BatteryStats.Uid uid, long realtimeUs) {
- return uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_BACKGROUND,
- realtimeUs, BatteryStats.STATS_SINCE_CHARGED)
- / 1000;
- }
-
- private long getProcessForegroundServiceTimeMs(BatteryStats.Uid uid, long realtimeUs) {
- return uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_FOREGROUND_SERVICE,
- realtimeUs, BatteryStats.STATS_SINCE_CHARGED)
- / 1000;
- }
-
private BatteryUsageStats getAggregatedBatteryUsageStats(BatteryStatsImpl stats,
BatteryUsageStatsQuery query) {
final boolean includePowerModels = (query.getFlags()
diff --git a/services/core/java/com/android/server/power/stats/BluetoothPowerStatsCollector.java b/services/core/java/com/android/server/power/stats/BluetoothPowerStatsCollector.java
index 539c41537f8e..d7aa9876fe0d 100644
--- a/services/core/java/com/android/server/power/stats/BluetoothPowerStatsCollector.java
+++ b/services/core/java/com/android/server/power/stats/BluetoothPowerStatsCollector.java
@@ -30,6 +30,7 @@ import com.android.internal.os.Clock;
import com.android.internal.os.PowerStats;
import com.android.server.power.stats.format.BluetoothPowerStatsLayout;
+import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
@@ -142,6 +143,7 @@ public class BluetoothPowerStatsCollector extends PowerStatsCollector {
return null;
}
+ Arrays.fill(mDeviceStats, 0);
mPowerStats.uidStats.clear();
collectBluetoothActivityInfo();
diff --git a/services/core/java/com/android/server/power/stats/CpuPowerStatsCollector.java b/services/core/java/com/android/server/power/stats/CpuPowerStatsCollector.java
index 128f14a31898..dd6484dad812 100644
--- a/services/core/java/com/android/server/power/stats/CpuPowerStatsCollector.java
+++ b/services/core/java/com/android/server/power/stats/CpuPowerStatsCollector.java
@@ -34,6 +34,7 @@ import com.android.internal.os.PowerStats;
import com.android.server.power.stats.format.CpuPowerStatsLayout;
import java.io.PrintWriter;
+import java.util.Arrays;
import java.util.Locale;
/**
@@ -330,7 +331,9 @@ public class CpuPowerStatsCollector extends PowerStatsCollector {
return null;
}
+ Arrays.fill(mCpuPowerStats.stats, 0);
mCpuPowerStats.uidStats.clear();
+
// TODO(b/305120724): additionally retrieve time-in-cluster for each CPU cluster
long newTimestampNanos = mKernelCpuStatsReader.readCpuStats(this::processUidStats,
mLayout.getScalingStepToPowerBracketMap(), mLastUpdateTimestampNanos,
diff --git a/services/core/java/com/android/server/power/stats/EnergyConsumerPowerStatsCollector.java b/services/core/java/com/android/server/power/stats/EnergyConsumerPowerStatsCollector.java
index 1d2e38849708..079fc3c026f9 100644
--- a/services/core/java/com/android/server/power/stats/EnergyConsumerPowerStatsCollector.java
+++ b/services/core/java/com/android/server/power/stats/EnergyConsumerPowerStatsCollector.java
@@ -24,6 +24,8 @@ import com.android.internal.os.Clock;
import com.android.internal.os.PowerStats;
import com.android.server.power.stats.format.EnergyConsumerPowerStatsLayout;
+import java.util.Arrays;
+
public class EnergyConsumerPowerStatsCollector extends PowerStatsCollector {
public interface Injector {
@@ -105,6 +107,7 @@ public class EnergyConsumerPowerStatsCollector extends PowerStatsCollector {
return null;
}
+ Arrays.fill(mPowerStats.stats, 0);
mPowerStats.uidStats.clear();
if (!mConsumedEnergyHelper.collectConsumedEnergy(mPowerStats, mLayout)) {
diff --git a/services/core/java/com/android/server/power/stats/ScreenPowerStatsCollector.java b/services/core/java/com/android/server/power/stats/ScreenPowerStatsCollector.java
index 8371e6681747..c38904fe2873 100644
--- a/services/core/java/com/android/server/power/stats/ScreenPowerStatsCollector.java
+++ b/services/core/java/com/android/server/power/stats/ScreenPowerStatsCollector.java
@@ -27,6 +27,8 @@ import com.android.internal.os.Clock;
import com.android.internal.os.PowerStats;
import com.android.server.power.stats.format.ScreenPowerStatsLayout;
+import java.util.Arrays;
+
public class ScreenPowerStatsCollector extends PowerStatsCollector {
private static final String TAG = "ScreenPowerStatsCollector";
@@ -115,6 +117,9 @@ public class ScreenPowerStatsCollector extends PowerStatsCollector {
return null;
}
+ Arrays.fill(mPowerStats.stats, 0);
+ mPowerStats.uidStats.clear();
+
mConsumedEnergyHelper.collectConsumedEnergy(mPowerStats, mLayout);
for (int display = 0; display < mDisplayCount; display++) {
@@ -142,8 +147,6 @@ public class ScreenPowerStatsCollector extends PowerStatsCollector {
mLastDozeTime[display] = screenDozeTimeMs;
}
- mPowerStats.uidStats.clear();
-
mScreenUsageTimeRetriever.retrieveTopActivityTimes((uid, topActivityTimeMs) -> {
long topActivityDuration = topActivityTimeMs - mLastTopActivityTime.get(uid);
if (topActivityDuration == 0) {
diff --git a/services/core/java/com/android/server/power/stats/WakelockPowerStatsCollector.java b/services/core/java/com/android/server/power/stats/WakelockPowerStatsCollector.java
new file mode 100644
index 000000000000..e36c9946531e
--- /dev/null
+++ b/services/core/java/com/android/server/power/stats/WakelockPowerStatsCollector.java
@@ -0,0 +1,128 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.server.power.stats;
+
+import android.annotation.Nullable;
+import android.os.BatteryConsumer;
+import android.os.Handler;
+import android.os.PersistableBundle;
+import android.util.SparseLongArray;
+
+import com.android.internal.os.Clock;
+import com.android.internal.os.PowerStats;
+import com.android.server.power.stats.format.WakelockPowerStatsLayout;
+
+import java.util.Arrays;
+
+class WakelockPowerStatsCollector extends PowerStatsCollector {
+
+ public interface WakelockDurationRetriever {
+ interface Callback {
+ void onUidWakelockDuration(int uid, long wakelockDurationMs);
+ }
+
+ long getWakelockDurationMillis();
+ void retrieveUidWakelockDuration(Callback callback);
+ }
+
+ public interface Injector {
+ Handler getHandler();
+ Clock getClock();
+ PowerStatsUidResolver getUidResolver();
+ long getPowerStatsCollectionThrottlePeriod(String powerComponentName);
+ WakelockDurationRetriever getWakelockDurationRetriever();
+ }
+
+ private final WakelockDurationRetriever mWakelockDurationRetriever;
+ private WakelockPowerStatsLayout mStatsLayout;
+ private PowerStats.Descriptor mDescriptor;
+ private PowerStats mPowerStats;
+ private boolean mIsInitialized;
+ private boolean mFirstCollection = true;
+ private long mLastCollectionTime;
+ private long mLastWakelockDurationMs;
+ private final SparseLongArray mLastUidWakelockDurations = new SparseLongArray();
+
+ WakelockPowerStatsCollector(Injector injector) {
+ super(injector.getHandler(), injector.getPowerStatsCollectionThrottlePeriod(
+ BatteryConsumer.powerComponentIdToString(
+ BatteryConsumer.POWER_COMPONENT_WAKELOCK)),
+ injector.getUidResolver(), injector.getClock());
+ mWakelockDurationRetriever = injector.getWakelockDurationRetriever();
+ }
+
+ private boolean ensureInitialized() {
+ if (mIsInitialized) {
+ return true;
+ }
+
+ if (!isEnabled()) {
+ return false;
+ }
+
+ mStatsLayout = new WakelockPowerStatsLayout();
+ PersistableBundle extras = new PersistableBundle();
+ mStatsLayout.toExtras(extras);
+ mDescriptor = new PowerStats.Descriptor(BatteryConsumer.POWER_COMPONENT_WAKELOCK,
+ mStatsLayout.getDeviceStatsArrayLength(), null, 0,
+ mStatsLayout.getUidStatsArrayLength(), extras);
+ mPowerStats = new PowerStats(mDescriptor);
+ mIsInitialized = true;
+ return true;
+ }
+
+ @Nullable
+ @Override
+ protected PowerStats collectStats() {
+ if (!ensureInitialized()) {
+ return null;
+ }
+
+ Arrays.fill(mPowerStats.stats, 0);
+ mPowerStats.uidStats.clear();
+
+ long elapsedRealtime = mClock.elapsedRealtime();
+ mPowerStats.durationMs = elapsedRealtime - mLastCollectionTime;
+
+ long wakelockDurationMillis = mWakelockDurationRetriever.getWakelockDurationMillis();
+
+ if (!mFirstCollection) {
+ mStatsLayout.setUsageDuration(mPowerStats.stats,
+ Math.max(0, wakelockDurationMillis - mLastWakelockDurationMs));
+ }
+
+ mLastWakelockDurationMs = wakelockDurationMillis;
+
+ mWakelockDurationRetriever.retrieveUidWakelockDuration((uid, durationMs) -> {
+ if (!mFirstCollection) {
+ long[] uidStats = mPowerStats.uidStats.get(uid);
+ if (uidStats == null) {
+ uidStats = new long[mDescriptor.uidStatsArrayLength];
+ mPowerStats.uidStats.put(uid, uidStats);
+ }
+
+ mStatsLayout.setUidUsageDuration(uidStats,
+ Math.max(0, durationMs - mLastUidWakelockDurations.get(uid)));
+ }
+ mLastUidWakelockDurations.put(uid, durationMs);
+ });
+
+ mLastCollectionTime = elapsedRealtime;
+ mFirstCollection = false;
+
+ return mPowerStats;
+ }
+}
diff --git a/services/core/java/com/android/server/power/stats/WifiPowerStatsCollector.java b/services/core/java/com/android/server/power/stats/WifiPowerStatsCollector.java
index 7a84b05823a4..1fdeac9816d0 100644
--- a/services/core/java/com/android/server/power/stats/WifiPowerStatsCollector.java
+++ b/services/core/java/com/android/server/power/stats/WifiPowerStatsCollector.java
@@ -30,6 +30,7 @@ import com.android.internal.os.Clock;
import com.android.internal.os.PowerStats;
import com.android.server.power.stats.format.WifiPowerStatsLayout;
+import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
@@ -151,6 +152,9 @@ public class WifiPowerStatsCollector extends PowerStatsCollector {
return null;
}
+ Arrays.fill(mDeviceStats, 0);
+ mPowerStats.uidStats.clear();
+
WifiActivityEnergyInfo activityInfo = null;
if (mPowerReportingSupported) {
activityInfo = collectWifiActivityInfo();
@@ -224,8 +228,6 @@ public class WifiPowerStatsCollector extends PowerStatsCollector {
}
private List<BatteryStatsImpl.NetworkStatsDelta> collectNetworkStats() {
- mPowerStats.uidStats.clear();
-
NetworkStats networkStats = mNetworkStatsSupplier.get();
if (networkStats == null) {
return null;
diff --git a/services/core/java/com/android/server/power/stats/format/BasePowerStatsLayout.java b/services/core/java/com/android/server/power/stats/format/BasePowerStatsLayout.java
new file mode 100644
index 000000000000..a9c856cfdf0b
--- /dev/null
+++ b/services/core/java/com/android/server/power/stats/format/BasePowerStatsLayout.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.power.stats.format;
+
+import android.annotation.NonNull;
+import android.os.PersistableBundle;
+
+import com.android.internal.os.PowerStats;
+
+public class BasePowerStatsLayout extends PowerStatsLayout {
+ private static final String EXTRA_DEVICE_BATTERY_DISCHARGE = "d-bd";
+ private static final String EXTRA_DEVICE_BATTERY_DISCHARGE_PCT = "d-bdp";
+ private static final String EXTRA_DEVICE_BATTERY_DISCHARGE_DURATION = "d-bdd";
+ private final int mDeviceBatteryDischargePosition;
+ private final int mDeviceBatteryDischargePercentPosition;
+ private final int mDeviceBatteryDischargeDurationPosition;
+
+ public BasePowerStatsLayout() {
+ addDeviceSectionUsageDuration();
+ addUidSectionUsageDuration();
+ mDeviceBatteryDischargePosition = addDeviceSection(1, "discharge");
+ // Stored with a 1000000 multiplier for precision
+ mDeviceBatteryDischargePercentPosition = addDeviceSection(1, "discharge-pct",
+ FLAG_FORMAT_AS_POWER);
+ mDeviceBatteryDischargeDurationPosition = addDeviceSection(1, "discharge-duration");
+ }
+
+ public BasePowerStatsLayout(@NonNull PowerStats.Descriptor descriptor) {
+ super(descriptor);
+ PersistableBundle extras = descriptor.extras;
+ mDeviceBatteryDischargePosition = extras.getInt(EXTRA_DEVICE_BATTERY_DISCHARGE);
+ mDeviceBatteryDischargePercentPosition = extras.getInt(EXTRA_DEVICE_BATTERY_DISCHARGE_PCT);
+ mDeviceBatteryDischargeDurationPosition =
+ extras.getInt(EXTRA_DEVICE_BATTERY_DISCHARGE_DURATION);
+ }
+
+ /**
+ * Copies the elements of the stats array layout into <code>extras</code>
+ */
+ public void toExtras(PersistableBundle extras) {
+ super.toExtras(extras);
+ extras.putInt(EXTRA_DEVICE_BATTERY_DISCHARGE, mDeviceBatteryDischargePosition);
+ extras.putInt(EXTRA_DEVICE_BATTERY_DISCHARGE_PCT, mDeviceBatteryDischargePercentPosition);
+ extras.putInt(EXTRA_DEVICE_BATTERY_DISCHARGE_DURATION,
+ mDeviceBatteryDischargeDurationPosition);
+ }
+
+ /**
+ * Accumulates battery discharge amount.
+ */
+ public void addBatteryDischargeUah(long[] stats, long dischargeUah) {
+ stats[mDeviceBatteryDischargePosition] += dischargeUah;
+ }
+
+ /**
+ * Returns accumulated battery discharge amount.
+ */
+ public long getBatteryDischargeUah(long[] stats) {
+ return stats[mDeviceBatteryDischargePosition];
+ }
+
+ /**
+ * Accumulates battery discharge in percentage points.
+ */
+ public void addBatteryDischargePercent(long[] stats, int dischargePct) {
+ // store pct * 1000000 for better rounding precision
+ stats[mDeviceBatteryDischargePercentPosition] += dischargePct * 1000000L;
+ }
+
+ /**
+ * Returns battery discharge amount as percentage of battery capacity. May exceed 100% if
+ * the battery was recharged/discharged during the power stats collection session.
+ */
+ public double getBatteryDischargePercent(long[] stats) {
+ return (int) stats[mDeviceBatteryDischargePercentPosition] / 1000000.0;
+ }
+
+ /**
+ * Accumulates battery discharge duration.
+ */
+ public void addBatteryDischargeDuration(long[] stats, long durationMs) {
+ stats[mDeviceBatteryDischargeDurationPosition] += durationMs;
+ }
+
+ /**
+ * Returns accumulated battery discharge duration.
+ */
+ public long getBatteryDischargeDuration(long[] stats) {
+ return (int) stats[mDeviceBatteryDischargeDurationPosition];
+ }
+}
diff --git a/services/core/java/com/android/server/power/stats/format/PowerStatsLayout.java b/services/core/java/com/android/server/power/stats/format/PowerStatsLayout.java
index d070919f4c18..26c8ed18e667 100644
--- a/services/core/java/com/android/server/power/stats/format/PowerStatsLayout.java
+++ b/services/core/java/com/android/server/power/stats/format/PowerStatsLayout.java
@@ -181,6 +181,9 @@ public class PowerStatsLayout {
* Extracts the usage duration from the corresponding <code>stats</code> element.
*/
public long getUsageDuration(long[] stats) {
+ if (mDeviceDurationPosition == UNSUPPORTED) {
+ return 0;
+ }
return stats[mDeviceDurationPosition];
}
@@ -234,6 +237,9 @@ public class PowerStatsLayout {
* Extracts the power estimate from a device stats array and converts it to mAh.
*/
public double getDevicePowerEstimate(long[] stats) {
+ if (mDevicePowerEstimatePosition == UNSUPPORTED) {
+ return 0;
+ }
return stats[mDevicePowerEstimatePosition] / MILLI_TO_NANO_MULTIPLIER;
}
@@ -255,7 +261,7 @@ public class PowerStatsLayout {
* Returns true if power for this component is attributed to UIDs (apps).
*/
public boolean isUidPowerAttributionSupported() {
- return mUidPowerEstimatePosition != UNSUPPORTED;
+ return mUidPowerEstimatePosition != UNSUPPORTED || mUidDurationPosition != UNSUPPORTED;
}
/**
@@ -269,6 +275,9 @@ public class PowerStatsLayout {
* Extracts the usage duration from a UID stats array.
*/
public long getUidUsageDuration(long[] stats) {
+ if (mUidDurationPosition == UNSUPPORTED) {
+ return 0;
+ }
return stats[mUidDurationPosition];
}
@@ -314,6 +323,9 @@ public class PowerStatsLayout {
* Extracts the power estimate from a UID stats array and converts it to mAh.
*/
public double getUidPowerEstimate(long[] stats) {
+ if (mUidPowerEstimatePosition == UNSUPPORTED) {
+ return 0;
+ }
return stats[mUidPowerEstimatePosition] / MILLI_TO_NANO_MULTIPLIER;
}
diff --git a/services/core/java/com/android/server/power/stats/format/WakelockPowerStatsLayout.java b/services/core/java/com/android/server/power/stats/format/WakelockPowerStatsLayout.java
new file mode 100644
index 000000000000..c11cf5685f2d
--- /dev/null
+++ b/services/core/java/com/android/server/power/stats/format/WakelockPowerStatsLayout.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.server.power.stats.format;
+
+import com.android.internal.os.PowerStats;
+
+public class WakelockPowerStatsLayout extends PowerStatsLayout {
+ public WakelockPowerStatsLayout() {
+ addDeviceSectionUsageDuration();
+ addDeviceSectionPowerEstimate();
+ addUidSectionUsageDuration();
+ addUidSectionPowerEstimate();
+ }
+
+ public WakelockPowerStatsLayout(PowerStats.Descriptor descriptor) {
+ super(descriptor);
+ }
+}
diff --git a/services/core/java/com/android/server/power/stats/processor/AggregatedPowerStats.java b/services/core/java/com/android/server/power/stats/processor/AggregatedPowerStats.java
index a4758dd78914..a783d543559f 100644
--- a/services/core/java/com/android/server/power/stats/processor/AggregatedPowerStats.java
+++ b/services/core/java/com/android/server/power/stats/processor/AggregatedPowerStats.java
@@ -224,6 +224,13 @@ class AggregatedPowerStats {
}
}
+ public void noteBatteryLevel(int batteryLevel, int batteryChargeUah, long timestampMs) {
+ for (int i = 0; i < mPowerComponentStats.size(); i++) {
+ mPowerComponentStats.valueAt(i).noteBatteryLevel(batteryLevel, batteryChargeUah,
+ timestampMs);
+ }
+ }
+
void finish(long timestampMs) {
for (int i = 0; i < mPowerComponentStats.size(); i++) {
PowerComponentAggregatedPowerStats component = mPowerComponentStats.valueAt(i);
diff --git a/services/core/java/com/android/server/power/stats/processor/AggregatedPowerStatsConfig.java b/services/core/java/com/android/server/power/stats/processor/AggregatedPowerStatsConfig.java
index eaeda43ef6af..945960148770 100644
--- a/services/core/java/com/android/server/power/stats/processor/AggregatedPowerStatsConfig.java
+++ b/services/core/java/com/android/server/power/stats/processor/AggregatedPowerStatsConfig.java
@@ -174,36 +174,36 @@ class AggregatedPowerStatsConfig {
* standard power component IDs, e.g. {@link BatteryConsumer#POWER_COMPONENT_CPU}, or
* a custom power component.
*/
- PowerComponent trackPowerComponent(int powerComponentId) {
+ PowerComponent trackPowerComponent(@BatteryConsumer.PowerComponentId int powerComponentId) {
PowerComponent builder = new PowerComponent(powerComponentId);
mPowerComponents.add(builder);
return builder;
}
/**
- * Creates a configuration for the specified power component, which is a subcomponent
- * of a different power component. The tracked states will be the same as the parent
- * component's.
+ * Creates a configuration for the specified power component, whose attribution calculation
+ * depends on a different power component. The tracked states will be the same as the
+ * "dependsOn" component's.
*/
- PowerComponent trackPowerComponent(int powerComponentId,
- int parentPowerComponentId) {
- PowerComponent parent = null;
+ PowerComponent trackPowerComponent(@BatteryConsumer.PowerComponentId int powerComponentId,
+ @BatteryConsumer.PowerComponentId int dependsOnPowerComponentId) {
+ PowerComponent dependsOnPowerComponent = null;
for (int i = 0; i < mPowerComponents.size(); i++) {
PowerComponent powerComponent = mPowerComponents.get(i);
- if (powerComponent.getPowerComponentId() == parentPowerComponentId) {
- parent = powerComponent;
+ if (powerComponent.getPowerComponentId() == dependsOnPowerComponentId) {
+ dependsOnPowerComponent = powerComponent;
break;
}
}
- if (parent == null) {
+ if (dependsOnPowerComponent == null) {
throw new IllegalArgumentException(
- "Parent component " + parentPowerComponentId + " is not configured");
+ "Required component " + dependsOnPowerComponentId + " is not configured");
}
PowerComponent powerComponent = trackPowerComponent(powerComponentId);
- powerComponent.mTrackedDeviceStates = parent.mTrackedDeviceStates;
- powerComponent.mTrackedUidStates = parent.mTrackedUidStates;
+ powerComponent.mTrackedDeviceStates = dependsOnPowerComponent.mTrackedDeviceStates;
+ powerComponent.mTrackedUidStates = dependsOnPowerComponent.mTrackedUidStates;
return powerComponent;
}
diff --git a/services/core/java/com/android/server/power/stats/processor/BasePowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/BasePowerStatsProcessor.java
new file mode 100644
index 000000000000..1459ff55aceb
--- /dev/null
+++ b/services/core/java/com/android/server/power/stats/processor/BasePowerStatsProcessor.java
@@ -0,0 +1,173 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.power.stats.processor;
+
+import static android.os.BatteryConsumer.PROCESS_STATE_UNSPECIFIED;
+
+import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_POWER;
+import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_PROCESS_STATE;
+import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_SCREEN;
+
+import android.os.BatteryConsumer;
+import android.os.PersistableBundle;
+import android.util.SparseLongArray;
+
+import com.android.internal.os.PowerStats;
+import com.android.server.power.stats.format.BasePowerStatsLayout;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.function.DoubleSupplier;
+
+class BasePowerStatsProcessor extends PowerStatsProcessor {
+ private final DoubleSupplier mBatteryCapacitySupplier;
+ private PowerEstimationPlan mPlan;
+ private long mStartTimestamp;
+ private final SparseLongArray mUidStartTimestamps = new SparseLongArray();
+ private static final BasePowerStatsLayout sStatsLayout = new BasePowerStatsLayout();
+ private final PowerStats.Descriptor mPowerStatsDescriptor;
+ private final long[] mTmpUidStatsArray;
+ private double mBatteryCapacityUah;
+ private int mBatteryLevel;
+ private int mBatteryChargeUah;
+ private long mBatteryLevelTimestampMs;
+ private int mCumulativeDischargePct;
+ private long mCumulativeDischargeUah;
+ private long mCumulativeDischargeDurationMs;
+
+ private static final int UNSPECIFIED = -1;
+
+ BasePowerStatsProcessor(DoubleSupplier batteryCapacitySupplier) {
+ mBatteryCapacitySupplier = batteryCapacitySupplier;
+ PersistableBundle extras = new PersistableBundle();
+ sStatsLayout.toExtras(extras);
+ mPowerStatsDescriptor = new PowerStats.Descriptor(BatteryConsumer.POWER_COMPONENT_BASE,
+ sStatsLayout.getDeviceStatsArrayLength(), null, 0,
+ sStatsLayout.getUidStatsArrayLength(), extras);
+ mTmpUidStatsArray = new long[sStatsLayout.getUidStatsArrayLength()];
+ }
+
+ @Override
+ void start(PowerComponentAggregatedPowerStats stats, long timestampMs) {
+ mStartTimestamp = timestampMs;
+ mUidStartTimestamps.clear();
+ stats.setPowerStatsDescriptor(mPowerStatsDescriptor);
+ mBatteryCapacityUah = mBatteryCapacitySupplier.getAsDouble() * 1000;
+ mBatteryLevel = UNSPECIFIED;
+ mBatteryChargeUah = UNSPECIFIED;
+ mBatteryLevelTimestampMs = UNSPECIFIED;
+ mCumulativeDischargeUah = 0;
+ mCumulativeDischargePct = 0;
+ mCumulativeDischargeDurationMs = 0;
+ }
+
+ @Override
+ public void noteBatteryLevel(int batteryLevel, int batteryChargeUah, long timestampMs) {
+ boolean discharging = false;
+ if (mBatteryLevel != UNSPECIFIED && batteryLevel < mBatteryLevel) {
+ mCumulativeDischargePct += mBatteryLevel - batteryLevel;
+ discharging = true;
+ }
+
+ if (mBatteryChargeUah != UNSPECIFIED && batteryChargeUah != 0
+ && batteryChargeUah < mBatteryChargeUah) {
+ mCumulativeDischargeUah += mBatteryChargeUah - batteryChargeUah;
+ discharging = true;
+ }
+
+ if (discharging) {
+ if (mBatteryLevelTimestampMs != UNSPECIFIED) {
+ mCumulativeDischargeDurationMs += timestampMs - mBatteryLevelTimestampMs;
+ }
+ }
+
+ mBatteryLevel = batteryLevel;
+ mBatteryChargeUah = batteryChargeUah;
+ mBatteryLevelTimestampMs = timestampMs;
+ }
+
+ @Override
+ public void setUidState(PowerComponentAggregatedPowerStats stats, int uid,
+ @AggregatedPowerStatsConfig.TrackedState int stateId, int state, long timestampMs) {
+ super.setUidState(stats, uid, stateId, state, timestampMs);
+ if (stateId == STATE_PROCESS_STATE && mUidStartTimestamps.indexOfKey(uid) < 0) {
+ mUidStartTimestamps.put(uid, timestampMs);
+ }
+ }
+
+ @Override
+ void finish(PowerComponentAggregatedPowerStats stats, long timestampMs) {
+ if (mPlan == null) {
+ mPlan = new PowerEstimationPlan(stats.getConfig());
+ }
+
+ PowerStats powerStats = new PowerStats(mPowerStatsDescriptor);
+ sStatsLayout.setUsageDuration(powerStats.stats, timestampMs - mStartTimestamp);
+
+ sStatsLayout.addBatteryDischargePercent(powerStats.stats, mCumulativeDischargePct);
+ if (mCumulativeDischargeUah != 0) {
+ sStatsLayout.addBatteryDischargeUah(powerStats.stats,
+ mCumulativeDischargeUah);
+ } else {
+ sStatsLayout.addBatteryDischargeUah(powerStats.stats,
+ (long) (mCumulativeDischargePct * mBatteryCapacityUah / 100.0));
+ }
+ sStatsLayout.addBatteryDischargeDuration(powerStats.stats, mCumulativeDischargeDurationMs);
+ mCumulativeDischargePct = 0;
+ mCumulativeDischargeUah = 0;
+ mCumulativeDischargeDurationMs = 0;
+
+ List<Integer> uids = new ArrayList<>();
+ stats.collectUids(uids);
+
+ if (!uids.isEmpty()) {
+ for (int i = uids.size() - 1; i >= 0; i--) {
+ Integer uid = uids.get(i);
+ long durationMs = timestampMs - mUidStartTimestamps.get(uid, mStartTimestamp);
+ mUidStartTimestamps.put(uid, timestampMs);
+
+ long[] uidStats = new long[sStatsLayout.getUidStatsArrayLength()];
+ sStatsLayout.setUidUsageDuration(uidStats, durationMs);
+ powerStats.uidStats.put(uid, uidStats);
+ }
+ }
+
+ stats.addPowerStats(powerStats, timestampMs);
+
+ for (int i = mPlan.uidStateEstimates.size() - 1; i >= 0; i--) {
+ UidStateEstimate uidStateEstimate = mPlan.uidStateEstimates.get(i);
+ int[] uidStateValues = new int[stats.getConfig().getUidStateConfig().length];
+ uidStateValues[STATE_PROCESS_STATE] = PROCESS_STATE_UNSPECIFIED;
+
+ for (int j = uids.size() - 1; j >= 0; j--) {
+ int uid = uids.get(j);
+ int[] stateValues = uidStateEstimate.combinedDeviceStateEstimate.stateValues;
+ uidStateValues[STATE_SCREEN] = stateValues[STATE_SCREEN];
+ uidStateValues[STATE_POWER] = stateValues[STATE_POWER];
+ // Erase usage duration for UNSPECIFIED proc state - the app was not running
+ if (stats.getUidStats(mTmpUidStatsArray, uid, uidStateValues)) {
+ if (sStatsLayout.getUidUsageDuration(mTmpUidStatsArray) != 0) {
+ sStatsLayout.setUidUsageDuration(mTmpUidStatsArray, 0);
+ stats.setUidStats(uid, uidStateValues, mTmpUidStatsArray);
+ }
+ }
+ }
+ }
+
+ mStartTimestamp = timestampMs;
+ }
+}
diff --git a/services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java
index 5f7a3dad99e8..17ceca6e3dc1 100644
--- a/services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java
@@ -16,6 +16,8 @@
package com.android.server.power.stats.processor;
+import android.annotation.Nullable;
+import android.os.BatteryConsumer;
import android.util.ArraySet;
import android.util.Log;
@@ -23,6 +25,7 @@ import com.android.internal.os.CpuScalingPolicies;
import com.android.internal.os.PowerProfile;
import com.android.internal.os.PowerStats;
import com.android.server.power.stats.format.CpuPowerStatsLayout;
+import com.android.server.power.stats.format.WakelockPowerStatsLayout;
import java.util.ArrayList;
import java.util.Arrays;
@@ -73,6 +76,11 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor {
// Temp array for retrieval of UID power stats, to avoid repeated allocations
private long[] mTmpUidStatsArray;
+ private PowerStats.Descriptor mWakelockDescriptor;
+ private WakelockPowerStatsLayout mWakelockPowerStatsLayout;
+ private long[] mTmpWakelockDeviceStats;
+ private long[] mTmpWakelockUidStats;
+
CpuPowerStatsProcessor(PowerProfile powerProfile, CpuScalingPolicies scalingPolicies) {
mCpuScalingPolicies = scalingPolicies;
mCpuScalingStepCount = scalingPolicies.getScalingStepCount();
@@ -109,6 +117,8 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor {
mTmpDeviceStatsArray = new long[descriptor.statsArrayLength];
mTmpUidStatsArray = new long[descriptor.uidStatsArrayLength];
+
+ mWakelockDescriptor = null;
}
/**
@@ -174,7 +184,9 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor {
}
estimatePowerByScalingStep(intermediates);
- estimatePowerByDeviceState(stats, intermediates);
+
+ PowerComponentAggregatedPowerStats wakelockStats = getWakelockStats(stats);
+ estimatePowerByDeviceState(stats, intermediates, wakelockStats);
combineDeviceStateEstimates();
ArrayList<Integer> uids = new ArrayList<>();
@@ -182,13 +194,45 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor {
if (!uids.isEmpty()) {
for (int uid : uids) {
for (int i = 0; i < mPlan.uidStateEstimates.size(); i++) {
- estimateUidPowerConsumption(stats, uid, mPlan.uidStateEstimates.get(i));
+ estimateUidPowerConsumption(stats, uid, mPlan.uidStateEstimates.get(i),
+ wakelockStats);
}
}
}
mPlan.resetIntermediates();
}
+ @Nullable
+ private PowerComponentAggregatedPowerStats getWakelockStats(
+ PowerComponentAggregatedPowerStats stats) {
+ // Wakelock power estimates are only relevant when the CPU power estimates are derived from
+ // EnergyConsumers.
+ if (mStatsLayout.getEnergyConsumerCount() == 0) {
+ return null;
+ }
+
+ PowerComponentAggregatedPowerStats wakelockStats =
+ stats.getAggregatedPowerStats().getPowerComponentStats(
+ BatteryConsumer.POWER_COMPONENT_WAKELOCK);
+ if (wakelockStats == null) {
+ return null;
+ }
+
+ PowerStats.Descriptor descriptor = wakelockStats.getPowerStatsDescriptor();
+ if (descriptor == null) {
+ return null;
+ }
+
+ if (mWakelockDescriptor == null || !mWakelockDescriptor.equals(descriptor)) {
+ mWakelockDescriptor = descriptor;
+ mWakelockPowerStatsLayout = new WakelockPowerStatsLayout(mWakelockDescriptor);
+ mTmpWakelockDeviceStats = new long[mWakelockDescriptor.statsArrayLength];
+ mTmpWakelockUidStats = new long[mWakelockDescriptor.uidStatsArrayLength];
+ }
+
+ return wakelockStats;
+ }
+
/*
* Populate data structures (two maps) needed to use power rail data, aka energy consumers,
* to attribute power usage to apps.
@@ -345,7 +389,8 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor {
}
private void estimatePowerByDeviceState(PowerComponentAggregatedPowerStats stats,
- Intermediates intermediates) {
+ Intermediates intermediates,
+ @Nullable PowerComponentAggregatedPowerStats wakelockStats) {
int cpuScalingStepCount = mStatsLayout.getCpuScalingStepCount();
int powerBracketCount = mStatsLayout.getCpuPowerBracketCount();
int[] scalingStepToBracketMap = mStatsLayout.getScalingStepToPowerBracketMap();
@@ -382,6 +427,15 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor {
for (int i = deviceStatsIntermediates.powerByBracket.length - 1; i >= 0; i--) {
power += deviceStatsIntermediates.powerByBracket[i];
}
+
+ if (wakelockStats != null) {
+ wakelockStats.getDeviceStats(mTmpWakelockDeviceStats,
+ deviceStateEstimation.stateValues);
+ double wakelockPowerEstimate = mWakelockPowerStatsLayout.getDevicePowerEstimate(
+ mTmpWakelockDeviceStats);
+ power = Math.max(0, power - wakelockPowerEstimate);
+ }
+
deviceStatsIntermediates.power = power;
mStatsLayout.setDevicePowerEstimate(mTmpDeviceStatsArray, power);
stats.setDeviceStats(deviceStateEstimation.stateValues, mTmpDeviceStatsArray);
@@ -454,7 +508,8 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor {
}
private void estimateUidPowerConsumption(PowerComponentAggregatedPowerStats stats, int uid,
- UidStateEstimate uidStateEstimate) {
+ UidStateEstimate uidStateEstimate,
+ @Nullable PowerComponentAggregatedPowerStats wakelockStats) {
CombinedDeviceStateEstimate combinedDeviceStateEstimate =
uidStateEstimate.combinedDeviceStateEstimate;
DeviceStatsIntermediates cdsIntermediates =
@@ -482,6 +537,14 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor {
/ cdsIntermediates.timeByBracket[bracket];
}
+ if (wakelockStats != null) {
+ wakelockStats.getUidStats(mTmpWakelockUidStats, uid,
+ proportionalEstimate.stateValues);
+ double wakelockPowerEstimate = mWakelockPowerStatsLayout.getUidPowerEstimate(
+ mTmpWakelockUidStats);
+ power = Math.max(0, power - wakelockPowerEstimate);
+ }
+
mStatsLayout.setUidPowerEstimate(mTmpUidStatsArray, power);
stats.setUidStats(uid, proportionalEstimate.stateValues, mTmpUidStatsArray);
}
diff --git a/services/core/java/com/android/server/power/stats/processor/MultiStatePowerAttributor.java b/services/core/java/com/android/server/power/stats/processor/MultiStatePowerAttributor.java
index 2ba4a5254c5a..25d50f7a045b 100644
--- a/services/core/java/com/android/server/power/stats/processor/MultiStatePowerAttributor.java
+++ b/services/core/java/com/android/server/power/stats/processor/MultiStatePowerAttributor.java
@@ -35,6 +35,7 @@ import com.android.server.power.stats.PowerStatsStore;
import com.android.server.power.stats.PowerStatsUidResolver;
import java.util.List;
+import java.util.function.DoubleSupplier;
public class MultiStatePowerAttributor implements PowerAttributor {
private static final String TAG = "MultiStatePowerAttributor";
@@ -48,10 +49,11 @@ public class MultiStatePowerAttributor implements PowerAttributor {
// attribution isolates UIDs are supposed to be long forgotten.
public MultiStatePowerAttributor(Context context, PowerStatsStore powerStatsStore,
@NonNull PowerProfile powerProfile, @NonNull CpuScalingPolicies cpuScalingPolicies,
+ @NonNull DoubleSupplier batteryCapacitySupplier,
@NonNull PowerStatsUidResolver powerStatsUidResolver) {
this(powerStatsStore, new PowerStatsAggregator(
createAggregatedPowerStatsConfig(context, powerProfile, cpuScalingPolicies,
- powerStatsUidResolver)));
+ batteryCapacitySupplier, powerStatsUidResolver)));
}
@VisibleForTesting
@@ -62,13 +64,14 @@ public class MultiStatePowerAttributor implements PowerAttributor {
mPowerStatsStore.addSectionReader(
new AggregatedPowerStatsSection.Reader(mPowerStatsAggregator.getConfig()));
mPowerStatsExporter = new PowerStatsExporter(mPowerStatsStore, mPowerStatsAggregator);
+ setPowerComponentSupported(BatteryConsumer.POWER_COMPONENT_BASE, true);
}
private static AggregatedPowerStatsConfig createAggregatedPowerStatsConfig(Context context,
PowerProfile powerProfile, CpuScalingPolicies cpuScalingPolicies,
- PowerStatsUidResolver powerStatsUidResolver) {
+ DoubleSupplier batteryCapacitySupplier, PowerStatsUidResolver powerStatsUidResolver) {
AggregatedPowerStatsConfig config = new AggregatedPowerStatsConfig();
- config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_CPU)
+ config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_BASE)
.trackDeviceStates(
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN)
@@ -76,6 +79,21 @@ public class MultiStatePowerAttributor implements PowerAttributor {
AggregatedPowerStatsConfig.STATE_POWER,
AggregatedPowerStatsConfig.STATE_SCREEN,
AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
+ .setProcessorSupplier(() -> new BasePowerStatsProcessor(batteryCapacitySupplier));
+
+ config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_WAKELOCK)
+ .trackDeviceStates(
+ AggregatedPowerStatsConfig.STATE_POWER,
+ AggregatedPowerStatsConfig.STATE_SCREEN)
+ .trackUidStates(
+ AggregatedPowerStatsConfig.STATE_POWER,
+ AggregatedPowerStatsConfig.STATE_SCREEN,
+ AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
+ .setProcessorSupplier(
+ () -> new WakelockPowerStatsProcessor(powerProfile));
+
+ config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_CPU,
+ BatteryConsumer.POWER_COMPONENT_WAKELOCK)
.setProcessorSupplier(
() -> new CpuPowerStatsProcessor(powerProfile, cpuScalingPolicies));
diff --git a/services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java b/services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java
index d04c5baf921f..d4f8fd92fc6c 100644
--- a/services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java
+++ b/services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java
@@ -125,6 +125,10 @@ class PowerComponentAggregatedPowerStats {
mProcessor.noteStateChange(this, item);
}
+ public void noteBatteryLevel(int batteryLevel, int batteryChargeUah, long timestampMs) {
+ mProcessor.noteBatteryLevel(batteryLevel, batteryChargeUah, timestampMs);
+ }
+
void setState(@AggregatedPowerStatsConfig.TrackedState int stateId, int state,
long timestampMs) {
if (mDeviceStats == null) {
@@ -163,6 +167,11 @@ class PowerComponentAggregatedPowerStats {
void setUidState(int uid, @AggregatedPowerStatsConfig.TrackedState int stateId, int state,
long timestampMs) {
+ mProcessor.setUidState(this, uid, stateId, state, timestampMs);
+ }
+
+ void setProcessedUidState(int uid, @AggregatedPowerStatsConfig.TrackedState int stateId,
+ int state, long timestampMs) {
if (!mUidStateConfig[stateId].isTracked()) {
return;
}
diff --git a/services/core/java/com/android/server/power/stats/processor/PowerStatsAggregator.java b/services/core/java/com/android/server/power/stats/processor/PowerStatsAggregator.java
index 32c1056908d5..dcdd3bd8b3fa 100644
--- a/services/core/java/com/android/server/power/stats/processor/PowerStatsAggregator.java
+++ b/services/core/java/com/android/server/power/stats/processor/PowerStatsAggregator.java
@@ -53,7 +53,11 @@ public class PowerStatsAggregator {
return mAggregatedPowerStatsConfig;
}
- void setPowerComponentEnabled(int powerComponentId, boolean enabled) {
+ /**
+ * Marks the power component as enabled for PowerStats aggregation
+ */
+ @VisibleForTesting
+ public void setPowerComponentEnabled(int powerComponentId, boolean enabled) {
synchronized (this) {
if (mStats != null) {
mStats = null;
@@ -81,23 +85,23 @@ public class PowerStatsAggregator {
mStats = new AggregatedPowerStats(mAggregatedPowerStatsConfig, mEnabledComponents);
}
- mStats.start(startTimeMs);
-
- boolean clockUpdateAdded = false;
+ boolean startedSession = false;
long baseTime = startTimeMs > 0 ? startTimeMs : UNINITIALIZED;
long lastTime = 0;
int lastStates = 0xFFFFFFFF;
int lastStates2 = 0xFFFFFFFF;
+ int lastBatteryLevel = 0;
try (BatteryStatsHistoryIterator iterator = history.iterate(startTimeMs, endTimeMs)) {
while (iterator.hasNext()) {
BatteryStats.HistoryItem item = iterator.next();
- if (!clockUpdateAdded) {
+ if (!startedSession) {
+ mStats.start(item.time);
mStats.addClockUpdate(item.time, item.currentTime);
if (baseTime == UNINITIALIZED) {
baseTime = item.time;
}
- clockUpdateAdded = true;
+ startedSession = true;
} else if (item.cmd == BatteryStats.HistoryItem.CMD_CURRENT_TIME
|| item.cmd == BatteryStats.HistoryItem.CMD_RESET) {
mStats.addClockUpdate(item.time, item.currentTime);
@@ -105,6 +109,12 @@ public class PowerStatsAggregator {
lastTime = item.time;
+ if (item.batteryLevel != lastBatteryLevel) {
+ mStats.noteBatteryLevel(item.batteryLevel, item.batteryChargeUah,
+ item.time);
+ lastBatteryLevel = item.batteryLevel;
+ }
+
int batteryState =
(item.states & BatteryStats.HistoryItem.STATE_BATTERY_PLUGGED_FLAG) != 0
? AggregatedPowerStatsConfig.POWER_STATE_OTHER
diff --git a/services/core/java/com/android/server/power/stats/processor/PowerStatsExporter.java b/services/core/java/com/android/server/power/stats/processor/PowerStatsExporter.java
index fab87d6684e1..c7ad5641806c 100644
--- a/services/core/java/com/android/server/power/stats/processor/PowerStatsExporter.java
+++ b/services/core/java/com/android/server/power/stats/processor/PowerStatsExporter.java
@@ -28,6 +28,7 @@ import com.android.internal.os.BatteryStatsHistory;
import com.android.internal.os.PowerStats;
import com.android.server.power.stats.PowerStatsSpan;
import com.android.server.power.stats.PowerStatsStore;
+import com.android.server.power.stats.format.BasePowerStatsLayout;
import com.android.server.power.stats.format.PowerStatsLayout;
import java.util.ArrayList;
@@ -45,6 +46,13 @@ class PowerStatsExporter {
private final PowerStatsAggregator mPowerStatsAggregator;
private final long mBatterySessionTimeSpanSlackMillis;
private static final long BATTERY_SESSION_TIME_SPAN_SLACK_MILLIS = TimeUnit.MINUTES.toMillis(2);
+ private static final BasePowerStatsLayout sBasePowerStatsLayout = new BasePowerStatsLayout();
+
+ private static class BatteryLevelInfo {
+ public double batteryDischargePct;
+ public double batteryDischargeMah;
+ public long batteryDischargeDurationMs;
+ }
PowerStatsExporter(PowerStatsStore powerStatsStore, PowerStatsAggregator powerStatsAggregator) {
this(powerStatsStore, powerStatsAggregator, BATTERY_SESSION_TIME_SPAN_SLACK_MILLIS);
@@ -145,6 +153,8 @@ class PowerStatsExporter {
PowerStatsLayout layout = new PowerStatsLayout(descriptor);
long[] deviceStats = new long[descriptor.statsArrayLength];
+ BatteryLevelInfo batteryLevelInfo = new BatteryLevelInfo();
+
for (int screenState = 0; screenState < BatteryConsumer.SCREEN_STATE_COUNT; screenState++) {
if (batteryUsageStatsBuilder.isScreenStateDataNeeded()) {
if (screenState == BatteryConsumer.SCREEN_STATE_UNSPECIFIED) {
@@ -159,12 +169,12 @@ class PowerStatsExporter {
if (powerState != BatteryConsumer.POWER_STATE_UNSPECIFIED) {
populateAggregatedBatteryConsumer(batteryUsageStatsBuilder,
powerComponentStats,
- layout, deviceStats, screenState, powerState);
+ layout, deviceStats, batteryLevelInfo, screenState, powerState);
}
} else if (powerState == BatteryConsumer.POWER_STATE_BATTERY) {
populateAggregatedBatteryConsumer(batteryUsageStatsBuilder,
powerComponentStats,
- layout, deviceStats, screenState, powerState);
+ layout, deviceStats, batteryLevelInfo, screenState, powerState);
}
}
}
@@ -172,14 +182,20 @@ class PowerStatsExporter {
populateBatteryConsumers(batteryUsageStatsBuilder,
powerComponentStats, layout);
}
+
+ populateBatteryLevelInfo(batteryUsageStatsBuilder, batteryLevelInfo);
}
private void populateAggregatedBatteryConsumer(
BatteryUsageStats.Builder batteryUsageStatsBuilder,
PowerComponentAggregatedPowerStats powerComponentStats, PowerStatsLayout layout,
- long[] deviceStats, @BatteryConsumer.ScreenState int screenState,
+ long[] deviceStats, BatteryLevelInfo batteryLevelInfo,
+ @BatteryConsumer.ScreenState int screenState,
@BatteryConsumer.PowerState int powerState) {
int powerComponentId = powerComponentStats.powerComponentId;
+ boolean hasBatteryLevelProperties = powerComponentId == BatteryConsumer.POWER_COMPONENT_BASE
+ && powerState == BatteryConsumer.POWER_STATE_BATTERY;
+
double[] totalPower = new double[1];
MultiStateStats.States.forEachTrackedStateCombination(
powerComponentStats.getConfig().getDeviceStateConfig(),
@@ -193,6 +209,10 @@ class PowerStatsExporter {
}
totalPower[0] += layout.getDevicePowerEstimate(deviceStats);
+
+ if (hasBatteryLevelProperties) {
+ gatherBatteryLevelInfo(batteryLevelInfo, deviceStats);
+ }
});
AggregateBatteryConsumer.Builder deviceScope =
@@ -208,6 +228,26 @@ class PowerStatsExporter {
BatteryConsumer.POWER_MODEL_UNDEFINED);
}
+ private void gatherBatteryLevelInfo(BatteryLevelInfo batteryLevelInfo, long[] deviceStats) {
+ batteryLevelInfo.batteryDischargePct +=
+ sBasePowerStatsLayout.getBatteryDischargePercent(deviceStats);
+ batteryLevelInfo.batteryDischargeMah +=
+ sBasePowerStatsLayout.getBatteryDischargeUah(deviceStats) / 1000.0;
+ batteryLevelInfo.batteryDischargeDurationMs +=
+ sBasePowerStatsLayout.getBatteryDischargeDuration(deviceStats);
+ }
+
+ private void populateBatteryLevelInfo(BatteryUsageStats.Builder builder,
+ BatteryLevelInfo batteryLevelInfo) {
+ builder.setDischargePercentage((int) Math.round(batteryLevelInfo.batteryDischargePct))
+ .setDischargedPowerRange(batteryLevelInfo.batteryDischargeMah,
+ batteryLevelInfo.batteryDischargeMah)
+ .setDischargeDurationMs(batteryLevelInfo.batteryDischargeDurationMs)
+ .getAggregateBatteryConsumerBuilder(
+ BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_DEVICE)
+ .setConsumedPower(batteryLevelInfo.batteryDischargeMah);
+ }
+
private void populateBatteryConsumers(
BatteryUsageStats.Builder batteryUsageStatsBuilder,
PowerComponentAggregatedPowerStats powerComponentStats,
@@ -216,9 +256,16 @@ class PowerStatsExporter {
PowerStats.Descriptor descriptor = powerComponentStats.getPowerStatsDescriptor();
long[] uidStats = new long[descriptor.uidStatsArrayLength];
- boolean breakDownByProcState = batteryUsageStatsBuilder.isProcessStateDataNeeded()
- && powerComponent
- .getUidStateConfig()[AggregatedPowerStatsConfig.STATE_PROCESS_STATE].isTracked();
+ boolean breakDownByProcState;
+ if (powerComponent.getPowerComponentId() == BatteryConsumer.POWER_COMPONENT_BASE) {
+ breakDownByProcState = true;
+ } else if (batteryUsageStatsBuilder.isProcessStateDataNeeded()) {
+ breakDownByProcState = powerComponent
+ .getUidStateConfig()[AggregatedPowerStatsConfig.STATE_PROCESS_STATE]
+ .isTracked();
+ } else {
+ breakDownByProcState = false;
+ }
ArrayList<Integer> uids = new ArrayList<>();
powerComponentStats.collectUids(uids);
@@ -263,12 +310,15 @@ class PowerStatsExporter {
powerComponentStats.powerComponentId;
double[] powerByProcState =
new double[breakDownByProcState ? BatteryConsumer.PROCESS_STATE_COUNT : 1];
+ long[] durationByProcState =
+ new long[breakDownByProcState ? BatteryConsumer.PROCESS_STATE_COUNT : 1];
double powerAllApps = 0;
for (int uid : uids) {
UidBatteryConsumer.Builder builder =
batteryUsageStatsBuilder.getOrCreateUidBatteryConsumerBuilder(uid);
Arrays.fill(powerByProcState, 0);
+ Arrays.fill(durationByProcState, 0);
MultiStateStats.States.forEachTrackedStateCombination(
powerComponent.getUidStateConfig(),
@@ -282,6 +332,7 @@ class PowerStatsExporter {
}
double power = layout.getUidPowerEstimate(uidStats);
+ long duration = layout.getUidUsageDuration(uidStats);
if (breakDownByProcState) {
int procState = states[AggregatedPowerStatsConfig.STATE_PROCESS_STATE];
// There is a difference in how PowerComponentAggregatedPowerStats
@@ -296,8 +347,10 @@ class PowerStatsExporter {
procState = BatteryConsumer.PROCESS_STATE_BACKGROUND;
}
powerByProcState[procState] += power;
+ durationByProcState[procState] += duration;
}
powerByProcState[BatteryConsumer.PROCESS_STATE_UNSPECIFIED] += power;
+ durationByProcState[BatteryConsumer.PROCESS_STATE_UNSPECIFIED] += duration;
});
int resultScreenState = batteryUsageStatsBuilder.isScreenStateDataNeeded()
@@ -306,12 +359,16 @@ class PowerStatsExporter {
? powerState : BatteryConsumer.POWER_STATE_UNSPECIFIED;
for (int procState = 0; procState < powerByProcState.length; procState++) {
double power = powerByProcState[procState];
- if (power == 0) {
+ long duration = durationByProcState[procState];
+ if (power == 0 && duration == 0) {
continue;
}
BatteryConsumer.Key key = builder.getKey(powerComponentId, procState,
resultScreenState, resultPowerState);
- builder.addConsumedPower(key, power, BatteryConsumer.POWER_MODEL_UNDEFINED);
+ if (key != null) {
+ builder.addConsumedPower(key, power, BatteryConsumer.POWER_MODEL_UNDEFINED);
+ builder.addUsageDurationMillis(key, duration);
+ }
}
if (resultScreenState != BatteryConsumer.SCREEN_STATE_UNSPECIFIED
diff --git a/services/core/java/com/android/server/power/stats/processor/PowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/PowerStatsProcessor.java
index 838fc628ce95..c1a5414404bb 100644
--- a/services/core/java/com/android/server/power/stats/processor/PowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/processor/PowerStatsProcessor.java
@@ -55,6 +55,14 @@ abstract class PowerStatsProcessor {
BatteryStats.HistoryItem item) {
}
+ public void noteBatteryLevel(int batteryLevel, int batteryChargeUah, long timestampMs) {
+ }
+
+ public void setUidState(PowerComponentAggregatedPowerStats stats, int uid,
+ @AggregatedPowerStatsConfig.TrackedState int stateId, int state, long timestampMs) {
+ stats.setProcessedUidState(uid, stateId, state, timestampMs);
+ }
+
void addPowerStats(PowerComponentAggregatedPowerStats stats, PowerStats powerStats,
long timestampMs) {
stats.addProcessedPowerStats(powerStats, timestampMs);
diff --git a/services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java
index 67013ea65aa3..0bb028bce5af 100644
--- a/services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java
+++ b/services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java
@@ -146,7 +146,10 @@ class SensorPowerStatsProcessor extends PowerStatsProcessor {
return;
}
- if (item.eventTag == null || item.eventTag.string == null
+ if (((item.eventCode & BatteryStats.HistoryItem.EVENT_TYPE_MASK)
+ != BatteryStats.HistoryItem.EVENT_STATE_CHANGE)
+ || item.eventTag == null
+ || item.eventTag.string == null
|| !item.eventTag.string.startsWith(SENSOR_EVENT_TAG_PREFIX)) {
return;
}
diff --git a/services/core/java/com/android/server/power/stats/processor/WakelockPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/WakelockPowerStatsProcessor.java
new file mode 100644
index 000000000000..0cb4991c1673
--- /dev/null
+++ b/services/core/java/com/android/server/power/stats/processor/WakelockPowerStatsProcessor.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.server.power.stats.processor;
+
+import com.android.internal.os.PowerProfile;
+import com.android.internal.os.PowerStats;
+import com.android.server.power.stats.UsageBasedPowerEstimator;
+import com.android.server.power.stats.format.WakelockPowerStatsLayout;
+
+class WakelockPowerStatsProcessor extends PowerStatsProcessor {
+ private static final WakelockPowerStatsLayout sStatsLayout = new WakelockPowerStatsLayout();
+ private final UsageBasedPowerEstimator mPowerEstimator;
+
+ WakelockPowerStatsProcessor(PowerProfile powerProfile) {
+ mPowerEstimator = new UsageBasedPowerEstimator(
+ powerProfile.getAveragePower(PowerProfile.POWER_CPU_IDLE));
+ }
+
+ @Override
+ void addPowerStats(PowerComponentAggregatedPowerStats stats, PowerStats powerStats,
+ long timestampMs) {
+ long durationMs = sStatsLayout.getUsageDuration(powerStats.stats);
+ if (durationMs == 0) {
+ return;
+ }
+
+ double power = mPowerEstimator.calculatePower(durationMs);
+ sStatsLayout.setDevicePowerEstimate(powerStats.stats, power);
+
+ long totalDuration = 0;
+ for (int i = powerStats.uidStats.size() - 1; i >= 0; i--) {
+ totalDuration += sStatsLayout.getUidUsageDuration(powerStats.uidStats.valueAt(i));
+ }
+
+ if (totalDuration != 0) {
+ for (int i = powerStats.uidStats.size() - 1; i >= 0; i--) {
+ long[] uidStats = powerStats.uidStats.valueAt(i);
+ sStatsLayout.setUidPowerEstimate(uidStats,
+ power * sStatsLayout.getUidUsageDuration(uidStats) / totalDuration);
+ }
+ }
+
+ super.addPowerStats(stats, powerStats, timestampMs);
+ }
+
+ @Override
+ void finish(PowerComponentAggregatedPowerStats stats, long timestampMs) {
+ // Nothing to do. Power attribution has already been done in `addPowerStats`
+ }
+}
diff --git a/services/core/java/com/android/server/security/AttestationVerificationManagerService.java b/services/core/java/com/android/server/security/AttestationVerificationManagerService.java
index 55f85ea27c82..22a359bced86 100644
--- a/services/core/java/com/android/server/security/AttestationVerificationManagerService.java
+++ b/services/core/java/com/android/server/security/AttestationVerificationManagerService.java
@@ -17,10 +17,10 @@
package com.android.server.security;
import static android.Manifest.permission.USE_ATTESTATION_VERIFICATION_SERVICE;
+import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_CERTS;
+import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_UNSUPPORTED_PROFILE;
import static android.security.attestationverification.AttestationVerificationManager.PROFILE_PEER_DEVICE;
import static android.security.attestationverification.AttestationVerificationManager.PROFILE_SELF_TRUSTED;
-import static android.security.attestationverification.AttestationVerificationManager.RESULT_FAILURE;
-import static android.security.attestationverification.AttestationVerificationManager.RESULT_UNKNOWN;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -88,8 +88,8 @@ public class AttestationVerificationManagerService extends SystemService {
public void verifyToken(VerificationToken token, ParcelDuration parcelDuration,
AndroidFuture resultCallback) throws RemoteException {
enforceUsePermission();
- // TODO(b/201696614): Implement
- resultCallback.complete(RESULT_UNKNOWN);
+
+ throw new UnsupportedOperationException();
}
private void enforceUsePermission() {
@@ -123,9 +123,9 @@ public class AttestationVerificationManagerService extends SystemService {
AttestationProfile profile, int localBindingType, Bundle requirements,
byte[] attestation, AndroidFuture<IVerificationResult> resultCallback) {
IVerificationResult result = new IVerificationResult();
- // TODO(b/201696614): Implement
result.token = null;
- switch (profile.getAttestationProfileId()) {
+ int profileId = profile.getAttestationProfileId();
+ switch (profileId) {
case PROFILE_SELF_TRUSTED:
Slog.d(TAG, "Verifying Self Trusted profile.");
try {
@@ -133,7 +133,7 @@ public class AttestationVerificationManagerService extends SystemService {
AttestationVerificationSelfTrustedVerifierForTesting.getInstance()
.verifyAttestation(localBindingType, requirements, attestation);
} catch (Throwable t) {
- result.resultCode = RESULT_FAILURE;
+ result.resultCode = FLAG_FAILURE_CERTS;
}
break;
case PROFILE_PEER_DEVICE:
@@ -142,8 +142,8 @@ public class AttestationVerificationManagerService extends SystemService {
localBindingType, requirements, attestation);
break;
default:
- Slog.d(TAG, "No profile found, defaulting.");
- result.resultCode = RESULT_UNKNOWN;
+ Slog.e(TAG, "Profile [" + profileId + "] is not supported.");
+ result.resultCode = FLAG_FAILURE_UNSUPPORTED_PROFILE;
}
resultCallback.complete(result);
}
diff --git a/services/core/java/com/android/server/security/AttestationVerificationPeerDeviceVerifier.java b/services/core/java/com/android/server/security/AttestationVerificationPeerDeviceVerifier.java
index 41e3d00f3924..dc1f93664f79 100644
--- a/services/core/java/com/android/server/security/AttestationVerificationPeerDeviceVerifier.java
+++ b/services/core/java/com/android/server/security/AttestationVerificationPeerDeviceVerifier.java
@@ -16,11 +16,15 @@
package com.android.server.security;
+import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_BOOT_STATE;
+import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_KEYSTORE_REQUIREMENTS;
+import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_CERTS;
+import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS;
+import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_PATCH_LEVEL_DIFF;
+import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_UNKNOWN;
import static android.security.attestationverification.AttestationVerificationManager.PARAM_CHALLENGE;
import static android.security.attestationverification.AttestationVerificationManager.PARAM_MAX_PATCH_LEVEL_DIFF_MONTHS;
import static android.security.attestationverification.AttestationVerificationManager.PARAM_PUBLIC_KEY;
-import static android.security.attestationverification.AttestationVerificationManager.RESULT_FAILURE;
-import static android.security.attestationverification.AttestationVerificationManager.RESULT_SUCCESS;
import static android.security.attestationverification.AttestationVerificationManager.TYPE_CHALLENGE;
import static android.security.attestationverification.AttestationVerificationManager.TYPE_PUBLIC_KEY;
import static android.security.attestationverification.AttestationVerificationManager.localBindingTypeToString;
@@ -35,10 +39,8 @@ import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
-import android.security.attestationverification.AttestationVerificationManager;
import android.security.attestationverification.AttestationVerificationManager.LocalBindingType;
import android.util.IndentingPrintWriter;
-import android.util.Log;
import android.util.Slog;
import com.android.internal.R;
@@ -100,7 +102,6 @@ import java.util.Set;
*/
class AttestationVerificationPeerDeviceVerifier {
private static final String TAG = "AVF";
- private static final boolean DEBUG = Build.IS_DEBUGGABLE && Log.isLoggable(TAG, Log.VERBOSE);
private static final int MAX_PATCH_AGE_MONTHS = 12;
/**
@@ -188,32 +189,24 @@ class AttestationVerificationPeerDeviceVerifier {
@NonNull byte[] attestation,
@NonNull MyDumpData dumpData) {
if (mCertificateFactory == null) {
- debugVerboseLog("Unable to access CertificateFactory");
- return RESULT_FAILURE;
+ Slog.e(TAG, "Unable to access CertificateFactory");
+ return FLAG_FAILURE_CERTS;
}
dumpData.mCertificationFactoryAvailable = true;
if (mCertPathValidator == null) {
- debugVerboseLog("Unable to access CertPathValidator");
- return RESULT_FAILURE;
+ Slog.e(TAG, "Unable to access CertPathValidator");
+ return FLAG_FAILURE_CERTS;
}
dumpData.mCertPathValidatorAvailable = true;
-
- // Check if the provided local binding type is supported and if the provided requirements
- // "match" the binding type.
- if (!validateAttestationParameters(localBindingType, requirements)) {
- return RESULT_FAILURE;
- }
- dumpData.mAttestationParametersOk = true;
-
// To provide the most information in the dump logs, we track the failure state but keep
// verifying the rest of the attestation. For code safety, there are no transitions past
- // here to set failed = false
- boolean failed = false;
+ // here to set result = 0.
+ int result = 0;
try {
- // First: parse and validate the certificate chain.
+ // 1. parse and validate the certificate chain.
final List<X509Certificate> certificateChain = getCertificates(attestation);
// (returns void, but throws CertificateException and other similar Exceptions)
validateCertificateChain(certificateChain);
@@ -222,33 +215,38 @@ class AttestationVerificationPeerDeviceVerifier {
final var leafCertificate = certificateChain.get(0);
final var attestationExtension = fromCertificate(leafCertificate);
- // Second: verify if the attestation satisfies the "peer device" profile.
- if (!checkAttestationForPeerDeviceProfile(requirements, attestationExtension,
- dumpData)) {
- failed = true;
+ // 2. Check if the provided local binding type is supported and if the provided
+ // requirements "match" the binding type.
+ if (!validateAttestationParameters(localBindingType, requirements)) {
+ return FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS;
}
+ dumpData.mAttestationParametersOk = true;
- // Third: check if the attestation satisfies local binding requirements.
+ // 3. check if the attestation satisfies local binding requirements.
if (!checkLocalBindingRequirements(
leafCertificate, attestationExtension, localBindingType, requirements,
dumpData)) {
- failed = true;
+ result |= FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS;
}
+
+ // 4. verify if the attestation satisfies the "peer device" profile.
+ result |= checkAttestationForPeerDeviceProfile(requirements, attestationExtension,
+ dumpData);
} catch (CertificateException | CertPathValidatorException
| InvalidAlgorithmParameterException | IOException e) {
- // Catch all non-RuntimeExpceptions (all of these are thrown by either getCertificates()
+ // Catch all non-RuntimeExceptions (all of these are thrown by either getCertificates()
// or validateCertificateChain() or
// AndroidKeystoreAttestationVerificationAttributes.fromCertificate())
- debugVerboseLog("Unable to parse/validate Android Attestation certificate(s)", e);
- failed = true;
+ Slog.e(TAG, "Unable to parse/validate Android Attestation certificate(s)", e);
+ result = FLAG_FAILURE_CERTS;
} catch (RuntimeException e) {
- // Catch everyting else (RuntimeExpcetions), since we don't want to throw any exceptions
- // out of this class/method.
- debugVerboseLog("Unexpected error", e);
- failed = true;
+ // Catch everything else (RuntimeExceptions), since we don't want to throw any
+ // exceptions out of this class/method.
+ Slog.e(TAG, "Unexpected error", e);
+ result = FLAG_FAILURE_UNKNOWN;
}
- return failed ? RESULT_FAILURE : RESULT_SUCCESS;
+ return result;
}
@NonNull
@@ -270,22 +268,22 @@ class AttestationVerificationPeerDeviceVerifier {
private boolean validateAttestationParameters(
@LocalBindingType int localBindingType, @NonNull Bundle requirements) {
if (localBindingType != TYPE_PUBLIC_KEY && localBindingType != TYPE_CHALLENGE) {
- debugVerboseLog("Binding type is not supported: " + localBindingType);
+ Slog.e(TAG, "Binding type is not supported: " + localBindingType);
return false;
}
if (requirements.size() < 1) {
- debugVerboseLog("At least 1 requirement is required.");
+ Slog.e(TAG, "At least 1 requirement is required.");
return false;
}
if (localBindingType == TYPE_PUBLIC_KEY && !requirements.containsKey(PARAM_PUBLIC_KEY)) {
- debugVerboseLog("Requirements does not contain key: " + PARAM_PUBLIC_KEY);
+ Slog.e(TAG, "Requirements does not contain key: " + PARAM_PUBLIC_KEY);
return false;
}
if (localBindingType == TYPE_CHALLENGE && !requirements.containsKey(PARAM_CHALLENGE)) {
- debugVerboseLog("Requirements does not contain key: " + PARAM_CHALLENGE);
+ Slog.e(TAG, "Requirements does not contain key: " + PARAM_CHALLENGE);
return false;
}
@@ -296,7 +294,7 @@ class AttestationVerificationPeerDeviceVerifier {
throws CertificateException, CertPathValidatorException,
InvalidAlgorithmParameterException {
if (certificates.size() < 2) {
- debugVerboseLog("Certificate chain less than 2 in size.");
+ Slog.e(TAG, "Certificate chain less than 2 in size.");
throw new CertificateException("Certificate chain less than 2 in size.");
}
@@ -355,7 +353,7 @@ class AttestationVerificationPeerDeviceVerifier {
final boolean publicKeyMatches = checkPublicKey(
leafCertificate, requirements.getByteArray(PARAM_PUBLIC_KEY));
if (!publicKeyMatches) {
- debugVerboseLog(
+ Slog.e(TAG,
"Provided public key does not match leaf certificate public key.");
return false;
}
@@ -366,7 +364,7 @@ class AttestationVerificationPeerDeviceVerifier {
final boolean attestationChallengeMatches = checkAttestationChallenge(
attestationAttributes, requirements.getByteArray(PARAM_CHALLENGE));
if (!attestationChallengeMatches) {
- debugVerboseLog(
+ Slog.e(TAG,
"Provided challenge does not match leaf certificate challenge.");
return false;
}
@@ -386,7 +384,7 @@ class AttestationVerificationPeerDeviceVerifier {
final boolean ownedBySystem = checkOwnedBySystem(
leafCertificate, attestationAttributes);
if (!ownedBySystem) {
- debugVerboseLog("Certificate public key is not owned by the AndroidSystem.");
+ Slog.e(TAG, "Certificate public key is not owned by the AndroidSystem.");
return false;
}
dumpData.mSystemOwned = true;
@@ -401,67 +399,67 @@ class AttestationVerificationPeerDeviceVerifier {
return true;
}
- private boolean checkAttestationForPeerDeviceProfile(
+ private int checkAttestationForPeerDeviceProfile(
@NonNull Bundle requirements,
@NonNull AndroidKeystoreAttestationVerificationAttributes attestationAttributes,
MyDumpData dumpData) {
- boolean result = true;
+ int result = 0;
// Checks for support of Keymaster 4.
if (attestationAttributes.getAttestationVersion() < 3) {
- debugVerboseLog("Attestation version is not at least 3 (Keymaster 4).");
- result = false;
+ Slog.e(TAG, "Attestation version is not at least 3 (Keymaster 4).");
+ result |= FLAG_FAILURE_KEYSTORE_REQUIREMENTS;
} else {
dumpData.mAttestationVersionAtLeast3 = true;
}
// Checks for support of Keymaster 4.
if (attestationAttributes.getKeymasterVersion() < 4) {
- debugVerboseLog("Keymaster version is not at least 4.");
- result = false;
+ Slog.e(TAG, "Keymaster version is not at least 4.");
+ result |= FLAG_FAILURE_KEYSTORE_REQUIREMENTS;
} else {
dumpData.mKeymasterVersionAtLeast4 = true;
}
// First two characters are Android OS version.
if (attestationAttributes.getKeyOsVersion() < 100000) {
- debugVerboseLog("Android OS version is not 10+.");
- result = false;
+ Slog.e(TAG, "Android OS version is not 10+.");
+ result |= FLAG_FAILURE_KEYSTORE_REQUIREMENTS;
} else {
dumpData.mOsVersionAtLeast10 = true;
}
if (!attestationAttributes.isAttestationHardwareBacked()) {
- debugVerboseLog("Key is not HW backed.");
- result = false;
+ Slog.e(TAG, "Key is not HW backed.");
+ result |= FLAG_FAILURE_KEYSTORE_REQUIREMENTS;
} else {
dumpData.mKeyHwBacked = true;
}
if (!attestationAttributes.isKeymasterHardwareBacked()) {
- debugVerboseLog("Keymaster is not HW backed.");
- result = false;
+ Slog.e(TAG, "Keymaster is not HW backed.");
+ result |= FLAG_FAILURE_KEYSTORE_REQUIREMENTS;
} else {
dumpData.mKeymasterHwBacked = true;
}
if (attestationAttributes.getVerifiedBootState() != VERIFIED) {
- debugVerboseLog("Boot state not Verified.");
- result = false;
+ Slog.e(TAG, "Boot state not Verified.");
+ result |= FLAG_FAILURE_BOOT_STATE;
} else {
dumpData.mBootStateIsVerified = true;
}
try {
if (!attestationAttributes.isVerifiedBootLocked()) {
- debugVerboseLog("Verified boot state is not locked.");
- result = false;
+ Slog.e(TAG, "Verified boot state is not locked.");
+ result |= FLAG_FAILURE_BOOT_STATE;
} else {
dumpData.mVerifiedBootStateLocked = true;
}
} catch (IllegalStateException e) {
- debugVerboseLog("VerifiedBootLocked is not set.", e);
- result = false;
+ Slog.e(TAG, "VerifiedBootLocked is not set.", e);
+ result = FLAG_FAILURE_BOOT_STATE;
}
int maxPatchLevelDiffMonths = requirements.getInt(PARAM_MAX_PATCH_LEVEL_DIFF_MONTHS,
@@ -470,8 +468,8 @@ class AttestationVerificationPeerDeviceVerifier {
// Patch level integer YYYYMM is expected to be within maxPatchLevelDiffMonths of today.
if (!isValidPatchLevel(attestationAttributes.getKeyOsPatchLevel(),
maxPatchLevelDiffMonths)) {
- debugVerboseLog("OS patch level is not within valid range.");
- result = false;
+ Slog.e(TAG, "OS patch level is not within valid range.");
+ result |= FLAG_FAILURE_PATCH_LEVEL_DIFF;
} else {
dumpData.mOsPatchLevelInRange = true;
}
@@ -479,24 +477,24 @@ class AttestationVerificationPeerDeviceVerifier {
// Patch level integer YYYYMMDD is expected to be within maxPatchLevelDiffMonths of today.
if (!isValidPatchLevel(attestationAttributes.getKeyBootPatchLevel(),
maxPatchLevelDiffMonths)) {
- debugVerboseLog("Boot patch level is not within valid range.");
- result = false;
+ Slog.e(TAG, "Boot patch level is not within valid range.");
+ result |= FLAG_FAILURE_PATCH_LEVEL_DIFF;
} else {
dumpData.mKeyBootPatchLevelInRange = true;
}
if (!isValidPatchLevel(attestationAttributes.getKeyVendorPatchLevel(),
maxPatchLevelDiffMonths)) {
- debugVerboseLog("Vendor patch level is not within valid range.");
- result = false;
+ Slog.e(TAG, "Vendor patch level is not within valid range.");
+ result |= FLAG_FAILURE_PATCH_LEVEL_DIFF;
} else {
dumpData.mKeyVendorPatchLevelInRange = true;
}
if (!isValidPatchLevel(attestationAttributes.getKeyBootPatchLevel(),
maxPatchLevelDiffMonths)) {
- debugVerboseLog("Boot patch level is not within valid range.");
- result = false;
+ Slog.e(TAG, "Boot patch level is not within valid range.");
+ result |= FLAG_FAILURE_PATCH_LEVEL_DIFF;
} else {
dumpData.mKeyBootPatchLevelInRange = true;
}
@@ -522,7 +520,7 @@ class AttestationVerificationPeerDeviceVerifier {
final Set<String> ownerPackages =
attestationAttributes.getApplicationPackageNameVersion().keySet();
if (!ANDROID_SYSTEM_PACKAGE_NAME_SET.equals(ownerPackages)) {
- debugVerboseLog("Owner is not system, packages=" + ownerPackages);
+ Slog.e(TAG, "Owner is not system, packages=" + ownerPackages);
return false;
}
@@ -548,7 +546,7 @@ class AttestationVerificationPeerDeviceVerifier {
localPatchDate = LocalDate.parse(Build.VERSION.SECURITY_PATCH);
}
} catch (Throwable t) {
- debugVerboseLog("Build.VERSION.SECURITY_PATCH: "
+ Slog.e(TAG, "Build.VERSION.SECURITY_PATCH: "
+ Build.VERSION.SECURITY_PATCH + " is not in format YYYY-MM-DD");
return false;
}
@@ -563,7 +561,7 @@ class AttestationVerificationPeerDeviceVerifier {
// Convert remote patch dates to LocalDate.
String remoteDeviceDateStr = String.valueOf(patchLevel);
if (remoteDeviceDateStr.length() != 6 && remoteDeviceDateStr.length() != 8) {
- debugVerboseLog("Patch level is not in format YYYYMM or YYYYMMDD");
+ Slog.e(TAG, "Patch level is not in format YYYYMM or YYYYMMDD");
return false;
}
@@ -666,18 +664,6 @@ class AttestationVerificationPeerDeviceVerifier {
}
}
- private static void debugVerboseLog(String str, Throwable t) {
- if (DEBUG) {
- Slog.v(TAG, str, t);
- }
- }
-
- private static void debugVerboseLog(String str) {
- if (DEBUG) {
- Slog.v(TAG, str);
- }
- }
-
/* Mutable data class for tracking dump data from verifications. */
private static class MyDumpData extends AttestationVerificationManagerService.DumpData {
@@ -717,9 +703,7 @@ class AttestationVerificationPeerDeviceVerifier {
@SuppressLint("WrongConstant")
@Override
public void dumpTo(IndentingPrintWriter writer) {
- writer.println(
- "Result: " + AttestationVerificationManager.verificationResultCodeToString(
- mResult));
+ writer.println("Result: " + mResult);
if (!mCertificationFactoryAvailable) {
writer.println("Certificate Factory Unavailable");
return;
diff --git a/services/core/java/com/android/server/security/AttestationVerificationSelfTrustedVerifierForTesting.java b/services/core/java/com/android/server/security/AttestationVerificationSelfTrustedVerifierForTesting.java
index 58df2bd982dc..5039f6f42ac3 100644
--- a/services/core/java/com/android/server/security/AttestationVerificationSelfTrustedVerifierForTesting.java
+++ b/services/core/java/com/android/server/security/AttestationVerificationSelfTrustedVerifierForTesting.java
@@ -16,17 +16,15 @@
package com.android.server.security;
+import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_CERTS;
+import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS;
import static android.security.attestationverification.AttestationVerificationManager.PARAM_CHALLENGE;
-import static android.security.attestationverification.AttestationVerificationManager.RESULT_FAILURE;
-import static android.security.attestationverification.AttestationVerificationManager.RESULT_SUCCESS;
import static android.security.attestationverification.AttestationVerificationManager.TYPE_CHALLENGE;
import android.annotation.NonNull;
-import android.os.Build;
import android.os.Bundle;
import android.security.keystore.KeyGenParameterSpec;
import android.security.keystore.KeyProperties;
-import android.util.Log;
import android.util.Slog;
import com.android.internal.org.bouncycastle.asn1.ASN1InputStream;
@@ -64,7 +62,6 @@ import java.util.Set;
*/
class AttestationVerificationSelfTrustedVerifierForTesting {
private static final String TAG = "AVF";
- private static final boolean DEBUG = Build.IS_DEBUGGABLE && Log.isLoggable(TAG, Log.VERBOSE);
// The OID for the extension Android Keymint puts into device-generated certificates.
private static final String ANDROID_KEYMINT_KEY_DESCRIPTION_EXTENSION_OID =
@@ -99,18 +96,6 @@ class AttestationVerificationSelfTrustedVerifierForTesting {
return sAttestationVerificationSelfTrustedVerifier;
}
- private static void debugVerboseLog(String str, Throwable t) {
- if (DEBUG) {
- Slog.v(TAG, str, t);
- }
- }
-
- private static void debugVerboseLog(String str) {
- if (DEBUG) {
- Slog.v(TAG, str);
- }
- }
-
private AttestationVerificationSelfTrustedVerifierForTesting() throws Exception {
mCertificateFactory = CertificateFactory.getInstance("X.509");
mCertPathValidator = CertPathValidator.getInstance("PKIX");
@@ -142,23 +127,42 @@ class AttestationVerificationSelfTrustedVerifierForTesting {
certificates.add((X509Certificate) mCertificateFactory.generateCertificate(bis));
}
} catch (CertificateException e) {
- debugVerboseLog("Unable to parse certificates from attestation", e);
- return RESULT_FAILURE;
+ Slog.e("Unable to parse certificates from attestation", e.getLocalizedMessage());
+ return FLAG_FAILURE_CERTS;
}
- if (localBindingType == TYPE_CHALLENGE
- && validateRequirements(requirements)
- && checkLeafChallenge(requirements, certificates)
- && verifyCertificateChain(certificates)) {
- return RESULT_SUCCESS;
+ int result = 0;
+
+ if (localBindingType != TYPE_CHALLENGE
+ || !validateRequirements(requirements)) {
+ Slog.e(TAG, "Local binding requirements verification failure." + localBindingType);
+ return FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS;
+ }
+
+ // Verify challenge
+ byte[] challenge;
+ try {
+ challenge = getChallengeFromCert(certificates.get(0));
+ } catch (Throwable t) {
+ Slog.e("Unable to parse challenge from certificate.", t.getLocalizedMessage());
+ result |= FLAG_FAILURE_CERTS;
+ return result;
+ }
+ if (!Arrays.equals(requirements.getByteArray(PARAM_CHALLENGE), challenge)) {
+ Slog.e(TAG, "Self-Trusted validation failed; challenge mismatch.");
+ result |= FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS;
}
- return RESULT_FAILURE;
+ if (!verifyCertificateChain(certificates)) {
+ result |= FLAG_FAILURE_CERTS;
+ }
+
+ return result;
}
private boolean verifyCertificateChain(List<X509Certificate> certificates) {
if (certificates.size() < 2) {
- debugVerboseLog("Certificate chain less than 2 in size.");
+ Slog.e(TAG, "Certificate chain less than 2 in size.");
return false;
}
@@ -170,7 +174,7 @@ class AttestationVerificationSelfTrustedVerifierForTesting {
validationParams.setRevocationEnabled(false);
mCertPathValidator.validate(certificatePath, validationParams);
} catch (Throwable t) {
- debugVerboseLog("Invalid certificate chain", t);
+ Slog.e(TAG, "Invalid certificate chain", t);
return false;
}
@@ -183,34 +187,16 @@ class AttestationVerificationSelfTrustedVerifierForTesting {
private boolean validateRequirements(Bundle requirements) {
if (requirements.size() != 1) {
- debugVerboseLog("Requirements does not contain exactly 1 key.");
+ Slog.e(TAG, "Requirements does not contain exactly 1 key.");
return false;
}
if (!requirements.containsKey(PARAM_CHALLENGE)) {
- debugVerboseLog("Requirements does not contain key: " + PARAM_CHALLENGE);
+ Slog.e(TAG, "Requirements does not contain key: " + PARAM_CHALLENGE);
return false;
}
return true;
}
- private boolean checkLeafChallenge(Bundle requirements, List<X509Certificate> certificates) {
- // Verify challenge
- byte[] challenge;
- try {
- challenge = getChallengeFromCert(certificates.get(0));
- } catch (Throwable t) {
- debugVerboseLog("Unable to parse challenge from certificate.", t);
- return false;
- }
-
- if (Arrays.equals(requirements.getByteArray(PARAM_CHALLENGE), challenge)) {
- return true;
- } else {
- debugVerboseLog("Self-Trusted validation failed; challenge mismatch.");
- return false;
- }
- }
-
private byte[] getChallengeFromCert(@NonNull X509Certificate x509Certificate)
throws CertificateEncodingException, IOException {
Certificate certificate = Certificate.getInstance(
diff --git a/services/core/java/com/android/server/wm/ActivityClientController.java b/services/core/java/com/android/server/wm/ActivityClientController.java
index c1e859ddcccf..517f631a0c1c 100644
--- a/services/core/java/com/android/server/wm/ActivityClientController.java
+++ b/services/core/java/com/android/server/wm/ActivityClientController.java
@@ -42,8 +42,8 @@ import static android.view.WindowManager.TRANSIT_CHANGE;
import static android.view.WindowManager.TRANSIT_TO_BACK;
import static android.view.WindowManager.TRANSIT_TO_FRONT;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_IMMERSIVE;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IMMERSIVE;
import static com.android.server.wm.ActivityRecord.State.DESTROYED;
import static com.android.server.wm.ActivityRecord.State.DESTROYING;
import static com.android.server.wm.ActivityRecord.State.PAUSING;
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index ca93075f2925..5372abe970c7 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -127,19 +127,19 @@ import static android.window.TransitionInfo.FLAGS_IS_OCCLUDED_NO_ANIMATION;
import static android.window.TransitionInfo.FLAG_IS_OCCLUDED;
import static android.window.TransitionInfo.FLAG_STARTING_WINDOW_TRANSFER_RECIPIENT;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ADD_REMOVE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS_ANIM;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONTAINERS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STARTING_WINDOW;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STATES;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_SWITCH;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ADD_REMOVE;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS_ANIM;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONTAINERS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS_LIGHT;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STARTING_WINDOW;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SWITCH;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__LETTERBOXED_FOR_ASPECT_RATIO;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__LETTERBOXED_FOR_FIXED_ORIENTATION;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__LETTERBOXED_FOR_SIZE_COMPAT_MODE;
diff --git a/services/core/java/com/android/server/wm/ActivityRefresher.java b/services/core/java/com/android/server/wm/ActivityRefresher.java
index dcc325eae702..5243a1069bed 100644
--- a/services/core/java/com/android/server/wm/ActivityRefresher.java
+++ b/services/core/java/com/android/server/wm/ActivityRefresher.java
@@ -18,7 +18,7 @@ package com.android.server.wm;
import static android.app.servertransaction.ActivityLifecycleItem.ON_PAUSE;
import static android.app.servertransaction.ActivityLifecycleItem.ON_STOP;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STATES;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES;
import android.annotation.NonNull;
import android.app.servertransaction.RefreshCallbackItem;
diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java
index 2ba300a71e38..49380d4b8797 100644
--- a/services/core/java/com/android/server/wm/ActivityStarter.java
+++ b/services/core/java/com/android/server/wm/ActivityStarter.java
@@ -60,8 +60,8 @@ import static android.view.WindowManager.TRANSIT_OPEN;
import static android.view.WindowManager.TRANSIT_TO_FRONT;
import static android.window.TaskFragmentOperation.OP_TYPE_START_ACTIVITY_IN_TASK_FRAGMENT;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TASKS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS;
import static com.android.server.pm.PackageArchiver.isArchivingEnabled;
import static com.android.server.wm.ActivityRecord.State.RESUMED;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_PERMISSIONS_REVIEW;
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index de95d1bfb5c3..dc960a02e6e5 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -71,12 +71,12 @@ import static android.view.WindowManager.TRANSIT_TO_FRONT;
import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_TO_LAUNCHER_CLEAR_SNAPSHOT;
import static android.window.TransitionInfo.FLAG_IN_TASK_WITH_EMBEDDED_ACTIVITY;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_DREAM;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_IMMERSIVE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_LOCKTASK;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TASKS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_DREAM;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IMMERSIVE;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_LOCKTASK;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS;
import static com.android.sdksandbox.flags.Flags.sandboxActivitySdkBasedContext;
import static com.android.server.am.ActivityManagerService.STOCK_PM_FLAGS;
import static com.android.server.am.ActivityManagerServiceDumpActivitiesProto.ROOT_WINDOW_CONTAINER;
diff --git a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
index 9a3ad2d85de6..4f71719006f5 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
@@ -52,8 +52,8 @@ import static android.view.Display.INVALID_DISPLAY;
import static android.view.WindowManager.TRANSIT_TO_BACK;
import static android.view.WindowManager.TRANSIT_TO_FRONT;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STATES;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TASKS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS;
import static com.android.server.wm.ActivityRecord.State.PAUSED;
import static com.android.server.wm.ActivityRecord.State.PAUSING;
import static com.android.server.wm.ActivityRecord.State.RESTARTING_PROCESS;
diff --git a/services/core/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java
index 90d33fbef748..932f26857105 100644
--- a/services/core/java/com/android/server/wm/AppTransition.java
+++ b/services/core/java/com/android/server/wm/AppTransition.java
@@ -88,9 +88,9 @@ import static com.android.internal.R.styleable.WindowAnimation_wallpaperIntraOpe
import static com.android.internal.R.styleable.WindowAnimation_wallpaperIntraOpenExitAnimation;
import static com.android.internal.R.styleable.WindowAnimation_wallpaperOpenEnterAnimation;
import static com.android.internal.R.styleable.WindowAnimation_wallpaperOpenExitAnimation;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS_ANIM;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS_ANIM;
import static com.android.server.wm.AppTransitionProto.APP_TRANSITION_STATE;
import static com.android.server.wm.AppTransitionProto.LAST_USED_APP_TRANSITION;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
diff --git a/services/core/java/com/android/server/wm/AppTransitionController.java b/services/core/java/com/android/server/wm/AppTransitionController.java
index ab02d49e5f96..741eefae4462 100644
--- a/services/core/java/com/android/server/wm/AppTransitionController.java
+++ b/services/core/java/com/android/server/wm/AppTransitionController.java
@@ -57,8 +57,8 @@ import static android.view.WindowManager.TRANSIT_RELAUNCH;
import static android.view.WindowManager.TRANSIT_TO_BACK;
import static android.view.WindowManager.TRANSIT_TO_FRONT;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS_ANIM;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS_ANIM;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_CONFIG;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT;
import static com.android.server.wm.ActivityTaskManagerInternal.APP_TRANSITION_SNAPSHOT;
diff --git a/services/core/java/com/android/server/wm/BLASTSyncEngine.java b/services/core/java/com/android/server/wm/BLASTSyncEngine.java
index 4554b210e3fd..7deb6a8232be 100644
--- a/services/core/java/com/android/server/wm/BLASTSyncEngine.java
+++ b/services/core/java/com/android/server/wm/BLASTSyncEngine.java
@@ -18,7 +18,7 @@ package com.android.server.wm;
import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_SYNC_ENGINE;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SYNC_ENGINE;
import static com.android.server.wm.WindowState.BLAST_TIMEOUT_DURATION;
import android.annotation.NonNull;
diff --git a/services/core/java/com/android/server/wm/BackNavigationController.java b/services/core/java/com/android/server/wm/BackNavigationController.java
index dd86a149d0a5..94cd2e64b057 100644
--- a/services/core/java/com/android/server/wm/BackNavigationController.java
+++ b/services/core/java/com/android/server/wm/BackNavigationController.java
@@ -27,7 +27,7 @@ import static android.view.WindowManager.TRANSIT_OLD_NONE;
import static android.view.WindowManager.TRANSIT_PREPARE_BACK_NAVIGATION;
import static android.view.WindowManager.TRANSIT_TO_BACK;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_BACK_PREVIEW;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_BACK_PREVIEW;
import static com.android.server.wm.BackNavigationProto.ANIMATION_IN_PROGRESS;
import static com.android.server.wm.BackNavigationProto.ANIMATION_RUNNING;
import static com.android.server.wm.BackNavigationProto.LAST_BACK_TYPE;
diff --git a/services/core/java/com/android/server/wm/BlackFrame.java b/services/core/java/com/android/server/wm/BlackFrame.java
index ba4ab7df8270..7d6cf0024b75 100644
--- a/services/core/java/com/android/server/wm/BlackFrame.java
+++ b/services/core/java/com/android/server/wm/BlackFrame.java
@@ -16,7 +16,7 @@
package com.android.server.wm;
-import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_SURFACE_ALLOC;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_SURFACE_ALLOC;
import android.graphics.Rect;
import android.view.Surface.OutOfResourcesException;
diff --git a/services/core/java/com/android/server/wm/CameraCompatFreeformPolicy.java b/services/core/java/com/android/server/wm/CameraCompatFreeformPolicy.java
index 290e71d5b37d..4f0cbf9ca6bd 100644
--- a/services/core/java/com/android/server/wm/CameraCompatFreeformPolicy.java
+++ b/services/core/java/com/android/server/wm/CameraCompatFreeformPolicy.java
@@ -42,7 +42,7 @@ import android.view.Surface;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.protolog.ProtoLog;
-import com.android.internal.protolog.ProtoLogGroup;
+import com.android.internal.protolog.WmProtoLogGroups;
import com.android.window.flags.Flags;
/**
@@ -159,7 +159,7 @@ final class CameraCompatFreeformPolicy implements CameraStateMonitor.CameraCompa
: null;
if (topActivity != null) {
if (isActivityForCameraIdRefreshing(topActivity, cameraId)) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_STATES,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_STATES,
"Display id=%d is notified that Camera %s is closed but activity is"
+ " still refreshing. Rescheduling an update.",
mDisplayContent.mDisplayId, cameraId);
diff --git a/services/core/java/com/android/server/wm/CameraStateMonitor.java b/services/core/java/com/android/server/wm/CameraStateMonitor.java
index 8bfef6d5d218..3b6e30ab2a6d 100644
--- a/services/core/java/com/android/server/wm/CameraStateMonitor.java
+++ b/services/core/java/com/android/server/wm/CameraStateMonitor.java
@@ -15,7 +15,7 @@
*/
package com.android.server.wm;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STATES;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
diff --git a/services/core/java/com/android/server/wm/CompatModePackages.java b/services/core/java/com/android/server/wm/CompatModePackages.java
index 44202a2ae58e..a63ae2e1b67e 100644
--- a/services/core/java/com/android/server/wm/CompatModePackages.java
+++ b/services/core/java/com/android/server/wm/CompatModePackages.java
@@ -16,7 +16,7 @@
package com.android.server.wm;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_ATM;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.wm.CompatScaleProvider.COMPAT_SCALE_MODE_SYSTEM_FIRST;
diff --git a/services/core/java/com/android/server/wm/ContentRecorder.java b/services/core/java/com/android/server/wm/ContentRecorder.java
index 7e7073c4a52c..bc33946ef618 100644
--- a/services/core/java/com/android/server/wm/ContentRecorder.java
+++ b/services/core/java/com/android/server/wm/ContentRecorder.java
@@ -23,7 +23,7 @@ import static android.view.ContentRecordingSession.RECORD_CONTENT_DISPLAY;
import static android.view.ContentRecordingSession.RECORD_CONTENT_TASK;
import static android.view.ViewProtoEnums.DISPLAY_STATE_OFF;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONTENT_RECORDING;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONTENT_RECORDING;
import android.annotation.NonNull;
import android.annotation.Nullable;
diff --git a/services/core/java/com/android/server/wm/ContentRecordingController.java b/services/core/java/com/android/server/wm/ContentRecordingController.java
index 283f819fc6ae..dd7675fb6442 100644
--- a/services/core/java/com/android/server/wm/ContentRecordingController.java
+++ b/services/core/java/com/android/server/wm/ContentRecordingController.java
@@ -16,7 +16,7 @@
package com.android.server.wm;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONTENT_RECORDING;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONTENT_RECORDING;
import android.annotation.NonNull;
import android.annotation.Nullable;
diff --git a/services/core/java/com/android/server/wm/DeferredDisplayUpdater.java b/services/core/java/com/android/server/wm/DeferredDisplayUpdater.java
index 3a2cffbe1d85..3dc035e62e58 100644
--- a/services/core/java/com/android/server/wm/DeferredDisplayUpdater.java
+++ b/services/core/java/com/android/server/wm/DeferredDisplayUpdater.java
@@ -18,7 +18,7 @@ package com.android.server.wm;
import static android.view.WindowManager.TRANSIT_CHANGE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS;
import static com.android.server.wm.ActivityTaskManagerService.POWER_MODE_REASON_CHANGE_DISPLAY;
import static com.android.server.wm.utils.DisplayInfoOverrides.WM_OVERRIDE_FIELDS;
import static com.android.server.wm.utils.DisplayInfoOverrides.copyDisplayInfoFields;
diff --git a/services/core/java/com/android/server/wm/Dimmer.java b/services/core/java/com/android/server/wm/Dimmer.java
index c5643ea54623..a74b0063588a 100644
--- a/services/core/java/com/android/server/wm/Dimmer.java
+++ b/services/core/java/com/android/server/wm/Dimmer.java
@@ -16,7 +16,7 @@
package com.android.server.wm;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_DIMMER;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_DIMMER;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
diff --git a/services/core/java/com/android/server/wm/DimmerAnimationHelper.java b/services/core/java/com/android/server/wm/DimmerAnimationHelper.java
index bc188959164d..298edaeaa6d2 100644
--- a/services/core/java/com/android/server/wm/DimmerAnimationHelper.java
+++ b/services/core/java/com/android/server/wm/DimmerAnimationHelper.java
@@ -16,7 +16,7 @@
package com.android.server.wm;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_DIMMER;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_DIMMER;
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;
diff --git a/services/core/java/com/android/server/wm/DisplayArea.java b/services/core/java/com/android/server/wm/DisplayArea.java
index ca5485e7c570..0416f74aa488 100644
--- a/services/core/java/com/android/server/wm/DisplayArea.java
+++ b/services/core/java/com/android/server/wm/DisplayArea.java
@@ -24,7 +24,7 @@ import static android.view.WindowManagerPolicyConstants.APPLICATION_LAYER;
import static android.window.DisplayAreaOrganizer.FEATURE_UNDEFINED;
import static android.window.DisplayAreaOrganizer.FEATURE_WINDOW_TOKENS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION;
import static com.android.internal.util.Preconditions.checkState;
import static com.android.server.wm.DisplayAreaProto.FEATURE_ID;
import static com.android.server.wm.DisplayAreaProto.IS_IGNORING_ORIENTATION_REQUEST;
diff --git a/services/core/java/com/android/server/wm/DisplayAreaOrganizerController.java b/services/core/java/com/android/server/wm/DisplayAreaOrganizerController.java
index 8f471d797904..afeeaf707a18 100644
--- a/services/core/java/com/android/server/wm/DisplayAreaOrganizerController.java
+++ b/services/core/java/com/android/server/wm/DisplayAreaOrganizerController.java
@@ -18,7 +18,7 @@ package com.android.server.wm;
import static android.window.DisplayAreaOrganizer.FEATURE_RUNTIME_TASK_CONTAINER_FIRST;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_ORGANIZER;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_ORGANIZER;
import static com.android.server.wm.DisplayArea.Type.ANY;
import android.annotation.Nullable;
diff --git a/services/core/java/com/android/server/wm/DisplayAreaPolicyBuilder.java b/services/core/java/com/android/server/wm/DisplayAreaPolicyBuilder.java
index bb596cc829c9..8a2b8b65a935 100644
--- a/services/core/java/com/android/server/wm/DisplayAreaPolicyBuilder.java
+++ b/services/core/java/com/android/server/wm/DisplayAreaPolicyBuilder.java
@@ -29,7 +29,7 @@ import static android.window.DisplayAreaOrganizer.FEATURE_WINDOWED_MAGNIFICATION
import static android.window.DisplayAreaOrganizer.FEATURE_WINDOWING_LAYER;
import static android.window.DisplayAreaOrganizer.KEY_ROOT_DISPLAY_AREA_ID;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_ORGANIZER;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_ORGANIZER;
import android.annotation.NonNull;
import android.annotation.Nullable;
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index 21212e573ffa..d6ded51f538b 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -88,17 +88,17 @@ import static android.view.inputmethod.ImeTracker.DEBUG_IME_VISIBILITY;
import static android.window.DisplayAreaOrganizer.FEATURE_IME;
import static android.window.DisplayAreaOrganizer.FEATURE_ROOT;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_BOOT;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONTENT_RECORDING;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_IME;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_KEEP_SCREEN_ON;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_SCREEN_ON;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WALLPAPER;
-import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_BOOT;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONTENT_RECORDING;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS_LIGHT;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IME;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_KEEP_SCREEN_ON;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SCREEN_ON;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WALLPAPER;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS;
import static com.android.internal.util.LatencyTracker.ACTION_ROTATE_SCREEN;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_CONFIG;
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java
index 1ac0bb0e41c6..c062f5adf755 100644
--- a/services/core/java/com/android/server/wm/DisplayPolicy.java
+++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
@@ -71,8 +71,8 @@ import static android.view.WindowManagerPolicyConstants.NAV_BAR_LEFT;
import static android.view.WindowManagerPolicyConstants.NAV_BAR_RIGHT;
import static android.window.DisplayAreaOrganizer.FEATURE_UNDEFINED;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_SCREEN_ON;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SCREEN_ON;
import static com.android.server.policy.PhoneWindowManager.TOAST_WINDOW_TIMEOUT;
import static com.android.server.policy.WindowManagerPolicy.TRANSIT_PREVIEW_DONE;
import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_ABSENT;
@@ -1073,7 +1073,8 @@ public class DisplayPolicy {
final String systemUiPermission =
mService.isCallerVirtualDeviceOwner(mDisplayContent.getDisplayId(), callingUid)
- // Allow virtual device owners to add system windows on their displays.
+ && mDisplayContent.isTrusted()
+ // Virtual device owners can add system windows on their trusted displays.
? android.Manifest.permission.CREATE_VIRTUAL_DEVICE
: android.Manifest.permission.STATUS_BAR_SERVICE;
diff --git a/services/core/java/com/android/server/wm/DisplayRotation.java b/services/core/java/com/android/server/wm/DisplayRotation.java
index 8c06cfecdc40..4cf1fb400fe7 100644
--- a/services/core/java/com/android/server/wm/DisplayRotation.java
+++ b/services/core/java/com/android/server/wm/DisplayRotation.java
@@ -27,8 +27,8 @@ import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_JUMPCUT
import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_ROTATE;
import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_SEAMLESS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION;
import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_OPEN;
import static com.android.server.wm.DisplayRotationProto.FIXED_TO_USER_ROTATION_MODE;
import static com.android.server.wm.DisplayRotationProto.FROZEN_TO_USER_ROTATION;
diff --git a/services/core/java/com/android/server/wm/DisplayRotationCompatPolicy.java b/services/core/java/com/android/server/wm/DisplayRotationCompatPolicy.java
index 90f8b4900c3f..0ccc0fe80b52 100644
--- a/services/core/java/com/android/server/wm/DisplayRotationCompatPolicy.java
+++ b/services/core/java/com/android/server/wm/DisplayRotationCompatPolicy.java
@@ -29,7 +29,7 @@ import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
import static android.content.res.Configuration.ORIENTATION_UNDEFINED;
import static android.view.Display.TYPE_INTERNAL;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION;
import static com.android.server.wm.AppCompatConfiguration.MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO;
import static com.android.server.wm.DisplayRotationReversionController.REVERSION_TYPE_CAMERA_COMPAT;
diff --git a/services/core/java/com/android/server/wm/DisplayRotationReversionController.java b/services/core/java/com/android/server/wm/DisplayRotationReversionController.java
index b955738e37b2..930d4b186cc1 100644
--- a/services/core/java/com/android/server/wm/DisplayRotationReversionController.java
+++ b/services/core/java/com/android/server/wm/DisplayRotationReversionController.java
@@ -19,7 +19,7 @@ package com.android.server.wm;
import static android.app.WindowConfiguration.ROTATION_UNDEFINED;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION;
import static com.android.server.policy.WindowManagerPolicy.USER_ROTATION_LOCKED;
import android.annotation.Nullable;
diff --git a/services/core/java/com/android/server/wm/DragState.java b/services/core/java/com/android/server/wm/DragState.java
index b09d63fea97f..2a5a3a5638d2 100644
--- a/services/core/java/com/android/server/wm/DragState.java
+++ b/services/core/java/com/android/server/wm/DragState.java
@@ -24,8 +24,8 @@ import static android.os.InputConstants.DEFAULT_DISPATCHING_TIMEOUT_MILLIS;
import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_INTERCEPT_GLOBAL_DRAG_AND_DROP;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION;
-import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS;
import static com.android.server.wm.DragDropController.MSG_ANIMATION_END;
import static com.android.server.wm.DragDropController.MSG_DRAG_END_TIMEOUT;
import static com.android.server.wm.DragDropController.MSG_REMOVE_DRAG_SURFACE_TIMEOUT;
diff --git a/services/core/java/com/android/server/wm/EmbeddedWindowController.java b/services/core/java/com/android/server/wm/EmbeddedWindowController.java
index e007b1d07b34..5ac4cf8b6483 100644
--- a/services/core/java/com/android/server/wm/EmbeddedWindowController.java
+++ b/services/core/java/com/android/server/wm/EmbeddedWindowController.java
@@ -17,7 +17,7 @@
package com.android.server.wm;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_EMBEDDED_WINDOWS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_EMBEDDED_WINDOWS;
import static com.android.server.wm.IdentifierProto.HASH_CODE;
import static com.android.server.wm.IdentifierProto.TITLE;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
diff --git a/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java b/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
index 8cc2fd1bb88d..6a23aaa663ef 100644
--- a/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
+++ b/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
@@ -19,7 +19,7 @@ package com.android.server.wm;
import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
import static android.view.InsetsSource.ID_IME;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_IME;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IME;
import static com.android.server.wm.DisplayContent.IME_TARGET_CONTROL;
import static com.android.server.wm.DisplayContent.IME_TARGET_LAYERING;
import static com.android.server.wm.ImeInsetsSourceProviderProto.IME_TARGET_FROM_IME;
diff --git a/services/core/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java
index d7dc4597c508..16e88a3c01ea 100644
--- a/services/core/java/com/android/server/wm/InputMonitor.java
+++ b/services/core/java/com/android/server/wm/InputMonitor.java
@@ -41,7 +41,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_ADDITIONAL
import static android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION;
import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS_LIGHT;
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_INPUT;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
import static com.android.server.wm.WindowManagerService.LOGTAG_INPUT_FOCUS;
diff --git a/services/core/java/com/android/server/wm/InsetsSourceProvider.java b/services/core/java/com/android/server/wm/InsetsSourceProvider.java
index 9e6468020fc0..8f28f59ba5cc 100644
--- a/services/core/java/com/android/server/wm/InsetsSourceProvider.java
+++ b/services/core/java/com/android/server/wm/InsetsSourceProvider.java
@@ -16,7 +16,7 @@
package com.android.server.wm;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_INSETS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_INSETS;
import static com.android.server.wm.InsetsSourceProviderProto.CAPTURED_LEASH;
import static com.android.server.wm.InsetsSourceProviderProto.CLIENT_VISIBLE;
import static com.android.server.wm.InsetsSourceProviderProto.CONTROL;
diff --git a/services/core/java/com/android/server/wm/InsetsStateController.java b/services/core/java/com/android/server/wm/InsetsStateController.java
index 03fadba30ae4..ede587c9e64b 100644
--- a/services/core/java/com/android/server/wm/InsetsStateController.java
+++ b/services/core/java/com/android/server/wm/InsetsStateController.java
@@ -24,7 +24,7 @@ import static android.view.WindowInsets.Type.ime;
import static android.view.WindowInsets.Type.mandatorySystemGestures;
import static android.view.WindowInsets.Type.systemGestures;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_IME;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IME;
import static com.android.server.wm.DisplayContentProto.IME_INSETS_SOURCE_PROVIDER;
import static com.android.server.wm.DisplayContentProto.INSETS_SOURCE_PROVIDERS;
diff --git a/services/core/java/com/android/server/wm/LockTaskController.java b/services/core/java/com/android/server/wm/LockTaskController.java
index e65396e00b20..06049530da18 100644
--- a/services/core/java/com/android/server/wm/LockTaskController.java
+++ b/services/core/java/com/android/server/wm/LockTaskController.java
@@ -32,7 +32,7 @@ import static android.os.UserHandle.USER_ALL;
import static android.os.UserHandle.USER_CURRENT;
import static android.telecom.TelecomManager.EMERGENCY_DIALER_COMPONENT;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_LOCKTASK;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_LOCKTASK;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_LOCKTASK;
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/NonAppWindowAnimationAdapter.java b/services/core/java/com/android/server/wm/NonAppWindowAnimationAdapter.java
index 403d3bd5c008..91598c5cc27a 100644
--- a/services/core/java/com/android/server/wm/NonAppWindowAnimationAdapter.java
+++ b/services/core/java/com/android/server/wm/NonAppWindowAnimationAdapter.java
@@ -22,7 +22,7 @@ import static android.view.WindowManager.TRANSIT_OLD_TASK_OPEN;
import static android.view.WindowManager.TRANSIT_OLD_TASK_TO_FRONT;
import static android.view.WindowManager.TRANSIT_OLD_WALLPAPER_CLOSE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_REMOTE_ANIMATIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_REMOTE_ANIMATIONS;
import static com.android.server.wm.AnimationAdapterProto.REMOTE;
import static com.android.server.wm.RemoteAnimationAdapterWrapperProto.TARGET;
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION;
diff --git a/services/core/java/com/android/server/wm/RecentTasks.java b/services/core/java/com/android/server/wm/RecentTasks.java
index bf623b2e2105..b6e4c118e51a 100644
--- a/services/core/java/com/android/server/wm/RecentTasks.java
+++ b/services/core/java/com/android/server/wm/RecentTasks.java
@@ -39,7 +39,7 @@ import static android.view.WindowInsets.Type.mandatorySystemGestures;
import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW;
import static android.view.WindowManager.LayoutParams.LAST_APPLICATION_WINDOW;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TASKS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS;
import static com.android.launcher3.Flags.enableRefactorTaskThumbnail;
import static com.android.server.wm.ActivityRecord.State.RESUMED;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_RECENTS;
diff --git a/services/core/java/com/android/server/wm/RecentsAnimation.java b/services/core/java/com/android/server/wm/RecentsAnimation.java
index c06efc775403..0b136716160b 100644
--- a/services/core/java/com/android/server/wm/RecentsAnimation.java
+++ b/services/core/java/com/android/server/wm/RecentsAnimation.java
@@ -23,7 +23,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_RECENTS_ANIMATIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_RECENTS_ANIMATIONS;
import static com.android.server.wm.ActivityRecord.State.STOPPED;
import static com.android.server.wm.ActivityRecord.State.STOPPING;
diff --git a/services/core/java/com/android/server/wm/RemoteAnimationController.java b/services/core/java/com/android/server/wm/RemoteAnimationController.java
index 432089ff2fcf..b3b2c57550e4 100644
--- a/services/core/java/com/android/server/wm/RemoteAnimationController.java
+++ b/services/core/java/com/android/server/wm/RemoteAnimationController.java
@@ -18,7 +18,7 @@ package com.android.server.wm;
import static android.view.WindowManager.TRANSIT_OLD_KEYGUARD_UNOCCLUDE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_REMOTE_ANIMATIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_REMOTE_ANIMATIONS;
import static com.android.server.wm.AnimationAdapterProto.REMOTE;
import static com.android.server.wm.RemoteAnimationAdapterWrapperProto.TARGET;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
diff --git a/services/core/java/com/android/server/wm/RemoteDisplayChangeController.java b/services/core/java/com/android/server/wm/RemoteDisplayChangeController.java
index e4962bffc570..0c1641c8073b 100644
--- a/services/core/java/com/android/server/wm/RemoteDisplayChangeController.java
+++ b/services/core/java/com/android/server/wm/RemoteDisplayChangeController.java
@@ -16,7 +16,7 @@
package com.android.server.wm;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION;
import android.annotation.NonNull;
import android.annotation.Nullable;
diff --git a/services/core/java/com/android/server/wm/ResetTargetTaskHelper.java b/services/core/java/com/android/server/wm/ResetTargetTaskHelper.java
index 243dbc78998d..0b48615146b6 100644
--- a/services/core/java/com/android/server/wm/ResetTargetTaskHelper.java
+++ b/services/core/java/com/android/server/wm/ResetTargetTaskHelper.java
@@ -16,8 +16,8 @@
package com.android.server.wm;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ADD_REMOVE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TASKS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ADD_REMOVE;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS;
import android.app.ActivityOptions;
import android.content.Intent;
diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java
index 84072e26761a..266fdbba0be7 100644
--- a/services/core/java/com/android/server/wm/RootWindowContainer.java
+++ b/services/core/java/com/android/server/wm/RootWindowContainer.java
@@ -38,13 +38,14 @@ import static android.view.WindowManager.TRANSIT_SLEEP;
import static android.view.WindowManager.TRANSIT_TO_BACK;
import static android.view.WindowManager.TRANSIT_WAKE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_KEEP_SCREEN_ON;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STATES;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TASKS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WALLPAPER;
-import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_SURFACE_ALLOC;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS_LIGHT;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_KEEP_SCREEN_ON;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SLEEP_TOKEN;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WALLPAPER;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_SURFACE_ALLOC;
import static com.android.server.policy.PhoneWindowManager.SYSTEM_DIALOG_REASON_ASSIST;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
@@ -2867,7 +2868,8 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
token = new SleepToken(tag, displayId);
mSleepTokens.put(tokenKey, token);
display.mAllSleepTokens.add(token);
- ProtoLog.d(WM_DEBUG_STATES, "Create sleep token: tag=%s, displayId=%d", tag, displayId);
+ ProtoLog.d(WM_DEBUG_SLEEP_TOKEN, "Create SleepToken: tag=%s, displayId=%d",
+ tag, displayId);
} else {
throw new RuntimeException("Create the same sleep token twice: " + token);
}
@@ -2886,8 +2888,8 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
return;
}
- ProtoLog.d(WM_DEBUG_STATES, "Remove sleep token: tag=%s, displayId=%d", token.mTag,
- token.mDisplayId);
+ ProtoLog.d(WM_DEBUG_SLEEP_TOKEN, "Remove SleepToken: tag=%s, displayId=%d",
+ token.mTag, token.mDisplayId);
display.mAllSleepTokens.remove(token);
if (display.mAllSleepTokens.isEmpty()) {
mService.updateSleepIfNeededLocked();
diff --git a/services/core/java/com/android/server/wm/ScreenRecordingCallbackController.java b/services/core/java/com/android/server/wm/ScreenRecordingCallbackController.java
index ad4faab1e106..38e011509885 100644
--- a/services/core/java/com/android/server/wm/ScreenRecordingCallbackController.java
+++ b/services/core/java/com/android/server/wm/ScreenRecordingCallbackController.java
@@ -18,7 +18,7 @@ package com.android.server.wm;
import static android.content.Context.MEDIA_PROJECTION_SERVICE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_ERROR;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_ERROR;
import android.media.projection.IMediaProjectionManager;
import android.media.projection.IMediaProjectionWatcherCallback;
diff --git a/services/core/java/com/android/server/wm/ScreenRotationAnimation.java b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
index e4fd523d5ce7..0d3fa1b48b4c 100644
--- a/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
+++ b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
@@ -20,8 +20,8 @@ import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
import static android.util.RotationUtils.deltaRotation;
import static android.view.WindowManagerPolicyConstants.SCREEN_FREEZE_LAYER_BASE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION;
-import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_SURFACE_ALLOC;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_SURFACE_ALLOC;
import static com.android.server.wm.AnimationSpecProto.ROTATE;
import static com.android.server.wm.RotationAnimationSpecProto.DURATION_MS;
import static com.android.server.wm.RotationAnimationSpecProto.END_LUMA;
diff --git a/services/core/java/com/android/server/wm/Session.java b/services/core/java/com/android/server/wm/Session.java
index d295378a9b65..077127c031e1 100644
--- a/services/core/java/com/android/server/wm/Session.java
+++ b/services/core/java/com/android/server/wm/Session.java
@@ -37,7 +37,7 @@ import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
import static android.view.WindowManager.LayoutParams.isSystemAlertWindowType;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_IME;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IME;
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
diff --git a/services/core/java/com/android/server/wm/SurfaceAnimator.java b/services/core/java/com/android/server/wm/SurfaceAnimator.java
index 57f9be097ee6..3f6e91590cce 100644
--- a/services/core/java/com/android/server/wm/SurfaceAnimator.java
+++ b/services/core/java/com/android/server/wm/SurfaceAnimator.java
@@ -16,7 +16,7 @@
package com.android.server.wm;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM;
import static com.android.server.wm.SurfaceAnimatorProto.ANIMATION_ADAPTER;
import static com.android.server.wm.SurfaceAnimatorProto.ANIMATION_START_DELAYED;
import static com.android.server.wm.SurfaceAnimatorProto.LEASH;
diff --git a/services/core/java/com/android/server/wm/SurfaceFreezer.java b/services/core/java/com/android/server/wm/SurfaceFreezer.java
index 34abf23daa2a..e126ed65d508 100644
--- a/services/core/java/com/android/server/wm/SurfaceFreezer.java
+++ b/services/core/java/com/android/server/wm/SurfaceFreezer.java
@@ -16,7 +16,7 @@
package com.android.server.wm;
-import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS;
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_SCREEN_ROTATION;
import android.annotation.NonNull;
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index edbc32827c1a..98919d9fd617 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -62,11 +62,11 @@ import static android.view.WindowManager.TRANSIT_TO_BACK;
import static android.view.WindowManager.TRANSIT_TO_FRONT;
import static android.window.DisplayAreaOrganizer.FEATURE_UNDEFINED;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ADD_REMOVE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_LOCKTASK;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STATES;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TASKS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ADD_REMOVE;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_LOCKTASK;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN;
import static com.android.server.wm.ActivityRecord.State.PAUSED;
import static com.android.server.wm.ActivityRecord.State.PAUSING;
import static com.android.server.wm.ActivityRecord.State.RESUMED;
@@ -170,6 +170,7 @@ import android.view.DisplayInfo;
import android.view.InsetsState;
import android.view.RemoteAnimationAdapter;
import android.view.SurfaceControl;
+import android.view.WindowInsets;
import android.view.WindowManager;
import android.window.ITaskOrganizer;
import android.window.PictureInPictureSurfaceTransaction;
@@ -3400,6 +3401,9 @@ class Task extends TaskFragment {
info.isTopActivityTransparent = top != null && !top.fillsParent();
info.isTopActivityStyleFloating = top != null && top.isStyleFloating();
info.lastNonFullscreenBounds = topTask.mLastNonFullscreenBounds;
+ final WindowState windowState = top != null ? top.findMainWindow() : null;
+ info.requestedVisibleTypes = (windowState != null && Flags.enableFullyImmersiveInDesktop())
+ ? windowState.getRequestedVisibleTypes() : WindowInsets.Type.defaultVisible();
AppCompatUtils.fillAppCompatTaskInfo(this, info, top);
}
diff --git a/services/core/java/com/android/server/wm/TaskDisplayArea.java b/services/core/java/com/android/server/wm/TaskDisplayArea.java
index 42ea5a88a09b..5dd3bbce4e96 100644
--- a/services/core/java/com/android/server/wm/TaskDisplayArea.java
+++ b/services/core/java/com/android/server/wm/TaskDisplayArea.java
@@ -30,7 +30,7 @@ import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSET;
import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
import static android.view.Display.INVALID_DISPLAY;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION;
import static com.android.server.wm.ActivityRecord.State.RESUMED;
import static com.android.server.wm.ActivityTaskManagerService.TAG_ROOT_TASK;
import static com.android.server.wm.DisplayContent.alwaysCreateRootTask;
diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java
index f58b322cab36..3ffeacfd5006 100644
--- a/services/core/java/com/android/server/wm/TaskFragment.java
+++ b/services/core/java/com/android/server/wm/TaskFragment.java
@@ -49,7 +49,7 @@ import static android.view.WindowManager.TRANSIT_FLAG_OPEN_BEHIND;
import static android.view.WindowManager.TRANSIT_NONE;
import static android.view.WindowManager.TRANSIT_OPEN;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STATES;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES;
import static com.android.server.wm.ActivityRecord.State.PAUSED;
import static com.android.server.wm.ActivityRecord.State.PAUSING;
import static com.android.server.wm.ActivityRecord.State.RESUMED;
diff --git a/services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java b/services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java
index 83e714d82dd2..c6a16795dd8c 100644
--- a/services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java
+++ b/services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java
@@ -27,7 +27,7 @@ import static android.window.TaskFragmentTransaction.TYPE_TASK_FRAGMENT_INFO_CHA
import static android.window.TaskFragmentTransaction.TYPE_TASK_FRAGMENT_PARENT_INFO_CHANGED;
import static android.window.TaskFragmentTransaction.TYPE_TASK_FRAGMENT_VANISHED;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_ORGANIZER;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_ORGANIZER;
import static com.android.server.wm.ActivityTaskManagerService.enforceTaskPermission;
import static com.android.server.wm.TaskFragment.EMBEDDING_ALLOWED;
import static com.android.server.wm.WindowOrganizerController.configurationsAreEqualForOrganizer;
@@ -61,7 +61,7 @@ import android.window.WindowContainerTransaction;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.protolog.ProtoLog;
-import com.android.internal.protolog.ProtoLogGroup;
+import com.android.internal.protolog.WmProtoLogGroups;
import com.android.window.flags.Flags;
import java.lang.annotation.Retention;
@@ -482,7 +482,7 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr
}
final int transitionId = mWindowOrganizerController.getTransitionController()
.getCollectingTransitionId();
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
"Defer transition id=%d for TaskFragmentTransaction=%s", transitionId,
transaction.getTransactionToken());
mDeferredTransitions.put(transaction.getTransactionToken(), transitionId);
@@ -503,13 +503,13 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr
|| mWindowOrganizerController.getTransitionController()
.getCollectingTransitionId() != transitionId) {
// This can happen when the transition is timeout or abort.
- ProtoLog.w(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.w(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
"Deferred transition id=%d has been continued before the"
+ " TaskFragmentTransaction=%s is finished",
transitionId, transactionToken);
return;
}
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
"Continue transition id=%d for TaskFragmentTransaction=%s", transitionId,
transactionToken);
mWindowOrganizerController.getTransitionController().continueTransitionReady();
diff --git a/services/core/java/com/android/server/wm/TaskOrganizerController.java b/services/core/java/com/android/server/wm/TaskOrganizerController.java
index de2e4f5474c4..eefc54457a4d 100644
--- a/services/core/java/com/android/server/wm/TaskOrganizerController.java
+++ b/services/core/java/com/android/server/wm/TaskOrganizerController.java
@@ -21,7 +21,7 @@ import static android.window.StartingWindowRemovalInfo.DEFER_MODE_NONE;
import static android.window.StartingWindowRemovalInfo.DEFER_MODE_NORMAL;
import static android.window.StartingWindowRemovalInfo.DEFER_MODE_ROTATION;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_ORGANIZER;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_ORGANIZER;
import static com.android.server.wm.ActivityTaskManagerService.enforceTaskPermission;
import static com.android.server.wm.DisplayContent.IME_TARGET_LAYERING;
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_STARTING_REVEAL;
diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java
index 2451ca87c3c7..fde502f2306c 100644
--- a/services/core/java/com/android/server/wm/Transition.java
+++ b/services/core/java/com/android/server/wm/Transition.java
@@ -109,7 +109,7 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.graphics.ColorUtils;
import com.android.internal.policy.TransitionAnimation;
import com.android.internal.protolog.ProtoLog;
-import com.android.internal.protolog.ProtoLogGroup;
+import com.android.internal.protolog.WmProtoLogGroups;
import com.android.internal.util.function.pooled.PooledLambda;
import com.android.server.inputmethod.InputMethodManagerInternal;
import com.android.server.statusbar.StatusBarManagerInternal;
@@ -385,7 +385,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
if (b == null || b.isEmpty()) continue;
final boolean transientLaunch = b.getBoolean(ActivityOptions.KEY_TRANSIENT_LAUNCH);
if (transientLaunch) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
"Starting a Recents transition which can be parallel.");
mParallelCollectType = PARALLEL_TYPE_RECENTS;
}
@@ -443,7 +443,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
activity.getTask().setCanAffectSystemUiFlags(false);
}
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Transition %d: Set %s as "
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Transition %d: Set %s as "
+ "transient-launch", mSyncId, activity);
}
@@ -556,8 +556,6 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
snapshotStartState(ar);
mChanges.get(ar).mFlags |= ChangeInfo.FLAG_CHANGE_CONFIG_AT_END;
});
- snapshotStartState(wc);
- mChanges.get(wc).mFlags |= ChangeInfo.FLAG_CHANGE_CONFIG_AT_END;
}
/** Set a transition to be a seamless-rotation. */
@@ -582,7 +580,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
if (top != null) {
mIsSeamlessRotation = true;
top.mSyncMethodOverride = BLASTSyncEngine.METHOD_BLAST;
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Override sync-method for %s "
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Override sync-method for %s "
+ "because seamless rotating", top.getName());
}
}
@@ -699,7 +697,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
return;
}
mState = STATE_STARTED;
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Starting Transition %d",
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Starting Transition %d",
mSyncId);
applyReady();
@@ -719,7 +717,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
// Too late, transition already started playing, so don't collect.
return;
}
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Collecting in transition %d: %s",
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Collecting in transition %d: %s",
mSyncId, wc);
// Snapshot before checking if this is a participant in case it has been re-parented.
snapshotStartState(getAnimatableParent(wc));
@@ -758,7 +756,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
mChanges.put(curr, info);
if (isReadyGroup(curr)) {
mReadyTrackerOld.addGroup(curr);
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " Creating Ready-group for"
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Creating Ready-group for"
+ " Transition %d with root=%s", mSyncId, curr);
}
}
@@ -831,8 +829,8 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
// Too late to collect. Don't check too-early here since `collect` will check that.
return;
}
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Existence Changed in transition %d:"
- + " %s", mSyncId, wc);
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
+ "Existence Changed in transition %d: %s", mSyncId, wc);
collect(wc);
mChanges.get(wc).mExistenceChanged = true;
}
@@ -997,7 +995,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
} else {
ready = mReadyTrackerOld.allReady();
}
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
"Set transition ready=%b %d", ready, mSyncId);
boolean changed = mSyncEngine.setReady(mSyncId, ready);
if (changed && ready) {
@@ -1083,7 +1081,8 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
// For config-at-end, the end-transform will be reset after the config is actually
// applied in the client (since the transform depends on config). The other properties
// remain here because shell might want to persistently override them.
- if ((mTargets.get(i).mFlags & ChangeInfo.FLAG_CHANGE_CONFIG_AT_END) == 0) {
+ if (target.asActivityRecord() == null
+ || (mTargets.get(i).mFlags & ChangeInfo.FLAG_CHANGE_CONFIG_AT_END) == 0) {
resetSurfaceTransform(t, target, targetLeash);
}
}
@@ -1312,7 +1311,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
// Avoid commit visibility if entering pip or else we will get a sudden
// "flash" / surface going invisible for a split second.
if (commitVisibility) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
" Commit activity becoming invisible: %s", ar);
final SnapshotController snapController = mController.mSnapshotController;
if (mTransientLaunches != null && !task.isVisibleRequested()
@@ -1326,7 +1325,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
if (lastSnapshotTimeNs < startTimeNs) {
snapController.mTaskSnapshotController.recordSnapshot(task);
} else {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
" Skipping post-transition snapshot for task %d",
task.mTaskId);
}
@@ -1397,7 +1396,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
final boolean isWallpaperVisibleAtEnd =
wt.isVisibleRequested() || mVisibleAtTransitionEndTokens.contains(wt);
if (isTargetInvisible || !isWallpaperVisibleAtEnd) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
" Commit wallpaper becoming invisible: %s", wt);
wt.commitVisibility(false /* visible */);
}
@@ -1564,46 +1563,33 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
if (mConfigAtEndActivities == null || mConfigAtEndActivities.isEmpty()) {
return;
}
- final SurfaceControl.Transaction t =
- mController.mAtm.mWindowManager.mTransactionFactory.get();
- for (int i = 0; i < mTargets.size(); ++i) {
- final WindowContainer target = mTargets.get(i).mContainer;
- if (target.getParent() == null || (mTargets.get(i).mFlags
- & ChangeInfo.FLAG_CHANGE_CONFIG_AT_END) == 0) {
- continue;
+ // Now resume the configuration dispatch, wait until the now resumed configs have been
+ // drawn, and then apply everything together. Any activities that are already in an
+ // active sync will remain on that sync instead of the new one.
+ int syncId = -1;
+ for (int i = 0; i < mConfigAtEndActivities.size(); ++i) {
+ final ActivityRecord target = mConfigAtEndActivities.get(i);
+ final SurfaceControl targetLeash = target.getSurfaceControl();
+ if (target.getSyncGroup() == null || target.getSyncGroup().isIgnoring(target)) {
+ if (syncId < 0) {
+ final BLASTSyncEngine.SyncGroup sg = mSyncEngine.prepareSyncSet(
+ (mSyncId, transaction) -> transaction.apply(),
+ "ConfigAtTransitEnd");
+ syncId = sg.mSyncId;
+ mSyncEngine.startSyncSet(sg, BLAST_TIMEOUT_DURATION, true /* parallel */);
+ mSyncEngine.setSyncMethod(syncId, BLASTSyncEngine.METHOD_BLAST);
+ }
+ mSyncEngine.addToSyncSet(syncId, target);
}
- final SurfaceControl targetLeash = getLeashSurface(target, null /* t */);
// Reset surface state here (since it was skipped in buildFinishTransaction). Since
// we are resuming config to the "current" state, we have to calculate the matching
// surface state now (rather than snapshotting it at animation start).
- resetSurfaceTransform(t, target, targetLeash);
- }
-
- // Now we resume the configuration dispatch, wait until the now resumed configs have been
- // drawn, and then apply everything together.
- final BLASTSyncEngine.SyncGroup sg = mSyncEngine.prepareSyncSet(
- new BLASTSyncEngine.TransactionReadyListener() {
- @Override
- public void onTransactionReady(int mSyncId,
- SurfaceControl.Transaction transaction) {
- t.merge(transaction);
- t.apply();
- }
-
- @Override
- public void onTransactionCommitTimeout() {
- t.apply();
- }
- }, "ConfigAtTransitEnd");
- final int syncId = sg.mSyncId;
- mSyncEngine.startSyncSet(sg, BLAST_TIMEOUT_DURATION, true /* parallel */);
- mSyncEngine.setSyncMethod(syncId, BLASTSyncEngine.METHOD_BLAST);
- for (int i = 0; i < mConfigAtEndActivities.size(); ++i) {
- final ActivityRecord ar = mConfigAtEndActivities.get(i);
- mSyncEngine.addToSyncSet(syncId, ar);
- ar.resumeConfigurationDispatch();
+ resetSurfaceTransform(target.getSyncTransaction(), target, targetLeash);
+ target.resumeConfigurationDispatch();
+ }
+ if (syncId >= 0) {
+ mSyncEngine.setReady(syncId);
}
- mSyncEngine.setReady(syncId);
}
@Nullable
@@ -1662,7 +1648,8 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
if (mState != STATE_COLLECTING && mState != STATE_STARTED) {
throw new IllegalStateException("Too late to abort. state=" + mState);
}
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Aborting Transition: %d", mSyncId);
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
+ "Aborting Transition: %d", mSyncId);
mState = STATE_ABORT;
mLogger.mAbortTimeNs = SystemClock.elapsedRealtimeNanos();
mController.mTransitionTracer.logAbortedTransition(this);
@@ -1677,7 +1664,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
if (!(mState == STATE_COLLECTING || mState == STATE_STARTED)) {
return;
}
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Force Playing Transition: %d",
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Force Playing Transition: %d",
mSyncId);
mForcePlaying = true;
// backwards since conditions are removed.
@@ -1718,6 +1705,54 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
change.mFlags |= ChangeInfo.FLAG_CHANGE_NO_ANIMATION;
}
+ void prepareConfigAtEnd(SurfaceControl.Transaction transact, ArrayList<ChangeInfo> targets) {
+ if (mConfigAtEndActivities == null) return;
+ for (int i = 0; i < mConfigAtEndActivities.size(); ++i) {
+ final ActivityRecord ar = mConfigAtEndActivities.get(i);
+ if (!ar.isVisibleRequested()) continue;
+ final SurfaceControl sc = ar.getSurfaceControl();
+ if (sc == null) continue;
+ final Task task = ar.getTask();
+ if (task == null) continue;
+ // If task isn't animating, then it means shell is animating activity directly (within
+ // task), so don't do any setup.
+ if (!containsChangeFor(task, targets)) continue;
+ final ChangeInfo change = mChanges.get(ar);
+ final Rect startBounds = change.mAbsoluteBounds;
+ Rect hintRect = null;
+ if (ar.getWindowingMode() == WINDOWING_MODE_PINNED && ar.pictureInPictureArgs != null
+ && ar.pictureInPictureArgs.getSourceRectHint() != null) {
+ hintRect = ar.pictureInPictureArgs.getSourceRectHint();
+ }
+ if (hintRect == null) {
+ hintRect = new Rect(startBounds);
+ hintRect.offsetTo(0, 0);
+ }
+ final Rect endBounds = ar.getBounds();
+ final Rect taskEndBounds = task.getBounds();
+ // FA = final activity bounds (absolute)
+ // FT = final task bounds (absolute)
+ // SA = start activity bounds (absolute)
+ // H = source hint (relative to start activity bounds)
+ // We want to transform the activity so that when the task is at FT, H overlaps with FA
+
+ // This scales the activity such that the hint rect has the same dimensions
+ // as the final activity bounds.
+ float hintToEndScaleX = ((float) endBounds.width()) / ((float) hintRect.width());
+ float hintToEndScaleY = ((float) endBounds.height()) / ((float) hintRect.height());
+ // top-left needs to be (FA.tl - FT.tl) - H.tl * hintToEnd . H is relative to the
+ // activity; so, for example, if shrinking H to FA (hintToEnd < 1), then the tl of the
+ // shrunk SA is closer to H than expected, so we need to reduce how much we offset SA
+ // to get H.tl to match.
+ float startActPosInTaskEndX =
+ (endBounds.left - taskEndBounds.left) - hintRect.left * hintToEndScaleX;
+ float startActPosInTaskEndY =
+ (endBounds.top - taskEndBounds.top) - hintRect.top * hintToEndScaleY;
+ transact.setScale(sc, hintToEndScaleX, hintToEndScaleY);
+ transact.setPosition(sc, startActPosInTaskEndX, startActPosInTaskEndY);
+ }
+ }
+
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
static boolean containsChangeFor(WindowContainer wc, ArrayList<ChangeInfo> list) {
for (int i = list.size() - 1; i >= 0; --i) {
@@ -1735,7 +1770,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
if (mController.useFullReadyTracking()) {
for (int i = 0; i < mReadyTracker.mMet.size(); ++i) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "#%d: Met condition: %s",
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "#%d: Met condition: %s",
mSyncId, mReadyTracker.mMet.get(i));
}
}
@@ -1799,6 +1834,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
// Resolve the animating targets from the participants.
mTargets = calculateTargets(mParticipants, mChanges);
+ prepareConfigAtEnd(transaction, mTargets);
// Check whether the participants were animated from back navigation.
mController.mAtm.mBackNavigationController.onTransactionReady(this, mTargets,
@@ -1913,7 +1949,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
if (mController.getTransitionPlayer() != null && mIsPlayerEnabled) {
mController.dispatchLegacyAppTransitionStarting(info, mStatusBarTransitionDelay);
try {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
"Calling onTransitionReady: %s", info);
mLogger.mSendTimeNs = SystemClock.elapsedRealtimeNanos();
mLogger.mInfo = info;
@@ -1939,8 +1975,9 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
// No player registered or it's not enabled, so just finish/apply immediately
if (!mIsPlayerEnabled) {
mLogger.mSendTimeNs = SystemClock.uptimeNanos();
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Apply and finish immediately"
- + " because player is disabled for transition #%d .", mSyncId);
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
+ "Apply and finish immediately because player is disabled "
+ + "for transition #%d .", mSyncId);
}
postCleanupOnFailure();
}
@@ -2151,32 +2188,34 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
for (int i = onTopTasksEnd.size() - 1; i >= 0; --i) {
final Task task = onTopTasksEnd.get(i);
if (task.getDisplayId() != displayId) continue;
- if (!enableDisplayFocusInShellTransitions()
- || mOnTopDisplayStart == onTopDisplayEnd
- || displayId != onTopDisplayEnd.mDisplayId) {
- // If it didn't change since last report, don't report
- if (reportedOnTop == null) {
- if (mOnTopTasksStart.contains(task)) continue;
- } else if (reportedOnTop.contains(task)) {
- continue;
- }
- }
- // Need to report it.
- mParticipants.add(task);
- int changeIdx = mChanges.indexOfKey(task);
- if (changeIdx < 0) {
- mChanges.put(task, new ChangeInfo(task));
- changeIdx = mChanges.indexOfKey(task);
+ if (reportedOnTop == null) {
+ if (mOnTopTasksStart.contains(task)) continue;
+ } else if (reportedOnTop.contains(task)) {
+ continue;
}
- mChanges.valueAt(changeIdx).mFlags |= ChangeInfo.FLAG_CHANGE_MOVED_TO_TOP;
+ addToTopChange(task);
}
// Swap in the latest on-top tasks.
mController.mLatestOnTopTasksReported.put(displayId, onTopTasksEnd);
onTopTasksEnd = reportedOnTop != null ? reportedOnTop : new ArrayList<>();
onTopTasksEnd.clear();
+
+ if (enableDisplayFocusInShellTransitions()
+ && mOnTopDisplayStart != onTopDisplayEnd
+ && displayId == onTopDisplayEnd.mDisplayId) {
+ addToTopChange(onTopDisplayEnd);
+ }
}
}
+ private void addToTopChange(@NonNull WindowContainer wc) {
+ mParticipants.add(wc);
+ if (!mChanges.containsKey(wc)) {
+ mChanges.put(wc, new ChangeInfo(wc));
+ }
+ mChanges.get(wc).mFlags |= ChangeInfo.FLAG_CHANGE_MOVED_TO_TOP;
+ }
+
private void postCleanupOnFailure() {
mController.mAtm.mH.post(() -> {
synchronized (mController.mAtm.mGlobalLock) {
@@ -2547,12 +2586,12 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
final ChangeInfo parentChange = changes.get(parent);
if (!parent.canCreateRemoteAnimationTarget()
|| parentChange == null || !parentChange.hasChanged()) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " SKIP: %s",
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " SKIP: %s",
"parent can't be target " + parent);
return false;
}
if (isWallpaper(target)) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " SKIP: is wallpaper");
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " SKIP: is wallpaper");
return false;
}
@@ -2566,27 +2605,27 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
for (int i = parent.getChildCount() - 1; i >= 0; --i) {
final WindowContainer<?> sibling = parent.getChildAt(i);
if (target == sibling) continue;
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " check sibling %s",
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " check sibling %s",
sibling);
final ChangeInfo siblingChange = changes.get(sibling);
if (siblingChange == null || !targets.wasParticipated(siblingChange)) {
if (sibling.isVisibleRequested()) {
// Sibling is visible but not animating, so no promote.
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
" SKIP: sibling is visible but not part of transition");
return false;
}
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
" unrelated invisible sibling %s", sibling);
continue;
}
final int siblingMode = siblingChange.getTransitMode(sibling);
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
" sibling is a participant with mode %s",
TransitionInfo.modeToString(siblingMode));
if (reduceMode(mode) != reduceMode(siblingMode)) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
" SKIP: common mode mismatch. was %s",
TransitionInfo.modeToString(mode));
return false;
@@ -2616,10 +2655,10 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
for (int i = targets.mArray.size() - 1; i >= 0; --i) {
final ChangeInfo targetChange = targets.mArray.valueAt(i);
final WindowContainer<?> target = targetChange.mContainer;
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " checking %s", target);
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " checking %s", target);
final WindowContainer<?> parent = target.getParent();
if (parent == lastNonPromotableParent) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
" SKIP: its sibling was rejected");
continue;
}
@@ -2628,16 +2667,16 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
continue;
}
if (reportIfNotTop(target)) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
" keep as target %s", target);
} else {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
" remove from targets %s", target);
targets.remove(i);
}
final ChangeInfo parentChange = changes.get(parent);
if (targets.mArray.indexOfValue(parentChange) < 0) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
" CAN PROMOTE: promoting to parent %s", parent);
// The parent has lower depth, so it will be checked in the later iteration.
i++;
@@ -2648,9 +2687,6 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
} else {
parentChange.mFlags |= ChangeInfo.FLAG_CHANGE_YES_ANIMATION;
}
- if ((targetChange.mFlags & ChangeInfo.FLAG_CHANGE_CONFIG_AT_END) != 0) {
- parentChange.mFlags |= ChangeInfo.FLAG_CHANGE_CONFIG_AT_END;
- }
}
}
@@ -2662,7 +2698,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
@NonNull
static ArrayList<ChangeInfo> calculateTargets(ArraySet<WindowContainer> participants,
ArrayMap<WindowContainer, ChangeInfo> changes) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
"Start calculating TransitionInfo based on participants: %s", participants);
// Add all valid participants to the target container.
@@ -2670,7 +2706,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
for (int i = participants.size() - 1; i >= 0; --i) {
final WindowContainer<?> wc = participants.valueAt(i);
if (!wc.isAttached()) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
" Rejecting as detached: %s", wc);
continue;
}
@@ -2680,13 +2716,13 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
final ChangeInfo changeInfo = changes.get(wc);
// Reject no-ops
if (!changeInfo.hasChanged()) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
" Rejecting as no-op: %s vis: %b", wc, wc.isVisibleRequested());
continue;
}
targets.add(changeInfo);
}
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " Initial targets: %s",
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Initial targets: %s",
targets.mArray);
// Combine the targets from bottom to top if possible.
tryPromote(targets, changes);
@@ -2694,7 +2730,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
populateParentChanges(targets, changes);
final ArrayList<ChangeInfo> targetList = targets.getListSortedByZ();
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " Final targets: %s", targetList);
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Final targets: %s", targetList);
return targetList;
}
@@ -2742,14 +2778,6 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
} else {
intermediates.add(parentChange);
}
- // for config-at-end, we want to promote the flag based on the end-state even
- // if the activity was reparented because it operates after the animation. So,
- // check that here since the promote code skips reparents.
- if ((targetChange.mFlags & ChangeInfo.FLAG_CHANGE_CONFIG_AT_END) != 0
- && targetChange.mContainer.asActivityRecord() != null
- && targetChange.mContainer.getParent() == p) {
- parentChange.mFlags |= ChangeInfo.FLAG_CHANGE_CONFIG_AT_END;
- }
foundParentInTargets = true;
break;
} else if (reportIfNotTop(p) && !skipIntermediateReports) {
@@ -3797,7 +3825,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
}
mConditions.add(condition);
condition.mTracker = this;
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " Add condition %s for #%d",
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Add condition %s for #%d",
condition, mTransition.mSyncId);
condition.startTracking();
}
@@ -3819,7 +3847,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
}
}
condition.mMet = true;
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " Met condition %s for #%d (%d"
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Met condition %s for #%d (%d"
+ " left)", condition, mTransition.mSyncId, mConditions.size());
mMet.add(condition);
mTransition.applyReady();
@@ -3888,8 +3916,8 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
while (current != null) {
if (isReadyGroup(current)) {
mReadyGroups.put(current, ready);
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " Setting Ready-group to"
- + " %b. group=%s from %s", ready, current, wc);
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
+ " Setting Ready-group to %b. group=%s from %s", ready, current, wc);
break;
}
current = current.getParent();
@@ -3898,14 +3926,14 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
/** Marks this as ready regardless of individual groups. */
void setAllReady() {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " Setting allReady override");
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Setting allReady override");
mUsed = true;
mReadyOverride = true;
}
/** @return true if all tracked subtrees are ready. */
boolean allReady() {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
" allReady query: used=%b " + "override=%b defer=%d states=[%s]", mUsed,
mReadyOverride, mDeferReadyDepth, groupsToString());
// If the readiness has never been touched, mUsed will be false. We never want to
@@ -4043,7 +4071,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
}
}
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Screenshotting %s [%s]",
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Screenshotting %s [%s]",
wc.toString(), bounds.toString());
Rect cropBounds = new Rect(bounds);
diff --git a/services/core/java/com/android/server/wm/TransitionController.java b/services/core/java/com/android/server/wm/TransitionController.java
index 1d2a605e8dae..37c3ce80f670 100644
--- a/services/core/java/com/android/server/wm/TransitionController.java
+++ b/services/core/java/com/android/server/wm/TransitionController.java
@@ -53,7 +53,7 @@ import android.window.WindowContainerTransaction;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.protolog.ProtoLog;
-import com.android.internal.protolog.ProtoLogGroup;
+import com.android.internal.protolog.WmProtoLogGroups;
import com.android.server.FgThread;
import com.android.window.flags.Flags;
@@ -303,7 +303,8 @@ class TransitionController {
+ " possible.");
}
Transition transit = new Transition(type, flags, this, mSyncEngine);
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Creating Transition: %s", transit);
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
+ "Creating Transition: %s", transit);
moveToCollecting(transit);
return transit;
}
@@ -324,21 +325,21 @@ class TransitionController {
final long timeoutMs =
transition.mType == TRANSIT_CHANGE ? CHANGE_TIMEOUT_MS : DEFAULT_TIMEOUT_MS;
mCollectingTransition.startCollecting(timeoutMs);
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Start collecting in Transition: %s",
- mCollectingTransition);
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
+ "Start collecting in Transition: %s", mCollectingTransition);
}
void registerTransitionPlayer(@Nullable ITransitionPlayer player,
@Nullable WindowProcessController playerProc) {
if (!mTransitionPlayers.isEmpty()) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Registering transition "
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Registering transition "
+ "player %s over %d other players", player.asBinder(),
mTransitionPlayers.size());
// flush currently running transitions so that the new player doesn't get
// intermediate state
flushRunningTransitions();
} else {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Registering transition "
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Registering transition "
+ "player %s ", player.asBinder());
}
mTransitionPlayers.add(new TransitionPlayerRecord(player, playerProc));
@@ -351,18 +352,18 @@ class TransitionController {
if (mTransitionPlayers.get(idx).mPlayer.asBinder() == player.asBinder()) break;
}
if (idx < 0) {
- ProtoLog.w(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Attempt to unregister "
+ ProtoLog.w(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Attempt to unregister "
+ "transition player %s but it isn't registered", player.asBinder());
return;
}
final boolean needsFlush = idx == (mTransitionPlayers.size() - 1);
final TransitionPlayerRecord record = mTransitionPlayers.remove(idx);
if (needsFlush) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Unregistering active "
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Unregistering active "
+ "transition player %s at index=%d leaving %d in stack", player.asBinder(),
idx, mTransitionPlayers.size());
} else {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Unregistering transition "
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Unregistering transition "
+ "player %s at index=%d leaving %d in stack", player.asBinder(), idx,
mTransitionPlayers.size());
}
@@ -741,8 +742,9 @@ class TransitionController {
@Nullable RemoteTransition remoteTransition,
@Nullable TransitionRequestInfo.DisplayChange displayChange) {
if (mIsWaitingForDisplayEnabled) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Disabling player for transition"
- + " #%d because display isn't enabled yet", transition.getSyncId());
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
+ "Disabling player for transition #%d because display isn't enabled yet",
+ transition.getSyncId());
transition.mIsPlayerEnabled = false;
transition.mLogger.mRequestTimeNs = SystemClock.uptimeNanos();
mAtm.mH.post(() -> mAtm.mWindowOrganizerController.startTransition(
@@ -758,7 +760,7 @@ class TransitionController {
return transition;
}
try {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
"Requesting StartTransition: %s", transition);
ActivityManager.RunningTaskInfo startTaskInfo = null;
ActivityManager.RunningTaskInfo pipTaskInfo = null;
@@ -935,7 +937,7 @@ class TransitionController {
Slog.e(TAG, "Trying to finish a non-playing transition " + record);
return;
}
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Finish Transition: %s", record);
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Finish Transition: %s", record);
mPlayingTransitions.remove(record);
if (!inTransition()) {
// reset track-count now since shell-side is idle.
@@ -1056,8 +1058,8 @@ class TransitionController {
// If it's a legacy sync, then it needs to wait until there is no collecting transition.
if (queued.mTransition == null) return;
if (!canStartCollectingNow(queued.mTransition)) return;
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Moving #%d from collecting"
- + " to waiting.", mCollectingTransition.getSyncId());
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN,
+ "Moving #%d from collecting to waiting.", mCollectingTransition.getSyncId());
mWaitingTransitions.add(mCollectingTransition);
mCollectingTransition = null;
} else if (mSyncEngine.hasActiveSync()) {
@@ -1220,8 +1222,8 @@ class TransitionController {
// Didn't overlap with anything, so give it its own track
track = mTrackCount;
if (track > 0) {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Playing #%d in parallel on "
- + "track #%d", transition.getSyncId(), track);
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
+ "Playing #%d in parallel on track #%d", transition.getSyncId(), track);
}
}
transition.mAnimationTrack = track;
@@ -1230,8 +1232,8 @@ class TransitionController {
if (sync && mTrackCount > 1) {
// If there are >1 tracks, mark as sync so that all tracks finish.
info.setFlags(info.getFlags() | TransitionInfo.FLAG_SYNC);
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Marking #%d animation as SYNC.",
- transition.getSyncId());
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
+ "Marking #%d animation as SYNC.", transition.getSyncId());
}
}
@@ -1409,7 +1411,7 @@ class TransitionController {
/** Returns {@code true} if it started collecting, {@code false} if it was queued. */
private void queueTransition(Transition transit, OnStartCollect onStartCollect) {
mQueuedTransitions.add(new QueuedTransition(transit, onStartCollect));
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN,
"Queueing transition: %s", transit);
}
@@ -1425,7 +1427,7 @@ class TransitionController {
// Check if we can run in parallel here.
if (canStartCollectingNow(transit)) {
// start running in parallel.
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Moving #%d from"
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Moving #%d from"
+ " collecting to waiting.", mCollectingTransition.getSyncId());
mWaitingTransitions.add(mCollectingTransition);
mCollectingTransition = null;
@@ -1464,7 +1466,7 @@ class TransitionController {
// Check if we can run in parallel here.
if (canStartCollectingNow(null /* transit */)) {
// create and collect in parallel.
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Moving #%d from"
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Moving #%d from"
+ " collecting to waiting.", mCollectingTransition.getSyncId());
mWaitingTransitions.add(mCollectingTransition);
mCollectingTransition = null;
@@ -1488,7 +1490,7 @@ class TransitionController {
// Just add to queue since we already have a queue.
mQueuedTransitions.add(new QueuedTransition(syncGroup,
(deferred) -> applySync.accept(true /* deferred */)));
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN,
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN,
"Queueing legacy sync-set: %s", syncGroup.mSyncId);
return;
}
@@ -1683,9 +1685,10 @@ class TransitionController {
}
void logOnSend() {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "%s", buildOnSendLog());
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, " startWCT=%s", mStartWCT);
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, " info=%s",
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "%s", buildOnSendLog());
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN,
+ " startWCT=%s", mStartWCT);
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, " info=%s",
mInfo.toString(" " /* prefix */));
}
@@ -1708,7 +1711,7 @@ class TransitionController {
}
void logOnFinish() {
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "%s", buildOnFinishLog());
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "%s", buildOnFinishLog());
}
}
diff --git a/services/core/java/com/android/server/wm/TrustedPresentationListenerController.java b/services/core/java/com/android/server/wm/TrustedPresentationListenerController.java
index c0dc4247a7c2..8e32813f7ecc 100644
--- a/services/core/java/com/android/server/wm/TrustedPresentationListenerController.java
+++ b/services/core/java/com/android/server/wm/TrustedPresentationListenerController.java
@@ -21,7 +21,7 @@ import static android.graphics.Matrix.MSCALE_Y;
import static android.graphics.Matrix.MSKEW_X;
import static android.graphics.Matrix.MSKEW_Y;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TPL;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TPL;
import android.graphics.Matrix;
import android.graphics.Rect;
diff --git a/services/core/java/com/android/server/wm/WallpaperAnimationAdapter.java b/services/core/java/com/android/server/wm/WallpaperAnimationAdapter.java
index fffe692a39dd..c3e85b1f8662 100644
--- a/services/core/java/com/android/server/wm/WallpaperAnimationAdapter.java
+++ b/services/core/java/com/android/server/wm/WallpaperAnimationAdapter.java
@@ -15,7 +15,7 @@
*/
package com.android.server.wm;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_REMOTE_ANIMATIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_REMOTE_ANIMATIONS;
import static com.android.server.wm.AnimationAdapterProto.REMOTE;
import static com.android.server.wm.RemoteAnimationAdapterWrapperProto.TARGET;
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION;
diff --git a/services/core/java/com/android/server/wm/WallpaperController.java b/services/core/java/com/android/server/wm/WallpaperController.java
index 06010bb1642e..7565b5d9fd4e 100644
--- a/services/core/java/com/android/server/wm/WallpaperController.java
+++ b/services/core/java/com/android/server/wm/WallpaperController.java
@@ -23,7 +23,7 @@ import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY_WITH_WALLPAPER;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WALLPAPER;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WALLPAPER;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS;
import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION;
diff --git a/services/core/java/com/android/server/wm/WallpaperWindowToken.java b/services/core/java/com/android/server/wm/WallpaperWindowToken.java
index 89ad5640ef83..2c926fcae26a 100644
--- a/services/core/java/com/android/server/wm/WallpaperWindowToken.java
+++ b/services/core/java/com/android/server/wm/WallpaperWindowToken.java
@@ -19,8 +19,8 @@ package com.android.server.wm;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WALLPAPER;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WALLPAPER;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
diff --git a/services/core/java/com/android/server/wm/WindowAnimator.java b/services/core/java/com/android/server/wm/WindowAnimator.java
index 2342de3676de..49c8559c02a8 100644
--- a/services/core/java/com/android/server/wm/WindowAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowAnimator.java
@@ -16,7 +16,7 @@
package com.android.server.wm;
-import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS;
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_ALL;
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION;
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_SCREEN_ROTATION;
diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java
index 1c03ba571923..da64a5f07aeb 100644
--- a/services/core/java/com/android/server/wm/WindowContainer.java
+++ b/services/core/java/com/android/server/wm/WindowContainer.java
@@ -37,11 +37,11 @@ import static android.view.WindowManager.TRANSIT_CHANGE;
import static android.window.TaskFragmentAnimationParams.DEFAULT_ANIMATION_BACKGROUND_COLOR;
import static android.window.flags.DesktopModeFlags.ENABLE_CAPTION_COMPAT_INSET_FORCE_CONSUMPTION;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS_ANIM;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_SYNC_ENGINE;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS_ANIM;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SYNC_ENGINE;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
import static com.android.server.wm.AppTransition.MAX_APP_TRANSITION_DURATION;
import static com.android.server.wm.AppTransition.isActivityTransitOld;
diff --git a/services/core/java/com/android/server/wm/WindowContainerThumbnail.java b/services/core/java/com/android/server/wm/WindowContainerThumbnail.java
index 80f3c44267d7..ae477e1e22f0 100644
--- a/services/core/java/com/android/server/wm/WindowContainerThumbnail.java
+++ b/services/core/java/com/android/server/wm/WindowContainerThumbnail.java
@@ -19,7 +19,7 @@ package com.android.server.wm;
import static android.view.SurfaceControl.METADATA_OWNER_UID;
import static android.view.SurfaceControl.METADATA_WINDOW_TYPE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS;
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION;
import static com.android.server.wm.WindowContainerThumbnailProto.HEIGHT;
import static com.android.server.wm.WindowContainerThumbnailProto.SURFACE_ANIMATOR;
diff --git a/services/core/java/com/android/server/wm/WindowContextListenerController.java b/services/core/java/com/android/server/wm/WindowContextListenerController.java
index 87e120c9a15d..809745e48300 100644
--- a/services/core/java/com/android/server/wm/WindowContextListenerController.java
+++ b/services/core/java/com/android/server/wm/WindowContextListenerController.java
@@ -21,8 +21,8 @@ import static android.view.Display.isSuspendedState;
import static android.view.WindowManager.LayoutParams.INVALID_WINDOW_TYPE;
import static android.window.WindowProviderService.isWindowProviderService;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ADD_REMOVE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_ERROR;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ADD_REMOVE;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_ERROR;
import android.annotation.NonNull;
import android.annotation.Nullable;
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 942634704ff5..e1e471479393 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -101,18 +101,18 @@ import static android.view.displayhash.DisplayHashResultCallback.DISPLAY_HASH_ER
import static android.view.flags.Flags.sensitiveContentAppProtection;
import static android.window.WindowProviderService.isWindowProviderService;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ADD_REMOVE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_BOOT;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_IME;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_SCREEN_ON;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STARTING_WINDOW;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_MOVEMENT;
-import static com.android.internal.protolog.ProtoLogGroup.WM_ERROR;
-import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ADD_REMOVE;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_BOOT;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS_LIGHT;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IME;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SCREEN_ON;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STARTING_WINDOW;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_MOVEMENT;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_ERROR;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS;
import static com.android.internal.util.FrameworkStatsLog.SENSITIVE_NOTIFICATION_APP_PROTECTION_APPLIED;
import static com.android.internal.util.LatencyTracker.ACTION_ROTATE_SCREEN;
import static com.android.server.LockGuard.INDEX_WINDOW;
@@ -335,7 +335,7 @@ import com.android.internal.policy.IShortcutService;
import com.android.internal.policy.KeyInterceptionInfo;
import com.android.internal.protolog.LegacyProtoLogImpl;
import com.android.internal.protolog.ProtoLog;
-import com.android.internal.protolog.ProtoLogGroup;
+import com.android.internal.protolog.WmProtoLogGroups;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.FastPrintWriter;
import com.android.internal.util.FrameworkStatsLog;
@@ -3890,8 +3890,8 @@ public class WindowManagerService extends IWindowManager.Stub
synchronized (mGlobalLock) {
mAtmService.getTransitionController().mIsWaitingForDisplayEnabled = false;
- ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Notified TransitionController "
- + "that the display is ready.");
+ ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
+ "Notified TransitionController that the display is ready.");
}
}
@@ -10172,6 +10172,22 @@ public class WindowManagerService extends IWindowManager.Stub
}
}
+ /**
+ * Returns whether the display with the given ID is trusted.
+ */
+ @Override
+ public boolean isDisplayTrusted(int displayId) {
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ synchronized (mGlobalLock) {
+ DisplayContent dc = mRoot.getDisplayContent(displayId);
+ return dc != null && dc.isTrusted();
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
@RequiresPermission(ACCESS_SURFACE_FLINGER)
@Override
public boolean replaceContentOnDisplay(int displayId, SurfaceControl sc) {
diff --git a/services/core/java/com/android/server/wm/WindowManagerShellCommand.java b/services/core/java/com/android/server/wm/WindowManagerShellCommand.java
index 6d7396f1f477..21ed8d793b24 100644
--- a/services/core/java/com/android/server/wm/WindowManagerShellCommand.java
+++ b/services/core/java/com/android/server/wm/WindowManagerShellCommand.java
@@ -16,6 +16,9 @@
package com.android.server.wm;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
+import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
import static android.os.Build.IS_USER;
import static android.view.CrossWindowBlurListeners.CROSS_WINDOW_BLUR_SUPPORTED;
@@ -30,6 +33,7 @@ import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_VERTICAL_RE
import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_VERTICAL_REACHABILITY_POSITION_CENTER;
import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_VERTICAL_REACHABILITY_POSITION_TOP;
+import android.app.WindowConfiguration;
import android.content.res.Resources.NotFoundException;
import android.graphics.Color;
import android.graphics.Point;
@@ -157,6 +161,10 @@ public class WindowManagerShellCommand extends ShellCommand {
return runReset(pw);
case "disable-blur":
return runSetBlurDisabled(pw);
+ case "set-display-windowing-mode":
+ return runSetDisplayWindowingMode(pw);
+ case "get-display-windowing-mode":
+ return runGetDisplayWindowingMode(pw);
case "shell":
return runWmShellCommand(pw);
default:
@@ -1434,6 +1442,35 @@ public class WindowManagerShellCommand extends ShellCommand {
return 0;
}
+ private int runSetDisplayWindowingMode(PrintWriter pw) throws RemoteException {
+ int displayId = Display.DEFAULT_DISPLAY;
+ String arg = getNextArgRequired();
+ if ("-d".equals(arg)) {
+ displayId = Integer.parseInt(getNextArgRequired());
+ arg = getNextArgRequired();
+ }
+
+ final int windowingMode = Integer.parseInt(arg);
+ mInterface.setWindowingMode(displayId, windowingMode);
+
+ return 0;
+ }
+
+ private int runGetDisplayWindowingMode(PrintWriter pw) throws RemoteException {
+ int displayId = Display.DEFAULT_DISPLAY;
+ final String arg = getNextArg();
+ if ("-d".equals(arg)) {
+ displayId = Integer.parseInt(getNextArgRequired());
+ }
+
+ final int windowingMode = mInterface.getWindowingMode(displayId);
+ pw.println("display windowing mode="
+ + WindowConfiguration.windowingModeToString(windowingMode) + " for displayId="
+ + displayId);
+
+ return 0;
+ }
+
private int runWmShellCommand(PrintWriter pw) {
String arg = getNextArg();
@@ -1512,6 +1549,9 @@ public class WindowManagerShellCommand extends ShellCommand {
// set-multi-window-config
runResetMultiWindowConfig();
+ // set-display-windowing-mode
+ mInternal.setWindowingMode(displayId, WINDOWING_MODE_UNDEFINED);
+
pw.println("Reset all settings for displayId=" + displayId);
return 0;
}
@@ -1552,6 +1592,12 @@ public class WindowManagerShellCommand extends ShellCommand {
printLetterboxHelp(pw);
printMultiWindowConfigHelp(pw);
+ pw.println(" set-display-windowing-mode [-d DISPLAY_ID] [mode_id]");
+ pw.println(" As mode_id, use " + WINDOWING_MODE_UNDEFINED + " for undefined, "
+ + WINDOWING_MODE_FREEFORM + " for freeform, " + WINDOWING_MODE_FULLSCREEN + " for"
+ + " fullscreen");
+ pw.println(" get-display-windowing-mode [-d DISPLAY_ID]");
+
pw.println(" reset [-d DISPLAY_ID]");
pw.println(" Reset all override settings.");
if (!IS_USER) {
diff --git a/services/core/java/com/android/server/wm/WindowOrganizerController.java b/services/core/java/com/android/server/wm/WindowOrganizerController.java
index f35f2b30c5d4..09a2bf9647e9 100644
--- a/services/core/java/com/android/server/wm/WindowOrganizerController.java
+++ b/services/core/java/com/android/server/wm/WindowOrganizerController.java
@@ -73,7 +73,7 @@ import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP
import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_SET_REPARENT_LEAF_TASK_IF_RELAUNCH;
import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_START_SHORTCUT;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_ORGANIZER;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_ORGANIZER;
import static com.android.server.wm.ActivityRecord.State.PAUSING;
import static com.android.server.wm.ActivityRecord.State.RESUMED;
import static com.android.server.wm.ActivityTaskManagerService.enforceTaskPermission;
@@ -130,7 +130,7 @@ import android.window.WindowContainerTransaction;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.protolog.ProtoLog;
-import com.android.internal.protolog.ProtoLogGroup;
+import com.android.internal.protolog.WmProtoLogGroups;
import com.android.internal.util.ArrayUtils;
import com.android.server.LocalServices;
import com.android.server.pm.LauncherAppsService.LauncherAppsServiceInternal;
@@ -571,7 +571,7 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
// {@link #applySyncTransaction} with Shell transition.
// We still want to apply and merge the transaction to the active sync
// because {@code shouldApplyIndependently} is {@code false}.
- ProtoLog.w(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS,
+ ProtoLog.w(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS,
"TaskFragmentTransaction changes are not collected in transition"
+ " because there is an ongoing sync for"
+ " applySyncTransaction().");
diff --git a/services/core/java/com/android/server/wm/WindowProcessController.java b/services/core/java/com/android/server/wm/WindowProcessController.java
index 2d9e8488a3e7..86adc1944371 100644
--- a/services/core/java/com/android/server/wm/WindowProcessController.java
+++ b/services/core/java/com/android/server/wm/WindowProcessController.java
@@ -27,7 +27,7 @@ import static android.os.InputConstants.DEFAULT_DISPATCHING_TIMEOUT_MILLIS;
import static android.view.WindowManager.TRANSIT_CLOSE;
import static android.view.WindowManager.TRANSIT_FLAG_APP_CRASHED;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION;
import static com.android.internal.util.Preconditions.checkArgument;
import static com.android.server.am.ProcessList.INVALID_ADJ;
import static com.android.server.wm.ActivityRecord.State.DESTROYED;
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index ab8384601f8f..08789122c607 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -100,19 +100,19 @@ import static android.view.WindowManagerPolicyConstants.TYPE_LAYER_MULTIPLIER;
import static android.view.WindowManagerPolicyConstants.TYPE_LAYER_OFFSET;
import static com.android.input.flags.Flags.removeInputChannelFromWindowstate;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ADD_REMOVE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_BACK_PREVIEW;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_DIMMER;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_RESIZE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STARTING_WINDOW;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_SYNC_ENGINE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_INSETS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ADD_REMOVE;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_BACK_PREVIEW;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_DIMMER;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS_LIGHT;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_RESIZE;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STARTING_WINDOW;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SYNC_ENGINE;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_INSETS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
import static com.android.server.policy.WindowManagerPolicy.TRANSIT_ENTER;
import static com.android.server.policy.WindowManagerPolicy.TRANSIT_EXIT;
diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java
index 82fa9d4db534..a934eea690f7 100644
--- a/services/core/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java
@@ -27,12 +27,12 @@ import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
import static android.view.WindowManager.TRANSIT_OLD_NONE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_DRAW;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STARTING_WINDOW;
-import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_SURFACE_ALLOC;
-import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_DRAW;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STARTING_WINDOW;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_SURFACE_ALLOC;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION;
diff --git a/services/core/java/com/android/server/wm/WindowToken.java b/services/core/java/com/android/server/wm/WindowToken.java
index 67bd5cb833ae..7e7ca12cd44e 100644
--- a/services/core/java/com/android/server/wm/WindowToken.java
+++ b/services/core/java/com/android/server/wm/WindowToken.java
@@ -18,10 +18,10 @@ package com.android.server.wm;
import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ADD_REMOVE;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS;
-import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_MOVEMENT;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ADD_REMOVE;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS;
+import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_MOVEMENT;
import static com.android.server.wm.WindowContainerChildProto.WINDOW_TOKEN;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java
index 4beb6a8a3480..a58da81c6396 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java
@@ -42,7 +42,6 @@ import android.app.admin.PolicyUpdateReceiver;
import android.app.admin.PolicyValue;
import android.app.admin.TargetUser;
import android.app.admin.UserRestrictionPolicyKey;
-import android.app.admin.flags.Flags;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -2100,17 +2099,13 @@ final class DevicePolicyEngine {
String tag = parser.getName();
switch (tag) {
case TAG_POLICY_KEY_ENTRY:
- if (Flags.dontReadPolicyDefinition()) {
- policyDefinition = PolicyDefinition.readFromXml(parser);
- if (policyDefinition != null) {
- policyKey = policyDefinition.getPolicyKey();
- }
- } else {
- policyKey = PolicyDefinition.readPolicyKeyFromXml(parser);
+ policyDefinition = PolicyDefinition.readFromXml(parser);
+ if (policyDefinition != null) {
+ policyKey = policyDefinition.getPolicyKey();
}
break;
case TAG_POLICY_STATE_ENTRY:
- if (Flags.dontReadPolicyDefinition() && policyDefinition == null) {
+ if (policyDefinition == null) {
Slogf.w(TAG, "Skipping policy state - unknown policy definition");
} else {
policyState = PolicyState.readFromXml(policyDefinition, parser);
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/PolicyState.java b/services/devicepolicy/java/com/android/server/devicepolicy/PolicyState.java
index b81348969f7d..a4fa0892da61 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/PolicyState.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/PolicyState.java
@@ -225,9 +225,11 @@ final class PolicyState<V> {
}
void saveToXml(TypedXmlSerializer serializer) throws IOException {
- serializer.startTag(/* namespace= */ null, TAG_POLICY_DEFINITION_ENTRY);
- mPolicyDefinition.saveToXml(serializer);
- serializer.endTag(/* namespace= */ null, TAG_POLICY_DEFINITION_ENTRY);
+ if (!Flags.dontWritePolicyDefinition()) {
+ serializer.startTag(/* namespace= */ null, TAG_POLICY_DEFINITION_ENTRY);
+ mPolicyDefinition.saveToXml(serializer);
+ serializer.endTag(/* namespace= */ null, TAG_POLICY_DEFINITION_ENTRY);
+ }
if (mCurrentResolvedPolicy != null) {
serializer.startTag(/* namespace= */ null, TAG_RESOLVED_VALUE_ENTRY);
@@ -298,18 +300,6 @@ final class PolicyState<V> {
+ (value == null ? "null" : value));
}
break;
- case TAG_POLICY_DEFINITION_ENTRY:
- if (Flags.dontReadPolicyDefinition()) {
- // Should be passed by the caller.
- Objects.requireNonNull(policyDefinition);
- } else {
- policyDefinition = PolicyDefinition.readFromXml(parser);
- if (policyDefinition == null) {
- Slogf.wtf(TAG, "Error Parsing TAG_POLICY_DEFINITION_ENTRY, "
- + "PolicyDefinition is null");
- }
- }
- break;
case TAG_RESOLVED_VALUE_ENTRY:
if (policyDefinition == null) {
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index ce6f1ecc9463..7ea1dcd9392d 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -109,7 +109,7 @@ import com.android.internal.os.RuntimeInit;
import com.android.internal.policy.AttributeCache;
import com.android.internal.protolog.ProtoLog;
import com.android.internal.protolog.ProtoLogConfigurationServiceImpl;
-import com.android.internal.protolog.ProtoLogGroup;
+import com.android.internal.protolog.WmProtoLogGroups;
import com.android.internal.util.ConcurrentUtils;
import com.android.internal.util.EmergencyAffordanceManager;
import com.android.internal.util.FrameworkStatsLog;
@@ -1114,7 +1114,7 @@ public final class SystemServer implements Dumpable {
}
t.traceBegin("InitializeProtoLog");
- ProtoLog.init(ProtoLogGroup.values());
+ ProtoLog.init(WmProtoLogGroups.values());
t.traceEnd();
// Platform compat service is used by ActivityManagerService, PackageManagerService, and
diff --git a/services/net/Android.bp b/services/net/Android.bp
index 927146db0a24..62748e8641f2 100644
--- a/services/net/Android.bp
+++ b/services/net/Android.bp
@@ -31,7 +31,6 @@ java_library_static {
filegroup {
name: "services-tethering-shared-srcs",
srcs: [
- ":framework-annotations",
"java/android/net/util/NetworkConstants.java",
],
visibility: [
diff --git a/services/profcollect/src/com/android/server/profcollect/Utils.java b/services/profcollect/src/com/android/server/profcollect/Utils.java
index b4e254442a19..a8016a0b641e 100644
--- a/services/profcollect/src/com/android/server/profcollect/Utils.java
+++ b/services/profcollect/src/com/android/server/profcollect/Utils.java
@@ -25,10 +25,14 @@ import android.util.Log;
import com.android.internal.os.BackgroundThread;
+import java.time.Instant;
import java.util.concurrent.ThreadLocalRandom;
public final class Utils {
+ private static Instant lastTraceTime = Instant.EPOCH;
+ private static final int TRACE_COOLDOWN_SECONDS = 30;
+
public static boolean withFrequency(String configName, int defaultFrequency) {
int threshold = DeviceConfig.getInt(
DeviceConfig.NAMESPACE_PROFCOLLECT_NATIVE_BOOT, configName, defaultFrequency);
@@ -40,6 +44,9 @@ public final class Utils {
if (mIProfcollect == null) {
return false;
}
+ if (isInCooldownOrReset()) {
+ return false;
+ }
BackgroundThread.get().getThreadHandler().post(() -> {
try {
mIProfcollect.trace_system(eventName);
@@ -54,6 +61,9 @@ public final class Utils {
if (mIProfcollect == null) {
return false;
}
+ if (isInCooldownOrReset()) {
+ return false;
+ }
BackgroundThread.get().getThreadHandler().postDelayed(() -> {
try {
mIProfcollect.trace_system(eventName);
@@ -69,6 +79,9 @@ public final class Utils {
if (mIProfcollect == null) {
return false;
}
+ if (isInCooldownOrReset()) {
+ return false;
+ }
BackgroundThread.get().getThreadHandler().post(() -> {
try {
mIProfcollect.trace_process(eventName,
@@ -80,4 +93,16 @@ public final class Utils {
});
return true;
}
+
+ /**
+ * Returns true if the last trace is within the cooldown period. If the last trace is outside
+ * the cooldown period, the last trace time is reset to the current time.
+ */
+ private static boolean isInCooldownOrReset() {
+ if (!Instant.now().isBefore(lastTraceTime.plusSeconds(TRACE_COOLDOWN_SECONDS))) {
+ lastTraceTime = Instant.now();
+ return false;
+ }
+ return true;
+ }
}
diff --git a/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java b/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java
index 255dcb083518..342c87a6b5f6 100644
--- a/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java
+++ b/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java
@@ -37,6 +37,7 @@ import static com.android.server.display.config.DisplayDeviceConfigTestUtilsKt.c
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertWithMessage;
+import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
@@ -1524,6 +1525,47 @@ public class DisplayManagerServiceTest {
}
@Test
+ public void testGetDisplayIdsForGroup() throws Exception {
+ DisplayManagerService displayManager = new DisplayManagerService(mContext, mBasicInjector);
+ displayManager.onBootPhase(SystemService.PHASE_BOOT_COMPLETED);
+ DisplayManagerInternal localService = displayManager.new LocalService();
+ LogicalDisplayMapper logicalDisplayMapper = displayManager.getLogicalDisplayMapper();
+ // Create display 1
+ FakeDisplayDevice displayDevice1 =
+ createFakeDisplayDevice(displayManager, new float[]{60f}, Display.TYPE_INTERNAL);
+ LogicalDisplay display1 = logicalDisplayMapper.getDisplayLocked(displayDevice1);
+ final int groupId1 = display1.getDisplayInfoLocked().displayGroupId;
+ // Create display 2
+ FakeDisplayDevice displayDevice2 =
+ createFakeDisplayDevice(displayManager, new float[]{60f}, Display.TYPE_INTERNAL);
+ LogicalDisplay display2 = logicalDisplayMapper.getDisplayLocked(displayDevice2);
+ final int groupId2 = display2.getDisplayInfoLocked().displayGroupId;
+ // Both displays should be in the same display group
+ assertEquals(groupId1, groupId2);
+ final int[] expectedDisplayIds = new int[]{
+ display1.getDisplayIdLocked(), display2.getDisplayIdLocked()};
+
+ final int[] displayIds = localService.getDisplayIdsForGroup(groupId1);
+
+ assertArrayEquals(expectedDisplayIds, displayIds);
+ }
+
+ @Test
+ public void testGetDisplayIdsForUnknownGroup() throws Exception {
+ final int unknownDisplayGroupId = 999;
+ DisplayManagerService displayManager = new DisplayManagerService(mContext, mBasicInjector);
+ displayManager.onBootPhase(SystemService.PHASE_BOOT_COMPLETED);
+ DisplayManagerInternal localService = displayManager.new LocalService();
+ LogicalDisplayMapper logicalDisplayMapper = displayManager.getLogicalDisplayMapper();
+ // Verify that display manager does not have display group
+ assertNull(logicalDisplayMapper.getDisplayGroupLocked(unknownDisplayGroupId));
+
+ final int[] displayIds = localService.getDisplayIdsForGroup(unknownDisplayGroupId);
+
+ assertEquals(0, displayIds.length);
+ }
+
+ @Test
public void testCreateVirtualDisplay_isValidProjection_notValid()
throws RemoteException {
when(mMockAppToken.asBinder()).thenReturn(mMockAppToken);
diff --git a/services/tests/displayservicetests/src/com/android/server/display/DisplayTopologyCoordinatorTest.kt b/services/tests/displayservicetests/src/com/android/server/display/DisplayTopologyCoordinatorTest.kt
new file mode 100644
index 000000000000..17af6335e25b
--- /dev/null
+++ b/services/tests/displayservicetests/src/com/android/server/display/DisplayTopologyCoordinatorTest.kt
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.display
+
+import android.util.DisplayMetrics
+import android.view.Display
+import android.view.DisplayInfo
+import org.junit.Before
+import org.junit.Test
+import org.mockito.ArgumentMatchers.anyDouble
+import org.mockito.ArgumentMatchers.anyInt
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.never
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
+import java.util.function.BooleanSupplier
+
+class DisplayTopologyCoordinatorTest {
+ private lateinit var coordinator: DisplayTopologyCoordinator
+ private val displayInfo = DisplayInfo()
+
+ private val mockTopology = mock<DisplayTopology>()
+ private val mockIsExtendedDisplayEnabled = mock<BooleanSupplier>()
+
+ @Before
+ fun setUp() {
+ displayInfo.displayId = 2
+ displayInfo.logicalWidth = 300
+ displayInfo.logicalHeight = 200
+ displayInfo.logicalDensityDpi = 100
+
+ val injector = object : DisplayTopologyCoordinator.Injector() {
+ override fun getTopology() = mockTopology
+ }
+ coordinator = DisplayTopologyCoordinator(injector, mockIsExtendedDisplayEnabled)
+ }
+
+ @Test
+ fun addDisplay() {
+ whenever(mockIsExtendedDisplayEnabled.asBoolean).thenReturn(true)
+
+ coordinator.onDisplayAdded(displayInfo)
+
+ val widthDp = displayInfo.logicalWidth * (DisplayMetrics.DENSITY_DEFAULT.toDouble()
+ / displayInfo.logicalDensityDpi)
+ val heightDp = displayInfo.logicalHeight * (DisplayMetrics.DENSITY_DEFAULT.toDouble()
+ / displayInfo.logicalDensityDpi)
+ verify(mockTopology).addDisplay(displayInfo.displayId, widthDp, heightDp)
+ }
+
+ @Test
+ fun addDisplay_extendedDisplaysDisabled() {
+ whenever(mockIsExtendedDisplayEnabled.asBoolean).thenReturn(false)
+
+ coordinator.onDisplayAdded(displayInfo)
+
+ verify(mockTopology, never()).addDisplay(anyInt(), anyDouble(), anyDouble())
+ }
+
+ @Test
+ fun addDisplay_notInDefaultDisplayGroup() {
+ whenever(mockIsExtendedDisplayEnabled.asBoolean).thenReturn(true)
+ displayInfo.displayGroupId = Display.DEFAULT_DISPLAY_GROUP + 1
+
+ coordinator.onDisplayAdded(displayInfo)
+
+ verify(mockTopology, never()).addDisplay(anyInt(), anyDouble(), anyDouble())
+ }
+} \ No newline at end of file
diff --git a/services/tests/displayservicetests/src/com/android/server/display/DisplayTopologyTest.kt b/services/tests/displayservicetests/src/com/android/server/display/DisplayTopologyTest.kt
new file mode 100644
index 000000000000..1fad14b0a062
--- /dev/null
+++ b/services/tests/displayservicetests/src/com/android/server/display/DisplayTopologyTest.kt
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.display
+
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+
+class DisplayTopologyTest {
+ private val topology = DisplayTopology()
+
+ @Test
+ fun oneDisplay() {
+ val displayId = 1
+ val width = 800.0
+ val height = 600.0
+
+ topology.addDisplay(displayId, width, height)
+
+ assertThat(topology.mPrimaryDisplayId).isEqualTo(displayId)
+
+ val display = topology.mRoot!!
+ assertThat(display.mDisplayId).isEqualTo(displayId)
+ assertThat(display.mWidth).isEqualTo(width)
+ assertThat(display.mHeight).isEqualTo(height)
+ assertThat(display.mChildren).isEmpty()
+ }
+
+ @Test
+ fun twoDisplays() {
+ val displayId1 = 1
+ val width1 = 800.0
+ val height1 = 600.0
+
+ val displayId2 = 2
+ val width2 = 1000.0
+ val height2 = 1500.0
+
+ topology.addDisplay(displayId1, width1, height1)
+ topology.addDisplay(displayId2, width2, height2)
+
+ assertThat(topology.mPrimaryDisplayId).isEqualTo(displayId1)
+
+ val display1 = topology.mRoot!!
+ assertThat(display1.mDisplayId).isEqualTo(displayId1)
+ assertThat(display1.mWidth).isEqualTo(width1)
+ assertThat(display1.mHeight).isEqualTo(height1)
+ assertThat(display1.mChildren).hasSize(1)
+
+ val display2 = display1.mChildren[0]
+ assertThat(display2.mDisplayId).isEqualTo(displayId2)
+ assertThat(display2.mWidth).isEqualTo(width2)
+ assertThat(display2.mHeight).isEqualTo(height2)
+ assertThat(display2.mChildren).isEmpty()
+ assertThat(display2.mPosition).isEqualTo(
+ DisplayTopology.TreeNode.Position.POSITION_TOP)
+ assertThat(display2.mOffset).isEqualTo(width1 / 2 - width2 / 2)
+ }
+
+ @Test
+ fun manyDisplays() {
+ val displayId1 = 1
+ val width1 = 800.0
+ val height1 = 600.0
+
+ val displayId2 = 2
+ val width2 = 1000.0
+ val height2 = 1500.0
+
+ topology.addDisplay(displayId1, width1, height1)
+ topology.addDisplay(displayId2, width2, height2)
+
+ val noOfDisplays = 30
+ for (i in 3..noOfDisplays) {
+ topology.addDisplay(/* displayId= */ i, width1, height1)
+ }
+
+ assertThat(topology.mPrimaryDisplayId).isEqualTo(displayId1)
+
+ val display1 = topology.mRoot!!
+ assertThat(display1.mDisplayId).isEqualTo(displayId1)
+ assertThat(display1.mWidth).isEqualTo(width1)
+ assertThat(display1.mHeight).isEqualTo(height1)
+ assertThat(display1.mChildren).hasSize(1)
+
+ val display2 = display1.mChildren[0]
+ assertThat(display2.mDisplayId).isEqualTo(displayId2)
+ assertThat(display2.mWidth).isEqualTo(width2)
+ assertThat(display2.mHeight).isEqualTo(height2)
+ assertThat(display2.mChildren).hasSize(1)
+ assertThat(display2.mPosition).isEqualTo(
+ DisplayTopology.TreeNode.Position.POSITION_TOP)
+ assertThat(display2.mOffset).isEqualTo(width1 / 2 - width2 / 2)
+
+ var display = display2
+ for (i in 3..noOfDisplays) {
+ display = display.mChildren[0]
+ assertThat(display.mDisplayId).isEqualTo(i)
+ assertThat(display.mWidth).isEqualTo(width1)
+ assertThat(display.mHeight).isEqualTo(height1)
+ // The last display should have no children
+ assertThat(display.mChildren).hasSize(if (i < noOfDisplays) 1 else 0)
+ assertThat(display.mPosition).isEqualTo(
+ DisplayTopology.TreeNode.Position.POSITION_RIGHT)
+ assertThat(display.mOffset).isEqualTo(0)
+ }
+ }
+} \ No newline at end of file
diff --git a/services/tests/powerservicetests/src/com/android/server/power/NotifierTest.java b/services/tests/powerservicetests/src/com/android/server/power/NotifierTest.java
index 07029268661e..a1db18232c09 100644
--- a/services/tests/powerservicetests/src/com/android/server/power/NotifierTest.java
+++ b/services/tests/powerservicetests/src/com/android/server/power/NotifierTest.java
@@ -268,7 +268,7 @@ public class NotifierTest {
}
@Test
- public void testOnGlobalWakefulnessChangeStarted() throws Exception {
+ public void testOnGlobalWakefulnessChangeStarted() {
createNotifier();
// GIVEN system is currently non-interactive
when(mPowerManagerFlags.isPerDisplayWakeByTouchEnabled()).thenReturn(false);
@@ -294,6 +294,96 @@ public class NotifierTest {
}
@Test
+ public void testOnGroupWakefulnessChangeStarted_newPowerGroup_perDisplayWakeDisabled() {
+ createNotifier();
+ // GIVEN power group is not yet known to Notifier and per-display wake by touch is disabled
+ final int groupId = 123;
+ final int changeReason = PowerManager.WAKE_REASON_TAP;
+ when(mPowerManagerFlags.isPerDisplayWakeByTouchEnabled()).thenReturn(false);
+
+ // WHEN a power group wakefulness change starts
+ mNotifier.onGroupWakefulnessChangeStarted(
+ groupId, WAKEFULNESS_AWAKE, changeReason, /* eventTime= */ 999);
+ mTestLooper.dispatchAll();
+
+ // THEN window manager policy is informed that device has started waking up
+ verify(mPolicy).startedWakingUp(groupId, changeReason);
+ verify(mDisplayManagerInternal, never()).getDisplayIds();
+ verify(mInputManagerInternal, never()).setDisplayInteractivities(any());
+ }
+
+ @Test
+ public void testOnGroupWakefulnessChangeStarted_interactivityNoChange_perDisplayWakeDisabled() {
+ createNotifier();
+ // GIVEN power group is not interactive and per-display wake by touch is disabled
+ final int groupId = 234;
+ final int changeReason = PowerManager.GO_TO_SLEEP_REASON_TIMEOUT;
+ when(mPowerManagerFlags.isPerDisplayWakeByTouchEnabled()).thenReturn(false);
+ mNotifier.onGroupWakefulnessChangeStarted(
+ groupId, WAKEFULNESS_ASLEEP, changeReason, /* eventTime= */ 999);
+ mTestLooper.dispatchAll();
+ verify(mPolicy, times(1)).startedGoingToSleep(groupId, changeReason);
+
+ // WHEN a power wakefulness change to not interactive starts
+ mNotifier.onGroupWakefulnessChangeStarted(
+ groupId, WAKEFULNESS_ASLEEP, changeReason, /* eventTime= */ 999);
+ mTestLooper.dispatchAll();
+
+ // THEN policy is only informed once of non-interactive wakefulness change
+ verify(mPolicy, times(1)).startedGoingToSleep(groupId, changeReason);
+ verify(mDisplayManagerInternal, never()).getDisplayIds();
+ verify(mInputManagerInternal, never()).setDisplayInteractivities(any());
+ }
+
+ @Test
+ public void testOnGroupWakefulnessChangeStarted_interactivityChange_perDisplayWakeDisabled() {
+ createNotifier();
+ // GIVEN power group is not interactive and per-display wake by touch is disabled
+ final int groupId = 345;
+ final int firstChangeReason = PowerManager.GO_TO_SLEEP_REASON_TIMEOUT;
+ when(mPowerManagerFlags.isPerDisplayWakeByTouchEnabled()).thenReturn(false);
+ mNotifier.onGroupWakefulnessChangeStarted(
+ groupId, WAKEFULNESS_ASLEEP, firstChangeReason, /* eventTime= */ 999);
+ mTestLooper.dispatchAll();
+
+ // WHEN a power wakefulness change to interactive starts
+ final int secondChangeReason = PowerManager.WAKE_REASON_TAP;
+ mNotifier.onGroupWakefulnessChangeStarted(
+ groupId, WAKEFULNESS_AWAKE, secondChangeReason, /* eventTime= */ 999);
+ mTestLooper.dispatchAll();
+
+ // THEN policy is informed of the change
+ verify(mPolicy).startedWakingUp(groupId, secondChangeReason);
+ verify(mDisplayManagerInternal, never()).getDisplayIds();
+ verify(mInputManagerInternal, never()).setDisplayInteractivities(any());
+ }
+
+ @Test
+ public void testOnGroupWakefulnessChangeStarted_perDisplayWakeByTouchEnabled() {
+ createNotifier();
+ // GIVEN per-display wake by touch flag is enabled
+ when(mPowerManagerFlags.isPerDisplayWakeByTouchEnabled()).thenReturn(true);
+ final int groupId = 456;
+ final int displayId1 = 1001;
+ final int displayId2 = 1002;
+ final int[] displays = new int[]{displayId1, displayId2};
+ when(mDisplayManagerInternal.getDisplayIds()).thenReturn(IntArray.wrap(displays));
+ when(mDisplayManagerInternal.getDisplayIdsForGroup(groupId)).thenReturn(displays);
+ final int changeReason = PowerManager.WAKE_REASON_TAP;
+
+ // WHEN power group wakefulness change started
+ mNotifier.onGroupWakefulnessChangeStarted(
+ groupId, WAKEFULNESS_AWAKE, changeReason, /* eventTime= */ 999);
+ mTestLooper.dispatchAll();
+
+ // THEN native input manager is updated that the displays are interactive
+ final SparseBooleanArray expectedDisplayInteractivities = new SparseBooleanArray();
+ expectedDisplayInteractivities.put(displayId1, true);
+ expectedDisplayInteractivities.put(displayId2, true);
+ verify(mInputManagerInternal).setDisplayInteractivities(expectedDisplayInteractivities);
+ }
+
+ @Test
public void testOnWakeLockListener_RemoteException_NoRethrow() throws RemoteException {
when(mPowerManagerFlags.improveWakelockLatency()).thenReturn(true);
createNotifier();
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsAtomTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsAtomTest.java
index c5157b373ee6..7d2bc178b993 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsAtomTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsAtomTest.java
@@ -24,6 +24,7 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockingDetails;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
@@ -56,6 +57,7 @@ public class BatteryUsageStatsAtomTest {
@Rule
public final RavenwoodRule mRavenwood = new RavenwoodRule();
+ private static final boolean DEBUG = false;
private static final int UID_0 = 1000;
private static final int UID_1 = 2000;
private static final int UID_2 = 3000;
@@ -70,6 +72,10 @@ public class BatteryUsageStatsAtomTest {
List<StatsEvent> actual = new ArrayList<>();
new BatteryStatsService.StatsPerUidLogger(statsLogger).logStats(bus, actual);
+ if (DEBUG) {
+ System.out.println(mockingDetails(statsLogger).printInvocations());
+ }
+
// Device-wide totals
verify(statsLogger).buildStatsEvent(
1000L,
@@ -609,7 +615,7 @@ public class BatteryUsageStatsAtomTest {
BatteryUsageStats batteryUsageStats = builder.build();
final byte[] bytes = batteryUsageStats.getStatsProto();
- assertThat(bytes.length).isGreaterThan(40000);
+ assertThat(bytes.length).isGreaterThan(20000);
assertThat(bytes.length).isLessThan(50000);
BatteryUsageStatsAtomsProto proto;
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsProviderTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsProviderTest.java
index 0e60156aecd1..b30224b8327b 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsProviderTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsProviderTest.java
@@ -47,6 +47,7 @@ import androidx.test.runner.AndroidJUnit4;
import com.android.internal.os.BatteryStatsHistoryIterator;
import com.android.internal.os.PowerProfile;
+import com.android.server.power.stats.processor.MultiStatePowerAttributor;
import org.junit.Before;
import org.junit.Rule;
@@ -74,7 +75,8 @@ public class BatteryUsageStatsProviderTest {
new BatteryUsageStatsRule(12345)
.createTempDirectory()
.setAveragePower(PowerProfile.POWER_FLASHLIGHT, 360.0)
- .setAveragePower(PowerProfile.POWER_AUDIO, 720.0);
+ .setAveragePower(PowerProfile.POWER_AUDIO, 720.0)
+ .setAveragePower(PowerProfile.POWER_BATTERY_CAPACITY, 4000.0);
private MockClock mMockClock = mStatsRule.getMockClock();
private Context mContext;
@@ -92,14 +94,7 @@ public class BatteryUsageStatsProviderTest {
@Test
public void test_getBatteryUsageStats() {
- BatteryStatsImpl batteryStats = prepareBatteryStats();
-
- BatteryUsageStatsProvider provider = new BatteryUsageStatsProvider(mContext,
- mock(PowerAttributor.class), mStatsRule.getPowerProfile(),
- mStatsRule.getCpuScalingPolicies(), mock(PowerStatsStore.class), mMockClock);
-
- final BatteryUsageStats batteryUsageStats =
- provider.getBatteryUsageStats(batteryStats, BatteryUsageStatsQuery.DEFAULT);
+ final BatteryUsageStats batteryUsageStats = prepareBatteryUsageStats(false);
final List<UidBatteryConsumer> uidBatteryConsumers =
batteryUsageStats.getUidBatteryConsumers();
@@ -128,8 +123,22 @@ public class BatteryUsageStatsProviderTest {
}
@Test
+ public void batteryLevelInfo_charging() {
+ final BatteryUsageStats batteryUsageStats = prepareBatteryUsageStats(true);
+ assertThat(batteryUsageStats.getBatteryCapacity()).isEqualTo(4000.0);
+ assertThat(batteryUsageStats.getChargeTimeRemainingMs()).isEqualTo(1_200_000);
+ }
+
+ @Test
+ public void batteryLevelInfo_onBattery() {
+ final BatteryUsageStats batteryUsageStats = prepareBatteryUsageStats(false);
+ assertThat(batteryUsageStats.getBatteryCapacity()).isEqualTo(4000.0);
+ assertThat(batteryUsageStats.getBatteryTimeRemainingMs()).isEqualTo(600_000);
+ }
+
+ @Test
public void test_selectPowerComponents() {
- BatteryStatsImpl batteryStats = prepareBatteryStats();
+ BatteryStatsImpl batteryStats = prepareBatteryStats(false);
BatteryUsageStatsProvider provider = new BatteryUsageStatsProvider(mContext,
mock(PowerAttributor.class), mStatsRule.getPowerProfile(),
@@ -155,8 +164,15 @@ public class BatteryUsageStatsProviderTest {
.isEqualTo(0);
}
- private BatteryStatsImpl prepareBatteryStats() {
+ private BatteryStatsImpl prepareBatteryStats(boolean plugInAtTheEnd) {
BatteryStatsImpl batteryStats = mStatsRule.getBatteryStats();
+ batteryStats.onSystemReady(mContext);
+
+ synchronized (batteryStats) {
+ batteryStats.setBatteryStateLocked(BatteryManager.BATTERY_STATUS_DISCHARGING,
+ 100, /* plugType */ 0, 90, 72, 3700, 3_600_000, 4_000_000, 0, 0,
+ 0, 0);
+ }
mStatsRule.setTime(10 * MINUTE_IN_MS, 10 * MINUTE_IN_MS);
synchronized (batteryStats) {
@@ -197,23 +213,64 @@ public class BatteryUsageStatsProviderTest {
ActivityManager.PROCESS_STATE_CACHED_EMPTY);
}
synchronized (batteryStats) {
- batteryStats.noteFlashlightOnLocked(APP_UID, 1000, 1000);
+ batteryStats.noteFlashlightOnLocked(APP_UID, 80 * MINUTE_IN_MS, 80 * MINUTE_IN_MS);
}
synchronized (batteryStats) {
- batteryStats.noteFlashlightOffLocked(APP_UID, 5000, 5000);
+ batteryStats.noteFlashlightOffLocked(APP_UID, 80 * MINUTE_IN_MS + 4000,
+ 80 * MINUTE_IN_MS + 4000);
}
synchronized (batteryStats) {
- batteryStats.noteAudioOnLocked(APP_UID, 10000, 10000);
+ batteryStats.noteAudioOnLocked(APP_UID, 90 * MINUTE_IN_MS, 90 * MINUTE_IN_MS);
}
synchronized (batteryStats) {
- batteryStats.noteAudioOffLocked(APP_UID, 20000, 20000);
+ batteryStats.noteAudioOffLocked(APP_UID, 90 * MINUTE_IN_MS + 10000,
+ 90 * MINUTE_IN_MS + 10000);
+ }
+
+ synchronized (batteryStats) {
+ batteryStats.setBatteryStateLocked(BatteryManager.BATTERY_STATUS_DISCHARGING,
+ 100, /* plugType */ 0, 60, 72, 3700, 2_600_000, 4_000_000, 0,
+ 100 * MINUTE_IN_MS, 100 * MINUTE_IN_MS, 21000);
+ }
+
+ synchronized (batteryStats) {
+ batteryStats.setBatteryStateLocked(BatteryManager.BATTERY_STATUS_DISCHARGING,
+ 100, /* plugType */ 0, 30, 72, 3700, 1_600_000, 4_000_000, 0,
+ 110 * MINUTE_IN_MS, 110 * MINUTE_IN_MS, 21000);
+ }
+
+ if (plugInAtTheEnd) {
+ synchronized (batteryStats) {
+ batteryStats.setBatteryStateLocked(BatteryManager.BATTERY_STATUS_CHARGING,
+ 100, /* plugType */ BatteryManager.BATTERY_PLUGGED_USB, 30, 72, 3700,
+ 1_600_000, 4_000_000, /* chargeTimeToFullSeconds */ 20 * 60,
+ 120 * MINUTE_IN_MS, 120 * MINUTE_IN_MS, 22000);
+ }
}
mStatsRule.setCurrentTime(54321);
return batteryStats;
}
+ private BatteryUsageStats prepareBatteryUsageStats(boolean plugInAtTheEnd) {
+ BatteryStatsImpl batteryStats = prepareBatteryStats(plugInAtTheEnd);
+
+ MultiStatePowerAttributor powerAttributor = new MultiStatePowerAttributor(mContext,
+ mock(PowerStatsStore.class), mStatsRule.getPowerProfile(),
+ mStatsRule.getCpuScalingPolicies(), () -> 3500, new PowerStatsUidResolver());
+ powerAttributor.setPowerComponentSupported(BatteryConsumer.POWER_COMPONENT_AUDIO,
+ true);
+ powerAttributor.setPowerComponentSupported(BatteryConsumer.POWER_COMPONENT_FLASHLIGHT,
+ true);
+
+ BatteryUsageStatsProvider provider = new BatteryUsageStatsProvider(mContext,
+ powerAttributor, mStatsRule.getPowerProfile(),
+ mStatsRule.getCpuScalingPolicies(), mock(PowerStatsStore.class), mMockClock);
+
+ return provider.getBatteryUsageStats(batteryStats, BatteryUsageStatsQuery.DEFAULT);
+ }
+
@Test
public void testWriteAndReadHistory() {
MockBatteryStatsImpl batteryStats = mStatsRule.getBatteryStats();
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsRule.java b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsRule.java
index 624b18948c49..52675f6f6cb7 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsRule.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsRule.java
@@ -376,6 +376,23 @@ public class BatteryUsageStatsRule implements TestRule {
return mBatteryStats.getUidStatsLocked(uid);
}
+ /**
+ * Adds the supplied duration to all three: current time, elapsed time and uptime
+ */
+ public void advanceTime(long millis) {
+ mMockClock.currentTime += millis;
+ mMockClock.realtime += millis;
+ mMockClock.uptime += millis;
+ }
+
+ /**
+ * Adds the supplied duration to current time and elapsed time, but not to uptime
+ */
+ public void advanceSuspendedTime(long millis) {
+ mMockClock.currentTime += millis;
+ mMockClock.realtime += millis;
+ }
+
public void setTime(long realtimeMs, long uptimeMs) {
mMockClock.currentTime = realtimeMs;
mMockClock.realtime = realtimeMs;
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsTest.java
index 3ae4c3245941..88624f28a2e5 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsTest.java
@@ -173,7 +173,9 @@ public class BatteryUsageStatsTest {
assertThat(dump).containsMatch(quote("(not on battery, screen off/doze)") + "\\s*"
+ "cpu: 123 apps: 123 duration: 456ms");
assertThat(dump).containsMatch(
- "UID 271: 1200 fg: 1777 bg: 2388 fgs: 1999 cached: 123\\s*"
+ quote("UID 271: 1200 "
+ + "fg: 1777 (1s 0ms) bg: 2388 (1s 500ms) fgs: 1999 (500ms) cached: 123")
+ + "\\s*"
+ quote("screen=300 cpu=400 (600ms) cpu:fg=1777 (7s 771ms) "
+ "cpu:bg=1888 (8s 881ms) cpu:fgs=1999 (9s 991ms) "
+ "cpu:cached=123 (456ms) FOO=500 (800ms) FOO:bg=500 (800ms)") + "\\s*"
@@ -199,7 +201,9 @@ public class BatteryUsageStatsTest {
assertThat(dump).contains("cpu: 20100 apps: 10100 duration: 20s 300ms");
assertThat(dump).contains("FOO: 20200 apps: 10200 duration: 20s 400ms");
assertThat(dump).containsMatch(
- "UID 271: 1200 fg: 1777 bg: 2388 fgs: 1999 cached: 123\\s*"
+ quote("UID 271: 1200 "
+ + "fg: 1777 (1s 0ms) bg: 2388 (1s 500ms) fgs: 1999 (500ms) cached: 123")
+ + "\\s*"
+ quote("screen=300 cpu=400 (600ms) cpu:fg=1777 (7s 771ms) "
+ "cpu:bg=1888 (8s 881ms) cpu:fgs=1999 (9s 991ms) "
+ "cpu:cached=123 (456ms) FOO=500 (800ms) FOO:bg=500 (800ms)"));
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/WakelockPowerStatsCollectorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/WakelockPowerStatsCollectorTest.java
new file mode 100644
index 000000000000..dd5df76ef83f
--- /dev/null
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/WakelockPowerStatsCollectorTest.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.server.power.stats;
+
+import static android.os.BatteryConsumer.POWER_COMPONENT_WAKELOCK;
+import static android.os.BatteryStats.WAKE_TYPE_PARTIAL;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+
+import android.content.Context;
+import android.os.Process;
+import android.platform.test.ravenwood.RavenwoodConfig;
+import android.platform.test.ravenwood.RavenwoodConfig.Config;
+
+import com.android.internal.os.PowerStats;
+import com.android.server.power.stats.format.WakelockPowerStatsLayout;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+public class WakelockPowerStatsCollectorTest {
+
+ @Config
+ public static final RavenwoodConfig sConfig = new RavenwoodConfig.Builder()
+ .setProvideMainThread(true)
+ .build();
+
+ @Rule
+ public final BatteryUsageStatsRule mStatsRule = new BatteryUsageStatsRule();
+
+ private static final int APP_UID1 = Process.FIRST_APPLICATION_UID + 42;
+ private static final int APP_UID2 = Process.FIRST_APPLICATION_UID + 101;
+
+ private MockBatteryStatsImpl mBatteryStats;
+
+ private final MockClock mClock = mStatsRule.getMockClock();
+ private PowerStats mPowerStats;
+ private WakelockPowerStatsLayout mStatsLayout = new WakelockPowerStatsLayout();
+
+ @Before
+ public void setup() {
+ mBatteryStats = new MockBatteryStatsImpl(mClock);
+ mBatteryStats.setPowerStatsCollectorEnabled(POWER_COMPONENT_WAKELOCK, true);
+ mBatteryStats.getPowerStatsCollector(POWER_COMPONENT_WAKELOCK)
+ .addConsumer(ps -> mPowerStats = ps);
+ mBatteryStats.onSystemReady(mock(Context.class));
+ }
+
+ @Test
+ public void collectStats() {
+ PowerStatsCollector powerStatsCollector = mBatteryStats.getPowerStatsCollector(
+ POWER_COMPONENT_WAKELOCK);
+
+ // Establish a baseline
+ powerStatsCollector.collectAndDeliverStats();
+
+ mBatteryStats.forceRecordAllHistory();
+
+ mStatsRule.advanceSuspendedTime(1000);
+
+ synchronized (mBatteryStats) {
+ mBatteryStats.setOnBatteryLocked(mClock.realtime, mClock.uptime, true, 0, 90, 1000);
+ }
+
+ mStatsRule.advanceSuspendedTime(3000);
+ synchronized (mBatteryStats) {
+ mBatteryStats.noteStartWakeLocked(APP_UID1, 0, null, "one", null, WAKE_TYPE_PARTIAL,
+ false);
+ }
+
+ mStatsRule.advanceTime(1000);
+ powerStatsCollector.collectAndDeliverStats();
+
+ assertThat(mStatsLayout.getUsageDuration(mPowerStats.stats)).isEqualTo(1000);
+ assertThat(mStatsLayout.getUidUsageDuration(mPowerStats.uidStats.get(APP_UID1)))
+ .isEqualTo(1000);
+
+ mStatsRule.advanceTime(3000);
+ synchronized (mBatteryStats) {
+ mBatteryStats.noteStartWakeLocked(APP_UID2, 0, null, "two", null, WAKE_TYPE_PARTIAL,
+ false);
+ }
+
+ mStatsRule.advanceTime(2000);
+ synchronized (mBatteryStats) {
+ mBatteryStats.noteStopWakeLocked(APP_UID1, 0, null, "one", null, WAKE_TYPE_PARTIAL);
+ }
+
+ mStatsRule.advanceTime(5000);
+ synchronized (mBatteryStats) {
+ mBatteryStats.noteStopWakeLocked(APP_UID2, 0, null, "two", null, WAKE_TYPE_PARTIAL);
+ }
+ mStatsRule.advanceSuspendedTime(7000);
+
+ // Plug in
+ synchronized (mBatteryStats) {
+ mBatteryStats.setOnBatteryLocked(mClock.realtime, mClock.uptime, false, 0, 90, 1000);
+ }
+
+ mStatsRule.advanceSuspendedTime(1000);
+ powerStatsCollector.collectAndDeliverStats();
+
+ // Based on the uptime, the device was awake for (3000+2000+5000) = 10000 ms
+ assertThat(mStatsLayout.getUsageDuration(mPowerStats.stats)).isEqualTo(10000);
+ assertThat(mStatsLayout.getUidUsageDuration(mPowerStats.uidStats.get(APP_UID1)))
+ .isEqualTo(4000); // 3000 + (2000/2) -- the 2000 ms overlap is split two-way
+ assertThat(mStatsLayout.getUidUsageDuration(mPowerStats.uidStats.get(APP_UID2)))
+ .isEqualTo(6000); // (2000/2) + 5000
+ }
+}
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BasePowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BasePowerStatsProcessorTest.java
new file mode 100644
index 000000000000..f7a16383974d
--- /dev/null
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BasePowerStatsProcessorTest.java
@@ -0,0 +1,260 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.power.stats.processor;
+
+import static android.os.BatteryConsumer.POWER_COMPONENT_BASE;
+import static android.os.BatteryConsumer.PROCESS_STATE_BACKGROUND;
+import static android.os.BatteryConsumer.PROCESS_STATE_CACHED;
+import static android.os.BatteryConsumer.PROCESS_STATE_FOREGROUND;
+import static android.os.BatteryConsumer.PROCESS_STATE_FOREGROUND_SERVICE;
+import static android.os.BatteryConsumer.PROCESS_STATE_UNSPECIFIED;
+
+import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.POWER_STATE_BATTERY;
+import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.SCREEN_STATE_ON;
+import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.SCREEN_STATE_OTHER;
+import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_POWER;
+import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_PROCESS_STATE;
+import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_SCREEN;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+
+import android.os.BatteryConsumer;
+import android.os.BatteryUsageStats;
+import android.os.Process;
+import android.os.UidBatteryConsumer;
+
+import com.android.internal.os.PowerStats;
+import com.android.server.power.stats.PowerStatsStore;
+import com.android.server.power.stats.format.BasePowerStatsLayout;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.util.List;
+
+public class BasePowerStatsProcessorTest {
+ private static final int APP_UID1 = Process.FIRST_APPLICATION_UID + 42;
+ private static final int APP_UID2 = Process.FIRST_APPLICATION_UID + 101;
+
+ private static AggregatedPowerStatsConfig sAggregatedPowerStatsConfig;
+
+ @BeforeClass
+ public static void setup() {
+ sAggregatedPowerStatsConfig = new AggregatedPowerStatsConfig();
+ sAggregatedPowerStatsConfig.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_BASE)
+ .trackDeviceStates(
+ AggregatedPowerStatsConfig.STATE_POWER,
+ AggregatedPowerStatsConfig.STATE_SCREEN)
+ .trackUidStates(
+ AggregatedPowerStatsConfig.STATE_POWER,
+ AggregatedPowerStatsConfig.STATE_SCREEN,
+ AggregatedPowerStatsConfig.STATE_PROCESS_STATE)
+ .setProcessorSupplier(() -> new BasePowerStatsProcessor(() -> 4000));
+ }
+
+ @Test
+ public void processPowerStats() {
+ AggregatedPowerStats aggregatedPowerStats = prepareAggregatedPowerStats(true);
+
+ PowerComponentAggregatedPowerStats stats = aggregatedPowerStats.getPowerComponentStats(
+ BatteryConsumer.POWER_COMPONENT_BASE);
+
+ PowerStats.Descriptor descriptor = stats.getPowerStatsDescriptor();
+ BasePowerStatsLayout statsLayout = new BasePowerStatsLayout(descriptor);
+
+ long[] deviceStats = new long[descriptor.statsArrayLength];
+ stats.getDeviceStats(deviceStats, states(POWER_STATE_BATTERY, SCREEN_STATE_ON));
+ assertThat(statsLayout.getUsageDuration(deviceStats)).isEqualTo(2500);
+
+ stats.getDeviceStats(deviceStats, states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER));
+ assertThat(statsLayout.getUsageDuration(deviceStats)).isEqualTo(8500);
+
+ long[] uidStats = new long[descriptor.uidStatsArrayLength];
+ stats.getUidStats(uidStats, APP_UID1,
+ states(POWER_STATE_BATTERY, SCREEN_STATE_ON, PROCESS_STATE_FOREGROUND));
+ assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(2500);
+ stats.getUidStats(uidStats, APP_UID1,
+ states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_BACKGROUND));
+ assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(2500);
+ stats.getUidStats(uidStats, APP_UID1,
+ states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_FOREGROUND_SERVICE));
+ assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(5000);
+ stats.getUidStats(uidStats, APP_UID1,
+ states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_UNSPECIFIED));
+ assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(0);
+
+ stats.getUidStats(uidStats, APP_UID2,
+ states(POWER_STATE_BATTERY, SCREEN_STATE_ON, PROCESS_STATE_CACHED));
+ assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(2500);
+ stats.getUidStats(uidStats, APP_UID2,
+ states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_CACHED));
+ assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(8500);
+ stats.getUidStats(uidStats, APP_UID2,
+ states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_UNSPECIFIED));
+ assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(0);
+ }
+
+ @Test
+ public void fuelgaugeAvailable() {
+ AggregatedPowerStats aggregatedPowerStats = prepareAggregatedPowerStats(true);
+
+ PowerComponentAggregatedPowerStats stats = aggregatedPowerStats.getPowerComponentStats(
+ BatteryConsumer.POWER_COMPONENT_BASE);
+
+ PowerStats.Descriptor descriptor = stats.getPowerStatsDescriptor();
+ BasePowerStatsLayout statsLayout = new BasePowerStatsLayout(descriptor);
+
+ long[] deviceStats = new long[descriptor.statsArrayLength];
+ double dischargeDuration = 0;
+ stats.getDeviceStats(deviceStats, states(POWER_STATE_BATTERY, SCREEN_STATE_ON));
+ dischargeDuration += statsLayout.getBatteryDischargeDuration(deviceStats);
+ assertThat(statsLayout.getBatteryDischargePercent(deviceStats)).isWithin(0.1).of(2.5);
+ // (2,000,000 uAh - 900,000 uAh) * 2,500 ms / 11,000 ms
+ assertThat(statsLayout.getBatteryDischargeUah(deviceStats)).isEqualTo(250_000);
+
+ stats.getDeviceStats(deviceStats, states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER));
+ dischargeDuration += statsLayout.getBatteryDischargeDuration(deviceStats);
+ assertThat(statsLayout.getBatteryDischargePercent(deviceStats)).isWithin(0.1).of(8.5);
+ // (2,000,000 uAh - 900,000 uAh) * 8,500 ms / 11,000 ms
+ assertThat(statsLayout.getBatteryDischargeUah(deviceStats)).isEqualTo(850_000);
+
+ // Allow for rounding errors
+ assertThat(dischargeDuration).isWithin(5).of(6000);
+ }
+
+ @Test
+ public void fuelgaugeUnavailable() {
+ AggregatedPowerStats aggregatedPowerStats = prepareAggregatedPowerStats(false);
+
+ PowerComponentAggregatedPowerStats stats = aggregatedPowerStats.getPowerComponentStats(
+ BatteryConsumer.POWER_COMPONENT_BASE);
+
+ PowerStats.Descriptor descriptor = stats.getPowerStatsDescriptor();
+ BasePowerStatsLayout statsLayout = new BasePowerStatsLayout(descriptor);
+
+ long[] deviceStats = new long[descriptor.statsArrayLength];
+ double dischargeDuration = 0;
+ stats.getDeviceStats(deviceStats, states(POWER_STATE_BATTERY, SCREEN_STATE_ON));
+ dischargeDuration += statsLayout.getBatteryDischargeDuration(deviceStats);
+ assertThat(statsLayout.getBatteryDischargePercent(deviceStats)).isWithin(0.1).of(2.5);
+ // 11% * 4_000_000 uAh * 2,500 ms / 11,000 ms
+ assertThat(statsLayout.getBatteryDischargeUah(deviceStats)).isEqualTo(100_000);
+
+ stats.getDeviceStats(deviceStats, states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER));
+ dischargeDuration += statsLayout.getBatteryDischargeDuration(deviceStats);
+ assertThat(statsLayout.getBatteryDischargePercent(deviceStats)).isWithin(0.1).of(8.5);
+ assertThat(statsLayout.getBatteryDischargeUah(deviceStats)).isEqualTo(340_000);
+
+ // Allow for rounding errors
+ assertThat(dischargeDuration).isWithin(5).of(6000);
+ }
+
+ @Test
+ public void exporter() throws Exception {
+ AggregatedPowerStats aggregatedPowerStats = prepareAggregatedPowerStats(true);
+
+ PowerStatsStore powerStatsStore = mock(PowerStatsStore.class);
+ PowerStatsAggregator powerStatsAggregator = new PowerStatsAggregator(
+ sAggregatedPowerStatsConfig);
+ PowerStatsExporter exporter = new PowerStatsExporter(powerStatsStore,
+ powerStatsAggregator, /* batterySessionTimeSpanSlackMillis */ 0);
+
+ BatteryUsageStats.Builder builder = new BatteryUsageStats.Builder(new String[0],
+ /* includePowerModels */ false,
+ /* includeProcessStateData */ true,
+ /* includeScreenStateData */ true,
+ /* includesPowerStateData */ true,
+ /* minConsumedPowerThreshold */ 0);
+ exporter.populateBatteryUsageStatsBuilder(builder, aggregatedPowerStats);
+ BatteryUsageStats batteryUsageStats = builder.build();
+
+ List<UidBatteryConsumer> uidBatteryConsumers = batteryUsageStats.getUidBatteryConsumers();
+ UidBatteryConsumer app1 = uidBatteryConsumers.stream()
+ .filter(u->u.getUid() == APP_UID1).findAny().get();
+ assertThat(app1.getUsageDurationMillis(
+ new BatteryConsumer.Dimensions(POWER_COMPONENT_BASE, PROCESS_STATE_FOREGROUND,
+ BatteryConsumer.SCREEN_STATE_ON, BatteryConsumer.POWER_STATE_BATTERY)))
+ .isEqualTo(2500);
+ assertThat(app1.getUsageDurationMillis(
+ new BatteryConsumer.Dimensions(POWER_COMPONENT_BASE, PROCESS_STATE_BACKGROUND,
+ BatteryConsumer.SCREEN_STATE_OTHER, BatteryConsumer.POWER_STATE_BATTERY)))
+ .isEqualTo(2500);
+ assertThat(app1.getUsageDurationMillis(
+ new BatteryConsumer.Dimensions(POWER_COMPONENT_BASE,
+ PROCESS_STATE_FOREGROUND_SERVICE,
+ BatteryConsumer.SCREEN_STATE_OTHER, BatteryConsumer.POWER_STATE_BATTERY)))
+ .isEqualTo(5000);
+
+ assertThat(app1.getTimeInProcessStateMs(PROCESS_STATE_FOREGROUND)).isEqualTo(2500);
+ assertThat(app1.getTimeInProcessStateMs(PROCESS_STATE_BACKGROUND)).isEqualTo(2500);
+ assertThat(app1.getTimeInProcessStateMs(PROCESS_STATE_FOREGROUND_SERVICE)).isEqualTo(5000);
+ assertThat(app1.getTimeInProcessStateMs(PROCESS_STATE_UNSPECIFIED)).isEqualTo(0);
+
+ UidBatteryConsumer app2 = uidBatteryConsumers.stream()
+ .filter(u->u.getUid() == APP_UID2).findAny().get();
+ assertThat(app2.getUsageDurationMillis(
+ new BatteryConsumer.Dimensions(POWER_COMPONENT_BASE, PROCESS_STATE_CACHED,
+ BatteryConsumer.SCREEN_STATE_ON, BatteryConsumer.POWER_STATE_BATTERY)))
+ .isEqualTo(2500);
+ assertThat(app2.getUsageDurationMillis(
+ new BatteryConsumer.Dimensions(POWER_COMPONENT_BASE, PROCESS_STATE_CACHED,
+ BatteryConsumer.SCREEN_STATE_OTHER, BatteryConsumer.POWER_STATE_BATTERY)))
+ .isEqualTo(8500);
+
+ assertThat(app2.getTimeInProcessStateMs(PROCESS_STATE_CACHED)).isEqualTo(11_000);
+ assertThat(app2.getTimeInProcessStateMs(PROCESS_STATE_FOREGROUND)).isEqualTo(0);
+ assertThat(app2.getTimeInProcessStateMs(PROCESS_STATE_BACKGROUND)).isEqualTo(0);
+ assertThat(app2.getTimeInProcessStateMs(PROCESS_STATE_FOREGROUND_SERVICE)).isEqualTo(0);
+ assertThat(app2.getTimeInProcessStateMs(PROCESS_STATE_UNSPECIFIED)).isEqualTo(0);
+
+ batteryUsageStats.close();
+ }
+
+ private static AggregatedPowerStats prepareAggregatedPowerStats(boolean fuelgaugeAvailable) {
+ AggregatedPowerStats stats = new AggregatedPowerStats(sAggregatedPowerStatsConfig);
+ stats.getPowerComponentStats(BatteryConsumer.POWER_COMPONENT_BASE);
+ stats.start(0);
+
+ stats.noteBatteryLevel(50, fuelgaugeAvailable ? 2_000_000 : 0, 0);
+
+ stats.setDeviceState(STATE_POWER, POWER_STATE_BATTERY, 0);
+ stats.setDeviceState(STATE_SCREEN, SCREEN_STATE_ON, 0);
+ stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND, 0);
+ stats.setUidState(APP_UID2, STATE_PROCESS_STATE, PROCESS_STATE_CACHED, 0);
+
+ // Turn the screen off after 2.5 seconds
+ stats.setDeviceState(STATE_SCREEN, SCREEN_STATE_OTHER, 2500);
+ stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_BACKGROUND, 2500);
+ stats.noteBatteryLevel(45, fuelgaugeAvailable ? 1_400_000 : 0, 3000);
+ stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND_SERVICE, 5000);
+ stats.noteBatteryLevel(39, fuelgaugeAvailable ? 900_000 : 0, 6000);
+
+ // Kill the app at the 10_000 mark
+ stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_UNSPECIFIED, 10_000);
+
+ stats.noteBatteryLevel(49, fuelgaugeAvailable ? 1_200_000 : 0, 10_000);
+
+ stats.finish(11_000);
+ return stats;
+ }
+
+ private int[] states(int... states) {
+ return states;
+ }
+}
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java
index 6dfc22077357..2c580e5ab0d2 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java
@@ -479,6 +479,7 @@ public class BluetoothPowerStatsProcessorTest {
new AggregatedPowerStats(config).getPowerComponentStats(
BatteryConsumer.POWER_COMPONENT_BLUETOOTH);
+ aggregatedStats.start(0);
aggregatedStats.setState(STATE_POWER, POWER_STATE_OTHER, 0);
aggregatedStats.setState(STATE_SCREEN, SCREEN_STATE_ON, 0);
aggregatedStats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND, 0);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CpuPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CpuPowerStatsProcessorTest.java
index 693861539922..cb9d9b12a2fc 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CpuPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CpuPowerStatsProcessorTest.java
@@ -43,6 +43,7 @@ import com.android.internal.os.PowerProfile;
import com.android.internal.os.PowerStats;
import com.android.server.power.stats.BatteryUsageStatsRule;
import com.android.server.power.stats.format.CpuPowerStatsLayout;
+import com.android.server.power.stats.format.WakelockPowerStatsLayout;
import org.junit.Before;
import org.junit.Rule;
@@ -78,21 +79,37 @@ public class CpuPowerStatsProcessorTest {
.setCpuPowerBracket(0, 1, 1)
.setCpuPowerBracket(2, 0, 2);
- private AggregatedPowerStatsConfig.PowerComponent mConfig;
+ private AggregatedPowerStatsConfig mConfig;
+ private AggregatedPowerStatsConfig.PowerComponent mCpuPowerComponentConfig;
+ private AggregatedPowerStats mAggregatedPowerStats;
private MockPowerComponentAggregatedPowerStats mStats;
+ private WakelockPowerStatsLayout mWakelockStatsLayout;
+ private PowerStats.Descriptor mWakelockDescriptor;
@Before
public void setup() {
- mConfig = new AggregatedPowerStatsConfig.PowerComponent(BatteryConsumer.POWER_COMPONENT_CPU)
+ mConfig = new AggregatedPowerStatsConfig();
+ mConfig.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_WAKELOCK)
.trackDeviceStates(STATE_POWER, STATE_SCREEN)
- .trackUidStates(STATE_POWER, STATE_SCREEN, STATE_PROCESS_STATE)
+ .trackUidStates(STATE_POWER, STATE_SCREEN, STATE_PROCESS_STATE);
+ mCpuPowerComponentConfig = mConfig.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_CPU,
+ BatteryConsumer.POWER_COMPONENT_WAKELOCK)
.setProcessorSupplier(() -> new CpuPowerStatsProcessor(mStatsRule.getPowerProfile(),
mStatsRule.getCpuScalingPolicies()));
+ mAggregatedPowerStats = new AggregatedPowerStats(mConfig);
+
+ mWakelockStatsLayout = new WakelockPowerStatsLayout();
+ PersistableBundle extras = new PersistableBundle();
+ mWakelockStatsLayout.toExtras(extras);
+ mWakelockDescriptor = new PowerStats.Descriptor(BatteryConsumer.POWER_COMPONENT_WAKELOCK,
+ mWakelockStatsLayout.getDeviceStatsArrayLength(), null, 0,
+ mWakelockStatsLayout.getUidStatsArrayLength(), extras);
}
@Test
public void powerProfileModel() {
- mStats = new MockPowerComponentAggregatedPowerStats(mConfig, false);
+ mStats = new MockPowerComponentAggregatedPowerStats(mAggregatedPowerStats,
+ mCpuPowerComponentConfig, false);
mStats.start(0);
mStats.setDeviceStats(
@@ -136,7 +153,23 @@ public class CpuPowerStatsProcessorTest {
@Test
public void energyConsumerModel() {
- mStats = new MockPowerComponentAggregatedPowerStats(mConfig, true);
+ PowerComponentAggregatedPowerStats wakelockStats =
+ mAggregatedPowerStats.getPowerComponentStats(
+ BatteryConsumer.POWER_COMPONENT_WAKELOCK);
+
+ wakelockStats.setPowerStatsDescriptor(mWakelockDescriptor);
+ long[] wakelockDeviceStats = new long[mWakelockDescriptor.statsArrayLength];
+ mWakelockStatsLayout.setDevicePowerEstimate(wakelockDeviceStats, 1.000);
+ wakelockStats.setDeviceStats(states(POWER_STATE_BATTERY, SCREEN_STATE_ON),
+ wakelockDeviceStats);
+ long[] wakelockUidStats = new long[mWakelockDescriptor.uidStatsArrayLength];
+ mWakelockStatsLayout.setUidPowerEstimate(wakelockUidStats, 0.100);
+ wakelockStats.setUidStats(42,
+ states(POWER_STATE_BATTERY, SCREEN_STATE_ON, PROCESS_STATE_BACKGROUND),
+ wakelockUidStats);
+
+ mStats = new MockPowerComponentAggregatedPowerStats(mAggregatedPowerStats,
+ mCpuPowerComponentConfig, true);
mStats.start(0);
mStats.setDeviceStats(
@@ -146,7 +179,7 @@ public class CpuPowerStatsProcessorTest {
values(2000, 1000), // clusters
values(5000), // uptime
values(5_000_000L, 6_000_000L)), // energy, uC
- 3.055555);
+ 2.055555); // 3.055555 - 1.000 (wakelock power)
mStats.setDeviceStats(
states(POWER_STATE_OTHER, SCREEN_STATE_ON),
concat(
@@ -171,7 +204,8 @@ public class CpuPowerStatsProcessorTest {
values(900, 1000, 1500), 1.161902);
mStats.setUidStats(42,
states(POWER_STATE_BATTERY, SCREEN_STATE_ON, PROCESS_STATE_BACKGROUND),
- values(600, 500, 300), 0.355406);
+ values(600, 500, 300),
+ 0.255406); // 0.355406 - 0.100 (wakelock power)
mStats.setUidStats(42,
states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED),
values(1500, 2000, 1000), 0.80773);
@@ -209,10 +243,10 @@ public class CpuPowerStatsProcessorTest {
private final HashMap<String, Double> mExpectedDevicePower = new HashMap<>();
private final HashMap<String, Double> mExpectedUidPower = new HashMap<>();
- MockPowerComponentAggregatedPowerStats(
- AggregatedPowerStatsConfig.PowerComponent config,
+ MockPowerComponentAggregatedPowerStats(AggregatedPowerStats aggregatedPowerStats,
+ AggregatedPowerStatsConfig.PowerComponent powerComponent,
boolean useEnergyConsumers) {
- super(new AggregatedPowerStats(new AggregatedPowerStatsConfig()), config);
+ super(aggregatedPowerStats, powerComponent);
mStatsLayout = new CpuPowerStatsLayout(useEnergyConsumers ? 2 : 0, 2,
new int[]{0, 1, 2});
PersistableBundle extras = new PersistableBundle();
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java
index 80358c5768f1..4ed44a0563e3 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java
@@ -182,6 +182,7 @@ public class MobileRadioPowerStatsProcessorTest {
PowerComponentAggregatedPowerStats aggregatedStats = new AggregatedPowerStats(config)
.getPowerComponentStats(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO);
+ aggregatedStats.start(0);
aggregatedStats.setState(STATE_POWER, POWER_STATE_OTHER, 0);
aggregatedStats.setState(STATE_SCREEN, SCREEN_STATE_ON, 0);
aggregatedStats.setUidState(APP_UID, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND, 0);
@@ -419,6 +420,7 @@ public class MobileRadioPowerStatsProcessorTest {
PowerComponentAggregatedPowerStats aggregatedStats = new AggregatedPowerStats(config)
.getPowerComponentStats(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO);
+ aggregatedStats.start(0);
aggregatedStats.setState(STATE_POWER, POWER_STATE_OTHER, 0);
aggregatedStats.setState(STATE_SCREEN, SCREEN_STATE_ON, 0);
aggregatedStats.setUidState(APP_UID, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND, 0);
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/PowerStatsExporterTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/PowerStatsExporterTest.java
index 024743d9e098..8475d5696252 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/PowerStatsExporterTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/PowerStatsExporterTest.java
@@ -132,7 +132,7 @@ public class PowerStatsExporterTest {
null, 0, mCpuStatsArrayLayout.getUidStatsArrayLength(), extras);
mPowerAttributor = new MultiStatePowerAttributor(mock(Context.class), mPowerStatsStore,
- mock(PowerProfile.class), mock(CpuScalingPolicies.class),
+ mock(PowerProfile.class), mock(CpuScalingPolicies.class), () -> 3500,
mock(PowerStatsUidResolver.class));
}
@@ -340,8 +340,7 @@ public class PowerStatsExporterTest {
AggregatedPowerStats aps,
boolean includeProcessStateData, boolean includeScreenStateData,
boolean includesPowerStateData) {
- PowerStatsExporter
- exporter = new PowerStatsExporter(mPowerStatsStore,
+ PowerStatsExporter exporter = new PowerStatsExporter(mPowerStatsStore,
mPowerStatsAggregator, /* batterySessionTimeSpanSlackMillis */ 0);
BatteryUsageStats.Builder builder = new BatteryUsageStats.Builder(new String[0], false,
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java
new file mode 100644
index 000000000000..f64dc083ca1a
--- /dev/null
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java
@@ -0,0 +1,177 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.server.power.stats.processor;
+
+import static android.os.BatteryConsumer.POWER_COMPONENT_WAKELOCK;
+import static android.os.BatteryConsumer.PROCESS_STATE_BACKGROUND;
+import static android.os.BatteryConsumer.PROCESS_STATE_FOREGROUND;
+import static android.os.BatteryConsumer.PROCESS_STATE_FOREGROUND_SERVICE;
+
+import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.POWER_STATE_BATTERY;
+import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.POWER_STATE_OTHER;
+import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.SCREEN_STATE_ON;
+import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_POWER;
+import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_PROCESS_STATE;
+import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_SCREEN;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+
+import android.os.BatteryConsumer;
+import android.os.PersistableBundle;
+import android.os.Process;
+import android.platform.test.ravenwood.RavenwoodConfig;
+
+import com.android.internal.os.BatteryStatsHistory;
+import com.android.internal.os.MonotonicClock;
+import com.android.internal.os.PowerProfile;
+import com.android.internal.os.PowerStats;
+import com.android.server.power.stats.BatteryUsageStatsRule;
+import com.android.server.power.stats.format.WakelockPowerStatsLayout;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+public class WakelockPowerStatsProcessorTest {
+ @RavenwoodConfig.Config
+ public static final RavenwoodConfig sConfig = new RavenwoodConfig.Builder()
+ .setProvideMainThread(true)
+ .build();
+
+ @Rule
+ public final BatteryUsageStatsRule mStatsRule = new BatteryUsageStatsRule()
+ .setAveragePower(PowerProfile.POWER_CPU_IDLE, 720);
+
+ public static final int START_TIME = 12345;
+ private static final int APP_UID1 = Process.FIRST_APPLICATION_UID + 42;
+ private static final int APP_UID2 = Process.FIRST_APPLICATION_UID + 101;
+ private static final double PRECISION = 0.00001;
+
+ private PowerStatsAggregator mPowerStatsAggregator;
+
+ @Before
+ public void setup() {
+ AggregatedPowerStatsConfig config = new AggregatedPowerStatsConfig();
+ config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_WAKELOCK)
+ .trackDeviceStates(STATE_POWER, STATE_SCREEN)
+ .trackUidStates(STATE_POWER, STATE_SCREEN, STATE_PROCESS_STATE)
+ .setProcessorSupplier(
+ () -> new WakelockPowerStatsProcessor(mStatsRule.getPowerProfile()));
+ mPowerStatsAggregator = new PowerStatsAggregator(config);
+ }
+
+ @Test
+ public void wakelockDuration() {
+ BatteryStatsHistory history = prepareBatteryStatsHistory();
+ mPowerStatsAggregator.aggregatePowerStats(history, 0, Long.MAX_VALUE,
+ this::assertAggregatedPowerStats);
+ }
+
+ private BatteryStatsHistory prepareBatteryStatsHistory() {
+ WakelockPowerStatsLayout statsLayout = new WakelockPowerStatsLayout();
+ PersistableBundle extras = new PersistableBundle();
+ statsLayout.toExtras(extras);
+ PowerStats.Descriptor descriptor = new PowerStats.Descriptor(
+ BatteryConsumer.POWER_COMPONENT_WAKELOCK,
+ statsLayout.getDeviceStatsArrayLength(), null, 0,
+ statsLayout.getUidStatsArrayLength(), extras);
+ PowerStats ps = new PowerStats(descriptor);
+ long[] uidStats = new long[descriptor.uidStatsArrayLength];
+
+ BatteryStatsHistory history = new BatteryStatsHistory(null, null, 0, 10000,
+ mock(BatteryStatsHistory.HistoryStepDetailsCalculator.class),
+ mStatsRule.getMockClock(),
+ new MonotonicClock(START_TIME, mStatsRule.getMockClock()), null, null);
+ history.forceRecordAllHistory();
+ history.startRecordingHistory(0, 0, false);
+ history.recordProcessStateChange(0, 0, APP_UID1, PROCESS_STATE_BACKGROUND);
+ history.recordProcessStateChange(0, 0, APP_UID2, PROCESS_STATE_FOREGROUND);
+
+ // Establish a baseline
+ history.recordPowerStats(0, 0, ps);
+
+ ps.durationMs = 5000;
+ statsLayout.setUsageDuration(ps.stats, 2000);
+ statsLayout.setUidUsageDuration(uidStats, 2000);
+ ps.uidStats.put(APP_UID1, uidStats.clone());
+
+ history.recordPowerStats(5000, 2000, ps);
+
+ history.recordProcessStateChange(14000, 11000, APP_UID1, PROCESS_STATE_FOREGROUND_SERVICE);
+
+ history.setPluggedInState(true);
+ history.writeHistoryItem(18500, 15500);
+
+ ps.durationMs = 18000;
+ statsLayout.setUsageDuration(ps.stats, 10000);
+ statsLayout.setUidUsageDuration(uidStats, 2000);
+ ps.uidStats.put(APP_UID1, uidStats.clone());
+ statsLayout.setUidUsageDuration(uidStats, 8000);
+ ps.uidStats.put(APP_UID2, uidStats.clone());
+
+ history.recordPowerStats(23000, 20000, ps);
+
+ return history;
+ }
+
+ private void assertAggregatedPowerStats(AggregatedPowerStats aggregatedPowerStats) {
+ PowerComponentAggregatedPowerStats stats =
+ aggregatedPowerStats.getPowerComponentStats(POWER_COMPONENT_WAKELOCK);
+ PowerStats.Descriptor descriptor = stats.getPowerStatsDescriptor();
+ WakelockPowerStatsLayout statsLayout = new WakelockPowerStatsLayout(descriptor);
+ long[] deviceStats = new long[descriptor.statsArrayLength];
+ long[] uidStats = new long[descriptor.uidStatsArrayLength];
+
+ stats.getDeviceStats(deviceStats, states(POWER_STATE_BATTERY, SCREEN_STATE_ON));
+ assertThat(statsLayout.getUsageDuration(deviceStats)).isEqualTo(7500);
+ assertThat(statsLayout.getDevicePowerEstimate(deviceStats)).isWithin(PRECISION).of(1.50);
+
+ stats.getDeviceStats(deviceStats, states(POWER_STATE_OTHER, SCREEN_STATE_ON));
+ assertThat(statsLayout.getUsageDuration(deviceStats)).isEqualTo(2500);
+ assertThat(statsLayout.getDevicePowerEstimate(deviceStats)).isWithin(PRECISION).of(0.50);
+
+ stats.getUidStats(uidStats, APP_UID1,
+ states(POWER_STATE_BATTERY, SCREEN_STATE_ON, PROCESS_STATE_BACKGROUND));
+ assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(1000);
+ assertThat(statsLayout.getUidPowerEstimate(uidStats)).isWithin(PRECISION).of(0.20);
+
+ stats.getUidStats(uidStats, APP_UID1,
+ states(POWER_STATE_BATTERY, SCREEN_STATE_ON, PROCESS_STATE_FOREGROUND_SERVICE));
+ assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(500);
+ assertThat(statsLayout.getUidPowerEstimate(uidStats)).isWithin(PRECISION).of(0.10);
+
+ stats.getUidStats(uidStats, APP_UID1,
+ states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_FOREGROUND_SERVICE));
+ assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(500);
+ assertThat(statsLayout.getUidPowerEstimate(uidStats)).isWithin(PRECISION).of(0.10);
+
+ stats.getUidStats(uidStats, APP_UID2,
+ states(POWER_STATE_BATTERY, SCREEN_STATE_ON, PROCESS_STATE_FOREGROUND));
+ assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(6000);
+ assertThat(statsLayout.getUidPowerEstimate(uidStats)).isWithin(PRECISION).of(1.20);
+
+ stats.getUidStats(uidStats, APP_UID2,
+ states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_FOREGROUND));
+ assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(2000);
+ assertThat(statsLayout.getUidPowerEstimate(uidStats)).isWithin(PRECISION).of(0.40);
+ }
+
+ private int[] states(int... states) {
+ return states;
+ }
+}
diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java
index baf468e3f7de..1e097692f55e 100644
--- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java
+++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java
@@ -536,6 +536,7 @@ public class WifiPowerStatsProcessorTest {
PowerComponentAggregatedPowerStats aggregatedStats = new AggregatedPowerStats(config)
.getPowerComponentStats(BatteryConsumer.POWER_COMPONENT_WIFI);
+ aggregatedStats.start(0);
aggregatedStats.setState(STATE_POWER, POWER_STATE_OTHER, 0);
aggregatedStats.setState(STATE_SCREEN, SCREEN_STATE_ON, 0);
aggregatedStats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND, 0);
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java
index 585df84f7f90..22a4f85758eb 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java
@@ -2662,6 +2662,17 @@ public class GroupHelperTest extends UiServiceTestCase {
when(n.isColorized()).thenReturn(true);
when(n.isStyle(Notification.CallStyle.class)).thenReturn(false);
assertThat(GroupHelper.getSection(notification_colorFg)).isNull();
+
+ NotificationRecord notification_media = spy(getNotificationRecord(mPkg, 0, "", mUser,
+ "", false, IMPORTANCE_LOW));
+ n = mock(Notification.class);
+ sbn = spy(getSbn("package", 0, "0", UserHandle.SYSTEM));
+ when(notification_media.isConversation()).thenReturn(false);
+ when(notification_media.getNotification()).thenReturn(n);
+ when(notification_media.getSbn()).thenReturn(sbn);
+ when(sbn.getNotification()).thenReturn(n);
+ when(n.isMediaNotification()).thenReturn(true);
+ assertThat(GroupHelper.getSection(notification_media)).isNull();
}
@Test
@@ -2756,7 +2767,7 @@ public class GroupHelperTest extends UiServiceTestCase {
@Test
@EnableFlags({FLAG_NOTIFICATION_FORCE_GROUPING, FLAG_NOTIFICATION_FORCE_GROUP_CONVERSATIONS})
public void testNonGroupableNotifications_forceGroupConversations() {
- // Check that there is no valid section for: calls, foreground services
+ // Check that there is no valid section for: calls, foreground services, media notifications
NotificationRecord notification_call = spy(getNotificationRecord(mPkg, 0, "", mUser,
"", false, IMPORTANCE_LOW));
Notification n = mock(Notification.class);
@@ -2780,6 +2791,17 @@ public class GroupHelperTest extends UiServiceTestCase {
when(n.isColorized()).thenReturn(true);
when(n.isStyle(Notification.CallStyle.class)).thenReturn(false);
assertThat(GroupHelper.getSection(notification_colorFg)).isNull();
+
+ NotificationRecord notification_media = spy(getNotificationRecord(mPkg, 0, "", mUser,
+ "", false, IMPORTANCE_LOW));
+ n = mock(Notification.class);
+ sbn = spy(getSbn("package", 0, "0", UserHandle.SYSTEM));
+ when(notification_media.isConversation()).thenReturn(false);
+ when(notification_media.getNotification()).thenReturn(n);
+ when(notification_media.getSbn()).thenReturn(sbn);
+ when(sbn.getNotification()).thenReturn(n);
+ when(n.isMediaNotification()).thenReturn(true);
+ assertThat(GroupHelper.getSection(notification_media)).isNull();
}
@Test
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java
index a45b102278ef..797b95b5dbe9 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java
@@ -15,12 +15,15 @@
*/
package com.android.server.notification;
+import static android.os.UserHandle.USER_ALL;
+
+import static com.google.common.truth.Truth.assertThat;
+
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertTrue;
-import static junit.framework.Assert.fail;
import static org.junit.Assert.assertNull;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.eq;
@@ -33,6 +36,7 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.Manifest;
import android.app.ActivityManager;
import android.app.INotificationManager;
import android.content.ComponentName;
@@ -42,24 +46,28 @@ import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.content.pm.UserInfo;
-import android.os.UserHandle;
import android.os.UserManager;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.service.notification.Adjustment;
import android.testing.TestableContext;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.IntArray;
import android.util.Xml;
-import android.Manifest;
+
+import androidx.test.runner.AndroidJUnit4;
import com.android.internal.util.CollectionUtils;
-import com.android.internal.util.function.TriPredicate;
import com.android.modules.utils.TypedXmlPullParser;
import com.android.modules.utils.TypedXmlSerializer;
import com.android.server.UiServiceTestCase;
import com.android.server.notification.NotificationManagerService.NotificationAssistants;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
@@ -71,8 +79,12 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+@RunWith(AndroidJUnit4.class)
public class NotificationAssistantsTest extends UiServiceTestCase {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
@Mock
private PackageManager mPm;
@Mock
@@ -98,6 +110,35 @@ public class NotificationAssistantsTest extends UiServiceTestCase {
ComponentName mCn = new ComponentName("a", "b");
+
+ // Helper function to hold mApproved lock, avoid GuardedBy lint errors
+ private boolean isUserSetServicesEmpty(NotificationAssistants assistant, int userId) {
+ synchronized (assistant.mApproved) {
+ return assistant.mUserSetServices.get(userId).isEmpty();
+ }
+ }
+
+ private void writeXmlAndReload(int userId) throws Exception {
+ TypedXmlSerializer serializer = Xml.newFastSerializer();
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ serializer.setOutput(new BufferedOutputStream(baos), "utf-8");
+ serializer.startDocument(null, true);
+ mAssistants.writeXml(serializer, false, userId);
+ serializer.endDocument();
+ serializer.flush();
+
+ //fail(baos.toString("UTF-8"));
+
+ final TypedXmlPullParser parser = Xml.newFastPullParser();
+ parser.setInput(new BufferedInputStream(
+ new ByteArrayInputStream(baos.toByteArray())), null);
+
+ parser.nextTag();
+ mAssistants = spy(mNm.new NotificationAssistants(mContext, mLock, mUserProfiles, miPm));
+ mAssistants.readXml(parser, mNm::canUseManagedServices, false, USER_ALL);
+ }
+
+
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
@@ -164,25 +205,7 @@ public class NotificationAssistantsTest extends UiServiceTestCase {
mAssistants.setPackageOrComponentEnabled(current.flattenToString(), userId, true, false,
true);
- TypedXmlSerializer serializer = Xml.newFastSerializer();
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- serializer.setOutput(new BufferedOutputStream(baos), "utf-8");
- serializer.startDocument(null, true);
- mAssistants.writeXml(serializer, true, userId);
- serializer.endDocument();
- serializer.flush();
-
- //fail(baos.toString("UTF-8"));
-
- final TypedXmlPullParser parser = Xml.newFastPullParser();
- parser.setInput(new BufferedInputStream(
- new ByteArrayInputStream(baos.toByteArray())), null);
- TriPredicate<String, Integer, String> allowedManagedServicePackages =
- mNm::canUseManagedServices;
-
- parser.nextTag();
- mAssistants = spy(mNm.new NotificationAssistants(mContext, mLock, mUserProfiles, miPm));
- mAssistants.readXml(parser, allowedManagedServicePackages, false, UserHandle.USER_ALL);
+ writeXmlAndReload(USER_ALL);
ArrayMap<Boolean, ArraySet<String>> approved = mAssistants.mApproved.get(0);
// approved should not be null
@@ -203,11 +226,9 @@ public class NotificationAssistantsTest extends UiServiceTestCase {
final TypedXmlPullParser parser = Xml.newFastPullParser();
parser.setInput(new BufferedInputStream(
new ByteArrayInputStream(xml.toString().getBytes())), null);
- TriPredicate<String, Integer, String> allowedManagedServicePackages =
- mNm::canUseManagedServices;
parser.nextTag();
- mAssistants.readXml(parser, allowedManagedServicePackages, false, UserHandle.USER_ALL);
+ mAssistants.readXml(parser, mNm::canUseManagedServices, false, USER_ALL);
ArrayMap<Boolean, ArraySet<String>> approved = mAssistants.mApproved.get(0);
@@ -226,11 +247,9 @@ public class NotificationAssistantsTest extends UiServiceTestCase {
final TypedXmlPullParser parser = Xml.newFastPullParser();
parser.setInput(new BufferedInputStream(
new ByteArrayInputStream(xml.toString().getBytes())), null);
- TriPredicate<String, Integer, String> allowedManagedServicePackages =
- mNm::canUseManagedServices;
parser.nextTag();
- mAssistants.readXml(parser, allowedManagedServicePackages, true,
+ mAssistants.readXml(parser, mNm::canUseManagedServices, true,
ActivityManager.getCurrentUser());
ArrayMap<Boolean, ArraySet<String>> approved = mAssistants.mApproved.get(0);
@@ -253,11 +272,9 @@ public class NotificationAssistantsTest extends UiServiceTestCase {
final TypedXmlPullParser parser = Xml.newFastPullParser();
parser.setInput(new BufferedInputStream(
new ByteArrayInputStream(xml.toString().getBytes())), null);
- TriPredicate<String, Integer, String> allowedManagedServicePackages =
- mNm::canUseManagedServices;
parser.nextTag();
- mAssistants.readXml(parser, allowedManagedServicePackages, false, UserHandle.USER_ALL);
+ mAssistants.readXml(parser, mNm::canUseManagedServices, false, USER_ALL);
verify(mAssistants, times(1)).upgradeUserSet();
assertTrue(mAssistants.mIsUserChanged.get(0));
@@ -273,11 +290,9 @@ public class NotificationAssistantsTest extends UiServiceTestCase {
final TypedXmlPullParser parser = Xml.newFastPullParser();
parser.setInput(new BufferedInputStream(
new ByteArrayInputStream(xml.toString().getBytes())), null);
- TriPredicate<String, Integer, String> allowedManagedServicePackages =
- mNm::canUseManagedServices;
parser.nextTag();
- mAssistants.readXml(parser, allowedManagedServicePackages, false, UserHandle.USER_ALL);
+ mAssistants.readXml(parser, mNm::canUseManagedServices, false, USER_ALL);
verify(mAssistants, times(0)).upgradeUserSet();
assertTrue(isUserSetServicesEmpty(mAssistants, 0));
@@ -294,11 +309,9 @@ public class NotificationAssistantsTest extends UiServiceTestCase {
final TypedXmlPullParser parser = Xml.newFastPullParser();
parser.setInput(new BufferedInputStream(
new ByteArrayInputStream(xml.toString().getBytes())), null);
- TriPredicate<String, Integer, String> allowedManagedServicePackages =
- mNm::canUseManagedServices;
parser.nextTag();
- mAssistants.readXml(parser, allowedManagedServicePackages, false, UserHandle.USER_ALL);
+ mAssistants.readXml(parser, mNm::canUseManagedServices, false, USER_ALL);
verify(mAssistants, times(0)).upgradeUserSet();
assertTrue(isUserSetServicesEmpty(mAssistants, 0));
@@ -314,11 +327,9 @@ public class NotificationAssistantsTest extends UiServiceTestCase {
final TypedXmlPullParser parser = Xml.newFastPullParser();
parser.setInput(new BufferedInputStream(
new ByteArrayInputStream(xml.toString().getBytes())), null);
- TriPredicate<String, Integer, String> allowedManagedServicePackages =
- mNm::canUseManagedServices;
parser.nextTag();
- mAssistants.readXml(parser, allowedManagedServicePackages, false, UserHandle.USER_ALL);
+ mAssistants.readXml(parser, mNm::canUseManagedServices, false, USER_ALL);
verify(mAssistants, times(1)).upgradeUserSet();
assertTrue(isUserSetServicesEmpty(mAssistants, 0));
@@ -334,11 +345,9 @@ public class NotificationAssistantsTest extends UiServiceTestCase {
final TypedXmlPullParser parser = Xml.newFastPullParser();
parser.setInput(new BufferedInputStream(
new ByteArrayInputStream(xml.toString().getBytes())), null);
- TriPredicate<String, Integer, String> allowedManagedServicePackages =
- mNm::canUseManagedServices;
parser.nextTag();
- mAssistants.readXml(parser, allowedManagedServicePackages, false, UserHandle.USER_ALL);
+ mAssistants.readXml(parser, mNm::canUseManagedServices, false, USER_ALL);
verify(mAssistants, times(1)).upgradeUserSet();
assertTrue(isUserSetServicesEmpty(mAssistants, 0));
@@ -361,7 +370,7 @@ public class NotificationAssistantsTest extends UiServiceTestCase {
new ByteArrayInputStream(xml.toString().getBytes())), null);
parser.nextTag();
- mAssistants.readXml(parser, null, false, UserHandle.USER_ALL);
+ mAssistants.readXml(parser, null, false, USER_ALL);
assertEquals(1, mAssistants.getAllowedComponents(0).size());
assertEquals(new ArrayList(Arrays.asList(new ComponentName("a", "a"))),
@@ -378,7 +387,7 @@ public class NotificationAssistantsTest extends UiServiceTestCase {
parser.setInput(new BufferedInputStream(
new ByteArrayInputStream(xml.toString().getBytes())), null);
parser.nextTag();
- mAssistants.readXml(parser, null, false, UserHandle.USER_ALL);
+ mAssistants.readXml(parser, null, false, USER_ALL);
verify(mNm, never()).setDefaultAssistantForUser(anyInt());
verify(mAssistants, times(1)).addApprovedList(
@@ -529,10 +538,66 @@ public class NotificationAssistantsTest extends UiServiceTestCase {
assertEquals(new ArraySet<>(), mAssistants.getDefaultComponents());
}
- // Helper function to hold mApproved lock, avoid GuardedBy lint errors
- private boolean isUserSetServicesEmpty(NotificationAssistants assistant, int userId) {
- synchronized (assistant.mApproved) {
- return assistant.mUserSetServices.get(userId).isEmpty();
- }
+ @Test
+ @EnableFlags(android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION)
+ public void testSetAdjustmentTypeSupportedState() throws Exception {
+ int userId = ActivityManager.getCurrentUser();
+
+ mAssistants.loadDefaultsFromConfig(true);
+ mAssistants.setPackageOrComponentEnabled(mCn.flattenToString(), userId, true,
+ true, true);
+ ComponentName current = CollectionUtils.firstOrNull(
+ mAssistants.getAllowedComponents(userId));
+ assertNotNull(current);
+
+ assertThat(mAssistants.getUnsupportedAdjustments(userId).size()).isEqualTo(0);
+
+ ManagedServices.ManagedServiceInfo info =
+ mAssistants.new ManagedServiceInfo(null, mCn, userId, false, null, 35, 2345256);
+ mAssistants.setAdjustmentTypeSupportedState(info, Adjustment.KEY_NOT_CONVERSATION, false);
+
+ assertThat(mAssistants.getUnsupportedAdjustments(userId)).contains(
+ Adjustment.KEY_NOT_CONVERSATION);
+ assertThat(mAssistants.getUnsupportedAdjustments(userId).size()).isEqualTo(1);
+ }
+
+ @Test
+ @EnableFlags(android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION)
+ public void testSetAdjustmentTypeSupportedState_readWriteXml_entries() throws Exception {
+ int userId = ActivityManager.getCurrentUser();
+
+ mAssistants.loadDefaultsFromConfig(true);
+ mAssistants.setPackageOrComponentEnabled(mCn.flattenToString(), userId, true,
+ true, true);
+ ComponentName current = CollectionUtils.firstOrNull(
+ mAssistants.getAllowedComponents(userId));
+ assertNotNull(current);
+
+ ManagedServices.ManagedServiceInfo info =
+ mAssistants.new ManagedServiceInfo(null, mCn, userId, false, null, 35, 2345256);
+ mAssistants.setAdjustmentTypeSupportedState(info, Adjustment.KEY_NOT_CONVERSATION, false);
+
+ writeXmlAndReload(USER_ALL);
+
+ assertThat(mAssistants.getUnsupportedAdjustments(userId)).contains(
+ Adjustment.KEY_NOT_CONVERSATION);
+ assertThat(mAssistants.getUnsupportedAdjustments(userId).size()).isEqualTo(1);
+ }
+
+ @Test
+ @EnableFlags(android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION)
+ public void testSetAdjustmentTypeSupportedState_readWriteXml_empty() throws Exception {
+ int userId = ActivityManager.getCurrentUser();
+
+ mAssistants.loadDefaultsFromConfig(true);
+ mAssistants.setPackageOrComponentEnabled(mCn.flattenToString(), userId, true,
+ true, true);
+ ComponentName current = CollectionUtils.firstOrNull(
+ mAssistants.getAllowedComponents(userId));
+ assertNotNull(current);
+
+ writeXmlAndReload(USER_ALL);
+
+ assertThat(mAssistants.getUnsupportedAdjustments(userId).size()).isEqualTo(0);
}
-}
+} \ No newline at end of file
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 bbf2cbdbc145..3c120e1ada2a 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
@@ -33,6 +33,7 @@ import static android.app.Notification.FLAG_AUTO_CANCEL;
import static android.app.Notification.FLAG_BUBBLE;
import static android.app.Notification.FLAG_CAN_COLORIZE;
import static android.app.Notification.FLAG_FOREGROUND_SERVICE;
+import static android.app.Notification.FLAG_GROUP_SUMMARY;
import static android.app.Notification.FLAG_LIFETIME_EXTENDED_BY_DIRECT_REPLY;
import static android.app.Notification.FLAG_NO_CLEAR;
import static android.app.Notification.FLAG_NO_DISMISS;
@@ -2872,6 +2873,131 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
}
@Test
+ @EnableFlags(FLAG_NOTIFICATION_FORCE_GROUPING)
+ public void testEnqueueNotification_forceGrouped_clearsSummaryFlag() throws Exception {
+ final String originalGroupName = "originalGroup";
+ final String aggregateGroupName = "Aggregate_Test";
+
+ // Old record was a summary and it was auto-grouped
+ final NotificationRecord r =
+ generateNotificationRecord(mTestNotificationChannel, 0, originalGroupName, true);
+ mService.addNotification(r);
+ mService.convertSummaryToNotificationLocked(r.getKey());
+ mService.addAutogroupKeyLocked(r.getKey(), aggregateGroupName, true);
+
+ assertThat(mService.mNotificationList).hasSize(1);
+
+ // Update record is a summary
+ final Notification updatedNotification = generateNotificationRecord(
+ mTestNotificationChannel, 0, originalGroupName, true).getNotification();
+ assertThat(updatedNotification.flags & FLAG_GROUP_SUMMARY).isEqualTo(FLAG_GROUP_SUMMARY);
+
+ mBinderService.enqueueNotificationWithTag(mPkg, mPkg, r.getSbn().getTag(),
+ r.getSbn().getId(), updatedNotification, r.getSbn().getUserId());
+ waitForIdle();
+
+ // Check that FLAG_GROUP_SUMMARY was removed
+ assertThat(mService.mNotificationList).hasSize(1);
+ assertThat(mService.mNotificationList.get(0).getFlags() & FLAG_GROUP_SUMMARY).isEqualTo(0);
+ }
+
+ @Test
+ @EnableFlags(FLAG_NOTIFICATION_FORCE_GROUPING)
+ public void testEnqueueNotification_forceGroupedRegular_updatedAsSummary_clearsSummaryFlag()
+ throws Exception {
+ final String originalGroupName = "originalGroup";
+ final String aggregateGroupName = "Aggregate_Test";
+
+ // Old record was not summary and it was auto-grouped
+ final NotificationRecord r =
+ generateNotificationRecord(mTestNotificationChannel, 0, originalGroupName, false);
+ mService.addNotification(r);
+ mService.addAutogroupKeyLocked(r.getKey(), aggregateGroupName, true);
+ assertThat(mService.mNotificationList).hasSize(1);
+
+ // Update record is a summary
+ final Notification updatedNotification = generateNotificationRecord(
+ mTestNotificationChannel, 0, originalGroupName, true).getNotification();
+ assertThat(updatedNotification.flags & FLAG_GROUP_SUMMARY).isEqualTo(FLAG_GROUP_SUMMARY);
+
+ mBinderService.enqueueNotificationWithTag(mPkg, mPkg, r.getSbn().getTag(),
+ r.getSbn().getId(), updatedNotification, r.getSbn().getUserId());
+ waitForIdle();
+
+ // Check that FLAG_GROUP_SUMMARY was removed
+ assertThat(mService.mNotificationList).hasSize(1);
+ assertThat(mService.mNotificationList.get(0).getFlags() & FLAG_GROUP_SUMMARY).isEqualTo(0);
+ }
+
+ @Test
+ @EnableFlags(FLAG_NOTIFICATION_FORCE_GROUPING)
+ public void testEnqueueNotification_notForceGrouped_dontClearSummaryFlag()
+ throws Exception {
+ final String originalGroupName = "originalGroup";
+
+ // Old record was a summary and it was not auto-grouped
+ final NotificationRecord r =
+ generateNotificationRecord(mTestNotificationChannel, 0, originalGroupName, true);
+ mService.addNotification(r);
+ assertThat(mService.mNotificationList).hasSize(1);
+
+ // Update record is a summary
+ final Notification updatedNotification = generateNotificationRecord(
+ mTestNotificationChannel, 0, originalGroupName, true).getNotification();
+ assertThat(updatedNotification.flags & FLAG_GROUP_SUMMARY).isEqualTo(FLAG_GROUP_SUMMARY);
+
+ mBinderService.enqueueNotificationWithTag(mPkg, mPkg, r.getSbn().getTag(),
+ r.getSbn().getId(), updatedNotification, r.getSbn().getUserId());
+ waitForIdle();
+
+ // Check that FLAG_GROUP_SUMMARY was not removed
+ assertThat(mService.mNotificationList).hasSize(1);
+ assertThat(mService.mNotificationList.get(0).getFlags() & FLAG_GROUP_SUMMARY).isEqualTo(
+ FLAG_GROUP_SUMMARY);
+ }
+
+ @Test
+ @EnableFlags(FLAG_NOTIFICATION_FORCE_GROUPING)
+ public void testRemoveFGSFlagFromNotification_enqueued_forceGrouped_clearsSummaryFlag() {
+ final String originalGroupName = "originalGroup";
+ final String aggregateGroupName = "Aggregate_Test";
+
+ final NotificationRecord r = generateNotificationRecord(mTestNotificationChannel, 0, null,
+ originalGroupName, true);
+ r.getSbn().getNotification().flags &= ~FLAG_GROUP_SUMMARY;
+ r.setOverrideGroupKey(aggregateGroupName);
+ mService.addEnqueuedNotification(r);
+
+ mInternalService.removeForegroundServiceFlagFromNotification(
+ mPkg, r.getSbn().getId(), r.getSbn().getUserId());
+ waitForIdle();
+
+ assertThat(mService.mEnqueuedNotifications).hasSize(1);
+ assertThat(mService.mEnqueuedNotifications.get(0).getFlags() & FLAG_GROUP_SUMMARY)
+ .isEqualTo(0);
+ }
+
+ @Test
+ @EnableFlags(FLAG_NOTIFICATION_FORCE_GROUPING)
+ public void testRemoveFGSFlagFromNotification_posted_forceGrouped_clearsSummaryFlag() {
+ final String originalGroupName = "originalGroup";
+ final String aggregateGroupName = "Aggregate_Test";
+
+ final NotificationRecord r = generateNotificationRecord(mTestNotificationChannel, 0, null,
+ originalGroupName, true);
+ r.getSbn().getNotification().flags &= ~FLAG_GROUP_SUMMARY;
+ r.setOverrideGroupKey(aggregateGroupName);
+ mService.addNotification(r);
+
+ mInternalService.removeForegroundServiceFlagFromNotification(
+ mPkg, r.getSbn().getId(), r.getSbn().getUserId());
+ waitForIdle();
+
+ assertThat(mService.mNotificationList).hasSize(1);
+ assertThat(mService.mNotificationList.get(0).getFlags() & FLAG_GROUP_SUMMARY).isEqualTo(0);
+ }
+
+ @Test
public void testCancelAllNotifications_IgnoreForegroundService() throws Exception {
when(mAmi.applyForegroundServiceNotification(
any(), anyString(), anyInt(), anyString(), anyInt())).thenReturn(SHOW_IMMEDIATELY);
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeDiffTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeDiffTest.java
index 91eb2edeee13..cf58d9b49832 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeDiffTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeDiffTest.java
@@ -60,6 +60,7 @@ import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
@@ -127,7 +128,7 @@ public class ZenModeDiffTest extends UiServiceTestCase {
ArrayMap<String, Object> expectedFrom = new ArrayMap<>();
ArrayMap<String, Object> expectedTo = new ArrayMap<>();
List<Field> fieldsForDiff = getFieldsForDiffCheck(
- ZenModeConfig.ZenRule.class, getZenRuleExemptFields());
+ ZenModeConfig.ZenRule.class, getZenRuleExemptFields(), false);
generateFieldDiffs(r1, r2, fieldsForDiff, expectedFrom, expectedTo);
ZenModeDiff.RuleDiff d = new ZenModeDiff.RuleDiff(r1, r2);
@@ -145,6 +146,180 @@ public class ZenModeDiffTest extends UiServiceTestCase {
}
}
+ @Test
+ public void testDeviceEffectsDiff_addRemoveSame() {
+ // Test add, remove, and both sides same
+ ZenDeviceEffects effects = new ZenDeviceEffects.Builder().build();
+
+ // Both sides same rule
+ ZenModeDiff.DeviceEffectsDiff dSame = new ZenModeDiff.DeviceEffectsDiff(effects, effects);
+ assertFalse(dSame.hasDiff());
+
+ // from existent rule to null: expect deleted
+ ZenModeDiff.DeviceEffectsDiff deleted = new ZenModeDiff.DeviceEffectsDiff(effects, null);
+ assertTrue(deleted.hasDiff());
+ assertTrue(deleted.wasRemoved());
+
+ // from null to new rule: expect added
+ ZenModeDiff.DeviceEffectsDiff added = new ZenModeDiff.DeviceEffectsDiff(null, effects);
+ assertTrue(added.hasDiff());
+ assertTrue(added.wasAdded());
+ }
+
+ @Test
+ public void testDeviceEffectsDiff_fieldDiffs() throws Exception {
+ // Start these the same
+ ZenDeviceEffects effects1 = new ZenDeviceEffects.Builder().build();
+ ZenDeviceEffects effects2 = new ZenDeviceEffects.Builder().build();
+
+ // maps mapping field name -> expected output value as we set diffs
+ ArrayMap<String, Object> expectedFrom = new ArrayMap<>();
+ ArrayMap<String, Object> expectedTo = new ArrayMap<>();
+ List<Field> fieldsForDiff = getFieldsForDiffCheck(
+ ZenDeviceEffects.class, Collections.emptySet() /*no exempt fields*/, true);
+ generateFieldDiffs(effects1, effects2, fieldsForDiff, expectedFrom, expectedTo);
+
+ ZenModeDiff.DeviceEffectsDiff d = new ZenModeDiff.DeviceEffectsDiff(effects1, effects2);
+ assertTrue(d.hasDiff());
+
+ // Now diff them and check that each of the fields has a diff
+ for (Field f : fieldsForDiff) {
+ String name = f.getName();
+ assertNotNull("diff not found for field: " + name, d.getDiffForField(name));
+ assertTrue(d.getDiffForField(name).hasDiff());
+ assertTrue("unexpected field: " + name, expectedFrom.containsKey(name));
+ assertTrue("unexpected field: " + name, expectedTo.containsKey(name));
+ assertEquals(expectedFrom.get(name), d.getDiffForField(name).from());
+ assertEquals(expectedTo.get(name), d.getDiffForField(name).to());
+ }
+ }
+
+ @Test
+ public void testDeviceEffectsDiff_toString() throws Exception {
+ // Ensure device effects toString is readable.
+ ZenDeviceEffects effects1 = new ZenDeviceEffects.Builder().build();
+ ZenDeviceEffects effects2 = new ZenDeviceEffects.Builder().build();
+
+ ZenModeDiff.DeviceEffectsDiff d = new ZenModeDiff.DeviceEffectsDiff(effects1, effects2);
+ assertThat(d.toString()).isEqualTo("ZenDeviceEffectsDiff{no changes}");
+
+ d = new ZenModeDiff.DeviceEffectsDiff(effects1, null);
+ assertThat(d.toString()).isEqualTo("ZenDeviceEffectsDiff{removed}");
+
+ d = new ZenModeDiff.DeviceEffectsDiff(null, effects2);
+ assertThat(d.toString()).isEqualTo("ZenDeviceEffectsDiff{added}");
+
+ ArrayMap<String, Object> expectedFrom = new ArrayMap<>();
+ ArrayMap<String, Object> expectedTo = new ArrayMap<>();
+ List<Field> fieldsForDiff = getFieldsForDiffCheck(
+ ZenDeviceEffects.class, Collections.emptySet() /*no exempt fields*/, true);
+ generateFieldDiffs(effects1, effects2, fieldsForDiff, expectedFrom, expectedTo);
+
+ d = new ZenModeDiff.DeviceEffectsDiff(effects1, effects2);
+ assertThat(d.toString()).isEqualTo("ZenDeviceEffectsDiff{mNightMode:true->false, "
+ + "mDisableTapToWake:true->false, mDisableAutoBrightness:true->false, "
+ + "mSuppressAmbientDisplay:true->false, mDisableTiltToWake:true->false, "
+ + "mGrayscale:true->false, mDisableTouch:true->false, mMaximizeDoze:true->false, "
+ + "mMinimizeRadioUsage:true->false, mExtraEffects:null->[], "
+ + "mDimWallpaper:true->false}");
+ }
+
+
+ @Test
+ public void testPolicyDiff_addRemoveSame() {
+ // Test add, remove, and both sides same
+ ZenPolicy effects = new ZenPolicy.Builder().build();
+
+ // Both sides same rule
+ ZenModeDiff.PolicyDiff dSame = new ZenModeDiff.PolicyDiff(effects, effects);
+ assertFalse(dSame.hasDiff());
+
+ // from existent rule to null: expect deleted
+ ZenModeDiff.PolicyDiff deleted = new ZenModeDiff.PolicyDiff(effects, null);
+ assertTrue(deleted.hasDiff());
+ assertTrue(deleted.wasRemoved());
+
+ // from null to new rule: expect added
+ ZenModeDiff.PolicyDiff added = new ZenModeDiff.PolicyDiff(null, effects);
+ assertTrue(added.hasDiff());
+ assertTrue(added.wasAdded());
+ }
+
+ @Test
+ public void testPolicyDiff_fieldDiffs() throws Exception {
+ // Start these the same
+ ZenPolicy policy1 = new ZenPolicy.Builder().build();
+ ZenPolicy policy2 = new ZenPolicy.Builder().build();
+
+ // maps mapping field name -> expected output value as we set diffs
+ ArrayMap<String, Object> expectedFrom = new ArrayMap<>();
+ ArrayMap<String, Object> expectedTo = new ArrayMap<>();
+
+ List<Field> fieldsForDiff = getFieldsForDiffCheck(ZenPolicy.class, Collections.emptySet(),
+ false);
+ generateFieldDiffsForZenPolicy(policy1, policy2, fieldsForDiff, expectedFrom, expectedTo);
+
+ ZenModeDiff.PolicyDiff d = new ZenModeDiff.PolicyDiff(policy1, policy2);
+ assertTrue(d.hasDiff());
+
+ // Now diff them and check that each of the fields has a diff.
+ // Because ZenPolicy consolidates priority category and visual effect fields in a list,
+ // we cannot use reflection on ZenPolicy to get the list of fields.
+ ArrayList<String> diffFields = new ArrayList<>();
+ Field[] fields = ZenModeDiff.PolicyDiff.class.getDeclaredFields();
+
+ for (Field field : fields) {
+ int m = field.getModifiers();
+ if (Modifier.isStatic(m) && Modifier.isFinal(m)) {
+ diffFields.add((String) field.get(policy1));
+ }
+ }
+
+ for (String name : diffFields) {
+ assertNotNull("diff not found for field: " + name, d.getDiffForField(name));
+ assertTrue(d.getDiffForField(name).hasDiff());
+ assertTrue("unexpected field: " + name, expectedFrom.containsKey(name));
+ assertTrue("unexpected field: " + name, expectedTo.containsKey(name));
+ assertEquals(expectedFrom.get(name), d.getDiffForField(name).from());
+ assertEquals(expectedTo.get(name), d.getDiffForField(name).to());
+ }
+ }
+
+ @Test
+ public void testPolicyDiff_toString() throws Exception {
+ // Ensure device effects toString is readable.
+ ZenPolicy policy1 = new ZenPolicy.Builder().build();
+ ZenPolicy policy2 = new ZenPolicy.Builder().build();
+
+ ZenModeDiff.PolicyDiff d = new ZenModeDiff.PolicyDiff(policy1, policy2);
+ assertThat(d.toString()).isEqualTo("ZenPolicyDiff{no changes}");
+
+ d = new ZenModeDiff.PolicyDiff(policy1, null);
+ assertThat(d.toString()).isEqualTo("ZenPolicyDiff{removed}");
+
+ d = new ZenModeDiff.PolicyDiff(null, policy2);
+ assertThat(d.toString()).isEqualTo("ZenPolicyDiff{added}");
+
+ ArrayMap<String, Object> expectedFrom = new ArrayMap<>();
+ ArrayMap<String, Object> expectedTo = new ArrayMap<>();
+ List<Field> fieldsForDiff = getFieldsForDiffCheck(
+ ZenPolicy.class, Collections.emptySet() /*no exempt fields*/, false);
+ generateFieldDiffsForZenPolicy(policy1, policy2, fieldsForDiff, expectedFrom, expectedTo);
+
+ d = new ZenModeDiff.PolicyDiff(policy1, policy2);
+ assertThat(d.toString()).isEqualTo("ZenPolicyDiff{mPriorityCalls:2->1, "
+ + "mVisualEffects_StatusBar:1->2, mPriorityCategories_RepeatCallers:1->2, "
+ + "mPriorityCategories_Calls:1->2, mPriorityCategories_Media:1->2, "
+ + "mConversationSenders:2->1, mPriorityCategories_Reminders:1->2, "
+ + "mVisualEffects_Badge:1->2, mPriorityCategories_Messages:1->2, "
+ + "mAllowChannels:2->1, mPriorityMessages:2->1, "
+ + "mVisualEffects_NotificationList:1->2, mVisualEffects_FullScreenIntent:1->2, "
+ + "mPriorityCategories_Alarms:1->2, mVisualEffects_Lights:1->2, "
+ + "mPriorityCategories_Events:1->2, mVisualEffects_Ambient:1->2, "
+ + "mPriorityCategories_System:1->2, mPriorityCategories_Conversations:1->2, "
+ + "mVisualEffects_Peek:1->2}");
+ }
+
private static Set<String> getZenRuleExemptFields() {
// "Metadata" fields are never compared.
Set<String> exemptFields = new LinkedHashSet<>(
@@ -194,7 +369,7 @@ public class ZenModeDiffTest extends UiServiceTestCase {
ArrayMap<String, Object> expectedFrom = new ArrayMap<>();
ArrayMap<String, Object> expectedTo = new ArrayMap<>();
List<Field> fieldsForDiff = getFieldsForDiffCheck(
- ZenModeConfig.class, getConfigExemptAndFlaggedFields());
+ ZenModeConfig.class, getConfigExemptAndFlaggedFields(), false);
generateFieldDiffs(c1, c2, fieldsForDiff, expectedFrom, expectedTo);
ZenModeDiff.ConfigDiff d = new ZenModeDiff.ConfigDiff(c1, c2);
@@ -223,7 +398,7 @@ public class ZenModeDiffTest extends UiServiceTestCase {
ArrayMap<String, Object> expectedFrom = new ArrayMap<>();
ArrayMap<String, Object> expectedTo = new ArrayMap<>();
List<Field> fieldsForDiff = getFieldsForDiffCheck(
- ZenModeConfig.class, ZEN_MODE_CONFIG_EXEMPT_FIELDS);
+ ZenModeConfig.class, ZEN_MODE_CONFIG_EXEMPT_FIELDS, false);
generateFieldDiffs(c1, c2, fieldsForDiff, expectedFrom, expectedTo);
ZenModeDiff.ConfigDiff d = new ZenModeDiff.ConfigDiff(c1, c2);
@@ -359,17 +534,23 @@ public class ZenModeDiffTest extends UiServiceTestCase {
// Get the fields on which we would want to check a diff. The requirements are: not final or/
// static (as these should/can never change), and not in a specific list that's exempted.
- private List<Field> getFieldsForDiffCheck(Class<?> c, Set<String> exemptNames)
+ private List<Field> getFieldsForDiffCheck(Class<?> c, Set<String> exemptNames,
+ boolean includeFinal)
throws SecurityException {
Field[] fields = c.getDeclaredFields();
ArrayList<Field> out = new ArrayList<>();
for (Field field : fields) {
// Check for exempt reasons
+ // Anything in provided exemptNames is skipped.
+ if (exemptNames.contains(field.getName())) {
+ continue;
+ }
int m = field.getModifiers();
- if (Modifier.isFinal(m)
- || Modifier.isStatic(m)
- || exemptNames.contains(field.getName())) {
+ if (Modifier.isStatic(m)) {
+ continue;
+ }
+ if (!includeFinal && Modifier.isFinal(m)) {
continue;
}
out.add(field);
@@ -377,6 +558,106 @@ public class ZenModeDiffTest extends UiServiceTestCase {
return out;
}
+ // Generate a set of diffs for two ZenPolicy objects. Store the results in the provided
+ // expectation maps.
+ private void generateFieldDiffsForZenPolicy(ZenPolicy a, ZenPolicy b, List<Field> fields,
+ ArrayMap<String, Object> expectedA, ArrayMap<String, Object> expectedB)
+ throws Exception {
+ // Loop through fields for which we want to check diffs, set a diff and keep track of
+ // what we set.
+ for (Field f : fields) {
+ f.setAccessible(true);
+ // Just double-check also that the fields actually are for the class declared
+ assertEquals(f.getDeclaringClass(), a.getClass());
+ Class<?> t = f.getType();
+
+ if (int.class.equals(t)) {
+ // these will not be valid for arbitrary int enums, but should suffice for a diff.
+ f.setInt(a, 2);
+ expectedA.put(f.getName(), 2);
+ f.setInt(b, 1);
+ expectedB.put(f.getName(), 1);
+ } else if (List.class.equals(t)) {
+ // Fieds mPriorityCategories and mVisualEffects store multiple values and
+ // must be treated separately.
+ List<Integer> aList = (ArrayList<Integer>) f.get(a);
+ List<Integer> bList = (ArrayList<Integer>) f.get(b);
+ if (f.getName().equals("mPriorityCategories")) {
+ // PRIORITY_CATEGORY_REMINDERS
+ setPolicyListValueDiff(aList, bList, expectedA, expectedB, 0,
+ "mPriorityCategories_Reminders");
+ // PRIORITY_CATEGORY_EVENTS
+ setPolicyListValueDiff(aList, bList, expectedA, expectedB, 1,
+ "mPriorityCategories_Events");
+ // PRIORITY_CATEGORY_MESSAGES
+ setPolicyListValueDiff(aList, bList, expectedA, expectedB, 2,
+ "mPriorityCategories_Messages");
+ // PRIORITY_CATEGORY_CALLS
+ setPolicyListValueDiff(aList, bList, expectedA, expectedB, 3,
+ "mPriorityCategories_Calls");
+ // PRIORITY_CATEGORY_REPEAT_CALLERS
+ setPolicyListValueDiff(aList, bList, expectedA, expectedB, 4,
+ "mPriorityCategories_RepeatCallers");
+ // PRIORITY_CATEGORY_ALARMS
+ setPolicyListValueDiff(aList, bList, expectedA, expectedB, 5,
+ "mPriorityCategories_Alarms");
+ // PRIORITY_CATEGORY_MEDIA
+ setPolicyListValueDiff(aList, bList, expectedA, expectedB, 6,
+ "mPriorityCategories_Media");
+ // PRIORITY_CATEGORY_SYSTEM
+ setPolicyListValueDiff(aList, bList, expectedA, expectedB, 7,
+ "mPriorityCategories_System");
+ // PRIORITY_CATEGORY_CONVERSATIONS
+ setPolicyListValueDiff(aList, bList, expectedA, expectedB, 8,
+ "mPriorityCategories_Conversations");
+ // Assert that we've set every PriorityCategory enum value.
+ assertThat(Collections.frequency(aList, ZenPolicy.STATE_ALLOW))
+ .isEqualTo(ZenPolicy.NUM_PRIORITY_CATEGORIES);
+ } else if (f.getName().equals("mVisualEffects")) {
+ // VISUAL_EFFECT_FULL_SCREEN_INTENT
+ setPolicyListValueDiff(aList, bList, expectedA, expectedB, 0,
+ "mVisualEffects_FullScreenIntent");
+ // VISUAL_EFFECT_LIGHTS
+ setPolicyListValueDiff(aList, bList, expectedA, expectedB, 1,
+ "mVisualEffects_Lights");
+ // VISUAL_EFFECT_PEEK
+ setPolicyListValueDiff(aList, bList, expectedA, expectedB, 2,
+ "mVisualEffects_Peek");
+ // VISUAL_EFFECT_STATUS_BAR
+ setPolicyListValueDiff(aList, bList, expectedA, expectedB, 3,
+ "mVisualEffects_StatusBar");
+ // VISUAL_EFFECT_BADGE
+ setPolicyListValueDiff(aList, bList, expectedA, expectedB, 4,
+ "mVisualEffects_Badge");
+ // VISUAL_EFFECT_AMBIENT
+ setPolicyListValueDiff(aList, bList, expectedA, expectedB, 5,
+ "mVisualEffects_Ambient");
+ // VISUAL_EFFECT_NOTIFICATION_LIST
+ setPolicyListValueDiff(aList, bList, expectedA, expectedB, 6,
+ "mVisualEffects_NotificationList");
+ // Assert that we've set every VisualeEffect enum value.
+ assertThat(Collections.frequency(aList, ZenPolicy.STATE_ALLOW))
+ .isEqualTo(ZenPolicy.NUM_VISUAL_EFFECTS);
+ } else {
+ // Any other lists that are added should be added to the diff.
+ fail("could not generate field diffs for policy list: " + f.getName());
+ }
+ }
+ }
+ }
+
+ // Helper function to create a diff in two list values at a given index, and record that
+ // diff's values in the associated expected maps under the provided field name.
+ private void setPolicyListValueDiff(List<Integer> aList, List<Integer> bList,
+ ArrayMap<String, Object> expectedA,
+ ArrayMap<String, Object> expectedB,
+ int index, String fieldName) {
+ aList.set(index, ZenPolicy.STATE_ALLOW);
+ expectedA.put(fieldName, ZenPolicy.STATE_ALLOW);
+ bList.set(index, ZenPolicy.STATE_DISALLOW);
+ expectedB.put(fieldName, ZenPolicy.STATE_DISALLOW);
+ }
+
// Generate a set of generic diffs for the specified two objects and the fields to generate
// diffs for, and store the results in the provided expectation maps to be able to check the
// output later.
diff --git a/services/tests/wmtests/Android.bp b/services/tests/wmtests/Android.bp
index 4e59fe516608..ab00bfdf41ae 100644
--- a/services/tests/wmtests/Android.bp
+++ b/services/tests/wmtests/Android.bp
@@ -29,7 +29,7 @@ genrule {
tools: ["protologtool"],
cmd: "$(location protologtool) transform-protolog-calls " +
"--protolog-class com.android.internal.protolog.ProtoLog " +
- "--loggroups-class com.android.internal.protolog.ProtoLogGroup " +
+ "--loggroups-class com.android.internal.protolog.WmProtoLogGroups " +
"--loggroups-jar $(location :protolog-groups) " +
// Used for the ProtoLogIntegrationTest, where don't test decoding or writing to file
// so the parameters below are irrelevant.
diff --git a/services/tests/wmtests/src/com/android/server/wm/ProtoLogIntegrationTest.java b/services/tests/wmtests/src/com/android/server/wm/ProtoLogIntegrationTest.java
index 35cff7a7a324..1a4cc55af450 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ProtoLogIntegrationTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ProtoLogIntegrationTest.java
@@ -26,8 +26,8 @@ import android.platform.test.annotations.Presubmit;
import androidx.test.filters.SmallTest;
import com.android.internal.protolog.ProtoLog;
-import com.android.internal.protolog.ProtoLogGroup;
import com.android.internal.protolog.ProtoLogImpl;
+import com.android.internal.protolog.WmProtoLogGroups;
import com.android.internal.protolog.common.IProtoLog;
import com.android.internal.protolog.common.LogLevel;
@@ -51,13 +51,13 @@ public class ProtoLogIntegrationTest {
public void testProtoLogToolIntegration() {
IProtoLog mockedProtoLog = mock(IProtoLog.class);
runWith(mockedProtoLog, this::testProtoLog);
- verify(mockedProtoLog).log(eq(LogLevel.ERROR), eq(ProtoLogGroup.TEST_GROUP),
+ verify(mockedProtoLog).log(eq(LogLevel.ERROR), eq(WmProtoLogGroups.TEST_GROUP),
anyInt(), eq(0b0010010111),
eq(new Object[]{true, 1L, 2L, 0.3, "ok"}));
}
private void testProtoLog() {
- ProtoLog.e(ProtoLogGroup.TEST_GROUP,
+ ProtoLog.e(WmProtoLogGroups.TEST_GROUP,
"Test completed successfully: %b %d %x %f %% %s",
true, 1, 2, 0.3, "ok");
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java
index 064b434e1a6b..5b3fd53b197c 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java
@@ -34,7 +34,6 @@ import static android.view.WindowManager.TRANSIT_CHANGE;
import static android.view.WindowManager.TRANSIT_CLOSE;
import static android.view.WindowManager.TRANSIT_OPEN;
import static android.view.WindowManager.TRANSIT_TO_BACK;
-import static android.window.TransitionInfo.FLAG_CONFIG_AT_END;
import static android.window.TransitionInfo.FLAG_CROSS_PROFILE_OWNER_THUMBNAIL;
import static android.window.TransitionInfo.FLAG_FILLS_TASK;
import static android.window.TransitionInfo.FLAG_IN_TASK_WITH_EMBEDDED_ACTIVITY;
@@ -2935,9 +2934,6 @@ public class TransitionTests extends WindowTestsBase {
controller.requestStartTransition(transit, task, null, null);
player.start();
assertTrue(activity.isConfigurationDispatchPaused());
- // config-at-end flag must propagate up to task if activity was promoted.
- assertTrue(player.mLastReady.getChange(
- task.mRemoteToken.toWindowContainerToken()).hasFlags(FLAG_CONFIG_AT_END));
player.finish();
assertFalse(activity.isConfigurationDispatchPaused());
}
@@ -2966,11 +2962,9 @@ public class TransitionTests extends WindowTestsBase {
controller.requestStartTransition(transit, task, null, null);
player.start();
- // config-at-end flag must propagate up to task even when reparented (since config-at-end
- // only cares about after-end state).
- assertTrue(player.mLastReady.getChange(
- task.mRemoteToken.toWindowContainerToken()).hasFlags(FLAG_CONFIG_AT_END));
+ assertTrue(activity.isConfigurationDispatchPaused());
player.finish();
+ assertFalse(activity.isConfigurationDispatchPaused());
}
@Test
diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java
index 2bb86bc305a7..1a42e80265cb 100644
--- a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java
+++ b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java
@@ -687,6 +687,7 @@ public class SoundTriggerService extends SystemService {
@Override
public int startRecognitionForService(ParcelUuid soundModelId, Bundle params,
ComponentName detectionService, SoundTrigger.RecognitionConfig config) {
+ final UserHandle userHandle = Binder.getCallingUserHandle();
mEventLogger.enqueue(new SessionEvent(Type.START_RECOGNITION_SERVICE,
getUuid(soundModelId)));
try (SafeCloseable ignored = ClearCallingIdentityContext.create()) {
@@ -699,7 +700,7 @@ public class SoundTriggerService extends SystemService {
IRecognitionStatusCallback callback =
new RemoteSoundTriggerDetectionService(soundModelId.getUuid(), params,
- detectionService, Binder.getCallingUserHandle(), config);
+ detectionService, userHandle, config);
synchronized (mLock) {
SoundModel soundModel = mLoadedModels.get(soundModelId.getUuid());
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 92effe05882a..ff302f6b1a65 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -10613,20 +10613,31 @@ public class TelephonyManager {
return null;
}
- /** @hide */
+ /**
+ * Get the names of packages with carrier privileges for the current subscription.
+ *
+ * @throws UnsupportedOperationException If the device does not have {@link
+ * PackageManager#FEATURE_TELEPHONY_SUBSCRIPTION}
+ * @hide
+ */
+ @FlaggedApi(android.os.Flags.FLAG_MAINLINE_VCN_PLATFORM_API)
+ @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
@RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
- public List<String> getPackagesWithCarrierPrivileges() {
+ @RequiresFeature(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION)
+ @NonNull
+ public Set<String> getPackagesWithCarrierPrivileges() {
+ final Set<String> result = new HashSet<>();
try {
ITelephony telephony = getITelephony();
if (telephony != null) {
- return telephony.getPackagesWithCarrierPrivileges(getPhoneId());
+ result.addAll(telephony.getPackagesWithCarrierPrivileges(getPhoneId()));
}
} catch (RemoteException ex) {
Rlog.e(TAG, "getPackagesWithCarrierPrivileges RemoteException", ex);
} catch (NullPointerException ex) {
Rlog.e(TAG, "getPackagesWithCarrierPrivileges NPE", ex);
}
- return Collections.EMPTY_LIST;
+ return result;
}
/**
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index 7f25ef25c9ac..3161d17681ed 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -3433,4 +3433,15 @@ interface ITelephony {
* @hide
*/
ComponentName getTestEuiccUiComponent();
+
+ /**
+ * This API can be used only for test purpose to override the carrier romaing Ntn eligibility
+ *
+ * @param status to update Ntn Eligibility.
+ * @param resetRequired to reset the overridden flag in satellite controller.
+ * @return {@code true} if the shell command is successful, {@code false} otherwise.
+ * @hide
+ */
+ boolean overrideCarrierRoamingNtnEligibilityChanged(
+ in boolean status, in boolean resetRequired);
}
diff --git a/tests/AttestationVerificationTest/src/android/security/attestationverification/PeerDeviceSystemAttestationVerificationTest.kt b/tests/AttestationVerificationTest/src/android/security/attestationverification/PeerDeviceSystemAttestationVerificationTest.kt
index ad95fbc36867..88ebf3edc7ed 100644
--- a/tests/AttestationVerificationTest/src/android/security/attestationverification/PeerDeviceSystemAttestationVerificationTest.kt
+++ b/tests/AttestationVerificationTest/src/android/security/attestationverification/PeerDeviceSystemAttestationVerificationTest.kt
@@ -2,10 +2,11 @@ package android.security.attestationverification
import android.app.Activity
import android.os.Bundle
+import android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_CERTS
+import android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS
import android.security.attestationverification.AttestationVerificationManager.PARAM_CHALLENGE
import android.security.attestationverification.AttestationVerificationManager.PARAM_PUBLIC_KEY
import android.security.attestationverification.AttestationVerificationManager.PROFILE_PEER_DEVICE
-import android.security.attestationverification.AttestationVerificationManager.RESULT_FAILURE
import android.security.attestationverification.AttestationVerificationManager.TYPE_CHALLENGE
import android.security.attestationverification.AttestationVerificationManager.TYPE_PUBLIC_KEY
import android.security.attestationverification.AttestationVerificationManager.TYPE_UNKNOWN
@@ -54,7 +55,7 @@ class PeerDeviceSystemAttestationVerificationTest {
future.complete(result)
}
- assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE)
+ assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS)
}
@Test
@@ -66,7 +67,7 @@ class PeerDeviceSystemAttestationVerificationTest {
future.complete(result)
}
- assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE)
+ assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS)
}
@Test
@@ -80,7 +81,7 @@ class PeerDeviceSystemAttestationVerificationTest {
future.complete(result)
}
- assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE)
+ assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS)
val future2 = CompletableFuture<Int>()
val challengeRequirements = Bundle()
@@ -90,7 +91,7 @@ class PeerDeviceSystemAttestationVerificationTest {
future2.complete(result)
}
- assertThat(future2.getSoon()).isEqualTo(RESULT_FAILURE)
+ assertThat(future2.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS)
}
@Test
@@ -104,7 +105,7 @@ class PeerDeviceSystemAttestationVerificationTest {
future.complete(result)
}
- assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE)
+ assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS)
}
@Test
@@ -118,7 +119,7 @@ class PeerDeviceSystemAttestationVerificationTest {
future.complete(result)
}
- assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE)
+ assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_CERTS)
}
@Test
@@ -131,7 +132,7 @@ class PeerDeviceSystemAttestationVerificationTest {
invalidAttestationByteArray, activity.mainExecutor) { result, _ ->
future.complete(result)
}
- assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE)
+ assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_CERTS)
}
private fun <T> CompletableFuture<T>.getSoon(): T {
diff --git a/tests/AttestationVerificationTest/src/android/security/attestationverification/SystemAttestationVerificationTest.kt b/tests/AttestationVerificationTest/src/android/security/attestationverification/SystemAttestationVerificationTest.kt
index 8f06b4a2ea0a..e77364de8747 100644
--- a/tests/AttestationVerificationTest/src/android/security/attestationverification/SystemAttestationVerificationTest.kt
+++ b/tests/AttestationVerificationTest/src/android/security/attestationverification/SystemAttestationVerificationTest.kt
@@ -2,6 +2,9 @@ package android.security.attestationverification
import android.os.Bundle
import android.app.Activity
+import android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_CERTS
+import android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS
+import android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_UNSUPPORTED_PROFILE
import androidx.test.ext.junit.rules.ActivityScenarioRule
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
@@ -14,9 +17,6 @@ import com.google.common.truth.Truth.assertThat
import android.security.attestationverification.AttestationVerificationManager.PARAM_CHALLENGE
import android.security.attestationverification.AttestationVerificationManager.PROFILE_SELF_TRUSTED
import android.security.attestationverification.AttestationVerificationManager.PROFILE_UNKNOWN
-import android.security.attestationverification.AttestationVerificationManager.RESULT_FAILURE
-import android.security.attestationverification.AttestationVerificationManager.RESULT_SUCCESS
-import android.security.attestationverification.AttestationVerificationManager.RESULT_UNKNOWN
import android.security.attestationverification.AttestationVerificationManager.TYPE_PUBLIC_KEY
import android.security.attestationverification.AttestationVerificationManager.TYPE_CHALLENGE
import android.security.keystore.KeyGenParameterSpec
@@ -58,19 +58,19 @@ class SystemAttestationVerificationTest {
future.complete(result)
}
- assertThat(future.getSoon()).isEqualTo(RESULT_UNKNOWN)
+ assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_UNSUPPORTED_PROFILE)
}
@Test
fun verifyAttestation_returnsFailureWithEmptyAttestation() {
val future = CompletableFuture<Int>()
- val profile = AttestationProfile(PROFILE_SELF_TRUSTED)
- avm.verifyAttestation(profile, TYPE_CHALLENGE, Bundle(), ByteArray(0),
- activity.mainExecutor) { result, _ ->
+ val selfTrusted = TestSelfTrustedAttestation("test", "challengeStr")
+ avm.verifyAttestation(selfTrusted.profile, selfTrusted.localBindingType,
+ selfTrusted.requirements, ByteArray(0), activity.mainExecutor) { result, _ ->
future.complete(result)
}
- assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE)
+ assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_CERTS)
}
@Test
@@ -81,7 +81,7 @@ class SystemAttestationVerificationTest {
Bundle(), selfTrusted.attestation, activity.mainExecutor) { result, _ ->
future.complete(result)
}
- assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE)
+ assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS)
}
@Test
@@ -92,7 +92,7 @@ class SystemAttestationVerificationTest {
selfTrusted.requirements, selfTrusted.attestation, activity.mainExecutor) { result, _ ->
future.complete(result)
}
- assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE)
+ assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS)
}
@Test
@@ -106,7 +106,7 @@ class SystemAttestationVerificationTest {
wrongKeyRequirements, selfTrusted.attestation, activity.mainExecutor) { result, _ ->
future.complete(result)
}
- assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE)
+ assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS)
}
@Test
@@ -119,7 +119,7 @@ class SystemAttestationVerificationTest {
wrongChallengeRequirements, selfTrusted.attestation, activity.mainExecutor) {
result, _ -> future.complete(result)
}
- assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE)
+ assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS)
}
// TODO(b/216144791): Add more failure tests for PROFILE_SELF_TRUSTED.
@@ -131,20 +131,7 @@ class SystemAttestationVerificationTest {
selfTrusted.requirements, selfTrusted.attestation, activity.mainExecutor) { result, _ ->
future.complete(result)
}
- assertThat(future.getSoon()).isEqualTo(RESULT_SUCCESS)
- }
-
- @Test
- fun verifyToken_returnsUnknown() {
- val future = CompletableFuture<Int>()
- val profile = AttestationProfile(PROFILE_SELF_TRUSTED)
- avm.verifyAttestation(profile, TYPE_PUBLIC_KEY, Bundle(), ByteArray(0),
- activity.mainExecutor) { _, token ->
- val result = avm.verifyToken(profile, TYPE_PUBLIC_KEY, Bundle(), token, null)
- future.complete(result)
- }
-
- assertThat(future.getSoon()).isEqualTo(RESULT_UNKNOWN)
+ assertThat(future.getSoon()).isEqualTo(0)
}
@Test
diff --git a/tests/AttestationVerificationTest/src/com/android/server/security/AttestationVerificationPeerDeviceVerifierTest.kt b/tests/AttestationVerificationTest/src/com/android/server/security/AttestationVerificationPeerDeviceVerifierTest.kt
index 4712d6b51bd5..4d1a1a55af74 100644
--- a/tests/AttestationVerificationTest/src/com/android/server/security/AttestationVerificationPeerDeviceVerifierTest.kt
+++ b/tests/AttestationVerificationTest/src/com/android/server/security/AttestationVerificationPeerDeviceVerifierTest.kt
@@ -3,11 +3,12 @@ package com.android.server.security
import android.app.Activity
import android.content.Context
import android.os.Bundle
+import android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_CERTS
+import android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS
+import android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_PATCH_LEVEL_DIFF
import android.security.attestationverification.AttestationVerificationManager.PARAM_CHALLENGE
import android.security.attestationverification.AttestationVerificationManager.PARAM_MAX_PATCH_LEVEL_DIFF_MONTHS
import android.security.attestationverification.AttestationVerificationManager.PARAM_PUBLIC_KEY
-import android.security.attestationverification.AttestationVerificationManager.RESULT_FAILURE
-import android.security.attestationverification.AttestationVerificationManager.RESULT_SUCCESS
import android.security.attestationverification.AttestationVerificationManager.TYPE_CHALLENGE
import android.security.attestationverification.AttestationVerificationManager.TYPE_PUBLIC_KEY
import android.util.IndentingPrintWriter
@@ -72,7 +73,7 @@ class AttestationVerificationPeerDeviceVerifierTest {
TYPE_CHALLENGE, challengeRequirements,
TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray()
)
- assertThat(result).isEqualTo(RESULT_SUCCESS)
+ assertThat(result).isEqualTo(0)
}
@Test
@@ -88,7 +89,7 @@ class AttestationVerificationPeerDeviceVerifierTest {
TYPE_CHALLENGE, challengeRequirements,
TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray()
)
- assertThat(result).isEqualTo(RESULT_SUCCESS)
+ assertThat(result).isEqualTo(0)
}
@Test
@@ -108,7 +109,7 @@ class AttestationVerificationPeerDeviceVerifierTest {
TYPE_PUBLIC_KEY, pkRequirements,
TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray()
)
- assertThat(result).isEqualTo(RESULT_SUCCESS)
+ assertThat(result).isEqualTo(0)
}
@Test
@@ -126,7 +127,7 @@ class AttestationVerificationPeerDeviceVerifierTest {
TEST_OWNED_BY_SYSTEM_FILENAME.fromPEMFileToByteArray()
)
- assertThat(result).isEqualTo(RESULT_SUCCESS)
+ assertThat(result).isEqualTo(0)
}
@Test
@@ -143,7 +144,7 @@ class AttestationVerificationPeerDeviceVerifierTest {
TYPE_CHALLENGE, challengeRequirements,
TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray()
)
- assertThat(result).isEqualTo(RESULT_FAILURE)
+ assertThat(result).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS)
}
@Test
@@ -159,7 +160,7 @@ class AttestationVerificationPeerDeviceVerifierTest {
TYPE_CHALLENGE, challengeRequirements,
TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray()
)
- assertThat(result).isEqualTo(RESULT_FAILURE)
+ assertThat(result).isEqualTo(FLAG_FAILURE_PATCH_LEVEL_DIFF)
}
@Test
@@ -176,7 +177,7 @@ class AttestationVerificationPeerDeviceVerifierTest {
TYPE_CHALLENGE, challengeRequirements,
TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray()
)
- assertThat(result).isEqualTo(RESULT_SUCCESS)
+ assertThat(result).isEqualTo(0)
}
@Test
@@ -191,10 +192,28 @@ class AttestationVerificationPeerDeviceVerifierTest {
val result = verifier.verifyAttestation(
TYPE_CHALLENGE, challengeRequirements,
- // The patch date of this file is early 2022
TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray()
)
- assertThat(result).isEqualTo(RESULT_FAILURE)
+ assertThat(result).isEqualTo(FLAG_FAILURE_PATCH_LEVEL_DIFF)
+ }
+
+ @Test
+ fun verifyAttestation_returnsFailureOwnedBySystemAndPatchDataNotWithinMaxPatchDiff() {
+ val verifier = AttestationVerificationPeerDeviceVerifier(
+ context, dumpLogger, trustAnchors, false, LocalDate.of(2024, 10, 1),
+ LocalDate.of(2024, 9, 1)
+ )
+ val challengeRequirements = Bundle()
+ challengeRequirements.putByteArray(PARAM_CHALLENGE, "player456".encodeToByteArray())
+ challengeRequirements.putBoolean("android.key_owned_by_system", true)
+ challengeRequirements.putInt(PARAM_MAX_PATCH_LEVEL_DIFF_MONTHS, 24)
+
+ val result = verifier.verifyAttestation(
+ TYPE_CHALLENGE, challengeRequirements,
+ TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray()
+ )
+ // Both "owned by system" and "patch level diff" checks should fail.
+ assertThat(result).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS or FLAG_FAILURE_PATCH_LEVEL_DIFF)
}
@Test
@@ -210,7 +229,7 @@ class AttestationVerificationPeerDeviceVerifierTest {
TYPE_CHALLENGE, challengeRequirements,
TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray()
)
- assertThat(result).isEqualTo(RESULT_FAILURE)
+ assertThat(result).isEqualTo(FLAG_FAILURE_CERTS)
}
@Test
@@ -232,7 +251,7 @@ class AttestationVerificationPeerDeviceVerifierTest {
TYPE_CHALLENGE, challengeRequirements,
TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray()
)
- assertThat(result).isEqualTo(RESULT_FAILURE)
+ assertThat(result).isEqualTo(FLAG_FAILURE_CERTS)
}
fun verifyAttestation_returnsFailureChallenge() {
@@ -247,7 +266,7 @@ class AttestationVerificationPeerDeviceVerifierTest {
TYPE_CHALLENGE, challengeRequirements,
TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray()
)
- assertThat(result).isEqualTo(RESULT_FAILURE)
+ assertThat(result).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS)
}
private fun String.fromPEMFileToCerts(): Collection<Certificate> {
@@ -281,6 +300,7 @@ class AttestationVerificationPeerDeviceVerifierTest {
companion object {
private const val TAG = "AVFTest"
private const val TEST_ROOT_CERT_FILENAME = "test_root_certs.pem"
+ // Local patch date is 20220105
private const val TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME =
"test_attestation_with_root_certs.pem"
private const val TEST_ATTESTATION_CERT_FILENAME = "test_attestation_wrong_root_certs.pem"
diff --git a/tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt b/tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt
index c61a25021949..9f4df90422eb 100644
--- a/tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt
+++ b/tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt
@@ -39,6 +39,7 @@ import com.android.cts.input.inputeventmatchers.withSource
import junit.framework.Assert.fail
import org.hamcrest.Matchers.allOf
import org.junit.Before
+import org.junit.Ignore
import org.junit.Rule
import org.junit.Test
import org.junit.rules.TestName
@@ -107,6 +108,7 @@ class UinputRecordingIntegrationTests {
parser = InputJsonParser(instrumentation.context)
}
+ @Ignore("b/366602644")
@Test
fun testEvemuRecording() {
VirtualDisplayActivityScenario.AutoClose<CaptureEventActivity>(
diff --git a/tests/vcn/java/com/android/server/vcn/TelephonySubscriptionTrackerTest.java b/tests/vcn/java/com/android/server/vcn/TelephonySubscriptionTrackerTest.java
index b5cc5536532c..f1f74bca2ef9 100644
--- a/tests/vcn/java/com/android/server/vcn/TelephonySubscriptionTrackerTest.java
+++ b/tests/vcn/java/com/android/server/vcn/TelephonySubscriptionTrackerTest.java
@@ -206,7 +206,7 @@ public class TelephonySubscriptionTrackerTest {
.getAllSubscriptionInfoList();
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(anyInt());
- setPrivilegedPackagesForMock(Collections.singletonList(PACKAGE_NAME));
+ setPrivilegedPackagesForMock(Collections.singleton(PACKAGE_NAME));
}
private IntentFilter getIntentFilter() {
@@ -293,7 +293,7 @@ public class TelephonySubscriptionTrackerTest {
Collections.singletonMap(TEST_SUBSCRIPTION_ID_1, TEST_CARRIER_CONFIG_WRAPPER));
}
- private void setPrivilegedPackagesForMock(@NonNull List<String> privilegedPackages) {
+ private void setPrivilegedPackagesForMock(@NonNull Set<String> privilegedPackages) {
doReturn(privilegedPackages).when(mTelephonyManager).getPackagesWithCarrierPrivileges();
}
@@ -390,7 +390,7 @@ public class TelephonySubscriptionTrackerTest {
@Test
public void testOnSubscriptionsChangedFired_onActiveSubIdsChanged() throws Exception {
setupReadySubIds();
- setPrivilegedPackagesForMock(Collections.emptyList());
+ setPrivilegedPackagesForMock(Collections.emptySet());
doReturn(TEST_SUBSCRIPTION_ID_2).when(mDeps).getActiveDataSubscriptionId();
final ActiveDataSubscriptionIdListener listener = getActiveDataSubscriptionIdListener();
@@ -411,7 +411,7 @@ public class TelephonySubscriptionTrackerTest {
public void testOnSubscriptionsChangedFired_WithReadySubidsNoPrivilegedPackages()
throws Exception {
setupReadySubIds();
- setPrivilegedPackagesForMock(Collections.emptyList());
+ setPrivilegedPackagesForMock(Collections.emptySet());
final OnSubscriptionsChangedListener listener = getOnSubscriptionsChangedListener();
listener.onSubscriptionsChanged();
@@ -567,7 +567,7 @@ public class TelephonySubscriptionTrackerTest {
verify(mCallback).onNewSnapshot(eq(buildExpectedSnapshot(TEST_PRIVILEGED_PACKAGES)));
// Simulate a loss of carrier privileges
- setPrivilegedPackagesForMock(Collections.emptyList());
+ setPrivilegedPackagesForMock(Collections.emptySet());
listener.onSubscriptionsChanged();
mTestLooper.dispatchAll();
diff --git a/tools/aapt2/ResourceParser.cpp b/tools/aapt2/ResourceParser.cpp
index fce6aa7c80d9..fb576df248be 100644
--- a/tools/aapt2/ResourceParser.cpp
+++ b/tools/aapt2/ResourceParser.cpp
@@ -110,7 +110,7 @@ struct ParsedResource {
std::optional<OverlayableItem> overlayable_item;
std::optional<StagedId> staged_alias;
std::optional<FeatureFlagAttribute> flag;
- FlagStatus flag_status;
+ FlagStatus flag_status = FlagStatus::NoFlag;
std::string comment;
std::unique_ptr<Value> value;
@@ -1529,13 +1529,34 @@ bool ResourceParser::ParseStyleItem(xml::XmlPullParser* parser, Style* style) {
ResolvePackage(parser, &maybe_key.value());
maybe_key.value().SetSource(source);
+ auto flag = ParseFlag(xml::FindAttribute(parser, xml::kSchemaAndroid, "featureFlag"));
+
std::unique_ptr<Item> value = ParseXml(parser, 0, kAllowRawString);
if (!value) {
diag_->Error(android::DiagMessage(source) << "could not parse style item");
return false;
}
- style->entries.push_back(Style::Entry{std::move(maybe_key.value()), std::move(value)});
+ if (flag) {
+ if (options_.flag) {
+ diag_->Error(android::DiagMessage(source_.WithLine(parser->line_number()))
+ << "Resource flag are not allowed both in the path and in the file");
+ return false;
+ }
+ std::string error;
+ auto flag_status = GetFlagStatus(flag, options_.feature_flag_values, &error);
+ if (flag_status) {
+ value->SetFlagStatus(flag_status.value());
+ value->SetFlag(std::move(flag));
+ } else {
+ diag_->Error(android::DiagMessage(source_.WithLine(parser->line_number())) << error);
+ return false;
+ }
+ }
+
+ if (value->GetFlagStatus() != FlagStatus::Disabled) {
+ style->entries.push_back(Style::Entry{std::move(maybe_key.value()), std::move(value)});
+ }
return true;
}
diff --git a/tools/aapt2/Resources.proto b/tools/aapt2/Resources.proto
index a0f60b62db3a..fe9b4a8843ca 100644
--- a/tools/aapt2/Resources.proto
+++ b/tools/aapt2/Resources.proto
@@ -302,6 +302,11 @@ message CompoundValue {
Plural plural = 5;
MacroBody macro = 6;
}
+
+ // The status of the flag the value is behind if any
+ uint32 flag_status = 7;
+ bool flag_negated = 8;
+ string flag_name = 9;
}
// Message holding a boolean, so it can be optionally encoded.
diff --git a/tools/aapt2/format/proto/ProtoDeserialize.cpp b/tools/aapt2/format/proto/ProtoDeserialize.cpp
index 8583cadff6d2..91ec3485ac3b 100644
--- a/tools/aapt2/format/proto/ProtoDeserialize.cpp
+++ b/tools/aapt2/format/proto/ProtoDeserialize.cpp
@@ -551,11 +551,10 @@ static bool DeserializePackageFromPb(const pb::Package& pb_package, const ResStr
return false;
}
- FeatureFlagAttribute flag;
- flag.name = pb_config_value.value().item().flag_name();
- flag.negated = pb_config_value.value().item().flag_negated();
- ResourceConfigValue* config_value =
- entry->FindOrCreateFlagDisabledValue(std::move(flag), config, pb_config.product());
+ ResourceConfigValue* config_value = entry->FindOrCreateFlagDisabledValue(
+ FeatureFlagAttribute{.name = pb_config_value.value().item().flag_name(),
+ .negated = pb_config_value.value().item().flag_negated()},
+ config, pb_config.product());
if (config_value->value != nullptr) {
*out_error = "duplicate configuration in resource table";
return false;
@@ -563,7 +562,6 @@ static bool DeserializePackageFromPb(const pb::Package& pb_package, const ResStr
config_value->value = DeserializeValueFromPb(pb_config_value.value(), src_pool, config,
&out_table->string_pool, files, out_error);
-
if (config_value->value == nullptr) {
return false;
}
@@ -896,6 +894,9 @@ std::unique_ptr<Value> DeserializeValueFromPb(const pb::Value& pb_value,
LOG(FATAL) << "unknown compound value: " << (int)pb_compound_value.value_case();
break;
}
+ value->SetFlagStatus((FlagStatus)pb_compound_value.flag_status());
+ value->SetFlag(FeatureFlagAttribute{.name = pb_compound_value.flag_name(),
+ .negated = pb_compound_value.flag_negated()});
} else {
LOG(FATAL) << "unknown value: " << (int)pb_value.value_case();
return {};
@@ -1052,10 +1053,8 @@ std::unique_ptr<Item> DeserializeItemFromPb(const pb::Item& pb_item,
if (item) {
item->SetFlagStatus((FlagStatus)pb_item.flag_status());
if (!pb_item.flag_name().empty()) {
- FeatureFlagAttribute flag;
- flag.name = pb_item.flag_name();
- flag.negated = pb_item.flag_negated();
- item->SetFlag(std::move(flag));
+ item->SetFlag(
+ FeatureFlagAttribute{.name = pb_item.flag_name(), .negated = pb_item.flag_negated()});
}
}
return item;
diff --git a/tools/aapt2/format/proto/ProtoSerialize.cpp b/tools/aapt2/format/proto/ProtoSerialize.cpp
index d83fe916ee95..fcc77d5a9d6d 100644
--- a/tools/aapt2/format/proto/ProtoSerialize.cpp
+++ b/tools/aapt2/format/proto/ProtoSerialize.cpp
@@ -734,6 +734,13 @@ void SerializeValueToPb(const Value& value, pb::Value* out_value, android::Strin
out_value->mutable_item()->set_flag_negated(flag->negated);
out_value->mutable_item()->set_flag_name(flag->name);
}
+ } else if (out_value->has_compound_value()) {
+ out_value->mutable_compound_value()->set_flag_status((uint32_t)value.GetFlagStatus());
+ if (value.GetFlag()) {
+ const auto& flag = value.GetFlag();
+ out_value->mutable_compound_value()->set_flag_negated(flag->negated);
+ out_value->mutable_compound_value()->set_flag_name(flag->name);
+ }
}
}
diff --git a/tools/aapt2/integration-tests/FlaggedResourcesTest/Android.bp b/tools/aapt2/integration-tests/FlaggedResourcesTest/Android.bp
index 7160b35033da..1b0f99753ce6 100644
--- a/tools/aapt2/integration-tests/FlaggedResourcesTest/Android.bp
+++ b/tools/aapt2/integration-tests/FlaggedResourcesTest/Android.bp
@@ -30,6 +30,7 @@ genrule {
"res/values/bools2.xml",
"res/values/ints.xml",
"res/values/strings.xml",
+ "res/values/styles.xml",
"res/layout/layout1.xml",
"res/layout/layout3.xml",
"res/flag(test.package.falseFlag)/values/bools.xml",
@@ -50,6 +51,7 @@ genrule {
"values_bools2.arsc.flat",
"values_ints.arsc.flat",
"values_strings.arsc.flat",
+ "values_styles.arsc.flat",
"layout_layout1.xml.flat",
"layout_layout2.(test.package.falseFlag).xml.flat",
"layout_layout3.xml.flat",
diff --git a/tools/aapt2/integration-tests/FlaggedResourcesTest/res/values/styles.xml b/tools/aapt2/integration-tests/FlaggedResourcesTest/res/values/styles.xml
new file mode 100644
index 000000000000..604129c26fef
--- /dev/null
+++ b/tools/aapt2/integration-tests/FlaggedResourcesTest/res/values/styles.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+ <style name="style1">
+ <item name="android:windowIsTranslucent">true</item>
+ </style>
+ <style name="style1" android:featureFlag="test.package.falseFlag">
+ <item name="android:windowIsTranslucent">false</item>
+ </style>
+
+ <style name="style2">
+ <item name="android:windowIsTranslucent">false</item>
+ </style>
+ <style name="style2" android:featureFlag="test.package.trueFlag">
+ <item name="android:windowIsTranslucent">true</item>
+ </style>
+
+ <style name="style3">
+ <item name="android:windowIsTranslucent" android:featureFlag="!test.package.trueFlag">false</item>
+ <item name="android:windowIsTranslucent" android:featureFlag="test.package.trueFlag">true</item>
+ </style>
+</resources> \ No newline at end of file
diff --git a/tools/processors/property_cache/OWNERS b/tools/processors/property_cache/OWNERS
new file mode 100644
index 000000000000..78650168807e
--- /dev/null
+++ b/tools/processors/property_cache/OWNERS
@@ -0,0 +1,3 @@
+include /ACTIVITY_MANAGER_OWNERS
+include /BROADCASTS_OWNERS
+include /MULTIUSER_OWNERS \ No newline at end of file