diff --git a/AconfigFlags.bp b/AconfigFlags.bp index 1ae9ada4133882caab6c51d029cfab8e932de161..c7750123aef029b034353d4195b1c15079a7bd28 100644 --- a/AconfigFlags.bp +++ b/AconfigFlags.bp @@ -21,6 +21,7 @@ aconfig_declarations_group { java_aconfig_libraries: [ // !!! KEEP THIS LIST ALPHABETICAL !!! "aconfig_mediacodec_flags_java_lib", + "aconfig_trade_in_mode_flags_java_lib", "android-sdk-flags-java", "android.adaptiveauth.flags-aconfig-java", "android.app.appfunctions.flags-aconfig-java", @@ -123,7 +124,7 @@ aconfig_declarations_group { filegroup { name: "framework-minus-apex-aconfig-srcjars", - srcs: [ + device_common_srcs: [ ":framework-minus-apex-aconfig-declarations{.srcjars}", ], } @@ -1559,6 +1560,10 @@ java_aconfig_library { name: "android.crashrecovery.flags-aconfig-java", aconfig_declarations: "android.crashrecovery.flags-aconfig", defaults: ["framework-minus-apex-aconfig-java-defaults"], + apex_available: [ + "//apex_available:platform", + "com.android.crashrecovery", + ], } java_aconfig_library { diff --git a/Android.bp b/Android.bp index 252aeef079d290d67fc386549e2db85b75738875..bfe749a7b49b274aceb7430f8ee96433f1952ddd 100644 --- a/Android.bp +++ b/Android.bp @@ -61,7 +61,7 @@ license { filegroup { name: "framework-non-updatable-sources", - srcs: [ + device_common_srcs: [ // Java/AIDL sources under frameworks/base ":framework-annotations", ":framework-blobstore-sources", @@ -109,7 +109,7 @@ filegroup { ":android.hardware.radio.voice-V3-java-source", ":android.hardware.security.keymint-V3-java-source", ":android.hardware.security.secureclock-V1-java-source", - ":android.hardware.thermal-V2-java-source", + ":android.hardware.thermal-V3-java-source", ":android.hardware.tv.tuner-V3-java-source", ":android.security.apc-java-source", ":android.security.authorization-java-source", diff --git a/apct-tests/perftests/core/apps/reources_manager/Android.bp b/apct-tests/perftests/core/apps/reources_manager/Android.bp index 96b9d6af5f318161732fd1fd5a67638628f5accd..a95e1175fb0cbce064814c2ecf2e5e523812df6f 100644 --- a/apct-tests/perftests/core/apps/reources_manager/Android.bp +++ b/apct-tests/perftests/core/apps/reources_manager/Android.bp @@ -27,7 +27,7 @@ android_test_helper_app { static_libs: ["androidx.appcompat_appcompat"], } -genrule { +java_genrule { name: "LargeResourcesUncompressed", srcs: [":LargeResourcesCompressed"], out: ["LargeResourcesUncompressed.apk"], diff --git a/apct-tests/perftests/tracing/Android.bp b/apct-tests/perftests/tracing/Android.bp index 08e365be514ab26b1f4892323613cc610c7aa57a..8814216644d7fc337d208891db0072adff42bb17 100644 --- a/apct-tests/perftests/tracing/Android.bp +++ b/apct-tests/perftests/tracing/Android.bp @@ -22,6 +22,7 @@ android_test { "apct-perftests-utils", "collector-device-lib", "platform-test-annotations", + "perfetto_trace_java_protos", ], test_suites: [ "device-tests", diff --git a/apct-tests/perftests/tracing/src/com/android/internal/protolog/ProtoLogPerfTest.java b/apct-tests/perftests/tracing/src/com/android/internal/protolog/ProtoLogPerfTest.java index f4759b8bd35c85f1771891bd57d8db6291f70ece..7ef8c53d1d62c732465aebdee8dcad0981d730ff 100644 --- a/apct-tests/perftests/tracing/src/com/android/internal/protolog/ProtoLogPerfTest.java +++ b/apct-tests/perftests/tracing/src/com/android/internal/protolog/ProtoLogPerfTest.java @@ -17,10 +17,12 @@ package com.android.internal.protolog; import android.app.Activity; import android.os.Bundle; +import android.os.ServiceManager.ServiceNotFoundException; import android.perftests.utils.Stats; import androidx.test.InstrumentationRegistry; +import com.android.internal.protolog.common.IProtoLog; import com.android.internal.protolog.common.IProtoLogGroup; import com.android.internal.protolog.common.LogLevel; @@ -31,6 +33,8 @@ import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; +import perfetto.protos.ProtologCommon; + import java.util.ArrayList; import java.util.Collection; @@ -65,24 +69,48 @@ public class ProtoLogPerfTest { }; } + private IProtoLog mProcessedProtoLogger; + private static final String MOCK_TEST_FILE_PATH = "mock/file/path"; + private static final perfetto.protos.Protolog.ProtoLogViewerConfig VIEWER_CONFIG = + perfetto.protos.Protolog.ProtoLogViewerConfig.newBuilder() + .addGroups( + perfetto.protos.Protolog.ProtoLogViewerConfig.Group.newBuilder() + .setId(1) + .setName(TestProtoLogGroup.TEST_GROUP.toString()) + .setTag(TestProtoLogGroup.TEST_GROUP.getTag()) + ).addMessages( + perfetto.protos.Protolog.ProtoLogViewerConfig.MessageData.newBuilder() + .setMessageId(123) + .setMessage("My Test Debug Log Message %b") + .setLevel(ProtologCommon.ProtoLogLevel.PROTOLOG_LEVEL_DEBUG) + .setGroupId(1) + .setLocation("com/test/MyTestClass.java:123") + ).build(); + @BeforeClass public static void init() { ProtoLog.init(TestProtoLogGroup.values()); } @Before - public void setUp() { + public void setUp() throws ServiceNotFoundException { TestProtoLogGroup.TEST_GROUP.setLogToProto(mLogToProto); TestProtoLogGroup.TEST_GROUP.setLogToLogcat(mLogToLogcat); + + mProcessedProtoLogger = new ProcessedPerfettoProtoLogImpl( + MOCK_TEST_FILE_PATH, + () -> new AutoClosableProtoInputStream(VIEWER_CONFIG.toByteArray()), + () -> {}, + TestProtoLogGroup.values() + ); } @Test public void log_Processed_NoArgs() { - final var protoLog = ProtoLog.getSingleInstance(); final var perfMonitor = new PerfMonitor(); while (perfMonitor.keepRunning()) { - protoLog.log( + mProcessedProtoLogger.log( LogLevel.INFO, TestProtoLogGroup.TEST_GROUP, 123, 0, (Object[]) null); } @@ -90,11 +118,10 @@ public class ProtoLogPerfTest { @Test public void log_Processed_WithArgs() { - final var protoLog = ProtoLog.getSingleInstance(); final var perfMonitor = new PerfMonitor(); while (perfMonitor.keepRunning()) { - protoLog.log( + mProcessedProtoLogger.log( LogLevel.INFO, TestProtoLogGroup.TEST_GROUP, 123, 0b1110101001010100, new Object[]{"test", 1, 2, 3, 0.4, 0.5, 0.6, true}); diff --git a/apex/blobstore/OWNERS b/apex/blobstore/OWNERS index 676cbc7eb2a3f6c5c0763fed083146ede442b2e6..f8208830d83ec379aef07f43a3b257a69051b45f 100644 --- a/apex/blobstore/OWNERS +++ b/apex/blobstore/OWNERS @@ -1,4 +1,4 @@ -# Bug component: 25692 +# Bug component: 1628187 set noparent sudheersai@google.com diff --git a/apex/jobscheduler/service/aconfig/job.aconfig b/apex/jobscheduler/service/aconfig/job.aconfig index 98e53ab978728a60cadf4ec1acb71abfb5c03269..810be8fc4220ef40157f2871e2433e34c7846c1a 100644 --- a/apex/jobscheduler/service/aconfig/job.aconfig +++ b/apex/jobscheduler/service/aconfig/job.aconfig @@ -88,4 +88,11 @@ flag { namespace: "backstage_power" description: "Adjust quota default parameters" bug: "347058927" +} + +flag { + name: "enforce_quota_policy_to_top_started_jobs" + namespace: "backstage_power" + description: "Apply the quota policy to jobs started when the app was in TOP state" + bug: "374323858" } \ No newline at end of file diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java index 885bad5e31c8aed0bf49fbd7c88ea0b271d97263..37e2fe2e46f11e176d7c1b8ff583c791c34f4c19 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java +++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java @@ -619,7 +619,7 @@ public final class QuotaController extends StateController { } final int uid = jobStatus.getSourceUid(); - if (mTopAppCache.get(uid)) { + if (!Flags.enforceQuotaPolicyToTopStartedJobs() && mTopAppCache.get(uid)) { if (DEBUG) { Slog.d(TAG, jobStatus.toShortString() + " is top started job"); } @@ -656,7 +656,9 @@ public final class QuotaController extends StateController { timer.stopTrackingJob(jobStatus); } } - mTopStartedJobs.remove(jobStatus); + if (!Flags.enforceQuotaPolicyToTopStartedJobs()) { + mTopStartedJobs.remove(jobStatus); + } } @Override @@ -767,7 +769,7 @@ public final class QuotaController extends StateController { /** @return true if the job was started while the app was in the TOP state. */ private boolean isTopStartedJobLocked(@NonNull final JobStatus jobStatus) { - return mTopStartedJobs.contains(jobStatus); + return !Flags.enforceQuotaPolicyToTopStartedJobs() && mTopStartedJobs.contains(jobStatus); } /** Returns the maximum amount of time this job could run for. */ @@ -4379,11 +4381,13 @@ public final class QuotaController extends StateController { @Override public void dumpControllerStateLocked(final IndentingPrintWriter pw, final Predicate predicate) { - pw.println("Flags: "); + pw.println("Aconfig Flags:"); pw.println(" " + Flags.FLAG_ADJUST_QUOTA_DEFAULT_CONSTANTS + ": " + Flags.adjustQuotaDefaultConstants()); pw.println(" " + Flags.FLAG_ENFORCE_QUOTA_POLICY_TO_FGS_JOBS + ": " + Flags.enforceQuotaPolicyToFgsJobs()); + pw.println(" " + Flags.FLAG_ENFORCE_QUOTA_POLICY_TO_TOP_STARTED_JOBS + + ": " + Flags.enforceQuotaPolicyToTopStartedJobs()); pw.println(); pw.println("Current elapsed time: " + sElapsedRealtimeClock.millis()); diff --git a/api/Android.bp b/api/Android.bp index 3f2316f005bda22b0116d04b4be878d53b43d357..3c92cb26b0fe26918e54bc6c47360ff934352cea 100644 --- a/api/Android.bp +++ b/api/Android.bp @@ -124,7 +124,7 @@ combined_apis { }), } -genrule { +java_genrule { name: "frameworks-base-api-current-compat", srcs: [ ":android.api.public.latest", @@ -140,7 +140,7 @@ genrule { "$(location :frameworks-base-api-current.txt)", } -genrule { +java_genrule { name: "frameworks-base-api-system-current-compat", srcs: [ ":android.api.public.latest", @@ -160,7 +160,7 @@ genrule { "$(location :frameworks-base-api-system-current.txt)", } -genrule { +java_genrule { name: "frameworks-base-api-module-lib-current-compat", srcs: [ ":android.api.public.latest", @@ -184,7 +184,7 @@ genrule { "$(location :frameworks-base-api-module-lib-current.txt)", } -genrule { +java_genrule { name: "frameworks-base-api-current.srcjar", tools: ["merge_zips"], out: ["current.srcjar"], @@ -209,7 +209,7 @@ genrule_defaults { "$(location soong_zip) -o $(out) -C $(genDir)/out -D $(genDir)/out", } -genrule { +java_genrule { name: "sdk-annotations.zip", defaults: ["sdk-annotations-defaults"], srcs: [ @@ -218,7 +218,7 @@ genrule { ], } -genrule { +java_genrule { name: "sdk-annotations-system.zip", defaults: ["sdk-annotations-defaults"], srcs: [ @@ -227,7 +227,7 @@ genrule { ], } -genrule { +java_genrule { name: "sdk-annotations-module-lib.zip", defaults: ["sdk-annotations-defaults"], srcs: [ @@ -236,7 +236,7 @@ genrule { ], } -genrule { +java_genrule { name: "sdk-annotations-system-server.zip", defaults: ["sdk-annotations-defaults"], srcs: [ @@ -245,7 +245,7 @@ genrule { ], } -genrule { +java_genrule { name: "combined-removed-dex", visibility: [ "//frameworks/base/boot", @@ -460,7 +460,7 @@ genrule_defaults { tools: ["extract-flagged-apis"], } -genrule { +java_genrule { name: "flag-api-mapping-PublicApi", defaults: ["flag-api-mapping-generation-defaults"], srcs: [":frameworks-base-api-current.txt"], @@ -470,7 +470,7 @@ genrule { }, } -genrule { +java_genrule { name: "flag-api-mapping-SystemApi", defaults: ["flag-api-mapping-generation-defaults"], srcs: [":frameworks-base-api-system-current.txt"], @@ -480,7 +480,7 @@ genrule { }, } -genrule { +java_genrule { name: "flag-api-mapping-ModuleLibApi", defaults: ["flag-api-mapping-generation-defaults"], srcs: [":frameworks-base-api-module-lib-current.txt"], @@ -490,7 +490,7 @@ genrule { }, } -genrule { +java_genrule { name: "flag-api-mapping-SystemServerApi", defaults: ["flag-api-mapping-generation-defaults"], srcs: [":frameworks-base-api-system-server-current.txt"], diff --git a/api/api.go b/api/api.go index 1bbf3709480ad447cfe8befd69a0be7e628a3ccd..29083dfc8968fa43ca7271c461a2eea140ac045b 100644 --- a/api/api.go +++ b/api/api.go @@ -20,7 +20,6 @@ import ( "github.com/google/blueprint/proptools" "android/soong/android" - "android/soong/genrule" "android/soong/java" ) @@ -138,9 +137,10 @@ type libraryProps struct { } type fgProps struct { - Name *string - Srcs proptools.Configurable[[]string] - Visibility []string + Name *string + Srcs proptools.Configurable[[]string] + Device_common_srcs proptools.Configurable[[]string] + Visibility []string } type defaultsProps struct { @@ -201,7 +201,7 @@ func createMergedTxt(ctx android.LoadHookContext, txt MergedTxtDefinition, stubs } } props.Visibility = []string{"//visibility:public"} - ctx.CreateModule(genrule.GenRuleFactory, &props) + ctx.CreateModule(java.GenRuleFactory, &props) } func createMergedAnnotationsFilegroups(ctx android.LoadHookContext, modules, system_server_modules proptools.Configurable[[]string]) { @@ -230,7 +230,7 @@ func createMergedAnnotationsFilegroups(ctx android.LoadHookContext, modules, sys } { props := fgProps{} props.Name = proptools.StringPtr(i.name) - props.Srcs = createSrcs(i.modules, i.tag) + props.Device_common_srcs = createSrcs(i.modules, i.tag) ctx.CreateModule(android.FileGroupFactory, &props) } } @@ -429,7 +429,7 @@ func createMergedFrameworkSystemServerExportableStubs(ctx android.LoadHookContex func createPublicStubsSourceFilegroup(ctx android.LoadHookContext, modules proptools.Configurable[[]string]) { props := fgProps{} props.Name = proptools.StringPtr("all-modules-public-stubs-source") - props.Srcs = createSrcs(modules, "{.public.stubs.source}") + props.Device_common_srcs = createSrcs(modules, "{.public.stubs.source}") props.Visibility = []string{"//frameworks/base"} ctx.CreateModule(android.FileGroupFactory, &props) } diff --git a/api/api_test.go b/api/api_test.go index fb26f821eec16abd830cce0ade81952e88fe5df6..166f053978f20acad583cea28676aee5e2059c7c 100644 --- a/api/api_test.go +++ b/api/api_test.go @@ -253,7 +253,7 @@ func TestCombinedApisDefaults(t *testing.T) { `) subModuleDependsOnSelectAppendedModule := java.CheckModuleHasDependency(t, - result.TestContext, "foo-current.txt", "", "framework-foo") + result.TestContext, "foo-current.txt", "android_common", "framework-foo") android.AssertBoolEquals(t, "Submodule expected to depend on the select-appended module", true, subModuleDependsOnSelectAppendedModule) } diff --git a/boot/Android.bp b/boot/Android.bp index f60bb9e7149a9e619ee933e5587dbad0116dd25c..6eead42a4d30e631bd79263d57f7787aba44ba58 100644 --- a/boot/Android.bp +++ b/boot/Android.bp @@ -234,7 +234,7 @@ custom_platform_bootclasspath { ], } -genrule { // This module exists to make the srcjar output available to Make. +java_genrule { // This module exists to make the srcjar output available to Make. name: "platform-bootclasspath.srcjar", srcs: [":platform-bootclasspath{.srcjar}"], out: ["platform-bootclasspath.srcjar"], diff --git a/boot/boot-image-profile-extra.txt b/boot/boot-image-profile-extra.txt index e3b187e0a66d40a50b57215e7915ddf18531bb1f..11ca1dcc181e7dd1926b53143eb7847c2180d667 100644 --- a/boot/boot-image-profile-extra.txt +++ b/boot/boot-image-profile-extra.txt @@ -19,3 +19,7 @@ # methods are latency sensitive is difficult. For example, this method is executed # in the system server, not on the UI thread of an app. HSPLandroid/graphics/Color;->luminance()F + +# For now, compile all methods in MessageQueue to avoid performance cliffs for +# flagged/evolving hot code paths. See: b/338098106 +HSPLandroid/os/MessageQueue;->* diff --git a/boot/boot-image-profile.txt b/boot/boot-image-profile.txt index 854d4ee3dd9c59b7a2ecb77cf3f11547d88f0956..74b2f84b84a5b9ba8c9df82591390a166d81e615 100644 --- a/boot/boot-image-profile.txt +++ b/boot/boot-image-profile.txt @@ -53,7 +53,6 @@ HSPLandroid/accounts/AccountManager$AccountKeyData;->equals(Ljava/lang/Object;)Z HSPLandroid/accounts/AccountManager$AccountKeyData;->hashCode()I HSPLandroid/accounts/AccountManager$AmsTask$1;->(Landroid/accounts/AccountManager;)V HSPLandroid/accounts/AccountManager$AmsTask$Response;->(Landroid/accounts/AccountManager$AmsTask;)V -HSPLandroid/accounts/AccountManager$AmsTask$Response;->(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;->(Landroid/accounts/AccountManager;Landroid/app/Activity;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;)V HSPLandroid/accounts/AccountManager$AmsTask;->done()V @@ -124,19 +123,19 @@ HSPLandroid/accounts/IAccountManagerResponse$Stub;->onTransact(ILandroid/os/Parc HSPLandroid/animation/AnimationHandler$$ExternalSyntheticLambda0;->(Landroid/animation/AnimationHandler;)V HSPLandroid/animation/AnimationHandler$$ExternalSyntheticLambda0;->doFrame(J)V HSPLandroid/animation/AnimationHandler$1;->(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$1;->doFrame(J)V HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;->(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$MyFrameCallbackProvider;->getFrameTime()J +HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V HSPLandroid/animation/AnimationHandler;->()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;->autoCancelBasedOn(Landroid/animation/ObjectAnimator;)V +HSPLandroid/animation/AnimationHandler;->cleanUpList()V +HSPLandroid/animation/AnimationHandler;->doAnimationFrame(J)V 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;->isCallbackDue(Landroid/animation/AnimationHandler$AnimationFrameCallback;J)Z HSPLandroid/animation/AnimationHandler;->isPauseBgAnimationsEnabledInSystemProperties()Z HSPLandroid/animation/AnimationHandler;->removeCallback(Landroid/animation/AnimationHandler$AnimationFrameCallback;)V HSPLandroid/animation/AnimationHandler;->requestAnimatorsEnabled(ZLjava/lang/Object;)V @@ -157,7 +156,7 @@ HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda6;-> HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda6;->call(Ljava/lang/Object;Ljava/lang/Object;Z)V HSPLandroid/animation/Animator$AnimatorCaller;->()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$AnimatorCaller;->lambda$static$4(Landroid/animation/ValueAnimator$AnimatorUpdateListener;Landroid/animation/ValueAnimator;Z)V HSPLandroid/animation/Animator$AnimatorConstantState;->(Landroid/animation/Animator;)V HSPLandroid/animation/Animator$AnimatorConstantState;->getChangingConfigurations()I HSPLandroid/animation/Animator$AnimatorConstantState;->newInstance()Landroid/animation/Animator; @@ -168,7 +167,7 @@ HSPLandroid/animation/Animator;->()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;->callOnList(Ljava/util/ArrayList;Landroid/animation/Animator$AnimatorCaller;Ljava/lang/Object;Z)V HSPLandroid/animation/Animator;->clone()Landroid/animation/Animator; HSPLandroid/animation/Animator;->createConstantState()Landroid/content/res/ConstantState; HSPLandroid/animation/Animator;->getBackgroundPauseDelay()J @@ -180,7 +179,7 @@ HSPLandroid/animation/Animator;->notifyListeners(Landroid/animation/Animator$Ani 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;->removeListener(Landroid/animation/Animator$AnimatorListener;)V 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; @@ -202,53 +201,53 @@ HSPLandroid/animation/AnimatorListenerAdapter;->onAnimationCancel(Landroid/anima HSPLandroid/animation/AnimatorListenerAdapter;->onAnimationEnd(Landroid/animation/Animator;)V HSPLandroid/animation/AnimatorListenerAdapter;->onAnimationStart(Landroid/animation/Animator;)V HSPLandroid/animation/AnimatorSet$1;->(Landroid/animation/AnimatorSet;)V -HSPLandroid/animation/AnimatorSet$1;->onAnimationEnd(Landroid/animation/Animator;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; +HSPLandroid/animation/AnimatorSet$1;->onAnimationEnd(Landroid/animation/Animator;)V HSPLandroid/animation/AnimatorSet$2;->(Landroid/animation/AnimatorSet;Landroid/animation/AnimatorSet;)V HSPLandroid/animation/AnimatorSet$2;->onAnimationEnd(Landroid/animation/Animator;)V HSPLandroid/animation/AnimatorSet$3;->(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(Landroid/animation/AnimatorSet$AnimationEvent;Landroid/animation/AnimatorSet$AnimationEvent;)I HSPLandroid/animation/AnimatorSet$3;->compare(Ljava/lang/Object;Ljava/lang/Object;)I HSPLandroid/animation/AnimatorSet$AnimationEvent;->(Landroid/animation/AnimatorSet$Node;I)V -HSPLandroid/animation/AnimatorSet$AnimationEvent;->getTime()J+]Landroid/animation/Animator;Landroid/animation/ObjectAnimator; +HSPLandroid/animation/AnimatorSet$AnimationEvent;->getTime()J HSPLandroid/animation/AnimatorSet$Builder;->(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;->(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;->addParent(Landroid/animation/AnimatorSet$Node;)V HSPLandroid/animation/AnimatorSet$Node;->addParents(Ljava/util/ArrayList;)V -HSPLandroid/animation/AnimatorSet$Node;->addSibling(Landroid/animation/AnimatorSet$Node;)V+]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$Node;->addSibling(Landroid/animation/AnimatorSet$Node;)V +HSPLandroid/animation/AnimatorSet$Node;->clone()Landroid/animation/AnimatorSet$Node; HSPLandroid/animation/AnimatorSet$SeekState;->(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;->()V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator; +HSPLandroid/animation/AnimatorSet;->()V 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;->addAnimationEndListener()V 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;->clone()Landroid/animation/AnimatorSet; +HSPLandroid/animation/AnimatorSet;->createDependencyGraph()V +HSPLandroid/animation/AnimatorSet;->doAnimationFrame(J)Z +HSPLandroid/animation/AnimatorSet;->end()V +HSPLandroid/animation/AnimatorSet;->endAnimation()V HSPLandroid/animation/AnimatorSet;->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;->getChildAnimations()Ljava/util/ArrayList; +HSPLandroid/animation/AnimatorSet;->getNodeForAnimation(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Node; 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;->handleAnimationEvents(IIJ)V +HSPLandroid/animation/AnimatorSet;->initAnimation()V 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;->isEmptySet(Landroid/animation/AnimatorSet;)Z +HSPLandroid/animation/AnimatorSet;->isInitialized()Z HSPLandroid/animation/AnimatorSet;->isRunning()Z HSPLandroid/animation/AnimatorSet;->isStarted()Z HSPLandroid/animation/AnimatorSet;->play(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder; @@ -258,40 +257,40 @@ 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;->removeAnimationEndListener()V 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;->setTarget(Ljava/lang/Object;)V 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;->sortAnimationEvents()V 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;->start(ZZ)V +HSPLandroid/animation/AnimatorSet;->startAnimation()V 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/AnimatorSet;->updateAnimatorsDuration()V +HSPLandroid/animation/AnimatorSet;->updatePlayTime(Landroid/animation/AnimatorSet$Node;Ljava/util/ArrayList;)V HSPLandroid/animation/ArgbEvaluator;->()V HSPLandroid/animation/ArgbEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/animation/ArgbEvaluator;->getInstance()Landroid/animation/ArgbEvaluator; HSPLandroid/animation/FloatKeyframeSet;->([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;->getFloatValue(F)F HSPLandroid/animation/FloatKeyframeSet;->getValue(F)Ljava/lang/Object; HSPLandroid/animation/IntKeyframeSet;->([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/IntKeyframeSet; HSPLandroid/animation/IntKeyframeSet;->clone()Landroid/animation/Keyframes; HSPLandroid/animation/IntKeyframeSet;->getIntValue(F)I HSPLandroid/animation/Keyframe$FloatKeyframe;->(F)V HSPLandroid/animation/Keyframe$FloatKeyframe;->(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$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$FloatKeyframe;->setValue(Ljava/lang/Object;)V HSPLandroid/animation/Keyframe$IntKeyframe;->(FI)V HSPLandroid/animation/Keyframe$IntKeyframe;->clone()Landroid/animation/Keyframe$IntKeyframe; HSPLandroid/animation/Keyframe$IntKeyframe;->clone()Landroid/animation/Keyframe; @@ -313,11 +312,11 @@ HSPLandroid/animation/Keyframe;->ofObject(FLjava/lang/Object;)Landroid/animation HSPLandroid/animation/Keyframe;->setInterpolator(Landroid/animation/TimeInterpolator;)V HSPLandroid/animation/Keyframe;->setValueWasSetOnStart(Z)V HSPLandroid/animation/Keyframe;->valueWasSetOnStart()Z -HSPLandroid/animation/KeyframeSet;->([Landroid/animation/Keyframe;)V+]Landroid/animation/Keyframe;Landroid/animation/Keyframe$ObjectKeyframe;,Landroid/animation/Keyframe$IntKeyframe;,Landroid/animation/Keyframe$FloatKeyframe; +HSPLandroid/animation/KeyframeSet;->([Landroid/animation/Keyframe;)V HSPLandroid/animation/KeyframeSet;->clone()Landroid/animation/KeyframeSet; HSPLandroid/animation/KeyframeSet;->clone()Landroid/animation/Keyframes; HSPLandroid/animation/KeyframeSet;->getKeyframes()Ljava/util/List; -HSPLandroid/animation/KeyframeSet;->getValue(F)Ljava/lang/Object;+]Landroid/animation/Keyframe;Landroid/animation/Keyframe$ObjectKeyframe; +HSPLandroid/animation/KeyframeSet;->getValue(F)Ljava/lang/Object; HSPLandroid/animation/KeyframeSet;->ofFloat([F)Landroid/animation/KeyframeSet; HSPLandroid/animation/KeyframeSet;->ofInt([I)Landroid/animation/KeyframeSet; HSPLandroid/animation/KeyframeSet;->ofObject([Ljava/lang/Object;)Landroid/animation/KeyframeSet; @@ -351,20 +350,20 @@ HSPLandroid/animation/LayoutTransition;->setAnimator(ILandroid/animation/Animato 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;->setupChangeAnimation(Landroid/view/ViewGroup;ILandroid/animation/Animator;JLandroid/view/View;)V HSPLandroid/animation/LayoutTransition;->showChild(Landroid/view/ViewGroup;Landroid/view/View;I)V HSPLandroid/animation/LayoutTransition;->startChangingAnimations()V HSPLandroid/animation/ObjectAnimator;->()V HSPLandroid/animation/ObjectAnimator;->(Ljava/lang/Object;Landroid/util/Property;)V HSPLandroid/animation/ObjectAnimator;->(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;->animateValue(F)V 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;->getNameForTrace()Ljava/lang/String; +HSPLandroid/animation/ObjectAnimator;->getPropertyName()Ljava/lang/String; 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;->initAnimation()V HSPLandroid/animation/ObjectAnimator;->isInitialized()Z HSPLandroid/animation/ObjectAnimator;->ofFloat(Ljava/lang/Object;Landroid/util/Property;[F)Landroid/animation/ObjectAnimator; HSPLandroid/animation/ObjectAnimator;->ofFloat(Ljava/lang/Object;Ljava/lang/String;[F)Landroid/animation/ObjectAnimator; @@ -377,12 +376,12 @@ 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;->setFloatValues([F)V 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;->setTarget(Ljava/lang/Object;)V HSPLandroid/animation/ObjectAnimator;->setupEndValues()V HSPLandroid/animation/ObjectAnimator;->setupStartValues()V HSPLandroid/animation/ObjectAnimator;->shouldAutoCancel(Landroid/animation/AnimationHandler$AnimationFrameCallback;)Z @@ -399,28 +398,28 @@ HSPLandroid/animation/PathKeyframes;->interpolateInRange(FII)Landroid/graphics/P HSPLandroid/animation/PropertyValuesHolder$1;->getValueAtFraction(F)Ljava/lang/Object; HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->(Landroid/util/Property;[F)V HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->(Ljava/lang/String;[F)V -HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->calculateValue(F)V+]Landroid/animation/Keyframes$FloatKeyframes;Landroid/animation/FloatKeyframeSet; +HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->calculateValue(F)V 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;->setAnimatedValue(Ljava/lang/Object;)V HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setFloatValues([F)V HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setProperty(Landroid/util/Property;)V -HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Long;Ljava/lang/Long; +HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->(Ljava/lang/String;[I)V -HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->calculateValue(F)V+]Landroid/animation/Keyframes$IntKeyframes;Landroid/animation/IntKeyframeSet; +HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->calculateValue(F)V HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder; HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder; HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->getAnimatedValue()Ljava/lang/Object; HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setAnimatedValue(Ljava/lang/Object;)V HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setIntValues([I)V -HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Long;Ljava/lang/Long; +HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V HSPLandroid/animation/PropertyValuesHolder$PropertyValues;->()V -HSPLandroid/animation/PropertyValuesHolder;->(Landroid/util/Property;)V+]Landroid/util/Property;missing_types +HSPLandroid/animation/PropertyValuesHolder;->(Landroid/util/Property;)V HSPLandroid/animation/PropertyValuesHolder;->(Ljava/lang/String;)V HSPLandroid/animation/PropertyValuesHolder;->(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;->calculateValue(F)V +HSPLandroid/animation/PropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder; 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; @@ -434,7 +433,7 @@ HSPLandroid/animation/PropertyValuesHolder;->ofFloat(Ljava/lang/String;[F)Landro 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;->setAnimatedValue(Ljava/lang/Object;)V HSPLandroid/animation/PropertyValuesHolder;->setEvaluator(Landroid/animation/TypeEvaluator;)V HSPLandroid/animation/PropertyValuesHolder;->setFloatValues([F)V HSPLandroid/animation/PropertyValuesHolder;->setIntValues([I)V @@ -443,10 +442,10 @@ HSPLandroid/animation/PropertyValuesHolder;->setProperty(Landroid/util/Property; 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;->setupSetterAndGetter(Ljava/lang/Object;)V HSPLandroid/animation/PropertyValuesHolder;->setupSetterOrGetter(Ljava/lang/Class;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method; HSPLandroid/animation/PropertyValuesHolder;->setupStartValue(Ljava/lang/Object;)V -HSPLandroid/animation/PropertyValuesHolder;->setupValue(Ljava/lang/Object;Landroid/animation/Keyframe;)V+]Ljava/lang/Object;missing_types]Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;]Landroid/animation/Keyframe;Landroid/animation/Keyframe$IntKeyframe; +HSPLandroid/animation/PropertyValuesHolder;->setupValue(Ljava/lang/Object;Landroid/animation/Keyframe;)V HSPLandroid/animation/StateListAnimator$1;->(Landroid/animation/StateListAnimator;)V HSPLandroid/animation/StateListAnimator$1;->onAnimationEnd(Landroid/animation/Animator;)V HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->(Landroid/animation/StateListAnimator;)V @@ -472,18 +471,18 @@ HSPLandroid/animation/TimeAnimator;->setTimeListener(Landroid/animation/TimeAnim HSPLandroid/animation/ValueAnimator;->()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;->animateBasedOnTime(J)Z +HSPLandroid/animation/ValueAnimator;->animateValue(F)V 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;->clone()Landroid/animation/ValueAnimator; +HSPLandroid/animation/ValueAnimator;->doAnimationFrame(J)Z HSPLandroid/animation/ValueAnimator;->end()V HSPLandroid/animation/ValueAnimator;->endAnimation()V HSPLandroid/animation/ValueAnimator;->getAnimatedFraction()F -HSPLandroid/animation/ValueAnimator;->getAnimatedValue()Ljava/lang/Object;+]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder; +HSPLandroid/animation/ValueAnimator;->getAnimatedValue()Ljava/lang/Object; HSPLandroid/animation/ValueAnimator;->getAnimationHandler()Landroid/animation/AnimationHandler; HSPLandroid/animation/ValueAnimator;->getCurrentAnimationsCount()I HSPLandroid/animation/ValueAnimator;->getCurrentIteration(F)I @@ -640,7 +639,7 @@ 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;->onWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V HSPLandroid/app/Activity;->onWindowFocusChanged(Z)V HSPLandroid/app/Activity;->overridePendingTransition(II)V HSPLandroid/app/Activity;->overridePendingTransition(III)V @@ -701,8 +700,6 @@ HSPLandroid/app/ActivityClient;->reportSizeConfigurations(Landroid/os/IBinder;La 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;->()V HSPLandroid/app/ActivityManager$MemoryInfo;->readFromParcel(Landroid/os/Parcel;)V @@ -717,7 +714,6 @@ HSPLandroid/app/ActivityManager$RunningAppProcessInfo$1;->createFromParcel(Landr HSPLandroid/app/ActivityManager$RunningAppProcessInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->()V HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->(Landroid/os/Parcel;)V -HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->(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 @@ -827,7 +823,6 @@ HSPLandroid/app/ActivityThread$AppBindData;->()V HSPLandroid/app/ActivityThread$ApplicationThread$$ExternalSyntheticLambda2;->()V HSPLandroid/app/ActivityThread$ApplicationThread$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;)V HSPLandroid/app/ActivityThread$ApplicationThread;->(Landroid/app/ActivityThread;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->(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 @@ -869,9 +864,8 @@ HSPLandroid/app/ActivityThread$DumpResourcesData;->()V HSPLandroid/app/ActivityThread$GcIdler;->(Landroid/app/ActivityThread;)V HSPLandroid/app/ActivityThread$GcIdler;->queueIdle()Z HSPLandroid/app/ActivityThread$H;->(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$H;->handleMessage(Landroid/os/Message;)V HSPLandroid/app/ActivityThread$Idler;->(Landroid/app/ActivityThread;)V -HSPLandroid/app/ActivityThread$Idler;->(Landroid/app/ActivityThread;Landroid/app/ActivityThread$Idler-IA;)V HSPLandroid/app/ActivityThread$Idler;->queueIdle()Z HSPLandroid/app/ActivityThread$Profiler;->()V HSPLandroid/app/ActivityThread$ProviderKey;->(Ljava/lang/String;I)V @@ -936,7 +930,7 @@ 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;->getIntCoreSetting(Ljava/lang/String;I)I HSPLandroid/app/ActivityThread;->getIntentBeingBroadcast()Landroid/content/Intent; HSPLandroid/app/ActivityThread;->getLooper()Landroid/os/Looper; HSPLandroid/app/ActivityThread;->getOperationTypeFromBackupMode(I)I @@ -958,7 +952,7 @@ HSPLandroid/app/ActivityThread;->handleBindApplication(Landroid/app/ActivityThre 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;->handleCreateService(Landroid/app/ActivityThread$CreateServiceData;)V 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 @@ -998,7 +992,6 @@ HSPLandroid/app/ActivityThread;->isProtectedComponent(Landroid/content/pm/Activi 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; @@ -1073,7 +1066,7 @@ HSPLandroid/app/AppComponentFactory;->instantiateProvider(Ljava/lang/ClassLoader 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;->getIntCoreSetting(Ljava/lang/String;I)I 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 @@ -1128,7 +1121,7 @@ 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;->pauseNotedAppOpsCollection()Landroid/app/AppOpsManager$PausedNotedAppOpsCollection; HSPLandroid/app/AppOpsManager;->permissionToOp(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/app/AppOpsManager;->permissionToOpCode(Ljava/lang/String;)I HSPLandroid/app/AppOpsManager;->prefixParcelWithAppOpsIfNeeded(Landroid/os/Parcel;)V @@ -1212,7 +1205,6 @@ HSPLandroid/app/ApplicationExitInfo;->getRss()J HSPLandroid/app/ApplicationExitInfo;->getStatus()I HSPLandroid/app/ApplicationExitInfo;->getTimestamp()J HSPLandroid/app/ApplicationLoaders$CachedClassLoader;->()V -HSPLandroid/app/ApplicationLoaders$CachedClassLoader;->(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 @@ -1237,6 +1229,7 @@ HSPLandroid/app/ApplicationPackageManager$HasSystemFeatureQuery;->hashCode()I HSPLandroid/app/ApplicationPackageManager$ResourceName;->(Ljava/lang/String;I)V HSPLandroid/app/ApplicationPackageManager$ResourceName;->equals(Ljava/lang/Object;)Z HSPLandroid/app/ApplicationPackageManager$ResourceName;->hashCode()I +HSPLandroid/app/ApplicationPackageManager;->(Landroid/app/ContextImpl;Landroid/content/pm/IPackageManager;)V 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 @@ -1266,7 +1259,7 @@ HSPLandroid/app/ApplicationPackageManager;->getInstalledPackages(Landroid/conten 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;->getLaunchIntentForPackage(Ljava/lang/String;)Landroid/content/Intent; HSPLandroid/app/ApplicationPackageManager;->getModuleInfo(Ljava/lang/String;I)Landroid/content/pm/ModuleInfo; HSPLandroid/app/ApplicationPackageManager;->getNameForUid(I)Ljava/lang/String; HSPLandroid/app/ApplicationPackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo; @@ -1290,7 +1283,7 @@ HSPLandroid/app/ApplicationPackageManager;->getProviderInfo(Landroid/content/Com 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(Landroid/content/pm/ApplicationInfo;Landroid/content/res/Configuration;)Landroid/content/res/Resources; 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; @@ -1300,7 +1293,7 @@ HSPLandroid/app/ApplicationPackageManager;->getSystemSharedLibraryNames()[Ljava/ 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;->getUserId()I 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 @@ -1325,7 +1318,7 @@ HSPLandroid/app/ApplicationPackageManager;->queryBroadcastReceiversAsUser(Landro 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;->queryIntentActivitiesAsUser(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;I)Ljava/util/List; 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; @@ -1413,7 +1406,7 @@ HSPLandroid/app/ContextImpl$ApplicationContentResolver;->releaseProvider(Landroi 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;->(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;->(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 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 @@ -1433,7 +1426,7 @@ HSPLandroid/app/ContextImpl;->createAppContext(Landroid/app/ActivityThread;Landr 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;->createAttributionSource(Ljava/lang/String;Landroid/content/AttributionSource;Ljava/util/Set;ZI)Landroid/content/AttributionSource; 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; @@ -1468,7 +1461,7 @@ 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;->getApplicationInfo()Landroid/content/pm/ApplicationInfo; HSPLandroid/app/ContextImpl;->getAssets()Landroid/content/res/AssetManager; HSPLandroid/app/ContextImpl;->getAssociatedDisplayId()I HSPLandroid/app/ContextImpl;->getAttributionSource()Landroid/content/AttributionSource; @@ -1512,11 +1505,11 @@ 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;->getSharedPreferences(Ljava/io/File;I)Landroid/content/SharedPreferences; +HSPLandroid/app/ContextImpl;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; +HSPLandroid/app/ContextImpl;->getSharedPreferencesCacheLocked()Landroid/util/ArrayMap; 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;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; HSPLandroid/app/ContextImpl;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String; HSPLandroid/app/ContextImpl;->getTheme()Landroid/content/res/Resources$Theme; HSPLandroid/app/ContextImpl;->getThemeResId()I @@ -1539,6 +1532,7 @@ HSPLandroid/app/ContextImpl;->openFileOutput(Ljava/lang/String;I)Ljava/io/FileOu 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;->registerAttributionSourceIfNeeded(Landroid/content/AttributionSource;Z)Landroid/content/AttributionSource; 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; @@ -1817,7 +1811,6 @@ HSPLandroid/app/FragmentTransaction;->()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;->(Landroid/content/Context;Landroid/os/Handler;)V HSPLandroid/app/GameManager;->isAngleEnabled(Ljava/lang/String;)Z HSPLandroid/app/IActivityClientController$Stub$Proxy;->(Landroid/os/IBinder;)V HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityDestroyed(Landroid/os/IBinder;)V @@ -1846,9 +1839,8 @@ HSPLandroid/app/IActivityManager$Stub$Proxy;->bindServiceInstance(Landroid/app/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;->checkPermissionForDevice(Ljava/lang/String;III)I 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; @@ -1875,7 +1867,7 @@ HSPLandroid/app/IActivityManager$Stub$Proxy;->registerStrictModeCallback(Landroi 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;->serviceDoneExecuting(Landroid/os/IBinder;IIILandroid/content/Intent;)V HSPLandroid/app/IActivityManager$Stub$Proxy;->setRenderThread(I)V HSPLandroid/app/IActivityManager$Stub$Proxy;->setServiceForeground(Landroid/content/ComponentName;Landroid/os/IBinder;ILandroid/app/Notification;II)V HSPLandroid/app/IActivityManager$Stub$Proxy;->startService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;I)Landroid/content/ComponentName; @@ -2046,7 +2038,6 @@ HSPLandroid/app/LoadedApk$ReceiverDispatcher;->getIIntentReceiver()Landroid/cont 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;->()V -HSPLandroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo;->(Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo-IA;)V HSPLandroid/app/LoadedApk$ServiceDispatcher$DeathMonitor;->(Landroid/app/LoadedApk$ServiceDispatcher;Landroid/content/ComponentName;Landroid/os/IBinder;)V HSPLandroid/app/LoadedApk$ServiceDispatcher$DeathMonitor;->binderDied()V HSPLandroid/app/LoadedApk$ServiceDispatcher$InnerConnection;->(Landroid/app/LoadedApk$ServiceDispatcher;)V @@ -2070,7 +2061,6 @@ HSPLandroid/app/LoadedApk$SplitDependencyLoaderImpl;->getClassLoaderForSplit(Lja HSPLandroid/app/LoadedApk$SplitDependencyLoaderImpl;->getSplitPathsForSplit(Ljava/lang/String;)[Ljava/lang/String; HSPLandroid/app/LoadedApk$SplitDependencyLoaderImpl;->isSplitCached(I)Z HSPLandroid/app/LoadedApk$WarningContextClassLoader;->()V -HSPLandroid/app/LoadedApk$WarningContextClassLoader;->(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; @@ -2266,7 +2256,7 @@ 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;->()V -HSPLandroid/app/Notification;->(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/app/Notification;->(Landroid/os/Parcel;)V 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 @@ -2291,7 +2281,7 @@ 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;->readFromParcelImpl(Landroid/os/Parcel;)V HSPLandroid/app/Notification;->reduceImageSizes(Landroid/content/Context;)V HSPLandroid/app/Notification;->reduceImageSizesForRemoteView(Landroid/widget/RemoteViews;Landroid/content/Context;Z)V HSPLandroid/app/Notification;->removeTextSizeSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; @@ -2301,10 +2291,10 @@ 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/Notification;->writeToParcelImpl(Landroid/os/Parcel;I)V HSPLandroid/app/NotificationChannel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/NotificationChannel; -HSPLandroid/app/NotificationChannel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/app/NotificationChannel$1;Landroid/app/NotificationChannel$1; -HSPLandroid/app/NotificationChannel;->(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$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; +HSPLandroid/app/NotificationChannel;->(Landroid/os/Parcel;)V HSPLandroid/app/NotificationChannel;->(Ljava/lang/String;Ljava/lang/CharSequence;I)V HSPLandroid/app/NotificationChannel;->canBubble()Z HSPLandroid/app/NotificationChannel;->canBypassDnd()Z @@ -2323,7 +2313,7 @@ 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;->getTrimmedString(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/app/NotificationChannel;->getUserLockedFields()I HSPLandroid/app/NotificationChannel;->getVibrationPattern()[J HSPLandroid/app/NotificationChannel;->hasUserSetImportance()Z @@ -2389,7 +2379,6 @@ 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;->(Landroid/app/PendingIntent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;)V @@ -2459,7 +2448,7 @@ HSPLandroid/app/PropertyInvalidatedCache;->-$$Nest$fputmHighWaterMark(Landroid/a HSPLandroid/app/PropertyInvalidatedCache;->(ILjava/lang/String;)V HSPLandroid/app/PropertyInvalidatedCache;->(ILjava/lang/String;Ljava/lang/String;)V HSPLandroid/app/PropertyInvalidatedCache;->(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;->bypass(Ljava/lang/Object;)Z HSPLandroid/app/PropertyInvalidatedCache;->cacheName()Ljava/lang/String; HSPLandroid/app/PropertyInvalidatedCache;->clear()V HSPLandroid/app/PropertyInvalidatedCache;->createMap()Ljava/util/LinkedHashMap; @@ -2467,14 +2456,12 @@ HSPLandroid/app/PropertyInvalidatedCache;->createPropertyName(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;->getCurrentNonce()J 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;->query(Ljava/lang/Object;)Ljava/lang/Object; 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 @@ -2483,7 +2470,7 @@ HSPLandroid/app/QueuedWork$QueuedWorkHandler;->handleMessage(Landroid/os/Message 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;->handlerRemoveMessages(I)V HSPLandroid/app/QueuedWork;->hasPendingWork()Z HSPLandroid/app/QueuedWork;->processPendingWork()V HSPLandroid/app/QueuedWork;->queue(Ljava/lang/Runnable;Z)V @@ -2512,17 +2499,15 @@ 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;->()V -HSPLandroid/app/ResourcesManager$ActivityResource;->(Landroid/app/ResourcesManager$ActivityResource-IA;)V HSPLandroid/app/ResourcesManager$ActivityResources;->()V -HSPLandroid/app/ResourcesManager$ActivityResources;->(Landroid/app/ResourcesManager$ActivityResources-IA;)V HSPLandroid/app/ResourcesManager$ApkAssetsSupplier;->(Landroid/app/ResourcesManager;)V HSPLandroid/app/ResourcesManager$ApkAssetsSupplier;->load(Landroid/app/ResourcesManager$ApkKey;)Landroid/content/res/ApkAssets; HSPLandroid/app/ResourcesManager$ApkKey;->(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$ApkKey;->equals(Ljava/lang/Object;)Z +HSPLandroid/app/ResourcesManager$ApkKey;->hashCode()I +HSPLandroid/app/ResourcesManager$PathCollector;->(Landroid/content/res/ResourcesKey;)V +HSPLandroid/app/ResourcesManager$PathCollector;->collectedKey()Landroid/content/res/ResourcesKey;+]Ljava/util/ArrayList;Ljava/util/ArrayList; HSPLandroid/app/ResourcesManager$UpdateHandler;->(Landroid/app/ResourcesManager;)V -HSPLandroid/app/ResourcesManager$UpdateHandler;->(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;->()V HSPLandroid/app/ResourcesManager;->addApplicationPathsLocked(Ljava/lang/String;[Ljava/lang/String;)V HSPLandroid/app/ResourcesManager;->appendLibAssetsForMainAssetPath(Ljava/lang/String;[Ljava/lang/String;)V @@ -2543,8 +2528,8 @@ HSPLandroid/app/ResourcesManager;->createResources(Landroid/content/res/Resource 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;->createResourcesLocked(Ljava/lang/ClassLoader;Landroid/content/res/ResourcesImpl;Landroid/content/res/CompatibilityInfo;)Landroid/content/res/Resources; +HSPLandroid/app/ResourcesManager;->extractApkKeys(Landroid/content/res/ResourcesKey;)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; @@ -2571,6 +2556,8 @@ HSPLandroid/app/ResourcesManager;->rebaseActivityOverrideConfig(Landroid/app/Res 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;->registerAllResourcesReference(Landroid/content/res/Resources;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLandroid/app/ResourcesManager;->updateResourceImplWithRegisteredLibs(Landroid/content/res/ResourcesImpl;)I+]Landroid/app/ResourcesManager$SharedLibraryAssets;Landroid/app/ResourcesManager$SharedLibraryAssets;]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; 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; @@ -2617,7 +2604,7 @@ HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->(Landroid/app/SharedPre 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;->commitToMemory()Landroid/app/SharedPreferencesImpl$MemoryCommitResult; 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; @@ -2627,7 +2614,6 @@ HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->putString(Ljava/lang/String;L 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;->(JZLjava/util/List;Ljava/util/Set;Ljava/util/Map;)V -HSPLandroid/app/SharedPreferencesImpl$MemoryCommitResult;->(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 @@ -2662,7 +2648,7 @@ HSPLandroid/app/SharedPreferencesImpl;->registerOnSharedPreferenceChangeListener 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/SharedPreferencesImpl;->writeToFile(Landroid/app/SharedPreferencesImpl$MemoryCommitResult;Z)V HSPLandroid/app/StackTrace;->(Ljava/lang/String;)V HSPLandroid/app/StatusBarManager;->(Landroid/content/Context;)V HSPLandroid/app/SyncNotedAppOp$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/SyncNotedAppOp; @@ -2781,16 +2767,13 @@ HSPLandroid/app/SystemServiceRegistry$64;->createService(Landroid/app/ContextImp 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; @@ -2810,11 +2793,11 @@ HSPLandroid/app/SystemServiceRegistry$97;->createService(Landroid/app/ContextImp 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$CachedServiceFetcher;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry$StaticServiceFetcher;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object; HSPLandroid/app/SystemServiceRegistry;->createServiceCache()[Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry;->getSystemService(Landroid/app/ContextImpl;Ljava/lang/String;)Ljava/lang/Object;+]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;->getSystemService(Landroid/app/ContextImpl;Ljava/lang/String;)Ljava/lang/Object; +HSPLandroid/app/SystemServiceRegistry;->getSystemServiceFetcher(Ljava/lang/String;)Landroid/app/SystemServiceRegistry$ServiceFetcher; HSPLandroid/app/SystemServiceRegistry;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String; HSPLandroid/app/TaskInfo;->()V HSPLandroid/app/TaskInfo;->getWindowingMode()I @@ -2837,7 +2820,6 @@ HSPLandroid/app/UiModeManager$1;->(Landroid/app/UiModeManager;)V HSPLandroid/app/UiModeManager$Globals;->-$$Nest$fgetmService(Landroid/app/UiModeManager$Globals;)Landroid/app/IUiModeManager; HSPLandroid/app/UiModeManager$Globals;->(Landroid/app/IUiModeManager;)V HSPLandroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager;->()V -HSPLandroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager;->(Landroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager-IA;)V HSPLandroid/app/UiModeManager;->(Landroid/content/Context;)V HSPLandroid/app/UiModeManager;->getActiveProjectionTypes()I HSPLandroid/app/UiModeManager;->getCurrentModeType()I @@ -2862,13 +2844,13 @@ HSPLandroid/app/WallpaperManager;->initGlobals(Landroid/app/IWallpaperManager;La 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;->()V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; +HSPLandroid/app/WindowConfiguration;->()V HSPLandroid/app/WindowConfiguration;->(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;->areConfigurationsEqualForDisplay(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Z 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;->diff(Landroid/app/WindowConfiguration;Z)J HSPLandroid/app/WindowConfiguration;->equals(Ljava/lang/Object;)Z HSPLandroid/app/WindowConfiguration;->getActivityType()I HSPLandroid/app/WindowConfiguration;->getAppBounds()Landroid/graphics/Rect; @@ -2877,7 +2859,6 @@ 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 @@ -2885,20 +2866,19 @@ 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;->setAppBounds(Landroid/graphics/Rect;)V +HSPLandroid/app/WindowConfiguration;->setBounds(Landroid/graphics/Rect;)V 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;->setMaxBounds(Landroid/graphics/Rect;)V 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;)V HSPLandroid/app/WindowConfiguration;->setTo(Landroid/app/WindowConfiguration;I)V -HSPLandroid/app/WindowConfiguration;->setToDefaults()V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; +HSPLandroid/app/WindowConfiguration;->setToDefaults()V 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;->updateFrom(Landroid/app/WindowConfiguration;)I HSPLandroid/app/WindowConfiguration;->windowingModeToString(I)Ljava/lang/String; HSPLandroid/app/WindowConfiguration;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda5;->(Landroid/app/admin/DevicePolicyManager;)V @@ -3164,10 +3144,10 @@ HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->newArray(I)[Landroid/app/job/J HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/app/job/JobInfo$TriggerContentUri;->(Landroid/net/Uri;I)V HSPLandroid/app/job/JobInfo$TriggerContentUri;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/job/JobInfo;->(Landroid/app/job/JobInfo$Builder;)V+]Landroid/os/PersistableBundle;Landroid/os/PersistableBundle;]Landroid/os/Bundle;Landroid/os/Bundle; +HSPLandroid/app/job/JobInfo;->(Landroid/app/job/JobInfo$Builder;)V HSPLandroid/app/job/JobInfo;->(Landroid/app/job/JobInfo$Builder;Landroid/app/job/JobInfo-IA;)V -HSPLandroid/app/job/JobInfo;->(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;->(Landroid/os/Parcel;)V +HSPLandroid/app/job/JobInfo;->enforceValidity(ZZZZ)V HSPLandroid/app/job/JobInfo;->getExtras()Landroid/os/PersistableBundle; HSPLandroid/app/job/JobInfo;->getFlags()I HSPLandroid/app/job/JobInfo;->getFlexMillis()J @@ -3186,7 +3166,7 @@ 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/JobInfo;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/app/job/JobParameters$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/job/JobParameters; HSPLandroid/app/job/JobParameters$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/job/JobParameters;->(Landroid/os/Parcel;)V @@ -3265,13 +3245,11 @@ HSPLandroid/app/prediction/IPredictionCallback$Stub;->asInterface(Landroid/os/IB 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;->()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;->()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;->(Landroid/os/Parcel;)V @@ -3340,16 +3318,13 @@ HSPLandroid/app/servertransaction/TransactionExecutor;->(Landroid/app/Clie 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;->executeNonLifecycleItem(Landroid/app/servertransaction/ClientTransaction;Landroid/app/servertransaction/ClientTransactionItem;Z)V+]Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread;]Landroid/app/servertransaction/ClientTransactionItem;megamorphic_types]Landroid/app/servertransaction/TransactionExecutor;Landroid/app/servertransaction/TransactionExecutor;]Landroid/app/servertransaction/TransactionExecutorHelper;Landroid/app/servertransaction/TransactionExecutorHelper;]Ljava/util/Map;Ljava/util/Collections$SynchronizedMap; +HSPLandroid/app/servertransaction/TransactionExecutor;->executeTransactionItems(Landroid/app/servertransaction/ClientTransaction;)V+]Landroid/app/servertransaction/ClientTransaction;Landroid/app/servertransaction/ClientTransaction;]Landroid/app/servertransaction/ClientTransactionItem;megamorphic_types]Ljava/util/List;Ljava/util/ArrayList; HSPLandroid/app/servertransaction/TransactionExecutor;->performLifecycleSequence(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/util/IntArray;Landroid/app/servertransaction/ClientTransaction;)V HSPLandroid/app/servertransaction/TransactionExecutorHelper;->()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;->(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 @@ -3416,7 +3391,7 @@ HSPLandroid/app/usage/AppStandbyInfo$1;->createFromParcel(Landroid/os/Parcel;)La HSPLandroid/app/usage/AppStandbyInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/usage/AppStandbyInfo;->(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$Proxy;->queryStatsForPackage(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats; HSPLandroid/app/usage/IStorageStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/IStorageStatsManager; HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->(Landroid/os/IBinder;)V HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; @@ -3441,7 +3416,7 @@ HSPLandroid/app/usage/UsageEvents;->(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;)Landroid/app/usage/UsageStats; HSPLandroid/app/usage/UsageStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/app/usage/UsageStats$1;->readBundleToEventMap(Landroid/os/Bundle;Landroid/util/ArrayMap;)V HSPLandroid/app/usage/UsageStats;->()V @@ -3466,7 +3441,7 @@ HSPLandroid/appwidget/AppWidgetProvider;->()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;->(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/appwidget/AppWidgetProviderInfo;->(Landroid/os/Parcel;)V HSPLandroid/appwidget/AppWidgetProviderInfo;->getProfile()Landroid/os/UserHandle; HSPLandroid/appwidget/AppWidgetProviderInfo;->updateDimensions(Landroid/util/DisplayMetrics;)V HSPLandroid/appwidget/AppWidgetProviderInfo;->writeToParcel(Landroid/os/Parcel;I)V @@ -3477,10 +3452,8 @@ HSPLandroid/companion/virtual/IVirtualDeviceManager$Stub$Proxy;->getDeviceIdForD HSPLandroid/companion/virtual/IVirtualDeviceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/companion/virtual/IVirtualDeviceManager; HSPLandroid/companion/virtual/VirtualDeviceManager;->(Landroid/companion/virtual/IVirtualDeviceManager;Landroid/content/Context;)V HSPLandroid/companion/virtual/VirtualDeviceManager;->getDeviceIdForDisplayId(I)I -HSPLandroid/companion/virtual/flags/FeatureFlagsImpl;->()V HSPLandroid/companion/virtual/flags/FeatureFlagsImpl;->enableNativeVdm()Z -HSPLandroid/companion/virtual/flags/Flags;->()V -HSPLandroid/companion/virtual/flags/Flags;->enableNativeVdm()Z+]Landroid/companion/virtual/flags/FeatureFlags;Landroid/companion/virtual/flags/FeatureFlagsImpl; +HSPLandroid/companion/virtual/flags/Flags;->enableNativeVdm()Z 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 @@ -3507,7 +3480,6 @@ HSPLandroid/content/AttributionSource$ScopedParcelState;->close()V HSPLandroid/content/AttributionSource$ScopedParcelState;->getParcel()Landroid/os/Parcel; HSPLandroid/content/AttributionSource;->()V HSPLandroid/content/AttributionSource;->(IILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;[Ljava/lang/String;ILandroid/content/AttributionSource;)V -HSPLandroid/content/AttributionSource;->(IILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;[Ljava/lang/String;Landroid/content/AttributionSource;)V HSPLandroid/content/AttributionSource;->(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;ILandroid/content/AttributionSource;)V HSPLandroid/content/AttributionSource;->(ILjava/lang/String;Ljava/lang/String;)V HSPLandroid/content/AttributionSource;->(ILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;)V @@ -3622,19 +3594,17 @@ 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;->unflattenFromString(Ljava/lang/String;)Landroid/content/ComponentName; HSPLandroid/content/ComponentName;->writeToParcel(Landroid/content/ComponentName;Landroid/os/Parcel;)V HSPLandroid/content/ComponentName;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/ContentCaptureOptions$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ContentCaptureOptions; HSPLandroid/content/ContentCaptureOptions$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda1;->()V HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object; -HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda2;->(Landroid/os/Parcel;)V -HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V+]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;->-$$Nest$smcreateFromParcel(Landroid/os/Parcel;)Landroid/content/ContentCaptureOptions$ContentProtectionOptions; HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;->(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;->createGroupsFromParcel(Landroid/os/Parcel;)Ljava/util/List; HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;->lambda$createGroupsFromParcel$0(I)Ljava/util/ArrayList; HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;->writeToParcel(Landroid/os/Parcel;)V HSPLandroid/content/ContentCaptureOptions;->(IIIIILandroid/util/ArraySet;)V @@ -3746,7 +3716,7 @@ HSPLandroid/content/ContentProviderOperation$Builder;->withValue(Ljava/lang/Stri HSPLandroid/content/ContentProviderOperation$Builder;->withValues(Landroid/content/ContentValues;)Landroid/content/ContentProviderOperation$Builder; HSPLandroid/content/ContentProviderOperation;->(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;->applyInternal(Landroid/content/ContentProvider;[Landroid/content/ContentProviderResult;I)Landroid/content/ContentProviderResult; HSPLandroid/content/ContentProviderOperation;->getUri()Landroid/net/Uri; HSPLandroid/content/ContentProviderOperation;->isInsert()Z HSPLandroid/content/ContentProviderOperation;->isReadOperation()Z @@ -3758,7 +3728,7 @@ HSPLandroid/content/ContentProviderOperation;->newInsert(Landroid/net/Uri;)Landr 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;->resolveValueBackReferences([Landroid/content/ContentProviderResult;I)Landroid/content/ContentValues; HSPLandroid/content/ContentProviderOperation;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/ContentProviderProxy;->(Landroid/os/IBinder;)V HSPLandroid/content/ContentProviderProxy;->asBinder()Landroid/os/IBinder; @@ -3767,7 +3737,7 @@ HSPLandroid/content/ContentProviderProxy;->createCancellationSignal()Landroid/os 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;->query(Landroid/content/AttributionSource;Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/database/Cursor; 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; @@ -3901,7 +3871,7 @@ HSPLandroid/content/Context;->getToken(Landroid/content/Context;)Landroid/os/IBi 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(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray; HSPLandroid/content/Context;->obtainStyledAttributes([I)Landroid/content/res/TypedArray; HSPLandroid/content/Context;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V HSPLandroid/content/Context;->unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V @@ -3950,7 +3920,7 @@ HSPLandroid/content/ContextWrapper;->enforcePermission(Ljava/lang/String;IILjava 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;->getApplicationInfo()Landroid/content/pm/ApplicationInfo; HSPLandroid/content/ContextWrapper;->getAssets()Landroid/content/res/AssetManager; HSPLandroid/content/ContextWrapper;->getAttributionSource()Landroid/content/AttributionSource; HSPLandroid/content/ContextWrapper;->getAttributionTag()Ljava/lang/String; @@ -3961,13 +3931,13 @@ 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;->getContentResolver()Landroid/content/ContentResolver; 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;->getDisplayId()I HSPLandroid/content/ContextWrapper;->getDisplayNoVerify()Landroid/view/Display; HSPLandroid/content/ContextWrapper;->getExternalCacheDir()Ljava/io/File; HSPLandroid/content/ContextWrapper;->getExternalCacheDirs()[Ljava/io/File; @@ -3983,15 +3953,15 @@ 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;->getPackageManager()Landroid/content/pm/PackageManager; 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;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences; HSPLandroid/content/ContextWrapper;->getSharedPreferencesPath(Ljava/lang/String;)Ljava/io/File; -HSPLandroid/content/ContextWrapper;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;+]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;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; +HSPLandroid/content/ContextWrapper;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String; +HSPLandroid/content/ContextWrapper;->getTheme()Landroid/content/res/Resources$Theme; HSPLandroid/content/ContextWrapper;->getUser()Landroid/os/UserHandle; HSPLandroid/content/ContextWrapper;->getUserId()I HSPLandroid/content/ContextWrapper;->getWindowContextToken()Landroid/os/IBinder; @@ -4083,7 +4053,7 @@ HSPLandroid/content/Intent;->(Landroid/os/Parcel;)V HSPLandroid/content/Intent;->(Ljava/lang/String;)V HSPLandroid/content/Intent;->(Ljava/lang/String;Landroid/net/Uri;)V HSPLandroid/content/Intent;->(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;->addCategory(Ljava/lang/String;)Landroid/content/Intent; HSPLandroid/content/Intent;->addFlags(I)Landroid/content/Intent; HSPLandroid/content/Intent;->cloneFilter()Landroid/content/Intent; HSPLandroid/content/Intent;->filterEquals(Landroid/content/Intent;)Z @@ -4148,8 +4118,8 @@ HSPLandroid/content/Intent;->putExtras(Landroid/content/Intent;)Landroid/content 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;->readFromParcel(Landroid/os/Parcel;)V +HSPLandroid/content/Intent;->removeCategory(Ljava/lang/String;)V HSPLandroid/content/Intent;->removeExtra(Ljava/lang/String;)V HSPLandroid/content/Intent;->replaceExtras(Landroid/os/Bundle;)Landroid/content/Intent; HSPLandroid/content/Intent;->resolveActivity(Landroid/content/pm/PackageManager;)Landroid/content/ComponentName; @@ -4174,13 +4144,13 @@ HSPLandroid/content/Intent;->setPackage(Ljava/lang/String;)Landroid/content/Inte 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;->toShortString(Ljava/lang/StringBuilder;ZZZZ)V 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/Intent;->writeToParcel(Landroid/os/Parcel;I)V 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; @@ -4244,7 +4214,7 @@ 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/IntentFilter;->writeToParcel(Landroid/os/Parcel;I)V 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; @@ -4320,7 +4290,7 @@ HSPLandroid/content/UriMatcher;->(I)V HSPLandroid/content/UriMatcher;->(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/UriMatcher;->match(Landroid/net/Uri;)I 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; @@ -4328,7 +4298,7 @@ HSPLandroid/content/pm/ActivityInfo$1;->createFromParcel(Landroid/os/Parcel;)Lja 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;->(Landroid/os/Parcel;)V -HSPLandroid/content/pm/ActivityInfo;->(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;->(Landroid/os/Parcel;)V HSPLandroid/content/pm/ActivityInfo;->activityInfoConfigNativeToJava(I)I HSPLandroid/content/pm/ActivityInfo;->getRealConfigChanged()I HSPLandroid/content/pm/ActivityInfo;->getThemeResource()I @@ -4347,7 +4317,7 @@ HSPLandroid/content/pm/ApplicationInfo$1;->createFromParcel(Landroid/os/Parcel;) HSPLandroid/content/pm/ApplicationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/content/pm/ApplicationInfo;->()V HSPLandroid/content/pm/ApplicationInfo;->(Landroid/content/pm/ApplicationInfo;)V -HSPLandroid/content/pm/ApplicationInfo;->(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;->(Landroid/os/Parcel;)V HSPLandroid/content/pm/ApplicationInfo;->(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; @@ -4384,15 +4354,15 @@ 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/ApplicationInfo;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/pm/Attribution$1;->()V HSPLandroid/content/pm/Attribution;->()V HSPLandroid/content/pm/BaseParceledListSlice$1;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/content/pm/BaseParceledListSlice;->(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;->(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V HSPLandroid/content/pm/BaseParceledListSlice;->(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;->readVerifyAndAddElement(Landroid/os/Parcelable$Creator;Landroid/os/Parcel;Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Class; 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; @@ -4402,12 +4372,12 @@ HSPLandroid/content/pm/Checksum;->getType()I HSPLandroid/content/pm/Checksum;->getValue()[B HSPLandroid/content/pm/ComponentInfo;->()V HSPLandroid/content/pm/ComponentInfo;->(Landroid/content/pm/ComponentInfo;)V -HSPLandroid/content/pm/ComponentInfo;->(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/content/pm/ApplicationInfo$1;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/content/pm/ComponentInfo;->(Landroid/os/Parcel;)V 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;->loadUnsafeLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence; HSPLandroid/content/pm/ComponentInfo;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/pm/ConfigurationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ConfigurationInfo; HSPLandroid/content/pm/ConfigurationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -4416,13 +4386,9 @@ HSPLandroid/content/pm/CrossProfileApps;->(Landroid/content/Context;Landro 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;->()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;->(Landroid/os/Parcel;)V -HSPLandroid/content/pm/Flags;->()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; @@ -4444,7 +4410,7 @@ HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->(Landroid/os/IBinder;) 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;->getApplicationEnabledSetting(Ljava/lang/String;I)I 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; @@ -4452,7 +4418,7 @@ HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledApplications(JI) 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;->getPackageInfo(Ljava/lang/String;JI)Landroid/content/pm/PackageInfo; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageInstaller()Landroid/content/pm/IPackageInstaller; HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageUid(Ljava/lang/String;JI)I HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackagesForUid(I)[Ljava/lang/String; @@ -4470,7 +4436,7 @@ HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->lambda$notifyDexLoad$1(Landr 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;->queryIntentActivities(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice; 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; @@ -4522,7 +4488,7 @@ 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;->()V -HSPLandroid/content/pm/PackageInfo;->(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;->(Landroid/os/Parcel;)V HSPLandroid/content/pm/PackageInfo;->(Landroid/os/Parcel;Landroid/content/pm/PackageInfo-IA;)V HSPLandroid/content/pm/PackageInfo;->composeLongVersionCode(II)J HSPLandroid/content/pm/PackageInfo;->getLongVersionCode()J @@ -4546,7 +4512,7 @@ HSPLandroid/content/pm/PackageInstaller;->getSessionInfo(I)Landroid/content/pm/P HSPLandroid/content/pm/PackageInstaller;->registerSessionCallback(Landroid/content/pm/PackageInstaller$SessionCallback;Landroid/os/Handler;)V HSPLandroid/content/pm/PackageItemInfo;->()V HSPLandroid/content/pm/PackageItemInfo;->(Landroid/content/pm/PackageItemInfo;)V -HSPLandroid/content/pm/PackageItemInfo;->(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/text/TextUtils$1;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/content/pm/PackageItemInfo;->(Landroid/os/Parcel;)V 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; @@ -4557,7 +4523,7 @@ 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$3;->recompute(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/content/pm/PackageManager$ApplicationInfoFlags;->(J)V HSPLandroid/content/pm/PackageManager$ApplicationInfoFlags;->of(J)Landroid/content/pm/PackageManager$ApplicationInfoFlags; HSPLandroid/content/pm/PackageManager$ApplicationInfoQuery;->(Ljava/lang/String;JI)V @@ -4704,7 +4670,7 @@ HSPLandroid/content/pm/RegisteredServicesCache;->containsType(Ljava/util/ArrayLi 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;->()V -HSPLandroid/content/pm/ResolveInfo;->(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;->(Landroid/os/Parcel;)V HSPLandroid/content/pm/ResolveInfo;->(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; @@ -4717,8 +4683,8 @@ HSPLandroid/content/pm/ServiceInfo$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/content/pm/ServiceInfo;->(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;->(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/content/pm/SharedLibraryInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; +HSPLandroid/content/pm/SharedLibraryInfo;->(Landroid/os/Parcel;)V HSPLandroid/content/pm/SharedLibraryInfo;->(Landroid/os/Parcel;Landroid/content/pm/SharedLibraryInfo-IA;)V HSPLandroid/content/pm/SharedLibraryInfo;->(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 @@ -4728,7 +4694,7 @@ 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/SharedLibraryInfo;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/pm/ShortcutInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ShortcutInfo; HSPLandroid/content/pm/ShortcutInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/content/pm/ShortcutInfo$Builder;->(Landroid/content/Context;Ljava/lang/String;)V @@ -4741,7 +4707,7 @@ HSPLandroid/content/pm/ShortcutInfo$Builder;->setLongLabel(Ljava/lang/CharSequen 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;->(Landroid/content/pm/ShortcutInfo$Builder;)V+]Landroid/content/pm/ShortcutInfo;Landroid/content/pm/ShortcutInfo; +HSPLandroid/content/pm/ShortcutInfo;->(Landroid/content/pm/ShortcutInfo$Builder;)V HSPLandroid/content/pm/ShortcutInfo;->(Landroid/os/Parcel;)V HSPLandroid/content/pm/ShortcutInfo;->addFlags(I)V HSPLandroid/content/pm/ShortcutInfo;->cloneCapabilityBindings(Ljava/util/Map;)Ljava/util/Map; @@ -4805,7 +4771,7 @@ 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;->(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/content/pm/SigningDetails;->(Landroid/os/Parcel;)V 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; @@ -4838,14 +4804,15 @@ 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;->(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/content/pm/VersionedPackage$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; +HSPLandroid/content/pm/VersionedPackage;->(Landroid/os/Parcel;)V HSPLandroid/content/pm/VersionedPackage;->(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;->parseApkLite(Landroid/content/pm/parsing/result/ParseInput;Ljava/lang/String;Landroid/content/res/XmlResourceParser;Landroid/content/pm/SigningDetails;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;->(Landroid/content/pm/parsing/result/ParseInput$Callback;)V @@ -4873,7 +4840,7 @@ HSPLandroid/content/res/ApkAssets;->dump(Ljava/io/PrintWriter;Ljava/lang/String; 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;->getStringFromPool(I)Ljava/lang/CharSequence; 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; @@ -4895,7 +4862,6 @@ HSPLandroid/content/res/AssetFileDescriptor;->getParcelFileDescriptor()Landroid/ HSPLandroid/content/res/AssetFileDescriptor;->getStartOffset()J HSPLandroid/content/res/AssetFileDescriptor;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/res/AssetManager$AssetInputStream;->(Landroid/content/res/AssetManager;J)V -HSPLandroid/content/res/AssetManager$AssetInputStream;->(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 @@ -4908,7 +4874,7 @@ HSPLandroid/content/res/AssetManager$AssetInputStream;->read([B)I HSPLandroid/content/res/AssetManager$AssetInputStream;->read([BII)I HSPLandroid/content/res/AssetManager$Builder;->()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$Builder;->build()Landroid/content/res/AssetManager; 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 @@ -4920,7 +4886,6 @@ HSPLandroid/content/res/AssetManager;->-$$Nest$smnativeAssetRead(J[BII)I HSPLandroid/content/res/AssetManager;->()V HSPLandroid/content/res/AssetManager;->(Z)V HSPLandroid/content/res/AssetManager;->(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 @@ -4940,7 +4905,7 @@ 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;->getPooledStringForCookie(II)Ljava/lang/CharSequence; HSPLandroid/content/res/AssetManager;->getResourceArray(I[I)I HSPLandroid/content/res/AssetManager;->getResourceArraySize(I)I HSPLandroid/content/res/AssetManager;->getResourceBagText(II)Ljava/lang/CharSequence; @@ -4953,7 +4918,7 @@ HSPLandroid/content/res/AssetManager;->getResourceStringArray(I)[Ljava/lang/Stri 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;->getResourceValue(IILandroid/util/TypedValue;Z)Z HSPLandroid/content/res/AssetManager;->getSizeConfigurations()[Landroid/content/res/Configuration; HSPLandroid/content/res/AssetManager;->getSystem()Landroid/content/res/AssetManager; HSPLandroid/content/res/AssetManager;->getThemeValue(JILandroid/util/TypedValue;Z)Z @@ -4966,7 +4931,7 @@ HSPLandroid/content/res/AssetManager;->openFd(Ljava/lang/String;)Landroid/conten 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;->openXmlBlockAsset(ILjava/lang/String;)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 @@ -5043,7 +5008,7 @@ 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;->hashCode()I HSPLandroid/content/res/Configuration;->isLayoutSizeAtLeast(I)Z HSPLandroid/content/res/Configuration;->isOtherSeqNewer(Landroid/content/res/Configuration;)Z HSPLandroid/content/res/Configuration;->isScreenRound()Z @@ -5056,12 +5021,12 @@ 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;)V 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;->setToDefaults()V 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;->updateFrom(Landroid/content/res/Configuration;)I HSPLandroid/content/res/Configuration;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/content/res/ConfigurationBoundResourceCache;->()V HSPLandroid/content/res/ConfigurationBoundResourceCache;->get(JLandroid/content/res/Resources$Theme;)Ljava/lang/Object; @@ -5080,7 +5045,7 @@ HSPLandroid/content/res/DrawableCache;->getInstance(JLandroid/content/res/Resour 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/Flags;->defaultLocale()Z 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; @@ -5100,7 +5065,6 @@ HSPLandroid/content/res/Resources$$ExternalSyntheticLambda0;->test(Ljava/lang/Ob HSPLandroid/content/res/Resources$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V HSPLandroid/content/res/Resources$NotFoundException;->(Ljava/lang/String;)V HSPLandroid/content/res/Resources$Theme;->(Landroid/content/res/Resources;)V -HSPLandroid/content/res/Resources$Theme;->(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 @@ -5111,7 +5075,7 @@ HSPLandroid/content/res/Resources$Theme;->getResources()Landroid/content/res/Res 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(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray; HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes([I)Landroid/content/res/TypedArray; HSPLandroid/content/res/Resources$Theme;->rebase()V HSPLandroid/content/res/Resources$Theme;->rebase(Landroid/content/res/ResourcesImpl;)V @@ -5119,16 +5083,16 @@ HSPLandroid/content/res/Resources$Theme;->resolveAttribute(ILandroid/util/TypedV 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$Theme;->toString()Ljava/lang/String; HSPLandroid/content/res/Resources$ThemeKey;->()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;->equals(Ljava/lang/Object;)Z 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$ThemeKey;->setTo(Landroid/content/res/Resources$ThemeKey;)V HSPLandroid/content/res/Resources;->(Landroid/content/res/AssetManager;Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;)V -HSPLandroid/content/res/Resources;->(Ljava/lang/ClassLoader;)V+]Ljava/util/Set;Ljava/util/Collections$SynchronizedSet; +HSPLandroid/content/res/Resources;->(Ljava/lang/ClassLoader;)V HSPLandroid/content/res/Resources;->addLoaders([Landroid/content/res/loader/ResourcesLoader;)V HSPLandroid/content/res/Resources;->checkCallbacksRegistered()V HSPLandroid/content/res/Resources;->cleanupThemeReferences()V @@ -5137,7 +5101,7 @@ HSPLandroid/content/res/Resources;->dumpHistory(Ljava/io/PrintWriter;Ljava/lang/ 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;->getAssets()Landroid/content/res/AssetManager; HSPLandroid/content/res/Resources;->getAttributeSetSourceResId(Landroid/util/AttributeSet;)I HSPLandroid/content/res/Resources;->getBoolean(I)Z HSPLandroid/content/res/Resources;->getClassLoader()Ljava/lang/ClassLoader; @@ -5146,12 +5110,12 @@ HSPLandroid/content/res/Resources;->getColor(ILandroid/content/res/Resources$The 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;->getConfiguration()Landroid/content/res/Configuration; 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;->getDisplayMetrics()Landroid/util/DisplayMetrics; HSPLandroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; HSPLandroid/content/res/Resources;->getDrawable(ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; HSPLandroid/content/res/Resources;->getDrawableForDensity(II)Landroid/graphics/drawable/Drawable; @@ -5192,7 +5156,7 @@ HSPLandroid/content/res/Resources;->loadXmlResourceParser(ILjava/lang/String;)La 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;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; 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; @@ -5220,11 +5184,10 @@ HSPLandroid/content/res/ResourcesImpl$$ExternalSyntheticLambda1;->onHeaderDecode HSPLandroid/content/res/ResourcesImpl$$ExternalSyntheticLambda2;->()V HSPLandroid/content/res/ResourcesImpl$$ExternalSyntheticLambda2;->get()Ljava/lang/Object; HSPLandroid/content/res/ResourcesImpl$LookupStack;->()V -HSPLandroid/content/res/ResourcesImpl$LookupStack;->(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;->(Landroid/content/res/ResourcesImpl;)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; +HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->(Landroid/content/res/ResourcesImpl;)V HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->applyStyle(IZ)V HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->finalize()V HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->getAppliedStyleResId()I @@ -5232,17 +5195,17 @@ 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;->obtainStyledAttributes(Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray; HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->rebase()V HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->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;->(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;->(Landroid/content/res/AssetManager;Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;Landroid/view/DisplayAdjustments;)V HSPLandroid/content/res/ResourcesImpl;->adjustLanguageTag(Ljava/lang/String;)Ljava/lang/String; 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;->cacheDrawable(Landroid/util/TypedValue;ZLandroid/content/res/DrawableCache;Landroid/content/res/Resources$Theme;ZJLandroid/graphics/drawable/Drawable;I)V HSPLandroid/content/res/ResourcesImpl;->calcConfigChanges(Landroid/content/res/Configuration;)I HSPLandroid/content/res/ResourcesImpl;->decodeImageDrawable(Landroid/content/res/AssetManager$AssetInputStream;Landroid/content/res/Resources;Landroid/util/TypedValue;)Landroid/graphics/drawable/Drawable; HSPLandroid/content/res/ResourcesImpl;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V @@ -5273,18 +5236,18 @@ HSPLandroid/content/res/ResourcesImpl;->lambda$new$0()Landroid/content/res/Resou 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;->loadComplexColorFromName(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/TypedValue;I)Landroid/content/res/ComplexColor; +HSPLandroid/content/res/ResourcesImpl;->loadDrawable(Landroid/content/res/Resources;Landroid/util/TypedValue;IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; 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;->loadXmlResourceParser(Ljava/lang/String;IILjava/lang/String;)Landroid/content/res/XmlResourceParser; HSPLandroid/content/res/ResourcesImpl;->newThemeImpl()Landroid/content/res/ResourcesImpl$ThemeImpl; HSPLandroid/content/res/ResourcesImpl;->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;->updateConfiguration(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;)V +HSPLandroid/content/res/ResourcesImpl;->updateConfigurationImpl(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Z)V HSPLandroid/content/res/ResourcesImpl;->verifyPreloadConfig(IIILjava/lang/String;)Z HSPLandroid/content/res/ResourcesKey;->(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 @@ -5295,7 +5258,7 @@ HSPLandroid/content/res/StringBlock;->applyStyles(Ljava/lang/String;[ILandroid/c 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/StringBlock;->getSequence(I)Ljava/lang/CharSequence; HSPLandroid/content/res/ThemedResourceCache;->()V HSPLandroid/content/res/ThemedResourceCache;->get(JLandroid/content/res/Resources$Theme;)Ljava/lang/Object; HSPLandroid/content/res/ThemedResourceCache;->getGeneration()I @@ -5310,15 +5273,15 @@ HSPLandroid/content/res/TypedArray;->(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;->getChangingConfigurations()I 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;->getColorStateList(I)Landroid/content/res/ColorStateList; 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;->getDrawable(I)Landroid/graphics/drawable/Drawable; +HSPLandroid/content/res/TypedArray;->getDrawableForDensity(II)Landroid/graphics/drawable/Drawable; HSPLandroid/content/res/TypedArray;->getFloat(IF)F HSPLandroid/content/res/TypedArray;->getFont(I)Landroid/graphics/Typeface; HSPLandroid/content/res/TypedArray;->getFraction(IIIF)F @@ -5328,12 +5291,12 @@ 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;->getNonConfigurationString(II)Ljava/lang/String; HSPLandroid/content/res/TypedArray;->getNonResourceString(I)Ljava/lang/String; HSPLandroid/content/res/TypedArray;->getPositionDescription()Ljava/lang/String; HSPLandroid/content/res/TypedArray;->getResourceId(II)I HSPLandroid/content/res/TypedArray;->getResources()Landroid/content/res/Resources; -HSPLandroid/content/res/TypedArray;->getString(I)Ljava/lang/String;+]Ljava/lang/CharSequence;Ljava/lang/String; +HSPLandroid/content/res/TypedArray;->getString(I)Ljava/lang/String; HSPLandroid/content/res/TypedArray;->getText(I)Ljava/lang/CharSequence; HSPLandroid/content/res/TypedArray;->getTextArray(I)[Ljava/lang/CharSequence; HSPLandroid/content/res/TypedArray;->getType(I)I @@ -5342,11 +5305,11 @@ 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;->loadStringValueAt(I)Ljava/lang/CharSequence; +HSPLandroid/content/res/TypedArray;->obtain(Landroid/content/res/Resources;I)Landroid/content/res/TypedArray; 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/TypedArray;->recycle()V +HSPLandroid/content/res/TypedArray;->resize(I)V HSPLandroid/content/res/XmlBlock$Parser;->(Landroid/content/res/XmlBlock;JLandroid/content/res/XmlBlock;)V HSPLandroid/content/res/XmlBlock$Parser;->close()V HSPLandroid/content/res/XmlBlock$Parser;->finalize()V @@ -5359,20 +5322,20 @@ 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(I)Ljava/lang/String; 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;->getName()Ljava/lang/String; +HSPLandroid/content/res/XmlBlock$Parser;->getPooledString(I)Ljava/lang/CharSequence; 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;->next()I HSPLandroid/content/res/XmlBlock$Parser;->nextTag()I HSPLandroid/content/res/XmlBlock$Parser;->nextText()Ljava/lang/String; HSPLandroid/content/res/XmlBlock$Parser;->require(ILjava/lang/String;Ljava/lang/String;)V @@ -5399,29 +5362,29 @@ HSPLandroid/content/type/DefaultMimeMapFactory;->lambda$create$0(Ljava/lang/Clas HSPLandroid/content/type/DefaultMimeMapFactory;->parseTypes(Llibcore/content/type/MimeMap$Builder;Ljava/util/function/Function;Ljava/lang/String;)V HSPLandroid/database/AbstractCursor$SelfContentObserver;->(Landroid/database/AbstractCursor;)V HSPLandroid/database/AbstractCursor$SelfContentObserver;->onChange(Z)V -HSPLandroid/database/AbstractCursor;->()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;->()V +HSPLandroid/database/AbstractCursor;->checkPosition()V +HSPLandroid/database/AbstractCursor;->close()V 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;->finalize()V +HSPLandroid/database/AbstractCursor;->getColumnCount()I HSPLandroid/database/AbstractCursor;->getColumnIndex(Ljava/lang/String;)I HSPLandroid/database/AbstractCursor;->getColumnIndexOrThrow(Ljava/lang/String;)I -HSPLandroid/database/AbstractCursor;->getColumnName(I)Ljava/lang/String;+]Landroid/database/AbstractCursor;Landroid/database/sqlite/SQLiteCursor; +HSPLandroid/database/AbstractCursor;->getColumnName(I)Ljava/lang/String; HSPLandroid/database/AbstractCursor;->getExtras()Landroid/os/Bundle; HSPLandroid/database/AbstractCursor;->getPosition()I HSPLandroid/database/AbstractCursor;->getWantsAllOnMoveCalls()Z HSPLandroid/database/AbstractCursor;->getWindow()Landroid/database/CursorWindow; -HSPLandroid/database/AbstractCursor;->isAfterLast()Z+]Landroid/database/AbstractCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor; +HSPLandroid/database/AbstractCursor;->isAfterLast()Z 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;->moveToNext()Z +HSPLandroid/database/AbstractCursor;->moveToPosition(I)Z HSPLandroid/database/AbstractCursor;->onChange(Z)V -HSPLandroid/database/AbstractCursor;->onDeactivateOrClose()V+]Landroid/database/DataSetObservable;Landroid/database/DataSetObservable; +HSPLandroid/database/AbstractCursor;->onDeactivateOrClose()V HSPLandroid/database/AbstractCursor;->onMove(II)Z HSPLandroid/database/AbstractCursor;->registerContentObserver(Landroid/database/ContentObserver;)V HSPLandroid/database/AbstractCursor;->registerDataSetObserver(Landroid/database/DataSetObserver;)V @@ -5432,18 +5395,18 @@ HSPLandroid/database/AbstractCursor;->unregisterContentObserver(Landroid/databas HSPLandroid/database/AbstractWindowedCursor;->()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;->closeWindow()V 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;->getDouble(I)D 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;->getInt(I)I +HSPLandroid/database/AbstractWindowedCursor;->getLong(I)J +HSPLandroid/database/AbstractWindowedCursor;->getString(I)Ljava/lang/String; 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;->isNull(I)Z +HSPLandroid/database/AbstractWindowedCursor;->onDeactivateOrClose()V HSPLandroid/database/AbstractWindowedCursor;->setWindow(Landroid/database/CursorWindow;)V HSPLandroid/database/BulkCursorDescriptor$1;->createFromParcel(Landroid/os/Parcel;)Landroid/database/BulkCursorDescriptor; HSPLandroid/database/BulkCursorDescriptor$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -5464,7 +5427,7 @@ HSPLandroid/database/BulkCursorToCursorAdaptor;->getColumnNames()[Ljava/lang/Str 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;->onMove(II)Z HSPLandroid/database/BulkCursorToCursorAdaptor;->throwIfCursorIsClosed()V HSPLandroid/database/ContentObservable;->()V HSPLandroid/database/ContentObservable;->dispatchChange(ZLandroid/net/Uri;)V @@ -5503,21 +5466,21 @@ HSPLandroid/database/CursorWindow$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/database/CursorWindow;->(Landroid/os/Parcel;)V HSPLandroid/database/CursorWindow;->(Landroid/os/Parcel;Landroid/database/CursorWindow-IA;)V HSPLandroid/database/CursorWindow;->(Ljava/lang/String;)V -HSPLandroid/database/CursorWindow;->(Ljava/lang/String;J)V+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/database/CursorWindow;->(Ljava/lang/String;J)V 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;->dispose()V +HSPLandroid/database/CursorWindow;->finalize()V 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;->getDouble(II)D 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;->getInt(II)I +HSPLandroid/database/CursorWindow;->getLong(II)J +HSPLandroid/database/CursorWindow;->getNumRows()I 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;->getString(II)Ljava/lang/String; +HSPLandroid/database/CursorWindow;->getType(II)I HSPLandroid/database/CursorWindow;->newFromParcel(Landroid/os/Parcel;)Landroid/database/CursorWindow; HSPLandroid/database/CursorWindow;->onAllReferencesReleased()V HSPLandroid/database/CursorWindow;->putLong(JII)Z @@ -5536,16 +5499,16 @@ 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;->getInt(I)I HSPLandroid/database/CursorWrapper;->getLong(I)J HSPLandroid/database/CursorWrapper;->getPosition()I HSPLandroid/database/CursorWrapper;->getString(I)Ljava/lang/String; HSPLandroid/database/CursorWrapper;->getType(I)I HSPLandroid/database/CursorWrapper;->getWrappedCursor()Landroid/database/Cursor; -HSPLandroid/database/CursorWrapper;->isAfterLast()Z+]Landroid/database/Cursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/content/ContentProviderClient$CursorWrapperInner;,Landroid/database/BulkCursorToCursorAdaptor; +HSPLandroid/database/CursorWrapper;->isAfterLast()Z 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;->isNull(I)Z HSPLandroid/database/CursorWrapper;->moveToFirst()Z HSPLandroid/database/CursorWrapper;->moveToLast()Z HSPLandroid/database/CursorWrapper;->moveToNext()Z @@ -5553,12 +5516,12 @@ HSPLandroid/database/CursorWrapper;->moveToPosition(I)Z HSPLandroid/database/CursorWrapper;->registerContentObserver(Landroid/database/ContentObserver;)V HSPLandroid/database/DataSetObservable;->()V HSPLandroid/database/DataSetObservable;->notifyChanged()V -HSPLandroid/database/DataSetObservable;->notifyInvalidated()V+]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLandroid/database/DataSetObservable;->notifyInvalidated()V HSPLandroid/database/DataSetObserver;->()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;->appendEscapedSQLString(Ljava/lang/StringBuilder;Ljava/lang/String;)V +HSPLandroid/database/DatabaseUtils;->categorizeStatement(Ljava/lang/String;Ljava/lang/String;)I 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;->getSqlStatementPrefixSimple(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 @@ -5610,30 +5573,27 @@ HSPLandroid/database/MergeCursor;->getString(I)Ljava/lang/String; HSPLandroid/database/MergeCursor;->onMove(II)Z HSPLandroid/database/Observable;->()V HSPLandroid/database/Observable;->registerObserver(Ljava/lang/Object;)V -HSPLandroid/database/Observable;->unregisterAll()V+]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLandroid/database/Observable;->unregisterAll()V HSPLandroid/database/Observable;->unregisterObserver(Ljava/lang/Object;)V HSPLandroid/database/sqlite/FeatureFlagsImpl;->()V HSPLandroid/database/sqlite/FeatureFlagsImpl;->sqliteAllowTempTables()Z HSPLandroid/database/sqlite/Flags;->()V -HSPLandroid/database/sqlite/Flags;->sqliteAllowTempTables()Z+]Landroid/database/sqlite/FeatureFlags;Landroid/database/sqlite/FeatureFlagsImpl; +HSPLandroid/database/sqlite/Flags;->sqliteAllowTempTables()Z HSPLandroid/database/sqlite/SQLiteClosable;->()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/SQLiteClosable;->close()V +HSPLandroid/database/sqlite/SQLiteClosable;->releaseReference()V 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;->()V -HSPLandroid/database/sqlite/SQLiteConnection$Operation;->(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;->(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;->beginOperation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I 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;->endOperationDeferLogLocked(I)Z 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 @@ -5645,46 +5605,46 @@ HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->createStat 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$PreparedStatementCache;->getStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement; 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;->(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;->(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteDatabaseConfiguration;IZ)V 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;->acquirePreparedStatementLI(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement; +HSPLandroid/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V +HSPLandroid/database/sqlite/SQLiteConnection;->attachCancellationSignal(Landroid/os/CancellationSignal;)V +HSPLandroid/database/sqlite/SQLiteConnection;->bindArguments(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V 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;->detachCancellationSignal(Landroid/os/CancellationSignal;)V 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;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V +HSPLandroid/database/sqlite/SQLiteConnection;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)I +HSPLandroid/database/sqlite/SQLiteConnection;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZLandroid/os/CancellationSignal;)I 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;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J +HSPLandroid/database/sqlite/SQLiteConnection;->executeForString(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)Ljava/lang/String; 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;->isPreparedStatementInCache(Ljava/lang/String;)Z 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()V 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;->prepare(Ljava/lang/String;Landroid/database/sqlite/SQLiteStatementInfo;)V 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;->releasePreparedStatementLI(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V HSPLandroid/database/sqlite/SQLiteConnection;->setAutoCheckpointInterval()V HSPLandroid/database/sqlite/SQLiteConnection;->setCustomFunctionsFromConfiguration()V HSPLandroid/database/sqlite/SQLiteConnection;->setForeignKeyModeFromConfiguration()V @@ -5698,14 +5658,13 @@ 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;->()V -HSPLandroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;->(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;->(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;->clearAcquiredConnectionsPreparedStatementCache()V HSPLandroid/database/sqlite/SQLiteConnectionPool;->close()V HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeAvailableConnectionLocked(I)Z HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeAvailableConnectionsAndLogExceptionsLocked()V @@ -5719,13 +5678,13 @@ HSPLandroid/database/sqlite/SQLiteConnectionPool;->discardAcquiredConnectionsLoc 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;->finishAcquireConnectionLocked(Landroid/database/sqlite/SQLiteConnection;I)V 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;->onStatementExecuted(J)V 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; @@ -5733,24 +5692,24 @@ HSPLandroid/database/sqlite/SQLiteConnectionPool;->reconfigure(Landroid/database 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;->releaseConnection(Landroid/database/sqlite/SQLiteConnection;)V 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;->tryAcquireNonPrimaryConnectionLocked(Ljava/lang/String;I)Landroid/database/sqlite/SQLiteConnection; HSPLandroid/database/sqlite/SQLiteConnectionPool;->tryAcquirePrimaryConnectionLocked(I)Landroid/database/sqlite/SQLiteConnection; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->waitForConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)Landroid/database/sqlite/SQLiteConnection;+]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean; +HSPLandroid/database/sqlite/SQLiteConnectionPool;->waitForConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)Landroid/database/sqlite/SQLiteConnection; HSPLandroid/database/sqlite/SQLiteConnectionPool;->wakeConnectionWaitersLocked()V HSPLandroid/database/sqlite/SQLiteConstraintException;->(Ljava/lang/String;)V -HSPLandroid/database/sqlite/SQLiteCursor;->(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;->(Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)V +HSPLandroid/database/sqlite/SQLiteCursor;->close()V +HSPLandroid/database/sqlite/SQLiteCursor;->fillWindow(I)V 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;->getColumnIndex(Ljava/lang/String;)I 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/SQLiteCursor;->getDatabase()Landroid/database/sqlite/SQLiteDatabase; +HSPLandroid/database/sqlite/SQLiteCursor;->onMove(II)Z HSPLandroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda0;->(Landroid/database/sqlite/SQLiteDatabase;)V HSPLandroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda0;->get()Ljava/lang/Object; HSPLandroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda2;->()V @@ -5775,8 +5734,7 @@ HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmLookasideSl 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;->(ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;IIJLjava/lang/String;Ljava/lang/String;)V -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->(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;->(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;->(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;IIJLjava/lang/String;Ljava/lang/String;)V HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransaction()V HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransaction(Landroid/database/sqlite/SQLiteTransactionListener;Z)V HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransactionNonExclusive()V @@ -5797,7 +5755,7 @@ 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;->findEditTable(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; @@ -5805,9 +5763,9 @@ 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;->getThreadSession()Landroid/database/sqlite/SQLiteSession; 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;->inTransaction()Z HSPLandroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J HSPLandroid/database/sqlite/SQLiteDatabase;->insertOrThrow(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J HSPLandroid/database/sqlite/SQLiteDatabase;->insertWithOnConflict(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;I)J @@ -5828,11 +5786,11 @@ HSPLandroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang 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;->queryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; HSPLandroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor; HSPLandroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; -HSPLandroid/database/sqlite/SQLiteDatabase;->rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;+]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;->rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; +HSPLandroid/database/sqlite/SQLiteDatabase;->rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; HSPLandroid/database/sqlite/SQLiteDatabase;->releaseMemory()I HSPLandroid/database/sqlite/SQLiteDatabase;->replace(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J HSPLandroid/database/sqlite/SQLiteDatabase;->replaceOrThrow(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J @@ -5840,26 +5798,26 @@ 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;->updateWithOnConflict(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;I)I HSPLandroid/database/sqlite/SQLiteDatabase;->validateSql(Ljava/lang/String;Landroid/os/CancellationSignal;)V HSPLandroid/database/sqlite/SQLiteDatabase;->yieldIfContendedHelper(ZJ)Z HSPLandroid/database/sqlite/SQLiteDatabase;->yieldIfContendedSafely(J)Z HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->(Ljava/lang/String;I)V -HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->isInMemoryDb()Z+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->isInMemoryDb()Z 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/SQLiteDatabaseConfiguration;->updateParametersFrom(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V HSPLandroid/database/sqlite/SQLiteDebug$NoPreloadHolder;->()V HSPLandroid/database/sqlite/SQLiteDebug;->getDatabaseInfo()Landroid/database/sqlite/SQLiteDebug$PagerStats; HSPLandroid/database/sqlite/SQLiteDebug;->shouldLogSlowQuery(J)Z HSPLandroid/database/sqlite/SQLiteDirectCursorDriver;->(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/SQLiteDirectCursorDriver;->query(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;[Ljava/lang/String;)Landroid/database/Cursor; HSPLandroid/database/sqlite/SQLiteException;->(Ljava/lang/String;)V HSPLandroid/database/sqlite/SQLiteGlobal;->checkDbWipe()Z HSPLandroid/database/sqlite/SQLiteGlobal;->getDefaultJournalMode()Ljava/lang/String; @@ -5876,7 +5834,7 @@ HSPLandroid/database/sqlite/SQLiteOpenHelper;->(Landroid/content/Context;L HSPLandroid/database/sqlite/SQLiteOpenHelper;->(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;IILandroid/database/DatabaseErrorHandler;)V HSPLandroid/database/sqlite/SQLiteOpenHelper;->(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;->getDatabaseLocked(Z)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; @@ -5886,9 +5844,9 @@ HSPLandroid/database/sqlite/SQLiteOpenHelper;->setFilePermissionsForDb(Ljava/lan 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;->(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;->(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V HSPLandroid/database/sqlite/SQLiteProgram;->bind(ILjava/lang/Object;)V -HSPLandroid/database/sqlite/SQLiteProgram;->bindAllArgsAsStrings([Ljava/lang/String;)V+]Landroid/database/sqlite/SQLiteProgram;Landroid/database/sqlite/SQLiteQuery;,Landroid/database/sqlite/SQLiteStatement; +HSPLandroid/database/sqlite/SQLiteProgram;->bindAllArgsAsStrings([Ljava/lang/String;)V HSPLandroid/database/sqlite/SQLiteProgram;->bindBlob(I[B)V HSPLandroid/database/sqlite/SQLiteProgram;->bindDouble(ID)V HSPLandroid/database/sqlite/SQLiteProgram;->bindLong(IJ)V @@ -5897,19 +5855,19 @@ 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;->getConnectionFlags()I 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;->getSession()Landroid/database/sqlite/SQLiteSession; 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/SQLiteProgram;->onAllReferencesReleased()V HSPLandroid/database/sqlite/SQLiteQuery;->(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/SQLiteQuery;->fillWindow(Landroid/database/CursorWindow;IIZ)I HSPLandroid/database/sqlite/SQLiteQueryBuilder;->()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;->appendClause(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V +HSPLandroid/database/sqlite/SQLiteQueryBuilder;->appendColumns(Ljava/lang/StringBuilder;[Ljava/lang/String;)V HSPLandroid/database/sqlite/SQLiteQueryBuilder;->appendWhere(Ljava/lang/CharSequence;)V HSPLandroid/database/sqlite/SQLiteQueryBuilder;->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;->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; 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; @@ -5927,27 +5885,26 @@ 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;->()V -HSPLandroid/database/sqlite/SQLiteSession$Transaction;->(Landroid/database/sqlite/SQLiteSession$Transaction-IA;)V HSPLandroid/database/sqlite/SQLiteSession;->(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;->acquireConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)V 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;->closeOpenDependents()V 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;->execute(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)V +HSPLandroid/database/sqlite/SQLiteSession;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)I +HSPLandroid/database/sqlite/SQLiteSession;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZILandroid/os/CancellationSignal;)I HSPLandroid/database/sqlite/SQLiteSession;->executeForLastInsertedRowId(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)J HSPLandroid/database/sqlite/SQLiteSession;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)J HSPLandroid/database/sqlite/SQLiteSession;->executeForString(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteSession;->executeSpecial(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)Z+]Landroid/os/CancellationSignal;Landroid/os/CancellationSignal; +HSPLandroid/database/sqlite/SQLiteSession;->executeSpecial(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)Z 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;->prepare(Ljava/lang/String;ILandroid/os/CancellationSignal;Landroid/database/sqlite/SQLiteStatementInfo;)V HSPLandroid/database/sqlite/SQLiteSession;->recycleTransaction(Landroid/database/sqlite/SQLiteSession$Transaction;)V -HSPLandroid/database/sqlite/SQLiteSession;->releaseConnection()V+]Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteConnectionPool; +HSPLandroid/database/sqlite/SQLiteSession;->releaseConnection()V HSPLandroid/database/sqlite/SQLiteSession;->setTransactionSuccessful()V HSPLandroid/database/sqlite/SQLiteSession;->throwIfNestedTransaction()V HSPLandroid/database/sqlite/SQLiteSession;->throwIfNoTransaction()V @@ -5955,15 +5912,14 @@ HSPLandroid/database/sqlite/SQLiteSession;->throwIfTransactionMarkedSuccessful() HSPLandroid/database/sqlite/SQLiteSession;->yieldTransaction(JZLandroid/os/CancellationSignal;)Z HSPLandroid/database/sqlite/SQLiteSession;->yieldTransactionUnchecked(JLandroid/os/CancellationSignal;)Z HSPLandroid/database/sqlite/SQLiteStatement;->(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;->execute()V 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;->executeUpdateDelete()I HSPLandroid/database/sqlite/SQLiteStatement;->simpleQueryForLong()J HSPLandroid/database/sqlite/SQLiteStatement;->simpleQueryForString()Ljava/lang/String; HSPLandroid/database/sqlite/SQLiteStatementInfo;->()V HSPLandroid/ddm/DdmHandle;->putString(Ljava/nio/ByteBuffer;Ljava/lang/String;)V HSPLandroid/ddm/DdmHandleAppName$Names;->(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/ddm/DdmHandleAppName$Names;->(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 @@ -6000,25 +5956,25 @@ HSPLandroid/graphics/BaseCanvas;->throwIfHasHwFeaturesInSwMode(Landroid/graphics HSPLandroid/graphics/BaseCanvas;->throwIfHasHwFeaturesInSwMode(Landroid/graphics/Shader;)V HSPLandroid/graphics/BaseCanvas;->throwIfHwBitmapInSwMode(Landroid/graphics/Bitmap;)V HSPLandroid/graphics/BaseRecordingCanvas;->(J)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V+]Landroid/graphics/BaseRecordingCanvas;Landroid/graphics/RecordingCanvas; +HSPLandroid/graphics/BaseRecordingCanvas;->drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawCircle(FFFLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint; +HSPLandroid/graphics/BaseRecordingCanvas;->drawCircle(FFFLandroid/graphics/Paint;)V 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;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V +HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(FFFFLandroid/graphics/Paint;)V +HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawRoundRect(FFFFFFLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint; +HSPLandroid/graphics/BaseRecordingCanvas;->drawRoundRect(FFFFFFLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/Layout$Ellipsizer; +HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;Landroid/text/SpannableString; +HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun([CIIIIFFZLandroid/graphics/Paint;)V HSPLandroid/graphics/Bitmap$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Bitmap; HSPLandroid/graphics/Bitmap$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -6257,6 +6213,8 @@ HSPLandroid/graphics/Compatibility;->()V HSPLandroid/graphics/Compatibility;->getTargetSdkVersion()I HSPLandroid/graphics/Compatibility;->setTargetSdkVersion(I)V HSPLandroid/graphics/DrawFilter;->()V +HSPLandroid/graphics/FontListParser;->readFamily(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/util/Map;Z)Landroid/text/FontConfig$FontFamily; +HSPLandroid/graphics/FontListParser;->readFont(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/util/Map;Z)Landroid/text/FontConfig$Font; HSPLandroid/graphics/FrameInfo;->()V HSPLandroid/graphics/FrameInfo;->addFlags(J)V HSPLandroid/graphics/FrameInfo;->markAnimationsStart()V @@ -6323,8 +6281,8 @@ HSPLandroid/graphics/HardwareRendererObserver$$ExternalSyntheticLambda0;-> HSPLandroid/graphics/HardwareRendererObserver$$ExternalSyntheticLambda0;->run()V HSPLandroid/graphics/HardwareRendererObserver;->(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/HardwareRendererObserver;->invokeDataAvailable(Ljava/lang/ref/WeakReference;)Z +HSPLandroid/graphics/HardwareRendererObserver;->notifyDataAvailable()V HSPLandroid/graphics/ImageDecoder$AssetInputStreamSource;->(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 @@ -6333,13 +6291,11 @@ HSPLandroid/graphics/ImageDecoder$AssetInputStreamSource;->toString()Ljava/lang/ HSPLandroid/graphics/ImageDecoder$ImageDecoderSourceTrace;->(Landroid/graphics/ImageDecoder;)V HSPLandroid/graphics/ImageDecoder$ImageDecoderSourceTrace;->close()V HSPLandroid/graphics/ImageDecoder$ImageInfo;->(Landroid/util/Size;ZLjava/lang/String;Landroid/graphics/ColorSpace;)V -HSPLandroid/graphics/ImageDecoder$ImageInfo;->(Landroid/util/Size;ZLjava/lang/String;Landroid/graphics/ColorSpace;Landroid/graphics/ImageDecoder$ImageInfo-IA;)V HSPLandroid/graphics/ImageDecoder$InputStreamSource;->(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;->()V -HSPLandroid/graphics/ImageDecoder$Source;->(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;->(JIIZZ)V @@ -6369,7 +6325,7 @@ HSPLandroid/graphics/Insets$1;->createFromParcel(Landroid/os/Parcel;)Landroid/gr HSPLandroid/graphics/Insets$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/graphics/Insets;->(IIII)V HSPLandroid/graphics/Insets;->(IIIILandroid/graphics/Insets-IA;)V -HSPLandroid/graphics/Insets;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/graphics/Insets; +HSPLandroid/graphics/Insets;->equals(Ljava/lang/Object;)Z 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; @@ -6389,11 +6345,11 @@ HSPLandroid/graphics/LeakyTypefaceStorage;->writeTypefaceToParcel(Landroid/graph HSPLandroid/graphics/LinearGradient;->(FFFFIILandroid/graphics/Shader$TileMode;)V HSPLandroid/graphics/LinearGradient;->(FFFFJJLandroid/graphics/Shader$TileMode;)V HSPLandroid/graphics/LinearGradient;->(FFFF[I[FLandroid/graphics/Shader$TileMode;)V -HSPLandroid/graphics/LinearGradient;->(FFFF[J[FLandroid/graphics/Shader$TileMode;)V+][J[J +HSPLandroid/graphics/LinearGradient;->(FFFF[J[FLandroid/graphics/Shader$TileMode;)V HSPLandroid/graphics/LinearGradient;->(FFFF[J[FLandroid/graphics/Shader$TileMode;Landroid/graphics/ColorSpace;)V HSPLandroid/graphics/LinearGradient;->createNativeInstance(JZ)J HSPLandroid/graphics/MaskFilter;->finalize()V -HSPLandroid/graphics/Matrix;->()V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; +HSPLandroid/graphics/Matrix;->()V HSPLandroid/graphics/Matrix;->(Landroid/graphics/Matrix;)V HSPLandroid/graphics/Matrix;->checkPointArrays([FI[FII)V HSPLandroid/graphics/Matrix;->equals(Ljava/lang/Object;)Z @@ -6402,7 +6358,7 @@ 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;)Z HSPLandroid/graphics/Matrix;->mapRect(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z HSPLandroid/graphics/Matrix;->ni()J HSPLandroid/graphics/Matrix;->postConcat(Landroid/graphics/Matrix;)Z @@ -6438,18 +6394,18 @@ HSPLandroid/graphics/Outline;->()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;->setEmpty()V HSPLandroid/graphics/Outline;->setOval(IIII)V HSPLandroid/graphics/Outline;->setOval(Landroid/graphics/Rect;)V HSPLandroid/graphics/Outline;->setPath(Landroid/graphics/Path;)V -HSPLandroid/graphics/Outline;->setRect(IIII)V+]Landroid/graphics/Outline;Landroid/graphics/Outline; +HSPLandroid/graphics/Outline;->setRect(IIII)V 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(IIIIF)V HSPLandroid/graphics/Outline;->setRoundRect(Landroid/graphics/Rect;F)V HSPLandroid/graphics/Paint$FontMetrics;->()V HSPLandroid/graphics/Paint$FontMetricsInt;->()V HSPLandroid/graphics/Paint;->()V -HSPLandroid/graphics/Paint;->(I)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;,Landroid/text/TextPaint;]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; +HSPLandroid/graphics/Paint;->(I)V HSPLandroid/graphics/Paint;->(Landroid/graphics/Paint;)V HSPLandroid/graphics/Paint;->ascent()F HSPLandroid/graphics/Paint;->descent()F @@ -6461,14 +6417,14 @@ 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; 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;->getNativeInstance()J 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 @@ -6486,7 +6442,7 @@ 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/CharSequence;IILandroid/graphics/Rect;)V HSPLandroid/graphics/Paint;->getTextBounds(Ljava/lang/String;IILandroid/graphics/Rect;)V HSPLandroid/graphics/Paint;->getTextBounds([CIILandroid/graphics/Rect;)V HSPLandroid/graphics/Paint;->getTextLocale()Ljava/util/Locale; @@ -6506,7 +6462,7 @@ HSPLandroid/graphics/Paint;->installXfermode(Landroid/graphics/Xfermode;)Landroi 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;->isFilterBitmap()Z HSPLandroid/graphics/Paint;->measureText(Ljava/lang/CharSequence;II)F HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;)F HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;II)F @@ -6540,14 +6496,14 @@ 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;->setTextLocales(Landroid/os/LocaleList;)V HSPLandroid/graphics/Paint;->setTextScaleX(F)V HSPLandroid/graphics/Paint;->setTextSize(F)V HSPLandroid/graphics/Paint;->setTextSkewX(F)V HSPLandroid/graphics/Paint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface; HSPLandroid/graphics/Paint;->setUnderlineText(Z)V HSPLandroid/graphics/Paint;->setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode; -HSPLandroid/graphics/Paint;->syncTextLocalesWithMinikin()V+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/os/LocaleList;Landroid/os/LocaleList; +HSPLandroid/graphics/Paint;->syncTextLocalesWithMinikin()V HSPLandroid/graphics/PaintFlagsDrawFilter;->(II)V HSPLandroid/graphics/Path;->()V HSPLandroid/graphics/Path;->(Landroid/graphics/Path;)V @@ -6556,7 +6512,7 @@ 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;->addPath(Landroid/graphics/Path;Landroid/graphics/Matrix;)V 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 @@ -6566,9 +6522,9 @@ HSPLandroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;[FLandroid/grap 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;->arcTo(Landroid/graphics/RectF;FFZ)V HSPLandroid/graphics/Path;->close()V -HSPLandroid/graphics/Path;->computeBounds(Landroid/graphics/RectF;Z)V+]Landroid/graphics/Path;Landroid/graphics/Path; +HSPLandroid/graphics/Path;->computeBounds(Landroid/graphics/RectF;Z)V HSPLandroid/graphics/Path;->cubicTo(FFFFFF)V HSPLandroid/graphics/Path;->getFillType()Landroid/graphics/Path$FillType; HSPLandroid/graphics/Path;->isConvex()Z @@ -6580,11 +6536,11 @@ HSPLandroid/graphics/Path;->op(Landroid/graphics/Path;Landroid/graphics/Path$Op; 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;->reset()V 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;)V HSPLandroid/graphics/Path;->transform(Landroid/graphics/Matrix;Landroid/graphics/Path;)V HSPLandroid/graphics/PathMeasure;->()V HSPLandroid/graphics/PathMeasure;->(Landroid/graphics/Path;Z)V @@ -6607,7 +6563,7 @@ HSPLandroid/graphics/Point;->()V HSPLandroid/graphics/Point;->(II)V HSPLandroid/graphics/Point;->(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;->equals(Ljava/lang/Object;)Z HSPLandroid/graphics/Point;->hashCode()I HSPLandroid/graphics/Point;->offset(II)V HSPLandroid/graphics/Point;->readFromParcel(Landroid/os/Parcel;)V @@ -6641,8 +6597,8 @@ HSPLandroid/graphics/RecordingCanvas;->finishRecording(Landroid/graphics/RenderN 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;->obtain(Landroid/graphics/RenderNode;II)Landroid/graphics/RecordingCanvas; +HSPLandroid/graphics/RecordingCanvas;->recycle()V HSPLandroid/graphics/RecordingCanvas;->throwIfCannotDraw(Landroid/graphics/Bitmap;)V HSPLandroid/graphics/Rect$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Rect; HSPLandroid/graphics/Rect$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -6655,7 +6611,7 @@ 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;->equals(Ljava/lang/Object;)Z HSPLandroid/graphics/Rect;->exactCenterX()F HSPLandroid/graphics/Rect;->exactCenterY()F HSPLandroid/graphics/Rect;->hashCode()I @@ -6695,7 +6651,7 @@ 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;->intersect(Landroid/graphics/RectF;)Z HSPLandroid/graphics/RectF;->isEmpty()Z HSPLandroid/graphics/RectF;->offset(FF)V HSPLandroid/graphics/RectF;->offsetTo(FF)V @@ -6706,7 +6662,7 @@ 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;->union(Landroid/graphics/RectF;)V HSPLandroid/graphics/RectF;->width()F HSPLandroid/graphics/Region$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Region; HSPLandroid/graphics/Region$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -6742,10 +6698,10 @@ HSPLandroid/graphics/RenderNode;->beginRecording(II)Landroid/graphics/RecordingC 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;->endRecording()V 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;->getMatrix(Landroid/graphics/Matrix;)V HSPLandroid/graphics/RenderNode;->getPivotY()F HSPLandroid/graphics/RenderNode;->getRotationX()F HSPLandroid/graphics/RenderNode;->getRotationY()F @@ -6817,7 +6773,7 @@ HSPLandroid/graphics/TextureLayer;->(Landroid/graphics/HardwareRenderer;J) 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$Builder;->createAssetUid(Landroid/content/res/AssetManager;Ljava/lang/String;I[Landroid/graphics/fonts/FontVariationAxis;IILjava/lang/String;)Ljava/lang/String; HSPLandroid/graphics/Typeface$CustomFallbackBuilder;->(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; @@ -6942,7 +6898,7 @@ HSPLandroid/graphics/drawable/AnimatedVectorDrawable$2;->onAnimationEnd(Landroid HSPLandroid/graphics/drawable/AnimatedVectorDrawable$2;->onAnimationStart(Landroid/animation/Animator;)V HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState$PendingAnimator;->(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;->(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;->(Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;Landroid/graphics/drawable/Drawable$Callback;Landroid/content/res/Resources;)V HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->addPendingAnimator(IFLjava/lang/String;)V HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->addTargetAnimator(Ljava/lang/String;Landroid/animation/Animator;)V HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->canApplyTheme()Z @@ -7096,7 +7052,7 @@ HSPLandroid/graphics/drawable/ColorDrawable;->(Landroid/graphics/drawable/ HSPLandroid/graphics/drawable/ColorDrawable;->(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;->draw(Landroid/graphics/Canvas;)V HSPLandroid/graphics/drawable/ColorDrawable;->getAlpha()I HSPLandroid/graphics/drawable/ColorDrawable;->getChangingConfigurations()I HSPLandroid/graphics/drawable/ColorDrawable;->getColor()I @@ -7111,7 +7067,7 @@ 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;->updateLocalState(Landroid/content/res/Resources;)V HSPLandroid/graphics/drawable/ColorDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/Drawable$ConstantState;->()V HSPLandroid/graphics/drawable/Drawable$ConstantState;->canApplyTheme()Z @@ -7127,7 +7083,7 @@ HSPLandroid/graphics/drawable/Drawable;->createFromXmlForDensity(Landroid/conten 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;->getCallback()Landroid/graphics/drawable/Drawable$Callback; HSPLandroid/graphics/drawable/Drawable;->getChangingConfigurations()I HSPLandroid/graphics/drawable/Drawable;->getColorFilter()Landroid/graphics/ColorFilter; HSPLandroid/graphics/drawable/Drawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState; @@ -7137,14 +7093,14 @@ 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;->getMinimumHeight()I +HSPLandroid/graphics/drawable/Drawable;->getMinimumWidth()I HSPLandroid/graphics/drawable/Drawable;->getOutline(Landroid/graphics/Outline;)V HSPLandroid/graphics/drawable/Drawable;->getPadding(Landroid/graphics/Rect;)Z HSPLandroid/graphics/drawable/Drawable;->getState()[I 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;->invalidateSelf()V HSPLandroid/graphics/drawable/Drawable;->isProjected()Z HSPLandroid/graphics/drawable/Drawable;->isStateful()Z HSPLandroid/graphics/drawable/Drawable;->isVisible()Z @@ -7162,7 +7118,7 @@ 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;->setBounds(Landroid/graphics/Rect;)V 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 @@ -7171,20 +7127,19 @@ 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;->setState([I)Z 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;->updateBlendModeFilter(Landroid/graphics/BlendModeColorFilter;Landroid/content/res/ColorStateList;Landroid/graphics/BlendMode;)Landroid/graphics/BlendModeColorFilter; HSPLandroid/graphics/drawable/Drawable;->updateTintFilter(Landroid/graphics/PorterDuffColorFilter;Landroid/content/res/ColorStateList;Landroid/graphics/PorterDuff$Mode;)Landroid/graphics/PorterDuffColorFilter; HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->()V -HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->(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;->(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;->(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;Landroid/graphics/drawable/DrawableContainer;Landroid/content/res/Resources;)V 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 @@ -7227,7 +7182,7 @@ 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;->initializeDrawableForDisplay(Landroid/graphics/drawable/Drawable;)V HSPLandroid/graphics/drawable/DrawableContainer;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V HSPLandroid/graphics/drawable/DrawableContainer;->isAutoMirrored()Z HSPLandroid/graphics/drawable/DrawableContainer;->isStateful()Z @@ -7294,7 +7249,7 @@ HSPLandroid/graphics/drawable/DrawableWrapper;->updateLocalState(Landroid/conten 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;->(Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->(Landroid/graphics/drawable/GradientDrawable$Orientation;[I)V+]Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/graphics/drawable/GradientDrawable$GradientState; +HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->(Landroid/graphics/drawable/GradientDrawable$Orientation;[I)V HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->applyDensityScaling(II)V HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->canApplyTheme()Z HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->computeOpacity()V @@ -7315,7 +7270,7 @@ HSPLandroid/graphics/drawable/GradientDrawable;->applyTheme(Landroid/content/res 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;->draw(Landroid/graphics/Canvas;)V HSPLandroid/graphics/drawable/GradientDrawable;->ensureValidRect()Z HSPLandroid/graphics/drawable/GradientDrawable;->getChangingConfigurations()I HSPLandroid/graphics/drawable/GradientDrawable;->getColorFilter()Landroid/graphics/ColorFilter; @@ -7336,7 +7291,7 @@ HSPLandroid/graphics/drawable/GradientDrawable;->mutate()Landroid/graphics/drawa 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;->setAlpha(I)V HSPLandroid/graphics/drawable/GradientDrawable;->setColor(I)V HSPLandroid/graphics/drawable/GradientDrawable;->setColor(Landroid/content/res/ColorStateList;)V HSPLandroid/graphics/drawable/GradientDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V @@ -7357,7 +7312,7 @@ HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawablePadding(L 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;->updateLocalState(Landroid/content/res/Resources;)V HSPLandroid/graphics/drawable/GradientDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/Icon$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/drawable/Icon; HSPLandroid/graphics/drawable/Icon$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -7398,7 +7353,7 @@ HSPLandroid/graphics/drawable/InsetDrawable;->(Landroid/graphics/drawable/ HSPLandroid/graphics/drawable/InsetDrawable;->(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;->getInsets(Landroid/graphics/Rect;)V HSPLandroid/graphics/drawable/InsetDrawable;->getIntrinsicHeight()I HSPLandroid/graphics/drawable/InsetDrawable;->getIntrinsicWidth()I HSPLandroid/graphics/drawable/InsetDrawable;->getOpacity()I @@ -7410,7 +7365,7 @@ HSPLandroid/graphics/drawable/InsetDrawable;->onBoundsChange(Landroid/graphics/R 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;->(I)V -HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->(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;->(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;Landroid/graphics/drawable/LayerDrawable;Landroid/content/res/Resources;)V HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->applyDensityScaling(II)V HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->canApplyTheme()Z HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->setDensity(I)V @@ -7483,7 +7438,7 @@ HSPLandroid/graphics/drawable/LayerDrawable;->setTintList(Landroid/content/res/C 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;->updateLayerBoundsInternal(Landroid/graphics/Rect;)V HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerFromTypedArray(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/LayerDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/NinePatchDrawable$$ExternalSyntheticLambda0;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V @@ -7594,21 +7549,21 @@ HSPLandroid/graphics/drawable/RippleDrawable;->createConstantState(Landroid/grap 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;->drawPatterned(Landroid/graphics/Canvas;)V 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;->getDirtyBounds()Landroid/graphics/Rect; HSPLandroid/graphics/drawable/RippleDrawable;->getMaskType()I HSPLandroid/graphics/drawable/RippleDrawable;->getOpacity()I -HSPLandroid/graphics/drawable/RippleDrawable;->getOutline(Landroid/graphics/Outline;)V+]Landroid/graphics/Outline;Landroid/graphics/Outline;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/InsetDrawable;,Landroid/graphics/drawable/StateListDrawable; +HSPLandroid/graphics/drawable/RippleDrawable;->getOutline(Landroid/graphics/Outline;)V 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;->isProjected()Z HSPLandroid/graphics/drawable/RippleDrawable;->isStateful()Z HSPLandroid/graphics/drawable/RippleDrawable;->jumpToCurrentState()V HSPLandroid/graphics/drawable/RippleDrawable;->mutate()Landroid/graphics/drawable/Drawable; @@ -7687,7 +7642,7 @@ 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;->onBoundsChange(Landroid/graphics/Rect;)V HSPLandroid/graphics/drawable/ScaleDrawable;->onLevelChange(I)Z HSPLandroid/graphics/drawable/ScaleDrawable;->updateLocalState()V HSPLandroid/graphics/drawable/ScaleDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V @@ -7765,12 +7720,12 @@ HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getPropertyIndex(Ljava/ 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$VFullPath;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V 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;->()V -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->(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;->(Landroid/graphics/drawable/VectorDrawable$VGroup;Landroid/util/ArrayMap;)V +HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->addChild(Landroid/graphics/drawable/VectorDrawable$VObject;)V HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->applyTheme(Landroid/content/res/Resources$Theme;)V HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->canApplyTheme()Z HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->getGroupName()Ljava/lang/String; @@ -7790,7 +7745,7 @@ HSPLandroid/graphics/drawable/VectorDrawable$VPath;->(Landroid/graphics/dr 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;->(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;->(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;)V HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->applyDensityScaling(II)V HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->applyTheme(Landroid/content/res/Resources$Theme;)V HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->canApplyTheme()Z @@ -7805,7 +7760,7 @@ 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;->onTreeConstructionFinished()V HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->setAlpha(F)Z HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->setDensity(I)Z HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->setViewportSize(FF)V @@ -7831,7 +7786,7 @@ HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnUpdateGroupProperties( HSPLandroid/graphics/drawable/VectorDrawable;->()V HSPLandroid/graphics/drawable/VectorDrawable;->(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/content/res/Resources;)V HSPLandroid/graphics/drawable/VectorDrawable;->(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;->applyTheme(Landroid/content/res/Resources$Theme;)V HSPLandroid/graphics/drawable/VectorDrawable;->canApplyTheme()Z HSPLandroid/graphics/drawable/VectorDrawable;->clearMutated()V HSPLandroid/graphics/drawable/VectorDrawable;->computeVectorSize()V @@ -7846,8 +7801,8 @@ 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;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V +HSPLandroid/graphics/drawable/VectorDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V HSPLandroid/graphics/drawable/VectorDrawable;->isAutoMirrored()Z HSPLandroid/graphics/drawable/VectorDrawable;->isStateful()Z HSPLandroid/graphics/drawable/VectorDrawable;->mutate()Landroid/graphics/drawable/Drawable; @@ -7861,7 +7816,7 @@ HSPLandroid/graphics/drawable/VectorDrawable;->setTintBlendMode(Landroid/graphic 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/VectorDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V HSPLandroid/graphics/drawable/shapes/OvalShape;->()V HSPLandroid/graphics/drawable/shapes/OvalShape;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V HSPLandroid/graphics/drawable/shapes/OvalShape;->getOutline(Landroid/graphics/Outline;)V @@ -7967,7 +7922,6 @@ HSPLandroid/hardware/HardwareBuffer;->isClosed()Z HSPLandroid/hardware/ICameraService$Stub$Proxy;->(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 @@ -8015,7 +7969,7 @@ HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->removeSensor(Landroid/ HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;->(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;->dispatchSensorEvent(I[FIJ)V 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 @@ -8050,29 +8004,19 @@ HSPLandroid/hardware/camera2/CameraCharacteristics;->overrideProperty(Landroid/h HSPLandroid/hardware/camera2/CameraManager$AvailabilityCallback;->()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;->(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;->(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;->()V HSPLandroid/hardware/camera2/CameraMetadata;->setNativeInstance(Landroid/hardware/camera2/impl/CameraMetadataNative;)V HSPLandroid/hardware/camera2/impl/CameraDeviceImpl$CameraHandlerExecutor;->execute(Ljava/lang/Runnable;)V @@ -8150,18 +8094,15 @@ HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWra HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda2;->run()V HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper;->(Landroid/hardware/devicestate/DeviceStateManager$DeviceStateCallback;Ljava/util/concurrent/Executor;)V HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateManagerCallback;->(Landroid/hardware/devicestate/DeviceStateManagerGlobal;)V -HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateManagerCallback;->(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;->(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;->(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;->()V HSPLandroid/hardware/devicestate/IDeviceStateManagerCallback$Stub;->asBinder()Landroid/os/IBinder; @@ -8200,7 +8141,6 @@ HSPLandroid/hardware/display/DeviceProductInfo;->equals(Ljava/lang/Object;)Z HSPLandroid/hardware/display/DisplayManager$$ExternalSyntheticLambda2;->()V HSPLandroid/hardware/display/DisplayManager$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;->()V -HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;->(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 @@ -8219,11 +8159,9 @@ HSPLandroid/hardware/display/DisplayManagerGlobal$1;->(Landroid/hardware/d 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;->(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$DisplayListenerDelegate;->handleDisplayEventInner(IILandroid/view/DisplayInfo;Z)V+]Landroid/hardware/display/DisplayManager$DisplayListener;megamorphic_types HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;->(Landroid/hardware/display/DisplayManagerGlobal;)V -HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;->(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;->(Landroid/hardware/display/IDisplayManager;)V @@ -8235,7 +8173,7 @@ HSPLandroid/hardware/display/DisplayManagerGlobal;->getCompatibleDisplay(ILandro 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;->getDisplayInfoLocked(I)Landroid/view/DisplayInfo; HSPLandroid/hardware/display/DisplayManagerGlobal;->getInstance()Landroid/hardware/display/DisplayManagerGlobal; HSPLandroid/hardware/display/DisplayManagerGlobal;->getLooperForHandler(Landroid/os/Handler;)Landroid/os/Looper; HSPLandroid/hardware/display/DisplayManagerGlobal;->getPreferredWideGamutColorSpace()Landroid/graphics/ColorSpace; @@ -8244,7 +8182,7 @@ HSPLandroid/hardware/display/DisplayManagerGlobal;->getWifiDisplayStatus()Landro 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;->registerDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;Ljava/util/concurrent/Executor;JLjava/lang/String;)V HSPLandroid/hardware/display/DisplayManagerGlobal;->registerNativeChoreographerForRefreshRateCallbacks()V HSPLandroid/hardware/display/DisplayManagerGlobal;->unregisterDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;)V HSPLandroid/hardware/display/DisplayManagerGlobal;->updateCallbackIfNeededLocked()V @@ -8310,7 +8248,6 @@ HSPLandroid/hardware/input/InputManager;->registerInputDeviceListener(Landroid/h HSPLandroid/hardware/input/InputManager;->unregisterInputDeviceListener(Landroid/hardware/input/InputManager$InputDeviceListener;)V HSPLandroid/hardware/input/InputManagerGlobal$InputDeviceListenerDelegate;->(Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V HSPLandroid/hardware/input/InputManagerGlobal$InputDevicesChangedListener;->(Landroid/hardware/input/InputManagerGlobal;)V -HSPLandroid/hardware/input/InputManagerGlobal$InputDevicesChangedListener;->(Landroid/hardware/input/InputManagerGlobal;Landroid/hardware/input/InputManagerGlobal$InputDevicesChangedListener-IA;)V HSPLandroid/hardware/input/InputManagerGlobal;->(Landroid/hardware/input/IInputManager;)V HSPLandroid/hardware/input/InputManagerGlobal;->getInputDevice(I)Landroid/view/InputDevice; HSPLandroid/hardware/input/InputManagerGlobal;->getInputDeviceIds()[I @@ -8362,7 +8299,7 @@ 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;->(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/hardware/location/NanoAppState;->(Landroid/os/Parcel;)V HSPLandroid/hardware/location/NanoAppState;->getNanoAppId()J HSPLandroid/hardware/security/keymint/KeyParameter$1;->()V HSPLandroid/hardware/security/keymint/KeyParameter$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/security/keymint/KeyParameter; @@ -8453,6 +8390,8 @@ HSPLandroid/icu/impl/CalendarUtil$CalendarPreferences;->getCalendarTypeForRegion 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;->fold(ILjava/lang/CharSequence;)Ljava/lang/String; +HSPLandroid/icu/impl/CaseMapImpl;->internalToLower(IILjava/lang/CharSequence;IILandroid/icu/impl/CaseMapImpl$StringContextIterator;Ljava/lang/Appendable;Landroid/icu/text/Edits;)V HSPLandroid/icu/impl/CaseMapImpl;->internalToUpper(IILjava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)V HSPLandroid/icu/impl/CaseMapImpl;->toUpper(IILjava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable; HSPLandroid/icu/impl/CharacterIteration;->nextTrail32(Ljava/text/CharacterIterator;I)I @@ -8466,6 +8405,10 @@ HSPLandroid/icu/impl/CurrencyData$CurrencySpacingInfo;->setSymbolIfNull(Landroid HSPLandroid/icu/impl/DateNumberFormat;->(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/DayPeriodRules$DayPeriod;->fromStringOrNull(Ljava/lang/CharSequence;)Landroid/icu/impl/DayPeriodRules$DayPeriod; +HSPLandroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->parseHour(Ljava/lang/String;)I +HSPLandroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->processRules(Landroid/icu/impl/UResource$Table;Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V +HSPLandroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->setDayPeriodForHoursFromCutoffs()V HSPLandroid/icu/impl/FormattedStringBuilder;->()V HSPLandroid/icu/impl/FormattedStringBuilder;->(I)V HSPLandroid/icu/impl/FormattedStringBuilder;->(Landroid/icu/impl/FormattedStringBuilder;)V @@ -8475,7 +8418,7 @@ HSPLandroid/icu/impl/FormattedStringBuilder;->copyFrom(Landroid/icu/impl/Formatt 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(ILjava/lang/CharSequence;Ljava/lang/Object;)I 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 @@ -8486,8 +8429,8 @@ 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/FormattedValueStringBuilderImpl;->nextFieldPosition(Landroid/icu/impl/FormattedStringBuilder;Ljava/text/FieldPosition;)Z +HSPLandroid/icu/impl/FormattedValueStringBuilderImpl;->nextPosition(Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/text/ConstrainedFieldPosition;Ljava/text/Format$Field;)Z HSPLandroid/icu/impl/Grego;->dayOfWeek(J)I HSPLandroid/icu/impl/Grego;->dayToFields(J[I)[I HSPLandroid/icu/impl/Grego;->fieldsToDay(III)J @@ -8507,7 +8450,7 @@ HSPLandroid/icu/impl/ICUBinary$PackageDataFile;->addBaseNamesInFolder(Ljava/lang 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;->compareKeys(Ljava/lang/CharSequence;[BI)I 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; @@ -8533,7 +8476,6 @@ HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;->get 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;->()V -HSPLandroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;->(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; @@ -8543,7 +8485,7 @@ 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;->collectRegion(Landroid/icu/impl/ICUCurrencyMetaInfo$Collector;Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;ILandroid/icu/impl/ICUResourceBundle;)V 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 @@ -8551,9 +8493,9 @@ HSPLandroid/icu/impl/ICUData;->checkStreamForBinaryData(Ljava/io/InputStream;Lja 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;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V 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;->currentDescriptor()Ljava/lang/String; 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 @@ -8581,25 +8523,23 @@ HSPLandroid/icu/impl/ICUResourceBundle$5;->(Ljava/lang/String;Ljava/lang/S HSPLandroid/icu/impl/ICUResourceBundle$5;->load()Landroid/icu/impl/ICUResourceBundle; HSPLandroid/icu/impl/ICUResourceBundle$AvailEntry;->getFullLocaleNameSet()Ljava/util/Set; HSPLandroid/icu/impl/ICUResourceBundle$Loader;->()V -HSPLandroid/icu/impl/ICUResourceBundle$Loader;->(Landroid/icu/impl/ICUResourceBundle$Loader-IA;)V HSPLandroid/icu/impl/ICUResourceBundle$WholeBundle;->(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;->(Landroid/icu/impl/ICUResourceBundle$WholeBundle;)V HSPLandroid/icu/impl/ICUResourceBundle;->(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;->countPathKeys(Ljava/lang/String;)I 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;->findStringWithFallback(Ljava/lang/String;Landroid/icu/util/UResourceBundle;Landroid/icu/util/UResourceBundle;)Ljava/lang/String; 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; @@ -8632,7 +8572,7 @@ 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;->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; HSPLandroid/icu/impl/ICUResourceBundle;->setParent(Ljava/util/ResourceBundle;)V HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;->(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;->getStringArray()[Ljava/lang/String; @@ -8644,22 +8584,22 @@ HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceBinary;->getBinary([B)[B HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->(Landroid/icu/impl/ICUResourceBundle$WholeBundle;)V HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->(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;->getContainerResource(I)I HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->getSize()I HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->getString(I)Ljava/lang/String; HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceInt;->(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceInt;->getInt()I HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceIntVector;->(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceIntVector;->getIntVector()[I -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceString;->(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;->(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceString;->getString()Ljava/lang/String; HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceString;->getType()I HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;->(Landroid/icu/impl/ICUResourceBundle$WholeBundle;I)V -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;->(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V+]Landroid/icu/impl/ICUResourceBundleReader;Landroid/icu/impl/ICUResourceBundleReader; +HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;->(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V 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;->handleGet(Ljava/lang/String;Ljava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle; HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;->handleGetObject(Ljava/lang/String;)Ljava/lang/Object; HSPLandroid/icu/impl/ICUResourceBundleImpl;->(Landroid/icu/impl/ICUResourceBundle$WholeBundle;)V HSPLandroid/icu/impl/ICUResourceBundleImpl;->(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V @@ -8672,7 +8612,7 @@ HSPLandroid/icu/impl/ICUResourceBundleReader$Array32;->getContainerResource(Land HSPLandroid/icu/impl/ICUResourceBundleReader$Array;->()V HSPLandroid/icu/impl/ICUResourceBundleReader$Array;->getValue(ILandroid/icu/impl/UResource$Value;)Z HSPLandroid/icu/impl/ICUResourceBundleReader$Container;->()V -HSPLandroid/icu/impl/ICUResourceBundleReader$Container;->getContainer16Resource(Landroid/icu/impl/ICUResourceBundleReader;I)I+]Ljava/nio/CharBuffer;Ljava/nio/ByteBufferAsCharBuffer; +HSPLandroid/icu/impl/ICUResourceBundleReader$Container;->getContainer16Resource(Landroid/icu/impl/ICUResourceBundleReader;I)I 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 @@ -8690,23 +8630,25 @@ HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getStringArray()[Ljav 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$Level;->(II)V +HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->get(I)Ljava/lang/Object; +HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->putIfAbsent(ILjava/lang/Object;I)Ljava/lang/Object; HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache;->(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;->get(I)Ljava/lang/Object; 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;->putIfAbsent(ILjava/lang/Object;I)Ljava/lang/Object; 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;->(Landroid/icu/impl/ICUResourceBundleReader;I)V HSPLandroid/icu/impl/ICUResourceBundleReader$Table1632;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I +HSPLandroid/icu/impl/ICUResourceBundleReader$Table16;->(Landroid/icu/impl/ICUResourceBundleReader;I)V HSPLandroid/icu/impl/ICUResourceBundleReader$Table16;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I HSPLandroid/icu/impl/ICUResourceBundleReader$Table;->()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;->getKeyAndValue(ILandroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)Z 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 @@ -8730,7 +8672,7 @@ 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;->getFullName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; HSPLandroid/icu/impl/ICUResourceBundleReader;->getIndexesInt(I)I HSPLandroid/icu/impl/ICUResourceBundleReader;->getInt(I)I HSPLandroid/icu/impl/ICUResourceBundleReader;->getIntVector(I)[I @@ -8740,10 +8682,10 @@ 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;->getString(I)Ljava/lang/String; +HSPLandroid/icu/impl/ICUResourceBundleReader;->getStringV2(I)Ljava/lang/String; +HSPLandroid/icu/impl/ICUResourceBundleReader;->getTable(I)Landroid/icu/impl/ICUResourceBundleReader$Table; +HSPLandroid/icu/impl/ICUResourceBundleReader;->getTable16KeyOffsets(I)[C 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; @@ -8753,10 +8695,10 @@ HSPLandroid/icu/impl/ICUService$CacheEntry;->(Ljava/lang/String;Ljava/lang HSPLandroid/icu/impl/ICUService$Key;->(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;->getKey(Landroid/icu/impl/ICUService$Key;[Ljava/lang/String;Landroid/icu/impl/ICUService$Factory;)Ljava/lang/Object; 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;->convertIDNToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer; +HSPLandroid/icu/impl/IDNA2003;->convertToASCII(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer; HSPLandroid/icu/impl/IDNA2003;->getSeparatorIndex([CII)I HSPLandroid/icu/impl/IDNA2003;->isLDHChar(I)Z HSPLandroid/icu/impl/IDNA2003;->isLabelSeparator(I)Z @@ -8764,9 +8706,9 @@ HSPLandroid/icu/impl/LocaleIDParser$1;->(Landroid/icu/impl/LocaleIDParser; 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;->(Ljava/lang/String;)V -HSPLandroid/icu/impl/LocaleIDParser;->(Ljava/lang/String;Z)V+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/icu/impl/LocaleIDParser;->(Ljava/lang/String;Z)V HSPLandroid/icu/impl/LocaleIDParser;->addSeparator()V -HSPLandroid/icu/impl/LocaleIDParser;->append(C)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; +HSPLandroid/icu/impl/LocaleIDParser;->append(C)V HSPLandroid/icu/impl/LocaleIDParser;->append(Ljava/lang/String;)V HSPLandroid/icu/impl/LocaleIDParser;->atTerminator()Z HSPLandroid/icu/impl/LocaleIDParser;->getBaseName()Ljava/lang/String; @@ -8790,10 +8732,10 @@ 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;->parseCountry()I 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;->parseLanguage()I +HSPLandroid/icu/impl/LocaleIDParser;->parseScript()I HSPLandroid/icu/impl/LocaleIDParser;->parseVariant()I HSPLandroid/icu/impl/LocaleIDParser;->reset()V HSPLandroid/icu/impl/LocaleIDParser;->setKeywordValue(Ljava/lang/String;Ljava/lang/String;)V @@ -8803,12 +8745,15 @@ 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/LocaleIDs;->findIndex([Ljava/lang/String;Ljava/lang/String;)I HSPLandroid/icu/impl/Norm2AllModes$ComposeNormalizer2;->spanQuickCheckYes(Ljava/lang/CharSequence;)I +HSPLandroid/icu/impl/Norm2AllModes$DecomposeNormalizer2;->getQuickCheck(I)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;->getCombiningClass(I)I 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; @@ -8822,7 +8767,7 @@ HSPLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->flushAndAppendZeroCC(Lja 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;->decompose(Ljava/lang/CharSequence;IILandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)I 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 @@ -8852,11 +8797,11 @@ 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/OlsonTimeZone;->toString()Ljava/lang/String; HSPLandroid/icu/impl/PatternProps;->isWhiteSpace(I)Z HSPLandroid/icu/impl/PatternProps;->skipWhiteSpace(Ljava/lang/CharSequence;I)I HSPLandroid/icu/impl/PatternTokenizer;->()V -HSPLandroid/icu/impl/PatternTokenizer;->next(Ljava/lang/StringBuffer;)I+]Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet; +HSPLandroid/icu/impl/PatternTokenizer;->next(Ljava/lang/StringBuffer;)I 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; @@ -8877,7 +8822,7 @@ HSPLandroid/icu/impl/RBBIDataWrapper;->get(Ljava/nio/ByteBuffer;)Landroid/icu/im HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->(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;->next()I HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->setIndex(I)V HSPLandroid/icu/impl/RuleCharacterIterator;->_advance(I)V HSPLandroid/icu/impl/RuleCharacterIterator;->_current()I @@ -8930,7 +8875,6 @@ HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;->getName(Landroid/icu/text/TimeZo 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;->()V -HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->(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 @@ -8950,6 +8894,7 @@ 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$Trie2Iterator;->next()Landroid/icu/impl/Trie2$Range; HSPLandroid/icu/impl/Trie2;->()V HSPLandroid/icu/impl/Trie2;->createFromSerialized(Ljava/nio/ByteBuffer;)Landroid/icu/impl/Trie2; HSPLandroid/icu/impl/Trie2Writable;->(II)V @@ -8965,6 +8910,7 @@ 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_16;->rangeEnd(III)I HSPLandroid/icu/impl/Trie2_32;->get(I)I HSPLandroid/icu/impl/Trie2_32;->getFromU16SingleLead(C)I HSPLandroid/icu/impl/UBiDiProps;->getClass(I)I @@ -8977,7 +8923,9 @@ 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;->addPropertyStarts(Landroid/icu/text/UnicodeSet;)Landroid/icu/text/UnicodeSet; HSPLandroid/icu/impl/UCharacterProperty;->digit(I)I +HSPLandroid/icu/impl/UCharacterProperty;->getAdditional(II)I HSPLandroid/icu/impl/UCharacterProperty;->getIntPropertyValue(II)I HSPLandroid/icu/impl/UCharacterProperty;->getNumericTypeValue(I)I HSPLandroid/icu/impl/UCharacterProperty;->getProperty(I)I @@ -9001,11 +8949,12 @@ HSPLandroid/icu/impl/UResource$Sink;->()V HSPLandroid/icu/impl/UResource$Value;->()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;->appendTo(Ljava/lang/CharSequence;Ljava/lang/Appendable;)Ljava/lang/Appendable; 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/ValidIdentifiers$ValiditySet;->(Ljava/util/Set;Z)V 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; @@ -9132,9 +9081,9 @@ HSPLandroid/icu/impl/locale/BaseLocale$Key;->-$$Nest$fget_scrt(Landroid/icu/impl HSPLandroid/icu/impl/locale/BaseLocale$Key;->-$$Nest$fget_vart(Landroid/icu/impl/locale/BaseLocale$Key;)Ljava/lang/String; HSPLandroid/icu/impl/locale/BaseLocale$Key;->(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;->hashCode()I HSPLandroid/icu/impl/locale/BaseLocale$Key;->normalize(Landroid/icu/impl/locale/BaseLocale$Key;)Landroid/icu/impl/locale/BaseLocale$Key; -HSPLandroid/icu/impl/locale/BaseLocale;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/icu/impl/locale/BaseLocale;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V HSPLandroid/icu/impl/locale/BaseLocale;->(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; @@ -9146,8 +9095,14 @@ HSPLandroid/icu/impl/locale/InternalLocaleBuilder;->getBaseLocale()Landroid/icu/ 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/KeyTypeData;->initFromResourceBundle()V +HSPLandroid/icu/impl/locale/LSR$CachedDecoder$$ExternalSyntheticLambda0;->()V +HSPLandroid/icu/impl/locale/LSR$CachedDecoder;->decode(I)[Ljava/lang/String; +HSPLandroid/icu/impl/locale/LSR$CachedDecoder;->toLanguage(I)Ljava/lang/String; +HSPLandroid/icu/impl/locale/LSR;->indexForRegion(Ljava/lang/String;)I HSPLandroid/icu/impl/locale/LanguageTag;->isLanguage(Ljava/lang/String;)Z HSPLandroid/icu/impl/locale/LanguageTag;->isRegion(Ljava/lang/String;)Z +HSPLandroid/icu/impl/locale/LikelySubtags;->maximize(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Landroid/icu/impl/locale/LSR; HSPLandroid/icu/impl/locale/LocaleExtensions;->getKeys()Ljava/util/Set; HSPLandroid/icu/impl/locale/LocaleObjectCache$CacheEntry;->(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V HSPLandroid/icu/impl/locale/LocaleObjectCache$CacheEntry;->getKey()Ljava/lang/Object; @@ -9155,7 +9110,7 @@ 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;->()V HSPLandroid/icu/impl/number/AdoptingModifierStore;->(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/AdoptingModifierStore;->getModifierWithoutPlural(Landroid/icu/impl/number/Modifier$Signum;)Landroid/icu/impl/number/Modifier; 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; @@ -9170,14 +9125,14 @@ 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/ConstantAffixModifier;->apply(Landroid/icu/impl/FormattedStringBuilder;II)I HSPLandroid/icu/impl/number/ConstantMultiFieldModifier;->(Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder;ZZ)V HSPLandroid/icu/impl/number/ConstantMultiFieldModifier;->(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;->apply(Landroid/icu/impl/FormattedStringBuilder;II)I 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/CustomSymbolCurrency;->resolve(Landroid/icu/util/Currency;Landroid/icu/util/ULocale;Landroid/icu/text/DecimalFormatSymbols;)Landroid/icu/util/Currency; HSPLandroid/icu/impl/number/DecimalFormatProperties;->()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; @@ -9257,14 +9212,14 @@ HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->()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;->_setToLong(J)V 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;->getDigit(I)B 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 @@ -9277,18 +9232,18 @@ 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;->roundToMagnitude(ILjava/math/MathContext;Z)V 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;->setToDouble(D)V 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;->signum()Landroid/icu/impl/number/Modifier$Signum; HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->toLong(Z)J HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->()V -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->(D)V+]Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; +HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->(D)V HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->(I)V HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->(J)V HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->(Ljava/lang/Number;)V @@ -9320,14 +9275,14 @@ HSPLandroid/icu/impl/number/MacroProps;->()V HSPLandroid/icu/impl/number/MacroProps;->fallback(Landroid/icu/impl/number/MacroProps;)V HSPLandroid/icu/impl/number/MicroProps;->(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/MicroProps;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps; HSPLandroid/icu/impl/number/Modifier$Signum;->values()[Landroid/icu/impl/number/Modifier$Signum; HSPLandroid/icu/impl/number/MultiplierFormatHandler;->(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;->(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$ImmutablePatternModifier;->applyToMicros(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;)V +HSPLandroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps; HSPLandroid/icu/impl/number/MutablePatternModifier;->(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 @@ -9346,7 +9301,6 @@ HSPLandroid/icu/impl/number/MutablePatternModifier;->setPatternInfo(Landroid/icu 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;->(Ljava/lang/String;)V -HSPLandroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;->(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;->()V @@ -9357,7 +9311,7 @@ HSPLandroid/icu/impl/number/PatternStringParser;->consumeAffix(Landroid/icu/impl 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;->consumeIntegerFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V 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 @@ -9370,9 +9324,9 @@ HSPLandroid/icu/impl/number/PatternStringUtils$PatternSignType;->()V HSPLandroid/icu/impl/number/PatternStringUtils$PatternSignType;->(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;->propertiesToPatternString(Landroid/icu/impl/number/DecimalFormatProperties;)Ljava/lang/String; 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;->(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;->(Landroid/icu/impl/number/DecimalFormatProperties;)V HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->charAt(II)C HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->containsSymbolType(I)Z HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->currencyAsDecimal()Z @@ -9380,7 +9334,7 @@ HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->forProperties(Landr 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;->hasNegativeSubpattern()Z 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; @@ -9410,7 +9364,7 @@ HSPLandroid/icu/impl/number/parse/AffixTokenMatcherFactory;->minusSign()Landroid HSPLandroid/icu/impl/number/parse/DecimalMatcher;->(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;->match(Landroid/icu/impl/StringSegment;Landroid/icu/impl/number/parse/ParsedNumber;I)Z 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 @@ -9421,7 +9375,7 @@ HSPLandroid/icu/impl/number/parse/NanMatcher;->getInstance(Landroid/icu/text/Dec HSPLandroid/icu/impl/number/parse/NumberParserImpl;->(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;->createParserFromProperties(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;Z)Landroid/icu/impl/number/parse/NumberParserImpl; 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 @@ -9473,6 +9427,7 @@ 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;->getScript(I)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; @@ -9481,33 +9436,33 @@ HSPLandroid/icu/number/IntegerWidth;->(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;->(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;->computeCompiled()Z 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;->formatImpl(Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;)Landroid/icu/impl/number/MicroProps; 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;->(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;->format(Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;)Landroid/icu/impl/number/MicroProps; 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;->macrosToMicroGenerator(Landroid/icu/impl/number/MacroProps;Landroid/icu/impl/number/MicroProps;Z)Landroid/icu/impl/number/MicroPropsGenerator; +HSPLandroid/icu/number/NumberFormatterImpl;->preProcess(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps; 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/NumberFormatterImpl;->writeAffixes(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/FormattedStringBuilder;II)I +HSPLandroid/icu/number/NumberFormatterImpl;->writeFractionDigits(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;I)I +HSPLandroid/icu/number/NumberFormatterImpl;->writeIntegerDigits(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;I)I +HSPLandroid/icu/number/NumberFormatterImpl;->writeNumber(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;I)I HSPLandroid/icu/number/NumberFormatterSettings;->(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; @@ -9515,9 +9470,9 @@ HSPLandroid/icu/number/NumberFormatterSettings;->resolve()Landroid/icu/impl/numb 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/NumberPropertyMapper;->oldToNew(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/MacroProps; HSPLandroid/icu/number/Precision$FractionRounderImpl;->(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;->apply(Landroid/icu/impl/number/DecimalQuantity;)V 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 @@ -9528,7 +9483,7 @@ HSPLandroid/icu/number/Precision;->constructFraction(II)Landroid/icu/number/Frac 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;->setResolvedMinFraction(Landroid/icu/impl/number/DecimalQuantity;I)V 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 @@ -9543,6 +9498,7 @@ HSPLandroid/icu/platform/AndroidDataFiles;->getI18nModuleFile(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/AnyTransliterator;->register()V HSPLandroid/icu/text/Bidi;->(II)V HSPLandroid/icu/text/Bidi;->DirPropFlag(B)I HSPLandroid/icu/text/Bidi;->GetParaLevelAt(I)B @@ -9577,7 +9533,7 @@ HSPLandroid/icu/text/CollationKey;->toByteArray()[B HSPLandroid/icu/text/Collator$ServiceShim;->()V HSPLandroid/icu/text/Collator;->()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(Landroid/icu/util/ULocale;)Landroid/icu/text/Collator; HSPLandroid/icu/text/Collator;->getInstance(Ljava/util/Locale;)Landroid/icu/text/Collator; HSPLandroid/icu/text/Collator;->getShim()Landroid/icu/text/Collator$ServiceShim; HSPLandroid/icu/text/CollatorServiceShim$CService$1CollatorFactory;->handleCreate(Landroid/icu/util/ULocale;ILandroid/icu/impl/ICUService;)Ljava/lang/Object; @@ -9585,13 +9541,13 @@ HSPLandroid/icu/text/CollatorServiceShim$CService;->validateFallbackLocale()Ljav HSPLandroid/icu/text/CollatorServiceShim;->()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;->()V+]Landroid/icu/text/ConstrainedFieldPosition;Landroid/icu/text/ConstrainedFieldPosition; +HSPLandroid/icu/text/ConstrainedFieldPosition;->()V 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;->matchesField(Ljava/text/Format$Field;Ljava/lang/Object;)Z HSPLandroid/icu/text/ConstrainedFieldPosition;->reset()V HSPLandroid/icu/text/ConstrainedFieldPosition;->setState(Ljava/text/Format$Field;Ljava/lang/Object;II)V HSPLandroid/icu/text/CurrencyDisplayNames;->()V @@ -9644,7 +9600,6 @@ HSPLandroid/icu/text/DateFormatSymbols;->initializeData(Landroid/icu/text/DateFo 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;->(Ljava/lang/String;Landroid/icu/util/ULocale;Landroid/icu/text/SimpleDateFormat;)V @@ -9690,7 +9645,7 @@ HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->fieldIsNumeric(I 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$DateTimeMatcher;->set(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$FormatParser;Z)Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher; HSPLandroid/icu/text/DateTimePatternGenerator$DisplayWidth;->cldrKey()Ljava/lang/String; HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;->()V HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;->addExtra(I)V @@ -9702,7 +9657,7 @@ HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;->addVariable(Ljava/l 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$FormatParser;->set(Ljava/lang/String;Z)Landroid/icu/text/DateTimePatternGenerator$FormatParser; HSPLandroid/icu/text/DateTimePatternGenerator$PatternInfo;->()V HSPLandroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;->(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)V HSPLandroid/icu/text/DateTimePatternGenerator$PatternWithSkeletonFlag;->(Ljava/lang/String;Z)V @@ -9745,9 +9700,9 @@ HSPLandroid/icu/text/DateTimePatternGenerator;->getBestPattern(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;->getCLDRFieldAndWidthNumber(Landroid/icu/impl/UResource$Key;)I HSPLandroid/icu/text/DateTimePatternGenerator;->getCalendarTypeToUse(Landroid/icu/util/ULocale;)Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getCanonicalIndex(Ljava/lang/String;Z)I+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/icu/text/DateTimePatternGenerator;->getCanonicalIndex(Ljava/lang/String;Z)I HSPLandroid/icu/text/DateTimePatternGenerator;->getDateTimeFormat()Ljava/lang/String; HSPLandroid/icu/text/DateTimePatternGenerator;->getFieldDisplayName(ILandroid/icu/text/DateTimePatternGenerator$DisplayWidth;)Ljava/lang/String; HSPLandroid/icu/text/DateTimePatternGenerator;->getFilteredPattern(Landroid/icu/text/DateTimePatternGenerator$FormatParser;Ljava/util/BitSet;)Ljava/lang/String; @@ -9770,8 +9725,8 @@ HSPLandroid/icu/text/DateTimePatternGenerator;->setFieldDisplayName(ILandroid/ic HSPLandroid/icu/text/DecimalFormat;->(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;)V HSPLandroid/icu/text/DecimalFormat;->(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;->fieldPositionHelper(Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;Ljava/text/FieldPosition;I)V +HSPLandroid/icu/text/DecimalFormat;->format(DLjava/lang/StringBuffer;Ljava/text/FieldPosition;)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 @@ -9786,7 +9741,7 @@ 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;->refreshFormatter()V HSPLandroid/icu/text/DecimalFormat;->setCurrency(Landroid/icu/util/Currency;)V HSPLandroid/icu/text/DecimalFormat;->setDecimalSeparatorAlwaysShown(Z)V HSPLandroid/icu/text/DecimalFormat;->setGroupingUsed(Z)V @@ -9840,7 +9795,7 @@ 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;->initialize(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)V 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 @@ -9874,11 +9829,14 @@ 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 HSPLandroid/icu/text/Edits$Iterator;->next(Z)Z +HSPLandroid/icu/text/Edits$Iterator;->updateNextIndexes()V HSPLandroid/icu/text/Edits;->()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;->getCoarseIterator()Landroid/icu/text/Edits$Iterator; HSPLandroid/icu/text/Edits;->hasChanges()Z HSPLandroid/icu/text/Edits;->lastUnit()I HSPLandroid/icu/text/Edits;->reset()V @@ -10024,7 +9982,6 @@ 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;->(Landroid/icu/impl/coll/CollationData;)V -HSPLandroid/icu/text/RuleBasedCollator$CollationBuffer;->(Landroid/icu/impl/coll/CollationData;Landroid/icu/text/RuleBasedCollator$CollationBuffer-IA;)V HSPLandroid/icu/text/RuleBasedCollator$CollationKeyByteSink;->(Landroid/icu/text/RawCollationKey;)V HSPLandroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;->()V HSPLandroid/icu/text/RuleBasedCollator$NFDIterator;->()V @@ -10036,7 +9993,7 @@ 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;->doCompare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I 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; @@ -10083,6 +10040,12 @@ HSPLandroid/icu/text/TimeZoneNames;->()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/Transliterator;->()V +HSPLandroid/icu/text/TransliteratorIDParser;->IDtoSTV(Ljava/lang/String;)[Ljava/lang/String; +HSPLandroid/icu/text/TransliteratorIDParser;->STVtoID(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; +HSPLandroid/icu/text/TransliteratorRegistry;->getAvailableVariants(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Enumeration; +HSPLandroid/icu/text/TransliteratorRegistry;->registerEntry(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Z)V +HSPLandroid/icu/text/TransliteratorRegistry;->registerSTV(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V HSPLandroid/icu/text/UCharacterIterator;->()V HSPLandroid/icu/text/UCharacterIterator;->getInstance(Ljava/lang/String;)Landroid/icu/text/UCharacterIterator; HSPLandroid/icu/text/UCharacterIterator;->getText()Ljava/lang/String; @@ -10096,6 +10059,7 @@ 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;->()V +HSPLandroid/icu/text/UnicodeSet$GeneralCategoryMaskFilter;->contains(I)Z HSPLandroid/icu/text/UnicodeSet;->()V HSPLandroid/icu/text/UnicodeSet;->(Landroid/icu/text/UnicodeSet;)V HSPLandroid/icu/text/UnicodeSet;->_appendToPat(Ljava/lang/Appendable;IIZ)Ljava/lang/Appendable; @@ -10108,15 +10072,17 @@ 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;->applyFilter(Landroid/icu/text/UnicodeSet$Filter;Landroid/icu/text/UnicodeSet;)V 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(I)Z HSPLandroid/icu/text/UnicodeSet;->contains(Ljava/lang/CharSequence;)Z HSPLandroid/icu/text/UnicodeSet;->containsAll(Ljava/lang/String;)Z +HSPLandroid/icu/text/UnicodeSet;->containsNone(II)Z HSPLandroid/icu/text/UnicodeSet;->findCodePoint(I)I HSPLandroid/icu/text/UnicodeSet;->freeze()Landroid/icu/text/UnicodeSet; HSPLandroid/icu/text/UnicodeSet;->getRangeCount()I @@ -10216,6 +10182,9 @@ HSPLandroid/icu/util/Calendar;->setWeekData(Landroid/icu/util/Calendar$WeekData; 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/CaseInsensitiveString;->(Ljava/lang/String;)V +HSPLandroid/icu/util/CaseInsensitiveString;->equals(Ljava/lang/Object;)Z +HSPLandroid/icu/util/CaseInsensitiveString;->hashCode()I HSPLandroid/icu/util/CharsTrie;->(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; @@ -10234,6 +10203,7 @@ HSPLandroid/icu/util/CodePointMap$Range;->-$$Nest$fputstart(Landroid/icu/util/Co HSPLandroid/icu/util/CodePointMap$Range;->()V HSPLandroid/icu/util/CodePointMap$Range;->getEnd()I HSPLandroid/icu/util/CodePointMap$Range;->getValue()I +HSPLandroid/icu/util/CodePointMap$Range;->set(III)V HSPLandroid/icu/util/CodePointMap;->()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 @@ -10244,7 +10214,6 @@ HSPLandroid/icu/util/CodePointTrie$Data8;->([B)V HSPLandroid/icu/util/CodePointTrie$Data8;->getDataLength()I HSPLandroid/icu/util/CodePointTrie$Data8;->getFromIndex(I)I HSPLandroid/icu/util/CodePointTrie$Data;->()V -HSPLandroid/icu/util/CodePointTrie$Data;->(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;->([C[BIII)V @@ -10254,7 +10223,6 @@ HSPLandroid/icu/util/CodePointTrie$Fast;->cpIndex(I)I HSPLandroid/icu/util/CodePointTrie$Fast;->getType()Landroid/icu/util/CodePointTrie$Type; HSPLandroid/icu/util/CodePointTrie$Small32;->([C[IIII)V HSPLandroid/icu/util/CodePointTrie$Small;->([CLandroid/icu/util/CodePointTrie$Data;III)V -HSPLandroid/icu/util/CodePointTrie$Small;->([CLandroid/icu/util/CodePointTrie$Data;IIILandroid/icu/util/CodePointTrie$Small-IA;)V HSPLandroid/icu/util/CodePointTrie;->([CLandroid/icu/util/CodePointTrie$Data;III)V HSPLandroid/icu/util/CodePointTrie;->([CLandroid/icu/util/CodePointTrie$Data;IIILandroid/icu/util/CodePointTrie-IA;)V HSPLandroid/icu/util/CodePointTrie;->fastIndex(I)I @@ -10303,7 +10271,6 @@ HSPLandroid/icu/util/MutableCodePointTrie$AllSameBlocks;->()V HSPLandroid/icu/util/MutableCodePointTrie$AllSameBlocks;->findMostUsed()I HSPLandroid/icu/util/MutableCodePointTrie$AllSameBlocks;->findOrAdd(III)I HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->()V -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->(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 @@ -10415,19 +10382,17 @@ HSPLandroid/icu/util/ULocale$Builder;->setLanguage(Ljava/lang/String;)Landroid/i 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$JDKLocaleHelper;->toULocale(Ljava/util/Locale;)Landroid/icu/util/ULocale; HSPLandroid/icu/util/ULocale;->-$$Nest$smgetInstance(Landroid/icu/impl/locale/BaseLocale;Landroid/icu/impl/locale/LocaleExtensions;)Landroid/icu/util/ULocale; HSPLandroid/icu/util/ULocale;->(Ljava/lang/String;)V HSPLandroid/icu/util/ULocale;->(Ljava/lang/String;Ljava/util/Locale;)V HSPLandroid/icu/util/ULocale;->(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;->base()Landroid/icu/impl/locale/BaseLocale; HSPLandroid/icu/util/ULocale;->canonicalize(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/icu/util/ULocale;->createCanonical(Ljava/lang/String;)Landroid/icu/util/ULocale; -HSPLandroid/icu/util/ULocale;->createLikelySubtagsString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; HSPLandroid/icu/util/ULocale;->createTagString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -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; @@ -10442,7 +10407,7 @@ 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;->getName(Ljava/lang/String;)Ljava/lang/String; 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; @@ -10453,7 +10418,6 @@ 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; @@ -10478,6 +10442,7 @@ HSPLandroid/icu/util/UResourceBundle;->resolveObject(Ljava/lang/String;Landroid/ HSPLandroid/icu/util/UResourceBundleIterator;->(Landroid/icu/util/UResourceBundle;)V HSPLandroid/icu/util/UResourceBundleIterator;->hasNext()Z HSPLandroid/icu/util/UResourceBundleIterator;->next()Landroid/icu/util/UResourceBundle; +HSPLandroid/icu/util/VersionInfo;->compareTo(Landroid/icu/util/VersionInfo;)I 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 @@ -10526,7 +10491,7 @@ 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$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/media/AudioAttributes$Builder;->()V HSPLandroid/media/AudioAttributes$Builder;->(Landroid/media/AudioAttributes;)V HSPLandroid/media/AudioAttributes$Builder;->addTag(Ljava/lang/String;)Landroid/media/AudioAttributes$Builder; @@ -10552,7 +10517,7 @@ HSPLandroid/media/AudioAttributes;->-$$Nest$fputmTags(Landroid/media/AudioAttrib HSPLandroid/media/AudioAttributes;->-$$Nest$fputmUsage(Landroid/media/AudioAttributes;I)V HSPLandroid/media/AudioAttributes;->()V HSPLandroid/media/AudioAttributes;->(Landroid/media/AudioAttributes-IA;)V -HSPLandroid/media/AudioAttributes;->(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/media/AudioAttributes;->(Landroid/os/Parcel;)V HSPLandroid/media/AudioAttributes;->areHapticChannelsMuted()Z HSPLandroid/media/AudioAttributes;->equals(Ljava/lang/Object;)Z HSPLandroid/media/AudioAttributes;->getAllFlags()I @@ -10606,7 +10571,6 @@ HSPLandroid/media/AudioManager$AudioPlaybackCallback;->()V HSPLandroid/media/AudioManager$AudioPlaybackCallbackInfo;->(Landroid/media/AudioManager$AudioPlaybackCallback;Landroid/os/Handler;)V HSPLandroid/media/AudioManager$AudioRecordingCallback;->()V HSPLandroid/media/AudioManager$DevRoleListeners;->(Landroid/media/AudioManager;)V -HSPLandroid/media/AudioManager$DevRoleListeners;->(Landroid/media/AudioManager;Landroid/media/AudioManager$DevRoleListeners-IA;)V HSPLandroid/media/AudioManager$NativeEventHandlerDelegate$1;->(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;->(Landroid/media/AudioManager;Landroid/media/AudioDeviceCallback;Landroid/os/Handler;)V @@ -10688,7 +10652,7 @@ HSPLandroid/media/AudioPlaybackConfiguration$IPlayerShell;->(Landroid/medi HSPLandroid/media/AudioPlaybackConfiguration;->getAudioAttributes()Landroid/media/AudioAttributes; HSPLandroid/media/AudioPlaybackConfiguration;->isActive()Z HSPLandroid/media/AudioPort$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I -HSPLandroid/media/AudioPort;->(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;->(Landroid/media/AudioHandle;ILjava/lang/String;Ljava/util/List;[Landroid/media/AudioGain;Ljava/util/List;)V HSPLandroid/media/AudioPort;->(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 @@ -10806,10 +10770,9 @@ 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;->()V -HSPLandroid/media/MediaCodec$BufferMap;->(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$BufferMap;->put(ILjava/nio/ByteBuffer;)V +HSPLandroid/media/MediaCodec$BufferMap;->remove(I)V HSPLandroid/media/MediaCodec$CryptoInfo$Pattern;->(II)V HSPLandroid/media/MediaCodec$CryptoInfo$Pattern;->set(II)V HSPLandroid/media/MediaCodec$CryptoInfo;->()V @@ -10821,18 +10784,18 @@ HSPLandroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/vie 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;->dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I 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;->getInputBuffer(I)Ljava/nio/ByteBuffer; +HSPLandroid/media/MediaCodec;->getOutputBuffer(I)Ljava/nio/ByteBuffer; 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;->lockAndGetContext()J +HSPLandroid/media/MediaCodec;->queueInputBuffer(IIIJI)V 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;->releaseOutputBufferInternal(IZZJ)V +HSPLandroid/media/MediaCodec;->setAndUnlockContext(J)V HSPLandroid/media/MediaCodec;->start()V HSPLandroid/media/MediaCodec;->stop()V HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->applyLevelLimits()V @@ -11327,10 +11290,8 @@ 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;->()V HSPLandroid/multiuser/FeatureFlagsImpl;->enableSystemUserOnlyForServicesAndProviders()Z -HSPLandroid/multiuser/Flags;->()V -HSPLandroid/multiuser/Flags;->enableSystemUserOnlyForServicesAndProviders()Z+]Landroid/multiuser/FeatureFlags;Landroid/multiuser/FeatureFlagsImpl; +HSPLandroid/multiuser/Flags;->enableSystemUserOnlyForServicesAndProviders()Z HSPLandroid/net/Credentials;->(III)V HSPLandroid/net/Credentials;->getPid()I HSPLandroid/net/Credentials;->getUid()I @@ -11423,12 +11384,11 @@ 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;->createFromParcel(Landroid/os/Parcel;)Landroid/net/Uri; +HSPLandroid/net/Uri$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/net/Uri$1;->newArray(I)[Landroid/net/Uri; HSPLandroid/net/Uri$1;->newArray(I)[Ljava/lang/Object; HSPLandroid/net/Uri$AbstractHierarchicalUri;->()V -HSPLandroid/net/Uri$AbstractHierarchicalUri;->(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; @@ -11459,11 +11419,11 @@ HSPLandroid/net/Uri$Builder;->path(Landroid/net/Uri$PathPart;)Landroid/net/Uri$B 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$Builder;->toString()Ljava/lang/String; HSPLandroid/net/Uri$HierarchicalUri;->(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;->appendSspTo(Ljava/lang/StringBuilder;)V +HSPLandroid/net/Uri$HierarchicalUri;->buildUpon()Landroid/net/Uri$Builder; +HSPLandroid/net/Uri$HierarchicalUri;->generatePath(Landroid/net/Uri$PathPart;)Landroid/net/Uri$PathPart; HSPLandroid/net/Uri$HierarchicalUri;->getAuthority()Ljava/lang/String; HSPLandroid/net/Uri$HierarchicalUri;->getEncodedAuthority()Ljava/lang/String; HSPLandroid/net/Uri$HierarchicalUri;->getEncodedFragment()Ljava/lang/String; @@ -11476,12 +11436,11 @@ 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;->makeUriString()Ljava/lang/String; HSPLandroid/net/Uri$HierarchicalUri;->readFrom(Landroid/os/Parcel;)Landroid/net/Uri; HSPLandroid/net/Uri$HierarchicalUri;->toString()Ljava/lang/String; HSPLandroid/net/Uri$HierarchicalUri;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/net/Uri$OpaqueUri;->(Ljava/lang/String;Landroid/net/Uri$Part;Landroid/net/Uri$Part;)V -HSPLandroid/net/Uri$OpaqueUri;->(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; @@ -11497,13 +11456,13 @@ HSPLandroid/net/Uri$Part;->isEmpty()Z HSPLandroid/net/Uri$Part;->nonNull(Landroid/net/Uri$Part;)Landroid/net/Uri$Part; HSPLandroid/net/Uri$PathPart;->(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;->appendEncodedSegment(Landroid/net/Uri$PathPart;Ljava/lang/String;)Landroid/net/Uri$PathPart; HSPLandroid/net/Uri$PathPart;->from(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$PathPart; 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$PathPart;->getPathSegments()Landroid/net/Uri$PathSegments; +HSPLandroid/net/Uri$PathPart;->makeAbsolute(Landroid/net/Uri$PathPart;)Landroid/net/Uri$PathPart; HSPLandroid/net/Uri$PathSegments;->([Ljava/lang/String;I)V HSPLandroid/net/Uri$PathSegments;->get(I)Ljava/lang/Object; HSPLandroid/net/Uri$PathSegments;->get(I)Ljava/lang/String; @@ -11511,10 +11470,9 @@ 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;->(Ljava/lang/String;)V -HSPLandroid/net/Uri$StringUri;->(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;->buildUpon()Landroid/net/Uri$Builder; +HSPLandroid/net/Uri$StringUri;->findFragmentSeparator()I +HSPLandroid/net/Uri$StringUri;->findSchemeSeparator()I HSPLandroid/net/Uri$StringUri;->getAuthority()Ljava/lang/String; HSPLandroid/net/Uri$StringUri;->getAuthorityPart()Landroid/net/Uri$Part; HSPLandroid/net/Uri$StringUri;->getEncodedAuthority()Ljava/lang/String; @@ -11532,11 +11490,11 @@ 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;->parseAuthority(Ljava/lang/String;I)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;->parsePath()Ljava/lang/String; +HSPLandroid/net/Uri$StringUri;->parsePath(Ljava/lang/String;I)Ljava/lang/String; +HSPLandroid/net/Uri$StringUri;->parseQuery()Ljava/lang/String; HSPLandroid/net/Uri$StringUri;->parseScheme()Ljava/lang/String; HSPLandroid/net/Uri$StringUri;->toString()Ljava/lang/String; HSPLandroid/net/Uri$StringUri;->writeToParcel(Landroid/os/Parcel;I)V @@ -11548,25 +11506,25 @@ 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;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; 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;->getQueryParameter(Ljava/lang/String;)Ljava/lang/String; +HSPLandroid/net/Uri;->getQueryParameterNames()Ljava/util/Set; 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;->isAllowed(CLjava/lang/String;)Z 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;->appendDecoded(Ljava/lang/StringBuilder;Ljava/lang/String;ZLjava/nio/charset/Charset;Z)V HSPLandroid/net/UriCodec;->decode(Ljava/lang/String;ZLjava/nio/charset/Charset;Z)Ljava/lang/String; -HSPLandroid/net/UriCodec;->flushDecodingByteAccumulator(Ljava/lang/StringBuilder;Ljava/nio/charset/CharsetDecoder;Ljava/nio/ByteBuffer;Z)V+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU; +HSPLandroid/net/UriCodec;->flushDecodingByteAccumulator(Ljava/lang/StringBuilder;Ljava/nio/charset/CharsetDecoder;Ljava/nio/ByteBuffer;Z)V HSPLandroid/net/UriCodec;->getNextCharacter(Ljava/lang/String;IILjava/lang/String;)C HSPLandroid/net/UriCodec;->hexCharToValue(C)I HSPLandroid/net/WebAddress;->(Ljava/lang/String;)V @@ -11583,7 +11541,6 @@ HSPLandroid/net/vcn/VcnTransportInfo$1;->()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;->()V -HSPLandroid/nfc/NfcFrameworkInitializer;->setNfcServiceManager(Landroid/nfc/NfcServiceManager;)V HSPLandroid/nfc/NfcServiceManager;->()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; @@ -11610,7 +11567,6 @@ 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;->()V -HSPLandroid/os/AsyncTask$WorkerRunnable;->(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; @@ -11635,13 +11591,13 @@ HSPLandroid/os/AsyncTask;->postResultIfNotInvoked(Ljava/lang/Object;)V HSPLandroid/os/BaseBundle;->()V HSPLandroid/os/BaseBundle;->(I)V HSPLandroid/os/BaseBundle;->(Landroid/os/BaseBundle;)V -HSPLandroid/os/BaseBundle;->(Landroid/os/BaseBundle;Z)V+]Landroid/os/BaseBundle;Landroid/os/Bundle;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/os/BaseBundle;->(Landroid/os/BaseBundle;Z)V HSPLandroid/os/BaseBundle;->(Landroid/os/Parcel;I)V -HSPLandroid/os/BaseBundle;->(Ljava/lang/ClassLoader;I)V+]Ljava/lang/Object;Landroid/os/Bundle;,Landroid/os/PersistableBundle;]Ljava/lang/Class;Ljava/lang/Class; +HSPLandroid/os/BaseBundle;->(Ljava/lang/ClassLoader;I)V 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/Object; 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 @@ -11650,9 +11606,9 @@ 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;->getFloat(Ljava/lang/String;F)F 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;->getInt(Ljava/lang/String;I)I HSPLandroid/os/BaseBundle;->getIntArray(Ljava/lang/String;)[I HSPLandroid/os/BaseBundle;->getIntegerArrayList(Ljava/lang/String;)Ljava/util/ArrayList; HSPLandroid/os/BaseBundle;->getLong(Ljava/lang/String;)J @@ -11662,18 +11618,18 @@ HSPLandroid/os/BaseBundle;->getSerializable(Ljava/lang/String;)Ljava/io/Serializ 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;->getStringArray(Ljava/lang/String;)[Ljava/lang/String; 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;->getValue(Ljava/lang/String;)Ljava/lang/Object; +HSPLandroid/os/BaseBundle;->getValue(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; +HSPLandroid/os/BaseBundle;->getValue(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object; +HSPLandroid/os/BaseBundle;->getValueAt(ILjava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object; +HSPLandroid/os/BaseBundle;->initializeFromParcelLocked(Landroid/os/Parcel;ZZ)V +HSPLandroid/os/BaseBundle;->isEmpty()Z 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;->keySet()Ljava/util/Set; 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 @@ -11682,7 +11638,7 @@ 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;->putFloat(Ljava/lang/String;F)V HSPLandroid/os/BaseBundle;->putInt(Ljava/lang/String;I)V HSPLandroid/os/BaseBundle;->putIntArray(Ljava/lang/String;[I)V HSPLandroid/os/BaseBundle;->putLong(Ljava/lang/String;J)V @@ -11692,16 +11648,16 @@ 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;->readFromParcelInner(Landroid/os/Parcel;I)V +HSPLandroid/os/BaseBundle;->recycleParcel(Landroid/os/Parcel;)V HSPLandroid/os/BaseBundle;->remove(Ljava/lang/String;)V HSPLandroid/os/BaseBundle;->setClassLoader(Ljava/lang/ClassLoader;)V HSPLandroid/os/BaseBundle;->setShouldDefuse(Z)V -HSPLandroid/os/BaseBundle;->size()I+]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;->size()I +HSPLandroid/os/BaseBundle;->unparcel()V 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/BaseBundle;->unwrapLazyValueFromMapLocked(ILjava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object; +HSPLandroid/os/BaseBundle;->writeToParcelInner(Landroid/os/Parcel;I)V HSPLandroid/os/BatteryManager;->(Landroid/content/Context;Lcom/android/internal/app/IBatteryStats;Landroid/os/IBatteryPropertiesRegistrar;)V HSPLandroid/os/BatteryManager;->getIntProperty(I)I HSPLandroid/os/BatteryManager;->getLongProperty(I)J @@ -11738,7 +11694,7 @@ HSPLandroid/os/Binder$PropagateWorkSourceTransactListener;->onTransactEnded(Ljav 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;->()V -HSPLandroid/os/Binder;->(Ljava/lang/String;)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; +HSPLandroid/os/Binder;->(Ljava/lang/String;)V HSPLandroid/os/Binder;->allowBlocking(Landroid/os/IBinder;)Landroid/os/IBinder; HSPLandroid/os/Binder;->attachInterface(Landroid/os/IInterface;Ljava/lang/String;)V HSPLandroid/os/Binder;->checkParcel(Landroid/os/IBinder;ILandroid/os/Parcel;Ljava/lang/String;)V @@ -11746,14 +11702,14 @@ HSPLandroid/os/Binder;->copyAllowBlocking(Landroid/os/IBinder;Landroid/os/IBinde 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;->execTransact(IJJI)Z +HSPLandroid/os/Binder;->execTransactInternal(ILandroid/os/Parcel;Landroid/os/Parcel;II)Z 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;->getTransactionTraceName(I)Ljava/lang/String; HSPLandroid/os/Binder;->isBinderAlive()Z HSPLandroid/os/Binder;->isDirectlyHandlingTransaction()Z HSPLandroid/os/Binder;->isProxy(Landroid/os/IInterface;)Z @@ -11774,11 +11730,11 @@ HSPLandroid/os/BinderProxy$ProxyMap;->remove(II)V HSPLandroid/os/BinderProxy$ProxyMap;->set(JLandroid/os/BinderProxy;)V HSPLandroid/os/BinderProxy;->(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;->linkToDeath(Landroid/os/IBinder$DeathRecipient;I)V 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/BinderProxy;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z +HSPLandroid/os/BinderProxy;->unlinkToDeath(Landroid/os/IBinder$DeathRecipient;I)Z HSPLandroid/os/BluetoothServiceManager$ServiceRegisterer;->(Ljava/lang/String;)V HSPLandroid/os/BluetoothServiceManager$ServiceRegisterer;->get()Landroid/os/IBinder; HSPLandroid/os/BluetoothServiceManager;->()V @@ -11812,7 +11768,7 @@ 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;)[Landroid/os/Parcelable; 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; @@ -11820,7 +11776,7 @@ HSPLandroid/os/Bundle;->getSerializable(Ljava/lang/String;Ljava/lang/Class;)Ljav 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;->maybePrefillHasFds()V HSPLandroid/os/Bundle;->putAll(Landroid/os/Bundle;)V HSPLandroid/os/Bundle;->putBinder(Ljava/lang/String;Landroid/os/IBinder;)V HSPLandroid/os/Bundle;->putBundle(Ljava/lang/String;Landroid/os/Bundle;)V @@ -11843,7 +11799,7 @@ 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/Bundle;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/os/CancellationSignal$Transport;->()V HSPLandroid/os/CancellationSignal$Transport;->cancel()V HSPLandroid/os/CancellationSignal;->()V @@ -11990,7 +11946,7 @@ HSPLandroid/os/FileObserver;->(Ljava/io/File;I)V HSPLandroid/os/FileObserver;->(Ljava/lang/String;I)V HSPLandroid/os/FileObserver;->(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;->buildValidExtFilename(Ljava/lang/String;)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 @@ -12018,7 +11974,6 @@ HSPLandroid/os/GraphicsEnvironment;->getGlobalSettingsString(Landroid/content/Co 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 @@ -12029,7 +11984,6 @@ HSPLandroid/os/Handler$BlockingRunnable;->(Ljava/lang/Runnable;)V HSPLandroid/os/Handler$BlockingRunnable;->postAndWait(Landroid/os/Handler;J)Z HSPLandroid/os/Handler$BlockingRunnable;->run()V HSPLandroid/os/Handler$MessengerImpl;->(Landroid/os/Handler;)V -HSPLandroid/os/Handler$MessengerImpl;->(Landroid/os/Handler;Landroid/os/Handler$MessengerImpl-IA;)V HSPLandroid/os/Handler$MessengerImpl;->send(Landroid/os/Message;)V HSPLandroid/os/Handler;->()V HSPLandroid/os/Handler;->(Landroid/os/Handler$Callback;)V @@ -12041,8 +11995,8 @@ HSPLandroid/os/Handler;->(Landroid/os/Looper;Landroid/os/Handler$Callback; HSPLandroid/os/Handler;->(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;->dispatchMessage(Landroid/os/Message;)V +HSPLandroid/os/Handler;->enqueueMessage(Landroid/os/MessageQueue;Landroid/os/Message;J)Z HSPLandroid/os/Handler;->executeOrSendMessage(Landroid/os/Message;)Z HSPLandroid/os/Handler;->getIMessenger()Landroid/os/IMessenger; HSPLandroid/os/Handler;->getLooper()Landroid/os/Looper; @@ -12050,7 +12004,7 @@ 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;->handleCallback(Landroid/os/Message;)V HSPLandroid/os/Handler;->handleMessage(Landroid/os/Message;)V HSPLandroid/os/Handler;->hasCallbacks(Ljava/lang/Runnable;)Z HSPLandroid/os/Handler;->hasMessages(I)Z @@ -12060,9 +12014,9 @@ 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;->post(Ljava/lang/Runnable;)Z 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;J)Z 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 @@ -12075,10 +12029,10 @@ 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;->sendMessage(Landroid/os/Message;)Z HSPLandroid/os/Handler;->sendMessageAtFrontOfQueue(Landroid/os/Message;)Z HSPLandroid/os/Handler;->sendMessageAtTime(Landroid/os/Message;J)Z -HSPLandroid/os/Handler;->sendMessageDelayed(Landroid/os/Message;J)Z+]Landroid/os/Handler;missing_types +HSPLandroid/os/Handler;->sendMessageDelayed(Landroid/os/Message;J)Z HSPLandroid/os/Handler;->toString()Ljava/lang/String; HSPLandroid/os/HandlerExecutor;->(Landroid/os/Handler;)V HSPLandroid/os/HandlerExecutor;->execute(Ljava/lang/Runnable;)V @@ -12108,7 +12062,7 @@ HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->(Landroid/os/IBind 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$DeathRecipient;->binderDied(Landroid/os/IBinder;)V HSPLandroid/os/IBinder;->getSuggestedMaxIpcSizeBytes()I HSPLandroid/os/ICancellationSignal$Stub$Proxy;->(Landroid/os/IBinder;)V HSPLandroid/os/ICancellationSignal$Stub$Proxy;->asBinder()Landroid/os/IBinder; @@ -12121,7 +12075,6 @@ HSPLandroid/os/IDeviceIdentifiersPolicyService$Stub;->asInterface(Landroid/os/IB 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;->(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; @@ -12160,7 +12113,6 @@ HSPLandroid/os/IRemoteCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/ 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;->()V @@ -12221,12 +12173,12 @@ HSPLandroid/os/LocaleList$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Ob HSPLandroid/os/LocaleList;->([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;->equals(Ljava/lang/Object;)Z 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;->getDefault()Landroid/os/LocaleList; 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; @@ -12245,11 +12197,11 @@ HSPLandroid/os/Looper;->(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;->getThresholdOverride()I 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;->loopOnce(Landroid/os/Looper;JI)Z +HSPLandroid/os/Looper;->myLooper()Landroid/os/Looper; HSPLandroid/os/Looper;->myQueue()Landroid/os/MessageQueue; HSPLandroid/os/Looper;->prepare()V HSPLandroid/os/Looper;->prepare(Z)V @@ -12282,7 +12234,7 @@ 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;->sendToTarget()V HSPLandroid/os/Message;->setAsynchronous(Z)V HSPLandroid/os/Message;->setCallback(Ljava/lang/Runnable;)Landroid/os/Message; HSPLandroid/os/Message;->setData(Landroid/os/Bundle;)V @@ -12297,22 +12249,22 @@ HSPLandroid/os/MessageQueue;->addIdleHandler(Landroid/os/MessageQueue$IdleHandle 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;->enqueueMessage(Landroid/os/Message;J)Z 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;->next()Landroid/os/Message; HSPLandroid/os/MessageQueue;->postSyncBarrier()I -HSPLandroid/os/MessageQueue;->postSyncBarrier(J)I+]Landroid/os/Message;Landroid/os/Message; +HSPLandroid/os/MessageQueue;->postSyncBarrier(J)I 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;->removeMessages(Landroid/os/Handler;ILjava/lang/Object;)V +HSPLandroid/os/MessageQueue;->removeMessages(Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/Object;)V HSPLandroid/os/MessageQueue;->removeOnFileDescriptorEventListener(Ljava/io/FileDescriptor;)V -HSPLandroid/os/MessageQueue;->removeSyncBarrier(I)V+]Landroid/os/Message;Landroid/os/Message; +HSPLandroid/os/MessageQueue;->removeSyncBarrier(I)V HSPLandroid/os/MessageQueue;->updateOnFileDescriptorEventListenerLocked(Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V HSPLandroid/os/Messenger$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/Messenger; HSPLandroid/os/Messenger$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -12325,15 +12277,15 @@ 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;->(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$2;->resolveClass(Ljava/io/ObjectStreamClass;)Ljava/lang/Class; HSPLandroid/os/Parcel$LazyValue;->(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;->apply(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object; +HSPLandroid/os/Parcel$LazyValue;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 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$ReadWriteHelper;->readString16(Landroid/os/Parcel;)Ljava/lang/String; +HSPLandroid/os/Parcel$ReadWriteHelper;->readString8(Landroid/os/Parcel;)Ljava/lang/String; +HSPLandroid/os/Parcel$ReadWriteHelper;->writeString16(Landroid/os/Parcel;Ljava/lang/String;)V +HSPLandroid/os/Parcel$ReadWriteHelper;->writeString8(Landroid/os/Parcel;Ljava/lang/String;)V HSPLandroid/os/Parcel;->-$$Nest$mreadValue(Landroid/os/Parcel;Ljava/lang/ClassLoader;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object; HSPLandroid/os/Parcel;->(J)V HSPLandroid/os/Parcel;->adoptClassCookies(Landroid/os/Parcel;)V @@ -12347,20 +12299,20 @@ 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;->createIntArray()[I +HSPLandroid/os/Parcel;->createLongArray()[J +HSPLandroid/os/Parcel;->createString16Array()[Ljava/lang/String; +HSPLandroid/os/Parcel;->createString8Array()[Ljava/lang/String; 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;->createStringArrayList()Ljava/util/ArrayList; +HSPLandroid/os/Parcel;->createTypedArray(Landroid/os/Parcelable$Creator;)[Ljava/lang/Object; +HSPLandroid/os/Parcel;->createTypedArrayList(Landroid/os/Parcelable$Creator;)Ljava/util/ArrayList; 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;->enforceNoDataAvail()V HSPLandroid/os/Parcel;->ensureReadSquashableParcelables()V HSPLandroid/os/Parcel;->ensureWithinMemoryLimit(II)V HSPLandroid/os/Parcel;->finalize()V @@ -12382,21 +12334,21 @@ 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;->readArrayListInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/util/ArrayList; +HSPLandroid/os/Parcel;->readArrayMap(Landroid/util/ArrayMap;IZZLjava/lang/ClassLoader;)I 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;->readBoolean()Z 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;->readBundle()Landroid/os/Bundle; +HSPLandroid/os/Parcel;->readBundle(Ljava/lang/ClassLoader;)Landroid/os/Bundle; +HSPLandroid/os/Parcel;->readByte()B HSPLandroid/os/Parcel;->readByteArray([B)V HSPLandroid/os/Parcel;->readCallingWorkSourceUid()I -HSPLandroid/os/Parcel;->readCharSequence()Ljava/lang/CharSequence;+]Landroid/os/Parcelable$Creator;Landroid/text/TextUtils$1; +HSPLandroid/os/Parcel;->readCharSequence()Ljava/lang/CharSequence; HSPLandroid/os/Parcel;->readCharSequenceArray()[Ljava/lang/CharSequence; HSPLandroid/os/Parcel;->readDouble()D HSPLandroid/os/Parcel;->readException()V @@ -12408,7 +12360,7 @@ 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;->readLazyValue(Ljava/lang/ClassLoader;)Ljava/lang/Object; 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 @@ -12422,42 +12374,42 @@ HSPLandroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;)Landroid/os/Parce 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;->readParcelableArrayInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)[Ljava/lang/Object; 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;->readParcelableCreatorInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Landroid/os/Parcelable$Creator; +HSPLandroid/os/Parcel;->readParcelableInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Object; 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;->readParcelableListInternal(Ljava/util/List;Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/util/List; HSPLandroid/os/Parcel;->readPersistableBundle()Landroid/os/PersistableBundle; HSPLandroid/os/Parcel;->readPersistableBundle(Ljava/lang/ClassLoader;)Landroid/os/PersistableBundle; HSPLandroid/os/Parcel;->readRawFileDescriptor()Ljava/io/FileDescriptor; 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;->readSerializableInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Object; 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;->readSquashed(Landroid/os/Parcel$SquashReadHelper;)Landroid/os/Parcelable; +HSPLandroid/os/Parcel;->readString()Ljava/lang/String; +HSPLandroid/os/Parcel;->readString16()Ljava/lang/String; 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;->readString8()Ljava/lang/String; 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; 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;->readTypedObject(Landroid/os/Parcelable$Creator;)Ljava/lang/Object; 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(ILjava/lang/ClassLoader;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object; 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;->readValue(Ljava/lang/ClassLoader;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object; HSPLandroid/os/Parcel;->recycle()V HSPLandroid/os/Parcel;->resetSqaushingState()V HSPLandroid/os/Parcel;->restoreAllowFds(Z)V @@ -12467,13 +12419,13 @@ 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;->writeArrayMapInternal(Landroid/util/ArrayMap;)V 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;->writeBoolean(Z)V 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;->writeBundle(Landroid/os/Bundle;)V HSPLandroid/os/Parcel;->writeByte(B)V HSPLandroid/os/Parcel;->writeByteArray([B)V HSPLandroid/os/Parcel;->writeByteArray([BII)V @@ -12492,33 +12444,33 @@ 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;->writeParcelable(Landroid/os/Parcelable;I)V +HSPLandroid/os/Parcel;->writeParcelableArray([Landroid/os/Parcelable;I)V +HSPLandroid/os/Parcel;->writeParcelableCreator(Landroid/os/Parcelable;)V HSPLandroid/os/Parcel;->writeParcelableList(Ljava/util/List;I)V HSPLandroid/os/Parcel;->writePersistableBundle(Landroid/os/PersistableBundle;)V 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;->writeString(Ljava/lang/String;)V +HSPLandroid/os/Parcel;->writeString16(Ljava/lang/String;)V +HSPLandroid/os/Parcel;->writeString16Array([Ljava/lang/String;)V 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;->writeString8(Ljava/lang/String;)V 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;->writeStringArray([Ljava/lang/String;)V HSPLandroid/os/Parcel;->writeStringList(Ljava/util/List;)V HSPLandroid/os/Parcel;->writeStrongBinder(Landroid/os/IBinder;)V -HSPLandroid/os/Parcel;->writeStrongInterface(Landroid/os/IInterface;)V+]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;->writeStrongInterface(Landroid/os/IInterface;)V +HSPLandroid/os/Parcel;->writeTypedArray([Landroid/os/Parcelable;I)V 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/Parcel;->writeTypedObject(Landroid/os/Parcelable;I)V +HSPLandroid/os/Parcel;->writeValue(ILjava/lang/Object;)V +HSPLandroid/os/Parcel;->writeValue(Ljava/lang/Object;)V 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;->(Landroid/os/ParcelFileDescriptor;)V @@ -12672,15 +12624,12 @@ HSPLandroid/os/RemoteCallback;->(Landroid/os/RemoteCallback$OnResultListen HSPLandroid/os/RemoteCallback;->(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;->(Landroid/os/RemoteCallbackList;Landroid/os/IInterface;Ljava/lang/Object;)V -HSPLandroid/os/RemoteCallbackList$Callback;->binderDied()V HSPLandroid/os/RemoteCallbackList;->()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 @@ -12707,22 +12656,17 @@ HSPLandroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinde HSPLandroid/os/ServiceManager;->getServiceOrThrow(Ljava/lang/String;)Landroid/os/IBinder; HSPLandroid/os/ServiceManager;->initServiceCache(Ljava/util/Map;)V HSPLandroid/os/ServiceManager;->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;->rawGetService(Ljava/lang/String;)Landroid/os/IBinder; 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;->(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;->(ILandroid/os/SharedMemory$MemoryRegistration;)V -HSPLandroid/os/SharedMemory$Closer;->(ILandroid/os/SharedMemory$MemoryRegistration;Landroid/os/SharedMemory$Closer-IA;)V HSPLandroid/os/SharedMemory$MemoryRegistration;->(I)V -HSPLandroid/os/SharedMemory$MemoryRegistration;->(ILandroid/os/SharedMemory$MemoryRegistration-IA;)V HSPLandroid/os/SharedMemory$MemoryRegistration;->acquire()Landroid/os/SharedMemory$MemoryRegistration; HSPLandroid/os/SharedMemory$Unmapper;->(JILandroid/os/SharedMemory$MemoryRegistration;)V -HSPLandroid/os/SharedMemory$Unmapper;->(JILandroid/os/SharedMemory$MemoryRegistration;Landroid/os/SharedMemory$Unmapper-IA;)V HSPLandroid/os/SharedMemory;->(Ljava/io/FileDescriptor;)V HSPLandroid/os/SharedMemory;->(Ljava/io/FileDescriptor;Landroid/os/SharedMemory-IA;)V HSPLandroid/os/SharedMemory;->checkOpen()V @@ -12766,14 +12710,13 @@ HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->handleViolationWithTimingAtt 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;->onReadFromDisk()V HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onThreadPolicyViolation(Landroid/os/StrictMode$ViolationInfo;)V HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onUnbufferedIO()V HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onWriteToDisk()V HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->setThreadPolicyMask(I)V HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->startHandlingViolationException(Landroid/os/strictmode/Violation;)V HSPLandroid/os/StrictMode$AndroidCloseGuardReporter;->()V -HSPLandroid/os/StrictMode$AndroidCloseGuardReporter;->(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;->(Ljava/lang/Object;)V @@ -12802,13 +12745,10 @@ HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitDiskReads()Landroid/os/St 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;->(ILandroid/os/StrictMode$OnThreadViolationListener;Ljava/util/concurrent/Executor;)V -HSPLandroid/os/StrictMode$ThreadPolicy;->(ILandroid/os/StrictMode$OnThreadViolationListener;Ljava/util/concurrent/Executor;Landroid/os/StrictMode$ThreadPolicy-IA;)V HSPLandroid/os/StrictMode$ThreadSpanState;->()V -HSPLandroid/os/StrictMode$ThreadSpanState;->(Landroid/os/StrictMode$ThreadSpanState-IA;)V HSPLandroid/os/StrictMode$UnsafeIntentStrictModeCallback;->()V -HSPLandroid/os/StrictMode$UnsafeIntentStrictModeCallback;->(Landroid/os/StrictMode$UnsafeIntentStrictModeCallback-IA;)V HSPLandroid/os/StrictMode$ViolationInfo;->-$$Nest$fgetmViolation(Landroid/os/StrictMode$ViolationInfo;)Landroid/os/strictmode/Violation; -HSPLandroid/os/StrictMode$ViolationInfo;->(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;->(Landroid/os/Parcel;Z)V HSPLandroid/os/StrictMode$ViolationInfo;->(Landroid/os/strictmode/Violation;I)V HSPLandroid/os/StrictMode$ViolationInfo;->getStackTrace()Ljava/lang/String; HSPLandroid/os/StrictMode$ViolationInfo;->hashCode()I @@ -12836,7 +12776,6 @@ HSPLandroid/os/StrictMode$VmPolicy$Builder;->penaltyLog()Landroid/os/StrictMode$ 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;->(ILjava/util/HashMap;Landroid/os/StrictMode$OnVmViolationListener;Ljava/util/concurrent/Executor;)V -HSPLandroid/os/StrictMode$VmPolicy;->(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 @@ -12854,7 +12793,7 @@ 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;->clearGatheredViolations()V 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; @@ -12901,7 +12840,6 @@ HSPLandroid/os/SystemConfigManager;->()V HSPLandroid/os/SystemConfigManager;->getDisabledUntilUsedPreinstalledCarrierApps()Ljava/util/Set; HSPLandroid/os/SystemConfigManager;->getDisabledUntilUsedPreinstalledCarrierAssociatedAppEntries()Ljava/util/Map; HSPLandroid/os/SystemProperties$Handle;->(J)V -HSPLandroid/os/SystemProperties$Handle;->(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 @@ -12932,18 +12870,18 @@ HSPLandroid/os/Temperature;->(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;->getToken()J +HSPLandroid/os/ThreadLocalWorkSource;->getUid()I 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/ThreadLocalWorkSource;->restore(J)V +HSPLandroid/os/ThreadLocalWorkSource;->setUid(I)J 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;->beginSection(Ljava/lang/String;)V HSPLandroid/os/Trace;->endAsyncSection(Ljava/lang/String;I)V HSPLandroid/os/Trace;->endSection()V HSPLandroid/os/Trace;->instant(JLjava/lang/String;)V @@ -12985,19 +12923,7 @@ HSPLandroid/os/UserHandle;->writeToParcel(Landroid/os/UserHandle;Landroid/os/Par HSPLandroid/os/UserManager$1;->(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;->(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;->(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;->(Landroid/os/UserManager;ILjava/lang/String;)V HSPLandroid/os/UserManager;->-$$Nest$fgetmService(Landroid/os/UserManager;)Landroid/os/IUserManager; HSPLandroid/os/UserManager;->(Landroid/content/Context;Landroid/os/IUserManager;)V HSPLandroid/os/UserManager;->convertUserIdsToUserHandles([I)Ljava/util/List; @@ -13093,7 +13019,6 @@ 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;->(JJJJJJJJJLjava/lang/Long;[J[J[JJ)V HSPLandroid/os/health/HealthStats;->(Landroid/os/Parcel;)V HSPLandroid/os/health/HealthStats;->getMeasurement(I)J HSPLandroid/os/health/HealthStats;->getMeasurements(I)Ljava/util/Map; @@ -13127,7 +13052,6 @@ HSPLandroid/os/storage/IStorageManager$Stub;->asInterface(Landroid/os/IBinder;)L HSPLandroid/os/storage/StorageEventListener;->()V HSPLandroid/os/storage/StorageEventListener;->onStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V HSPLandroid/os/storage/StorageManager$ObbActionListener;->(Landroid/os/storage/StorageManager;)V -HSPLandroid/os/storage/StorageManager$ObbActionListener;->(Landroid/os/storage/StorageManager;Landroid/os/storage/StorageManager$ObbActionListener-IA;)V HSPLandroid/os/storage/StorageManager$StorageEventListenerDelegate;->(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 @@ -13136,7 +13060,7 @@ HSPLandroid/os/storage/StorageManager;->(Landroid/content/Context;Landroid 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;->convert(Ljava/util/UUID;)Ljava/lang/String; 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; @@ -13225,7 +13149,7 @@ HSPLandroid/permission/PermissionManager$SplitPermissionInfo;->getTargetSdk()I HSPLandroid/permission/PermissionManager;->()V HSPLandroid/permission/PermissionManager;->(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;->checkPermissionUncached(Ljava/lang/String;III)I 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; @@ -13288,15 +13212,15 @@ HSPLandroid/provider/Settings$Global;->getInt(Landroid/content/ContentResolver;L 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;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String; HSPLandroid/provider/Settings$Global;->getUriFor(Ljava/lang/String;)Landroid/net/Uri; HSPLandroid/provider/Settings$Global;->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;->(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;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String; +HSPLandroid/provider/Settings$NameValueCache;->getStringsForPrefixStripPrefix(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Ljava/util/Map; 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; @@ -13307,7 +13231,7 @@ HSPLandroid/provider/Settings$Secure;->getIntForUser(Landroid/content/ContentRes 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;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; HSPLandroid/provider/Settings$Secure;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String; HSPLandroid/provider/Settings$Secure;->getUriFor(Ljava/lang/String;)Landroid/net/Uri; HSPLandroid/provider/Settings$Secure;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z @@ -13322,7 +13246,7 @@ HSPLandroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;L 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;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String; HSPLandroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri; HSPLandroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z HSPLandroid/provider/Settings$System;->putIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)Z @@ -13359,7 +13283,6 @@ HSPLandroid/security/KeyStore2;->getKeyEntry(Landroid/system/keystore2/KeyDescri 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;->(ILjava/lang/String;)V HSPLandroid/security/KeyStoreException;->(ILjava/lang/String;Ljava/lang/String;)V HSPLandroid/security/KeyStoreException;->getErrorCode()I @@ -13471,10 +13394,8 @@ 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;->(Landroid/security/KeyStoreOperation;)V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream;->(Landroid/security/KeyStoreOperation;Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream-IA;)V HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream;->finish([B[B)[B HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer;->(Landroid/security/keystore2/KeyStoreCryptoOperationStreamer;)V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer;->(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;->()V HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM$NoPadding;->finalize()V @@ -13689,18 +13610,18 @@ HSPLandroid/service/notification/NotificationListenerService$NotificationListene 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;->onNotificationPosted(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;)V 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;->()V -HSPLandroid/service/notification/NotificationListenerService$Ranking;->(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;->(Landroid/os/Parcel;)V 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(Landroid/service/notification/NotificationListenerService$Ranking;)V 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;->(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;->(Landroid/os/Parcel;)V 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;->()V @@ -13729,7 +13650,7 @@ HSPLandroid/service/notification/NotificationRankingUpdate;->(Landroid/os/ 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;->(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Lcom/android/internal/logging/InstanceId$1;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/service/notification/StatusBarNotification;->(Landroid/os/Parcel;)V HSPLandroid/service/notification/StatusBarNotification;->getGroupKey()Ljava/lang/String; HSPLandroid/service/notification/StatusBarNotification;->getId()I HSPLandroid/service/notification/StatusBarNotification;->getInstanceId()Lcom/android/internal/logging/InstanceId; @@ -13748,7 +13669,7 @@ HSPLandroid/service/notification/StatusBarNotification;->groupKey()Ljava/lang/St 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/StatusBarNotification;->key()Ljava/lang/String; HSPLandroid/service/notification/ZenModeConfig$ZenRule$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/ZenModeConfig$ZenRule; HSPLandroid/service/notification/ZenModeConfig$ZenRule$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/service/notification/ZenModeConfig$ZenRule;->(Landroid/os/Parcel;)V @@ -13930,14 +13851,11 @@ HSPLandroid/telecom/Log;->obfuscatePhoneNumber(Ljava/lang/StringBuilder;Ljava/la 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;->(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; @@ -13950,7 +13868,6 @@ 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;->()V @@ -13958,7 +13875,6 @@ 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 @@ -13996,7 +13912,7 @@ HSPLandroid/telecom/PhoneAccountHandle;->getComponentName()Landroid/content/Comp 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;->toString()Ljava/lang/String; HSPLandroid/telecom/PhoneAccountHandle;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/telecom/TelecomManager;->(Landroid/content/Context;)V HSPLandroid/telecom/TelecomManager;->(Landroid/content/Context;Lcom/android/internal/telecom/ITelecomService;)V @@ -14115,7 +14031,6 @@ HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->set 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; @@ -14135,7 +14050,7 @@ 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;->(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/telephony/NetworkRegistrationInfo;->(Landroid/os/Parcel;)V HSPLandroid/telephony/NetworkRegistrationInfo;->(Landroid/telephony/NetworkRegistrationInfo;)V HSPLandroid/telephony/NetworkRegistrationInfo;->domainToString(I)Ljava/lang/String; HSPLandroid/telephony/NetworkRegistrationInfo;->getAccessNetworkTechnology()I @@ -14159,7 +14074,7 @@ HSPLandroid/telephony/PhoneNumberUtils;->formatNumberToE164(Ljava/lang/String;Lj 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;->normalizeNumber(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/telephony/PhoneNumberUtils;->stripSeparators(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda10;->runOrThrow()V HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda19;->runOrThrow()V @@ -14191,7 +14106,7 @@ 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;->()V -HSPLandroid/telephony/ServiceState;->(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; +HSPLandroid/telephony/ServiceState;->(Landroid/os/Parcel;)V HSPLandroid/telephony/ServiceState;->(Landroid/telephony/ServiceState;)V HSPLandroid/telephony/ServiceState;->copyFrom(Landroid/telephony/ServiceState;)V HSPLandroid/telephony/ServiceState;->createLocationInfoSanitizedCopy(Z)Landroid/telephony/ServiceState; @@ -14231,7 +14146,7 @@ HSPLandroid/telephony/SignalStrength;->getCellSignalStrengths(Ljava/lang/Class;) 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;)Landroid/telephony/SubscriptionInfo; 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 @@ -14426,7 +14341,6 @@ 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; @@ -14608,9 +14522,9 @@ 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;->init(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/Layout$Alignment;Landroid/text/BoringLayout$Metrics;ZZZ)V 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/graphics/Paint$FontMetrics;Landroid/text/BoringLayout$Metrics;)Landroid/text/BoringLayout$Metrics;+]Landroid/text/BoringLayout$Metrics;Landroid/text/BoringLayout$Metrics;]Landroid/text/Spanned;Landroid/text/PrecomputedText;,Landroid/text/SpannableString;,Landroid/text/SpannableStringBuilder;,Landroid/text/SpannedString;,Landroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;]Landroid/text/TextDirectionHeuristic;Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal;,Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;]Landroid/text/TextLine;Landroid/text/TextLine;]Ljava/lang/CharSequence;megamorphic_types 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; @@ -14625,8 +14539,7 @@ 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$Builder;->obtain(Ljava/lang/CharSequence;Landroid/text/TextPaint;I)Landroid/text/DynamicLayout$Builder; 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 @@ -14634,29 +14547,29 @@ HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanChanged(Landroid/text/Spann 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;->(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;->addBlockAtOffset(I)V +HSPLandroid/text/DynamicLayout;->contentMayProtrudeFromLineTopOrBottom(Ljava/lang/CharSequence;II)Z HSPLandroid/text/DynamicLayout;->createBlocks()V -HSPLandroid/text/DynamicLayout;->generate(Landroid/text/DynamicLayout$Builder;)V+]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;->generate(Landroid/text/DynamicLayout$Builder;)V HSPLandroid/text/DynamicLayout;->getBlockEndLines()[I HSPLandroid/text/DynamicLayout;->getBlockIndices()[I HSPLandroid/text/DynamicLayout;->getBlocksAlwaysNeedToBeRedrawn()Landroid/util/ArraySet; HSPLandroid/text/DynamicLayout;->getEllipsisCount(I)I HSPLandroid/text/DynamicLayout;->getEllipsisStart(I)I HSPLandroid/text/DynamicLayout;->getEllipsizedWidth()I -HSPLandroid/text/DynamicLayout;->getEndHyphenEdit(I)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; +HSPLandroid/text/DynamicLayout;->getEndHyphenEdit(I)I 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;->getLineContainsTab(I)Z +HSPLandroid/text/DynamicLayout;->getLineCount()I +HSPLandroid/text/DynamicLayout;->getLineDescent(I)I +HSPLandroid/text/DynamicLayout;->getLineDirections(I)Landroid/text/Layout$Directions; HSPLandroid/text/DynamicLayout;->getLineExtra(I)I -HSPLandroid/text/DynamicLayout;->getLineStart(I)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; -HSPLandroid/text/DynamicLayout;->getLineTop(I)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; +HSPLandroid/text/DynamicLayout;->getLineStart(I)I +HSPLandroid/text/DynamicLayout;->getLineTop(I)I 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;->getParagraphDirection(I)I +HSPLandroid/text/DynamicLayout;->getStartHyphenEdit(I)I +HSPLandroid/text/DynamicLayout;->reflow(Ljava/lang/CharSequence;III)V HSPLandroid/text/DynamicLayout;->setIndexFirstChangedBlock(I)V HSPLandroid/text/DynamicLayout;->updateAlwaysNeedsToBeRedrawn(I)V HSPLandroid/text/DynamicLayout;->updateBlocks(III)V @@ -14712,9 +14625,9 @@ HSPLandroid/text/Layout;->(Ljava/lang/CharSequence;Landroid/text/TextPaint 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;->draw(Landroid/graphics/Canvas;Ljava/util/List;Ljava/util/List;Landroid/graphics/Path;Landroid/graphics/Paint;I)V 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;->drawText(Landroid/graphics/Canvas;II)V 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 @@ -14729,27 +14642,27 @@ 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;->getLineEnd(I)I HSPLandroid/text/Layout;->getLineExtent(ILandroid/text/Layout$TabStops;Z)F HSPLandroid/text/Layout;->getLineExtent(IZ)F -HSPLandroid/text/Layout;->getLineForOffset(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout; -HSPLandroid/text/Layout;->getLineForVertical(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout; +HSPLandroid/text/Layout;->getLineForOffset(I)I +HSPLandroid/text/Layout;->getLineForVertical(I)I HSPLandroid/text/Layout;->getLineLeft(I)F HSPLandroid/text/Layout;->getLineMax(I)F -HSPLandroid/text/Layout;->getLineRangeForDraw(Landroid/graphics/Canvas;)J+]Landroid/text/Layout;Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; +HSPLandroid/text/Layout;->getLineRangeForDraw(Landroid/graphics/Canvas;)J HSPLandroid/text/Layout;->getLineRight(I)F HSPLandroid/text/Layout;->getLineStartPos(III)I HSPLandroid/text/Layout;->getLineVisibleEnd(I)I HSPLandroid/text/Layout;->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;->getOffsetForHorizontal(IFZ)I 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;->getParagraphAlignment(I)Landroid/text/Layout$Alignment; +HSPLandroid/text/Layout;->getParagraphLeadingMargin(I)I 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;->getParagraphSpans(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object; HSPLandroid/text/Layout;->getPrimaryHorizontal(I)F HSPLandroid/text/Layout;->getPrimaryHorizontal(IZ)F HSPLandroid/text/Layout;->getSelection(IILandroid/text/Layout$SelectionRectangleConsumer;)V @@ -14768,8 +14681,8 @@ 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;->()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;->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 +HSPLandroid/text/MeasuredParagraph;->applyStyleRun(IILandroid/text/TextPaint;Landroid/graphics/text/LineBreakConfig;Landroid/graphics/text/MeasuredText$Builder;Landroid/text/MeasuredParagraph$StyleRunCallback;)V+]Landroid/text/AutoGrowArray$ByteArray;Landroid/text/AutoGrowArray$ByteArray;]Landroid/text/AutoGrowArray$FloatArray;Landroid/text/AutoGrowArray$FloatArray;]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; @@ -14788,9 +14701,9 @@ 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;->getValue(II)I HSPLandroid/text/PackedIntVector;->growBuffer()V -HSPLandroid/text/PackedIntVector;->insertAt(I[I)V+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; +HSPLandroid/text/PackedIntVector;->insertAt(I[I)V HSPLandroid/text/PackedIntVector;->moveRowGapTo(I)V HSPLandroid/text/PackedIntVector;->moveValueGapTo(II)V HSPLandroid/text/PackedIntVector;->size()I @@ -14798,7 +14711,7 @@ 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;->insertAt(I[Ljava/lang/Object;)V HSPLandroid/text/PackedObjectVector;->moveRowGapTo(I)V HSPLandroid/text/PackedObjectVector;->setValue(IILjava/lang/Object;)V HSPLandroid/text/PackedObjectVector;->size()I @@ -14809,7 +14722,7 @@ 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;->getSelectionStart(Ljava/lang/CharSequence;)I HSPLandroid/text/Selection;->removeMemory(Landroid/text/Spannable;)V HSPLandroid/text/Selection;->removeSelection(Landroid/text/Spannable;)V HSPLandroid/text/Selection;->setSelection(Landroid/text/Spannable;I)V @@ -14819,7 +14732,7 @@ HSPLandroid/text/Selection;->updateMemory(Landroid/text/Spannable;I)V HSPLandroid/text/SpanSet;->(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;->init(Landroid/text/Spanned;II)V 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; @@ -14837,32 +14750,32 @@ 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;->()V -HSPLandroid/text/SpannableStringBuilder;->(Ljava/lang/CharSequence;)V+]Ljava/lang/CharSequence;missing_types +HSPLandroid/text/SpannableStringBuilder;->(Ljava/lang/CharSequence;)V HSPLandroid/text/SpannableStringBuilder;->(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;)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;->change(IILjava/lang/CharSequence;II)V HSPLandroid/text/SpannableStringBuilder;->charAt(I)C -HSPLandroid/text/SpannableStringBuilder;->checkRange(Ljava/lang/String;II)V+]Landroid/text/SpannableStringBuilder;missing_types +HSPLandroid/text/SpannableStringBuilder;->checkRange(Ljava/lang/String;II)V 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;->countSpans(IILjava/lang/Class;I)I 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;->getSpanEnd(Ljava/lang/Object;)I +HSPLandroid/text/SpannableStringBuilder;->getSpanFlags(Ljava/lang/Object;)I +HSPLandroid/text/SpannableStringBuilder;->getSpanStart(Ljava/lang/Object;)I +HSPLandroid/text/SpannableStringBuilder;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object; HSPLandroid/text/SpannableStringBuilder;->getSpans(IILjava/lang/Class;Z)[Ljava/lang/Object; -HSPLandroid/text/SpannableStringBuilder;->getSpansRec(IILjava/lang/Class;I[Ljava/lang/Object;[I[IIZ)I+]Ljava/lang/Class;Ljava/lang/Class; +HSPLandroid/text/SpannableStringBuilder;->getSpansRec(IILjava/lang/Class;I[Ljava/lang/Object;[I[IIZ)I HSPLandroid/text/SpannableStringBuilder;->getTextWatcherDepth()I HSPLandroid/text/SpannableStringBuilder;->hasNonExclusiveExclusiveSpanAt(Ljava/lang/CharSequence;I)Z HSPLandroid/text/SpannableStringBuilder;->insert(ILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder; @@ -14881,48 +14794,48 @@ 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;->replace(IILjava/lang/CharSequence;II)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;->restoreInvariants()V 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;->sendSpanAdded(Ljava/lang/Object;II)V 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;->setSpan(ZLjava/lang/Object;IIIZ)V HSPLandroid/text/SpannableStringBuilder;->siftDown(I[Ljava/lang/Object;I[I[I)V HSPLandroid/text/SpannableStringBuilder;->sort([Ljava/lang/Object;[I[I)V HSPLandroid/text/SpannableStringBuilder;->subSequence(II)Ljava/lang/CharSequence; -HSPLandroid/text/SpannableStringBuilder;->toString()Ljava/lang/String;+]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder; +HSPLandroid/text/SpannableStringBuilder;->toString()Ljava/lang/String; HSPLandroid/text/SpannableStringBuilder;->treeRoot()I HSPLandroid/text/SpannableStringBuilder;->updatedIntervalBound(IIIIZZ)I -HSPLandroid/text/SpannableStringInternal;->(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;->(Ljava/lang/CharSequence;IIZ)V +HSPLandroid/text/SpannableStringInternal;->charAt(I)C +HSPLandroid/text/SpannableStringInternal;->checkRange(Ljava/lang/String;II)V +HSPLandroid/text/SpannableStringInternal;->copySpansFromInternal(Landroid/text/SpannableStringInternal;IIZ)V +HSPLandroid/text/SpannableStringInternal;->copySpansFromSpanned(Landroid/text/Spanned;IIZ)V HSPLandroid/text/SpannableStringInternal;->equals(Ljava/lang/Object;)Z -HSPLandroid/text/SpannableStringInternal;->getChars(II[CI)V+]Ljava/lang/String;Ljava/lang/String; +HSPLandroid/text/SpannableStringInternal;->getChars(II[CI)V 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;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object; +HSPLandroid/text/SpannableStringInternal;->length()I HSPLandroid/text/SpannableStringInternal;->nextSpanTransition(IILjava/lang/Class;)I HSPLandroid/text/SpannableStringInternal;->removeSpan(Ljava/lang/Object;I)V -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;->sendSpanAdded(Ljava/lang/Object;II)V 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;->(Ljava/lang/CharSequence;)V -HSPLandroid/text/SpannedString;->(Ljava/lang/CharSequence;Z)V+]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannableStringBuilder; +HSPLandroid/text/SpannedString;->(Ljava/lang/CharSequence;Z)V HSPLandroid/text/SpannedString;->equals(Ljava/lang/Object;)Z HSPLandroid/text/SpannedString;->getSpanEnd(Ljava/lang/Object;)I HSPLandroid/text/SpannedString;->getSpanFlags(Ljava/lang/Object;)I @@ -14967,7 +14880,7 @@ HSPLandroid/text/StaticLayout$Builder;->setTextDirection(Landroid/text/TextDirec HSPLandroid/text/StaticLayout$Builder;->setUseLineSpacingFromFallbacks(Z)Landroid/text/StaticLayout$Builder; HSPLandroid/text/StaticLayout;->(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;->generate(Landroid/text/StaticLayout$Builder;ZZ)V HSPLandroid/text/StaticLayout;->getBottomPadding()I HSPLandroid/text/StaticLayout;->getEllipsisCount(I)I HSPLandroid/text/StaticLayout;->getEllipsisStart(I)I @@ -14977,7 +14890,7 @@ HSPLandroid/text/StaticLayout;->getIndentAdjust(ILandroid/text/Layout$Alignment; 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;->getLineDirections(I)Landroid/text/Layout$Directions; HSPLandroid/text/StaticLayout;->getLineExtra(I)I HSPLandroid/text/StaticLayout;->getLineForVertical(I)I HSPLandroid/text/StaticLayout;->getLineStart(I)I @@ -14986,7 +14899,7 @@ 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;->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 HSPLandroid/text/StaticLayout;->packHyphenEdit(II)I HSPLandroid/text/StaticLayout;->unpackEndHyphenEdit(I)I HSPLandroid/text/StaticLayout;->unpackStartHyphenEdit(I)I @@ -14997,7 +14910,7 @@ HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->isRtl([CII 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;->getKeyForFlag(Ljava/lang/String;)Ljava/lang/String; HSPLandroid/text/TextFlags;->isFeatureEnabled(Ljava/lang/String;)Z HSPLandroid/text/TextLine$DecorationInfo;->()V HSPLandroid/text/TextLine$DecorationInfo;->copyInfo()Landroid/text/TextLine$DecorationInfo; @@ -15005,24 +14918,24 @@ HSPLandroid/text/TextLine$DecorationInfo;->hasDecoration()Z HSPLandroid/text/TextLine;->()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;->draw(Landroid/graphics/Canvas;FIII)V 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;->drawTextRun(Landroid/graphics/Canvas;Landroid/text/TextPaint;IIIIZFI)V HSPLandroid/text/TextLine;->equalAttributes(Landroid/text/TextPaint;Landroid/text/TextPaint;)Z HSPLandroid/text/TextLine;->expandMetricsFromPaint(Landroid/graphics/Paint$FontMetricsInt;Landroid/text/TextPaint;)V -HSPLandroid/text/TextLine;->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;->expandMetricsFromPaint(Landroid/text/TextPaint;IIIIZLandroid/graphics/Paint$FontMetricsInt;)V +HSPLandroid/text/TextLine;->extractDecorationInfo(Landroid/text/TextPaint;Landroid/text/TextLine$DecorationInfo;)V +HSPLandroid/text/TextLine;->getOffsetBeforeAfter(IIIZIZ)I 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;->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/SpanSet;Landroid/text/SpanSet;]Landroid/text/TextPaint;missing_types]Landroid/text/style/CharacterStyle;missing_types]Landroid/text/style/MetricAffectingSpan;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList; +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; 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;->measure(IZLandroid/graphics/Paint$FontMetricsInt;Landroid/graphics/RectF;Landroid/text/TextLine$LineInfo;)F+]Landroid/text/Layout$Directions;Landroid/text/Layout$Directions; 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;->recycle(Landroid/text/TextLine;)Landroid/text/TextLine; +HSPLandroid/text/TextLine;->set(Landroid/text/TextPaint;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;ZLandroid/text/Layout$TabStops;IIZ)V HSPLandroid/text/TextLine;->updateMetrics(Landroid/graphics/Paint$FontMetricsInt;IIIII)V HSPLandroid/text/TextPaint;->()V HSPLandroid/text/TextPaint;->(I)V @@ -15030,8 +14943,8 @@ HSPLandroid/text/TextPaint;->(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$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/CharSequence; +HSPLandroid/text/TextUtils$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/text/TextUtils$SimpleStringSplitter;->(C)V HSPLandroid/text/TextUtils$SimpleStringSplitter;->hasNext()Z HSPLandroid/text/TextUtils$SimpleStringSplitter;->iterator()Ljava/util/Iterator; @@ -15039,7 +14952,7 @@ 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;->concat([Ljava/lang/CharSequence;)Ljava/lang/CharSequence; 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 @@ -15047,23 +14960,23 @@ HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/Tex 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;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z 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;->formatSimple(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; 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;->getChars(Ljava/lang/CharSequence;II[CI)V HSPLandroid/text/TextUtils;->getEllipsisString(Landroid/text/TextUtils$TruncateAt;)Ljava/lang/String; HSPLandroid/text/TextUtils;->getLayoutDirectionFromLocale(Ljava/util/Locale;)I HSPLandroid/text/TextUtils;->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;CII)I 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;->isEmpty(Ljava/lang/CharSequence;)Z 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/Iterable;)Ljava/lang/String; HSPLandroid/text/TextUtils;->join(Ljava/lang/CharSequence;[Ljava/lang/Object;)Ljava/lang/String; HSPLandroid/text/TextUtils;->lastIndexOf(Ljava/lang/CharSequence;CI)I HSPLandroid/text/TextUtils;->lastIndexOf(Ljava/lang/CharSequence;CII)I @@ -15076,14 +14989,14 @@ HSPLandroid/text/TextUtils;->removeEmptySpans([Ljava/lang/Object;Landroid/text/S 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;->substring(Ljava/lang/CharSequence;II)Ljava/lang/String; HSPLandroid/text/TextUtils;->toUpperCase(Ljava/util/Locale;Ljava/lang/CharSequence;Z)Ljava/lang/CharSequence; HSPLandroid/text/TextUtils;->trimNoCopySpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; HSPLandroid/text/TextUtils;->trimToParcelableSize(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; 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/TextUtils;->writeToParcel(Ljava/lang/CharSequence;Landroid/os/Parcel;I)V HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;J)Ljava/lang/CharSequence; HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Calendar;)Ljava/lang/CharSequence; HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Date;)Ljava/lang/CharSequence; @@ -15190,7 +15103,7 @@ HSPLandroid/text/method/TextKeyListener;->onSpanAdded(Landroid/text/Spannable;Lj 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/Touch;->onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z HSPLandroid/text/method/WordIterator;->(Ljava/util/Locale;)V HSPLandroid/text/method/WordIterator;->checkOffsetIsValid(I)V HSPLandroid/text/method/WordIterator;->following(I)I @@ -15209,7 +15122,7 @@ HSPLandroid/text/style/ClickableSpan;->updateDrawState(Landroid/text/TextPaint;) HSPLandroid/text/style/DynamicDrawableSpan;->(I)V HSPLandroid/text/style/ForegroundColorSpan;->(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;->updateDrawState(Landroid/text/TextPaint;)V HSPLandroid/text/style/ForegroundColorSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V HSPLandroid/text/style/ImageSpan;->(Landroid/graphics/drawable/Drawable;I)V HSPLandroid/text/style/ImageSpan;->getDrawable()Landroid/graphics/drawable/Drawable; @@ -15275,7 +15188,7 @@ HSPLandroid/transition/Transition$2;->onAnimationEnd(Landroid/animation/Animator HSPLandroid/transition/Transition$2;->onAnimationStart(Landroid/animation/Animator;)V HSPLandroid/transition/Transition$3;->onAnimationEnd(Landroid/animation/Animator;)V HSPLandroid/transition/Transition;->()V -HSPLandroid/transition/Transition;->(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;->(Landroid/content/Context;Landroid/util/AttributeSet;)V 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 @@ -15369,7 +15282,7 @@ HSPLandroid/util/ArrayMap;->(I)V HSPLandroid/util/ArrayMap;->(IZ)V HSPLandroid/util/ArrayMap;->(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;->append(Ljava/lang/Object;Ljava/lang/Object;)V HSPLandroid/util/ArrayMap;->binarySearchHashes([III)I HSPLandroid/util/ArrayMap;->clear()V HSPLandroid/util/ArrayMap;->containsKey(Ljava/lang/Object;)Z @@ -15378,18 +15291,18 @@ 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;->get(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/util/ArrayMap;->getCollection()Landroid/util/MapCollections; HSPLandroid/util/ArrayMap;->hashCode()I -HSPLandroid/util/ArrayMap;->indexOf(Ljava/lang/Object;I)I+]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;->indexOf(Ljava/lang/Object;I)I +HSPLandroid/util/ArrayMap;->indexOfKey(Ljava/lang/Object;)I HSPLandroid/util/ArrayMap;->indexOfNull()I HSPLandroid/util/ArrayMap;->indexOfValue(Ljava/lang/Object;)I HSPLandroid/util/ArrayMap;->isEmpty()Z HSPLandroid/util/ArrayMap;->keyAt(I)Ljava/lang/Object; -HSPLandroid/util/ArrayMap;->keySet()Ljava/util/Set;+]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;->keySet()Ljava/util/Set; +HSPLandroid/util/ArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; +HSPLandroid/util/ArrayMap;->putAll(Landroid/util/ArrayMap;)V HSPLandroid/util/ArrayMap;->putAll(Ljava/util/Map;)V HSPLandroid/util/ArrayMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/util/ArrayMap;->removeAt(I)Ljava/lang/Object; @@ -15410,11 +15323,11 @@ HSPLandroid/util/ArraySet;->(IZ)V HSPLandroid/util/ArraySet;->(Landroid/util/ArraySet;)V HSPLandroid/util/ArraySet;->(Ljava/util/Collection;)V HSPLandroid/util/ArraySet;->([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;->add(Ljava/lang/Object;)Z 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;->append(Ljava/lang/Object;)V HSPLandroid/util/ArraySet;->binarySearch([II)I HSPLandroid/util/ArraySet;->clear()V HSPLandroid/util/ArraySet;->contains(Ljava/lang/Object;)Z @@ -15454,7 +15367,7 @@ HSPLandroid/util/Base64$Encoder;->(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;->decode([BIII)[B HSPLandroid/util/Base64;->encode([BI)[B HSPLandroid/util/Base64;->encode([BIII)[B HSPLandroid/util/Base64;->encodeToString([BI)Ljava/lang/String; @@ -15472,7 +15385,7 @@ 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;->([B)V -HSPLandroid/util/EventLog$Event;->decodeObject()Ljava/lang/Object;+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; +HSPLandroid/util/EventLog$Event;->decodeObject()Ljava/lang/Object; HSPLandroid/util/EventLog$Event;->getData()Ljava/lang/Object; HSPLandroid/util/EventLog$Event;->getHeaderSize()I HSPLandroid/util/EventLog$Event;->getUid()I @@ -15557,9 +15470,9 @@ 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;->peek()Landroid/util/JsonScope; +HSPLandroid/util/JsonWriter;->replaceTop(Landroid/util/JsonScope;)V +HSPLandroid/util/JsonWriter;->string(Ljava/lang/String;)V HSPLandroid/util/JsonWriter;->value(J)Landroid/util/JsonWriter; HSPLandroid/util/JsonWriter;->value(Ljava/lang/String;)Landroid/util/JsonWriter; HSPLandroid/util/JsonWriter;->value(Z)Landroid/util/JsonWriter; @@ -15609,7 +15522,7 @@ 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(J)Ljava/lang/Object; HSPLandroid/util/LongSparseArray;->get(JLjava/lang/Object;)Ljava/lang/Object; HSPLandroid/util/LongSparseArray;->indexOfKey(J)I HSPLandroid/util/LongSparseArray;->keyAt(I)J @@ -15632,21 +15545,21 @@ HSPLandroid/util/LruCache;->(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;->get(Ljava/lang/Object;)Ljava/lang/Object; 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;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/util/LruCache;->remove(Ljava/lang/Object;)Ljava/lang/Object; HSPLandroid/util/LruCache;->resize(I)V HSPLandroid/util/LruCache;->safeSizeOf(Ljava/lang/Object;Ljava/lang/Object;)I HSPLandroid/util/LruCache;->size()I HSPLandroid/util/LruCache;->sizeOf(Ljava/lang/Object;Ljava/lang/Object;)I HSPLandroid/util/LruCache;->snapshot()Ljava/util/Map; -HSPLandroid/util/LruCache;->trimToSize(I)V+]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap;]Landroid/util/LruCache;Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache; -HSPLandroid/util/MapCollections$ArrayIterator;->(Landroid/util/MapCollections;I)V+]Landroid/util/MapCollections;Landroid/util/ArraySet$1;,Landroid/util/ArrayMap$1; +HSPLandroid/util/LruCache;->trimToSize(I)V +HSPLandroid/util/MapCollections$ArrayIterator;->(Landroid/util/MapCollections;I)V 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;->next()Ljava/lang/Object; HSPLandroid/util/MapCollections$ArrayIterator;->remove()V HSPLandroid/util/MapCollections$EntrySet;->(Landroid/util/MapCollections;)V HSPLandroid/util/MapCollections$EntrySet;->iterator()Ljava/util/Iterator; @@ -15764,14 +15677,14 @@ 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;->()V HSPLandroid/util/SparseArray;->(I)V -HSPLandroid/util/SparseArray;->append(ILjava/lang/Object;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray; +HSPLandroid/util/SparseArray;->append(ILjava/lang/Object;)V 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(I)Ljava/lang/Object; HSPLandroid/util/SparseArray;->get(ILjava/lang/Object;)Ljava/lang/Object; HSPLandroid/util/SparseArray;->indexOfKey(I)I HSPLandroid/util/SparseArray;->indexOfValue(Ljava/lang/Object;)I @@ -15808,7 +15721,7 @@ 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(I)I HSPLandroid/util/SparseIntArray;->get(II)I HSPLandroid/util/SparseIntArray;->indexOfKey(I)I HSPLandroid/util/SparseIntArray;->indexOfValue(I)I @@ -15949,14 +15862,12 @@ 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;->(Landroid/view/Choreographer;)V -HSPLandroid/view/Choreographer$CallbackQueue;->(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;->()V -HSPLandroid/view/Choreographer$CallbackRecord;->(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$CallbackRecord;->run(J)V +HSPLandroid/view/Choreographer$CallbackRecord;->run(Landroid/view/Choreographer$FrameData;)V HSPLandroid/view/Choreographer$FrameData;->-$$Nest$fgetmFrameTimeNanos(Landroid/view/Choreographer$FrameData;)J HSPLandroid/view/Choreographer$FrameData;->()V HSPLandroid/view/Choreographer$FrameData;->allocateFrameTimelines(I)V @@ -15964,13 +15875,13 @@ 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;->setInCallback(Z)V 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$VsyncEventData;)Landroid/view/Choreographer$FrameTimeline; HSPLandroid/view/Choreographer$FrameData;->update(JLandroid/view/DisplayEventReceiver;J)Landroid/view/Choreographer$FrameTimeline; HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;->(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$FrameDisplayEventReceiver;->onVsync(JJILandroid/view/DisplayEventReceiver$VsyncEventData;)V +HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;->run()V HSPLandroid/view/Choreographer$FrameHandler;->(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 @@ -15987,12 +15898,12 @@ HSPLandroid/view/Choreographer;->-$$Nest$sfputmMainInstance(Landroid/view/Choreo HSPLandroid/view/Choreographer;->(Landroid/os/Looper;I)V HSPLandroid/view/Choreographer;->(Landroid/os/Looper;IJ)V HSPLandroid/view/Choreographer;->(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;->doCallbacks(IJ)V +HSPLandroid/view/Choreographer;->doFrame(JILandroid/view/DisplayEventReceiver$VsyncEventData;)V 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;->getFrameTime()J HSPLandroid/view/Choreographer;->getFrameTimeNanos()J HSPLandroid/view/Choreographer;->getInstance()Landroid/view/Choreographer; HSPLandroid/view/Choreographer;->getMainThreadInstance()Landroid/view/Choreographer; @@ -16001,17 +15912,17 @@ 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;->postCallback(ILjava/lang/Runnable;Ljava/lang/Object;)V 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;->postCallbackDelayedInternal(ILjava/lang/Object;Ljava/lang/Object;J)V +HSPLandroid/view/Choreographer;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V HSPLandroid/view/Choreographer;->postFrameCallbackDelayed(Landroid/view/Choreographer$FrameCallback;J)V HSPLandroid/view/Choreographer;->recycleCallbackLocked(Landroid/view/Choreographer$CallbackRecord;)V 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;->scheduleVsyncLocked()V HSPLandroid/view/Choreographer;->setFPSDivisor(I)V HSPLandroid/view/ContextThemeWrapper;->()V HSPLandroid/view/ContextThemeWrapper;->(Landroid/content/Context;I)V @@ -16022,7 +15933,7 @@ HSPLandroid/view/ContextThemeWrapper;->getOverrideConfiguration()Landroid/conten 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;->getTheme()Landroid/content/res/Resources$Theme; HSPLandroid/view/ContextThemeWrapper;->initializeTheme()V HSPLandroid/view/ContextThemeWrapper;->onApplyThemeResource(Landroid/content/res/Resources$Theme;IZ)V HSPLandroid/view/ContextThemeWrapper;->setTheme(I)V @@ -16030,7 +15941,6 @@ HSPLandroid/view/CrossWindowBlurListeners;->()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;->(Landroid/os/Parcel;)V -HSPLandroid/view/Display$HdrCapabilities;->(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; @@ -16041,7 +15951,6 @@ HSPLandroid/view/Display$Mode;->(IIIF)V HSPLandroid/view/Display$Mode;->(IIIFF[F[I)V HSPLandroid/view/Display$Mode;->(IIIF[F[I)V HSPLandroid/view/Display$Mode;->(Landroid/os/Parcel;)V -HSPLandroid/view/Display$Mode;->(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 @@ -16061,7 +15970,7 @@ 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;->getLocalRotation()I HSPLandroid/view/Display;->getMetrics(Landroid/util/DisplayMetrics;)V HSPLandroid/view/Display;->getMode()Landroid/view/Display$Mode; HSPLandroid/view/Display;->getName()Ljava/lang/String; @@ -16083,11 +15992,10 @@ 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/Display;->updateDisplayInfoLocked()V HSPLandroid/view/DisplayAddress$Physical$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/DisplayAddress$Physical; HSPLandroid/view/DisplayAddress$Physical$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; HSPLandroid/view/DisplayAddress$Physical;->(J)V -HSPLandroid/view/DisplayAddress$Physical;->(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;->()V @@ -16102,7 +16010,6 @@ HSPLandroid/view/DisplayAdjustments;->setCompatibilityInfo(Landroid/content/res/ 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;->([Landroid/graphics/Rect;Z)V -HSPLandroid/view/DisplayCutout$Bounds;->([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 @@ -16135,17 +16042,17 @@ 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/DisplayCutout;->isEmpty()Z HSPLandroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;->()V HSPLandroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;->(JJJ)V HSPLandroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;->copyFrom(Landroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;)V HSPLandroid/view/DisplayEventReceiver$VsyncEventData;->()V HSPLandroid/view/DisplayEventReceiver$VsyncEventData;->([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;->copyFrom(Landroid/view/DisplayEventReceiver$VsyncEventData;)V HSPLandroid/view/DisplayEventReceiver$VsyncEventData;->preferredFrameTimeline()Landroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline; HSPLandroid/view/DisplayEventReceiver;->(Landroid/os/Looper;II)V HSPLandroid/view/DisplayEventReceiver;->(Landroid/os/Looper;IIJ)V -HSPLandroid/view/DisplayEventReceiver;->dispatchVsync(JJI)V+]Landroid/view/DisplayEventReceiver;Landroid/view/Choreographer$FrameDisplayEventReceiver; +HSPLandroid/view/DisplayEventReceiver;->dispatchVsync(JJI)V HSPLandroid/view/DisplayEventReceiver;->getLatestVsyncEventData()Landroid/view/DisplayEventReceiver$VsyncEventData; HSPLandroid/view/DisplayEventReceiver;->scheduleVsync()V HSPLandroid/view/DisplayInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/DisplayInfo; @@ -16154,14 +16061,14 @@ HSPLandroid/view/DisplayInfo;->()V HSPLandroid/view/DisplayInfo;->(Landroid/os/Parcel;)V HSPLandroid/view/DisplayInfo;->(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;->equals(Landroid/view/DisplayInfo;)Z 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;->getMetricsWithSize(Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;II)V HSPLandroid/view/DisplayInfo;->getMode()Landroid/view/Display$Mode; HSPLandroid/view/DisplayInfo;->getRefreshRate()F HSPLandroid/view/DisplayInfo;->hasAccess(I)Z @@ -16197,7 +16104,7 @@ HSPLandroid/view/FrameMetrics;->()V HSPLandroid/view/FrameMetrics;->getMetric(I)J HSPLandroid/view/FrameMetricsObserver;->(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/FrameMetricsObserver;->onFrameMetricsAvailable(I)V HSPLandroid/view/GestureDetector$GestureHandler;->(Landroid/view/GestureDetector;)V HSPLandroid/view/GestureDetector$GestureHandler;->(Landroid/view/GestureDetector;Landroid/os/Handler;)V HSPLandroid/view/GestureDetector$GestureHandler;->handleMessage(Landroid/os/Message;)V @@ -16231,7 +16138,7 @@ HSPLandroid/view/Gravity;->isVertical(I)Z HSPLandroid/view/HandlerActionQueue$HandlerAction;->(Ljava/lang/Runnable;J)V HSPLandroid/view/HandlerActionQueue$HandlerAction;->matches(Ljava/lang/Runnable;)Z HSPLandroid/view/HandlerActionQueue;->()V -HSPLandroid/view/HandlerActionQueue;->executeActions(Landroid/os/Handler;)V+]Landroid/os/Handler;Landroid/view/ViewRootImpl$ViewRootHandler; +HSPLandroid/view/HandlerActionQueue;->executeActions(Landroid/os/Handler;)V HSPLandroid/view/HandlerActionQueue;->post(Ljava/lang/Runnable;)V HSPLandroid/view/HandlerActionQueue;->postDelayed(Ljava/lang/Runnable;J)V HSPLandroid/view/HandlerActionQueue;->removeCallbacks(Ljava/lang/Runnable;)V @@ -16250,7 +16157,7 @@ HSPLandroid/view/HandwritingInitiator;->onInputConnectionClosed(Landroid/view/Vi 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/HdrRenderState;->updateForFrame(J)Z+]Landroid/view/HdrRenderState;Landroid/view/HdrRenderState; HSPLandroid/view/IGraphicsStats$Stub$Proxy;->(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; @@ -16283,8 +16190,7 @@ HSPLandroid/view/IWindowSession$Stub$Proxy;->finishDrawing(Landroid/view/IWindow 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;->relayoutAsync(Landroid/view/IWindow;Landroid/view/WindowManager$LayoutParams;IIIIII)V 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 @@ -16303,7 +16209,6 @@ HSPLandroid/view/ImeFocusController;->onTraversal(ZLandroid/view/WindowManager$L 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;->(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 @@ -16312,7 +16217,6 @@ 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;->()V @@ -16332,7 +16236,7 @@ HSPLandroid/view/InputDevice;->getSources()I HSPLandroid/view/InputDevice;->isVirtual()Z HSPLandroid/view/InputEvent;->()V HSPLandroid/view/InputEvent;->getSequenceNumber()I -HSPLandroid/view/InputEvent;->isFromSource(I)Z+]Landroid/view/InputEvent;Landroid/view/MotionEvent; +HSPLandroid/view/InputEvent;->isFromSource(I)Z HSPLandroid/view/InputEvent;->prepareForReuse()V HSPLandroid/view/InputEvent;->recycle()V HSPLandroid/view/InputEvent;->recycleIfNeededAfterDispatch()V @@ -16362,7 +16266,6 @@ HSPLandroid/view/InputMonitor$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lan HSPLandroid/view/InputMonitor;->(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;->(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 @@ -16394,7 +16297,6 @@ HSPLandroid/view/InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda1;-> HSPLandroid/view/InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda0;->run()V HSPLandroid/view/InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda1;->run()V HSPLandroid/view/InsetsAnimationThreadControlRunner$1;->(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 @@ -16409,7 +16311,6 @@ HSPLandroid/view/InsetsAnimationThreadControlRunner;->getTypes()I HSPLandroid/view/InsetsAnimationThreadControlRunner;->notifyControlRevoked(I)V HSPLandroid/view/InsetsAnimationThreadControlRunner;->updateSurfacePosition(Landroid/util/SparseArray;)V HSPLandroid/view/InsetsController$$ExternalSyntheticLambda10;->(Landroid/view/InsetsController;)V -HSPLandroid/view/InsetsController$$ExternalSyntheticLambda7;->()V HSPLandroid/view/InsetsController$$ExternalSyntheticLambda9;->(Landroid/view/InsetsController;)V HSPLandroid/view/InsetsController$1;->(Landroid/view/InsetsController;)V HSPLandroid/view/InsetsController$2;->(Landroid/view/InsetsController;)V @@ -16420,14 +16321,8 @@ HSPLandroid/view/InsetsController$3;->onStart(Landroid/view/InsetsState;Landroid 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;->(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 @@ -16449,9 +16344,6 @@ HSPLandroid/view/InsetsController;->calculateVisibleInsets(IIII)Landroid/graphic 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; @@ -16468,12 +16360,11 @@ HSPLandroid/view/InsetsController;->notifyControlRevoked(Landroid/view/InsetsSou 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;->onFrameChanged(Landroid/graphics/Rect;)V 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 @@ -16485,7 +16376,7 @@ HSPLandroid/view/InsetsSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lan HSPLandroid/view/InsetsSource;->(II)V HSPLandroid/view/InsetsSource;->(Landroid/os/Parcel;)V HSPLandroid/view/InsetsSource;->(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;Landroid/graphics/Rect;Z)Landroid/graphics/Insets; 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 @@ -16500,9 +16391,7 @@ 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;->(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 @@ -16511,7 +16400,6 @@ 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; @@ -16543,8 +16431,8 @@ HSPLandroid/view/InsetsState;->()V HSPLandroid/view/InsetsState;->(Landroid/os/Parcel;)V HSPLandroid/view/InsetsState;->(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;II)Landroid/graphics/Insets; +HSPLandroid/view/InsetsState;->calculateInsets(Landroid/graphics/Rect;IZ)Landroid/graphics/Insets; 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; @@ -16556,8 +16444,8 @@ HSPLandroid/view/InsetsState;->canControlSource(Landroid/graphics/Rect;Landroid/ 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;->getDisplayCutout()Landroid/view/DisplayCutout; +HSPLandroid/view/InsetsState;->getDisplayCutoutSafe(Landroid/graphics/Rect;)V HSPLandroid/view/InsetsState;->getDisplayFrame()Landroid/graphics/Rect; HSPLandroid/view/InsetsState;->getDisplayShape()Landroid/view/DisplayShape; HSPLandroid/view/InsetsState;->getPrivacyIndicatorBounds()Landroid/view/PrivacyIndicatorBounds; @@ -16639,8 +16527,8 @@ HSPLandroid/view/LayoutInflater;->inflate(Lorg/xmlpull/v1/XmlPullParser;Landroid 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;->parseInclude(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/Context;Landroid/view/View;Landroid/util/AttributeSet;)V +HSPLandroid/view/LayoutInflater;->rInflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/content/Context;Landroid/util/AttributeSet;Z)V 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 @@ -16687,7 +16575,7 @@ 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;->isTargetAccessibilityFocus()Z HSPLandroid/view/MotionEvent;->isTouchEvent()Z HSPLandroid/view/MotionEvent;->obtain()Landroid/view/MotionEvent; HSPLandroid/view/MotionEvent;->obtain(JJIFFFFIFFII)Landroid/view/MotionEvent; @@ -16698,7 +16586,7 @@ 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;->setTargetAccessibilityFocus(Z)V HSPLandroid/view/MotionEvent;->split(I)Landroid/view/MotionEvent; HSPLandroid/view/MotionEvent;->transform(Landroid/graphics/Matrix;)V HSPLandroid/view/MotionEvent;->updateCursorPosition()V @@ -16802,7 +16690,7 @@ HSPLandroid/view/SurfaceControl$Builder;->setOpaque(Z)Landroid/view/SurfaceContr HSPLandroid/view/SurfaceControl$Builder;->setParent(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Builder; HSPLandroid/view/SurfaceControl$Builder;->unsetBufferSize()V HSPLandroid/view/SurfaceControl$Transaction;->()V -HSPLandroid/view/SurfaceControl$Transaction;->(J)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; +HSPLandroid/view/SurfaceControl$Transaction;->(J)V HSPLandroid/view/SurfaceControl$Transaction;->apply()V HSPLandroid/view/SurfaceControl$Transaction;->apply(Z)V HSPLandroid/view/SurfaceControl$Transaction;->applyResizedSurfaces()V @@ -16810,7 +16698,7 @@ HSPLandroid/view/SurfaceControl$Transaction;->checkPreconditions(Landroid/view/S 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;->merge(Landroid/view/SurfaceControl$Transaction;)Landroid/view/SurfaceControl$Transaction; 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; @@ -16820,7 +16708,7 @@ HSPLandroid/view/SurfaceControl$Transaction;->setBufferSize(Landroid/view/Surfac 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;->setExtendedRangeBrightness(Landroid/view/SurfaceControl;FF)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; @@ -16853,7 +16741,6 @@ HSPLandroid/view/SurfaceControl;->release()V HSPLandroid/view/SurfaceControl;->rotationToBufferTransform(I)I HSPLandroid/view/SurfaceControl;->setTransformHint(I)V HSPLandroid/view/SurfaceControlRegistry$DefaultReporter;->()V -HSPLandroid/view/SurfaceControlRegistry$DefaultReporter;->(Landroid/view/SurfaceControlRegistry$DefaultReporter-IA;)V HSPLandroid/view/SurfaceControlRegistry;->()V HSPLandroid/view/SurfaceControlRegistry;->getProcessInstance()Landroid/view/SurfaceControlRegistry; HSPLandroid/view/SurfaceSession;->()V @@ -16888,7 +16775,6 @@ 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 @@ -16929,12 +16815,11 @@ HSPLandroid/view/TextureView;->updateLayer()V HSPLandroid/view/ThreadedRenderer$1$$ExternalSyntheticLambda0;->(Ljava/util/ArrayList;)V HSPLandroid/view/ThreadedRenderer$1$$ExternalSyntheticLambda0;->onFrameCommit(Z)V HSPLandroid/view/ThreadedRenderer$1;->(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$1;->lambda$onFrameDraw$0(Ljava/util/ArrayList;Z)V +HSPLandroid/view/ThreadedRenderer$1;->onFrameDraw(IJ)Landroid/graphics/HardwareRenderer$FrameCommitCallback; HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;->-$$Nest$fgetmSurfaceControl(Landroid/view/ThreadedRenderer$WebViewOverlayProvider;)Landroid/view/SurfaceControl; HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;->()V HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;->()V -HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;->(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 @@ -16945,7 +16830,7 @@ HSPLandroid/view/ThreadedRenderer;->create(Landroid/content/Context;ZLjava/lang/ 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;->draw(Landroid/view/View;Landroid/view/View$AttachInfo;Landroid/view/ThreadedRenderer$DrawCallbacks;)V HSPLandroid/view/ThreadedRenderer;->dumpArgsToFlags([Ljava/lang/String;)I HSPLandroid/view/ThreadedRenderer;->getHeight()I HSPLandroid/view/ThreadedRenderer;->getWidth()I @@ -16956,20 +16841,20 @@ 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;->registerRtFrameCallback(Landroid/graphics/HardwareRenderer$FrameDrawingCallback;)V 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;->setSurfaceControl(Landroid/view/SurfaceControl;Landroid/graphics/BLASTBufferQueue;)V 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;->updateRootDisplayList(Landroid/view/View;Landroid/view/ThreadedRenderer$DrawCallbacks;)V HSPLandroid/view/ThreadedRenderer;->updateSurface(Landroid/view/Surface;)V -HSPLandroid/view/ThreadedRenderer;->updateViewTreeDisplayList(Landroid/view/View;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView; -HSPLandroid/view/ThreadedRenderer;->updateWebViewOverlayCallbacks()V+]Landroid/view/ThreadedRenderer$WebViewOverlayProvider;Landroid/view/ThreadedRenderer$WebViewOverlayProvider; +HSPLandroid/view/ThreadedRenderer;->updateViewTreeDisplayList(Landroid/view/View;)V +HSPLandroid/view/ThreadedRenderer;->updateWebViewOverlayCallbacks()V HSPLandroid/view/TouchDelegate;->(Landroid/graphics/Rect;Landroid/view/View;)V HSPLandroid/view/VelocityTracker;->(I)V HSPLandroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V @@ -16991,7 +16876,7 @@ 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$12;->setValue(Ljava/lang/Object;F)V 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 @@ -17045,15 +16930,15 @@ HSPLandroid/view/View$MeasureSpec;->makeMeasureSpec(II)I HSPLandroid/view/View$MeasureSpec;->makeSafeMeasureSpec(II)I HSPLandroid/view/View$PerformClick;->run()V HSPLandroid/view/View$ScrollabilityCache;->(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$ScrollabilityCache;->run()V HSPLandroid/view/View$TintInfo;->()V HSPLandroid/view/View$TransformationInfo;->()V HSPLandroid/view/View$UnsetPressedState;->run()V HSPLandroid/view/View$VisibilityChangeForAutofillHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/view/View;->(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;->(Landroid/content/Context;)V HSPLandroid/view/View;->(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/view/View;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/view/View;->(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;->(Landroid/content/Context;Landroid/util/AttributeSet;II)V 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 @@ -17069,7 +16954,7 @@ HSPLandroid/view/View;->applyLegacyAnimation(Landroid/view/ViewGroup;JLandroid/v 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;->awakenScrollBars(IZ)Z HSPLandroid/view/View;->bringToFront()V HSPLandroid/view/View;->buildDrawingCache(Z)V HSPLandroid/view/View;->buildDrawingCacheImpl(Z)V @@ -17079,8 +16964,8 @@ 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;->canResolveLayoutDirection()Z +HSPLandroid/view/View;->canResolveTextDirection()Z HSPLandroid/view/View;->canScrollHorizontally(I)Z HSPLandroid/view/View;->canScrollVertically(I)Z HSPLandroid/view/View;->canTakeFocus()Z @@ -17110,18 +16995,18 @@ 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;->computeVerticalScrollExtent()I HSPLandroid/view/View;->computeVerticalScrollOffset()I -HSPLandroid/view/View;->computeVerticalScrollRange()I+]Landroid/view/View;missing_types +HSPLandroid/view/View;->computeVerticalScrollRange()I 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;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V HSPLandroid/view/View;->dispatchCancelPendingInputEvents()V -HSPLandroid/view/View;->dispatchCollectViewAttributes(Landroid/view/View$AttachInfo;I)V+]Landroid/view/View;missing_types +HSPLandroid/view/View;->dispatchCollectViewAttributes(Landroid/view/View$AttachInfo;I)V 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;->dispatchDetachedFromWindow()V HSPLandroid/view/View;->dispatchDraw(Landroid/graphics/Canvas;)V HSPLandroid/view/View;->dispatchDrawableHotspotChanged(FF)V HSPLandroid/view/View;->dispatchFinishTemporaryDetach()V @@ -17145,20 +17030,20 @@ 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;->dispatchVisibilityAggregated(Z)Z 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;->draw(Landroid/graphics/Canvas;)V +HSPLandroid/view/View;->draw(Landroid/graphics/Canvas;Landroid/view/ViewGroup;J)Z +HSPLandroid/view/View;->drawAutofilledHighlight(Landroid/graphics/Canvas;)V +HSPLandroid/view/View;->drawBackground(Landroid/graphics/Canvas;)V HSPLandroid/view/View;->drawDefaultFocusHighlight(Landroid/graphics/Canvas;)V HSPLandroid/view/View;->drawableHotspotChanged(FF)V -HSPLandroid/view/View;->drawableStateChanged()V+]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;->drawableStateChanged()V +HSPLandroid/view/View;->drawsWithRenderNode(Landroid/graphics/Canvas;)Z HSPLandroid/view/View;->ensureTransformationInfo()V HSPLandroid/view/View;->findAccessibilityFocusHost(Z)Landroid/view/View; HSPLandroid/view/View;->findFocus()Landroid/view/View; @@ -17202,8 +17087,8 @@ 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;->getDrawableRenderNode(Landroid/graphics/drawable/Drawable;Landroid/graphics/RenderNode;)Landroid/graphics/RenderNode; +HSPLandroid/view/View;->getDrawableState()[I HSPLandroid/view/View;->getDrawingCache(Z)Landroid/graphics/Bitmap; HSPLandroid/view/View;->getDrawingRect(Landroid/graphics/Rect;)V HSPLandroid/view/View;->getDrawingTime()J @@ -17219,7 +17104,7 @@ 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;->getHasOverlappingRendering()Z HSPLandroid/view/View;->getHeight()I HSPLandroid/view/View;->getHitRect(Landroid/graphics/Rect;)V HSPLandroid/view/View;->getHorizontalFadingEdgeLength()I @@ -17232,16 +17117,16 @@ 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;->getLayoutDirection()I HSPLandroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; HSPLandroid/view/View;->getLeft()I HSPLandroid/view/View;->getListenerInfo()Landroid/view/View$ListenerInfo; HSPLandroid/view/View;->getLocalVisibleRect(Landroid/graphics/Rect;)Z HSPLandroid/view/View;->getLocationInSurface([I)V -HSPLandroid/view/View;->getLocationInWindow([I)V+]Landroid/view/View;missing_types +HSPLandroid/view/View;->getLocationInWindow([I)V 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;->getLocationOnScreen([I)V +HSPLandroid/view/View;->getMatrix()Landroid/graphics/Matrix; HSPLandroid/view/View;->getMeasuredHeight()I HSPLandroid/view/View;->getMeasuredState()I HSPLandroid/view/View;->getMeasuredWidth()I @@ -17273,15 +17158,15 @@ 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;->getScaleX()F +HSPLandroid/view/View;->getScaleY()F 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;->getStraightVerticalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V +HSPLandroid/view/View;->getSuggestedMinimumHeight()I +HSPLandroid/view/View;->getSuggestedMinimumWidth()I HSPLandroid/view/View;->getSystemGestureExclusionRects()Ljava/util/List; HSPLandroid/view/View;->getSystemUiVisibility()I HSPLandroid/view/View;->getTag()Ljava/lang/Object; @@ -17293,10 +17178,10 @@ 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;->getTranslationY()F HSPLandroid/view/View;->getTranslationZ()F HSPLandroid/view/View;->getVerticalFadingEdgeLength()I -HSPLandroid/view/View;->getVerticalScrollbarWidth()I+]Landroid/widget/ScrollBarDrawable;Landroid/widget/ScrollBarDrawable; +HSPLandroid/view/View;->getVerticalScrollbarWidth()I HSPLandroid/view/View;->getViewRootImpl()Landroid/view/ViewRootImpl; HSPLandroid/view/View;->getViewTranslationCallback()Landroid/view/translation/ViewTranslationCallback; HSPLandroid/view/View;->getViewTreeObserver()Landroid/view/ViewTreeObserver; @@ -17304,7 +17189,7 @@ 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;->getWindowInsetsController()Landroid/view/WindowInsetsController; HSPLandroid/view/View;->getWindowSystemUiVisibility()I HSPLandroid/view/View;->getWindowToken()Landroid/os/IBinder; HSPLandroid/view/View;->getWindowVisibility()I @@ -17320,7 +17205,7 @@ 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;->hasIdentityMatrix()Z HSPLandroid/view/View;->hasImeFocus()Z HSPLandroid/view/View;->hasListenersForAccessibility()Z HSPLandroid/view/View;->hasNestedScrollingParent()Z @@ -17339,17 +17224,17 @@ 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;->initialAwakenScrollBars()Z 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;->invalidate()V +HSPLandroid/view/View;->invalidate(IIII)V +HSPLandroid/view/View;->invalidate(Landroid/graphics/Rect;)V +HSPLandroid/view/View;->invalidate(Z)V +HSPLandroid/view/View;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V +HSPLandroid/view/View;->invalidateInternal(IIIIZZ)V HSPLandroid/view/View;->invalidateOutline()V HSPLandroid/view/View;->invalidateParentCaches()V HSPLandroid/view/View;->invalidateParentIfNeeded()V @@ -17363,7 +17248,7 @@ 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;->isAutofillable()Z HSPLandroid/view/View;->isAutofilled()Z HSPLandroid/view/View;->isClickable()Z HSPLandroid/view/View;->isContextClickable()Z @@ -17381,7 +17266,7 @@ 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;->isImportantForAutofill()Z HSPLandroid/view/View;->isImportantForContentCapture()Z HSPLandroid/view/View;->isInEditMode()Z HSPLandroid/view/View;->isInLayout()Z @@ -17391,10 +17276,10 @@ 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;->isLayoutModeOptical(Ljava/lang/Object;)Z HSPLandroid/view/View;->isLayoutRequested()Z HSPLandroid/view/View;->isLayoutRtl()Z -HSPLandroid/view/View;->isLayoutValid()Z+]Landroid/view/View;missing_types +HSPLandroid/view/View;->isLayoutValid()Z HSPLandroid/view/View;->isLongClickable()Z HSPLandroid/view/View;->isNestedScrollingEnabled()Z HSPLandroid/view/View;->isOpaque()Z @@ -17419,12 +17304,12 @@ 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;->layout(IIII)V HSPLandroid/view/View;->makeFrameworkOptionalFitsSystemWindows()V HSPLandroid/view/View;->makeOptionalFitsSystemWindows()V HSPLandroid/view/View;->mapRectFromViewToScreenCoords(Landroid/graphics/RectF;Z)V HSPLandroid/view/View;->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;->measure(II)V HSPLandroid/view/View;->mergeDrawableStates([I[I)[I HSPLandroid/view/View;->needGlobalAttributesUpdate(Z)V HSPLandroid/view/View;->needRtlPropertiesResolution()Z @@ -17441,21 +17326,21 @@ 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;->onAttachedToWindow()V 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;->onCreateDrawableState(I)[I HSPLandroid/view/View;->onCreateInputConnection(Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection; HSPLandroid/view/View;->onDetachedFromWindow()V -HSPLandroid/view/View;->onDetachedFromWindowInternal()V+]Landroid/view/accessibility/AccessibilityNodeIdManager;Landroid/view/accessibility/AccessibilityNodeIdManager;]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; +HSPLandroid/view/View;->onDetachedFromWindowInternal()V HSPLandroid/view/View;->onDraw(Landroid/graphics/Canvas;)V -HSPLandroid/view/View;->onDrawForeground(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types +HSPLandroid/view/View;->onDrawForeground(Landroid/graphics/Canvas;)V 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;->onDrawScrollBars(Landroid/graphics/Canvas;)V HSPLandroid/view/View;->onDrawScrollIndicators(Landroid/graphics/Canvas;)V -HSPLandroid/view/View;->onDrawVerticalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V+]Landroid/graphics/drawable/Drawable;Landroid/widget/ScrollBarDrawable; +HSPLandroid/view/View;->onDrawVerticalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V HSPLandroid/view/View;->onFilterTouchEventForSecurity(Landroid/view/MotionEvent;)Z HSPLandroid/view/View;->onFinishInflate()V HSPLandroid/view/View;->onFinishTemporaryDetach()V @@ -17465,7 +17350,7 @@ 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;->onMeasure(II)V 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 @@ -17480,7 +17365,7 @@ 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;->onVisibilityAggregated(Z)V HSPLandroid/view/View;->onVisibilityChanged(Landroid/view/View;I)V HSPLandroid/view/View;->onWindowFocusChanged(Z)V HSPLandroid/view/View;->onWindowSystemUiVisibilityChanged(I)V @@ -17501,12 +17386,12 @@ 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;->postInvalidateOnAnimation()V HSPLandroid/view/View;->postOnAnimation(Ljava/lang/Runnable;)V HSPLandroid/view/View;->postOnAnimationDelayed(Ljava/lang/Runnable;J)V HSPLandroid/view/View;->postSendViewScrolledAccessibilityEventCallback(II)V HSPLandroid/view/View;->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;->rebuildOutline()V HSPLandroid/view/View;->recomputePadding()V HSPLandroid/view/View;->refreshDrawableState()V HSPLandroid/view/View;->registerPendingFrameMetricsObservers()V @@ -17524,7 +17409,7 @@ 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;->requestLayout()V 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; @@ -17541,9 +17426,9 @@ 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;->resolveLayoutParams()V +HSPLandroid/view/View;->resolvePadding()V +HSPLandroid/view/View;->resolveRtlPropertiesIfNeeded()Z HSPLandroid/view/View;->resolveSize(II)I HSPLandroid/view/View;->resolveSizeAndState(III)I HSPLandroid/view/View;->resolveTextAlignment()Z @@ -17574,10 +17459,10 @@ 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;->setBackgroundBounds()V 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;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V +HSPLandroid/view/View;->setBackgroundRenderNodeProperties(Landroid/graphics/RenderNode;)V HSPLandroid/view/View;->setBackgroundResource(I)V HSPLandroid/view/View;->setBackgroundTintList(Landroid/content/res/ColorStateList;)V HSPLandroid/view/View;->setBottom(I)V @@ -17587,18 +17472,18 @@ 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;->setDisplayListProperties(Landroid/graphics/RenderNode;)V HSPLandroid/view/View;->setDrawingCacheEnabled(Z)V HSPLandroid/view/View;->setElevation(F)V HSPLandroid/view/View;->setEnabled(Z)V HSPLandroid/view/View;->setFitsSystemWindows(Z)V -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;->setFlags(II)V 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;->setFrame(IIII)Z HSPLandroid/view/View;->setHandwritingArea(Landroid/graphics/Rect;)V HSPLandroid/view/View;->setHapticFeedbackEnabled(Z)V HSPLandroid/view/View;->setHasTransientState(Z)V @@ -17615,7 +17500,7 @@ 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;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V HSPLandroid/view/View;->setLeft(I)V HSPLandroid/view/View;->setLeftTopRightBottom(IIII)V HSPLandroid/view/View;->setLongClickable(Z)V @@ -17653,8 +17538,8 @@ 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;->setScaleX(F)V +HSPLandroid/view/View;->setScaleY(F)V HSPLandroid/view/View;->setScrollContainer(Z)V HSPLandroid/view/View;->setScrollIndicators(II)V HSPLandroid/view/View;->setScrollX(I)V @@ -17677,25 +17562,25 @@ 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;->setTranslationZ(F)V 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;->shouldDrawRoundScrollbar()Z HSPLandroid/view/View;->sizeChange(IIII)V -HSPLandroid/view/View;->skipInvalidate()Z+]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/View;->skipInvalidate()Z HSPLandroid/view/View;->startAnimation(Landroid/view/animation/Animation;)V HSPLandroid/view/View;->startNestedScroll(I)Z HSPLandroid/view/View;->stopNestedScroll()V HSPLandroid/view/View;->switchDefaultFocusHighlight()V HSPLandroid/view/View;->toString()Ljava/lang/String; -HSPLandroid/view/View;->transformFromViewToWindowSpace([I)V+]Landroid/view/View;missing_types +HSPLandroid/view/View;->transformFromViewToWindowSpace([I)V 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;->updateDisplayListIfDirty()Landroid/graphics/RenderNode; HSPLandroid/view/View;->updateFocusedInCluster(Landroid/view/View;I)V HSPLandroid/view/View;->updateHandwritingArea()V HSPLandroid/view/View;->updateKeepClearRects()V @@ -17708,7 +17593,6 @@ HSPLandroid/view/View;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z HSPLandroid/view/View;->willNotDraw()Z HSPLandroid/view/ViewAnimationHostBridge;->(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;->(Landroid/content/Context;)V HSPLandroid/view/ViewConfiguration;->get(Landroid/content/Context;)Landroid/view/ViewConfiguration; @@ -17760,7 +17644,7 @@ HSPLandroid/view/ViewGroup$LayoutParams;->(Landroid/view/ViewGroup$LayoutP HSPLandroid/view/ViewGroup$LayoutParams;->resolveLayoutDirection(I)V HSPLandroid/view/ViewGroup$LayoutParams;->setBaseAttributes(Landroid/content/res/TypedArray;II)V HSPLandroid/view/ViewGroup$MarginLayoutParams;->(II)V -HSPLandroid/view/ViewGroup$MarginLayoutParams;->(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;->(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/view/ViewGroup$MarginLayoutParams;->(Landroid/view/ViewGroup$LayoutParams;)V HSPLandroid/view/ViewGroup$MarginLayoutParams;->(Landroid/view/ViewGroup$MarginLayoutParams;)V HSPLandroid/view/ViewGroup$MarginLayoutParams;->doResolveMargins()V @@ -17768,7 +17652,7 @@ 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;->resolveLayoutDirection(I)V HSPLandroid/view/ViewGroup$MarginLayoutParams;->setLayoutDirection(I)V HSPLandroid/view/ViewGroup$MarginLayoutParams;->setMarginEnd(I)V HSPLandroid/view/ViewGroup$MarginLayoutParams;->setMarginStart(I)V @@ -17790,7 +17674,7 @@ HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;ILandroid/view/ViewGroup 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;->addViewInner(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;Z)V HSPLandroid/view/ViewGroup;->attachViewToParent(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V HSPLandroid/view/ViewGroup;->bringChildToFront(Landroid/view/View;)V HSPLandroid/view/ViewGroup;->buildOrderedChildList()Ljava/util/ArrayList; @@ -17814,14 +17698,14 @@ 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;->dispatchCollectViewAttributes(Landroid/view/View$AttachInfo;I)V 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;->dispatchDraw(Landroid/graphics/Canvas;)V HSPLandroid/view/ViewGroup;->dispatchDrawableHotspotChanged(FF)V HSPLandroid/view/ViewGroup;->dispatchFinishTemporaryDetach()V HSPLandroid/view/ViewGroup;->dispatchFreezeSelfOnly(Landroid/util/SparseArray;)V -HSPLandroid/view/ViewGroup;->dispatchGetDisplayList()V+]Landroid/view/View;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLandroid/view/ViewGroup;->dispatchGetDisplayList()V 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 @@ -17835,18 +17719,18 @@ 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;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z +HSPLandroid/view/ViewGroup;->dispatchTransformedTouchEvent(Landroid/view/MotionEvent;ZLandroid/view/View;I)Z HSPLandroid/view/ViewGroup;->dispatchUnhandledKeyEvent(Landroid/view/KeyEvent;)Landroid/view/View; 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;->dispatchVisibilityAggregated(Z)Z 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;->drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z HSPLandroid/view/ViewGroup;->drawableStateChanged()V HSPLandroid/view/ViewGroup;->endViewTransition(Landroid/view/View;)V HSPLandroid/view/ViewGroup;->exitHoverTargets()V @@ -17865,13 +17749,13 @@ HSPLandroid/view/ViewGroup;->generateDefaultLayoutParams()Landroid/view/ViewGrou 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;->getAndVerifyPreorderedView(Ljava/util/ArrayList;[Landroid/view/View;I)Landroid/view/View; HSPLandroid/view/ViewGroup;->getChildAt(I)Landroid/view/View; HSPLandroid/view/ViewGroup;->getChildCount()I HSPLandroid/view/ViewGroup;->getChildMeasureSpec(III)I HSPLandroid/view/ViewGroup;->getChildTransformation()Landroid/view/animation/Transformation; HSPLandroid/view/ViewGroup;->getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;)Z -HSPLandroid/view/ViewGroup;->getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;Z)Z+]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;->getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;Z)Z HSPLandroid/view/ViewGroup;->getChildrenForAutofill(I)Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture; HSPLandroid/view/ViewGroup;->getChildrenForContentCapture()Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture; HSPLandroid/view/ViewGroup;->getClipChildren()Z @@ -17900,7 +17784,7 @@ 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;->invalidateChild(Landroid/view/View;Landroid/graphics/Rect;)V HSPLandroid/view/ViewGroup;->invalidateChildInParent([ILandroid/graphics/Rect;)Landroid/view/ViewParent; HSPLandroid/view/ViewGroup;->isChildrenDrawingOrderEnabled()Z HSPLandroid/view/ViewGroup;->isLayoutModeOptical()Z @@ -17912,7 +17796,7 @@ 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;->measureChildWithMargins(Landroid/view/View;IIII)V HSPLandroid/view/ViewGroup;->measureChildren(II)V HSPLandroid/view/ViewGroup;->newDispatchApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets; HSPLandroid/view/ViewGroup;->notifySubtreeAccessibilityStateChangedIfNeeded()V @@ -17921,10 +17805,10 @@ HSPLandroid/view/ViewGroup;->offsetRectBetweenParentAndChild(Landroid/view/View; 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;->onDescendantInvalidated(Landroid/view/View;Landroid/view/View;)V 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;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z 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 @@ -17933,7 +17817,7 @@ 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;->recreateChildDisplayList(Landroid/view/View;)V HSPLandroid/view/ViewGroup;->removeAllViews()V HSPLandroid/view/ViewGroup;->removeAllViewsInLayout()V HSPLandroid/view/ViewGroup;->removeDetachedView(Landroid/view/View;Z)V @@ -17947,7 +17831,7 @@ HSPLandroid/view/ViewGroup;->removeViewInternal(ILandroid/view/View;)V HSPLandroid/view/ViewGroup;->removeViewInternal(Landroid/view/View;)Z HSPLandroid/view/ViewGroup;->requestChildFocus(Landroid/view/View;Landroid/view/View;)V HSPLandroid/view/ViewGroup;->requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z -HSPLandroid/view/ViewGroup;->requestDisallowInterceptTouchEvent(Z)V+]Landroid/view/ViewParent;missing_types +HSPLandroid/view/ViewGroup;->requestDisallowInterceptTouchEvent(Z)V HSPLandroid/view/ViewGroup;->requestFocus(ILandroid/graphics/Rect;)Z HSPLandroid/view/ViewGroup;->requestTransitionStart(Landroid/animation/LayoutTransition;)V HSPLandroid/view/ViewGroup;->requestTransparentRegion(Landroid/view/View;)V @@ -17961,9 +17845,9 @@ 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;->resolveLayoutParams()V HSPLandroid/view/ViewGroup;->resolvePadding()V -HSPLandroid/view/ViewGroup;->resolveRtlPropertiesIfNeeded()Z+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types +HSPLandroid/view/ViewGroup;->resolveRtlPropertiesIfNeeded()Z HSPLandroid/view/ViewGroup;->resolveTextAlignment()Z HSPLandroid/view/ViewGroup;->resolveTextDirection()Z HSPLandroid/view/ViewGroup;->restoreDefaultFocus()Z @@ -17989,7 +17873,7 @@ 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$1;->getOutline(Landroid/view/View;Landroid/graphics/Outline;)V HSPLandroid/view/ViewOutlineProvider$2;->getOutline(Landroid/view/View;Landroid/graphics/Outline;)V HSPLandroid/view/ViewOutlineProvider;->()V HSPLandroid/view/ViewOverlay$OverlayViewGroup;->(Landroid/content/Context;Landroid/view/View;)V @@ -18015,7 +17899,7 @@ HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->(Landroid/vi 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$AnimatorEventListener;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V HSPLandroid/view/ViewPropertyAnimator$NameValuesHolder;->(IFF)V HSPLandroid/view/ViewPropertyAnimator$PropertyBundle;->(ILjava/util/ArrayList;)V HSPLandroid/view/ViewPropertyAnimator$PropertyBundle;->cancel(I)Z @@ -18039,7 +17923,6 @@ HSPLandroid/view/ViewPropertyAnimator;->translationY(F)Landroid/view/ViewPropert 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;->(Landroid/view/ViewRootImpl;)V HSPLandroid/view/ViewRootImpl$$ExternalSyntheticLambda3;->run()V HSPLandroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager;->(Landroid/view/ViewRootImpl;)V @@ -18062,7 +17945,7 @@ HSPLandroid/view/ViewRootImpl$ImeInputStage;->(Landroid/view/ViewRootImpl; HSPLandroid/view/ViewRootImpl$ImeInputStage;->onFinishedInputEvent(Ljava/lang/Object;Z)V HSPLandroid/view/ViewRootImpl$ImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I HSPLandroid/view/ViewRootImpl$InputMetricsListener;->(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$InputMetricsListener;->onFrameMetricsAvailable(I)V+]Landroid/view/ViewRootImpl$WindowInputEventReceiver;Landroid/view/ViewRootImpl$WindowInputEventReceiver; +HSPLandroid/view/ViewRootImpl$InputMetricsListener;->onFrameMetricsAvailable(I)V HSPLandroid/view/ViewRootImpl$InputStage;->(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 @@ -18074,10 +17957,10 @@ 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;->(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;->addView(Landroid/view/View;)V +HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->postIfNeededLocked()V 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$InvalidateOnAnimationRunnable;->run()V HSPLandroid/view/ViewRootImpl$NativePostImeInputStage;->(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;->(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V @@ -18095,15 +17978,13 @@ HSPLandroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;->reset HSPLandroid/view/ViewRootImpl$SyntheticJoystickHandler;->(Landroid/view/ViewRootImpl;)V HSPLandroid/view/ViewRootImpl$SyntheticJoystickHandler;->cancel()V HSPLandroid/view/ViewRootImpl$SyntheticKeyboardHandler;->(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$SyntheticTouchNavigationHandler$1;->(Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;)V HSPLandroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->(Landroid/view/ViewRootImpl;)V HSPLandroid/view/ViewRootImpl$SyntheticTrackballHandler;->(Landroid/view/ViewRootImpl;)V HSPLandroid/view/ViewRootImpl$SystemUiVisibilityInfo;->()V HSPLandroid/view/ViewRootImpl$TrackballAxis;->()V HSPLandroid/view/ViewRootImpl$TraversalRunnable;->(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$TraversalRunnable;->run()V+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; +HSPLandroid/view/ViewRootImpl$TraversalRunnable;->run()V HSPLandroid/view/ViewRootImpl$UnhandledKeyManager;->()V -HSPLandroid/view/ViewRootImpl$UnhandledKeyManager;->(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 @@ -18124,7 +18005,6 @@ HSPLandroid/view/ViewRootImpl$W;->(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;->(Landroid/view/ViewRootImpl;Landroid/view/InputChannel;Landroid/os/Looper;)V HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->dispose()V @@ -18133,17 +18013,15 @@ 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;->(Landroid/content/Context;Landroid/view/Display;)V HSPLandroid/view/ViewRootImpl;->(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;->addFrameCommitCallbackIfNeeded()V 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;->applyTransactionOnDraw(Landroid/view/SurfaceControl$Transaction;)Z HSPLandroid/view/ViewRootImpl;->canResolveTextDirection()Z HSPLandroid/view/ViewRootImpl;->cancelInvalidate(Landroid/view/View;)V HSPLandroid/view/ViewRootImpl;->checkForLeavingTouchModeAndConsume(Landroid/view/KeyEvent;)Z @@ -18152,9 +18030,9 @@ 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;->collectViewAttributes()Z 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;->createSyncIfNeeded()V HSPLandroid/view/ViewRootImpl;->deliverInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V HSPLandroid/view/ViewRootImpl;->destroyHardwareRenderer()V HSPLandroid/view/ViewRootImpl;->destroyHardwareResources()V @@ -18167,21 +18045,19 @@ 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;->dispatchInvalidateOnAnimation(Landroid/view/View;)V 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;->doTraversal()V +HSPLandroid/view/ViewRootImpl;->draw(ZLandroid/window/SurfaceSyncGroup;Z)Z 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 @@ -18197,10 +18073,10 @@ HSPLandroid/view/ViewRootImpl;->getAutofillManager()Landroid/view/autofill/Autof 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;->getConfiguration()Landroid/content/res/Configuration; 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;->getHostVisibility()I HSPLandroid/view/ViewRootImpl;->getImeFocusController()Landroid/view/ImeFocusController; HSPLandroid/view/ViewRootImpl;->getImpliedSystemUiVisibility(Landroid/view/WindowManager$LayoutParams;)I HSPLandroid/view/ViewRootImpl;->getInsetsController()Landroid/view/InsetsController; @@ -18209,12 +18085,12 @@ HSPLandroid/view/ViewRootImpl;->getOnBackInvokedDispatcher()Landroid/window/Wind 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;->getRunQueue()Landroid/view/HandlerActionQueue; 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;->getUpdatedFrameInfo()Landroid/graphics/FrameInfo; HSPLandroid/view/ViewRootImpl;->getValidLayoutRequesters(Ljava/util/ArrayList;Z)Ljava/util/ArrayList; HSPLandroid/view/ViewRootImpl;->getView()Landroid/view/View; HSPLandroid/view/ViewRootImpl;->getViewBoundsSandboxingEnabled()Z @@ -18226,14 +18102,14 @@ 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;->invalidate()V HSPLandroid/view/ViewRootImpl;->invalidateChild(Landroid/view/View;Landroid/graphics/Rect;)V HSPLandroid/view/ViewRootImpl;->invalidateChildInParent([ILandroid/graphics/Rect;)Landroid/view/ViewParent; HSPLandroid/view/ViewRootImpl;->invalidateRectOnScreen(Landroid/graphics/Rect;)V -HSPLandroid/view/ViewRootImpl;->isAccessibilityFocusDirty()Z+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable; +HSPLandroid/view/ViewRootImpl;->isAccessibilityFocusDirty()Z HSPLandroid/view/ViewRootImpl;->isContentCaptureEnabled()Z HSPLandroid/view/ViewRootImpl;->isContentCaptureReallyEnabled()Z -HSPLandroid/view/ViewRootImpl;->isHardwareEnabled()Z+]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer; +HSPLandroid/view/ViewRootImpl;->isHardwareEnabled()Z HSPLandroid/view/ViewRootImpl;->isInLayout()Z HSPLandroid/view/ViewRootImpl;->isInTouchMode()Z HSPLandroid/view/ViewRootImpl;->isInWMSRequestedSync()Z @@ -18250,40 +18126,40 @@ 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;->measureHierarchy(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;Landroid/content/res/Resources;IIZ)Z +HSPLandroid/view/ViewRootImpl;->mergeWithNextTransaction(Landroid/view/SurfaceControl$Transaction;J)V HSPLandroid/view/ViewRootImpl;->notifyContentCaptureEvents()V -HSPLandroid/view/ViewRootImpl;->notifyDrawStarted(Z)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLandroid/view/ViewRootImpl;->notifyDrawStarted(Z)V HSPLandroid/view/ViewRootImpl;->notifyInsetsChanged()V -HSPLandroid/view/ViewRootImpl;->notifyRendererOfFramePending()V+]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer; +HSPLandroid/view/ViewRootImpl;->notifyRendererOfFramePending()V 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;->onDescendantInvalidated(Landroid/view/View;Landroid/view/View;)V 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;->performDraw(Landroid/window/SurfaceSyncGroup;)Z +HSPLandroid/view/ViewRootImpl;->performLayout(Landroid/view/WindowManager$LayoutParams;II)V +HSPLandroid/view/ViewRootImpl;->performMeasure(II)V +HSPLandroid/view/ViewRootImpl;->performTraversals()V HSPLandroid/view/ViewRootImpl;->playSoundEffect(I)V HSPLandroid/view/ViewRootImpl;->pokeDrawLockIfNeeded()V -HSPLandroid/view/ViewRootImpl;->prepareSurfaces()V+]Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; +HSPLandroid/view/ViewRootImpl;->prepareSurfaces()V HSPLandroid/view/ViewRootImpl;->profileRendering(Z)V HSPLandroid/view/ViewRootImpl;->recomputeViewAttributes(Landroid/view/View;)V HSPLandroid/view/ViewRootImpl;->recycleQueuedInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V HSPLandroid/view/ViewRootImpl;->registerAnimatingRenderNode(Landroid/graphics/RenderNode;)V HSPLandroid/view/ViewRootImpl;->registerBackCallbackOnWindow()V -HSPLandroid/view/ViewRootImpl;->registerCallbackForPendingTransactions()V+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; +HSPLandroid/view/ViewRootImpl;->registerCallbackForPendingTransactions()V 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;->registerRtFrameCallback(Landroid/graphics/HardwareRenderer$FrameDrawingCallback;)V +HSPLandroid/view/ViewRootImpl;->relayoutWindow(Landroid/view/WindowManager$LayoutParams;IZ)I HSPLandroid/view/ViewRootImpl;->removeSendWindowContentChangedCallback()V HSPLandroid/view/ViewRootImpl;->removeSurfaceChangedCallback(Landroid/view/ViewRootImpl$SurfaceChangedCallback;)V HSPLandroid/view/ViewRootImpl;->removeWindowCallbacks(Landroid/view/WindowCallbacks;)V @@ -18293,38 +18169,35 @@ HSPLandroid/view/ViewRootImpl;->requestChildFocus(Landroid/view/View;Landroid/vi 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;->requestLayout()V 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;->scheduleTraversals()V 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;->setFrame(Landroid/graphics/Rect;Z)V +HSPLandroid/view/ViewRootImpl;->setLayoutParams(Landroid/view/WindowManager$LayoutParams;Z)V 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;->setView(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;Landroid/view/View;I)V 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;->shouldSetFrameRate()Z 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;->updateBlastSurfaceIfNeeded()V 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;->updateContentDrawBounds()Z HSPLandroid/view/ViewRootImpl;->updateForceDarkMode()V HSPLandroid/view/ViewRootImpl;->updateInternalDisplay(ILandroid/content/res/Resources;)V HSPLandroid/view/ViewRootImpl;->updateKeepClearForAccessibilityFocusRect()V @@ -18343,7 +18216,6 @@ 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;->(Landroid/view/ViewRootRectTracker;Landroid/view/View;)V @@ -18366,16 +18238,16 @@ 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;->()V -HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->get(I)Ljava/lang/Object;+]Ljava/util/ArrayList;Ljava/util/ArrayList; +HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->get(I)Ljava/lang/Object; HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->size()I HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->()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;->end()V 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$CopyOnWriteArray;->size()I +HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->start()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access; HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->()V HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->equals(Ljava/lang/Object;)Z HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->isEmpty()Z @@ -18391,10 +18263,10 @@ HSPLandroid/view/ViewTreeObserver;->addOnScrollChangedListener(Landroid/view/Vie 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;->dispatchOnDraw()V 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;->dispatchOnGlobalLayout()V +HSPLandroid/view/ViewTreeObserver;->dispatchOnPreDraw()Z HSPLandroid/view/ViewTreeObserver;->dispatchOnScrollChanged()V HSPLandroid/view/ViewTreeObserver;->dispatchOnSystemGestureExclusionRectsChanged(Ljava/util/List;)V HSPLandroid/view/ViewTreeObserver;->dispatchOnTouchModeChanged(Z)V @@ -18442,7 +18314,7 @@ 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;->setAttributes(Landroid/view/WindowManager$LayoutParams;)V HSPLandroid/view/Window;->setBackgroundBlurRadius(I)V HSPLandroid/view/Window;->setCallback(Landroid/view/Window$Callback;)V HSPLandroid/view/Window;->setCloseOnTouchOutside(Z)V @@ -18477,7 +18349,6 @@ 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;->([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; @@ -18516,15 +18387,15 @@ HSPLandroid/view/WindowInsetsAnimation;->getTypeMask()I HSPLandroid/view/WindowInsetsAnimation;->setAlpha(F)V HSPLandroid/view/WindowLayout;->()V HSPLandroid/view/WindowLayout;->()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/WindowLayout;->computeFrames(Landroid/view/WindowManager$LayoutParams;Landroid/view/InsetsState;Landroid/graphics/Rect;Landroid/graphics/Rect;IIIIFLandroid/window/ClientWindowFrames;)V +HSPLandroid/view/WindowLayout;->computeSurfaceSize(Landroid/view/WindowManager$LayoutParams;Landroid/graphics/Rect;IILandroid/graphics/Rect;ZLandroid/graphics/Point;)V HSPLandroid/view/WindowLeaked;->(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;->()V HSPLandroid/view/WindowManager$LayoutParams;->(IIIII)V HSPLandroid/view/WindowManager$LayoutParams;->(Landroid/os/Parcel;)V -HSPLandroid/view/WindowManager$LayoutParams;->copyFrom(Landroid/view/WindowManager$LayoutParams;)I+]Landroid/graphics/Rect;Landroid/graphics/Rect; +HSPLandroid/view/WindowManager$LayoutParams;->copyFrom(Landroid/view/WindowManager$LayoutParams;)I HSPLandroid/view/WindowManager$LayoutParams;->forRotation(I)Landroid/view/WindowManager$LayoutParams; HSPLandroid/view/WindowManager$LayoutParams;->getColorMode()I HSPLandroid/view/WindowManager$LayoutParams;->getFitInsetsSides()I @@ -18539,20 +18410,19 @@ 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$LayoutParams;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/view/WindowManager;->hasWindowExtensionsEnabled()Z HSPLandroid/view/WindowManagerGlobal$1;->()V HSPLandroid/view/WindowManagerGlobal$2;->(Landroid/view/WindowManagerGlobal;)V HSPLandroid/view/WindowManagerGlobal$TrustedPresentationListener;->()V HSPLandroid/view/WindowManagerGlobal$TrustedPresentationListener;->(Landroid/view/WindowManagerGlobal;)V -HSPLandroid/view/WindowManagerGlobal$TrustedPresentationListener;->(Landroid/view/WindowManagerGlobal;Landroid/view/WindowManagerGlobal$TrustedPresentationListener-IA;)V HSPLandroid/view/WindowManagerGlobal;->()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;->findViewLocked(Landroid/view/View;Z)I HSPLandroid/view/WindowManagerGlobal;->getInstance()Landroid/view/WindowManagerGlobal; HSPLandroid/view/WindowManagerGlobal;->getRootViews(Landroid/os/IBinder;)Ljava/util/ArrayList; HSPLandroid/view/WindowManagerGlobal;->getWindowManagerService()Landroid/view/IWindowManager; @@ -18564,7 +18434,7 @@ 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/WindowManagerGlobal;->updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V HSPLandroid/view/WindowManagerImpl;->(Landroid/content/Context;)V HSPLandroid/view/WindowManagerImpl;->(Landroid/content/Context;Landroid/view/Window;Landroid/os/IBinder;)V HSPLandroid/view/WindowManagerImpl;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V @@ -18577,7 +18447,7 @@ 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/WindowManagerImpl;->updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V HSPLandroid/view/WindowMetrics;->(Landroid/graphics/Rect;Landroid/view/WindowInsets;)V HSPLandroid/view/WindowMetrics;->(Landroid/graphics/Rect;Ljava/util/function/Supplier;F)V HSPLandroid/view/WindowMetrics;->getBounds()Landroid/graphics/Rect; @@ -18588,12 +18458,10 @@ HSPLandroid/view/accessibility/AccessibilityManager$1;->notifyServicesStateChang HSPLandroid/view/accessibility/AccessibilityManager$1;->setFocusAppearance(II)V HSPLandroid/view/accessibility/AccessibilityManager$1;->setState(I)V HSPLandroid/view/accessibility/AccessibilityManager$MyCallback;->(Landroid/view/accessibility/AccessibilityManager;)V -HSPLandroid/view/accessibility/AccessibilityManager$MyCallback;->(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;->(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; @@ -18603,13 +18471,11 @@ HSPLandroid/view/accessibility/AccessibilityManager;->getRecommendedTimeoutMilli 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;->isEnabled()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 @@ -18749,7 +18615,6 @@ 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;->()V -HSPLandroid/view/animation/AnimationUtils$AnimationState;->(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; @@ -18758,8 +18623,8 @@ HSPLandroid/view/animation/AnimationUtils;->loadAnimation(Landroid/content/Conte 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/AnimationUtils;->lockAnimationClock(JJ)V +HSPLandroid/view/animation/AnimationUtils;->unlockAnimationClock()V HSPLandroid/view/animation/BaseInterpolator;->()V HSPLandroid/view/animation/BaseInterpolator;->getChangingConfiguration()I HSPLandroid/view/animation/BaseInterpolator;->setChangingConfiguration(I)V @@ -18778,7 +18643,7 @@ HSPLandroid/view/animation/PathInterpolator;->(Landroid/content/res/Resour 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;->initPath(Landroid/graphics/Path;)V HSPLandroid/view/animation/PathInterpolator;->parseInterpolatorFromTypeArray(Landroid/content/res/TypedArray;)V HSPLandroid/view/animation/ScaleAnimation;->(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/view/animation/ScaleAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V @@ -18853,7 +18718,6 @@ HSPLandroid/view/autofill/AutofillManager$AutofillCallback;->()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;->(Landroid/content/Context;Landroid/view/autofill/IAutoFillManager;)V HSPLandroid/view/autofill/AutofillManager;->cancelLocked()V HSPLandroid/view/autofill/AutofillManager;->cancelSessionLocked()V @@ -18897,7 +18761,6 @@ HSPLandroid/view/autofill/IAugmentedAutofillManagerClient$Stub;->()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;->(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 @@ -18962,19 +18825,14 @@ HSPLandroid/view/contentcapture/IContentCaptureOptionsCallback$Stub;->getMaxTran 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;->(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;->(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 @@ -19096,7 +18954,6 @@ HSPLandroid/view/inputmethod/ImeTracker$Token$1;->createFromParcel(Landroid/os/P 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;->(Landroid/os/Parcel;)V -HSPLandroid/view/inputmethod/ImeTracker$Token;->(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;->()V HSPLandroid/view/inputmethod/ImeTracker;->forLogging()Landroid/view/inputmethod/ImeTracker; @@ -19463,7 +19320,6 @@ HSPLandroid/webkit/WebViewProviderResponse$1;->createFromParcel(Landroid/os/Parc HSPLandroid/widget/AbsListView$3;->run()V HSPLandroid/widget/AbsListView$AdapterDataSetObserver;->onChanged()V HSPLandroid/widget/AbsListView$DeviceConfigChangeListener;->()V -HSPLandroid/widget/AbsListView$DeviceConfigChangeListener;->(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 @@ -19667,14 +19523,14 @@ HSPLandroid/widget/EdgeEffect;->(Landroid/content/Context;)V HSPLandroid/widget/EdgeEffect;->(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;->draw(Landroid/graphics/Canvas;)Z 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;->onPull(FF)V HSPLandroid/widget/EdgeEffect;->onPullDistance(FF)F HSPLandroid/widget/EdgeEffect;->onRelease()V HSPLandroid/widget/EdgeEffect;->setSize(II)V @@ -19696,11 +19552,10 @@ HSPLandroid/widget/EditText;->supportsAutoSizeText()Z HSPLandroid/widget/Editor$$ExternalSyntheticLambda2;->(Landroid/widget/Editor;)V HSPLandroid/widget/Editor$2;->onDraw()V HSPLandroid/widget/Editor$AccessibilitySmartActions;->(Landroid/widget/TextView;)V -HSPLandroid/widget/Editor$AccessibilitySmartActions;->(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$CursorAnchorInfoNotifier;->updatePosition(IIZZ)V HSPLandroid/widget/Editor$EditOperation;->(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 @@ -19744,10 +19599,10 @@ 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;->onPreDraw()Z 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$PositionListener;->updatePosition()V HSPLandroid/widget/Editor$ProcessTextIntentActionsHandler;->(Landroid/widget/Editor;)V HSPLandroid/widget/Editor$SelectionModifierCursorController;->getMinTouchOffset()I HSPLandroid/widget/Editor$SelectionModifierCursorController;->hide()V @@ -19756,7 +19611,7 @@ HSPLandroid/widget/Editor$SelectionModifierCursorController;->isCursorBeingModif 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;->onTouchEvent(Landroid/view/MotionEvent;)V HSPLandroid/widget/Editor$SelectionModifierCursorController;->resetDragAcceleratorState()V HSPLandroid/widget/Editor$SelectionModifierCursorController;->resetTouchOffsets()V HSPLandroid/widget/Editor$SelectionModifierCursorController;->updateSelection(Landroid/view/MotionEvent;)V @@ -19764,7 +19619,7 @@ 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$TextRenderNode;->needsRecord()Z 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 @@ -19785,7 +19640,7 @@ 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;->drawHardwareAcceleratedInner(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I[I[IIII)I HSPLandroid/widget/Editor;->endBatchEdit()V HSPLandroid/widget/Editor;->ensureEndedBatchEdit()V HSPLandroid/widget/Editor;->ensureNoSelectionIfNonSelectable()V @@ -19821,10 +19676,10 @@ 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;->onTouchEvent(Landroid/view/MotionEvent;)V 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;->prepareCursorControllers()V HSPLandroid/widget/Editor;->refreshTextActionMode()V HSPLandroid/widget/Editor;->reportExtractedText()Z HSPLandroid/widget/Editor;->restoreInstanceState(Landroid/os/ParcelableParcel;)V @@ -19849,7 +19704,7 @@ 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/EditorTouchState;->update(Landroid/view/MotionEvent;Landroid/view/ViewConfiguration;)V HSPLandroid/widget/Filter;->()V HSPLandroid/widget/ForwardingListener;->(Landroid/view/View;)V HSPLandroid/widget/ForwardingListener;->onViewAttachedToWindow(Landroid/view/View;)V @@ -19869,13 +19724,13 @@ HSPLandroid/widget/FrameLayout;->generateLayoutParams(Landroid/util/AttributeSet 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;->getPaddingBottomWithForeground()I +HSPLandroid/widget/FrameLayout;->getPaddingLeftWithForeground()I +HSPLandroid/widget/FrameLayout;->getPaddingRightWithForeground()I +HSPLandroid/widget/FrameLayout;->getPaddingTopWithForeground()I +HSPLandroid/widget/FrameLayout;->layoutChildren(IIIIZ)V +HSPLandroid/widget/FrameLayout;->onLayout(ZIIII)V +HSPLandroid/widget/FrameLayout;->onMeasure(II)V HSPLandroid/widget/FrameLayout;->setForegroundGravity(I)V HSPLandroid/widget/FrameLayout;->setMeasureAllChildren(Z)V HSPLandroid/widget/FrameLayout;->shouldDelayChildPressedState()Z @@ -19972,7 +19827,7 @@ HSPLandroid/widget/ImageView$ScaleType;->values()[Landroid/widget/ImageView$Scal HSPLandroid/widget/ImageView;->(Landroid/content/Context;)V HSPLandroid/widget/ImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/widget/ImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/ImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; +HSPLandroid/widget/ImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;II)V HSPLandroid/widget/ImageView;->applyAlpha()V HSPLandroid/widget/ImageView;->applyColorFilter()V HSPLandroid/widget/ImageView;->applyImageTint()V @@ -20013,7 +19868,7 @@ 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;->setImageMatrix(Landroid/graphics/Matrix;)V HSPLandroid/widget/ImageView;->setImageResource(I)V HSPLandroid/widget/ImageView;->setImageTintBlendMode(Landroid/graphics/BlendMode;)V HSPLandroid/widget/ImageView;->setImageTintList(Landroid/content/res/ColorStateList;)V @@ -20031,7 +19886,7 @@ HSPLandroid/widget/LinearLayout$LayoutParams;->(Landroid/view/ViewGroup$La HSPLandroid/widget/LinearLayout;->(Landroid/content/Context;)V HSPLandroid/widget/LinearLayout;->(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/widget/LinearLayout;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/LinearLayout;->(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;->(Landroid/content/Context;Landroid/util/AttributeSet;II)V HSPLandroid/widget/LinearLayout;->allViewsAreGoneBefore(I)Z HSPLandroid/widget/LinearLayout;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z HSPLandroid/widget/LinearLayout;->forceUniformHeight(II)V @@ -20050,20 +19905,20 @@ 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;->getVirtualChildAt(I)Landroid/view/View; +HSPLandroid/widget/LinearLayout;->getVirtualChildCount()I 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;->layoutVertical(IIII)V +HSPLandroid/widget/LinearLayout;->measureChildBeforeLayout(Landroid/view/View;IIIII)V +HSPLandroid/widget/LinearLayout;->measureHorizontal(II)V +HSPLandroid/widget/LinearLayout;->measureVertical(II)V 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;->onLayout(ZIIII)V +HSPLandroid/widget/LinearLayout;->onMeasure(II)V 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;->setChildFrame(Landroid/view/View;IIII)V HSPLandroid/widget/LinearLayout;->setDividerDrawable(Landroid/graphics/drawable/Drawable;)V HSPLandroid/widget/LinearLayout;->setGravity(I)V HSPLandroid/widget/LinearLayout;->setOrientation(I)V @@ -20117,7 +19972,7 @@ 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;->(Landroid/content/Context;)V+]Landroid/content/res/Resources;Landroid/content/res/Resources; +HSPLandroid/widget/OverScroller$SplineOverScroller;->(Landroid/content/Context;)V HSPLandroid/widget/OverScroller$SplineOverScroller;->adjustDuration(III)V HSPLandroid/widget/OverScroller$SplineOverScroller;->continueWhenFinished()Z HSPLandroid/widget/OverScroller$SplineOverScroller;->finish()V @@ -20129,14 +19984,13 @@ 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;->(Landroid/content/Context;)V HSPLandroid/widget/OverScroller;->(Landroid/content/Context;Landroid/view/animation/Interpolator;)V HSPLandroid/widget/OverScroller;->(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;->fling(IIIIIIIIII)V HSPLandroid/widget/OverScroller;->forceFinished(Z)V HSPLandroid/widget/OverScroller;->getCurrVelocity()F HSPLandroid/widget/OverScroller;->getCurrX()I @@ -20224,7 +20078,7 @@ 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;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V HSPLandroid/widget/ProgressBar;->isIndeterminate()Z HSPLandroid/widget/ProgressBar;->jumpDrawablesToCurrentState()V HSPLandroid/widget/ProgressBar;->needsTileify(Landroid/graphics/drawable/Drawable;)Z @@ -20264,7 +20118,7 @@ HSPLandroid/widget/RelativeLayout$DependencyGraph$Node;->release()V HSPLandroid/widget/RelativeLayout$DependencyGraph;->()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;->findRoots([I)Ljava/util/ArrayDeque; 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 @@ -20273,7 +20127,7 @@ HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fgetmTop(Landroid/widge 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;->(II)V -HSPLandroid/widget/RelativeLayout$LayoutParams;->(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;->(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/widget/RelativeLayout$LayoutParams;->addRule(I)V HSPLandroid/widget/RelativeLayout$LayoutParams;->addRule(II)V HSPLandroid/widget/RelativeLayout$LayoutParams;->getRules()[I @@ -20288,7 +20142,7 @@ HSPLandroid/widget/RelativeLayout;->(Landroid/content/Context;Landroid/uti HSPLandroid/widget/RelativeLayout;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V HSPLandroid/widget/RelativeLayout;->(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;->applyVerticalSizeRules(Landroid/widget/RelativeLayout$LayoutParams;II)V 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 @@ -20307,18 +20161,17 @@ HSPLandroid/widget/RelativeLayout;->initFromAttributes(Landroid/content/Context; 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;->onMeasure(II)V HSPLandroid/widget/RelativeLayout;->positionAtEdge(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;I)V HSPLandroid/widget/RelativeLayout;->positionChildHorizontal(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z HSPLandroid/widget/RelativeLayout;->positionChildVertical(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z HSPLandroid/widget/RelativeLayout;->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/RelativeLayout;->sortChildren()V 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;->()V -HSPLandroid/widget/RemoteViews$Action;->(Landroid/widget/RemoteViews$Action-IA;)V HSPLandroid/widget/RemoteViews$Action;->setHierarchyRootData(Landroid/widget/RemoteViews$HierarchyRootData;)V HSPLandroid/widget/RemoteViews$ApplicationInfoCache$$ExternalSyntheticLambda0;->(Landroid/content/pm/ApplicationInfo;)V HSPLandroid/widget/RemoteViews$ApplicationInfoCache$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object; @@ -20390,16 +20243,16 @@ HSPLandroid/widget/RtlSpacingHelper;->setAbsolute(II)V HSPLandroid/widget/RtlSpacingHelper;->setDirection(Z)V HSPLandroid/widget/RtlSpacingHelper;->setRelative(II)V HSPLandroid/widget/ScrollBarDrawable;->()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;->draw(Landroid/graphics/Canvas;)V 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;->getSize(Z)I +HSPLandroid/widget/ScrollBarDrawable;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V +HSPLandroid/widget/ScrollBarDrawable;->isStateful()Z +HSPLandroid/widget/ScrollBarDrawable;->mutate()Landroid/widget/ScrollBarDrawable; HSPLandroid/widget/ScrollBarDrawable;->onBoundsChange(Landroid/graphics/Rect;)V HSPLandroid/widget/ScrollBarDrawable;->onStateChange([I)Z -HSPLandroid/widget/ScrollBarDrawable;->propagateCurrentState(Landroid/graphics/drawable/Drawable;)V+]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;->propagateCurrentState(Landroid/graphics/drawable/Drawable;)V +HSPLandroid/widget/ScrollBarDrawable;->setAlpha(I)V HSPLandroid/widget/ScrollBarDrawable;->setAlwaysDrawVerticalTrack(Z)V HSPLandroid/widget/ScrollBarDrawable;->setHorizontalThumbDrawable(Landroid/graphics/drawable/Drawable;)V HSPLandroid/widget/ScrollBarDrawable;->setHorizontalTrackDrawable(Landroid/graphics/drawable/Drawable;)V @@ -20509,11 +20362,10 @@ HSPLandroid/widget/TextView$SavedState$1;->createFromParcel(Landroid/os/Parcel;) HSPLandroid/widget/TextView$SavedState;->(Landroid/os/Parcel;)V HSPLandroid/widget/TextView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V HSPLandroid/widget/TextView$TextAppearanceAttributes;->()V -HSPLandroid/widget/TextView$TextAppearanceAttributes;->(Landroid/widget/TextView$TextAppearanceAttributes-IA;)V HSPLandroid/widget/TextView;->(Landroid/content/Context;)V HSPLandroid/widget/TextView;->(Landroid/content/Context;Landroid/util/AttributeSet;)V HSPLandroid/widget/TextView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/TextView;->(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;->(Landroid/content/Context;Landroid/util/AttributeSet;II)V HSPLandroid/widget/TextView;->addSearchHighlightPaths()V HSPLandroid/widget/TextView;->addTextChangedListener(Landroid/text/TextWatcher;)V HSPLandroid/widget/TextView;->applyCompoundDrawableTint()V @@ -20533,8 +20385,8 @@ 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;->computeVerticalScrollExtent()I +HSPLandroid/widget/TextView;->computeVerticalScrollRange()I HSPLandroid/widget/TextView;->convertToLocalHorizontalCoordinate(F)F HSPLandroid/widget/TextView;->createEditorIfNeeded()V HSPLandroid/widget/TextView;->didTouchFocusSelect()Z @@ -20552,7 +20404,7 @@ HSPLandroid/widget/TextView;->getAutofillValue()Landroid/view/autofill/AutofillV 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;->getBoxHeight(Landroid/text/Layout;)I HSPLandroid/widget/TextView;->getBreakStrategy()I HSPLandroid/widget/TextView;->getCompoundDrawablePadding()I HSPLandroid/widget/TextView;->getCompoundDrawables()[Landroid/graphics/drawable/Drawable; @@ -20565,12 +20417,12 @@ 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;->getDesiredHeight(Landroid/text/Layout;Z)I 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;->getExtendedPaddingBottom()I +HSPLandroid/widget/TextView;->getExtendedPaddingTop()I HSPLandroid/widget/TextView;->getFilters()[Landroid/text/InputFilter; HSPLandroid/widget/TextView;->getFocusedRect(Landroid/graphics/Rect;)V HSPLandroid/widget/TextView;->getFreezesText()Z @@ -20602,7 +20454,7 @@ 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;->getSelectionStart()I 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; @@ -20634,20 +20486,20 @@ 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;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V 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;->isFromPrimePointer(Landroid/view/MotionEvent;Z)Z 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;->isPositionVisible(FF)Z HSPLandroid/widget/TextView;->isShowingHint()Z HSPLandroid/widget/TextView;->isSuggestionsEnabled()Z HSPLandroid/widget/TextView;->isTextAutofillable()Z @@ -20656,8 +20508,8 @@ 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;->makeNewLayout(IILandroid/text/BoringLayout$Metrics;Landroid/text/BoringLayout$Metrics;IZ)V +HSPLandroid/widget/TextView;->makeSingleLayout(ILandroid/text/BoringLayout$Metrics;ILandroid/text/Layout$Alignment;ZLandroid/text/TextUtils$TruncateAt;Z)Landroid/text/Layout; HSPLandroid/widget/TextView;->maybeUpdateHighlightPaths()V HSPLandroid/widget/TextView;->notifyContentCaptureTextChanged()V HSPLandroid/widget/TextView;->notifyListeningManagersAfterTextChanged()V @@ -20669,7 +20521,7 @@ HSPLandroid/widget/TextView;->onConfigurationChanged(Landroid/content/res/Config 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;->onDraw(Landroid/graphics/Canvas;)V HSPLandroid/widget/TextView;->onEditorAction(I)V HSPLandroid/widget/TextView;->onEndBatchEdit()V HSPLandroid/widget/TextView;->onFocusChanged(ZILandroid/graphics/Rect;)V @@ -20680,7 +20532,7 @@ 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;->onMeasure(II)V HSPLandroid/widget/TextView;->onPreDraw()Z HSPLandroid/widget/TextView;->onProvideStructure(Landroid/view/ViewStructure;II)V HSPLandroid/widget/TextView;->onResolveDrawables(I)V @@ -20697,7 +20549,7 @@ 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;->readTextAppearance(Landroid/content/Context;Landroid/content/res/TypedArray;Landroid/widget/TextView$TextAppearanceAttributes;Z)V HSPLandroid/widget/TextView;->registerForPreDraw()V HSPLandroid/widget/TextView;->removeAdjacentSuggestionSpans(I)V HSPLandroid/widget/TextView;->removeIntersectingNonAdjacentSpans(IILjava/lang/Class;)V @@ -20773,7 +20625,7 @@ 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;->setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;ZI)V HSPLandroid/widget/TextView;->setTextAppearance(I)V HSPLandroid/widget/TextView;->setTextAppearance(Landroid/content/Context;I)V HSPLandroid/widget/TextView;->setTextColor(I)V @@ -20864,7 +20716,7 @@ HSPLandroid/widget/inline/InlinePresentationSpec$1;->createFromParcel(Landroid/o HSPLandroid/widget/inline/InlinePresentationSpec;->()V HSPLandroid/widget/inline/InlinePresentationSpec;->(Landroid/os/Parcel;)V HSPLandroid/widget/inline/InlinePresentationSpec;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/window/BackProgressAnimator;->()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/BackProgressAnimator;->()V HSPLandroid/window/ClientWindowFrames$1;->()V HSPLandroid/window/ClientWindowFrames$1;->createFromParcel(Landroid/os/Parcel;)Landroid/window/ClientWindowFrames; HSPLandroid/window/ClientWindowFrames$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; @@ -20912,8 +20764,6 @@ HSPLandroid/window/SizeConfigurationBuckets$1;->()V HSPLandroid/window/SizeConfigurationBuckets;->()V HSPLandroid/window/SizeConfigurationBuckets;->([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;->(Landroid/window/SurfaceSyncGroup;Z)V HSPLandroid/window/SurfaceSyncGroup$2;->onTransactionReady(Landroid/view/SurfaceControl$Transaction;)V @@ -20973,17 +20823,13 @@ HSPLandroid/window/WindowOnBackInvokedDispatcher$Checker;->-$$Nest$mgetContext(L HSPLandroid/window/WindowOnBackInvokedDispatcher$Checker;->(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;->(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;->(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;->()V -HSPLandroid/window/WindowOnBackInvokedDispatcher;->(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; @@ -21019,12 +20865,12 @@ HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getMetadataForRegion(Ljava/l 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;->getNumberTypeHelper(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType; HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForCountryCode(I)Ljava/lang/String; 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;->getRegionCodeForNumberFromRegionList(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/util/List;)Ljava/lang/String; HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->hasFormattingPatternForNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Z -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;->isNumberMatchingDesc(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Z 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 @@ -21129,8 +20975,8 @@ HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setCountryCode(I)Lco 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/RegexBasedMatcher;->match(Ljava/lang/CharSequence;Ljava/util/regex/Pattern;Z)Z +HSPLcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;->matchNationalNumber(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;Z)Z HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache$1;->removeEldestEntry(Ljava/util/Map$Entry;)Z HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;->get(Ljava/lang/Object;)Ljava/lang/Object; HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;->put(Ljava/lang/Object;Ljava/lang/Object;)V @@ -21172,7 +21018,7 @@ 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;->getOffsetsByUtcTime(J[I)I HSPLcom/android/i18n/timezone/ZoneInfoData;->getRawOffset()I HSPLcom/android/i18n/timezone/ZoneInfoData;->getTransitions()[J HSPLcom/android/i18n/timezone/ZoneInfoData;->hashCode()I @@ -21208,10 +21054,10 @@ 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;->(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;->decodeLoop(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult; +HSPLcom/android/icu/charset/CharsetDecoderICU;->getArray(Ljava/nio/ByteBuffer;)I +HSPLcom/android/icu/charset/CharsetDecoderICU;->getArray(Ljava/nio/CharBuffer;)I +HSPLcom/android/icu/charset/CharsetDecoderICU;->implFlush(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult; 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 @@ -21221,16 +21067,16 @@ HSPLcom/android/icu/charset/CharsetDecoderICU;->setPosition(Ljava/nio/ByteBuffer HSPLcom/android/icu/charset/CharsetDecoderICU;->setPosition(Ljava/nio/CharBuffer;)V HSPLcom/android/icu/charset/CharsetDecoderICU;->updateCallback()V HSPLcom/android/icu/charset/CharsetEncoderICU;->(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;->encodeLoop(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult; +HSPLcom/android/icu/charset/CharsetEncoderICU;->getArray(Ljava/nio/ByteBuffer;)I +HSPLcom/android/icu/charset/CharsetEncoderICU;->getArray(Ljava/nio/CharBuffer;)I 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/ByteBuffer;)V 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; @@ -21270,7 +21116,7 @@ HSPLcom/android/icu/util/ExtendedTimeZone;->utcStartTime(JLandroid/icu/util/Time 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;->(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;->(Lcom/android/icu/util/regex/PatternNative;)V 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 @@ -21282,7 +21128,7 @@ 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;->(Ljava/lang/String;I)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; +HSPLcom/android/icu/util/regex/PatternNative;->(Ljava/lang/String;I)V HSPLcom/android/icu/util/regex/PatternNative;->create(Ljava/lang/String;I)Lcom/android/icu/util/regex/PatternNative; HSPLcom/android/icu/util/regex/PatternNative;->openMatcher()J HSPLcom/android/internal/app/AlertController;->(Landroid/content/Context;Landroid/content/DialogInterface;Landroid/view/Window;)V @@ -21350,15 +21196,15 @@ HSPLcom/android/internal/appwidget/IAppWidgetService$Stub;->asInterface(Landroid HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->getMainColor()I HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->supportsDarkText()Z HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;->(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;->equals(Ljava/lang/Object;)Z HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;->hashCode()I HSPLcom/android/internal/compat/ChangeReporter;->(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;->isAlreadyReported(ILcom/android/internal/compat/ChangeReporter$ChangeReport;)Z +HSPLcom/android/internal/compat/ChangeReporter;->markAsReported(ILcom/android/internal/compat/ChangeReporter$ChangeReport;)V +HSPLcom/android/internal/compat/ChangeReporter;->reportChange(IJI)V HSPLcom/android/internal/compat/ChangeReporter;->shouldWriteToDebug(IJI)Z -HSPLcom/android/internal/compat/ChangeReporter;->shouldWriteToStatsLog(IJI)Z +HSPLcom/android/internal/compat/ChangeReporter;->shouldWriteToDebug(ZIZ)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;->()V @@ -21416,6 +21262,7 @@ HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->stop()V HSPLcom/android/internal/graphics/drawable/BackgroundBlurDrawable$Aggregator;->(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/hidden_from_bootclasspath/android/os/FeatureFlagsImpl;->messageQueueTailTracking()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; @@ -21625,7 +21472,6 @@ HSPLcom/android/internal/os/RuntimeInit$Arguments;->([Ljava/lang/String;)V HSPLcom/android/internal/os/RuntimeInit$Arguments;->parseArgs([Ljava/lang/String;)V HSPLcom/android/internal/os/RuntimeInit$KillApplicationHandler;->(Lcom/android/internal/os/RuntimeInit$LoggingHandler;)V HSPLcom/android/internal/os/RuntimeInit$LoggingHandler;->()V -HSPLcom/android/internal/os/RuntimeInit$LoggingHandler;->(Lcom/android/internal/os/RuntimeInit$LoggingHandler-IA;)V HSPLcom/android/internal/os/RuntimeInit$MethodAndArgsCaller;->(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; @@ -21701,7 +21547,6 @@ 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 @@ -21725,7 +21570,7 @@ HSPLcom/android/internal/os/ZygoteServer;->setForkChild()V HSPLcom/android/internal/policy/DecorContext;->(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;->getResources()Landroid/content/res/Resources; 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 @@ -21737,42 +21582,33 @@ HSPLcom/android/internal/policy/DecorView$ColorViewAttributes;->isPresent(ZIZ)Z HSPLcom/android/internal/policy/DecorView$ColorViewAttributes;->isVisible(ZIIZ)Z HSPLcom/android/internal/policy/DecorView$ColorViewState;->(Lcom/android/internal/policy/DecorView$ColorViewAttributes;)V HSPLcom/android/internal/policy/DecorView;->(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;->calculateNavigationBarColor(I)I +HSPLcom/android/internal/policy/DecorView;->calculateStatusBarColor(I)I 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;->getResources()Landroid/content/res/Resources; +HSPLcom/android/internal/policy/DecorView;->getTitleSuffix(Landroid/view/WindowManager$LayoutParams;)Ljava/lang/String; +HSPLcom/android/internal/policy/DecorView;->getWindowInsetsController()Landroid/view/WindowInsetsController; 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;->onDraw(Landroid/graphics/Canvas;)V HSPLcom/android/internal/policy/DecorView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z HSPLcom/android/internal/policy/DecorView;->onLayout(ZIIII)V -HSPLcom/android/internal/policy/DecorView;->onMeasure(II)V+]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;->onMeasure(II)V HSPLcom/android/internal/policy/DecorView;->onPostDraw(Landroid/graphics/RecordingCanvas;)V HSPLcom/android/internal/policy/DecorView;->onResourcesLoaded(Landroid/view/LayoutInflater;I)V HSPLcom/android/internal/policy/DecorView;->onRootViewScrollYChanged(I)V @@ -21781,13 +21617,12 @@ HSPLcom/android/internal/policy/DecorView;->onTouchEvent(Landroid/view/MotionEve 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;->setFrame(IIII)Z HSPLcom/android/internal/policy/DecorView;->setWindow(Lcom/android/internal/policy/PhoneWindow;)V HSPLcom/android/internal/policy/DecorView;->setWindowBackground(Landroid/graphics/drawable/Drawable;)V HSPLcom/android/internal/policy/DecorView;->setWindowFrame(Landroid/graphics/drawable/Drawable;)V @@ -21795,18 +21630,16 @@ 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;->updateBackgroundDrawable()V +HSPLcom/android/internal/policy/DecorView;->updateColorViewInt(Lcom/android/internal/policy/DecorView$ColorViewState;IIIZZIZZI)V 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;->updateColorViews(Landroid/view/WindowInsets;Z)Landroid/view/WindowInsets; +HSPLcom/android/internal/policy/DecorView;->updateElevation()V +HSPLcom/android/internal/policy/DecorView;->updateLogTag(Landroid/view/WindowManager$LayoutParams;)V HSPLcom/android/internal/policy/DecorView;->updateStatusGuard(Landroid/view/WindowInsets;)Landroid/view/WindowInsets; HSPLcom/android/internal/policy/DecorView;->willYouTakeTheInputQueue()Landroid/view/InputQueue$Callback; HSPLcom/android/internal/policy/DecorView;->willYouTakeTheSurface()Landroid/view/SurfaceHolder$Callback2; HSPLcom/android/internal/policy/GestureNavigationSettingsObserver$1;->(Lcom/android/internal/policy/GestureNavigationSettingsObserver;)V -HSPLcom/android/internal/policy/GestureNavigationSettingsObserver;->(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 @@ -21835,7 +21668,7 @@ 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;->dispatchWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V HSPLcom/android/internal/policy/PhoneWindow;->doInvalidatePanelMenu(I)V HSPLcom/android/internal/policy/PhoneWindow;->generateDecor(I)Lcom/android/internal/policy/DecorView; HSPLcom/android/internal/policy/PhoneWindow;->generateLayout(Lcom/android/internal/policy/DecorView;)Landroid/view/ViewGroup; @@ -21866,7 +21699,7 @@ 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;->setAttributes(Landroid/view/WindowManager$LayoutParams;)V 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 @@ -22025,7 +21858,7 @@ 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;->emptyArray(Ljava/lang/Class;)[Ljava/lang/Object; 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; @@ -22033,14 +21866,14 @@ HSPLcom/android/internal/util/ArrayUtils;->indexOf([Ljava/lang/Object;Ljava/lang 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;->newUnpaddedArray(Ljava/lang/Class;I)[Ljava/lang/Object; 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;->newUnpaddedCharArray(I)[C 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;->newUnpaddedIntArray(I)[I 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;->newUnpaddedObjectArray(I)[Ljava/lang/Object; 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 @@ -22063,7 +21896,6 @@ 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;->()V -HSPLcom/android/internal/util/FastPrintWriter$DummyWriter;->(Lcom/android/internal/util/FastPrintWriter$DummyWriter-IA;)V HSPLcom/android/internal/util/FastPrintWriter;->(Ljava/io/OutputStream;)V HSPLcom/android/internal/util/FastPrintWriter;->(Ljava/io/OutputStream;ZI)V HSPLcom/android/internal/util/FastPrintWriter;->(Ljava/io/Writer;ZI)V @@ -22081,18 +21913,18 @@ 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(Ljava/lang/String;)V HSPLcom/android/internal/util/FastPrintWriter;->write([CII)V HSPLcom/android/internal/util/FastXmlSerializer;->()V HSPLcom/android/internal/util/FastXmlSerializer;->(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;->append(Ljava/lang/String;)V +HSPLcom/android/internal/util/FastXmlSerializer;->append(Ljava/lang/String;II)V +HSPLcom/android/internal/util/FastXmlSerializer;->appendIndent(I)V 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;->escapeAndAppendString(Ljava/lang/String;)V 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 @@ -22109,12 +21941,12 @@ 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([Ljava/lang/Object;ILjava/lang/Object;)[Ljava/lang/Object; 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([Ljava/lang/Object;IILjava/lang/Object;)[Ljava/lang/Object; 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; @@ -22141,7 +21973,7 @@ HSPLcom/android/internal/util/LineBreakBufferedWriter;->(Ljava/io/Writer;I 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;->write(Ljava/lang/String;II)V HSPLcom/android/internal/util/LineBreakBufferedWriter;->writeBuffer(I)V HSPLcom/android/internal/util/MemInfoReader;->()V HSPLcom/android/internal/util/MemInfoReader;->getTotalSize()J @@ -22259,10 +22091,10 @@ HSPLcom/android/internal/util/XmlUtils;->readLongAttribute(Lorg/xmlpull/v1/XmlPu 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;->readThisMapXml(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;)Ljava/util/HashMap; +HSPLcom/android/internal/util/XmlUtils;->readThisPrimitiveValueXml(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)Ljava/lang/Object; 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;->readThisValueXml(Lcom/android/modules/utils/TypedXmlPullParser;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;Z)Ljava/lang/Object; 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 @@ -22271,7 +22103,7 @@ HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Ljava/lang/S 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/XmlUtils;->writeValueXml(Ljava/lang/Object;Ljava/lang/String;Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V 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; @@ -22307,7 +22139,6 @@ HSPLcom/android/internal/view/AppearanceRegion;->equals(Ljava/lang/Object;)Z HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->(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 @@ -22352,7 +22183,7 @@ 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;->()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;->draw(Landroid/view/ViewGroup;Landroid/view/ViewGroup;Landroid/graphics/Canvas;Landroid/view/View;Landroid/view/View;Landroid/view/View;)V HSPLcom/android/internal/widget/BackgroundFallback;->hasFallback()Z HSPLcom/android/internal/widget/BackgroundFallback;->setDrawable(Landroid/graphics/drawable/Drawable;)V HSPLcom/android/internal/widget/ButtonBarLayout;->(Landroid/content/Context;Landroid/util/AttributeSet;)V @@ -22371,7 +22202,7 @@ HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->handleStron HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->isNonStrongBiometricAllowedAfterIdleTimeout(I)Z HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->onIsNonStrongBiometricAllowedChanged(I)V HSPLcom/android/internal/widget/LockPatternUtils;->(Landroid/content/Context;)V -HSPLcom/android/internal/widget/LockPatternUtils;->(Landroid/content/Context;Lcom/android/internal/widget/ILockSettings;)V+]Landroid/content/Context;Landroid/app/ContextImpl;,Landroid/app/ReceiverRestrictedContext; +HSPLcom/android/internal/widget/LockPatternUtils;->(Landroid/content/Context;Lcom/android/internal/widget/ILockSettings;)V+]Landroid/content/Context;Landroid/app/ContextImpl; 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 @@ -22388,10 +22219,10 @@ 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;->getAttributeIndex(Ljava/lang/String;Ljava/lang/String;)I+]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/modules/utils/TypedXmlPullParser;->getAttributeLong(Ljava/lang/String;Ljava/lang/String;)J 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 @@ -22409,10 +22240,6 @@ 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;->()V HSPLcom/android/text/flags/Flags;->()V -HSPLcom/android/window/flags/FeatureFlagsImpl;->()V -HSPLcom/android/window/flags/FeatureFlagsImpl;->bundleClientTransactionFlag()Z -HSPLcom/android/window/flags/Flags;->()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; @@ -22545,7 +22372,6 @@ 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; @@ -22553,6 +22379,7 @@ Landroid/accounts/AccountManager$BaseFutureTask$Response; Landroid/accounts/AccountManager$BaseFutureTask; Landroid/accounts/AccountManager$Future2Task$1; Landroid/accounts/AccountManager$Future2Task; +Landroid/accounts/AccountManager-IA; Landroid/accounts/AccountManager; Landroid/accounts/AccountManagerCallback; Landroid/accounts/AccountManagerFuture; @@ -22578,13 +22405,20 @@ Landroid/accounts/IAccountManagerResponse; Landroid/accounts/NetworkErrorException; Landroid/accounts/OnAccountsUpdateListener; Landroid/accounts/OperationCanceledException; +Landroid/aconfig/nano/Aconfig$flag_declaration; +Landroid/aconfig/nano/Aconfig$flag_declarations; +Landroid/aconfig/nano/Aconfig$flag_value; +Landroid/aconfig/nano/Aconfig$flag_values; +Landroid/aconfig/nano/Aconfig$parsed_flag; +Landroid/aconfig/nano/Aconfig$parsed_flags; +Landroid/aconfig/nano/Aconfig$tracepoint; 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-IA; Landroid/animation/AnimationHandler; Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda0; Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda1; @@ -22598,8 +22432,8 @@ 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-IA; Landroid/animation/AnimatorInflater; Landroid/animation/AnimatorListenerAdapter; Landroid/animation/AnimatorSet$$ExternalSyntheticLambda0; @@ -22610,8 +22444,8 @@ 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-IA; Landroid/animation/AnimatorSet; Landroid/animation/ArgbEvaluator; Landroid/animation/BidirectionalTypeConverter; @@ -22642,8 +22476,8 @@ 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-IA; Landroid/animation/PathKeyframes; Landroid/animation/PropertyValuesHolder$1; Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder; @@ -22656,8 +22490,8 @@ 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-IA; Landroid/animation/StateListAnimator; Landroid/animation/TimeAnimator$TimeListener; Landroid/animation/TimeAnimator; @@ -22690,20 +22524,22 @@ 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-IA; 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$$ExternalSyntheticLambda0; +Landroid/app/ActivityManager$$ExternalSyntheticLambda1; +Landroid/app/ActivityManager$$ExternalSyntheticLambda2; Landroid/app/ActivityManager$1; -Landroid/app/ActivityManager$2; Landroid/app/ActivityManager$3; +Landroid/app/ActivityManager$4; Landroid/app/ActivityManager$AppTask; Landroid/app/ActivityManager$MemoryInfo$1; Landroid/app/ActivityManager$MemoryInfo; @@ -22715,25 +22551,22 @@ 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-IA; Landroid/app/ActivityManager; Landroid/app/ActivityManagerInternal; Landroid/app/ActivityOptions$1; Landroid/app/ActivityOptions$2; Landroid/app/ActivityOptions$OnAnimationStartedListener; +Landroid/app/ActivityOptions$SceneTransitionInfo$1; Landroid/app/ActivityOptions$SceneTransitionInfo; Landroid/app/ActivityOptions$SourceInfo$1; Landroid/app/ActivityOptions$SourceInfo; @@ -22757,10 +22590,11 @@ Landroid/app/ActivityThread$3; Landroid/app/ActivityThread$4; Landroid/app/ActivityThread$ActivityClientRecord$1; Landroid/app/ActivityThread$ActivityClientRecord; +Landroid/app/ActivityThread$AndroidOs; Landroid/app/ActivityThread$AppBindData; Landroid/app/ActivityThread$ApplicationThread$$ExternalSyntheticLambda2; Landroid/app/ActivityThread$ApplicationThread$1; -Landroid/app/ActivityThread$ApplicationThread-IA; +Landroid/app/ActivityThread$ApplicationThread; Landroid/app/ActivityThread$BindServiceData; Landroid/app/ActivityThread$ContextCleanupInfo; Landroid/app/ActivityThread$CreateBackupAgentData; @@ -22770,7 +22604,6 @@ 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; @@ -22782,6 +22615,7 @@ Landroid/app/ActivityThread$RequestAssistContextExtras; Landroid/app/ActivityThread$SafeCancellationTransport; Landroid/app/ActivityThread$ServiceArgsData; Landroid/app/ActivityThread$UpdateCompatibilityData; +Landroid/app/ActivityThread-IA; Landroid/app/ActivityThread; Landroid/app/ActivityThreadInternal; Landroid/app/ActivityTransitionCoordinator; @@ -22795,6 +22629,7 @@ Landroid/app/AlarmManager; Landroid/app/AlertDialog$Builder; Landroid/app/AlertDialog; Landroid/app/AppCompatCallbacks; +Landroid/app/AppCompatTaskInfo$1; Landroid/app/AppCompatTaskInfo; Landroid/app/AppComponentFactory; Landroid/app/AppDetailsActivity; @@ -22807,7 +22642,6 @@ 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; @@ -22864,8 +22698,8 @@ 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-IA; Landroid/app/ApplicationLoaders; Landroid/app/ApplicationPackageManager$$ExternalSyntheticLambda1; Landroid/app/ApplicationPackageManager$$ExternalSyntheticLambda2; @@ -22884,9 +22718,13 @@ Landroid/app/BackStackRecord$Op; Landroid/app/BackStackRecord; Landroid/app/BackStackState$1; Landroid/app/BackStackState; +Landroid/app/BackgroundInstallControlManager; Landroid/app/BackgroundServiceStartNotAllowedException$1; Landroid/app/BackgroundServiceStartNotAllowedException; Landroid/app/BroadcastOptions; +Landroid/app/BroadcastStickyCache; +Landroid/app/CameraCompatTaskInfo$1; +Landroid/app/CameraCompatTaskInfo; Landroid/app/ClientTransactionHandler; Landroid/app/ComponentCaller; Landroid/app/ComponentOptions; @@ -22990,7 +22828,6 @@ 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; @@ -23086,14 +22923,13 @@ 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-IA; Landroid/app/LoadedApk; Landroid/app/LoaderManager$LoaderCallbacks; Landroid/app/LoaderManager; @@ -23107,13 +22943,11 @@ 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; @@ -23126,12 +22960,12 @@ 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-IA; Landroid/app/Notification; Landroid/app/NotificationChannel$1; Landroid/app/NotificationChannel; @@ -23150,16 +22984,13 @@ 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; @@ -23198,14 +23029,14 @@ 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$PathCollector; +Landroid/app/ResourcesManager$SharedLibraryAssets; Landroid/app/ResourcesManager$UpdateHandler; +Landroid/app/ResourcesManager-IA; Landroid/app/ResourcesManager; Landroid/app/ResultInfo$1; Landroid/app/ResultInfo; @@ -23232,10 +23063,9 @@ 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/SharedPreferencesImpl-IA; Landroid/app/StackTrace; Landroid/app/StatusBarManager; Landroid/app/SyncNotedAppOp$1; @@ -23286,8 +23116,14 @@ Landroid/app/SystemServiceRegistry$138; Landroid/app/SystemServiceRegistry$139; Landroid/app/SystemServiceRegistry$13; Landroid/app/SystemServiceRegistry$140; +Landroid/app/SystemServiceRegistry$141; +Landroid/app/SystemServiceRegistry$142; Landroid/app/SystemServiceRegistry$143; Landroid/app/SystemServiceRegistry$144; +Landroid/app/SystemServiceRegistry$145; +Landroid/app/SystemServiceRegistry$146; +Landroid/app/SystemServiceRegistry$147; +Landroid/app/SystemServiceRegistry$148; Landroid/app/SystemServiceRegistry$14; Landroid/app/SystemServiceRegistry$15; Landroid/app/SystemServiceRegistry$16; @@ -23397,8 +23233,8 @@ 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-IA; Landroid/app/UiModeManager; Landroid/app/UidObserver; Landroid/app/UriGrantsManager$1; @@ -23510,17 +23346,17 @@ 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-IA; 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-IA; Landroid/app/backup/BackupHelperDispatcher; Landroid/app/backup/BackupHelperWithLogger; Landroid/app/backup/BackupManager$BackupObserverWrapper$1; @@ -23595,24 +23431,24 @@ Landroid/app/contentsuggestions/SelectionsRequest$1; Landroid/app/contentsuggestions/SelectionsRequest$Builder; Landroid/app/contentsuggestions/SelectionsRequest-IA; Landroid/app/contentsuggestions/SelectionsRequest; +Landroid/app/contextualsearch/ContextualSearchManager; 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$JobCleanupCallback; Landroid/app/job/JobParameters-IA; Landroid/app/job/JobParameters; Landroid/app/job/JobScheduler; @@ -23620,15 +23456,14 @@ 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/ondeviceintelligence/OnDeviceIntelligenceManager; Landroid/app/people/IPeopleManager$Stub$Proxy; Landroid/app/people/IPeopleManager$Stub; Landroid/app/people/IPeopleManager; @@ -23687,8 +23522,6 @@ 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; @@ -23708,7 +23541,7 @@ Landroid/app/servertransaction/TopResumedActivityChangeItem-IA; Landroid/app/servertransaction/TopResumedActivityChangeItem; Landroid/app/servertransaction/TransactionExecutor; Landroid/app/servertransaction/TransactionExecutorHelper; -Landroid/app/servertransaction/WindowStateResizeItem$ResizeListener; +Landroid/app/servertransaction/WindowStateTransactionItem$TransactionListener; Landroid/app/slice/ISliceManager$Stub$Proxy; Landroid/app/slice/ISliceManager$Stub; Landroid/app/slice/ISliceManager; @@ -23760,7 +23593,7 @@ 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/supervision/SupervisionManager; Landroid/app/time/ITimeZoneDetectorListener$Stub$Proxy; Landroid/app/time/ITimeZoneDetectorListener$Stub; Landroid/app/time/ITimeZoneDetectorListener; @@ -23822,6 +23655,8 @@ Landroid/app/usage/ConfigurationStats; Landroid/app/usage/EventList; Landroid/app/usage/ExternalStorageStats$1; Landroid/app/usage/ExternalStorageStats; +Landroid/app/usage/FeatureFlags; +Landroid/app/usage/FeatureFlagsImpl; Landroid/app/usage/Flags; Landroid/app/usage/ICacheQuotaService$Stub$Proxy; Landroid/app/usage/ICacheQuotaService$Stub; @@ -23861,6 +23696,8 @@ Landroid/appwidget/AppWidgetProviderInfo$1; Landroid/appwidget/AppWidgetProviderInfo; Landroid/appwidget/PendingHostUpdate$1; Landroid/appwidget/PendingHostUpdate; +Landroid/appwidget/flags/FeatureFlags; +Landroid/appwidget/flags/FeatureFlagsImpl; Landroid/appwidget/flags/Flags; Landroid/attention/AttentionManagerInternal$AttentionCallbackInternal; Landroid/attention/AttentionManagerInternal; @@ -23879,14 +23716,15 @@ Landroid/companion/virtual/IVirtualDevice; Landroid/companion/virtual/IVirtualDeviceManager$Stub$Proxy; Landroid/companion/virtual/IVirtualDeviceManager$Stub; Landroid/companion/virtual/IVirtualDeviceManager; +Landroid/companion/virtual/VirtualDevice$1; +Landroid/companion/virtual/VirtualDevice; Landroid/companion/virtual/VirtualDeviceManager; Landroid/companion/virtual/flags/FeatureFlags; Landroid/companion/virtual/flags/FeatureFlagsImpl; Landroid/companion/virtual/flags/Flags; -Landroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl-IA; Landroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl; -Landroid/content/AbstractThreadedSyncAdapter$SyncThread-IA; Landroid/content/AbstractThreadedSyncAdapter$SyncThread; +Landroid/content/AbstractThreadedSyncAdapter-IA; Landroid/content/AbstractThreadedSyncAdapter; Landroid/content/ActivityNotFoundException; Landroid/content/ApexEnvironment; @@ -23908,8 +23746,8 @@ 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-IA; Landroid/content/ClipData; Landroid/content/ClipDescription$1; Landroid/content/ClipDescription; @@ -23926,8 +23764,8 @@ 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$$ExternalSyntheticLambda2; Landroid/content/ContentCaptureOptions$ContentProtectionOptions; Landroid/content/ContentCaptureOptions; Landroid/content/ContentInterface; @@ -23937,30 +23775,26 @@ 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-IA; 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-IA; Landroid/content/ContentResolver; Landroid/content/ContentUris; Landroid/content/ContentValues$1; @@ -24005,7 +23839,6 @@ 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; @@ -24108,6 +23941,7 @@ Landroid/content/pm/ApplicationInfo$1$$ExternalSyntheticLambda0; Landroid/content/pm/ApplicationInfo$1; Landroid/content/pm/ApplicationInfo-IA; Landroid/content/pm/ApplicationInfo; +Landroid/content/pm/ArchivedPackageParcel$1; Landroid/content/pm/ArchivedPackageParcel; Landroid/content/pm/Attribution$1; Landroid/content/pm/Attribution; @@ -24131,8 +23965,6 @@ 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; @@ -24140,7 +23972,6 @@ 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; @@ -24232,11 +24063,11 @@ 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-IA; Landroid/content/pm/LauncherApps; Landroid/content/pm/ModuleInfo$1; Landroid/content/pm/ModuleInfo-IA; @@ -24280,7 +24111,6 @@ 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; @@ -24300,16 +24130,13 @@ 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; @@ -24318,6 +24145,7 @@ 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-IA; Landroid/content/pm/PackageParser; Landroid/content/pm/PackageParserCacheHelper$ReadHelper; Landroid/content/pm/PackageParserCacheHelper$WriteHelper; @@ -24442,7 +24270,6 @@ 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; @@ -24487,17 +24314,17 @@ 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-IA; 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-IA; Landroid/content/res/ResourcesImpl; Landroid/content/res/ResourcesKey; Landroid/content/res/StringBlock$Height; @@ -24525,6 +24352,7 @@ Landroid/content/rollback/RollbackManagerFrameworkInitializer; Landroid/content/type/DefaultMimeMapFactory$$ExternalSyntheticLambda0; Landroid/content/type/DefaultMimeMapFactory; Landroid/credentials/CredentialManager; +Landroid/credentials/GetCredentialResponse$1; Landroid/credentials/GetCredentialResponse; Landroid/database/AbstractCursor$SelfContentObserver; Landroid/database/AbstractCursor; @@ -24576,20 +24404,22 @@ 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$$ExternalSyntheticLambda0; +Landroid/database/sqlite/SQLiteConnection$OperationLog$$ExternalSyntheticLambda1; Landroid/database/sqlite/SQLiteConnection$OperationLog; Landroid/database/sqlite/SQLiteConnection$PreparedStatement; Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache; +Landroid/database/sqlite/SQLiteConnection$RateLimiter; +Landroid/database/sqlite/SQLiteConnection-IA; 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-IA; 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; @@ -24599,8 +24429,8 @@ 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-IA; Landroid/database/sqlite/SQLiteDatabase; Landroid/database/sqlite/SQLiteDatabaseConfiguration; Landroid/database/sqlite/SQLiteDatabaseCorruptException; @@ -24624,8 +24454,8 @@ 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-IA; Landroid/database/sqlite/SQLiteSession; Landroid/database/sqlite/SQLiteStatement; Landroid/database/sqlite/SQLiteStatementInfo; @@ -24634,8 +24464,8 @@ 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-IA; Landroid/ddm/DdmHandleAppName; Landroid/ddm/DdmHandleExit; Landroid/ddm/DdmHandleHeap; @@ -24697,11 +24527,12 @@ Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda4; Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda5; Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda6; Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda9; +Landroid/graphics/ColorSpace$Rgb$Native; 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-IA; Landroid/graphics/ColorSpace; Landroid/graphics/Compatibility; Landroid/graphics/ComposePathEffect; @@ -24731,11 +24562,11 @@ 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-IA; Landroid/graphics/HardwareRenderer; Landroid/graphics/HardwareRendererObserver$$ExternalSyntheticLambda0; Landroid/graphics/HardwareRendererObserver$OnFrameMetricsAvailableListener; @@ -24744,12 +24575,11 @@ 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-IA; Landroid/graphics/ImageDecoder; Landroid/graphics/ImageFormat; Landroid/graphics/Insets$1; @@ -24762,6 +24592,7 @@ Landroid/graphics/LightingColorFilter; Landroid/graphics/LinearGradient; Landroid/graphics/MaskFilter; Landroid/graphics/Matrix$1; +Landroid/graphics/Matrix$ExtraNatives; Landroid/graphics/Matrix$NoImagePreloadHolder; Landroid/graphics/Matrix$ScaleToFit; Landroid/graphics/Matrix; @@ -24785,6 +24616,7 @@ Landroid/graphics/Paint; Landroid/graphics/PaintFlagsDrawFilter; Landroid/graphics/Path$Direction; Landroid/graphics/Path$FillType; +Landroid/graphics/Path$NoImagePreloadHolder; Landroid/graphics/Path$Op; Landroid/graphics/Path; Landroid/graphics/PathDashPathEffect; @@ -24865,7 +24697,6 @@ 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; @@ -24899,9 +24730,9 @@ 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-IA; Landroid/graphics/drawable/DrawableContainer; Landroid/graphics/drawable/DrawableInflater; Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState; @@ -24995,6 +24826,7 @@ Landroid/graphics/drawable/shapes/RectShape; Landroid/graphics/drawable/shapes/RoundRectShape; Landroid/graphics/drawable/shapes/Shape; Landroid/graphics/fonts/Font$Builder; +Landroid/graphics/fonts/Font$NoImagePreloadHolder; Landroid/graphics/fonts/Font; Landroid/graphics/fonts/FontCustomizationParser$Result; Landroid/graphics/fonts/FontCustomizationParser; @@ -25013,7 +24845,6 @@ 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; @@ -25039,6 +24870,7 @@ Landroid/hardware/CameraSessionStats; Landroid/hardware/CameraStatus$1; Landroid/hardware/CameraStatus; Landroid/hardware/ConsumerIrManager; +Landroid/hardware/DataSpace; Landroid/hardware/GeomagneticField$LegendreTable; Landroid/hardware/GeomagneticField; Landroid/hardware/HardwareBuffer$1; @@ -25086,7 +24918,6 @@ 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; @@ -25147,19 +24978,15 @@ 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$$ExternalSyntheticLambda0; 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$DeviceCameraInfo; Landroid/hardware/camera2/CameraManager$CameraManagerGlobal; Landroid/hardware/camera2/CameraManager$DeviceStateListener; Landroid/hardware/camera2/CameraManager$FoldStateListener$$ExternalSyntheticLambda0; @@ -25170,18 +24997,17 @@ 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$1; Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraHandlerExecutor; Landroid/hardware/camera2/impl/CameraDeviceImpl; Landroid/hardware/camera2/impl/CameraExtensionJpegProcessor; @@ -25316,6 +25142,8 @@ 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$Configuration$1; +Landroid/hardware/devicestate/DeviceState$Configuration; Landroid/hardware/devicestate/DeviceState; Landroid/hardware/devicestate/DeviceStateInfo$1; Landroid/hardware/devicestate/DeviceStateInfo; @@ -25326,8 +25154,8 @@ Landroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrappe 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-IA; Landroid/hardware/devicestate/DeviceStateManagerGlobal; Landroid/hardware/devicestate/IDeviceStateManager$Stub$Proxy; Landroid/hardware/devicestate/IDeviceStateManager$Stub; @@ -25362,13 +25190,12 @@ 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-IA; 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; @@ -25430,12 +25257,9 @@ 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; @@ -25477,9 +25301,9 @@ 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-IA; Landroid/hardware/input/InputManagerGlobal; Landroid/hardware/input/InputSettings; Landroid/hardware/input/KeyboardLayout$1; @@ -25921,13 +25745,9 @@ 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; @@ -25964,6 +25784,7 @@ Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink; Landroid/icu/impl/DayPeriodRules-IA; Landroid/icu/impl/DayPeriodRules; Landroid/icu/impl/DontCareFieldPosition; +Landroid/icu/impl/EmojiProps$IsAcceptable; Landroid/icu/impl/EmojiProps; Landroid/icu/impl/EraRules; Landroid/icu/impl/FormattedStringBuilder$FieldWrapper; @@ -25992,11 +25813,11 @@ Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$VariantS 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-IA; Landroid/icu/impl/ICUCurrencyMetaInfo; Landroid/icu/impl/ICUData$1; Landroid/icu/impl/ICUData$2; @@ -26024,10 +25845,10 @@ 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-IA; Landroid/icu/impl/ICUResourceBundle; Landroid/icu/impl/ICUResourceBundleImpl$ResourceArray; Landroid/icu/impl/ICUResourceBundleImpl$ResourceBinary; @@ -26162,10 +25983,10 @@ 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-IA; Landroid/icu/impl/TextTrieMap; Landroid/icu/impl/TimeZoneAdapter; Landroid/icu/impl/TimeZoneGenericNames$1; @@ -26185,9 +26006,9 @@ 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-IA; Landroid/icu/impl/TimeZoneNamesImpl; Landroid/icu/impl/Trie$DataManipulate; Landroid/icu/impl/Trie$DefaultGetFoldingOffset; @@ -26239,6 +26060,8 @@ Landroid/icu/impl/UCharacterProperty$24; Landroid/icu/impl/UCharacterProperty$25; Landroid/icu/impl/UCharacterProperty$26; Landroid/icu/impl/UCharacterProperty$27; +Landroid/icu/impl/UCharacterProperty$28; +Landroid/icu/impl/UCharacterProperty$29; Landroid/icu/impl/UCharacterProperty$2; Landroid/icu/impl/UCharacterProperty$3; Landroid/icu/impl/UCharacterProperty$4; @@ -26256,6 +26079,7 @@ 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$MathCompatBinaryProperty; Landroid/icu/impl/UCharacterProperty$NormInertBinaryProperty; Landroid/icu/impl/UCharacterProperty$NormQuickCheckIntProperty; Landroid/icu/impl/UCharacterProperty; @@ -26440,8 +26264,15 @@ 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$CachedDecoder$$ExternalSyntheticLambda0; +Landroid/icu/impl/locale/LSR$CachedDecoder$$ExternalSyntheticLambda1; +Landroid/icu/impl/locale/LSR$CachedDecoder$$ExternalSyntheticLambda2; +Landroid/icu/impl/locale/LSR$CachedDecoder; Landroid/icu/impl/locale/LSR; Landroid/icu/impl/locale/LanguageTag; +Landroid/icu/impl/locale/LikelySubtags$1; +Landroid/icu/impl/locale/LikelySubtags$Data; +Landroid/icu/impl/locale/LikelySubtags; Landroid/icu/impl/locale/LocaleDistance$Data; Landroid/icu/impl/locale/LocaleDistance; Landroid/icu/impl/locale/LocaleExtensions; @@ -26472,9 +26303,6 @@ 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; @@ -26521,10 +26349,10 @@ 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-IA; Landroid/icu/impl/number/PatternStringParser; Landroid/icu/impl/number/PatternStringUtils$1; Landroid/icu/impl/number/PatternStringUtils$PatternSignType; @@ -26605,6 +26433,7 @@ Landroid/icu/lang/UCharacter$DummyValueIterator; Landroid/icu/lang/UCharacter$EastAsianWidth; Landroid/icu/lang/UCharacter$GraphemeClusterBreak; Landroid/icu/lang/UCharacter$HangulSyllableType; +Landroid/icu/lang/UCharacter$IdentifierType; Landroid/icu/lang/UCharacter$IndicPositionalCategory; Landroid/icu/lang/UCharacter$IndicSyllabicCategory; Landroid/icu/lang/UCharacter$JoiningGroup; @@ -26835,7 +26664,6 @@ 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; @@ -26851,25 +26679,21 @@ 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-IA; Landroid/icu/text/DateTimePatternGenerator; Landroid/icu/text/DecimalFormat$PropertySetter; Landroid/icu/text/DecimalFormat; @@ -26880,8 +26704,8 @@ 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-IA; Landroid/icu/text/Edits; Landroid/icu/text/EscapeTransliterator$1; Landroid/icu/text/EscapeTransliterator$2; @@ -27019,10 +26843,10 @@ 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-IA; Landroid/icu/text/PluralRules; Landroid/icu/text/PluralRulesSerialProxy; Landroid/icu/text/Quantifier; @@ -27068,12 +26892,12 @@ 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-IA; Landroid/icu/text/RuleBasedCollator; Landroid/icu/text/RuleBasedNumberFormat; Landroid/icu/text/RuleBasedTransliterator$Data; @@ -27150,6 +26974,7 @@ Landroid/icu/text/TitlecaseTransliterator; Landroid/icu/text/Transform; Landroid/icu/text/TransliterationRule; Landroid/icu/text/TransliterationRuleSet; +Landroid/icu/text/Transliterator$$ExternalSyntheticLambda0; Landroid/icu/text/Transliterator$Factory; Landroid/icu/text/Transliterator$Position; Landroid/icu/text/Transliterator; @@ -27196,6 +27021,7 @@ Landroid/icu/text/UnicodeSet$EntryRangeIterable; Landroid/icu/text/UnicodeSet$EntryRangeIterator; Landroid/icu/text/UnicodeSet$Filter; Landroid/icu/text/UnicodeSet$GeneralCategoryMaskFilter; +Landroid/icu/text/UnicodeSet$IdentifierTypeFilter; Landroid/icu/text/UnicodeSet$IntPropertyFilter; Landroid/icu/text/UnicodeSet$NumericValueFilter; Landroid/icu/text/UnicodeSet$ScriptExtensionsFilter; @@ -27225,11 +27051,11 @@ 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-IA; Landroid/icu/util/Calendar; Landroid/icu/util/CaseInsensitiveString; Landroid/icu/util/CharsTrie$Entry; @@ -27244,19 +27070,16 @@ 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; @@ -27302,7 +27125,12 @@ Landroid/icu/util/ICUUncheckedIOException; Landroid/icu/util/IllformedLocaleException; Landroid/icu/util/IndianCalendar; Landroid/icu/util/InitialTimeZoneRule; +Landroid/icu/util/IslamicCalendar$Algorithm; Landroid/icu/util/IslamicCalendar$CalculationType; +Landroid/icu/util/IslamicCalendar$CivilAlgorithm; +Landroid/icu/util/IslamicCalendar$IslamicAlgorithm; +Landroid/icu/util/IslamicCalendar$TBLAAlgorithm; +Landroid/icu/util/IslamicCalendar$UmalquraAlgorithm; Landroid/icu/util/IslamicCalendar; Landroid/icu/util/JapaneseCalendar; Landroid/icu/util/LocaleData$MeasurementSystem; @@ -27333,8 +27161,8 @@ 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-IA; Landroid/icu/util/MutableCodePointTrie; Landroid/icu/util/NoUnit; Landroid/icu/util/Output; @@ -27408,6 +27236,7 @@ Landroid/inputmethodservice/InputMethodService$Insets; Landroid/inputmethodservice/InputMethodService$SettingsObserver; Landroid/inputmethodservice/InputMethodService; Landroid/inputmethodservice/SoftInputWindow; +Landroid/internal/framework/protobuf/nano/MessageNano; Landroid/internal/hidl/base/V1_0/DebugInfo; Landroid/internal/hidl/base/V1_0/IBase; Landroid/internal/hidl/manager/V1_0/IServiceManager; @@ -27442,11 +27271,14 @@ 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-IA; Landroid/location/Location; Landroid/location/LocationTime$1; Landroid/location/LocationTime; +Landroid/location/flags/FeatureFlags; +Landroid/location/flags/FeatureFlagsImpl; +Landroid/location/flags/Flags; Landroid/media/AudioAttributes$1; Landroid/media/AudioAttributes$Builder; Landroid/media/AudioAttributes-IA; @@ -27473,7 +27305,6 @@ 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; @@ -27481,22 +27312,20 @@ 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-IA; Landroid/media/AudioManager; Landroid/media/AudioManagerInternal$RingerModeDelegate; Landroid/media/AudioManagerInternal; @@ -27607,7 +27436,6 @@ 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; @@ -27617,7 +27445,6 @@ 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; @@ -27652,10 +27479,11 @@ Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane; Landroid/media/ImageWriter$WriterSurfaceImage; Landroid/media/ImageWriter; Landroid/media/JetPlayer; +Landroid/media/MediaCodec$$ExternalSyntheticLambda6; +Landroid/media/MediaCodec$$ExternalSyntheticLambda7; +Landroid/media/MediaCodec$$ExternalSyntheticLambda8; 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; @@ -27671,6 +27499,7 @@ Landroid/media/MediaCodec$OutputFrame; Landroid/media/MediaCodec$ParameterDescriptor; Landroid/media/MediaCodec$PersistentSurface; Landroid/media/MediaCodec$QueueRequest; +Landroid/media/MediaCodec-IA; Landroid/media/MediaCodec; Landroid/media/MediaCodecInfo$AudioCapabilities; Landroid/media/MediaCodecInfo$CodecCapabilities$FeatureList; @@ -27730,7 +27559,6 @@ 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; @@ -27756,6 +27584,7 @@ Landroid/media/MediaPlayer$TimeProvider$EventHandler; Landroid/media/MediaPlayer$TimeProvider; Landroid/media/MediaPlayer$TrackInfo$1; Landroid/media/MediaPlayer$TrackInfo; +Landroid/media/MediaPlayer-IA; Landroid/media/MediaPlayer; Landroid/media/MediaRecorder; Landroid/media/MediaRoute2Info$1; @@ -27876,6 +27705,8 @@ Landroid/media/VolumeShaper$Operation; Landroid/media/VolumeShaper$State$1; Landroid/media/VolumeShaper$State; Landroid/media/VolumeShaper; +Landroid/media/audio/FeatureFlags; +Landroid/media/audio/FeatureFlagsImpl; Landroid/media/audio/Flags; Landroid/media/audio/common/AidlConversion; Landroid/media/audio/common/HeadTracking$SensorData$Tag; @@ -27919,13 +27750,14 @@ 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-IA; Landroid/media/browse/MediaBrowser; Landroid/media/browse/MediaBrowserUtils; +Landroid/media/codec/Flags; Landroid/media/metrics/Event; Landroid/media/metrics/IMediaMetricsManager$Stub$Proxy; Landroid/media/metrics/IMediaMetricsManager$Stub; @@ -28017,8 +27849,8 @@ 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-IA; Landroid/media/session/MediaController; Landroid/media/session/MediaSession$Callback; Landroid/media/session/MediaSession$CallbackMessageHandler; @@ -28031,29 +27863,26 @@ 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-IA; 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; @@ -28184,18 +28013,14 @@ 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; @@ -28324,15 +28149,99 @@ 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/IAppCallback$Stub; +Landroid/nfc/IAppCallback; +Landroid/nfc/INfcAdapter$Stub; +Landroid/nfc/INfcAdapter; +Landroid/nfc/INfcAdapterExtras; +Landroid/nfc/INfcCardEmulation; +Landroid/nfc/INfcControllerAlwaysOnListener$Stub; +Landroid/nfc/INfcControllerAlwaysOnListener; +Landroid/nfc/INfcDta; +Landroid/nfc/INfcFCardEmulation; +Landroid/nfc/INfcTag; +Landroid/nfc/INfcUnlockHandler$Stub; +Landroid/nfc/INfcUnlockHandler; +Landroid/nfc/INfcVendorNciCallback$Stub; +Landroid/nfc/INfcVendorNciCallback; +Landroid/nfc/INfcWlcStateListener$Stub; +Landroid/nfc/INfcWlcStateListener; +Landroid/nfc/ITagRemovedCallback$Stub; +Landroid/nfc/ITagRemovedCallback; +Landroid/nfc/NdefMessage; +Landroid/nfc/NfcActivityManager; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda0; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda10; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda11; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda12; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda13; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda14; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda15; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda16; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda17; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda18; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda19; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda1; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda20; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda21; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda22; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda23; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda24; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda25; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda26; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda27; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda28; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda29; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda2; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda30; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda31; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda32; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda33; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda34; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda35; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda36; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda37; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda38; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda39; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda3; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda4; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda5; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda6; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda7; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda8; +Landroid/nfc/NfcAdapter$$ExternalSyntheticLambda9; +Landroid/nfc/NfcAdapter$1; +Landroid/nfc/NfcAdapter$2; +Landroid/nfc/NfcAdapter$ControllerAlwaysOnListener; +Landroid/nfc/NfcAdapter$CreateBeamUrisCallback; +Landroid/nfc/NfcAdapter$CreateNdefMessageCallback; +Landroid/nfc/NfcAdapter$NfcUnlockHandler; +Landroid/nfc/NfcAdapter$NfcVendorNciCallback; +Landroid/nfc/NfcAdapter$OnNdefPushCompleteCallback; +Landroid/nfc/NfcAdapter$OnTagRemovedListener; +Landroid/nfc/NfcAdapter$ReaderCallback; +Landroid/nfc/NfcAdapter$ServiceCall; +Landroid/nfc/NfcAdapter$ServiceCallReturn; +Landroid/nfc/NfcAdapter$WlcStateListener; +Landroid/nfc/NfcAdapter; +Landroid/nfc/NfcAntennaInfo; +Landroid/nfc/NfcControllerAlwaysOnListener; Landroid/nfc/NfcFrameworkInitializer$$ExternalSyntheticLambda0; Landroid/nfc/NfcFrameworkInitializer; Landroid/nfc/NfcManager; +Landroid/nfc/NfcOemExtension; Landroid/nfc/NfcServiceManager$ServiceRegisterer; Landroid/nfc/NfcServiceManager; +Landroid/nfc/NfcVendorNciCallbackListener; +Landroid/nfc/NfcWlcStateListener; +Landroid/nfc/Tag; +Landroid/nfc/TechListParcel; +Landroid/nfc/WlcListenerDeviceInfo; Landroid/nfc/cardemulation/AidGroup$1; Landroid/nfc/cardemulation/AidGroup; Landroid/nfc/cardemulation/ApduServiceInfo$1; Landroid/nfc/cardemulation/ApduServiceInfo; +Landroid/nfc/cardemulation/PollingFrame; Landroid/opengl/EGL14; Landroid/opengl/EGL15; Landroid/opengl/EGLConfig; @@ -28383,8 +28292,8 @@ 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-IA; Landroid/os/AsyncTask; Landroid/os/BadParcelableException; Landroid/os/BadTypeParcelableException; @@ -28452,8 +28361,8 @@ 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-IA; Landroid/os/CancellationSignal; Landroid/os/CarrierAssociatedAppEntry$1; Landroid/os/CarrierAssociatedAppEntry; @@ -28479,8 +28388,8 @@ 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-IA; Landroid/os/Debug; Landroid/os/DeviceIdleManager; Landroid/os/DropBoxManager$Entry$1; @@ -28515,8 +28424,8 @@ 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-IA; Landroid/os/Handler; Landroid/os/HandlerExecutor; Landroid/os/HandlerThread; @@ -28534,6 +28443,7 @@ Landroid/os/IBatteryPropertiesRegistrar$Stub$Proxy; Landroid/os/IBatteryPropertiesRegistrar$Stub; Landroid/os/IBatteryPropertiesRegistrar; Landroid/os/IBinder$DeathRecipient; +Landroid/os/IBinder$FrozenStateChangeCallback; Landroid/os/IBinder; Landroid/os/IBinderCallback; Landroid/os/ICancellationSignal$Stub$Proxy; @@ -28574,7 +28484,6 @@ 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; @@ -28664,6 +28573,7 @@ Landroid/os/IWakeLockCallback; Landroid/os/IncidentManager$IncidentReport$1; Landroid/os/IncidentManager$IncidentReport; Landroid/os/IncidentManager; +Landroid/os/IpcDataCache$1; Landroid/os/IpcDataCache$Config; Landroid/os/IpcDataCache$QueryHandler; Landroid/os/IpcDataCache$RemoteCall; @@ -28759,7 +28669,6 @@ 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; @@ -28768,17 +28677,16 @@ Landroid/os/ResultReceiver$MyRunnable; Landroid/os/ResultReceiver; Landroid/os/SELinux; Landroid/os/SecurityStateManager; +Landroid/os/Service$1; +Landroid/os/Service; 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; @@ -28797,7 +28705,6 @@ 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; @@ -28805,34 +28712,29 @@ 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-IA; 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-IA; Landroid/os/SystemProperties; Landroid/os/SystemService$1; Landroid/os/SystemService$State; @@ -28868,9 +28770,6 @@ 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; @@ -28948,7 +28847,6 @@ 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; @@ -28957,6 +28855,7 @@ Landroid/os/storage/StorageManager$StorageEventListenerDelegate$$ExternalSynthet Landroid/os/storage/StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda6; Landroid/os/storage/StorageManager$StorageEventListenerDelegate; Landroid/os/storage/StorageManager$StorageVolumeCallback; +Landroid/os/storage/StorageManager-IA; Landroid/os/storage/StorageManager; Landroid/os/storage/StorageManagerInternal; Landroid/os/storage/StorageVolume$1; @@ -28987,6 +28886,8 @@ Landroid/os/strictmode/UnsafeIntentLaunchViolation; Landroid/os/strictmode/UntaggedSocketViolation; Landroid/os/strictmode/Violation; Landroid/os/strictmode/WebViewMethodCalledOnWrongThreadViolation; +Landroid/os/vibrator/FeatureFlags; +Landroid/os/vibrator/FeatureFlagsImpl; Landroid/os/vibrator/Flags; Landroid/os/vibrator/PrebakedSegment$1; Landroid/os/vibrator/PrebakedSegment; @@ -29020,15 +28921,13 @@ Landroid/permission/PermissionControllerManager$1; Landroid/permission/PermissionControllerManager; Landroid/permission/PermissionManager$1; Landroid/permission/PermissionManager$2; +Landroid/permission/PermissionManager$OnPermissionsChangeListenerDelegate; Landroid/permission/PermissionManager$PackageNamePermissionQuery; Landroid/permission/PermissionManager$PermissionQuery; -Landroid/permission/PermissionManager$SplitPermissionInfo-IA; Landroid/permission/PermissionManager$SplitPermissionInfo; +Landroid/permission/PermissionManager-IA; 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; @@ -29257,7 +29156,6 @@ 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; @@ -29344,12 +29242,11 @@ 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-IA; Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi; Landroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider; Landroid/security/keystore2/AndroidKeyStoreCipherSpiBase; @@ -29428,6 +29325,8 @@ Landroid/service/appprediction/IPredictionService; Landroid/service/autofill/AutofillServiceInfo; Landroid/service/autofill/Dataset$1; Landroid/service/autofill/Dataset; +Landroid/service/autofill/FeatureFlags; +Landroid/service/autofill/FeatureFlagsImpl; Landroid/service/autofill/FieldClassificationUserData; Landroid/service/autofill/FillContext$1; Landroid/service/autofill/FillContext; @@ -29562,17 +29461,16 @@ 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-IA; 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-IA; Landroid/service/notification/ConditionProviderService; Landroid/service/notification/IConditionProvider$Stub; Landroid/service/notification/IConditionProvider; @@ -29589,8 +29487,8 @@ 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-IA; Landroid/service/notification/NotificationListenerService; Landroid/service/notification/NotificationRankingUpdate$1; Landroid/service/notification/NotificationRankingUpdate; @@ -29602,6 +29500,7 @@ Landroid/service/notification/SnoozeCriterion$1; Landroid/service/notification/SnoozeCriterion; Landroid/service/notification/StatusBarNotification$1; Landroid/service/notification/StatusBarNotification; +Landroid/service/notification/ZenDeviceEffects$1; Landroid/service/notification/ZenDeviceEffects; Landroid/service/notification/ZenModeConfig$1; Landroid/service/notification/ZenModeConfig$EventInfo; @@ -29719,16 +29618,13 @@ 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-IA; Landroid/speech/tts/TextToSpeech; Landroid/speech/tts/TtsEngines$EngineInfoComparator; Landroid/speech/tts/TtsEngines; @@ -29742,7 +29638,6 @@ Landroid/sysprop/CryptoProperties; Landroid/sysprop/DeviceProperties; Landroid/sysprop/DisplayProperties; Landroid/sysprop/HdmiProperties; -Landroid/sysprop/InitProperties; Landroid/sysprop/InputProperties; Landroid/sysprop/MediaProperties; Landroid/sysprop/PowerProperties; @@ -29762,6 +29657,7 @@ Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda7; Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda8; Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda9; Landroid/sysprop/TelephonyProperties; +Landroid/sysprop/ViewProperties; Landroid/sysprop/VndkProperties; Landroid/system/keystore2/Authorization$1; Landroid/system/keystore2/Authorization; @@ -29988,7 +29884,6 @@ 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; @@ -30002,9 +29897,9 @@ 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-IA; Landroid/telephony/LocationAccessPolicy; Landroid/telephony/LteVopsSupportInfo$1; Landroid/telephony/LteVopsSupportInfo-IA; @@ -30024,7 +29919,6 @@ 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; @@ -30161,6 +30055,7 @@ Landroid/telephony/TelephonyCallback$CallDisconnectCauseListener; Landroid/telephony/TelephonyCallback$CallForwardingIndicatorListener; Landroid/telephony/TelephonyCallback$CallStateListener; Landroid/telephony/TelephonyCallback$CarrierNetworkListener; +Landroid/telephony/TelephonyCallback$CarrierRoamingNtnModeListener; Landroid/telephony/TelephonyCallback$CellInfoListener; Landroid/telephony/TelephonyCallback$CellLocationListener; Landroid/telephony/TelephonyCallback$DataActivationStateListener; @@ -30461,7 +30356,6 @@ 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; @@ -30471,7 +30365,6 @@ 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; @@ -30565,33 +30458,23 @@ 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-IA; Landroid/text/HtmlToSpannedConverter; Landroid/text/Hyphenator; Landroid/text/InputFilter$LengthFilter; @@ -30610,6 +30493,7 @@ Landroid/text/Layout$SpannedEllipsizer; Landroid/text/Layout$TabStops; Landroid/text/Layout$TextInclusionStrategy; Landroid/text/Layout; +Landroid/text/MeasuredParagraph$StyleRunCallback; Landroid/text/MeasuredParagraph; Landroid/text/NoCopySpan$Concrete; Landroid/text/NoCopySpan; @@ -30626,6 +30510,7 @@ Landroid/text/Selection$MemoryTextWatcher; Landroid/text/Selection$PositionIterator; Landroid/text/Selection$START; Landroid/text/Selection; +Landroid/text/SpanColors; Landroid/text/SpanSet; Landroid/text/SpanWatcher; Landroid/text/Spannable$Factory; @@ -30648,8 +30533,9 @@ 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$LineInfo; +Landroid/text/TextLine-IA; Landroid/text/TextLine; Landroid/text/TextPaint; Landroid/text/TextShaper$GlyphsConsumer; @@ -30734,6 +30620,7 @@ Landroid/text/style/LeadingMarginSpan$Standard; Landroid/text/style/LeadingMarginSpan; Landroid/text/style/LineBackgroundSpan$Standard; Landroid/text/style/LineBackgroundSpan; +Landroid/text/style/LineBreakConfigSpan$1; Landroid/text/style/LineBreakConfigSpan; Landroid/text/style/LineHeightSpan$Standard; Landroid/text/style/LineHeightSpan$WithDensity; @@ -30787,6 +30674,9 @@ Landroid/timezone/TelephonyLookup; Landroid/timezone/TelephonyNetwork; Landroid/timezone/TelephonyNetworkFinder; Landroid/timezone/TimeZoneFinder; +Landroid/tracing/FeatureFlags; +Landroid/tracing/FeatureFlagsImpl; +Landroid/tracing/Flags; Landroid/tracing/perfetto/CreateIncrementalStateArgs; Landroid/tracing/perfetto/CreateTlsStateArgs; Landroid/tracing/perfetto/DataSource; @@ -30857,8 +30747,8 @@ 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-IA; Landroid/transition/Visibility; Landroid/transition/VisibilityPropagation; Landroid/transparency/BinaryTransparencyManager; @@ -30973,6 +30863,7 @@ Landroid/util/RecurrenceRule$RecurringIterator; Landroid/util/RecurrenceRule; Landroid/util/ReflectiveProperty; Landroid/util/RotationUtils; +Landroid/util/SequenceUtils; Landroid/util/Singleton; Landroid/util/Size; Landroid/util/SizeF$1; @@ -30986,7 +30877,6 @@ 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; @@ -31074,9 +30964,7 @@ 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; @@ -31095,21 +30983,19 @@ 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-IA; 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-IA; Landroid/view/DisplayAddress; Landroid/view/DisplayAdjustments; -Landroid/view/DisplayCutout$Bounds-IA; Landroid/view/DisplayCutout$Bounds; Landroid/view/DisplayCutout$CutoutPathParserInfo; Landroid/view/DisplayCutout$ParcelableWrapper$1; @@ -31154,8 +31040,8 @@ 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-IA; Landroid/view/HandwritingInitiator; Landroid/view/HapticScrollFeedbackProvider; Landroid/view/HdrRenderState; @@ -31192,12 +31078,6 @@ 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; @@ -31213,6 +31093,7 @@ Landroid/view/IScrollCaptureCallbacks; Landroid/view/IScrollCaptureResponseListener$Stub$Proxy; Landroid/view/IScrollCaptureResponseListener$Stub; Landroid/view/IScrollCaptureResponseListener; +Landroid/view/ISensitiveContentProtectionManager$Stub$Proxy; Landroid/view/ISensitiveContentProtectionManager$Stub; Landroid/view/ISensitiveContentProtectionManager; Landroid/view/ISurfaceControlViewHost; @@ -31239,6 +31120,7 @@ Landroid/view/IWindowSession; Landroid/view/IWindowSessionCallback$Stub$Proxy; Landroid/view/IWindowSessionCallback$Stub; Landroid/view/IWindowSessionCallback; +Landroid/view/ImeBackAnimationController; Landroid/view/ImeFocusController$InputMethodManagerDelegate; Landroid/view/ImeFocusController; Landroid/view/ImeInsetsSourceConsumer; @@ -31247,7 +31129,6 @@ 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; @@ -31269,10 +31150,14 @@ Landroid/view/InputWindowHandle; Landroid/view/InsetsAnimationControlCallbacks; Landroid/view/InsetsAnimationControlImpl$$ExternalSyntheticLambda0; Landroid/view/InsetsAnimationControlImpl; +Landroid/view/InsetsAnimationControlRunner$SurfaceParamsApplier$$ExternalSyntheticLambda0; +Landroid/view/InsetsAnimationControlRunner$SurfaceParamsApplier; Landroid/view/InsetsAnimationControlRunner; +Landroid/view/InsetsAnimationSpec; Landroid/view/InsetsAnimationThread; Landroid/view/InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda0; Landroid/view/InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda1; +Landroid/view/InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda2; Landroid/view/InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda0; Landroid/view/InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda1; Landroid/view/InsetsAnimationThreadControlRunner$1; @@ -31280,7 +31165,6 @@ 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; @@ -31300,7 +31184,6 @@ Landroid/view/InsetsController$InternalAnimationControlListener$$ExternalSynthet 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; @@ -31389,16 +31272,17 @@ Landroid/view/ScaleGestureDetector$1; Landroid/view/ScaleGestureDetector$OnScaleGestureListener; Landroid/view/ScaleGestureDetector$SimpleOnScaleGestureListener; Landroid/view/ScaleGestureDetector; +Landroid/view/ScrollCaptureSearchResults$$ExternalSyntheticLambda0; 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-IA; Landroid/view/Surface; Landroid/view/SurfaceControl$1; Landroid/view/SurfaceControl$Builder; @@ -31407,6 +31291,7 @@ Landroid/view/SurfaceControl$DesiredDisplayModeSpecs; Landroid/view/SurfaceControl$DisplayMode; Landroid/view/SurfaceControl$DisplayPrimaries; Landroid/view/SurfaceControl$DynamicDisplayInfo; +Landroid/view/SurfaceControl$IdleScreenRefreshRateConfig; Landroid/view/SurfaceControl$JankData; Landroid/view/SurfaceControl$OnJankDataListener; Landroid/view/SurfaceControl$OnReparentListener; @@ -31414,6 +31299,7 @@ Landroid/view/SurfaceControl$RefreshRateRange$1; Landroid/view/SurfaceControl$RefreshRateRange; Landroid/view/SurfaceControl$RefreshRateRanges; Landroid/view/SurfaceControl$StaticDisplayInfo; +Landroid/view/SurfaceControl$Transaction$$ExternalSyntheticLambda1; Landroid/view/SurfaceControl$Transaction$1; Landroid/view/SurfaceControl$Transaction$2; Landroid/view/SurfaceControl$Transaction; @@ -31424,9 +31310,7 @@ 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; @@ -31444,14 +31328,14 @@ Landroid/view/SurfaceView$$ExternalSyntheticLambda3; Landroid/view/SurfaceView$$ExternalSyntheticLambda4; Landroid/view/SurfaceView$$ExternalSyntheticLambda5; Landroid/view/SurfaceView$1; -Landroid/view/SurfaceView$2; +Landroid/view/SurfaceView$SurfaceControlViewHostParent; Landroid/view/SurfaceView$SurfaceViewPositionUpdateListener; -Landroid/view/SurfaceView$SyncBufferTransactionCallback-IA; Landroid/view/SurfaceView$SyncBufferTransactionCallback; +Landroid/view/SurfaceView-IA; Landroid/view/SurfaceView; Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder; -Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams-IA; Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams; +Landroid/view/SyncRtSurfaceTransactionApplier-IA; Landroid/view/SyncRtSurfaceTransactionApplier; Landroid/view/TextureView$$ExternalSyntheticLambda0; Landroid/view/TextureView$$ExternalSyntheticLambda1; @@ -31460,8 +31344,8 @@ 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-IA; Landroid/view/ThreadedRenderer; Landroid/view/TouchDelegate; Landroid/view/TunnelModeEnabledListener; @@ -31504,13 +31388,10 @@ 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; @@ -31530,19 +31411,16 @@ 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-IA; Landroid/view/View; Landroid/view/ViewAnimationHostBridge; Landroid/view/ViewAnimationUtils; @@ -31580,10 +31458,10 @@ 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-IA; Landroid/view/ViewPropertyAnimator; Landroid/view/ViewRootImpl$$ExternalSyntheticLambda0; Landroid/view/ViewRootImpl$$ExternalSyntheticLambda10; @@ -31604,6 +31482,8 @@ Landroid/view/ViewRootImpl$$ExternalSyntheticLambda6; Landroid/view/ViewRootImpl$$ExternalSyntheticLambda7; Landroid/view/ViewRootImpl$$ExternalSyntheticLambda8; Landroid/view/ViewRootImpl$$ExternalSyntheticLambda9; +Landroid/view/ViewRootImpl$10; +Landroid/view/ViewRootImpl$11; Landroid/view/ViewRootImpl$1; Landroid/view/ViewRootImpl$2; Landroid/view/ViewRootImpl$3; @@ -31630,7 +31510,6 @@ 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; @@ -31645,13 +31524,13 @@ 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-IA; Landroid/view/ViewRootImpl; Landroid/view/ViewRootInsetsControllerHost; Landroid/view/ViewRootRectTracker$ViewInfo; @@ -31716,11 +31595,13 @@ Landroid/view/WindowManagerGlobal$$ExternalSyntheticLambda0; Landroid/view/WindowManagerGlobal$1; Landroid/view/WindowManagerGlobal$2; Landroid/view/WindowManagerGlobal$TrustedPresentationListener; +Landroid/view/WindowManagerGlobal-IA; Landroid/view/WindowManagerGlobal; Landroid/view/WindowManagerImpl; Landroid/view/WindowManagerPolicyConstants$PointerEventListener; Landroid/view/WindowManagerPolicyConstants; Landroid/view/WindowMetrics; +Landroid/view/WindowRelayoutResult; Landroid/view/WindowlessWindowLayout; Landroid/view/WindowlessWindowManager; Landroid/view/accessibility/AccessibilityCache$AccessibilityNodeRefresher; @@ -31737,10 +31618,9 @@ 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-IA; Landroid/view/accessibility/AccessibilityManager; Landroid/view/accessibility/AccessibilityNodeIdManager; Landroid/view/accessibility/AccessibilityNodeInfo$1; @@ -31764,6 +31644,8 @@ Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener; Landroid/view/accessibility/CaptioningManager$MyContentObserver; Landroid/view/accessibility/CaptioningManager; Landroid/view/accessibility/DirectAccessibilityConnection; +Landroid/view/accessibility/FeatureFlags; +Landroid/view/accessibility/FeatureFlagsImpl; Landroid/view/accessibility/Flags; Landroid/view/accessibility/IAccessibilityEmbeddedConnection; Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub$Proxy; @@ -31792,11 +31674,12 @@ 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-IA; Landroid/view/animation/AnimationUtils; Landroid/view/animation/AnticipateInterpolator; Landroid/view/animation/AnticipateOvershootInterpolator; +Landroid/view/animation/BackGestureInterpolator; Landroid/view/animation/BaseInterpolator; Landroid/view/animation/BounceInterpolator; Landroid/view/animation/ClipRectAnimation; @@ -31825,7 +31708,6 @@ 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; @@ -31836,13 +31718,15 @@ Landroid/view/autofill/AutofillManager$AutofillManagerClient$$ExternalSyntheticL 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$$ExternalSyntheticLambda9; Landroid/view/autofill/AutofillManager$AutofillManagerClient; Landroid/view/autofill/AutofillManager$CompatibilityBridge; Landroid/view/autofill/AutofillManager$TrackedViews; +Landroid/view/autofill/AutofillManager-IA; Landroid/view/autofill/AutofillManager; Landroid/view/autofill/AutofillManagerInternal; Landroid/view/autofill/AutofillPopupWindow; +Landroid/view/autofill/AutofillStateFingerprint; Landroid/view/autofill/AutofillValue$1; Landroid/view/autofill/AutofillValue-IA; Landroid/view/autofill/AutofillValue; @@ -31869,9 +31753,9 @@ 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-IA; Landroid/view/contentcapture/ContentCaptureManager; Landroid/view/contentcapture/ContentCaptureSession; Landroid/view/contentcapture/ContentCaptureSessionId$1; @@ -31889,22 +31773,16 @@ 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$$ExternalSyntheticLambda7; Landroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver$$ExternalSyntheticLambda0; Landroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver$$ExternalSyntheticLambda1; Landroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver; @@ -31944,6 +31822,8 @@ Landroid/view/inputmethod/ExtractedText$1; Landroid/view/inputmethod/ExtractedText; Landroid/view/inputmethod/ExtractedTextRequest$1; Landroid/view/inputmethod/ExtractedTextRequest; +Landroid/view/inputmethod/FeatureFlags; +Landroid/view/inputmethod/FeatureFlagsImpl; Landroid/view/inputmethod/Flags; Landroid/view/inputmethod/HandwritingGesture; Landroid/view/inputmethod/IAccessibilityInputMethodSessionInvoker$$ExternalSyntheticLambda0; @@ -31958,20 +31838,17 @@ 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-IA; Landroid/view/inputmethod/ImeTracker; Landroid/view/inputmethod/InlineSuggestionsRequest$1; Landroid/view/inputmethod/InlineSuggestionsRequest; @@ -31997,16 +31874,15 @@ 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-IA; Landroid/view/inputmethod/InputMethodManager; Landroid/view/inputmethod/InputMethodManagerGlobal; Landroid/view/inputmethod/InputMethodSession$EventCallback; @@ -32067,7 +31943,6 @@ 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; @@ -32085,8 +31960,8 @@ 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-IA; Landroid/view/textclassifier/SystemTextClassifier; Landroid/view/textclassifier/SystemTextClassifierMetadata$1; Landroid/view/textclassifier/SystemTextClassifierMetadata; @@ -32114,23 +31989,19 @@ 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-IA; 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; @@ -32163,7 +32034,6 @@ 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; @@ -32269,12 +32139,9 @@ 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; @@ -32284,7 +32151,6 @@ 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; @@ -32292,8 +32158,8 @@ 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-IA; Landroid/widget/AbsListView; Landroid/widget/AbsSeekBar; Landroid/widget/AbsSpinner$RecycleBin; @@ -32329,13 +32195,11 @@ 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-IA; Landroid/widget/AutoCompleteTextView; Landroid/widget/BaseAdapter; Landroid/widget/Button; @@ -32363,21 +32227,16 @@ 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; @@ -32388,24 +32247,20 @@ 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-IA; Landroid/widget/Editor; Landroid/widget/EditorTouchState; Landroid/widget/FastScroller$1; @@ -32420,8 +32275,8 @@ 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-IA; Landroid/widget/Filter; Landroid/widget/Filterable; Landroid/widget/ForwardingListener; @@ -32440,15 +32295,14 @@ 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-IA; Landroid/widget/GridLayout; Landroid/widget/HeaderViewListAdapter; Landroid/widget/HorizontalScrollView$SavedState$1; @@ -32461,22 +32315,17 @@ 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-IA; 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-IA; Landroid/widget/ListView; Landroid/widget/Magnifier$Builder; Landroid/widget/Magnifier$InternalPopupWindow; @@ -32508,14 +32357,12 @@ 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-IA; Landroid/widget/ProgressBar; Landroid/widget/QuickContactBadge; Landroid/widget/RadioButton; @@ -32523,17 +32370,18 @@ 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-IA; Landroid/widget/RelativeLayout; Landroid/widget/RemoteViews$$ExternalSyntheticLambda0; Landroid/widget/RemoteViews$$ExternalSyntheticLambda1; Landroid/widget/RemoteViews$$ExternalSyntheticLambda2; +Landroid/widget/RemoteViews$$ExternalSyntheticLambda4; +Landroid/widget/RemoteViews$$ExternalSyntheticLambda5; 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; @@ -32544,6 +32392,7 @@ Landroid/widget/RemoteViews$BaseReflectionAction; Landroid/widget/RemoteViews$BitmapCache; Landroid/widget/RemoteViews$BitmapReflectionAction; Landroid/widget/RemoteViews$ComplexUnitDimensionReflectionAction; +Landroid/widget/RemoteViews$DrawInstructions; Landroid/widget/RemoteViews$HierarchyRootData; Landroid/widget/RemoteViews$InteractionHandler; Landroid/widget/RemoteViews$LayoutParamAction; @@ -32551,6 +32400,7 @@ Landroid/widget/RemoteViews$MethodArgs; Landroid/widget/RemoteViews$MethodKey; Landroid/widget/RemoteViews$NightModeReflectionAction; Landroid/widget/RemoteViews$OnViewAppliedListener; +Landroid/widget/RemoteViews$PendingResources; Landroid/widget/RemoteViews$ReflectionAction; Landroid/widget/RemoteViews$RemoteCollectionCache; Landroid/widget/RemoteViews$RemoteCollectionItems$1; @@ -32586,6 +32436,7 @@ Landroid/widget/RemoteViews$ViewGroupActionRemove$1; Landroid/widget/RemoteViews$ViewGroupActionRemove; Landroid/widget/RemoteViews$ViewPaddingAction; Landroid/widget/RemoteViews$ViewTree; +Landroid/widget/RemoteViews-IA; Landroid/widget/RemoteViews; Landroid/widget/RemoteViewsAdapter$AsyncRemoteAdapterAction; Landroid/widget/RemoteViewsAdapter$RemoteAdapterConnectionCallback; @@ -32609,10 +32460,10 @@ 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-IA; Landroid/widget/SelectionActionModeHelper; Landroid/widget/SmartSelectSprite$$ExternalSyntheticLambda0; Landroid/widget/SmartSelectSprite$$ExternalSyntheticLambda1; @@ -32623,11 +32474,10 @@ 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-IA; 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; @@ -32635,6 +32485,7 @@ Landroid/widget/Spinner$DropdownPopup; Landroid/widget/Spinner$SavedState$1; Landroid/widget/Spinner$SavedState; Landroid/widget/Spinner$SpinnerPopup; +Landroid/widget/Spinner-IA; Landroid/widget/Spinner; Landroid/widget/SpinnerAdapter; Landroid/widget/Switch$1; @@ -32659,7 +32510,6 @@ 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; @@ -32669,23 +32519,22 @@ 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-IA; Landroid/widget/TextView; -Landroid/widget/TextViewOnReceiveContentListener$InputConnectionInfo-IA; Landroid/widget/TextViewOnReceiveContentListener$InputConnectionInfo; +Landroid/widget/TextViewOnReceiveContentListener-IA; 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-IA; Landroid/widget/Toast; Landroid/widget/ToastPresenter; Landroid/widget/ToggleButton; @@ -32702,10 +32551,14 @@ Landroid/widget/ViewFlipper$1; Landroid/widget/ViewFlipper; Landroid/widget/ViewSwitcher; Landroid/widget/WrapperListAdapter; +Landroid/widget/flags/FeatureFlags; +Landroid/widget/flags/FeatureFlagsImpl; +Landroid/widget/flags/Flags; Landroid/widget/inline/InlinePresentationSpec$1; Landroid/widget/inline/InlinePresentationSpec$BaseBuilder; Landroid/widget/inline/InlinePresentationSpec$Builder; Landroid/widget/inline/InlinePresentationSpec; +Landroid/window/ActivityWindowInfo$1; Landroid/window/ActivityWindowInfo; Landroid/window/BackAnimationAdapter$1; Landroid/window/BackAnimationAdapter; @@ -32714,9 +32567,12 @@ Landroid/window/BackMotionEvent$1; Landroid/window/BackMotionEvent; Landroid/window/BackNavigationInfo$1; Landroid/window/BackNavigationInfo; +Landroid/window/BackProgressAnimator$$ExternalSyntheticLambda0; +Landroid/window/BackProgressAnimator$$ExternalSyntheticLambda1; Landroid/window/BackProgressAnimator$1; Landroid/window/BackProgressAnimator$ProgressCallback; Landroid/window/BackProgressAnimator; +Landroid/window/BackTouchTracker; Landroid/window/ClientWindowFrames$1; Landroid/window/ClientWindowFrames-IA; Landroid/window/ClientWindowFrames; @@ -32750,7 +32606,6 @@ 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; @@ -32771,11 +32626,13 @@ 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$DefaultImeOnBackAnimationCallback; Landroid/window/ImeOnBackInvokedDispatcher$ImeOnBackInvokedCallback; Landroid/window/ImeOnBackInvokedDispatcher; +Landroid/window/InputTransferToken$1; +Landroid/window/InputTransferToken; Landroid/window/OnBackAnimationCallback; Landroid/window/OnBackInvokedCallback; Landroid/window/OnBackInvokedCallbackInfo$1; @@ -32799,6 +32656,7 @@ Landroid/window/SizeConfigurationBuckets$1; Landroid/window/SizeConfigurationBuckets; Landroid/window/SplashScreen$SplashScreenManagerGlobal$1; Landroid/window/SplashScreen$SplashScreenManagerGlobal; +Landroid/window/SplashScreen; Landroid/window/SplashScreenView$SplashScreenViewParcelable$1; Landroid/window/SplashScreenView$SplashScreenViewParcelable; Landroid/window/SplashScreenView; @@ -32811,11 +32669,12 @@ Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda3; Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda4; Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda5; Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda6; +Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda7; Landroid/window/SurfaceSyncGroup$1; Landroid/window/SurfaceSyncGroup$2; -Landroid/window/SurfaceSyncGroup$ISurfaceSyncGroupImpl-IA; Landroid/window/SurfaceSyncGroup$ISurfaceSyncGroupImpl; Landroid/window/SurfaceSyncGroup$SurfaceViewFrameCallback; +Landroid/window/SurfaceSyncGroup-IA; Landroid/window/SurfaceSyncGroup; Landroid/window/TaskAppearedInfo$1; Landroid/window/TaskAppearedInfo; @@ -32826,6 +32685,7 @@ Landroid/window/TaskFragmentOrganizer$1; Landroid/window/TaskFragmentOrganizer; Landroid/window/TaskFragmentOrganizerToken$1; Landroid/window/TaskFragmentOrganizerToken; +Landroid/window/TaskFragmentTransaction$1; Landroid/window/TaskFragmentTransaction; Landroid/window/TaskOrganizer$1; Landroid/window/TaskOrganizer; @@ -32854,6 +32714,8 @@ Landroid/window/WindowInfosListener; Landroid/window/WindowMetricsController$$ExternalSyntheticLambda0; Landroid/window/WindowMetricsController; Landroid/window/WindowOnBackInvokedDispatcher$$ExternalSyntheticLambda0; +Landroid/window/WindowOnBackInvokedDispatcher$$ExternalSyntheticLambda1; +Landroid/window/WindowOnBackInvokedDispatcher$$ExternalSyntheticLambda2; Landroid/window/WindowOnBackInvokedDispatcher$Checker; Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda0; Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda1; @@ -32861,7 +32723,6 @@ Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$Exte 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; @@ -32945,7 +32806,15 @@ 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/flags/FeatureFlags; +Lcom/android/graphics/flags/FeatureFlagsImpl; +Lcom/android/graphics/flags/Flags; +Lcom/android/graphics/hwui/flags/FeatureFlags; +Lcom/android/graphics/hwui/flags/FeatureFlagsImpl; Lcom/android/graphics/hwui/flags/Flags; +Lcom/android/graphics/surfaceflinger/flags/FeatureFlags; +Lcom/android/graphics/surfaceflinger/flags/FeatureFlagsImpl; +Lcom/android/graphics/surfaceflinger/flags/Flags; Lcom/android/i18n/phonenumbers/AlternateFormatsCountryCodeSet; Lcom/android/i18n/phonenumbers/AsYouTypeFormatter; Lcom/android/i18n/phonenumbers/CountryCodeToRegionCodeMap; @@ -33064,6 +32933,7 @@ 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/CharsetDecoderICU; Lcom/android/icu/charset/CharsetEncoderICU; Lcom/android/icu/charset/CharsetFactory; Lcom/android/icu/charset/NativeConverter; @@ -33080,6 +32950,7 @@ Lcom/android/icu/util/ExtendedCalendar; Lcom/android/icu/util/ExtendedTimeZone; Lcom/android/icu/util/Icu4cMetadata; Lcom/android/icu/util/LocaleNative; +Lcom/android/icu/util/UResourceBundleNative; Lcom/android/icu/util/regex/MatcherNative; Lcom/android/icu/util/regex/PatternNative; Lcom/android/ims/FeatureConnection$$ExternalSyntheticLambda0; @@ -33153,7 +33024,6 @@ 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; @@ -33467,6 +33337,8 @@ 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/FeatureFlags; +Lcom/android/input/flags/FeatureFlagsImpl; Lcom/android/input/flags/Flags; Lcom/android/internal/R$attr; Lcom/android/internal/R$dimen; @@ -33494,7 +33366,6 @@ 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; @@ -33589,6 +33460,7 @@ 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$$ExternalSyntheticLambda0; Lcom/android/internal/compat/ChangeReporter$ChangeReport; Lcom/android/internal/compat/ChangeReporter; Lcom/android/internal/compat/CompatibilityChangeConfig$1; @@ -33602,6 +33474,9 @@ 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/compat/flags/FeatureFlags; +Lcom/android/internal/compat/flags/FeatureFlagsImpl; +Lcom/android/internal/compat/flags/Flags; Lcom/android/internal/config/appcloning/AppCloningDeviceConfigHelper$$ExternalSyntheticLambda0; Lcom/android/internal/config/appcloning/AppCloningDeviceConfigHelper; Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags$DebugResolver; @@ -33650,6 +33525,8 @@ 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$OnAnimationEndListener; +Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$OnAnimationUpdateListener; Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$ViewProperty; Lcom/android/internal/dynamicanimation/animation/DynamicAnimation; Lcom/android/internal/dynamicanimation/animation/Force; @@ -33669,7 +33546,29 @@ 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/app/appfunctions/flags/FeatureFlags; +Lcom/android/internal/hidden_from_bootclasspath/android/app/appfunctions/flags/FeatureFlagsImpl; +Lcom/android/internal/hidden_from_bootclasspath/android/app/appfunctions/flags/Flags; +Lcom/android/internal/hidden_from_bootclasspath/android/app/job/FeatureFlags; +Lcom/android/internal/hidden_from_bootclasspath/android/app/job/FeatureFlagsImpl; +Lcom/android/internal/hidden_from_bootclasspath/android/app/job/Flags; +Lcom/android/internal/hidden_from_bootclasspath/android/content/pm/FeatureFlags; +Lcom/android/internal/hidden_from_bootclasspath/android/content/pm/FeatureFlagsImpl; +Lcom/android/internal/hidden_from_bootclasspath/android/content/pm/Flags; +Lcom/android/internal/hidden_from_bootclasspath/android/os/FeatureFlags; +Lcom/android/internal/hidden_from_bootclasspath/android/os/FeatureFlagsImpl; +Lcom/android/internal/hidden_from_bootclasspath/android/os/Flags; +Lcom/android/internal/hidden_from_bootclasspath/android/permission/flags/FeatureFlags; +Lcom/android/internal/hidden_from_bootclasspath/android/permission/flags/FeatureFlagsImpl; +Lcom/android/internal/hidden_from_bootclasspath/android/permission/flags/Flags; +Lcom/android/internal/hidden_from_bootclasspath/android/service/notification/FeatureFlags; +Lcom/android/internal/hidden_from_bootclasspath/android/service/notification/FeatureFlagsImpl; Lcom/android/internal/hidden_from_bootclasspath/android/service/notification/Flags; +Lcom/android/internal/hidden_from_bootclasspath/com/android/libcore/Flags; +Lcom/android/internal/hidden_from_bootclasspath/com/android/server/power/optimization/Flags; +Lcom/android/internal/hidden_from_bootclasspath/com/android/window/flags/FeatureFlags; +Lcom/android/internal/hidden_from_bootclasspath/com/android/window/flags/FeatureFlagsImpl; +Lcom/android/internal/hidden_from_bootclasspath/com/android/window/flags/Flags; Lcom/android/internal/infra/AbstractMultiplePendingRequestsRemoteService; Lcom/android/internal/infra/AbstractRemoteService$AsyncRequest; Lcom/android/internal/infra/AbstractRemoteService$BasePendingRequest; @@ -33722,6 +33621,7 @@ 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/ImeTracingPerfettoImpl; Lcom/android/internal/inputmethod/ImeTracingServerImpl; Lcom/android/internal/inputmethod/InputBindResult$1; Lcom/android/internal/inputmethod/InputBindResult-IA; @@ -33763,8 +33663,8 @@ 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-IA; Lcom/android/internal/jank/InteractionJankMonitor; Lcom/android/internal/listeners/ListenerExecutor$$ExternalSyntheticLambda0; Lcom/android/internal/listeners/ListenerExecutor$FailureCallback; @@ -33829,11 +33729,10 @@ 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-IA; Lcom/android/internal/os/BinderDeathDispatcher; -Lcom/android/internal/os/BinderInternal$BinderProxyLimitListener; -Lcom/android/internal/os/BinderInternal$BinderProxyLimitListenerDelegate; +Lcom/android/internal/os/BinderInternal$BinderProxyCountEventListenerDelegate; Lcom/android/internal/os/BinderInternal$CallSession; Lcom/android/internal/os/BinderInternal$CallStatsObserver; Lcom/android/internal/os/BinderInternal$GcWatcher; @@ -33852,6 +33751,11 @@ 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/DebugStore$DebugStoreNative; +Lcom/android/internal/os/DebugStore; +Lcom/android/internal/os/FeatureFlags; +Lcom/android/internal/os/FeatureFlagsImpl; +Lcom/android/internal/os/Flags; Lcom/android/internal/os/FuseAppLoop$1; Lcom/android/internal/os/FuseAppLoop; Lcom/android/internal/os/FuseUnavailableMountException; @@ -33908,10 +33812,10 @@ 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-IA; Lcom/android/internal/os/LooperStats; Lcom/android/internal/os/PowerProfile$CpuClusterKey; Lcom/android/internal/os/PowerProfile; @@ -33932,9 +33836,9 @@ 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-IA; Lcom/android/internal/os/RuntimeInit; Lcom/android/internal/os/SafeZipPathValidatorCallback; Lcom/android/internal/os/SomeArgs; @@ -33958,10 +33862,11 @@ 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/FeatureFlags; +Lcom/android/internal/pm/pkg/component/flags/FeatureFlagsImpl; 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; @@ -34006,12 +33911,12 @@ 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-IA; Lcom/android/internal/policy/PhoneWindow; Lcom/android/internal/policy/ScreenDecorationsUtils; Lcom/android/internal/policy/SystemBarUtils; @@ -34026,9 +33931,10 @@ 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/ravenwood/RavenwoodEnvironment$Workaround; +Lcom/android/internal/ravenwood/RavenwoodEnvironment; 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; @@ -34111,6 +34017,8 @@ 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$3; +Lcom/android/internal/telephony/CarrierKeyDownloadManager$DefaultNetworkCallback; Lcom/android/internal/telephony/CarrierKeyDownloadManager; Lcom/android/internal/telephony/CarrierPrivilegesTracker$1; Lcom/android/internal/telephony/CarrierPrivilegesTracker; @@ -34440,7 +34348,6 @@ 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; @@ -35060,6 +34967,7 @@ Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLa 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/SatelliteStats$CarrierRoamingSatelliteControllerStatsParams; Lcom/android/internal/telephony/metrics/ServiceStateStats$$ExternalSyntheticLambda0; Lcom/android/internal/telephony/metrics/ServiceStateStats$TimestampedServiceState; Lcom/android/internal/telephony/metrics/ServiceStateStats; @@ -35089,9 +34997,12 @@ 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$CarrierRoamingSatelliteControllerStats; +Lcom/android/internal/telephony/nano/PersistAtomsProto$CarrierRoamingSatelliteSession; 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$DataNetworkValidation; Lcom/android/internal/telephony/nano/PersistAtomsProto$EmergencyNumbersInfo; Lcom/android/internal/telephony/nano/PersistAtomsProto$GbaEvent; Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsDedicatedBearerEvent; @@ -35109,7 +35020,10 @@ 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$SatelliteAccessController; +Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteConfigUpdater; Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteController; +Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteEntitlement; Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteIncomingDatagram; Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteOutgoingDatagram; Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteProvision; @@ -35533,8 +35447,8 @@ 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-IA; Lcom/android/internal/util/FastPrintWriter; Lcom/android/internal/util/FastXmlSerializer; Lcom/android/internal/util/FileRotator$FileInfo; @@ -35564,11 +35478,11 @@ 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-IA; Lcom/android/internal/util/LatencyTracker; Lcom/android/internal/util/LineBreakBufferedWriter; Lcom/android/internal/util/LocalLog; @@ -35595,6 +35509,8 @@ 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/RateLimitingCache$ValueFetcher; +Lcom/android/internal/util/RateLimitingCache; Lcom/android/internal/util/RingBuffer$$ExternalSyntheticLambda0; Lcom/android/internal/util/RingBuffer$$ExternalSyntheticLambda1; Lcom/android/internal/util/RingBuffer; @@ -35605,22 +35521,18 @@ 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-IA; 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; @@ -35747,7 +35659,6 @@ 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; @@ -35812,8 +35723,11 @@ Lcom/android/internal/widget/floatingtoolbar/FloatingToolbar$$ExternalSyntheticL Lcom/android/internal/widget/floatingtoolbar/FloatingToolbar$$ExternalSyntheticLambda1; Lcom/android/internal/widget/floatingtoolbar/FloatingToolbar; Lcom/android/internal/widget/floatingtoolbar/FloatingToolbarPopup; +Lcom/android/media/flags/FeatureFlags; +Lcom/android/media/flags/FeatureFlagsImpl; Lcom/android/media/flags/Flags; Lcom/android/modules/expresslog/Counter; +Lcom/android/modules/expresslog/MetricIds$MetricInfo; Lcom/android/modules/expresslog/MetricIds; Lcom/android/modules/expresslog/StatsExpressLog; Lcom/android/modules/utils/BasicShellCommandHandler; @@ -35832,6 +35746,7 @@ 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/nfc/x/android/nfc/Flags; Lcom/android/phone/ecc/nano/CodedInputByteBufferNano; Lcom/android/phone/ecc/nano/CodedOutputByteBufferNano$OutOfSpaceException; Lcom/android/phone/ecc/nano/CodedOutputByteBufferNano; @@ -35847,15 +35762,19 @@ 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/FeatureFlags; +Lcom/android/sdksandbox/flags/FeatureFlagsImpl; 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/am/nano/FrameworkCapability; +Lcom/android/server/am/nano/VMCapability; +Lcom/android/server/am/nano/VMInfo; 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; @@ -35881,6 +35800,7 @@ 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$ExcessiveBinderCalls; Lcom/android/server/criticalevents/nano/CriticalEventProto$HalfWatchdog; Lcom/android/server/criticalevents/nano/CriticalEventProto$InstallPackages; Lcom/android/server/criticalevents/nano/CriticalEventProto$JavaCrash; @@ -35890,6 +35810,7 @@ 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/ondeviceintelligence/nano/InferenceInfo; Lcom/android/server/sip/SipHelper; Lcom/android/server/sip/SipService$ConnectivityReceiver$1; Lcom/android/server/sip/SipService$ConnectivityReceiver; @@ -35931,6 +35852,9 @@ 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/telecom/flags/FeatureFlags; +Lcom/android/server/telecom/flags/FeatureFlagsImpl; +Lcom/android/server/telecom/flags/Flags; Lcom/android/server/usage/AppStandbyInternal$AppIdleStateChangeListener; Lcom/android/server/usage/AppStandbyInternal; Lcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto; @@ -35962,9 +35886,6 @@ 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; @@ -36400,7 +36321,6 @@ 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/io/InterruptedIOException; Ljavax/microedition/khronos/egl/EGL10; Ljavax/microedition/khronos/egl/EGL11; Ljavax/microedition/khronos/egl/EGL; @@ -36530,6 +36450,7 @@ 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/AttributesImpl; Lorg/ccil/cowan/tagsoup/AutoDetector; Lorg/ccil/cowan/tagsoup/CommandLine; Lorg/ccil/cowan/tagsoup/Element; @@ -36649,6 +36570,8 @@ Lorg/ccil/cowan/tagsoup/jaxp/SAXParserImpl; [Landroid/graphics/fonts/FontVariationAxis; [Landroid/hardware/CameraStatus; [Landroid/hardware/biometrics/BiometricSourceType; +[Landroid/hardware/camera2/CameraCharacteristics$Key; +[Landroid/hardware/camera2/marshal/MarshalQueryable; [Landroid/hardware/camera2/params/Capability; [Landroid/hardware/camera2/params/Face; [Landroid/hardware/camera2/params/HighSpeedVideoConfiguration; @@ -36710,6 +36633,7 @@ Lorg/ccil/cowan/tagsoup/jaxp/SAXParserImpl; [Landroid/icu/impl/units/MeasureUnitImpl$InitialCompoundPart; [Landroid/icu/impl/units/MeasureUnitImpl$PowerPart; [Landroid/icu/impl/units/MeasureUnitImpl$UnitsParser$Token$Type; +[Landroid/icu/lang/UCharacter$IdentifierType; [Landroid/icu/lang/UCharacter$UnicodeBlock; [Landroid/icu/lang/UScript$ScriptUsage; [Landroid/icu/lang/UScriptRun$ParenStackEntry; @@ -37051,4 +36975,4 @@ Lorg/ccil/cowan/tagsoup/jaxp/SAXParserImpl; [[Landroid/graphics/Rect; [[Landroid/media/ExifInterface$ExifTag; [[Landroid/widget/GridLayout$Arc; -[[Lcom/android/internal/widget/LockPatternView$Cell; \ No newline at end of file +[[Lcom/android/internal/widget/LockPatternView$Cell; diff --git a/boot/preloaded-classes b/boot/preloaded-classes index 40318ed96f197ba08ed041195dfdf036d44c8542..a696e03d5bdfb68b5ac445e59fe7aad29e7013a0 100644 --- a/boot/preloaded-classes +++ b/boot/preloaded-classes @@ -56,13 +56,13 @@ android.accounts.AccountManager$5 android.accounts.AccountManager$8 android.accounts.AccountManager$AccountKeyData android.accounts.AccountManager$AmsTask$1 -android.accounts.AccountManager$AmsTask$Response-IA android.accounts.AccountManager$AmsTask$Response android.accounts.AccountManager$AmsTask android.accounts.AccountManager$BaseFutureTask$1 android.accounts.AccountManager$BaseFutureTask android.accounts.AccountManager$Future2Task$1 android.accounts.AccountManager$Future2Task +android.accounts.AccountManager-IA android.accounts.AccountManager android.accounts.AccountManagerCallback android.accounts.AccountManagerFuture @@ -86,13 +86,20 @@ android.accounts.IAccountManagerResponse android.accounts.NetworkErrorException android.accounts.OnAccountsUpdateListener android.accounts.OperationCanceledException +android.aconfig.nano.Aconfig$flag_declaration +android.aconfig.nano.Aconfig$flag_declarations +android.aconfig.nano.Aconfig$flag_value +android.aconfig.nano.Aconfig$flag_values +android.aconfig.nano.Aconfig$parsed_flag +android.aconfig.nano.Aconfig$parsed_flags +android.aconfig.nano.Aconfig$tracepoint android.animation.AnimationHandler$$ExternalSyntheticLambda0 android.animation.AnimationHandler$1 android.animation.AnimationHandler$2 android.animation.AnimationHandler$AnimationFrameCallback android.animation.AnimationHandler$AnimationFrameCallbackProvider -android.animation.AnimationHandler$MyFrameCallbackProvider-IA android.animation.AnimationHandler$MyFrameCallbackProvider +android.animation.AnimationHandler-IA android.animation.AnimationHandler android.animation.Animator$AnimatorCaller$$ExternalSyntheticLambda0 android.animation.Animator$AnimatorCaller$$ExternalSyntheticLambda1 @@ -106,8 +113,8 @@ android.animation.Animator$AnimatorConstantState android.animation.Animator$AnimatorListener android.animation.Animator$AnimatorPauseListener android.animation.Animator -android.animation.AnimatorInflater$PathDataEvaluator-IA android.animation.AnimatorInflater$PathDataEvaluator +android.animation.AnimatorInflater-IA android.animation.AnimatorInflater android.animation.AnimatorListenerAdapter android.animation.AnimatorSet$$ExternalSyntheticLambda0 @@ -118,8 +125,8 @@ android.animation.AnimatorSet$3 android.animation.AnimatorSet$AnimationEvent android.animation.AnimatorSet$Builder android.animation.AnimatorSet$Node -android.animation.AnimatorSet$SeekState-IA android.animation.AnimatorSet$SeekState +android.animation.AnimatorSet-IA android.animation.AnimatorSet android.animation.ArgbEvaluator android.animation.BidirectionalTypeConverter @@ -150,8 +157,8 @@ android.animation.PathKeyframes$3 android.animation.PathKeyframes$4 android.animation.PathKeyframes$FloatKeyframesBase android.animation.PathKeyframes$IntKeyframesBase -android.animation.PathKeyframes$SimpleKeyframes-IA android.animation.PathKeyframes$SimpleKeyframes +android.animation.PathKeyframes-IA android.animation.PathKeyframes android.animation.PropertyValuesHolder$1 android.animation.PropertyValuesHolder$FloatPropertyValuesHolder @@ -164,8 +171,8 @@ android.animation.RectEvaluator android.animation.RevealAnimator android.animation.StateListAnimator$1 android.animation.StateListAnimator$StateListAnimatorConstantState -android.animation.StateListAnimator$Tuple-IA android.animation.StateListAnimator$Tuple +android.animation.StateListAnimator-IA android.animation.StateListAnimator android.animation.TimeAnimator$TimeListener android.animation.TimeAnimator @@ -198,19 +205,22 @@ android.app.Activity$$ExternalSyntheticLambda0 android.app.Activity$1 android.app.Activity$HostCallbacks android.app.Activity$ManagedCursor -android.app.Activity$ManagedDialog-IA android.app.Activity$ManagedDialog android.app.Activity$NonConfigurationInstances android.app.Activity$RequestFinishCallback android.app.Activity$TranslucentConversionListener +android.app.Activity-IA android.app.Activity android.app.ActivityClient$1 -android.app.ActivityClient$ActivityClientControllerSingleton-IA android.app.ActivityClient$ActivityClientControllerSingleton android.app.ActivityClient-IA android.app.ActivityClient -android.app.ActivityManager$2 +android.app.ActivityManager$$ExternalSyntheticLambda0 +android.app.ActivityManager$$ExternalSyntheticLambda1 +android.app.ActivityManager$$ExternalSyntheticLambda2 +android.app.ActivityManager$1 android.app.ActivityManager$3 +android.app.ActivityManager$4 android.app.ActivityManager$AppTask android.app.ActivityManager$MemoryInfo$1 android.app.ActivityManager$MemoryInfo @@ -222,20 +232,16 @@ android.app.ActivityManager$ProcessErrorStateInfo$1 android.app.ActivityManager$ProcessErrorStateInfo android.app.ActivityManager$RecentTaskInfo$1 android.app.ActivityManager$RecentTaskInfo$PersistedTaskSnapshotData -android.app.ActivityManager$RecentTaskInfo-IA android.app.ActivityManager$RecentTaskInfo android.app.ActivityManager$RunningAppProcessInfo$1 -android.app.ActivityManager$RunningAppProcessInfo-IA android.app.ActivityManager$RunningAppProcessInfo android.app.ActivityManager$RunningServiceInfo$1 -android.app.ActivityManager$RunningServiceInfo-IA android.app.ActivityManager$RunningServiceInfo android.app.ActivityManager$RunningTaskInfo$1 -android.app.ActivityManager$RunningTaskInfo-IA android.app.ActivityManager$RunningTaskInfo android.app.ActivityManager$TaskDescription$1 -android.app.ActivityManager$TaskDescription-IA android.app.ActivityManager$TaskDescription +android.app.ActivityManager-IA android.app.ActivityManager android.app.ActivityManagerInternal android.app.ActivityOptions$1 @@ -268,7 +274,6 @@ android.app.ActivityThread$ActivityClientRecord android.app.ActivityThread$AppBindData android.app.ActivityThread$ApplicationThread$$ExternalSyntheticLambda2 android.app.ActivityThread$ApplicationThread$1 -android.app.ActivityThread$ApplicationThread-IA android.app.ActivityThread$BindServiceData android.app.ActivityThread$ContextCleanupInfo android.app.ActivityThread$CreateBackupAgentData @@ -278,7 +283,6 @@ android.app.ActivityThread$DumpHeapData android.app.ActivityThread$DumpResourcesData android.app.ActivityThread$GcIdler android.app.ActivityThread$H -android.app.ActivityThread$Idler-IA android.app.ActivityThread$Idler android.app.ActivityThread$Profiler android.app.ActivityThread$ProviderClientRecord @@ -290,6 +294,7 @@ android.app.ActivityThread$RequestAssistContextExtras android.app.ActivityThread$SafeCancellationTransport android.app.ActivityThread$ServiceArgsData android.app.ActivityThread$UpdateCompatibilityData +android.app.ActivityThread-IA android.app.ActivityThread android.app.ActivityThreadInternal android.app.ActivityTransitionCoordinator @@ -360,6 +365,7 @@ android.app.AppOpsManager android.app.AppOpsManagerInternal android.app.Application$ActivityLifecycleCallbacks android.app.Application$OnProvideAssistDataListener +android.app.Application android.app.ApplicationErrorReport$1 android.app.ApplicationErrorReport$AnrInfo android.app.ApplicationErrorReport$BatteryInfo @@ -371,8 +377,8 @@ android.app.ApplicationErrorReport android.app.ApplicationExitInfo$1 android.app.ApplicationExitInfo-IA android.app.ApplicationExitInfo -android.app.ApplicationLoaders$CachedClassLoader-IA android.app.ApplicationLoaders$CachedClassLoader +android.app.ApplicationLoaders-IA android.app.ApplicationLoaders android.app.ApplicationPackageManager$$ExternalSyntheticLambda1 android.app.ApplicationPackageManager$$ExternalSyntheticLambda2 @@ -395,6 +401,8 @@ android.app.BackgroundInstallControlManager android.app.BackgroundServiceStartNotAllowedException$1 android.app.BackgroundServiceStartNotAllowedException android.app.BroadcastOptions +android.app.BroadcastStickyCache +android.app.CameraCompatTaskInfo$1 android.app.CameraCompatTaskInfo android.app.ClientTransactionHandler android.app.ComponentCaller @@ -499,7 +507,6 @@ android.app.IAssistDataReceiver android.app.IBackupAgent$Stub$Proxy android.app.IBackupAgent$Stub android.app.IBackupAgent -android.app.ICompatCameraControlCallback android.app.IForegroundServiceObserver$Stub$Proxy android.app.IForegroundServiceObserver$Stub android.app.IForegroundServiceObserver @@ -594,14 +601,13 @@ android.app.ListActivity android.app.LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0 android.app.LoadedApk$ReceiverDispatcher$Args android.app.LoadedApk$ReceiverDispatcher -android.app.LoadedApk$ServiceDispatcher$ConnectionInfo-IA android.app.LoadedApk$ServiceDispatcher$ConnectionInfo android.app.LoadedApk$ServiceDispatcher$DeathMonitor android.app.LoadedApk$ServiceDispatcher$RunConnection android.app.LoadedApk$ServiceDispatcher android.app.LoadedApk$SplitDependencyLoaderImpl -android.app.LoadedApk$WarningContextClassLoader-IA android.app.LoadedApk$WarningContextClassLoader +android.app.LoadedApk-IA android.app.LoadedApk android.app.LoaderManager$LoaderCallbacks android.app.LoaderManager @@ -615,13 +621,11 @@ android.app.Notification$$ExternalSyntheticLambda0 android.app.Notification$1 android.app.Notification$Action$1 android.app.Notification$Action$Builder -android.app.Notification$Action-IA android.app.Notification$Action android.app.Notification$BigPictureStyle android.app.Notification$BigTextStyle android.app.Notification$BubbleMetadata$1 android.app.Notification$BubbleMetadata$Builder -android.app.Notification$BubbleMetadata-IA android.app.Notification$BubbleMetadata android.app.Notification$Builder android.app.Notification$BuilderRemoteViews @@ -634,12 +638,12 @@ android.app.Notification$InboxStyle android.app.Notification$MediaStyle android.app.Notification$MessagingStyle$Message android.app.Notification$MessagingStyle -android.app.Notification$StandardTemplateParams-IA android.app.Notification$StandardTemplateParams android.app.Notification$Style android.app.Notification$TemplateBindResult$MarginSet android.app.Notification$TemplateBindResult android.app.Notification$TvExtender +android.app.Notification-IA android.app.Notification android.app.NotificationChannel$1 android.app.NotificationChannel @@ -658,7 +662,6 @@ android.app.PackageInstallObserver android.app.PendingIntent$$ExternalSyntheticLambda0 android.app.PendingIntent$$ExternalSyntheticLambda1 android.app.PendingIntent$$ExternalSyntheticLambda2 -android.app.PendingIntent$$ExternalSyntheticLambda3 android.app.PendingIntent$1 android.app.PendingIntent$CancelListener android.app.PendingIntent$CanceledException @@ -666,7 +669,6 @@ android.app.PendingIntent$OnFinished android.app.PendingIntent$OnMarshaledListener android.app.PendingIntent android.app.Person$1 -android.app.Person$Builder-IA android.app.Person$Builder android.app.Person-IA android.app.Person @@ -704,15 +706,14 @@ android.app.RemoteInputHistoryItem android.app.RemoteServiceException android.app.ResourcesManager$$ExternalSyntheticLambda0 android.app.ResourcesManager$$ExternalSyntheticLambda1 -android.app.ResourcesManager$ActivityResource-IA android.app.ResourcesManager$ActivityResource -android.app.ResourcesManager$ActivityResources-IA android.app.ResourcesManager$ActivityResources android.app.ResourcesManager$ApkAssetsSupplier android.app.ResourcesManager$ApkKey +android.app.ResourcesManager$PathCollector android.app.ResourcesManager$SharedLibraryAssets -android.app.ResourcesManager$UpdateHandler-IA android.app.ResourcesManager$UpdateHandler +android.app.ResourcesManager-IA android.app.ResourcesManager android.app.ResultInfo$1 android.app.ResultInfo @@ -738,9 +739,10 @@ android.app.SharedPreferencesImpl$1 android.app.SharedPreferencesImpl$EditorImpl$$ExternalSyntheticLambda0 android.app.SharedPreferencesImpl$EditorImpl$1 android.app.SharedPreferencesImpl$EditorImpl$2 -android.app.SharedPreferencesImpl$MemoryCommitResult-IA +android.app.SharedPreferencesImpl$EditorImpl android.app.SharedPreferencesImpl$MemoryCommitResult android.app.SharedPreferencesImpl$SharedPreferencesThreadFactory +android.app.SharedPreferencesImpl-IA android.app.StackTrace android.app.StatusBarManager android.app.SyncNotedAppOp$1 @@ -797,6 +799,8 @@ android.app.SystemServiceRegistry$143 android.app.SystemServiceRegistry$144 android.app.SystemServiceRegistry$145 android.app.SystemServiceRegistry$146 +android.app.SystemServiceRegistry$147 +android.app.SystemServiceRegistry$148 android.app.SystemServiceRegistry$14 android.app.SystemServiceRegistry$15 android.app.SystemServiceRegistry$16 @@ -906,8 +910,8 @@ android.app.UiModeManager$1 android.app.UiModeManager$Globals android.app.UiModeManager$InnerListener android.app.UiModeManager$OnProjectionStateChangedListener -android.app.UiModeManager$OnProjectionStateChangedListenerResourceManager-IA android.app.UiModeManager$OnProjectionStateChangedListenerResourceManager +android.app.UiModeManager-IA android.app.UiModeManager android.app.UidObserver android.app.UriGrantsManager$1 @@ -1019,17 +1023,17 @@ android.app.assist.AssistStructure$ViewNodeText android.app.assist.AssistStructure$ViewStackEntry android.app.assist.AssistStructure$WindowNode android.app.assist.AssistStructure -android.app.backup.BackupAgent$BackupServiceBinder-IA android.app.backup.BackupAgent$BackupServiceBinder android.app.backup.BackupAgent$SharedPrefsSynchronizer +android.app.backup.BackupAgent-IA android.app.backup.BackupAgent android.app.backup.BackupAgentHelper android.app.backup.BackupDataInput$EntityHeader android.app.backup.BackupDataInput android.app.backup.BackupDataOutput android.app.backup.BackupHelper -android.app.backup.BackupHelperDispatcher$Header-IA android.app.backup.BackupHelperDispatcher$Header +android.app.backup.BackupHelperDispatcher-IA android.app.backup.BackupHelperDispatcher android.app.backup.BackupHelperWithLogger android.app.backup.BackupManager$BackupObserverWrapper$1 @@ -1117,11 +1121,11 @@ android.app.job.IUserVisibleJobObserver android.app.job.JobInfo$1 android.app.job.JobInfo$Builder android.app.job.JobInfo$TriggerContentUri$1 -android.app.job.JobInfo$TriggerContentUri-IA android.app.job.JobInfo$TriggerContentUri android.app.job.JobInfo-IA android.app.job.JobInfo android.app.job.JobParameters$1 +android.app.job.JobParameters$JobCleanupCallback android.app.job.JobParameters-IA android.app.job.JobParameters android.app.job.JobScheduler @@ -1195,8 +1199,6 @@ android.app.servertransaction.LaunchActivityItem android.app.servertransaction.NewIntentItem$1 android.app.servertransaction.NewIntentItem-IA android.app.servertransaction.NewIntentItem -android.app.servertransaction.ObjectPool -android.app.servertransaction.ObjectPoolItem android.app.servertransaction.PauseActivityItem$1 android.app.servertransaction.PauseActivityItem-IA android.app.servertransaction.PauseActivityItem @@ -1216,6 +1218,7 @@ android.app.servertransaction.TopResumedActivityChangeItem-IA android.app.servertransaction.TopResumedActivityChangeItem android.app.servertransaction.TransactionExecutor android.app.servertransaction.TransactionExecutorHelper +android.app.servertransaction.WindowStateTransactionItem$TransactionListener android.app.slice.ISliceManager$Stub$Proxy android.app.slice.ISliceManager$Stub android.app.slice.ISliceManager @@ -1267,6 +1270,7 @@ android.app.smartspace.uitemplatedata.TapAction$1 android.app.smartspace.uitemplatedata.TapAction android.app.smartspace.uitemplatedata.Text$1 android.app.smartspace.uitemplatedata.Text +android.app.supervision.SupervisionManager android.app.time.ITimeZoneDetectorListener$Stub$Proxy android.app.time.ITimeZoneDetectorListener$Stub android.app.time.ITimeZoneDetectorListener @@ -1389,15 +1393,15 @@ android.companion.virtual.IVirtualDevice android.companion.virtual.IVirtualDeviceManager$Stub$Proxy android.companion.virtual.IVirtualDeviceManager$Stub android.companion.virtual.IVirtualDeviceManager +android.companion.virtual.VirtualDevice$1 android.companion.virtual.VirtualDevice android.companion.virtual.VirtualDeviceManager android.companion.virtual.flags.FeatureFlags android.companion.virtual.flags.FeatureFlagsImpl android.companion.virtual.flags.Flags -android.content.AbstractThreadedSyncAdapter$ISyncAdapterImpl-IA android.content.AbstractThreadedSyncAdapter$ISyncAdapterImpl -android.content.AbstractThreadedSyncAdapter$SyncThread-IA android.content.AbstractThreadedSyncAdapter$SyncThread +android.content.AbstractThreadedSyncAdapter-IA android.content.AbstractThreadedSyncAdapter android.content.ActivityNotFoundException android.content.ApexEnvironment @@ -1417,8 +1421,8 @@ android.content.BroadcastReceiver$PendingResult$1 android.content.BroadcastReceiver$PendingResult android.content.BroadcastReceiver android.content.ClipData$1 -android.content.ClipData$Item-IA android.content.ClipData$Item +android.content.ClipData-IA android.content.ClipData android.content.ClipDescription$1 android.content.ClipDescription @@ -1446,14 +1450,13 @@ android.content.ContentProvider$PipeDataWriter android.content.ContentProvider$Transport android.content.ContentProvider android.content.ContentProviderClient$CursorWrapperInner -android.content.ContentProviderClient$NotRespondingRunnable-IA android.content.ContentProviderClient$NotRespondingRunnable +android.content.ContentProviderClient-IA android.content.ContentProviderClient android.content.ContentProviderNative android.content.ContentProviderOperation$1 android.content.ContentProviderOperation$BackReference$1 android.content.ContentProviderOperation$BackReference -android.content.ContentProviderOperation$Builder-IA android.content.ContentProviderOperation$Builder android.content.ContentProviderOperation-IA android.content.ContentProviderOperation @@ -1463,11 +1466,10 @@ android.content.ContentResolver$1 android.content.ContentResolver$2 android.content.ContentResolver$OpenResourceIdResult android.content.ContentResolver$ParcelFileDescriptorInner -android.content.ContentResolver$ResultListener-IA android.content.ContentResolver$ResultListener -android.content.ContentResolver$StringResultListener-IA android.content.ContentResolver$StringResultListener android.content.ContentResolver$UriResultListener +android.content.ContentResolver-IA android.content.ContentResolver android.content.ContentUris android.content.ContentValues$1 @@ -1735,11 +1737,11 @@ android.content.pm.LauncherApps$1 android.content.pm.LauncherApps$AppUsageLimit$1 android.content.pm.LauncherApps$AppUsageLimit android.content.pm.LauncherApps$Callback -android.content.pm.LauncherApps$CallbackMessageHandler$CallbackInfo-IA android.content.pm.LauncherApps$CallbackMessageHandler$CallbackInfo android.content.pm.LauncherApps$CallbackMessageHandler android.content.pm.LauncherApps$ShortcutQuery$QueryFlags android.content.pm.LauncherApps$ShortcutQuery +android.content.pm.LauncherApps-IA android.content.pm.LauncherApps android.content.pm.ModuleInfo$1 android.content.pm.ModuleInfo-IA @@ -1783,7 +1785,6 @@ android.content.pm.PackageManager$Property android.content.pm.PackageManager$ResolveInfoFlags android.content.pm.PackageManager android.content.pm.PackageParser$Activity$1 -android.content.pm.PackageParser$Activity-IA android.content.pm.PackageParser$Activity android.content.pm.PackageParser$ActivityIntentInfo android.content.pm.PackageParser$ApkLite @@ -1803,16 +1804,13 @@ android.content.pm.PackageParser$PackageParserException android.content.pm.PackageParser$ParseComponentArgs android.content.pm.PackageParser$ParsePackageItemArgs android.content.pm.PackageParser$Permission$1 -android.content.pm.PackageParser$Permission-IA android.content.pm.PackageParser$Permission android.content.pm.PackageParser$PermissionGroup$1 android.content.pm.PackageParser$PermissionGroup android.content.pm.PackageParser$Provider$1 -android.content.pm.PackageParser$Provider-IA android.content.pm.PackageParser$Provider android.content.pm.PackageParser$ProviderIntentInfo android.content.pm.PackageParser$Service$1 -android.content.pm.PackageParser$Service-IA android.content.pm.PackageParser$Service android.content.pm.PackageParser$ServiceIntentInfo android.content.pm.PackageParser$SigningDetails$1 @@ -1821,6 +1819,7 @@ android.content.pm.PackageParser$SigningDetails android.content.pm.PackageParser$SplitAssetLoader android.content.pm.PackageParser$SplitDependencyLoader$IllegalDependencyException android.content.pm.PackageParser$SplitNameComparator +android.content.pm.PackageParser-IA android.content.pm.PackageParser android.content.pm.PackageParserCacheHelper$ReadHelper android.content.pm.PackageParserCacheHelper$WriteHelper @@ -1945,7 +1944,6 @@ android.content.res.ApkAssets android.content.res.AssetFileDescriptor$1 android.content.res.AssetFileDescriptor$AutoCloseInputStream android.content.res.AssetFileDescriptor -android.content.res.AssetManager$AssetInputStream-IA android.content.res.AssetManager$AssetInputStream android.content.res.AssetManager$Builder android.content.res.AssetManager-IA @@ -1987,19 +1985,20 @@ android.content.res.ResourceTimer$Config android.content.res.ResourceTimer$Timer android.content.res.ResourceTimer android.content.res.Resources$$ExternalSyntheticLambda0 +android.content.res.Resources$$ExternalSyntheticLambda1 android.content.res.Resources$AssetManagerUpdateHandler android.content.res.Resources$NotFoundException -android.content.res.Resources$Theme-IA android.content.res.Resources$Theme android.content.res.Resources$ThemeKey android.content.res.Resources$UpdateCallbacks +android.content.res.Resources-IA android.content.res.Resources android.content.res.ResourcesImpl$$ExternalSyntheticLambda0 android.content.res.ResourcesImpl$$ExternalSyntheticLambda1 android.content.res.ResourcesImpl$$ExternalSyntheticLambda2 -android.content.res.ResourcesImpl$LookupStack-IA android.content.res.ResourcesImpl$LookupStack android.content.res.ResourcesImpl$ThemeImpl +android.content.res.ResourcesImpl-IA android.content.res.ResourcesImpl android.content.res.ResourcesKey android.content.res.StringBlock$Height @@ -2079,17 +2078,20 @@ android.database.sqlite.SQLiteBlobTooBigException android.database.sqlite.SQLiteCantOpenDatabaseException android.database.sqlite.SQLiteClosable android.database.sqlite.SQLiteCompatibilityWalFlags -android.database.sqlite.SQLiteConnection$Operation-IA android.database.sqlite.SQLiteConnection$Operation +android.database.sqlite.SQLiteConnection$OperationLog$$ExternalSyntheticLambda0 +android.database.sqlite.SQLiteConnection$OperationLog$$ExternalSyntheticLambda1 android.database.sqlite.SQLiteConnection$OperationLog android.database.sqlite.SQLiteConnection$PreparedStatement android.database.sqlite.SQLiteConnection$PreparedStatementCache +android.database.sqlite.SQLiteConnection$RateLimiter +android.database.sqlite.SQLiteConnection-IA android.database.sqlite.SQLiteConnection android.database.sqlite.SQLiteConnectionPool$1 android.database.sqlite.SQLiteConnectionPool$AcquiredConnectionStatus -android.database.sqlite.SQLiteConnectionPool$ConnectionWaiter-IA android.database.sqlite.SQLiteConnectionPool$ConnectionWaiter android.database.sqlite.SQLiteConnectionPool$IdleConnectionHandler +android.database.sqlite.SQLiteConnectionPool-IA android.database.sqlite.SQLiteConnectionPool android.database.sqlite.SQLiteConstraintException android.database.sqlite.SQLiteCursorDriver @@ -2101,8 +2103,8 @@ android.database.sqlite.SQLiteDatabase$$ExternalSyntheticLambda3 android.database.sqlite.SQLiteDatabase$1 android.database.sqlite.SQLiteDatabase$CursorFactory android.database.sqlite.SQLiteDatabase$OpenParams$Builder -android.database.sqlite.SQLiteDatabase$OpenParams-IA android.database.sqlite.SQLiteDatabase$OpenParams +android.database.sqlite.SQLiteDatabase-IA android.database.sqlite.SQLiteDatabase android.database.sqlite.SQLiteDatabaseConfiguration android.database.sqlite.SQLiteDatabaseCorruptException @@ -2125,8 +2127,8 @@ android.database.sqlite.SQLiteQuery android.database.sqlite.SQLiteQueryBuilder android.database.sqlite.SQLiteRawStatement android.database.sqlite.SQLiteReadOnlyDatabaseException -android.database.sqlite.SQLiteSession$Transaction-IA android.database.sqlite.SQLiteSession$Transaction +android.database.sqlite.SQLiteSession-IA android.database.sqlite.SQLiteSession android.database.sqlite.SQLiteStatement android.database.sqlite.SQLiteStatementInfo @@ -2135,8 +2137,8 @@ android.database.sqlite.SQLiteTokenizer android.database.sqlite.SQLiteTransactionListener android.database.sqlite.SqliteWrapper android.ddm.DdmHandle -android.ddm.DdmHandleAppName$Names-IA android.ddm.DdmHandleAppName$Names +android.ddm.DdmHandleAppName-IA android.ddm.DdmHandleAppName android.ddm.DdmHandleExit android.ddm.DdmHandleHeap @@ -2194,12 +2196,16 @@ android.graphics.ColorSpace$Rgb$$ExternalSyntheticLambda0 android.graphics.ColorSpace$Rgb$$ExternalSyntheticLambda1 android.graphics.ColorSpace$Rgb$$ExternalSyntheticLambda2 android.graphics.ColorSpace$Rgb$$ExternalSyntheticLambda3 +android.graphics.ColorSpace$Rgb$$ExternalSyntheticLambda4 android.graphics.ColorSpace$Rgb$$ExternalSyntheticLambda5 +android.graphics.ColorSpace$Rgb$$ExternalSyntheticLambda6 +android.graphics.ColorSpace$Rgb$$ExternalSyntheticLambda9 +android.graphics.ColorSpace$Rgb$Native android.graphics.ColorSpace$Rgb$NoImagePreloadHolder android.graphics.ColorSpace$Rgb$TransferParameters -android.graphics.ColorSpace$Rgb-IA android.graphics.ColorSpace$Rgb android.graphics.ColorSpace$Xyz +android.graphics.ColorSpace-IA android.graphics.ColorSpace android.graphics.Compatibility android.graphics.ComposePathEffect @@ -2229,11 +2235,11 @@ android.graphics.HardwareRenderer$DestroyContextRunnable android.graphics.HardwareRenderer$FrameCommitCallback android.graphics.HardwareRenderer$FrameCompleteCallback android.graphics.HardwareRenderer$FrameDrawingCallback -android.graphics.HardwareRenderer$FrameRenderRequest-IA android.graphics.HardwareRenderer$FrameRenderRequest android.graphics.HardwareRenderer$PrepareSurfaceControlForWebviewCallback android.graphics.HardwareRenderer$ProcessInitializer$1 android.graphics.HardwareRenderer$ProcessInitializer +android.graphics.HardwareRenderer-IA android.graphics.HardwareRenderer android.graphics.HardwareRendererObserver$$ExternalSyntheticLambda0 android.graphics.HardwareRendererObserver$OnFrameMetricsAvailableListener @@ -2242,12 +2248,11 @@ android.graphics.ImageDecoder$AssetInputStreamSource android.graphics.ImageDecoder$ByteArraySource android.graphics.ImageDecoder$DecodeException android.graphics.ImageDecoder$ImageDecoderSourceTrace -android.graphics.ImageDecoder$ImageInfo-IA android.graphics.ImageDecoder$ImageInfo android.graphics.ImageDecoder$InputStreamSource android.graphics.ImageDecoder$OnHeaderDecodedListener -android.graphics.ImageDecoder$Source-IA android.graphics.ImageDecoder$Source +android.graphics.ImageDecoder-IA android.graphics.ImageDecoder android.graphics.ImageFormat android.graphics.Insets$1 @@ -2260,6 +2265,7 @@ android.graphics.LightingColorFilter android.graphics.LinearGradient android.graphics.MaskFilter android.graphics.Matrix$1 +android.graphics.Matrix$ExtraNatives android.graphics.Matrix$NoImagePreloadHolder android.graphics.Matrix$ScaleToFit android.graphics.Matrix @@ -2283,6 +2289,7 @@ android.graphics.Paint android.graphics.PaintFlagsDrawFilter android.graphics.Path$Direction android.graphics.Path$FillType +android.graphics.Path$NoImagePreloadHolder android.graphics.Path$Op android.graphics.Path android.graphics.PathDashPathEffect @@ -2363,7 +2370,6 @@ android.graphics.drawable.AnimatedStateListDrawable$AnimatedStateListState android.graphics.drawable.AnimatedStateListDrawable$AnimatedVectorDrawableTransition android.graphics.drawable.AnimatedStateListDrawable$AnimationDrawableTransition android.graphics.drawable.AnimatedStateListDrawable$FrameInterpolator -android.graphics.drawable.AnimatedStateListDrawable$Transition-IA android.graphics.drawable.AnimatedStateListDrawable$Transition android.graphics.drawable.AnimatedStateListDrawable-IA android.graphics.drawable.AnimatedStateListDrawable @@ -2397,9 +2403,9 @@ android.graphics.drawable.Drawable$Callback android.graphics.drawable.Drawable$ConstantState android.graphics.drawable.Drawable android.graphics.drawable.DrawableContainer$1 -android.graphics.drawable.DrawableContainer$BlockInvalidateCallback-IA android.graphics.drawable.DrawableContainer$BlockInvalidateCallback android.graphics.drawable.DrawableContainer$DrawableContainerState +android.graphics.drawable.DrawableContainer-IA android.graphics.drawable.DrawableContainer android.graphics.drawable.DrawableInflater android.graphics.drawable.DrawableWrapper$DrawableWrapperState @@ -2493,6 +2499,7 @@ android.graphics.drawable.shapes.RectShape android.graphics.drawable.shapes.RoundRectShape android.graphics.drawable.shapes.Shape android.graphics.fonts.Font$Builder +android.graphics.fonts.Font$NoImagePreloadHolder android.graphics.fonts.Font android.graphics.fonts.FontCustomizationParser$Result android.graphics.fonts.FontCustomizationParser @@ -2511,7 +2518,6 @@ android.graphics.text.LineBreakConfig$Builder android.graphics.text.LineBreakConfig android.graphics.text.LineBreaker$Builder android.graphics.text.LineBreaker$ParagraphConstraints -android.graphics.text.LineBreaker$Result-IA android.graphics.text.LineBreaker$Result android.graphics.text.LineBreaker-IA android.graphics.text.LineBreaker @@ -2645,7 +2651,6 @@ android.hardware.camera2.CameraCharacteristics$5 android.hardware.camera2.CameraCharacteristics$6 android.hardware.camera2.CameraCharacteristics$7 android.hardware.camera2.CameraCharacteristics$8 -android.hardware.camera2.CameraCharacteristics$9 android.hardware.camera2.CameraCharacteristics$Key android.hardware.camera2.CameraCharacteristics android.hardware.camera2.CameraDevice$StateCallback @@ -2665,18 +2670,17 @@ android.hardware.camera2.CameraMetadata android.hardware.camera2.CameraOfflineSession$CameraOfflineSessionCallback android.hardware.camera2.CaptureRequest$1 android.hardware.camera2.CaptureRequest$2 -android.hardware.camera2.CaptureRequest$3 android.hardware.camera2.CaptureRequest$Key android.hardware.camera2.CaptureRequest android.hardware.camera2.CaptureResult$1 android.hardware.camera2.CaptureResult$2 android.hardware.camera2.CaptureResult$3 -android.hardware.camera2.CaptureResult$4 android.hardware.camera2.CaptureResult$Key android.hardware.camera2.CaptureResult android.hardware.camera2.DngCreator android.hardware.camera2.TotalCaptureResult android.hardware.camera2.extension.ICaptureProcessorImpl +android.hardware.camera2.impl.CameraDeviceImpl$1 android.hardware.camera2.impl.CameraDeviceImpl$CameraHandlerExecutor android.hardware.camera2.impl.CameraDeviceImpl android.hardware.camera2.impl.CameraExtensionJpegProcessor @@ -2811,6 +2815,7 @@ android.hardware.contexthub.V1_0.MemRange android.hardware.contexthub.V1_0.NanoAppBinary android.hardware.contexthub.V1_0.PhysicalSensor android.hardware.contexthub.V1_1.Setting +android.hardware.devicestate.DeviceState$Configuration$1 android.hardware.devicestate.DeviceState$Configuration android.hardware.devicestate.DeviceState android.hardware.devicestate.DeviceStateInfo$1 @@ -2822,8 +2827,8 @@ android.hardware.devicestate.DeviceStateManagerGlobal$DeviceStateCallbackWrapper android.hardware.devicestate.DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda1 android.hardware.devicestate.DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda2 android.hardware.devicestate.DeviceStateManagerGlobal$DeviceStateCallbackWrapper -android.hardware.devicestate.DeviceStateManagerGlobal$DeviceStateManagerCallback-IA android.hardware.devicestate.DeviceStateManagerGlobal$DeviceStateManagerCallback +android.hardware.devicestate.DeviceStateManagerGlobal-IA android.hardware.devicestate.DeviceStateManagerGlobal android.hardware.devicestate.IDeviceStateManager$Stub$Proxy android.hardware.devicestate.IDeviceStateManager$Stub @@ -2858,13 +2863,12 @@ android.hardware.display.DisplayManager$$ExternalSyntheticLambda0 android.hardware.display.DisplayManager$$ExternalSyntheticLambda1 android.hardware.display.DisplayManager$$ExternalSyntheticLambda2 android.hardware.display.DisplayManager$DisplayListener -android.hardware.display.DisplayManager$WeakDisplayCache-IA android.hardware.display.DisplayManager$WeakDisplayCache +android.hardware.display.DisplayManager-IA android.hardware.display.DisplayManager android.hardware.display.DisplayManagerGlobal$1 android.hardware.display.DisplayManagerGlobal$DisplayListenerDelegate$$ExternalSyntheticLambda0 android.hardware.display.DisplayManagerGlobal$DisplayListenerDelegate -android.hardware.display.DisplayManagerGlobal$DisplayManagerCallback-IA android.hardware.display.DisplayManagerGlobal android.hardware.display.DisplayManagerInternal$DisplayPowerCallbacks android.hardware.display.DisplayManagerInternal$DisplayPowerRequest @@ -2970,9 +2974,9 @@ android.hardware.input.InputDeviceIdentifier android.hardware.input.InputManager$InputDeviceListener android.hardware.input.InputManager android.hardware.input.InputManagerGlobal$InputDeviceListenerDelegate -android.hardware.input.InputManagerGlobal$InputDevicesChangedListener-IA android.hardware.input.InputManagerGlobal$InputDevicesChangedListener android.hardware.input.InputManagerGlobal$OnTabletModeChangedListenerDelegate +android.hardware.input.InputManagerGlobal-IA android.hardware.input.InputManagerGlobal android.hardware.input.InputSettings android.hardware.input.KeyboardLayout$1 @@ -3482,11 +3486,11 @@ android.icu.impl.ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$VariantSy android.icu.impl.ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo android.icu.impl.ICUCurrencyDisplayInfoProvider android.icu.impl.ICUCurrencyMetaInfo$Collector -android.icu.impl.ICUCurrencyMetaInfo$CurrencyCollector-IA android.icu.impl.ICUCurrencyMetaInfo$CurrencyCollector android.icu.impl.ICUCurrencyMetaInfo$InfoCollector android.icu.impl.ICUCurrencyMetaInfo$RegionCollector android.icu.impl.ICUCurrencyMetaInfo$UniqueList +android.icu.impl.ICUCurrencyMetaInfo-IA android.icu.impl.ICUCurrencyMetaInfo android.icu.impl.ICUData$1 android.icu.impl.ICUData$2 @@ -3514,10 +3518,10 @@ android.icu.impl.ICUResourceBundle$4 android.icu.impl.ICUResourceBundle$5 android.icu.impl.ICUResourceBundle$AvailEntry android.icu.impl.ICUResourceBundle$AvailableLocalesSink -android.icu.impl.ICUResourceBundle$Loader-IA android.icu.impl.ICUResourceBundle$Loader android.icu.impl.ICUResourceBundle$OpenType android.icu.impl.ICUResourceBundle$WholeBundle +android.icu.impl.ICUResourceBundle-IA android.icu.impl.ICUResourceBundle android.icu.impl.ICUResourceBundleImpl$ResourceArray android.icu.impl.ICUResourceBundleImpl$ResourceBinary @@ -3652,10 +3656,10 @@ android.icu.impl.TZDBTimeZoneNames$TZDBNames android.icu.impl.TZDBTimeZoneNames android.icu.impl.TextTrieMap$CharIterator android.icu.impl.TextTrieMap$LongestMatchHandler -android.icu.impl.TextTrieMap$Node-IA android.icu.impl.TextTrieMap$Node android.icu.impl.TextTrieMap$Output android.icu.impl.TextTrieMap$ResultHandler +android.icu.impl.TextTrieMap-IA android.icu.impl.TextTrieMap android.icu.impl.TimeZoneAdapter android.icu.impl.TimeZoneGenericNames$1 @@ -3675,9 +3679,9 @@ android.icu.impl.TimeZoneNamesImpl$NameSearchHandler android.icu.impl.TimeZoneNamesImpl$TZ2MZsCache android.icu.impl.TimeZoneNamesImpl$ZNames$NameTypeIndex android.icu.impl.TimeZoneNamesImpl$ZNames -android.icu.impl.TimeZoneNamesImpl$ZNamesLoader-IA android.icu.impl.TimeZoneNamesImpl$ZNamesLoader android.icu.impl.TimeZoneNamesImpl$ZoneStringsLoader +android.icu.impl.TimeZoneNamesImpl-IA android.icu.impl.TimeZoneNamesImpl android.icu.impl.Trie$DataManipulate android.icu.impl.Trie$DefaultGetFoldingOffset @@ -4018,10 +4022,10 @@ android.icu.impl.number.MutablePatternModifier$ImmutablePatternModifier android.icu.impl.number.MutablePatternModifier android.icu.impl.number.Padder$PadPosition android.icu.impl.number.Padder -android.icu.impl.number.PatternStringParser$ParsedPatternInfo-IA android.icu.impl.number.PatternStringParser$ParsedPatternInfo android.icu.impl.number.PatternStringParser$ParsedSubpatternInfo android.icu.impl.number.PatternStringParser$ParserState +android.icu.impl.number.PatternStringParser-IA android.icu.impl.number.PatternStringParser android.icu.impl.number.PatternStringUtils$1 android.icu.impl.number.PatternStringUtils$PatternSignType @@ -4333,7 +4337,6 @@ android.icu.text.DateFormat$Field android.icu.text.DateFormat$HourCycle android.icu.text.DateFormat android.icu.text.DateFormatSymbols$1 -android.icu.text.DateFormatSymbols$AospExtendedDateFormatSymbols-IA android.icu.text.DateFormatSymbols$AospExtendedDateFormatSymbols android.icu.text.DateFormatSymbols$CalendarDataSink$AliasType android.icu.text.DateFormatSymbols$CalendarDataSink @@ -4349,25 +4352,21 @@ android.icu.text.DateIntervalFormat android.icu.text.DateIntervalInfo$DateIntervalSink android.icu.text.DateIntervalInfo$PatternInfo android.icu.text.DateIntervalInfo -android.icu.text.DateTimePatternGenerator$AppendItemFormatsSink-IA android.icu.text.DateTimePatternGenerator$AppendItemFormatsSink -android.icu.text.DateTimePatternGenerator$AppendItemNamesSink-IA android.icu.text.DateTimePatternGenerator$AppendItemNamesSink android.icu.text.DateTimePatternGenerator$AvailableFormatsSink android.icu.text.DateTimePatternGenerator$DTPGflags -android.icu.text.DateTimePatternGenerator$DateTimeMatcher-IA android.icu.text.DateTimePatternGenerator$DateTimeMatcher android.icu.text.DateTimePatternGenerator$DayPeriodAllowedHoursSink android.icu.text.DateTimePatternGenerator$DisplayWidth -android.icu.text.DateTimePatternGenerator$DistanceInfo-IA android.icu.text.DateTimePatternGenerator$DistanceInfo android.icu.text.DateTimePatternGenerator$FormatParser android.icu.text.DateTimePatternGenerator$PatternInfo android.icu.text.DateTimePatternGenerator$PatternWithMatcher android.icu.text.DateTimePatternGenerator$PatternWithSkeletonFlag -android.icu.text.DateTimePatternGenerator$SkeletonFields-IA android.icu.text.DateTimePatternGenerator$SkeletonFields android.icu.text.DateTimePatternGenerator$VariableField +android.icu.text.DateTimePatternGenerator-IA android.icu.text.DateTimePatternGenerator android.icu.text.DecimalFormat$PropertySetter android.icu.text.DecimalFormat @@ -4378,8 +4377,8 @@ android.icu.text.DecimalFormatSymbols android.icu.text.DisplayContext$Type android.icu.text.DisplayContext android.icu.text.DurationFormat -android.icu.text.Edits$Iterator-IA android.icu.text.Edits$Iterator +android.icu.text.Edits-IA android.icu.text.Edits android.icu.text.EscapeTransliterator$1 android.icu.text.EscapeTransliterator$2 @@ -4517,10 +4516,10 @@ android.icu.text.PluralRules$OrConstraint android.icu.text.PluralRules$PluralType android.icu.text.PluralRules$RangeConstraint android.icu.text.PluralRules$Rule -android.icu.text.PluralRules$RuleList-IA android.icu.text.PluralRules$RuleList android.icu.text.PluralRules$SampleType android.icu.text.PluralRules$SimpleTokenizer +android.icu.text.PluralRules-IA android.icu.text.PluralRules android.icu.text.PluralRulesSerialProxy android.icu.text.Quantifier @@ -4566,12 +4565,12 @@ android.icu.text.ReplaceableString android.icu.text.RuleBasedBreakIterator$BreakCache android.icu.text.RuleBasedBreakIterator$DictionaryCache android.icu.text.RuleBasedBreakIterator -android.icu.text.RuleBasedCollator$CollationBuffer-IA android.icu.text.RuleBasedCollator$CollationBuffer android.icu.text.RuleBasedCollator$CollationKeyByteSink android.icu.text.RuleBasedCollator$FCDUTF16NFDIterator android.icu.text.RuleBasedCollator$NFDIterator android.icu.text.RuleBasedCollator$UTF16NFDIterator +android.icu.text.RuleBasedCollator-IA android.icu.text.RuleBasedCollator android.icu.text.RuleBasedNumberFormat android.icu.text.RuleBasedTransliterator$Data @@ -4725,11 +4724,11 @@ android.icu.util.BytesTrieBuilder$BytesAsCharSequence android.icu.util.BytesTrieBuilder android.icu.util.CECalendar android.icu.util.Calendar$1 -android.icu.util.Calendar$FormatConfiguration-IA android.icu.util.Calendar$FormatConfiguration android.icu.util.Calendar$PatternData android.icu.util.Calendar$WeekData android.icu.util.Calendar$WeekDataCache +android.icu.util.Calendar-IA android.icu.util.Calendar android.icu.util.CaseInsensitiveString android.icu.util.CharsTrie$Entry @@ -4744,19 +4743,16 @@ android.icu.util.CodePointMap$RangeOption android.icu.util.CodePointMap$StringIterator android.icu.util.CodePointMap$ValueFilter android.icu.util.CodePointMap -android.icu.util.CodePointTrie$Data-IA android.icu.util.CodePointTrie$Data16 android.icu.util.CodePointTrie$Data32 android.icu.util.CodePointTrie$Data8 android.icu.util.CodePointTrie$Data android.icu.util.CodePointTrie$Fast$FastStringIterator -android.icu.util.CodePointTrie$Fast-IA android.icu.util.CodePointTrie$Fast16 android.icu.util.CodePointTrie$Fast32 android.icu.util.CodePointTrie$Fast8 android.icu.util.CodePointTrie$Fast android.icu.util.CodePointTrie$Small$SmallStringIterator -android.icu.util.CodePointTrie$Small-IA android.icu.util.CodePointTrie$Small16 android.icu.util.CodePointTrie$Small32 android.icu.util.CodePointTrie$Small8 @@ -4838,8 +4834,8 @@ android.icu.util.MeasureUnit$MeasureUnitSink android.icu.util.MeasureUnit android.icu.util.MutableCodePointTrie$1 android.icu.util.MutableCodePointTrie$AllSameBlocks -android.icu.util.MutableCodePointTrie$MixedBlocks-IA android.icu.util.MutableCodePointTrie$MixedBlocks +android.icu.util.MutableCodePointTrie-IA android.icu.util.MutableCodePointTrie android.icu.util.NoUnit android.icu.util.Output @@ -4913,6 +4909,7 @@ android.inputmethodservice.InputMethodService$Insets android.inputmethodservice.InputMethodService$SettingsObserver android.inputmethodservice.InputMethodService android.inputmethodservice.SoftInputWindow +android.internal.framework.protobuf.nano.MessageNano android.internal.hidl.base.V1_0.DebugInfo android.internal.hidl.base.V1_0.IBase android.internal.hidl.manager.V1_0.IServiceManager @@ -4947,11 +4944,14 @@ android.location.IGpsGeofenceHardware$Stub android.location.IGpsGeofenceHardware android.location.Location$$ExternalSyntheticLambda0 android.location.Location$1 -android.location.Location$BearingDistanceCache-IA android.location.Location$BearingDistanceCache +android.location.Location-IA android.location.Location android.location.LocationTime$1 android.location.LocationTime +android.location.flags.FeatureFlags +android.location.flags.FeatureFlagsImpl +android.location.flags.Flags android.media.AudioAttributes$1 android.media.AudioAttributes$Builder android.media.AudioAttributes-IA @@ -4985,22 +4985,20 @@ android.media.AudioManager$AudioPlaybackCallbackInfo android.media.AudioManager$AudioRecordingCallback android.media.AudioManager$AudioRecordingCallbackInfo android.media.AudioManager$BlockingFocusResultReceiver -android.media.AudioManager$DevRoleListeners-IA android.media.AudioManager$DevRoleListeners android.media.AudioManager$FocusRequestInfo android.media.AudioManager$NativeEventHandlerDelegate$1 android.media.AudioManager$NativeEventHandlerDelegate -android.media.AudioManager$OnAmPortUpdateListener-IA android.media.AudioManager$OnAmPortUpdateListener android.media.AudioManager$OnAudioFocusChangeListener android.media.AudioManager$OnAudioPortUpdateListener android.media.AudioManager$OnModeChangedListener android.media.AudioManager$PlaybackConfigChangeCallbackData android.media.AudioManager$RecordConfigChangeCallbackData -android.media.AudioManager$SafeWaitObject-IA android.media.AudioManager$SafeWaitObject android.media.AudioManager$ServiceEventHandlerDelegate$1 android.media.AudioManager$ServiceEventHandlerDelegate +android.media.AudioManager-IA android.media.AudioManager android.media.AudioManagerInternal$RingerModeDelegate android.media.AudioManagerInternal @@ -5156,10 +5154,9 @@ android.media.ImageWriter android.media.JetPlayer android.media.MediaCodec$$ExternalSyntheticLambda6 android.media.MediaCodec$$ExternalSyntheticLambda7 +android.media.MediaCodec$$ExternalSyntheticLambda8 android.media.MediaCodec$BufferInfo -android.media.MediaCodec$BufferMap$CodecBuffer-IA android.media.MediaCodec$BufferMap$CodecBuffer -android.media.MediaCodec$BufferMap-IA android.media.MediaCodec$BufferMap android.media.MediaCodec$Callback android.media.MediaCodec$CodecException @@ -5175,6 +5172,7 @@ android.media.MediaCodec$OutputFrame android.media.MediaCodec$ParameterDescriptor android.media.MediaCodec$PersistentSurface android.media.MediaCodec$QueueRequest +android.media.MediaCodec-IA android.media.MediaCodecInfo$AudioCapabilities android.media.MediaCodecInfo$CodecProfileLevel android.media.MediaCodecInfo$EncoderCapabilities @@ -5229,7 +5227,6 @@ android.media.MediaPlayer$2 android.media.MediaPlayer$3 android.media.MediaPlayer$6 android.media.MediaPlayer$7 -android.media.MediaPlayer$DrmInfo-IA android.media.MediaPlayer$DrmInfo android.media.MediaPlayer$EventHandler$$ExternalSyntheticLambda0 android.media.MediaPlayer$EventHandler$1 @@ -5255,6 +5252,7 @@ android.media.MediaPlayer$TimeProvider$EventHandler android.media.MediaPlayer$TimeProvider android.media.MediaPlayer$TrackInfo$1 android.media.MediaPlayer$TrackInfo +android.media.MediaPlayer-IA android.media.MediaPlayer android.media.MediaRecorder android.media.MediaRoute2Info$1 @@ -5420,13 +5418,14 @@ android.media.browse.MediaBrowser$ConnectionCallback android.media.browse.MediaBrowser$MediaItem$1 android.media.browse.MediaBrowser$MediaItem android.media.browse.MediaBrowser$MediaServiceConnection$1 -android.media.browse.MediaBrowser$MediaServiceConnection-IA android.media.browse.MediaBrowser$MediaServiceConnection android.media.browse.MediaBrowser$ServiceCallbacks android.media.browse.MediaBrowser$Subscription android.media.browse.MediaBrowser$SubscriptionCallback +android.media.browse.MediaBrowser-IA android.media.browse.MediaBrowser android.media.browse.MediaBrowserUtils +android.media.codec.Flags android.media.metrics.Event android.media.metrics.IMediaMetricsManager$Stub$Proxy android.media.metrics.IMediaMetricsManager$Stub @@ -5507,6 +5506,7 @@ android.media.session.ISessionCallback android.media.session.ISessionController$Stub$Proxy android.media.session.ISessionController$Stub android.media.session.ISessionController +android.media.session.ISessionControllerCallback$Stub$Proxy android.media.session.ISessionControllerCallback$Stub android.media.session.ISessionControllerCallback android.media.session.ISessionManager$Stub$Proxy @@ -5517,8 +5517,8 @@ android.media.session.MediaController$CallbackStub android.media.session.MediaController$MessageHandler android.media.session.MediaController$PlaybackInfo$1 android.media.session.MediaController$PlaybackInfo -android.media.session.MediaController$TransportControls-IA android.media.session.MediaController$TransportControls +android.media.session.MediaController-IA android.media.session.MediaController android.media.session.MediaSession$Callback android.media.session.MediaSession$CallbackMessageHandler @@ -5531,29 +5531,26 @@ android.media.session.MediaSession android.media.session.MediaSessionLegacyHelper android.media.session.MediaSessionManager$OnActiveSessionsChangedListener android.media.session.MediaSessionManager$OnMediaKeyEventDispatchedListener -android.media.session.MediaSessionManager$OnMediaKeyEventDispatchedListenerStub-IA android.media.session.MediaSessionManager$OnMediaKeyEventDispatchedListenerStub android.media.session.MediaSessionManager$OnMediaKeyEventSessionChangedListener -android.media.session.MediaSessionManager$OnMediaKeyEventSessionChangedListenerStub-IA android.media.session.MediaSessionManager$OnMediaKeyEventSessionChangedListenerStub android.media.session.MediaSessionManager$OnMediaKeyListener android.media.session.MediaSessionManager$OnMediaKeyListenerImpl android.media.session.MediaSessionManager$OnSession2TokensChangedListener android.media.session.MediaSessionManager$OnVolumeKeyLongPressListener android.media.session.MediaSessionManager$OnVolumeKeyLongPressListenerImpl -android.media.session.MediaSessionManager$RemoteSessionCallbackStub-IA android.media.session.MediaSessionManager$RemoteSessionCallbackStub android.media.session.MediaSessionManager$RemoteUserInfo android.media.session.MediaSessionManager$Session2TokensChangedWrapper android.media.session.MediaSessionManager$SessionsChangedWrapper$1$$ExternalSyntheticLambda0 android.media.session.MediaSessionManager$SessionsChangedWrapper$1 android.media.session.MediaSessionManager$SessionsChangedWrapper +android.media.session.MediaSessionManager-IA android.media.session.MediaSessionManager android.media.session.ParcelableListBinder android.media.session.PlaybackState$1 android.media.session.PlaybackState$Builder android.media.session.PlaybackState$CustomAction$1 -android.media.session.PlaybackState$CustomAction-IA android.media.session.PlaybackState$CustomAction android.media.session.PlaybackState-IA android.media.session.PlaybackState @@ -5620,7 +5617,6 @@ android.net.INetworkPolicyListener android.net.INetworkPolicyManager$Stub$Proxy android.net.INetworkPolicyManager$Stub android.net.INetworkPolicyManager -android.net.INetworkRecommendationProvider$Stub$Proxy android.net.INetworkRecommendationProvider$Stub android.net.INetworkRecommendationProvider android.net.INetworkScoreCache$Stub$Proxy @@ -5683,18 +5679,14 @@ android.net.TelephonyNetworkSpecifier$1 android.net.TelephonyNetworkSpecifier$Builder android.net.TelephonyNetworkSpecifier android.net.Uri$1 -android.net.Uri$AbstractHierarchicalUri-IA android.net.Uri$AbstractHierarchicalUri android.net.Uri$AbstractPart android.net.Uri$Builder -android.net.Uri$HierarchicalUri-IA android.net.Uri$NotCachedHolder -android.net.Uri$OpaqueUri-IA android.net.Uri$Part$EmptyPart android.net.Uri$Part android.net.Uri$PathPart android.net.Uri$PathSegmentsBuilder -android.net.Uri$StringUri-IA android.net.Uri-IA android.net.Uri android.net.UriCodec @@ -5823,16 +5815,99 @@ android.net.wifi.nl80211.WifiNl80211Manager$ScanEventHandler android.net.wifi.nl80211.WifiNl80211Manager$SignalPollResult android.net.wifi.nl80211.WifiNl80211Manager android.net.wifi.sharedconnectivity.app.SharedConnectivityManager +android.nfc.IAppCallback$Stub +android.nfc.IAppCallback +android.nfc.INfcAdapter$Stub +android.nfc.INfcAdapter +android.nfc.INfcAdapterExtras +android.nfc.INfcCardEmulation +android.nfc.INfcControllerAlwaysOnListener$Stub +android.nfc.INfcControllerAlwaysOnListener +android.nfc.INfcDta +android.nfc.INfcFCardEmulation +android.nfc.INfcTag +android.nfc.INfcUnlockHandler$Stub +android.nfc.INfcUnlockHandler +android.nfc.INfcVendorNciCallback$Stub +android.nfc.INfcVendorNciCallback +android.nfc.INfcWlcStateListener$Stub +android.nfc.INfcWlcStateListener +android.nfc.ITagRemovedCallback$Stub +android.nfc.ITagRemovedCallback +android.nfc.NdefMessage +android.nfc.NfcActivityManager +android.nfc.NfcAdapter$$ExternalSyntheticLambda0 +android.nfc.NfcAdapter$$ExternalSyntheticLambda10 +android.nfc.NfcAdapter$$ExternalSyntheticLambda11 +android.nfc.NfcAdapter$$ExternalSyntheticLambda12 +android.nfc.NfcAdapter$$ExternalSyntheticLambda13 +android.nfc.NfcAdapter$$ExternalSyntheticLambda14 +android.nfc.NfcAdapter$$ExternalSyntheticLambda15 +android.nfc.NfcAdapter$$ExternalSyntheticLambda16 +android.nfc.NfcAdapter$$ExternalSyntheticLambda17 +android.nfc.NfcAdapter$$ExternalSyntheticLambda18 +android.nfc.NfcAdapter$$ExternalSyntheticLambda19 +android.nfc.NfcAdapter$$ExternalSyntheticLambda1 +android.nfc.NfcAdapter$$ExternalSyntheticLambda20 +android.nfc.NfcAdapter$$ExternalSyntheticLambda21 +android.nfc.NfcAdapter$$ExternalSyntheticLambda22 +android.nfc.NfcAdapter$$ExternalSyntheticLambda23 +android.nfc.NfcAdapter$$ExternalSyntheticLambda24 +android.nfc.NfcAdapter$$ExternalSyntheticLambda25 +android.nfc.NfcAdapter$$ExternalSyntheticLambda26 +android.nfc.NfcAdapter$$ExternalSyntheticLambda27 +android.nfc.NfcAdapter$$ExternalSyntheticLambda28 +android.nfc.NfcAdapter$$ExternalSyntheticLambda29 +android.nfc.NfcAdapter$$ExternalSyntheticLambda2 +android.nfc.NfcAdapter$$ExternalSyntheticLambda30 +android.nfc.NfcAdapter$$ExternalSyntheticLambda31 +android.nfc.NfcAdapter$$ExternalSyntheticLambda32 +android.nfc.NfcAdapter$$ExternalSyntheticLambda33 +android.nfc.NfcAdapter$$ExternalSyntheticLambda34 +android.nfc.NfcAdapter$$ExternalSyntheticLambda35 +android.nfc.NfcAdapter$$ExternalSyntheticLambda36 +android.nfc.NfcAdapter$$ExternalSyntheticLambda37 +android.nfc.NfcAdapter$$ExternalSyntheticLambda38 +android.nfc.NfcAdapter$$ExternalSyntheticLambda39 +android.nfc.NfcAdapter$$ExternalSyntheticLambda3 +android.nfc.NfcAdapter$$ExternalSyntheticLambda4 +android.nfc.NfcAdapter$$ExternalSyntheticLambda5 +android.nfc.NfcAdapter$$ExternalSyntheticLambda6 +android.nfc.NfcAdapter$$ExternalSyntheticLambda7 +android.nfc.NfcAdapter$$ExternalSyntheticLambda8 +android.nfc.NfcAdapter$$ExternalSyntheticLambda9 +android.nfc.NfcAdapter$1 +android.nfc.NfcAdapter$2 +android.nfc.NfcAdapter$ControllerAlwaysOnListener +android.nfc.NfcAdapter$CreateBeamUrisCallback +android.nfc.NfcAdapter$CreateNdefMessageCallback +android.nfc.NfcAdapter$NfcUnlockHandler +android.nfc.NfcAdapter$NfcVendorNciCallback +android.nfc.NfcAdapter$OnNdefPushCompleteCallback +android.nfc.NfcAdapter$OnTagRemovedListener +android.nfc.NfcAdapter$ReaderCallback +android.nfc.NfcAdapter$ServiceCall +android.nfc.NfcAdapter$ServiceCallReturn +android.nfc.NfcAdapter$WlcStateListener android.nfc.NfcAdapter +android.nfc.NfcAntennaInfo +android.nfc.NfcControllerAlwaysOnListener android.nfc.NfcFrameworkInitializer$$ExternalSyntheticLambda0 android.nfc.NfcFrameworkInitializer android.nfc.NfcManager +android.nfc.NfcOemExtension android.nfc.NfcServiceManager$ServiceRegisterer android.nfc.NfcServiceManager +android.nfc.NfcVendorNciCallbackListener +android.nfc.NfcWlcStateListener +android.nfc.Tag +android.nfc.TechListParcel +android.nfc.WlcListenerDeviceInfo android.nfc.cardemulation.AidGroup$1 android.nfc.cardemulation.AidGroup android.nfc.cardemulation.ApduServiceInfo$1 android.nfc.cardemulation.ApduServiceInfo +android.nfc.cardemulation.PollingFrame android.opengl.EGL14 android.opengl.EGL15 android.opengl.EGLConfig @@ -5883,8 +5958,8 @@ android.os.AsyncTask$InternalHandler android.os.AsyncTask$SerialExecutor$1 android.os.AsyncTask$SerialExecutor android.os.AsyncTask$Status -android.os.AsyncTask$WorkerRunnable-IA android.os.AsyncTask$WorkerRunnable +android.os.AsyncTask-IA android.os.AsyncTask android.os.BadParcelableException android.os.BadTypeParcelableException @@ -5952,8 +6027,8 @@ android.os.Build android.os.Bundle$1 android.os.Bundle android.os.CancellationSignal$OnCancelListener -android.os.CancellationSignal$Transport-IA android.os.CancellationSignal$Transport +android.os.CancellationSignal-IA android.os.CancellationSignal android.os.CarrierAssociatedAppEntry$1 android.os.CarrierAssociatedAppEntry @@ -5979,8 +6054,8 @@ android.os.DdmSyncState android.os.DeadObjectException android.os.DeadSystemException android.os.Debug$MemoryInfo$1 -android.os.Debug$MemoryInfo-IA android.os.Debug$MemoryInfo +android.os.Debug-IA android.os.Debug android.os.DeviceIdleManager android.os.DropBoxManager$Entry$1 @@ -6014,8 +6089,8 @@ android.os.GraphicsEnvironment$1 android.os.GraphicsEnvironment android.os.Handler$BlockingRunnable android.os.Handler$Callback -android.os.Handler$MessengerImpl-IA android.os.Handler$MessengerImpl +android.os.Handler-IA android.os.Handler android.os.HandlerExecutor android.os.HandlerThread @@ -6033,6 +6108,7 @@ android.os.IBatteryPropertiesRegistrar$Stub$Proxy android.os.IBatteryPropertiesRegistrar$Stub android.os.IBatteryPropertiesRegistrar android.os.IBinder$DeathRecipient +android.os.IBinder$FrozenStateChangeCallback android.os.IBinder android.os.IBinderCallback android.os.ICancellationSignal$Stub$Proxy @@ -6161,6 +6237,7 @@ android.os.IWakeLockCallback android.os.IncidentManager$IncidentReport$1 android.os.IncidentManager$IncidentReport android.os.IncidentManager +android.os.IpcDataCache$1 android.os.IpcDataCache$Config android.os.IpcDataCache$QueryHandler android.os.IpcDataCache$RemoteCall @@ -6255,7 +6332,6 @@ android.os.RemoteCallback$2 android.os.RemoteCallback$3 android.os.RemoteCallback$OnResultListener android.os.RemoteCallback -android.os.RemoteCallbackList$Callback android.os.RemoteCallbackList android.os.RemoteException android.os.ResultReceiver$1 @@ -6264,17 +6340,16 @@ android.os.ResultReceiver$MyRunnable android.os.ResultReceiver android.os.SELinux android.os.SecurityStateManager +android.os.Service$1 +android.os.Service android.os.ServiceManager$ServiceNotFoundException android.os.ServiceManager android.os.ServiceManagerNative android.os.ServiceManagerProxy android.os.ServiceSpecificException android.os.SharedMemory$1 -android.os.SharedMemory$Closer-IA android.os.SharedMemory$Closer -android.os.SharedMemory$MemoryRegistration-IA android.os.SharedMemory$MemoryRegistration -android.os.SharedMemory$Unmapper-IA android.os.SharedMemory$Unmapper android.os.SharedMemory-IA android.os.SharedMemory @@ -6300,33 +6375,29 @@ android.os.StrictMode$9 android.os.StrictMode$AndroidBlockGuardPolicy$$ExternalSyntheticLambda0 android.os.StrictMode$AndroidBlockGuardPolicy$$ExternalSyntheticLambda1 android.os.StrictMode$AndroidBlockGuardPolicy -android.os.StrictMode$AndroidCloseGuardReporter-IA android.os.StrictMode$AndroidCloseGuardReporter android.os.StrictMode$InstanceTracker android.os.StrictMode$OnThreadViolationListener android.os.StrictMode$OnVmViolationListener android.os.StrictMode$Span android.os.StrictMode$ThreadPolicy$Builder -android.os.StrictMode$ThreadPolicy-IA android.os.StrictMode$ThreadPolicy -android.os.StrictMode$ThreadSpanState-IA android.os.StrictMode$ThreadSpanState -android.os.StrictMode$UnsafeIntentStrictModeCallback-IA android.os.StrictMode$UnsafeIntentStrictModeCallback android.os.StrictMode$ViolationInfo$1 android.os.StrictMode$ViolationInfo android.os.StrictMode$ViolationLogger android.os.StrictMode$VmPolicy$Builder -android.os.StrictMode$VmPolicy-IA android.os.StrictMode$VmPolicy +android.os.StrictMode-IA android.os.StrictMode android.os.SynchronousResultReceiver$Result android.os.SynchronousResultReceiver android.os.SystemClock$2 android.os.SystemClock android.os.SystemConfigManager -android.os.SystemProperties$Handle-IA android.os.SystemProperties$Handle +android.os.SystemProperties-IA android.os.SystemProperties android.os.SystemService$1 android.os.SystemService$State @@ -6362,9 +6433,6 @@ android.os.UpdateLock android.os.UserHandle$1 android.os.UserHandle android.os.UserManager$1 -android.os.UserManager$2 -android.os.UserManager$3 -android.os.UserManager$4 android.os.UserManager$EnforcingUser$1 android.os.UserManager$EnforcingUser android.os.UserManager$UserOperationException @@ -6442,7 +6510,6 @@ android.os.storage.IStorageShutdownObserver android.os.storage.OnObbStateChangeListener android.os.storage.StorageEventListener android.os.storage.StorageManager$1 -android.os.storage.StorageManager$ObbActionListener-IA android.os.storage.StorageManager$ObbActionListener android.os.storage.StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda2 android.os.storage.StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda3 @@ -6451,6 +6518,7 @@ android.os.storage.StorageManager$StorageEventListenerDelegate$$ExternalSyntheti android.os.storage.StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda6 android.os.storage.StorageManager$StorageEventListenerDelegate android.os.storage.StorageManager$StorageVolumeCallback +android.os.storage.StorageManager-IA android.os.storage.StorageManager android.os.storage.StorageManagerInternal android.os.storage.StorageVolume$1 @@ -6519,8 +6587,8 @@ android.permission.PermissionManager$2 android.permission.PermissionManager$OnPermissionsChangeListenerDelegate android.permission.PermissionManager$PackageNamePermissionQuery android.permission.PermissionManager$PermissionQuery -android.permission.PermissionManager$SplitPermissionInfo-IA android.permission.PermissionManager$SplitPermissionInfo +android.permission.PermissionManager-IA android.permission.PermissionManagerInternal android.preference.DialogPreference android.preference.GenericInflater$Parent @@ -6836,12 +6904,11 @@ android.security.keystore.recovery.WrappedApplicationKey$1 android.security.keystore.recovery.WrappedApplicationKey$Builder android.security.keystore.recovery.WrappedApplicationKey android.security.keystore.recovery.X509CertificateParsingUtils -android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream-IA android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream -android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer-IA android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi$GCM$NoPadding android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi$GCM +android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi-IA android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi android.security.keystore2.AndroidKeyStoreBCWorkaroundProvider android.security.keystore2.AndroidKeyStoreCipherSpiBase @@ -7053,18 +7120,16 @@ android.service.media.MediaBrowserService$BrowserRoot android.service.media.MediaBrowserService$ConnectionRecord android.service.media.MediaBrowserService$Result android.service.media.MediaBrowserService$ServiceBinder$$ExternalSyntheticLambda1 -android.service.media.MediaBrowserService$ServiceBinder-IA android.service.media.MediaBrowserService$ServiceBinder -android.service.media.MediaBrowserService$ServiceState-IA android.service.media.MediaBrowserService$ServiceState +android.service.media.MediaBrowserService-IA android.service.media.MediaBrowserService android.service.notification.Adjustment$1 android.service.notification.Adjustment android.service.notification.Condition$1 android.service.notification.Condition -android.service.notification.ConditionProviderService$H-IA android.service.notification.ConditionProviderService$H -android.service.notification.ConditionProviderService$Provider-IA +android.service.notification.ConditionProviderService-IA android.service.notification.ConditionProviderService android.service.notification.IConditionProvider$Stub android.service.notification.IConditionProvider @@ -7081,8 +7146,8 @@ android.service.notification.NotificationListenerFilter android.service.notification.NotificationListenerService$MyHandler android.service.notification.NotificationListenerService$Ranking android.service.notification.NotificationListenerService$RankingMap$1 -android.service.notification.NotificationListenerService$RankingMap-IA android.service.notification.NotificationListenerService$RankingMap +android.service.notification.NotificationListenerService-IA android.service.notification.NotificationListenerService android.service.notification.NotificationRankingUpdate$1 android.service.notification.NotificationRankingUpdate @@ -7212,14 +7277,11 @@ android.speech.tts.TextToSpeech$$ExternalSyntheticLambda17 android.speech.tts.TextToSpeech$$ExternalSyntheticLambda1 android.speech.tts.TextToSpeech$Action android.speech.tts.TextToSpeech$Connection$1 -android.speech.tts.TextToSpeech$Connection$SetupConnectionAsyncTask-IA -android.speech.tts.TextToSpeech$Connection-IA -android.speech.tts.TextToSpeech$DirectConnection-IA android.speech.tts.TextToSpeech$DirectConnection android.speech.tts.TextToSpeech$EngineInfo android.speech.tts.TextToSpeech$OnInitListener -android.speech.tts.TextToSpeech$SystemConnection-IA android.speech.tts.TextToSpeech$SystemConnection +android.speech.tts.TextToSpeech-IA android.speech.tts.TtsEngines$EngineInfoComparator android.speech.tts.TtsEngines android.speech.tts.UtteranceProgressListener @@ -7232,7 +7294,6 @@ android.sysprop.CryptoProperties android.sysprop.DeviceProperties android.sysprop.DisplayProperties android.sysprop.HdmiProperties -android.sysprop.InitProperties android.sysprop.InputProperties android.sysprop.MediaProperties android.sysprop.PowerProperties @@ -7252,6 +7313,7 @@ android.sysprop.TelephonyProperties$$ExternalSyntheticLambda7 android.sysprop.TelephonyProperties$$ExternalSyntheticLambda8 android.sysprop.TelephonyProperties$$ExternalSyntheticLambda9 android.sysprop.TelephonyProperties +android.sysprop.ViewProperties android.sysprop.VndkProperties android.system.keystore2.Authorization$1 android.system.keystore2.Authorization @@ -7491,9 +7553,9 @@ android.telephony.JapanesePhoneNumberFormatter android.telephony.LinkCapacityEstimate$1 android.telephony.LinkCapacityEstimate android.telephony.LocationAccessPolicy$LocationPermissionQuery$Builder -android.telephony.LocationAccessPolicy$LocationPermissionQuery-IA android.telephony.LocationAccessPolicy$LocationPermissionQuery android.telephony.LocationAccessPolicy$LocationPermissionResult +android.telephony.LocationAccessPolicy-IA android.telephony.LocationAccessPolicy android.telephony.LteVopsSupportInfo$1 android.telephony.LteVopsSupportInfo-IA @@ -7727,6 +7789,7 @@ android.telephony.TelephonyRegistryManager$$ExternalSyntheticLambda0 android.telephony.TelephonyRegistryManager$$ExternalSyntheticLambda1 android.telephony.TelephonyRegistryManager$$ExternalSyntheticLambda2 android.telephony.TelephonyRegistryManager$1$$ExternalSyntheticLambda0 +android.telephony.TelephonyRegistryManager$1 android.telephony.TelephonyRegistryManager$2 android.telephony.TelephonyRegistryManager$3 android.telephony.TelephonyRegistryManager$CarrierPrivilegesCallbackWrapper$$ExternalSyntheticLambda0 @@ -8051,33 +8114,23 @@ android.text.Html$TagHandler android.text.Html android.text.HtmlToSpannedConverter$Alignment android.text.HtmlToSpannedConverter$Background -android.text.HtmlToSpannedConverter$Big-IA android.text.HtmlToSpannedConverter$Big -android.text.HtmlToSpannedConverter$Blockquote-IA android.text.HtmlToSpannedConverter$Blockquote -android.text.HtmlToSpannedConverter$Bold-IA android.text.HtmlToSpannedConverter$Bold -android.text.HtmlToSpannedConverter$Bullet-IA android.text.HtmlToSpannedConverter$Bullet android.text.HtmlToSpannedConverter$Font android.text.HtmlToSpannedConverter$Foreground android.text.HtmlToSpannedConverter$Heading android.text.HtmlToSpannedConverter$Href -android.text.HtmlToSpannedConverter$Italic-IA android.text.HtmlToSpannedConverter$Italic -android.text.HtmlToSpannedConverter$Monospace-IA android.text.HtmlToSpannedConverter$Monospace android.text.HtmlToSpannedConverter$Newline -android.text.HtmlToSpannedConverter$Small-IA android.text.HtmlToSpannedConverter$Small -android.text.HtmlToSpannedConverter$Strikethrough-IA android.text.HtmlToSpannedConverter$Strikethrough -android.text.HtmlToSpannedConverter$Sub-IA android.text.HtmlToSpannedConverter$Sub -android.text.HtmlToSpannedConverter$Super-IA android.text.HtmlToSpannedConverter$Super -android.text.HtmlToSpannedConverter$Underline-IA android.text.HtmlToSpannedConverter$Underline +android.text.HtmlToSpannedConverter-IA android.text.HtmlToSpannedConverter android.text.Hyphenator android.text.InputFilter$LengthFilter @@ -8113,6 +8166,7 @@ android.text.Selection$MemoryTextWatcher android.text.Selection$PositionIterator android.text.Selection$START android.text.Selection +android.text.SpanColors android.text.SpanSet android.text.SpanWatcher android.text.Spannable$Factory @@ -8134,9 +8188,9 @@ android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl android.text.TextDirectionHeuristics$TextDirectionHeuristicInternal android.text.TextDirectionHeuristics$TextDirectionHeuristicLocale android.text.TextDirectionHeuristics -android.text.TextLine$DecorationInfo-IA android.text.TextLine$DecorationInfo android.text.TextLine$LineInfo +android.text.TextLine-IA android.text.TextLine android.text.TextPaint android.text.TextShaper$GlyphsConsumer @@ -8275,6 +8329,7 @@ android.timezone.TelephonyLookup android.timezone.TelephonyNetwork android.timezone.TelephonyNetworkFinder android.timezone.TimeZoneFinder +android.tracing.Flags android.tracing.perfetto.CreateIncrementalStateArgs android.tracing.perfetto.CreateTlsStateArgs android.tracing.perfetto.DataSource @@ -8345,8 +8400,8 @@ android.transition.TransitionValues android.transition.TransitionValuesMaps android.transition.Visibility$1 android.transition.Visibility$DisappearListener -android.transition.Visibility$VisibilityInfo-IA android.transition.Visibility$VisibilityInfo +android.transition.Visibility-IA android.transition.Visibility android.transition.VisibilityPropagation android.transparency.BinaryTransparencyManager @@ -8396,6 +8451,7 @@ android.util.FeatureFlagUtils android.util.FloatProperty android.util.Half android.util.IconDrawableFactory +android.util.IndentingPrintWriter android.util.IntArray android.util.IntProperty android.util.JsonReader$1 @@ -8459,6 +8515,7 @@ android.util.RecurrenceRule$NonrecurringIterator android.util.RecurrenceRule android.util.ReflectiveProperty android.util.RotationUtils +android.util.SequenceUtils android.util.Singleton android.util.Size android.util.SizeF$1 @@ -8559,9 +8616,7 @@ android.view.Choreographer$1 android.view.Choreographer$2 android.view.Choreographer$3 android.view.Choreographer$4 -android.view.Choreographer$CallbackQueue-IA android.view.Choreographer$CallbackQueue -android.view.Choreographer$CallbackRecord-IA android.view.Choreographer$CallbackRecord android.view.Choreographer$FrameCallback android.view.Choreographer$FrameData @@ -8580,21 +8635,19 @@ android.view.CrossWindowBlurListeners android.view.CutoutSpecification$Parser android.view.CutoutSpecification android.view.Display$HdrCapabilities$1 -android.view.Display$HdrCapabilities-IA android.view.Display$HdrCapabilities android.view.Display$HdrSdrRatioListenerWrapper android.view.Display$Mode$1 -android.view.Display$Mode-IA android.view.Display$Mode +android.view.Display-IA android.view.Display android.view.DisplayAddress$Network$1 android.view.DisplayAddress$Network android.view.DisplayAddress$Physical$1 -android.view.DisplayAddress$Physical-IA android.view.DisplayAddress$Physical +android.view.DisplayAddress-IA android.view.DisplayAddress android.view.DisplayAdjustments -android.view.DisplayCutout$Bounds-IA android.view.DisplayCutout$Bounds android.view.DisplayCutout$CutoutPathParserInfo android.view.DisplayCutout$ParcelableWrapper$1 @@ -8639,8 +8692,8 @@ android.view.HandlerActionQueue$HandlerAction android.view.HandlerActionQueue android.view.HandwritingInitiator$HandwritableViewInfo android.view.HandwritingInitiator$HandwritingAreaTracker -android.view.HandwritingInitiator$State-IA android.view.HandwritingInitiator$State +android.view.HandwritingInitiator-IA android.view.HandwritingInitiator android.view.HapticScrollFeedbackProvider android.view.IAppTransitionAnimationSpecsFuture$Stub$Proxy @@ -8675,12 +8728,6 @@ android.view.IOnKeyguardExitResult$Stub android.view.IOnKeyguardExitResult android.view.IPinnedTaskListener$Stub android.view.IPinnedTaskListener -android.view.IRecentsAnimationController$Stub$Proxy -android.view.IRecentsAnimationController$Stub -android.view.IRecentsAnimationController -android.view.IRecentsAnimationRunner$Stub$Proxy -android.view.IRecentsAnimationRunner$Stub -android.view.IRecentsAnimationRunner android.view.IRemoteAnimationFinishedCallback$Stub$Proxy android.view.IRemoteAnimationFinishedCallback$Stub android.view.IRemoteAnimationFinishedCallback @@ -8732,7 +8779,6 @@ android.view.InputApplicationHandle android.view.InputChannel$1 android.view.InputChannel android.view.InputDevice$1 -android.view.InputDevice$MotionRange-IA android.view.InputDevice$MotionRange android.view.InputDevice$ViewBehavior android.view.InputDevice-IA @@ -8754,10 +8800,14 @@ android.view.InputWindowHandle android.view.InsetsAnimationControlCallbacks android.view.InsetsAnimationControlImpl$$ExternalSyntheticLambda0 android.view.InsetsAnimationControlImpl +android.view.InsetsAnimationControlRunner$SurfaceParamsApplier$$ExternalSyntheticLambda0 +android.view.InsetsAnimationControlRunner$SurfaceParamsApplier android.view.InsetsAnimationControlRunner +android.view.InsetsAnimationSpec android.view.InsetsAnimationThread android.view.InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda0 android.view.InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda1 +android.view.InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda2 android.view.InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda0 android.view.InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda1 android.view.InsetsAnimationThreadControlRunner$1 @@ -8765,7 +8815,6 @@ android.view.InsetsAnimationThreadControlRunner android.view.InsetsController$$ExternalSyntheticLambda0 android.view.InsetsController$$ExternalSyntheticLambda10 android.view.InsetsController$$ExternalSyntheticLambda11 -android.view.InsetsController$$ExternalSyntheticLambda12 android.view.InsetsController$$ExternalSyntheticLambda1 android.view.InsetsController$$ExternalSyntheticLambda2 android.view.InsetsController$$ExternalSyntheticLambda3 @@ -8880,10 +8929,10 @@ android.view.SearchEvent android.view.SoundEffectConstants android.view.SubMenu android.view.Surface$1 -android.view.Surface$CompatibleCanvas-IA android.view.Surface$CompatibleCanvas android.view.Surface$HwuiContext android.view.Surface$OutOfResourcesException +android.view.Surface-IA android.view.Surface android.view.SurfaceControl$1 android.view.SurfaceControl$Builder @@ -8900,6 +8949,7 @@ android.view.SurfaceControl$RefreshRateRange$1 android.view.SurfaceControl$RefreshRateRange android.view.SurfaceControl$RefreshRateRanges android.view.SurfaceControl$StaticDisplayInfo +android.view.SurfaceControl$Transaction$$ExternalSyntheticLambda1 android.view.SurfaceControl$Transaction$1 android.view.SurfaceControl$Transaction$2 android.view.SurfaceControl$Transaction @@ -8910,9 +8960,7 @@ android.view.SurfaceControl$TrustedPresentationThresholds android.view.SurfaceControl-IA android.view.SurfaceControl android.view.SurfaceControlHdrLayerInfoListener -android.view.SurfaceControlRegistry$DefaultReporter-IA android.view.SurfaceControlRegistry$DefaultReporter -android.view.SurfaceControlRegistry$NoOpRegistry-IA android.view.SurfaceControlRegistry$NoOpRegistry android.view.SurfaceControlRegistry$Reporter android.view.SurfaceControlRegistry-IA @@ -8930,14 +8978,14 @@ android.view.SurfaceView$$ExternalSyntheticLambda3 android.view.SurfaceView$$ExternalSyntheticLambda4 android.view.SurfaceView$$ExternalSyntheticLambda5 android.view.SurfaceView$1 -android.view.SurfaceView$2 +android.view.SurfaceView$SurfaceControlViewHostParent android.view.SurfaceView$SurfaceViewPositionUpdateListener -android.view.SurfaceView$SyncBufferTransactionCallback-IA android.view.SurfaceView$SyncBufferTransactionCallback +android.view.SurfaceView-IA android.view.SurfaceView android.view.SyncRtSurfaceTransactionApplier$SurfaceParams$Builder -android.view.SyncRtSurfaceTransactionApplier$SurfaceParams-IA android.view.SyncRtSurfaceTransactionApplier$SurfaceParams +android.view.SyncRtSurfaceTransactionApplier-IA android.view.SyncRtSurfaceTransactionApplier android.view.TextureView$$ExternalSyntheticLambda0 android.view.TextureView$$ExternalSyntheticLambda1 @@ -8946,8 +8994,8 @@ android.view.TextureView android.view.ThreadedRenderer$1$$ExternalSyntheticLambda0 android.view.ThreadedRenderer$1 android.view.ThreadedRenderer$DrawCallbacks -android.view.ThreadedRenderer$WebViewOverlayProvider-IA android.view.ThreadedRenderer$WebViewOverlayProvider +android.view.ThreadedRenderer-IA android.view.ThreadedRenderer android.view.TouchDelegate android.view.TunnelModeEnabledListener @@ -8990,13 +9038,10 @@ android.view.View$AttachInfo$InvalidateInfo android.view.View$AttachInfo android.view.View$BaseSavedState$1 android.view.View$BaseSavedState -android.view.View$CheckForLongPress-IA android.view.View$CheckForLongPress -android.view.View$CheckForTap-IA android.view.View$CheckForTap android.view.View$DeclaredOnClickListener android.view.View$DragShadowBuilder -android.view.View$ForegroundInfo-IA android.view.View$ForegroundInfo android.view.View$ListenerInfo android.view.View$MatchIdPredicate @@ -9016,19 +9061,16 @@ android.view.View$OnLongClickListener android.view.View$OnScrollChangeListener android.view.View$OnSystemUiVisibilityChangeListener android.view.View$OnTouchListener -android.view.View$PerformClick-IA android.view.View$PerformClick android.view.View$ScrollabilityCache android.view.View$SendAccessibilityEventThrottle android.view.View$SendViewScrolledAccessibilityEvent android.view.View$TintInfo -android.view.View$TooltipInfo-IA android.view.View$TooltipInfo android.view.View$TransformationInfo -android.view.View$UnsetPressedState-IA android.view.View$UnsetPressedState -android.view.View$VisibilityChangeForAutofillHandler-IA android.view.View$VisibilityChangeForAutofillHandler +android.view.View-IA android.view.View android.view.ViewAnimationHostBridge android.view.ViewAnimationUtils @@ -9066,10 +9108,10 @@ android.view.ViewParent android.view.ViewPropertyAnimator$1 android.view.ViewPropertyAnimator$2 android.view.ViewPropertyAnimator$3 -android.view.ViewPropertyAnimator$AnimatorEventListener-IA android.view.ViewPropertyAnimator$AnimatorEventListener android.view.ViewPropertyAnimator$NameValuesHolder android.view.ViewPropertyAnimator$PropertyBundle +android.view.ViewPropertyAnimator-IA android.view.ViewPropertyAnimator android.view.ViewRootImpl$$ExternalSyntheticLambda0 android.view.ViewRootImpl$$ExternalSyntheticLambda10 @@ -9090,6 +9132,8 @@ android.view.ViewRootImpl$$ExternalSyntheticLambda6 android.view.ViewRootImpl$$ExternalSyntheticLambda7 android.view.ViewRootImpl$$ExternalSyntheticLambda8 android.view.ViewRootImpl$$ExternalSyntheticLambda9 +android.view.ViewRootImpl$10 +android.view.ViewRootImpl$11 android.view.ViewRootImpl$1 android.view.ViewRootImpl$2 android.view.ViewRootImpl$3 @@ -9116,7 +9160,6 @@ android.view.ViewRootImpl$InputStage android.view.ViewRootImpl$InvalidateOnAnimationRunnable android.view.ViewRootImpl$NativePostImeInputStage android.view.ViewRootImpl$NativePreImeInputStage -android.view.ViewRootImpl$QueuedInputEvent-IA android.view.ViewRootImpl$QueuedInputEvent android.view.ViewRootImpl$SendWindowContentChangedAccessibilityEvent android.view.ViewRootImpl$SurfaceChangedCallback @@ -9131,12 +9174,12 @@ android.view.ViewRootImpl$SystemUiVisibilityInfo android.view.ViewRootImpl$TakenSurfaceHolder android.view.ViewRootImpl$TrackballAxis android.view.ViewRootImpl$TraversalRunnable -android.view.ViewRootImpl$UnhandledKeyManager-IA android.view.ViewRootImpl$UnhandledKeyManager android.view.ViewRootImpl$ViewPostImeInputStage android.view.ViewRootImpl$ViewPreImeInputStage android.view.ViewRootImpl$ViewRootHandler android.view.ViewRootImpl$WindowInputEventReceiver +android.view.ViewRootImpl-IA android.view.ViewRootImpl android.view.ViewRootInsetsControllerHost android.view.ViewRootRectTracker$ViewInfo @@ -9200,12 +9243,13 @@ android.view.WindowManager android.view.WindowManagerGlobal$$ExternalSyntheticLambda0 android.view.WindowManagerGlobal$1 android.view.WindowManagerGlobal$2 -android.view.WindowManagerGlobal$TrustedPresentationListener-IA android.view.WindowManagerGlobal$TrustedPresentationListener +android.view.WindowManagerGlobal-IA android.view.WindowManagerGlobal android.view.WindowManagerPolicyConstants$PointerEventListener android.view.WindowManagerPolicyConstants android.view.WindowMetrics +android.view.WindowRelayoutResult android.view.WindowlessWindowLayout android.view.WindowlessWindowManager android.view.accessibility.AccessibilityCache$AccessibilityNodeRefresher @@ -9222,10 +9266,9 @@ android.view.accessibility.AccessibilityManager$1 android.view.accessibility.AccessibilityManager$AccessibilityPolicy android.view.accessibility.AccessibilityManager$AccessibilityServicesStateChangeListener android.view.accessibility.AccessibilityManager$AccessibilityStateChangeListener -android.view.accessibility.AccessibilityManager$HighTextContrastChangeListener -android.view.accessibility.AccessibilityManager$MyCallback-IA android.view.accessibility.AccessibilityManager$MyCallback android.view.accessibility.AccessibilityManager$TouchExplorationStateChangeListener +android.view.accessibility.AccessibilityManager-IA android.view.accessibility.AccessibilityManager android.view.accessibility.AccessibilityNodeIdManager android.view.accessibility.AccessibilityNodeInfo$1 @@ -9279,11 +9322,12 @@ android.view.animation.Animation$NoImagePreloadHolder android.view.animation.Animation android.view.animation.AnimationSet android.view.animation.AnimationUtils$1 -android.view.animation.AnimationUtils$AnimationState-IA android.view.animation.AnimationUtils$AnimationState +android.view.animation.AnimationUtils-IA android.view.animation.AnimationUtils android.view.animation.AnticipateInterpolator android.view.animation.AnticipateOvershootInterpolator +android.view.animation.BackGestureInterpolator android.view.animation.BaseInterpolator android.view.animation.BounceInterpolator android.view.animation.ClipRectAnimation @@ -9312,7 +9356,6 @@ android.view.autofill.AutofillManager$$ExternalSyntheticLambda1 android.view.autofill.AutofillManager$$ExternalSyntheticLambda2 android.view.autofill.AutofillManager$$ExternalSyntheticLambda3 android.view.autofill.AutofillManager$$ExternalSyntheticLambda4 -android.view.autofill.AutofillManager$AugmentedAutofillManagerClient-IA android.view.autofill.AutofillManager$AugmentedAutofillManagerClient android.view.autofill.AutofillManager$AutofillCallback android.view.autofill.AutofillManager$AutofillClient @@ -9323,13 +9366,15 @@ android.view.autofill.AutofillManager$AutofillManagerClient$$ExternalSyntheticLa android.view.autofill.AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda16 android.view.autofill.AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda18 android.view.autofill.AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda8 -android.view.autofill.AutofillManager$AutofillManagerClient-IA +android.view.autofill.AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda9 android.view.autofill.AutofillManager$AutofillManagerClient android.view.autofill.AutofillManager$CompatibilityBridge android.view.autofill.AutofillManager$TrackedViews +android.view.autofill.AutofillManager-IA android.view.autofill.AutofillManager android.view.autofill.AutofillManagerInternal android.view.autofill.AutofillPopupWindow +android.view.autofill.AutofillStateFingerprint android.view.autofill.AutofillValue$1 android.view.autofill.AutofillValue-IA android.view.autofill.AutofillValue @@ -9356,9 +9401,9 @@ android.view.contentcapture.ContentCaptureEvent$1 android.view.contentcapture.ContentCaptureEvent android.view.contentcapture.ContentCaptureHelper android.view.contentcapture.ContentCaptureManager$ContentCaptureClient -android.view.contentcapture.ContentCaptureManager$LocalDataShareAdapterResourceManager-IA android.view.contentcapture.ContentCaptureManager$LocalDataShareAdapterResourceManager android.view.contentcapture.ContentCaptureManager$StrippedContext +android.view.contentcapture.ContentCaptureManager-IA android.view.contentcapture.ContentCaptureManager android.view.contentcapture.ContentCaptureSession android.view.contentcapture.ContentCaptureSessionId$1 @@ -9379,18 +9424,13 @@ android.view.contentcapture.IContentCaptureOptionsCallback android.view.contentcapture.IDataShareWriteAdapter$Stub android.view.contentcapture.IDataShareWriteAdapter android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda0 -android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda10 -android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda11 -android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda12 -android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda13 android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda1 android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda2 android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda3 android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda4 android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda5 android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda6 -android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda8 -android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda9 +android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda7 android.view.contentcapture.MainContentCaptureSession$SessionStateReceiver$$ExternalSyntheticLambda0 android.view.contentcapture.MainContentCaptureSession$SessionStateReceiver$$ExternalSyntheticLambda1 android.view.contentcapture.MainContentCaptureSession$SessionStateReceiver @@ -9450,15 +9490,13 @@ android.view.inputmethod.ImeTracker$Debug$$ExternalSyntheticLambda0 android.view.inputmethod.ImeTracker$Debug$$ExternalSyntheticLambda1 android.view.inputmethod.ImeTracker$Debug$$ExternalSyntheticLambda2 android.view.inputmethod.ImeTracker$Debug -android.view.inputmethod.ImeTracker$ImeJankTracker-IA android.view.inputmethod.ImeTracker$ImeJankTracker -android.view.inputmethod.ImeTracker$ImeLatencyTracker-IA android.view.inputmethod.ImeTracker$ImeLatencyTracker android.view.inputmethod.ImeTracker$InputMethodJankContext android.view.inputmethod.ImeTracker$InputMethodLatencyContext android.view.inputmethod.ImeTracker$Token$1 -android.view.inputmethod.ImeTracker$Token-IA android.view.inputmethod.ImeTracker$Token +android.view.inputmethod.ImeTracker-IA android.view.inputmethod.ImeTracker android.view.inputmethod.InlineSuggestionsRequest$1 android.view.inputmethod.InlineSuggestionsRequest @@ -9484,16 +9522,15 @@ android.view.inputmethod.InputMethodManager$1 android.view.inputmethod.InputMethodManager$2 android.view.inputmethod.InputMethodManager$6 android.view.inputmethod.InputMethodManager$BindState -android.view.inputmethod.InputMethodManager$DelegateImpl-IA android.view.inputmethod.InputMethodManager$DelegateImpl android.view.inputmethod.InputMethodManager$FinishedInputEventCallback android.view.inputmethod.InputMethodManager$H$$ExternalSyntheticLambda0 android.view.inputmethod.InputMethodManager$H$$ExternalSyntheticLambda1 android.view.inputmethod.InputMethodManager$H android.view.inputmethod.InputMethodManager$ImeInputEventSender -android.view.inputmethod.InputMethodManager$PendingEvent-IA android.view.inputmethod.InputMethodManager$PendingEvent android.view.inputmethod.InputMethodManager$ReportInputConnectionOpenedRunner +android.view.inputmethod.InputMethodManager-IA android.view.inputmethod.InputMethodManager android.view.inputmethod.InputMethodManagerGlobal android.view.inputmethod.InputMethodSession$EventCallback @@ -9554,7 +9591,6 @@ android.view.textclassifier.ConversationAction android.view.textclassifier.ConversationActions$1 android.view.textclassifier.ConversationActions$Message$1 android.view.textclassifier.ConversationActions$Message$Builder -android.view.textclassifier.ConversationActions$Message-IA android.view.textclassifier.ConversationActions$Message android.view.textclassifier.ConversationActions$Request$1 android.view.textclassifier.ConversationActions$Request$Builder @@ -9572,8 +9608,8 @@ android.view.textclassifier.SelectionEvent android.view.textclassifier.SelectionSessionLogger$SignatureParser android.view.textclassifier.SelectionSessionLogger android.view.textclassifier.SystemTextClassifier$BlockingCallback -android.view.textclassifier.SystemTextClassifier$ResponseReceiver-IA android.view.textclassifier.SystemTextClassifier$ResponseReceiver +android.view.textclassifier.SystemTextClassifier-IA android.view.textclassifier.SystemTextClassifier android.view.textclassifier.SystemTextClassifierMetadata$1 android.view.textclassifier.SystemTextClassifierMetadata @@ -9601,23 +9637,19 @@ android.view.textclassifier.TextClassificationSessionId android.view.textclassifier.TextClassifier$1 android.view.textclassifier.TextClassifier$EntityConfig$1 android.view.textclassifier.TextClassifier$EntityConfig$Builder -android.view.textclassifier.TextClassifier$EntityConfig-IA android.view.textclassifier.TextClassifier$EntityConfig android.view.textclassifier.TextClassifier$Utils +android.view.textclassifier.TextClassifier-IA android.view.textclassifier.TextClassifier android.view.textclassifier.TextClassifierEvent$1 android.view.textclassifier.TextClassifierEvent$Builder android.view.textclassifier.TextClassifierEvent$ConversationActionsEvent$1 -android.view.textclassifier.TextClassifierEvent$ConversationActionsEvent-IA android.view.textclassifier.TextClassifierEvent$ConversationActionsEvent android.view.textclassifier.TextClassifierEvent$LanguageDetectionEvent$1 -android.view.textclassifier.TextClassifierEvent$LanguageDetectionEvent-IA android.view.textclassifier.TextClassifierEvent$LanguageDetectionEvent android.view.textclassifier.TextClassifierEvent$TextLinkifyEvent$1 -android.view.textclassifier.TextClassifierEvent$TextLinkifyEvent-IA android.view.textclassifier.TextClassifierEvent$TextLinkifyEvent android.view.textclassifier.TextClassifierEvent$TextSelectionEvent$1 -android.view.textclassifier.TextClassifierEvent$TextSelectionEvent-IA android.view.textclassifier.TextClassifierEvent$TextSelectionEvent android.view.textclassifier.TextClassifierEvent-IA android.view.textclassifier.TextClassifierEvent @@ -9650,7 +9682,6 @@ android.view.textservice.SpellCheckerSession$SpellCheckerSessionListenerImpl$1 android.view.textservice.SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams android.view.textservice.SpellCheckerSession$SpellCheckerSessionListenerImpl android.view.textservice.SpellCheckerSession$SpellCheckerSessionParams$Builder -android.view.textservice.SpellCheckerSession$SpellCheckerSessionParams-IA android.view.textservice.SpellCheckerSession$SpellCheckerSessionParams android.view.textservice.SpellCheckerSession android.view.textservice.SpellCheckerSubtype$1 @@ -9756,12 +9787,9 @@ android.widget.AbsListView$3 android.widget.AbsListView$4 android.widget.AbsListView$AbsPositionScroller android.widget.AbsListView$AdapterDataSetObserver -android.widget.AbsListView$CheckForKeyLongPress-IA android.widget.AbsListView$CheckForKeyLongPress android.widget.AbsListView$CheckForLongPress -android.widget.AbsListView$CheckForTap-IA android.widget.AbsListView$CheckForTap -android.widget.AbsListView$DeviceConfigChangeListener-IA android.widget.AbsListView$DeviceConfigChangeListener android.widget.AbsListView$FlingRunnable$1 android.widget.AbsListView$FlingRunnable @@ -9771,7 +9799,6 @@ android.widget.AbsListView$ListItemAccessibilityDelegate android.widget.AbsListView$MultiChoiceModeListener android.widget.AbsListView$MultiChoiceModeWrapper android.widget.AbsListView$OnScrollListener -android.widget.AbsListView$PerformClick-IA android.widget.AbsListView$PerformClick android.widget.AbsListView$PositionScroller android.widget.AbsListView$RecycleBin @@ -9779,8 +9806,8 @@ android.widget.AbsListView$RecyclerListener android.widget.AbsListView$SavedState$1 android.widget.AbsListView$SavedState android.widget.AbsListView$SelectionBoundsAdjuster -android.widget.AbsListView$WindowRunnnable-IA android.widget.AbsListView$WindowRunnnable +android.widget.AbsListView-IA android.widget.AbsListView android.widget.AbsSeekBar android.widget.AbsSpinner$RecycleBin @@ -9816,13 +9843,11 @@ android.widget.AdapterView android.widget.ArrayAdapter android.widget.AutoCompleteTextView$$ExternalSyntheticLambda0 android.widget.AutoCompleteTextView$$ExternalSyntheticLambda1 -android.widget.AutoCompleteTextView$DropDownItemClickListener-IA android.widget.AutoCompleteTextView$DropDownItemClickListener -android.widget.AutoCompleteTextView$MyWatcher-IA android.widget.AutoCompleteTextView$MyWatcher -android.widget.AutoCompleteTextView$PassThroughClickListener-IA android.widget.AutoCompleteTextView$PassThroughClickListener android.widget.AutoCompleteTextView$Validator +android.widget.AutoCompleteTextView-IA android.widget.AutoCompleteTextView android.widget.BaseAdapter android.widget.Button @@ -9850,21 +9875,16 @@ android.widget.Editor$1 android.widget.Editor$2 android.widget.Editor$3 android.widget.Editor$5 -android.widget.Editor$AccessibilitySmartActions-IA android.widget.Editor$AccessibilitySmartActions -android.widget.Editor$Blink-IA android.widget.Editor$Blink android.widget.Editor$CorrectionHighlighter -android.widget.Editor$CursorAnchorInfoNotifier-IA android.widget.Editor$CursorAnchorInfoNotifier android.widget.Editor$CursorController android.widget.Editor$EasyEditDeleteListener -android.widget.Editor$EasyEditPopupWindow-IA android.widget.Editor$EasyEditPopupWindow android.widget.Editor$EditOperation$1 android.widget.Editor$EditOperation android.widget.Editor$ErrorPopup -android.widget.Editor$HandleView-IA android.widget.Editor$HandleView android.widget.Editor$InputContentType android.widget.Editor$InputMethodState @@ -9875,24 +9895,20 @@ android.widget.Editor$InsertionPointCursorController$1 android.widget.Editor$InsertionPointCursorController android.widget.Editor$MagnifierMotionAnimator android.widget.Editor$PinnedPopupWindow -android.widget.Editor$PositionListener-IA android.widget.Editor$PositionListener -android.widget.Editor$ProcessTextIntentActionsHandler-IA android.widget.Editor$ProcessTextIntentActionsHandler android.widget.Editor$SelectionHandleView android.widget.Editor$SelectionModifierCursorController android.widget.Editor$SpanController$1 android.widget.Editor$SpanController$2 -android.widget.Editor$SpanController-IA android.widget.Editor$SpanController -android.widget.Editor$SuggestionHelper$SuggestionSpanComparator-IA android.widget.Editor$SuggestionHelper$SuggestionSpanComparator -android.widget.Editor$SuggestionHelper-IA android.widget.Editor$SuggestionHelper android.widget.Editor$SuggestionsPopupWindow android.widget.Editor$TextRenderNode android.widget.Editor$TextViewPositionListener android.widget.Editor$UndoInputFilter +android.widget.Editor-IA android.widget.Editor android.widget.EditorTouchState android.widget.FastScroller$1 @@ -9907,8 +9923,8 @@ android.widget.Filter$FilterListener android.widget.Filter$FilterResults android.widget.Filter$RequestArguments android.widget.Filter$RequestHandler -android.widget.Filter$ResultsHandler-IA android.widget.Filter$ResultsHandler +android.widget.Filter-IA android.widget.Filter android.widget.Filterable android.widget.ForwardingListener @@ -9927,15 +9943,14 @@ android.widget.GridLayout$Alignment android.widget.GridLayout$Arc android.widget.GridLayout$Assoc android.widget.GridLayout$Axis$1 -android.widget.GridLayout$Axis-IA android.widget.GridLayout$Axis android.widget.GridLayout$Bounds android.widget.GridLayout$Interval android.widget.GridLayout$LayoutParams android.widget.GridLayout$MutableInt -android.widget.GridLayout$PackedMap-IA android.widget.GridLayout$PackedMap android.widget.GridLayout$Spec +android.widget.GridLayout-IA android.widget.GridLayout android.widget.HeaderViewListAdapter android.widget.HorizontalScrollView$SavedState$1 @@ -9948,22 +9963,17 @@ android.widget.ImageView android.widget.LinearLayout$LayoutParams android.widget.LinearLayout android.widget.ListAdapter -android.widget.ListPopupWindow$ListSelectorHider-IA android.widget.ListPopupWindow$ListSelectorHider -android.widget.ListPopupWindow$PopupDataSetObserver-IA android.widget.ListPopupWindow$PopupDataSetObserver -android.widget.ListPopupWindow$PopupScrollListener-IA android.widget.ListPopupWindow$PopupScrollListener -android.widget.ListPopupWindow$PopupTouchInterceptor-IA android.widget.ListPopupWindow$PopupTouchInterceptor -android.widget.ListPopupWindow$ResizePopupRunnable-IA android.widget.ListPopupWindow$ResizePopupRunnable +android.widget.ListPopupWindow-IA android.widget.ListPopupWindow -android.widget.ListView$ArrowScrollFocusResult-IA android.widget.ListView$ArrowScrollFocusResult android.widget.ListView$FixedViewInfo -android.widget.ListView$FocusSelector-IA android.widget.ListView$FocusSelector +android.widget.ListView-IA android.widget.ListView android.widget.Magnifier$Builder android.widget.Magnifier$InternalPopupWindow @@ -9994,14 +10004,12 @@ android.widget.PopupWindow$PopupDecorView android.widget.PopupWindow android.widget.ProgressBar$1 android.widget.ProgressBar$2 -android.widget.ProgressBar$ProgressTintInfo-IA android.widget.ProgressBar$ProgressTintInfo android.widget.ProgressBar$RefreshData -android.widget.ProgressBar$RefreshProgressRunnable-IA android.widget.ProgressBar$RefreshProgressRunnable android.widget.ProgressBar$SavedState$1 -android.widget.ProgressBar$SavedState-IA android.widget.ProgressBar$SavedState +android.widget.ProgressBar-IA android.widget.ProgressBar android.widget.QuickContactBadge android.widget.RadioButton @@ -10009,19 +10017,21 @@ android.widget.RadioGroup$OnCheckedChangeListener android.widget.RadioGroup android.widget.RatingBar android.widget.RelativeLayout$DependencyGraph$Node -android.widget.RelativeLayout$DependencyGraph-IA android.widget.RelativeLayout$DependencyGraph android.widget.RelativeLayout$LayoutParams android.widget.RelativeLayout$TopToBottomLeftToRightComparator +android.widget.RelativeLayout-IA android.widget.RelativeLayout android.widget.RemoteViews$$ExternalSyntheticLambda0 android.widget.RemoteViews$$ExternalSyntheticLambda1 android.widget.RemoteViews$$ExternalSyntheticLambda2 +android.widget.RemoteViews$$ExternalSyntheticLambda4 +android.widget.RemoteViews$$ExternalSyntheticLambda5 android.widget.RemoteViews$1 android.widget.RemoteViews$2 -android.widget.RemoteViews$Action-IA android.widget.RemoteViews$Action android.widget.RemoteViews$ActionException +android.widget.RemoteViews$ApplicationInfoCache$$ExternalSyntheticLambda0 android.widget.RemoteViews$ApplicationInfoCache android.widget.RemoteViews$AsyncApplyTask android.widget.RemoteViews$AttributeReflectionAction @@ -10037,6 +10047,7 @@ android.widget.RemoteViews$MethodArgs android.widget.RemoteViews$MethodKey android.widget.RemoteViews$NightModeReflectionAction android.widget.RemoteViews$OnViewAppliedListener +android.widget.RemoteViews$PendingResources android.widget.RemoteViews$ReflectionAction android.widget.RemoteViews$RemoteCollectionCache android.widget.RemoteViews$RemoteCollectionItems$1 @@ -10072,6 +10083,7 @@ android.widget.RemoteViews$ViewGroupActionRemove$1 android.widget.RemoteViews$ViewGroupActionRemove android.widget.RemoteViews$ViewPaddingAction android.widget.RemoteViews$ViewTree +android.widget.RemoteViews-IA android.widget.RemoteViews android.widget.RemoteViewsAdapter$AsyncRemoteAdapterAction android.widget.RemoteViewsAdapter$RemoteAdapterConnectionCallback @@ -10095,10 +10107,10 @@ android.widget.SelectionActionModeHelper$$ExternalSyntheticLambda2 android.widget.SelectionActionModeHelper$$ExternalSyntheticLambda3 android.widget.SelectionActionModeHelper$$ExternalSyntheticLambda8 android.widget.SelectionActionModeHelper$SelectionMetricsLogger -android.widget.SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable-IA android.widget.SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable android.widget.SelectionActionModeHelper$SelectionTracker android.widget.SelectionActionModeHelper$TextClassificationHelper +android.widget.SelectionActionModeHelper-IA android.widget.SelectionActionModeHelper android.widget.SmartSelectSprite$$ExternalSyntheticLambda0 android.widget.SmartSelectSprite$$ExternalSyntheticLambda1 @@ -10109,11 +10121,10 @@ android.widget.Space android.widget.SpellChecker$1 android.widget.SpellChecker$RemoveReason android.widget.SpellChecker$SentenceIteratorWrapper -android.widget.SpellChecker$SpellParser-IA android.widget.SpellChecker$SpellParser +android.widget.SpellChecker-IA android.widget.SpellChecker android.widget.Spinner$1 -android.widget.Spinner$DialogPopup-IA android.widget.Spinner$DialogPopup android.widget.Spinner$DropDownAdapter android.widget.Spinner$DropdownPopup$1 @@ -10121,6 +10132,7 @@ android.widget.Spinner$DropdownPopup android.widget.Spinner$SavedState$1 android.widget.Spinner$SavedState android.widget.Spinner$SpinnerPopup +android.widget.Spinner-IA android.widget.Spinner android.widget.SpinnerAdapter android.widget.Switch$1 @@ -10145,7 +10157,6 @@ android.widget.TextView$2 android.widget.TextView$3 android.widget.TextView$4 android.widget.TextView$BufferType -android.widget.TextView$ChangeWatcher-IA android.widget.TextView$ChangeWatcher android.widget.TextView$CharWrapper android.widget.TextView$Drawables @@ -10155,23 +10166,22 @@ android.widget.TextView$Marquee$3 android.widget.TextView$Marquee android.widget.TextView$OnEditorActionListener android.widget.TextView$SavedState$1 -android.widget.TextView$SavedState-IA android.widget.TextView$SavedState -android.widget.TextView$TextAppearanceAttributes-IA android.widget.TextView$TextAppearanceAttributes +android.widget.TextView-IA android.widget.TextView -android.widget.TextViewOnReceiveContentListener$InputConnectionInfo-IA android.widget.TextViewOnReceiveContentListener$InputConnectionInfo +android.widget.TextViewOnReceiveContentListener-IA android.widget.TextViewOnReceiveContentListener android.widget.TextViewTranslationCallback android.widget.ThemedSpinnerAdapter android.widget.Toast$Callback android.widget.Toast$CallbackBinder$$ExternalSyntheticLambda0 android.widget.Toast$CallbackBinder$$ExternalSyntheticLambda1 -android.widget.Toast$CallbackBinder-IA android.widget.Toast$CallbackBinder android.widget.Toast$TN$1 android.widget.Toast$TN +android.widget.Toast-IA android.widget.Toast android.widget.ToastPresenter android.widget.ToggleButton @@ -10188,6 +10198,8 @@ android.widget.ViewFlipper$1 android.widget.ViewFlipper android.widget.ViewSwitcher android.widget.WrapperListAdapter +android.widget.flags.FeatureFlags +android.widget.flags.FeatureFlagsImpl android.widget.flags.Flags android.widget.inline.InlinePresentationSpec$1 android.widget.inline.InlinePresentationSpec$BaseBuilder @@ -10203,6 +10215,7 @@ android.window.BackMotionEvent android.window.BackNavigationInfo$1 android.window.BackNavigationInfo android.window.BackProgressAnimator$$ExternalSyntheticLambda0 +android.window.BackProgressAnimator$$ExternalSyntheticLambda1 android.window.BackProgressAnimator$1 android.window.BackProgressAnimator$ProgressCallback android.window.BackProgressAnimator @@ -10259,7 +10272,6 @@ android.window.IWindowContainerTransactionCallback android.window.IWindowOrganizerController$Stub$Proxy android.window.IWindowOrganizerController$Stub android.window.IWindowOrganizerController -android.window.ImeOnBackInvokedDispatcher$$ExternalSyntheticLambda0 android.window.ImeOnBackInvokedDispatcher$1 android.window.ImeOnBackInvokedDispatcher$2 android.window.ImeOnBackInvokedDispatcher$DefaultImeOnBackAnimationCallback @@ -10305,9 +10317,9 @@ android.window.SurfaceSyncGroup$$ExternalSyntheticLambda5 android.window.SurfaceSyncGroup$$ExternalSyntheticLambda6 android.window.SurfaceSyncGroup$1 android.window.SurfaceSyncGroup$2 -android.window.SurfaceSyncGroup$ISurfaceSyncGroupImpl-IA android.window.SurfaceSyncGroup$ISurfaceSyncGroupImpl android.window.SurfaceSyncGroup$SurfaceViewFrameCallback +android.window.SurfaceSyncGroup-IA android.window.SurfaceSyncGroup android.window.TaskAppearedInfo$1 android.window.TaskAppearedInfo @@ -10347,13 +10359,15 @@ android.window.WindowInfosListener android.window.WindowMetricsController$$ExternalSyntheticLambda0 android.window.WindowMetricsController android.window.WindowOnBackInvokedDispatcher$$ExternalSyntheticLambda0 +android.window.WindowOnBackInvokedDispatcher$$ExternalSyntheticLambda1 +android.window.WindowOnBackInvokedDispatcher$$ExternalSyntheticLambda2 android.window.WindowOnBackInvokedDispatcher$Checker android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda0 android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda1 android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda2 android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda3 android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda4 -android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$CallbackRef +android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda5 android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper android.window.WindowOnBackInvokedDispatcher android.window.WindowOrganizer$1 @@ -10437,9 +10451,15 @@ com.android.framework.protobuf.nano.InternalNano com.android.framework.protobuf.nano.InvalidProtocolBufferNanoException com.android.framework.protobuf.nano.MessageNano com.android.framework.protobuf.nano.WireFormatNano +com.android.graphics.flags.FeatureFlags +com.android.graphics.flags.FeatureFlagsImpl +com.android.graphics.flags.Flags com.android.graphics.hwui.flags.FeatureFlags com.android.graphics.hwui.flags.FeatureFlagsImpl com.android.graphics.hwui.flags.Flags +com.android.graphics.surfaceflinger.flags.FeatureFlags +com.android.graphics.surfaceflinger.flags.FeatureFlagsImpl +com.android.graphics.surfaceflinger.flags.Flags com.android.i18n.phonenumbers.AlternateFormatsCountryCodeSet com.android.i18n.phonenumbers.AsYouTypeFormatter com.android.i18n.phonenumbers.CountryCodeToRegionCodeMap @@ -10575,6 +10595,7 @@ com.android.icu.util.ExtendedCalendar com.android.icu.util.ExtendedTimeZone com.android.icu.util.Icu4cMetadata com.android.icu.util.LocaleNative +com.android.icu.util.UResourceBundleNative com.android.icu.util.regex.MatcherNative com.android.icu.util.regex.PatternNative com.android.ims.FeatureConnection$$ExternalSyntheticLambda0 @@ -10628,6 +10649,7 @@ com.android.ims.ImsManager$$ExternalSyntheticLambda2 com.android.ims.ImsManager$$ExternalSyntheticLambda3 com.android.ims.ImsManager$$ExternalSyntheticLambda4 com.android.ims.ImsManager$$ExternalSyntheticLambda5 +com.android.ims.ImsManager$$ExternalSyntheticLambda6 com.android.ims.ImsManager$$ExternalSyntheticLambda7 com.android.ims.ImsManager$$ExternalSyntheticLambda8 com.android.ims.ImsManager$$ExternalSyntheticLambda9 @@ -10659,6 +10681,7 @@ com.android.ims.RcsFeatureConnection$RegistrationCallbackManager com.android.ims.RcsFeatureConnection com.android.ims.RcsFeatureManager$$ExternalSyntheticLambda0 com.android.ims.RcsFeatureManager$$ExternalSyntheticLambda1 +com.android.ims.RcsFeatureManager$$ExternalSyntheticLambda2 com.android.ims.RcsFeatureManager$1$$ExternalSyntheticLambda0 com.android.ims.RcsFeatureManager$1$$ExternalSyntheticLambda1 com.android.ims.RcsFeatureManager$1$$ExternalSyntheticLambda2 @@ -10704,6 +10727,7 @@ com.android.ims.internal.IImsRegistrationListener$Stub com.android.ims.internal.IImsRegistrationListener com.android.ims.internal.IImsServiceController$Stub com.android.ims.internal.IImsServiceController +com.android.ims.internal.IImsServiceFeatureCallback$Stub$Proxy com.android.ims.internal.IImsServiceFeatureCallback$Stub com.android.ims.internal.IImsServiceFeatureCallback com.android.ims.internal.IImsStreamMediaSession @@ -10982,7 +11006,6 @@ com.android.internal.app.AlertController$ButtonHandler com.android.internal.app.AlertController$RecycleListView com.android.internal.app.AlertController com.android.internal.app.AssistUtils -com.android.internal.app.IAppOpsActiveCallback$Stub$Proxy com.android.internal.app.IAppOpsActiveCallback$Stub com.android.internal.app.IAppOpsActiveCallback com.android.internal.app.IAppOpsAsyncNotedCallback$Stub @@ -11069,6 +11092,7 @@ com.android.internal.appwidget.IAppWidgetHost com.android.internal.appwidget.IAppWidgetService$Stub$Proxy com.android.internal.appwidget.IAppWidgetService$Stub com.android.internal.appwidget.IAppWidgetService +com.android.internal.backup.IBackupTransport$Stub$Proxy com.android.internal.backup.IBackupTransport$Stub com.android.internal.backup.IBackupTransport com.android.internal.colorextraction.ColorExtractor$GradientColors @@ -11146,6 +11170,7 @@ com.android.internal.dynamicanimation.animation.DynamicAnimation$8 com.android.internal.dynamicanimation.animation.DynamicAnimation$9 com.android.internal.dynamicanimation.animation.DynamicAnimation$MassState com.android.internal.dynamicanimation.animation.DynamicAnimation$OnAnimationEndListener +com.android.internal.dynamicanimation.animation.DynamicAnimation$OnAnimationUpdateListener com.android.internal.dynamicanimation.animation.DynamicAnimation$ViewProperty com.android.internal.dynamicanimation.animation.DynamicAnimation com.android.internal.dynamicanimation.animation.Force @@ -11165,13 +11190,29 @@ com.android.internal.graphics.drawable.BackgroundBlurDrawable$Aggregator com.android.internal.graphics.drawable.BackgroundBlurDrawable$BlurRegion com.android.internal.graphics.drawable.BackgroundBlurDrawable-IA com.android.internal.graphics.drawable.BackgroundBlurDrawable +com.android.internal.hidden_from_bootclasspath.android.app.appfunctions.flags.FeatureFlags +com.android.internal.hidden_from_bootclasspath.android.app.appfunctions.flags.FeatureFlagsImpl +com.android.internal.hidden_from_bootclasspath.android.app.appfunctions.flags.Flags +com.android.internal.hidden_from_bootclasspath.android.app.job.FeatureFlags +com.android.internal.hidden_from_bootclasspath.android.app.job.FeatureFlagsImpl com.android.internal.hidden_from_bootclasspath.android.app.job.Flags +com.android.internal.hidden_from_bootclasspath.android.content.pm.FeatureFlags +com.android.internal.hidden_from_bootclasspath.android.content.pm.FeatureFlagsImpl +com.android.internal.hidden_from_bootclasspath.android.content.pm.Flags com.android.internal.hidden_from_bootclasspath.android.os.FeatureFlags com.android.internal.hidden_from_bootclasspath.android.os.FeatureFlagsImpl com.android.internal.hidden_from_bootclasspath.android.os.Flags +com.android.internal.hidden_from_bootclasspath.android.permission.flags.FeatureFlags +com.android.internal.hidden_from_bootclasspath.android.permission.flags.FeatureFlagsImpl +com.android.internal.hidden_from_bootclasspath.android.permission.flags.Flags com.android.internal.hidden_from_bootclasspath.android.service.notification.FeatureFlags com.android.internal.hidden_from_bootclasspath.android.service.notification.FeatureFlagsImpl com.android.internal.hidden_from_bootclasspath.android.service.notification.Flags +com.android.internal.hidden_from_bootclasspath.com.android.libcore.Flags +com.android.internal.hidden_from_bootclasspath.com.android.server.power.optimization.Flags +com.android.internal.hidden_from_bootclasspath.com.android.window.flags.FeatureFlags +com.android.internal.hidden_from_bootclasspath.com.android.window.flags.FeatureFlagsImpl +com.android.internal.hidden_from_bootclasspath.com.android.window.flags.Flags com.android.internal.infra.AbstractMultiplePendingRequestsRemoteService com.android.internal.infra.AbstractRemoteService$AsyncRequest com.android.internal.infra.AbstractRemoteService$BasePendingRequest @@ -11221,6 +11262,7 @@ com.android.internal.inputmethod.IRemoteInputConnection$Stub com.android.internal.inputmethod.IRemoteInputConnection com.android.internal.inputmethod.ImeTracing com.android.internal.inputmethod.ImeTracingClientImpl +com.android.internal.inputmethod.ImeTracingPerfettoImpl com.android.internal.inputmethod.ImeTracingServerImpl com.android.internal.inputmethod.InputBindResult$1 com.android.internal.inputmethod.InputBindResult-IA @@ -11261,8 +11303,8 @@ com.android.internal.jank.InteractionJankMonitor$$ExternalSyntheticLambda9 com.android.internal.jank.InteractionJankMonitor$Configuration com.android.internal.jank.InteractionJankMonitor$RunningTracker com.android.internal.jank.InteractionJankMonitor$TimeFunction -com.android.internal.jank.InteractionJankMonitor$TrackerResult-IA com.android.internal.jank.InteractionJankMonitor$TrackerResult +com.android.internal.jank.InteractionJankMonitor-IA com.android.internal.listeners.ListenerExecutor$$ExternalSyntheticLambda0 com.android.internal.listeners.ListenerExecutor$FailureCallback com.android.internal.listeners.ListenerExecutor$ListenerOperation @@ -11324,8 +11366,8 @@ com.android.internal.os.BinderCallsStats$ExportedCallStat com.android.internal.os.BinderCallsStats$Injector com.android.internal.os.BinderCallsStats$OverflowBinder com.android.internal.os.BinderCallsStats$UidEntry -com.android.internal.os.BinderDeathDispatcher$RecipientsInfo-IA com.android.internal.os.BinderDeathDispatcher$RecipientsInfo +com.android.internal.os.BinderDeathDispatcher-IA com.android.internal.os.BinderDeathDispatcher com.android.internal.os.BinderInternal$BinderProxyCountEventListenerDelegate com.android.internal.os.BinderInternal$CallSession @@ -11346,6 +11388,7 @@ com.android.internal.os.CachedDeviceState$TimeInStateStopwatch com.android.internal.os.CachedDeviceState com.android.internal.os.ClassLoaderFactory com.android.internal.os.Clock +com.android.internal.os.DebugStore com.android.internal.os.FeatureFlags com.android.internal.os.FeatureFlagsImpl com.android.internal.os.Flags @@ -11405,10 +11448,10 @@ com.android.internal.os.LongArrayMultiStateCounter$LongArrayContainer com.android.internal.os.LongArrayMultiStateCounter com.android.internal.os.LongMultiStateCounter$1 com.android.internal.os.LongMultiStateCounter -com.android.internal.os.LooperStats$DispatchSession-IA com.android.internal.os.LooperStats$DispatchSession com.android.internal.os.LooperStats$Entry com.android.internal.os.LooperStats$ExportedEntry +com.android.internal.os.LooperStats-IA com.android.internal.os.LooperStats com.android.internal.os.PowerProfile$CpuClusterKey com.android.internal.os.PowerProfile @@ -11429,9 +11472,9 @@ com.android.internal.os.RuntimeInit$$ExternalSyntheticLambda1 com.android.internal.os.RuntimeInit$ApplicationWtfHandler com.android.internal.os.RuntimeInit$Arguments com.android.internal.os.RuntimeInit$KillApplicationHandler -com.android.internal.os.RuntimeInit$LoggingHandler-IA com.android.internal.os.RuntimeInit$LoggingHandler com.android.internal.os.RuntimeInit$MethodAndArgsCaller +com.android.internal.os.RuntimeInit-IA com.android.internal.os.RuntimeInit com.android.internal.os.SafeZipPathValidatorCallback com.android.internal.os.SomeArgs @@ -11504,12 +11547,12 @@ com.android.internal.policy.PhoneWindow$$ExternalSyntheticLambda1 com.android.internal.policy.PhoneWindow$1 com.android.internal.policy.PhoneWindow$ActionMenuPresenterCallback com.android.internal.policy.PhoneWindow$PanelFeatureState$SavedState$1 -com.android.internal.policy.PhoneWindow$PanelFeatureState$SavedState-IA com.android.internal.policy.PhoneWindow$PanelFeatureState$SavedState com.android.internal.policy.PhoneWindow$PanelFeatureState com.android.internal.policy.PhoneWindow$PhoneWindowMenuCallback com.android.internal.policy.PhoneWindow$RotationWatcher$1 com.android.internal.policy.PhoneWindow$RotationWatcher +com.android.internal.policy.PhoneWindow-IA com.android.internal.policy.PhoneWindow com.android.internal.policy.ScreenDecorationsUtils com.android.internal.policy.SystemBarUtils @@ -11524,6 +11567,8 @@ com.android.internal.protolog.ProtoLogViewerConfigReader com.android.internal.protolog.common.BitmaskConversionException com.android.internal.protolog.common.IProtoLogGroup com.android.internal.protolog.common.LogDataType +com.android.internal.ravenwood.RavenwoodEnvironment$Workaround +com.android.internal.ravenwood.RavenwoodEnvironment com.android.internal.security.VerityUtils com.android.internal.statusbar.IAddTileResultCallback com.android.internal.statusbar.IStatusBar$Stub @@ -11763,6 +11808,7 @@ com.android.internal.telephony.IState com.android.internal.telephony.ISub$Stub$Proxy com.android.internal.telephony.ISub$Stub com.android.internal.telephony.ISub +com.android.internal.telephony.ITelephony$Stub$Proxy com.android.internal.telephony.ITelephony$Stub com.android.internal.telephony.ITelephony com.android.internal.telephony.ITelephonyRegistry$Stub$Proxy @@ -11928,6 +11974,7 @@ com.android.internal.telephony.PhoneSubInfoController$$ExternalSyntheticLambda8 com.android.internal.telephony.PhoneSubInfoController$$ExternalSyntheticLambda9 com.android.internal.telephony.PhoneSubInfoController$CallPhoneMethodHelper com.android.internal.telephony.PhoneSubInfoController$PermissionCheckHelper +com.android.internal.telephony.PhoneSubInfoController com.android.internal.telephony.ProxyController$1 com.android.internal.telephony.ProxyController com.android.internal.telephony.RIL$RadioProxyDeathRecipient @@ -12320,6 +12367,7 @@ com.android.internal.telephony.euicc.EuiccController$9 com.android.internal.telephony.euicc.EuiccController$DownloadSubscriptionGetMetadataCommandCallback com.android.internal.telephony.euicc.EuiccController$GetDefaultListCommandCallback com.android.internal.telephony.euicc.EuiccController$GetMetadataCommandCallback +com.android.internal.telephony.euicc.EuiccController com.android.internal.telephony.euicc.EuiccOperation$1 com.android.internal.telephony.euicc.EuiccOperation$Action com.android.internal.telephony.euicc.EuiccOperation @@ -12498,6 +12546,7 @@ com.android.internal.telephony.imsphone.ImsPhoneCallTracker$HoldSwapState com.android.internal.telephony.imsphone.ImsPhoneCallTracker$MmTelFeatureListener com.android.internal.telephony.imsphone.ImsPhoneCallTracker$PhoneStateListener com.android.internal.telephony.imsphone.ImsPhoneCallTracker$SharedPreferenceProxy +com.android.internal.telephony.imsphone.ImsPhoneCallTracker$VtDataUsageProvider com.android.internal.telephony.imsphone.ImsPhoneCallTracker com.android.internal.telephony.imsphone.ImsPhoneCommandInterface com.android.internal.telephony.imsphone.ImsPhoneConnection$$ExternalSyntheticLambda0 @@ -12552,6 +12601,7 @@ com.android.internal.telephony.metrics.PersistAtomsStorage$$ExternalSyntheticLam com.android.internal.telephony.metrics.PersistAtomsStorage$$ExternalSyntheticLambda7 com.android.internal.telephony.metrics.PersistAtomsStorage$1 com.android.internal.telephony.metrics.PersistAtomsStorage +com.android.internal.telephony.metrics.SatelliteStats$CarrierRoamingSatelliteControllerStatsParams com.android.internal.telephony.metrics.ServiceStateStats$$ExternalSyntheticLambda0 com.android.internal.telephony.metrics.ServiceStateStats$TimestampedServiceState com.android.internal.telephony.metrics.ServiceStateStats @@ -12581,6 +12631,8 @@ com.android.internal.telephony.nano.CarrierIdProto$CarrierAttribute com.android.internal.telephony.nano.CarrierIdProto$CarrierId com.android.internal.telephony.nano.CarrierIdProto$CarrierList com.android.internal.telephony.nano.PersistAtomsProto$CarrierIdMismatch +com.android.internal.telephony.nano.PersistAtomsProto$CarrierRoamingSatelliteControllerStats +com.android.internal.telephony.nano.PersistAtomsProto$CarrierRoamingSatelliteSession com.android.internal.telephony.nano.PersistAtomsProto$CellularDataServiceSwitch com.android.internal.telephony.nano.PersistAtomsProto$CellularServiceState com.android.internal.telephony.nano.PersistAtomsProto$DataCallSession @@ -12602,7 +12654,10 @@ com.android.internal.telephony.nano.PersistAtomsProto$PersistAtoms com.android.internal.telephony.nano.PersistAtomsProto$PresenceNotifyEvent com.android.internal.telephony.nano.PersistAtomsProto$RcsAcsProvisioningStats com.android.internal.telephony.nano.PersistAtomsProto$RcsClientProvisioningStats +com.android.internal.telephony.nano.PersistAtomsProto$SatelliteAccessController +com.android.internal.telephony.nano.PersistAtomsProto$SatelliteConfigUpdater com.android.internal.telephony.nano.PersistAtomsProto$SatelliteController +com.android.internal.telephony.nano.PersistAtomsProto$SatelliteEntitlement com.android.internal.telephony.nano.PersistAtomsProto$SatelliteIncomingDatagram com.android.internal.telephony.nano.PersistAtomsProto$SatelliteOutgoingDatagram com.android.internal.telephony.nano.PersistAtomsProto$SatelliteProvision @@ -13026,8 +13081,9 @@ com.android.internal.util.DumpUtils com.android.internal.util.EmergencyAffordanceManager com.android.internal.util.ExponentiallyBucketedHistogram com.android.internal.util.FastMath -com.android.internal.util.FastPrintWriter$DummyWriter-IA com.android.internal.util.FastPrintWriter$DummyWriter +com.android.internal.util.FastPrintWriter-IA +com.android.internal.util.FastPrintWriter com.android.internal.util.FastXmlSerializer com.android.internal.util.FileRotator$FileInfo com.android.internal.util.FileRotator$Reader @@ -13048,6 +13104,7 @@ com.android.internal.util.HeavyHitterSketch com.android.internal.util.HexDump com.android.internal.util.IState com.android.internal.util.ImageUtils +com.android.internal.util.IndentingPrintWriter com.android.internal.util.IntPair com.android.internal.util.JournaledFile com.android.internal.util.LatencyTracker$$ExternalSyntheticLambda0 @@ -13055,10 +13112,10 @@ com.android.internal.util.LatencyTracker$$ExternalSyntheticLambda1 com.android.internal.util.LatencyTracker$$ExternalSyntheticLambda2 com.android.internal.util.LatencyTracker$Action com.android.internal.util.LatencyTracker$ActionProperties -com.android.internal.util.LatencyTracker$FrameworkStatsLogEvent-IA com.android.internal.util.LatencyTracker$FrameworkStatsLogEvent com.android.internal.util.LatencyTracker$Session$$ExternalSyntheticLambda0 com.android.internal.util.LatencyTracker$Session +com.android.internal.util.LatencyTracker-IA com.android.internal.util.LineBreakBufferedWriter com.android.internal.util.LocalLog com.android.internal.util.MemInfoReader @@ -13084,6 +13141,8 @@ com.android.internal.util.ProcFileReader com.android.internal.util.ProgressReporter com.android.internal.util.ProviderAccessStats$PerThreadData com.android.internal.util.ProviderAccessStats +com.android.internal.util.RateLimitingCache$ValueFetcher +com.android.internal.util.RateLimitingCache com.android.internal.util.RingBuffer$$ExternalSyntheticLambda0 com.android.internal.util.RingBuffer$$ExternalSyntheticLambda1 com.android.internal.util.RingBuffer @@ -13094,22 +13153,18 @@ com.android.internal.util.ScreenshotHelper com.android.internal.util.StatLogger com.android.internal.util.State com.android.internal.util.StateMachine$LogRec -com.android.internal.util.StateMachine$LogRecords-IA com.android.internal.util.StateMachine$LogRecords -com.android.internal.util.StateMachine$SmHandler$HaltingState-IA com.android.internal.util.StateMachine$SmHandler$HaltingState -com.android.internal.util.StateMachine$SmHandler$QuittingState-IA com.android.internal.util.StateMachine$SmHandler$QuittingState com.android.internal.util.StateMachine$SmHandler$StateInfo -com.android.internal.util.StateMachine$SmHandler-IA com.android.internal.util.StateMachine$SmHandler +com.android.internal.util.StateMachine-IA com.android.internal.util.StateMachine com.android.internal.util.StringPool com.android.internal.util.SyncResultReceiver$TimeoutException com.android.internal.util.SyncResultReceiver com.android.internal.util.ToBooleanFunction com.android.internal.util.TokenBucket -com.android.internal.util.TraceBuffer$ProtoOutputStreamProvider-IA com.android.internal.util.TraceBuffer$ProtoOutputStreamProvider com.android.internal.util.TraceBuffer$ProtoProvider com.android.internal.util.TraceBuffer @@ -13323,6 +13378,7 @@ com.android.net.module.util.NetworkCapabilitiesUtils com.android.net.module.util.NetworkIdentityUtils com.android.net.module.util.NetworkStackConstants com.android.net.module.util.ProxyUtils +com.android.nfc.x.android.nfc.Flags com.android.phone.ecc.nano.CodedInputByteBufferNano com.android.phone.ecc.nano.CodedOutputByteBufferNano$OutOfSpaceException com.android.phone.ecc.nano.CodedOutputByteBufferNano @@ -13348,9 +13404,9 @@ com.android.server.am.nano.Capabilities com.android.server.am.nano.Capability com.android.server.am.nano.FrameworkCapability com.android.server.am.nano.VMCapability +com.android.server.am.nano.VMInfo com.android.server.backup.AccountManagerBackupHelper com.android.server.backup.AccountSyncSettingsBackupHelper -com.android.server.backup.NotificationBackupHelper com.android.server.backup.PermissionBackupHelper com.android.server.backup.PreferredActivityBackupHelper com.android.server.backup.ShortcutBackupHelper @@ -13386,6 +13442,7 @@ com.android.server.criticalevents.nano.CriticalEventProto$Watchdog com.android.server.job.JobSchedulerInternal$JobStorePersistStats com.android.server.net.BaseNetdEventCallback com.android.server.net.BaseNetworkObserver +com.android.server.ondeviceintelligence.nano.InferenceInfo com.android.server.sip.SipHelper com.android.server.sip.SipService$ConnectivityReceiver$1 com.android.server.sip.SipService$ConnectivityReceiver @@ -13461,9 +13518,6 @@ com.android.telephony.Rlog com.android.text.flags.FeatureFlags com.android.text.flags.FeatureFlagsImpl com.android.text.flags.Flags -com.android.window.flags.FeatureFlags -com.android.window.flags.FeatureFlagsImpl -com.android.window.flags.Flags com.google.android.collect.Lists com.google.android.collect.Maps com.google.android.collect.Sets diff --git a/config/dirty-image-objects b/config/dirty-image-objects index f2e2b82cd82ac2df6b4ffe02044f5e94fac8e1a3..d4913d8f70d7376c750f4ff89f8a66801c73df9c 100644 --- a/config/dirty-image-objects +++ b/config/dirty-image-objects @@ -1,5 +1,5 @@ # -# Copyright (C) 2017 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. @@ -19,1710 +19,1435 @@ # The image writer will bin these objects together in the image. # More info about dirty objects format and how to collect the data can be # found in: art/imgdiag/dirty_image_objects.md -# This particular file was generated by dumping all pre-installed apps. +# This particular file was generated by: +# https://android-build.corp.google.com/test_investigate/invocation/I55400010326683472/ # -Landroid/text/style/URLSpan; 0 -Landroid/content/res/Resources$NotFoundException; 1 -Landroid/os/PowerManager$WakeLock; 2 -Landroid/os/BatterySaverPolicyConfig; 2 -Landroid/content/ContextWrapper; 2 -Landroid/app/WallpaperInfo; 2 -Landroid/content/pm/PackageManager; 2 -Landroid/app/IWallpaperManager; 2 -Ljava/lang/BootClassLoader; 2 -Ljava/time/Duration; 2 -Landroid/util/Printer; 2 -Landroid/app/WallpaperManager$OnColorsChangedListener; 2 -Landroid/app/WallpaperColors; 2 -Landroid/content/pm/ServiceInfo; 2 -Landroid/app/KeyguardManager$KeyguardDismissCallback; 2 -Ljava/lang/CharSequence; 3 -Landroid/widget/Switch; 4 -Lcom/android/internal/util/ContrastColorUtil; 4 -Landroid/view/SurfaceControl; 4 -Landroid/graphics/ColorMatrix;.dexCache:Ljava/lang/Object; 4 -Lcom/android/internal/widget/CachingIconView; 4 -Landroid/window/IRemoteTransition$Stub$Proxy; 4 -Landroid/app/trust/TrustManager$TrustListener; 4 -Landroid/view/NotificationHeaderView; 4 -Lcom/android/internal/widget/ImageResolver; 4 -Landroid/window/WindowContainerTransaction$Change; 4 -Lcom/android/internal/widget/MessagingLayout; 4 -Ljava/util/concurrent/ConcurrentLinkedQueue; 4 -Lcom/android/internal/protolog/BaseProtoLogImpl;.LOG_GROUPS:Ljava/util/TreeMap;.root:Ljava/util/TreeMap$TreeMapEntry;.right:Ljava/util/TreeMap$TreeMapEntry;.right:Ljava/util/TreeMap$TreeMapEntry;.right:Ljava/util/TreeMap$TreeMapEntry;.right:Ljava/util/TreeMap$TreeMapEntry;.left:Ljava/util/TreeMap$TreeMapEntry; 4 -Landroid/view/RemotableViewMethod; 4 -Landroid/app/IApplicationThread$Stub$Proxy; 4 -Landroid/os/FileUtils; 4 -Landroid/view/View;.SCALE_X:Landroid/util/Property; 4 -Landroid/widget/GridLayout;.UNDEFINED_ALIGNMENT:Landroid/widget/GridLayout$Alignment; 4 -Landroid/media/MediaPlayer$EventHandler; 4 -Landroid/widget/DateTimeView; 4 -Llibcore/util/ZoneInfo; 4 -Lcom/android/internal/statusbar/IStatusBarService; 4 -Ljava/lang/invoke/MethodType;.internTable:Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;.stale:Ljava/lang/ref/ReferenceQueue; 4 -Lcom/android/internal/protolog/BaseProtoLogImpl;.LOG_GROUPS:Ljava/util/TreeMap;.root:Ljava/util/TreeMap$TreeMapEntry;.right:Ljava/util/TreeMap$TreeMapEntry;.right:Ljava/util/TreeMap$TreeMapEntry; 4 -Lcom/android/internal/logging/UiEventLogger; 4 -Lcom/android/internal/protolog/BaseProtoLogImpl;.LOG_GROUPS:Ljava/util/TreeMap;.root:Ljava/util/TreeMap$TreeMapEntry;.right:Ljava/util/TreeMap$TreeMapEntry;.right:Ljava/util/TreeMap$TreeMapEntry;.left:Ljava/util/TreeMap$TreeMapEntry; 4 -Lcom/android/internal/protolog/BaseProtoLogImpl;.LOG_GROUPS:Ljava/util/TreeMap;.root:Ljava/util/TreeMap$TreeMapEntry;.right:Ljava/util/TreeMap$TreeMapEntry;.right:Ljava/util/TreeMap$TreeMapEntry;.right:Ljava/util/TreeMap$TreeMapEntry; 4 -Landroid/renderscript/RenderScript; 4 -Landroid/view/ViewTreeObserver$OnWindowVisibilityChangeListener; 4 -Lcom/android/internal/widget/RemeasuringLinearLayout; 4 -Landroid/widget/DateTimeView$ReceiverInfo$1; 4 -Landroid/view/View;.TRANSLATION_Y:Landroid/util/Property; 4 -Lcom/android/internal/protolog/BaseProtoLogImpl;.LOG_GROUPS:Ljava/util/TreeMap;.root:Ljava/util/TreeMap$TreeMapEntry; 4 -Lcom/android/internal/widget/NotificationExpandButton; 4 -Lcom/android/internal/view/menu/ActionMenuItemView; 4 -Landroid/view/animation/AnimationSet; 4 -Landroid/hardware/biometrics/BiometricSourceType;.FINGERPRINT:Landroid/hardware/biometrics/BiometricSourceType; 4 -Landroid/window/WindowOrganizer;.IWindowOrganizerControllerSingleton:Landroid/util/Singleton; 4 -Ljava/lang/Runnable; 4 -Lorg/apache/harmony/dalvik/ddmc/DdmServer;.mHandlerMap:Ljava/util/HashMap; 4 -Lcom/android/internal/protolog/BaseProtoLogImpl;.LOG_GROUPS:Ljava/util/TreeMap;.root:Ljava/util/TreeMap$TreeMapEntry;.right:Ljava/util/TreeMap$TreeMapEntry; 4 -Lcom/android/internal/widget/ImageFloatingTextView; 4 -Landroid/window/IWindowContainerToken$Stub$Proxy; 4 -Lcom/android/internal/protolog/BaseProtoLogImpl;.LOG_GROUPS:Ljava/util/TreeMap;.root:Ljava/util/TreeMap$TreeMapEntry;.left:Ljava/util/TreeMap$TreeMapEntry; 4 -Landroid/content/res/ColorStateList; 4 -Landroid/view/View;.SCALE_Y:Landroid/util/Property; 4 -Lcom/android/internal/protolog/BaseProtoLogImpl;.LOG_GROUPS:Ljava/util/TreeMap; 4 -Lcom/android/internal/widget/ConversationLayout; 4 -Lcom/android/internal/protolog/BaseProtoLogImpl;.LOG_GROUPS:Ljava/util/TreeMap;.root:Ljava/util/TreeMap$TreeMapEntry;.right:Ljava/util/TreeMap$TreeMapEntry;.right:Ljava/util/TreeMap$TreeMapEntry;.right:Ljava/util/TreeMap$TreeMapEntry;.right:Ljava/util/TreeMap$TreeMapEntry; 4 -Lcom/android/internal/colorextraction/ColorExtractor$OnColorsChangedListener; 4 -Landroid/hardware/face/FaceManager$FaceDetectionCallback; 4 -Landroid/widget/RemoteViews;.sLookupKey:Landroid/widget/RemoteViews$MethodKey; 4 -Landroid/widget/ViewSwitcher;.dexCache:Ljava/lang/Object; 4 -Lcom/android/internal/widget/NotificationActionListLayout; 4 -Ljava/util/concurrent/ConcurrentLinkedQueue$Node; 4 -Landroid/hardware/biometrics/BiometricSourceType;.FACE:Landroid/hardware/biometrics/BiometricSourceType; 4 -Landroid/hardware/biometrics/BiometricSourceType;.IRIS:Landroid/hardware/biometrics/BiometricSourceType; 4 -Landroid/view/NotificationTopLineView; 4 -Lcom/android/internal/protolog/BaseProtoLogImpl;.LOG_GROUPS:Ljava/util/TreeMap;.root:Ljava/util/TreeMap$TreeMapEntry;.left:Ljava/util/TreeMap$TreeMapEntry;.left:Ljava/util/TreeMap$TreeMapEntry;.left:Ljava/util/TreeMap$TreeMapEntry;.left:Ljava/util/TreeMap$TreeMapEntry;.left:Ljava/util/TreeMap$TreeMapEntry; 4 -Landroid/widget/RemoteViews;.sMethods:Landroid/util/ArrayMap; 4 -Lcom/android/internal/os/BinderInternal$BinderProxyLimitListener; 5 -Landroid/app/AppOpsManager$OnOpNotedInternalListener; 5 -Lcom/android/internal/R$styleable;.WindowAnimation:[I 5 -Lcom/android/internal/logging/UiEventLogger$UiEventEnum; 5 -Lcom/android/internal/policy/AttributeCache; 5 -Landroid/app/Notification$CallStyle; 5 -Landroid/app/AppOpsManager$OnOpNotedListener; 5 -Lcom/android/internal/protolog/BaseProtoLogImpl; 5 -Landroid/app/AppOpsManager$OnOpStartedListener; 5 -Lcom/android/internal/util/ScreenshotHelper$1; 5 -Landroid/app/Notification$DecoratedCustomViewStyle; 5 -Landroid/view/DisplayCutout; 5 -Landroid/view/InputEvent;.mNextSeq:Ljava/util/concurrent/atomic/AtomicInteger; 5 -Lcom/android/internal/statusbar/NotificationVisibility; 5 -Landroid/telephony/DataSpecificRegistrationInfo; 6 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle; 7 -Landroid/telephony/VoiceSpecificRegistrationInfo; 8 -Landroid/telephony/AnomalyReporter; 8 -Landroid/telephony/TelephonyRegistryManager;.sCarrierPrivilegeCallbacks:Ljava/util/WeakHashMap; 8 -Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.1:Ljava/util/WeakHashMap$Entry; 8 -Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection; 8 -Landroid/content/ContentProvider$Transport; 8 -Landroid/telephony/NetworkRegistrationInfo; 8 -Landroid/net/MatchAllNetworkSpecifier; 8 -Landroid/telephony/TelephonyRegistryManager;.sCarrierPrivilegeCallbacks:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry; 8 -Landroid/app/PropertyInvalidatedCache;.sInvalidates:Ljava/util/HashMap; 9 -Landroid/app/PropertyInvalidatedCache$NoPreloadHolder; 9 -Landroid/app/PropertyInvalidatedCache;.sDisabledKeys:Ljava/util/HashSet;.map:Ljava/util/HashMap; 10 -Landroid/media/AudioSystem$AudioRecordingCallback; 11 -Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedString; 11 -Landroid/net/metrics/IpManagerEvent; 11 -Lcom/android/internal/os/ProcessCpuTracker$FilterStats; 11 -Lcom/android/internal/infra/AbstractRemoteService$AsyncRequest; 11 -Landroid/content/pm/RegisteredServicesCache$3; 11 -Lcom/android/internal/os/LooperStats; 11 -Lcom/android/server/AppWidgetBackupBridge; 11 -Landroid/hardware/display/DisplayManagerInternal; 11 -Landroid/content/pm/PackageInfo; 11 -Landroid/hardware/soundtrigger/SoundTriggerModule$EventHandlerDelegate; 11 -Landroid/app/servertransaction/ResumeActivityItem; 11 -Lcom/android/internal/widget/AlertDialogLayout; 11 -Landroid/content/pm/FallbackCategoryProvider;.sFallbacks:Landroid/util/ArrayMap; 11 -Landroid/os/RemoteCallback$1; 11 -Landroid/content/pm/SharedLibraryInfo; 11 -Landroid/util/MemoryIntArray; 11 -Landroid/net/metrics/DhcpErrorEvent; 11 -Lcom/android/internal/util/function/DodecConsumer; 11 -Landroid/provider/Settings; 11 -Landroid/app/PropertyInvalidatedCache;.sCorkLock:Ljava/lang/Object; 11 -Lcom/android/internal/os/CachedDeviceState$Readonly; 11 -Landroid/app/job/JobServiceEngine$JobHandler; 11 -Landroid/app/SystemServiceRegistry; 11 -Lcom/android/internal/os/BinderInternal$CallStatsObserver; 11 -Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy; 11 -Landroid/hardware/location/IActivityRecognitionHardwareClient; 11 -Landroid/telecom/Logging/EventManager$EventListener; 11 -Landroid/accounts/AccountManagerInternal; 11 -Lcom/android/internal/os/KernelCpuBpfTracking; 11 -Lcom/android/internal/statusbar/NotificationVisibility$NotificationLocation; 11 -Landroid/hardware/camera2/CameraManager$CameraManagerGlobal; 11 -Landroid/os/ServiceSpecificException; 11 -Landroid/net/Uri$PathPart;.NULL:Landroid/net/Uri$PathPart; 11 -Landroid/app/ActivityManagerInternal; 11 -Landroid/media/AudioSystem; 11 -Landroid/service/dreams/DreamManagerInternal; 11 -Landroid/debug/AdbManagerInternal; 11 -Landroid/graphics/Bitmap$CompressFormat; 11 -Landroid/hardware/location/NanoAppMessage; 11 -Landroid/os/storage/StorageManagerInternal; 11 -Landroid/app/AppOpsManagerInternal; 11 -Ljava/security/cert/CertificateException; 11 -Ldalvik/system/VMRuntime; 11 -Landroid/content/pm/SigningInfo; 11 -Landroid/view/KeyEvent; 11 -Lcom/android/internal/view/WindowManagerPolicyThread; 11 -Landroid/graphics/Region;.sPool:Landroid/util/Pools$SynchronizedPool;.mPool:[Ljava/lang/Object; 11 -Landroid/content/res/ResourceTimer; 11 -Landroid/view/autofill/AutofillManagerInternal; 11 -Lcom/android/internal/util/Parcelling$Cache;.sCache:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object; 11 -Landroid/graphics/Region;.sPool:Landroid/util/Pools$SynchronizedPool; 11 -Landroid/app/LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0; 11 -Lcom/android/server/LocalServices;.sLocalServiceObjects:Landroid/util/ArrayMap; 11 -Landroid/app/admin/DevicePolicyManagerInternal$OnCrossProfileWidgetProvidersChangeListener; 11 -Landroid/accounts/AccountManagerInternal$OnAppPermissionChangeListener; 11 -Landroid/content/pm/PermissionInfo; 11 -Landroid/view/WindowManagerPolicyConstants$PointerEventListener; 11 -Landroid/os/UEventObserver; 11 -Landroid/media/AudioManagerInternal$RingerModeDelegate; 11 -Landroid/view/Display$HdrCapabilities; 11 -Landroid/service/notification/Condition; 11 -Landroid/content/pm/UserPackage; 11 -Landroid/app/AppOpsManager$SamplingStrategy; 11 -Landroid/telephony/ServiceState; 11 -Landroid/app/servertransaction/PauseActivityItem; 11 -Lcom/android/internal/util/function/pooled/PooledLambdaImpl;.sMessageCallbacksPool:Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;.mLock:Ljava/lang/Object; 11 -Landroid/view/KeyCharacterMap$FallbackAction; 11 -Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringArray; 11 -Landroid/hardware/display/DeviceProductInfo; 11 -Lcom/android/internal/util/Parcelling$Cache;.sCache:Landroid/util/ArrayMap;.mHashes:[I 11 -Landroid/content/pm/RegisteredServicesCache$2; 11 -Landroid/content/pm/PackageManager;.sCacheAutoCorker:Landroid/app/PropertyInvalidatedCache$AutoCorker; 11 -Landroid/app/PropertyInvalidatedCache;.sCorks:Ljava/util/HashMap; 11 -Landroid/service/notification/StatusBarNotification; 11 -Landroid/app/servertransaction/ConfigurationChangeItem; 11 -Landroid/app/ActivityManager$RecentTaskInfo; 11 -Landroid/app/Notification; 11 -Landroid/app/servertransaction/DestroyActivityItem; 11 -Landroid/webkit/WebViewLibraryLoader$RelroFileCreator; 11 -Landroid/net/metrics/NetworkEvent; 11 -Landroid/media/AudioPlaybackConfiguration; 11 -Landroid/accessibilityservice/AccessibilityServiceInfo; 11 -Landroid/hardware/display/DeviceProductInfo$ManufactureDate; 11 -Landroid/os/storage/StorageVolume; 11 -Landroid/os/BatteryManagerInternal; 11 -Landroid/appwidget/AppWidgetManagerInternal; 11 -Landroid/app/servertransaction/NewIntentItem; 11 -Landroid/content/pm/ShortcutServiceInternal; 11 -Landroid/app/assist/ActivityId; 11 -Landroid/window/DisplayAreaAppearedInfo; 11 -Landroid/os/Process;.ZYGOTE_PROCESS:Landroid/os/ZygoteProcess;.mLock:Ljava/lang/Object; 11 -Landroid/app/usage/UsageStats; 11 -Landroid/app/Notification$MediaStyle; 11 -Landroid/media/AudioSystem$DynamicPolicyCallback; 11 -Landroid/content/pm/ProviderInfo; 11 -Landroid/os/PowerManagerInternal; 11 -Landroid/service/voice/VoiceInteractionManagerInternal; 11 -Landroid/content/pm/FeatureInfo; 11 -Landroid/app/servertransaction/TopResumedActivityChangeItem; 11 -Landroid/app/Notification$DecoratedMediaCustomViewStyle; 11 -Landroid/appwidget/AppWidgetProviderInfo; 11 -Landroid/app/AppOpsManager$NoteOpEvent; 11 -Landroid/graphics/GraphicsStatsService; 11 -Landroid/view/DisplayAddress$Physical; 11 -Landroid/content/ComponentName$WithComponentName; 11 -Landroid/app/admin/DevicePolicyManagerInternal; 11 -Landroid/os/ResultReceiver$MyResultReceiver; 11 -Landroid/content/ContentProviderClient; 11 -Landroid/content/pm/RegisteredServicesCache$1; 11 -Landroid/app/PendingIntent$FinishedDispatcher; 11 -Landroid/location/LocationManager; 11 -Landroid/hardware/location/ContextHubInfo; 11 -Landroid/content/pm/ShortcutServiceInternal$ShortcutChangeListener; 11 -Lcom/android/server/usage/AppStandbyInternal; 11 -Landroid/content/pm/RegisteredServicesCacheListener; 11 -Landroid/app/servertransaction/LaunchActivityItem; 11 -Landroid/content/pm/BaseParceledListSlice$1; 11 -Landroid/annotation/StringRes; 11 -Lcom/android/internal/R$styleable;.Window:[I 11 -Landroid/service/notification/ZenModeConfig; 11 -Landroid/telecom/Logging/SessionManager$ISessionListener; 11 -Landroid/app/time/TimeZoneConfiguration; 11 -Landroid/net/metrics/ValidationProbeEvent; 11 -Landroid/content/pm/PackageInstaller$SessionInfo; 11 -Landroid/content/pm/UserPackage;.sCache:Landroid/util/SparseArrayMap;.mData:Landroid/util/SparseArray; 11 -Landroid/content/pm/PermissionGroupInfo; 11 -Landroid/hardware/sidekick/SidekickInternal; 11 -Lcom/android/internal/widget/ButtonBarLayout; 11 -Landroid/content/pm/LauncherActivityInfoInternal; 11 -Lcom/android/internal/util/Parcelling$Cache;.sCache:Landroid/util/ArrayMap; 11 -Lcom/android/internal/widget/LockSettingsInternal; 11 -Landroid/media/AudioManagerInternal; 11 -Landroid/app/AppOpsManager$AttributedOpEntry; 11 -Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringList; 11 -Landroid/telecom/Log; 11 -Landroid/app/time/TimeZoneCapabilities; 11 -Landroid/attention/AttentionManagerInternal; 11 -Landroid/view/WindowManagerPolicyConstants; 11 -Landroid/content/pm/CrossProfileAppsInternal; 11 -Landroid/hardware/location/GeofenceHardwareService; 11 -Landroid/content/pm/dex/ArtManagerInternal; 11 -Landroid/net/metrics/IpReachabilityEvent; 11 -Landroid/content/pm/LauncherApps$ShortcutQuery$QueryFlags; 11 -Landroid/media/AudioAttributes; 11 -Landroid/app/PropertyInvalidatedCache$AutoCorker$1; 11 -Landroid/net/metrics/ApfProgramEvent; 11 -Landroid/content/pm/SigningDetails; 11 -Lcom/android/internal/protolog/ProtoLogImpl; 11 -Landroid/hardware/biometrics/ComponentInfoInternal; 11 -Lcom/android/internal/util/ToBooleanFunction; 11 -Landroid/app/ActivityThread$H; 11 -Landroid/hardware/location/GeofenceHardwareImpl; 11 -Landroid/net/wifi/nl80211/WifiNl80211Manager$ScanEventHandler; 11 -Landroid/util/NtpTrustedTime; 11 -Landroid/hardware/soundtrigger/SoundTrigger$StatusListener; 11 -Lcom/android/internal/app/procstats/AssociationState;.sTmpSourceKey:Lcom/android/internal/app/procstats/AssociationState$SourceKey; 11 -Ljava/util/zip/ZipFile$ZipFileInflaterInputStream; 11 -Landroid/app/job/JobInfo; 11 -Lcom/android/internal/content/om/OverlayConfig; 11 -Landroid/webkit/WebViewZygote; 11 -Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringSet; 11 -Lcom/android/internal/infra/AbstractRemoteService$VultureCallback; 11 -Landroid/permission/PermissionManagerInternal; 11 -Lcom/android/server/WidgetBackupProvider; 11 -Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper; 11 -Landroid/app/PropertyInvalidatedCache;.sCorkedInvalidates:Ljava/util/HashMap; 11 -Landroid/media/AudioPlaybackConfiguration$PlayerDeathMonitor; 11 -Landroid/net/wifi/nl80211/WifiNl80211Manager$ScanEventCallback; 11 -Landroid/service/notification/NotificationListenerService$RankingMap; 11 -Landroid/os/UserHandle;.sExtraUserHandleCache:Landroid/util/SparseArray; 11 -Ljava/time/DateTimeException; 11 -Ljava/lang/NumberFormatException; 11 -Ljava/security/Provider;.knownEngines:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.125:Ljava/util/HashMap$Node;.value:Ljava/lang/Object; 11 -Landroid/app/LoadedApk$ServiceDispatcher$RunConnection; 11 -Landroid/view/RoundedCorners; 11 -Landroid/os/Process;.ZYGOTE_PROCESS:Landroid/os/ZygoteProcess; 11 -Landroid/media/audiopolicy/AudioVolumeGroup; 11 -Landroid/media/AudioSystem$ErrorCallback; 11 -Landroid/app/servertransaction/ActivityResultItem; 11 -Lcom/android/internal/widget/DialogTitle; 11 -Lcom/android/internal/os/StoragedUidIoStatsReader$Callback; 11 -Landroid/view/ViewRootImpl$W; 11 -Landroid/app/ServiceStartArgs; 11 -Landroid/window/TaskAppearedInfo; 11 -Lcom/android/internal/listeners/ListenerExecutor$FailureCallback; 11 -Landroid/app/ApplicationExitInfo; 11 -Landroid/content/pm/PackageManager;.sCacheAutoCorker:Landroid/app/PropertyInvalidatedCache$AutoCorker;.mLock:Ljava/lang/Object; 11 -Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringValueMap; 11 -Landroid/content/pm/ResolveInfo; 11 -Lcom/android/internal/display/BrightnessSynchronizer; 11 -Landroid/window/IOnBackInvokedCallback$Stub$Proxy; 12 -Landroid/graphics/drawable/PictureDrawable; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.126:Ljava/lang/Byte; 13 -Landroid/view/ViewDebug$ExportedProperty; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.41:Ljava/lang/Byte; 13 -Landroid/view/inputmethod/DeleteGesture; 13 -Landroid/view/ViewDebug$IntToString; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.56:Ljava/lang/Byte; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.65:Ljava/lang/Byte; 13 -Landroid/webkit/WebViewFactory;.sProviderLock:Ljava/lang/Object; 13 -Ljava/lang/IllegalAccessError; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.51:Ljava/lang/Byte; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.52:Ljava/lang/Byte; 13 -Landroid/view/inputmethod/DeleteRangeGesture; 13 -Landroid/window/WindowContext; 13 -Ljava/util/concurrent/ConcurrentSkipListMap$Node; 13 -Landroid/view/inputmethod/SelectRangeGesture; 13 -Landroid/util/MalformedJsonException; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.131:Ljava/lang/Byte; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.120:Ljava/lang/Byte; 13 -Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap;.tail:Ljava/util/LinkedHashMap$LinkedHashMapEntry;.before:Ljava/util/LinkedHashMap$LinkedHashMapEntry;.before:Ljava/util/LinkedHashMap$LinkedHashMapEntry;.before:Ljava/util/LinkedHashMap$LinkedHashMapEntry; 13 -Ljava/nio/file/StandardOpenOption;.TRUNCATE_EXISTING:Ljava/nio/file/StandardOpenOption; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.121:Ljava/lang/Byte; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.16:Ljava/lang/Byte; 13 -Ljava/util/concurrent/ConcurrentSkipListMap$Index; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.139:Ljava/lang/Byte; 13 -Landroid/view/ViewDebug$FlagToString; 13 -Landroid/view/inputmethod/SelectGesture; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.20:Ljava/lang/Byte; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.94:Ljava/lang/Byte; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.64:Ljava/lang/Byte; 13 -Landroid/webkit/WebViewFactoryProvider$Statics; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.95:Ljava/lang/Byte; 13 -Landroid/service/media/MediaBrowserService$ServiceBinder$1; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.7:Ljava/lang/Byte; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.23:Ljava/lang/Byte; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.46:Ljava/lang/Byte; 13 -Landroid/provider/Settings$SettingNotFoundException; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.74:Ljava/lang/Byte; 13 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.8:Ljava/lang/Byte; 13 -Landroid/widget/TextView;.TEMP_POSITION:[F 13 -Ljava/io/ByteArrayInputStream; 14 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.93:Ljava/lang/Byte; 14 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.134:Ljava/lang/Byte; 14 -Landroid/text/style/ImageSpan; 14 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.154:Ljava/lang/Byte; 15 -Landroid/view/TextureView$SurfaceTextureListener; 16 -Landroid/media/AudioManager$OnAudioFocusChangeListener; 17 -Ljava/util/Locale;.JAPAN:Ljava/util/Locale; 18 -Ljava/util/Locale;.GERMANY:Ljava/util/Locale; 19 -Ljava/util/Locale;.CANADA_FRENCH:Ljava/util/Locale; 20 -Ljava/util/Locale;.ITALY:Ljava/util/Locale; 20 -Ljava/util/Locale;.FRANCE:Ljava/util/Locale; 20 -Ljava/util/Locale;.UK:Ljava/util/Locale; 21 -Ljava/util/Locale;.CANADA:Ljava/util/Locale; 21 -Ljava/util/Locale$Cache;.LOCALECACHE:Ljava/util/Locale$Cache;.map:Ljava/util/concurrent/ConcurrentMap; 22 -Ljava/lang/IllegalStateException; 23 -Lcom/android/internal/util/function/pooled/PooledLambdaImpl;.sMessageCallbacksPool:Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool; 24 -Lcom/android/internal/util/function/pooled/PooledLambdaImpl;.sMessageCallbacksPool:Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;.mPool:[Ljava/lang/Object; 24 -Landroid/media/MediaRouter$WifiDisplayStatusChangedReceiver; 25 -Landroid/media/MediaRouter$VolumeChangeReceiver; 25 -Landroid/app/AppOpsManager$OnOpActiveChangedListener; 26 -Landroid/media/PlayerBase; 27 -Landroid/content/pm/Checksum$Type; 28 -Ljava/lang/Class; 29 -Landroid/widget/MediaController$MediaPlayerControl; 30 -Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.135:Ljava/lang/Long; 30 -Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.152:Ljava/lang/Long; 30 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.215:Ljava/lang/Byte; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.206:Ljava/lang/Byte; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.137:Ljava/lang/Byte; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.203:Ljava/lang/Byte; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.213:Ljava/lang/Byte; 31 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.549:Ljava/lang/Long; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.201:Ljava/lang/Byte; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.249:Ljava/lang/Byte; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.163:Ljava/lang/Byte; 31 -Ljava/util/HashMap; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.210:Ljava/lang/Byte; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.161:Ljava/lang/Byte; 31 -Landroid/icu/text/MeasureFormat;.hmsTo012:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.0:Ljava/util/HashMap$Node;.value:Ljava/lang/Object; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.199:Ljava/lang/Byte; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.248:Ljava/lang/Byte; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.252:Ljava/lang/Byte; 31 -Lcom/android/ims/rcs/uce/UceDeviceState;.DEVICE_STATE_DESCRIPTION:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.3:Ljava/util/HashMap$Node;.key:Ljava/lang/Object; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.159:Ljava/lang/Byte; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.217:Ljava/lang/Byte; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.200:Ljava/lang/Byte; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.240:Ljava/lang/Byte; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.198:Ljava/lang/Byte; 31 -Lcom/android/ims/rcs/uce/UceDeviceState;.DEVICE_STATE_DESCRIPTION:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.4:Ljava/util/HashMap$Node;.key:Ljava/lang/Object; 31 -Landroid/content/pm/PackageManager$OnChecksumsReadyListener; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.193:Ljava/lang/Byte; 31 -Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.228:Ljava/lang/Long; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.236:Ljava/lang/Byte; 31 -Landroid/telephony/ims/ImsService;.CAPABILITIES_LOG_MAP:Ljava/util/Map;.table:[Ljava/lang/Object;.2:Ljava/lang/Long; 31 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.211:Ljava/lang/Byte; 31 -Landroid/view/SurfaceView; 32 -Landroid/view/ViewStub$OnInflateListener; 33 -Landroid/graphics/drawable/DrawableInflater;.CONSTRUCTOR_MAP:Ljava/util/HashMap; 34 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.245:Ljava/lang/Byte; 35 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.232:Ljava/lang/Byte; 35 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.12:Ljava/lang/Byte; 35 -Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.170:Ljava/lang/Long; 35 -Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.183:Ljava/lang/Long; 35 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.246:Ljava/lang/Byte; 35 -Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.168:Ljava/lang/Long; 35 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.72:Ljava/lang/Byte; 35 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.243:Ljava/lang/Byte; 35 -Ljava/util/WeakHashMap;.NULL_KEY:Ljava/lang/Object; 35 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.235:Ljava/lang/Byte; 35 -Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.147:Ljava/lang/Long; 35 -Ljava/io/InterruptedIOException; 35 -Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.184:Ljava/lang/Long; 35 -Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.165:Ljava/lang/Long; 35 -Landroid/text/style/ForegroundColorSpan; 35 -Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.176:Ljava/lang/Long; 35 -Ljava/lang/Long$LongCache;.archivedCache:[Ljava/lang/Long;.173:Ljava/lang/Long; 35 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.181:Ljava/lang/Byte; 35 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.157:Ljava/lang/Byte; 35 -Landroid/content/res/AssetManager$AssetInputStream; 35 -Landroid/graphics/drawable/TransitionDrawable; 36 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.1:Ljava/lang/Boolean; 37 -Landroid/view/ViewOverlay$OverlayViewGroup; 38 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.11:Ljava/lang/Boolean; 39 -Ljava/util/Observer; 40 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.129:Ljava/lang/Byte; 41 -[Ljava/lang/Byte; 41 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.144:Ljava/lang/Byte; 41 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.164:Ljava/lang/Byte; 42 -Landroid/view/OrientationEventListener; 43 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.195:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.233:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.229:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.128:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.242:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.196:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.208:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.212:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.228:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.205:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.197:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.204:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.207:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.223:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.244:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.174:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.194:Ljava/lang/Byte; 44 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.225:Ljava/lang/Byte; 45 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.239:Ljava/lang/Byte; 45 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.238:Ljava/lang/Byte; 45 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.227:Ljava/lang/Byte; 45 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.152:Ljava/lang/Byte; 46 -Landroid/app/RemoteAction; 46 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.168:Ljava/lang/Byte; 46 -Landroid/text/style/QuoteSpan; 46 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.54:Ljava/lang/Byte; 46 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.124:Ljava/lang/Byte; 46 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.142:Ljava/lang/Byte; 46 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.190:Ljava/lang/Byte; 46 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.114:Ljava/lang/Byte; 46 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.69:Ljava/lang/Byte; 46 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.30:Ljava/lang/Byte; 46 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.133:Ljava/lang/Byte; 46 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.49:Ljava/lang/Byte; 46 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.58:Ljava/lang/Byte; 46 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.143:Ljava/lang/Byte; 47 -Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit; 47 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.82:Ljava/lang/Byte; 47 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.140:Ljava/lang/Byte; 47 -Landroid/icu/text/RelativeDateTimeFormatter;.fallbackCache:[Landroid/icu/text/RelativeDateTimeFormatter$Style; 47 -Landroid/icu/text/RelativeDateTimeFormatter$Style; 47 -Landroid/icu/text/RelativeDateTimeFormatter;.cache:Landroid/icu/text/RelativeDateTimeFormatter$Cache;.cache:Landroid/icu/impl/CacheBase;.map:Ljava/util/concurrent/ConcurrentHashMap; 47 -Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit; 47 -Landroid/icu/text/RelativeDateTimeFormatter$Direction; 47 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.130:Ljava/lang/Byte; 47 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.43:Ljava/lang/Byte; 47 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.146:Ljava/lang/Byte; 47 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.138:Ljava/lang/Byte; 47 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.136:Ljava/lang/Byte; 48 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.0:Ljava/lang/Byte; 49 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.160:Ljava/lang/Byte; 49 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.169:Ljava/lang/Byte; 50 -Landroid/widget/Spinner; 50 -Landroid/widget/MultiAutoCompleteTextView; 50 -Ljava/util/ArrayList; 50 -Landroid/widget/CheckBox; 50 -Ljava/io/Serializable; 50 -Landroid/widget/RatingBar; 50 -Ljava/lang/Byte$ByteCache;.archivedCache:[Ljava/lang/Byte;.132:Ljava/lang/Byte; 50 -Landroid/widget/AutoCompleteTextView; 50 -Ljava/util/concurrent/ConcurrentLinkedDeque$Node; 50 -[Ljava/lang/Object; 50 -Landroid/widget/SeekBar; 51 -Ljava/lang/Void; 52 -Landroid/app/ActivityTaskManager;.sInstance:Landroid/util/Singleton; 53 -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda11; 54 -Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener; 55 -Landroid/view/InsetsAnimationThread; 56 -Lcom/android/internal/jank/InteractionJankMonitor$InstanceHolder; 57 -Lcom/android/internal/jank/InteractionJankMonitor; 57 -Landroid/hardware/camera2/CameraCharacteristics;.FLASH_INFO_AVAILABLE:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 58 -Landroid/hardware/display/NightDisplayListener$Callback; 59 -Landroid/media/MediaRouter2Manager; 59 -Landroid/os/HandlerExecutor; 59 -Landroid/os/strictmode/LeakedClosableViolation; 60 -Lcom/android/internal/logging/MetricsLogger; 60 -Lcom/android/internal/os/PowerProfile;.sPowerItemMap:Ljava/util/HashMap; 61 -Lcom/android/internal/os/PowerProfile;.sPowerArrayMap:Ljava/util/HashMap; 61 -Lcom/android/internal/os/PowerProfile;.sModemPowerProfile:Lcom/android/internal/power/ModemPowerProfile;.mPowerConstants:Landroid/util/SparseDoubleArray;.mValues:Landroid/util/SparseLongArray; 61 -Landroid/content/IntentFilter; 62 -Landroid/telecom/TelecomManager; 63 -Ljava/lang/IllegalArgumentException; 64 -Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.1:Ljava/util/WeakHashMap$Entry;.referent:Ljava/lang/Object; 65 -Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.1:Ljava/util/WeakHashMap$Entry;.referent:Ljava/lang/Object;.mCache:Ljava/util/LinkedHashMap; 65 -Landroid/telephony/VisualVoicemailSmsFilterSettings;.DEFAULT_ORIGINATING_NUMBERS:Ljava/util/List; 66 -Ljava/util/AbstractList; 68 -Ljava/util/AbstractCollection; 68 -Ljava/util/Collections$EmptyList; 69 -Ljava/lang/StackTraceElement; 69 -[Ljava/lang/StackTraceElement; 69 -Landroid/os/strictmode/Violation; 70 -Ljava/util/List; 71 -Ljava/lang/String; 72 -Ljava/io/ObjectInputStream; 73 -Ljava/io/ObjectStreamClass$Caches;.localDescs:Ljava/util/concurrent/ConcurrentMap; 73 -Ljava/io/ObjectStreamClass$Caches;.reflectors:Ljava/util/concurrent/ConcurrentMap; 73 -Ljava/io/ObjectOutputStream; 73 -Ljava/lang/Number; 74 -Ljava/math/BigInteger; 75 -[B 76 -Landroid/os/Handler; 77 -Landroid/view/accessibility/AccessibilityManager; 78 +Landroid/content/ComponentCallbacks; 2 +Landroid/content/ComponentCallbacks2; 2 +Lcom/android/internal/app/ResolverActivity$ActionTitle;.HOME:Lcom/android/internal/app/ResolverActivity$ActionTitle;.name:Ljava/lang/String; 4 +Landroid/icu/text/MessageFormat;.typeList:[Ljava/lang/String;.1:Ljava/lang/String; 4 +Landroid/app/assist/AssistStructure$HtmlInfoNode; 4 +Landroid/app/ActivityManager$AppTask; 4 +Landroid/view/inputmethod/SurroundingText; 5 +Landroid/widget/ProgressBar$SavedState; 6 +Landroid/telephony/SignalStrength; 9 +Landroid/app/Notification$BigTextStyle; 10 +Landroid/app/AppOpsManager$OnOpNotedListener; 11 +Landroid/window/IRemoteTransition$Stub$Proxy; 11 +Lcom/android/internal/logging/UiEventLogger$UiEventEnum; 11 +Landroid/app/AppOpsManager$OnOpNotedInternalListener; 11 +Landroid/view/DisplayCutout; 11 +Lcom/android/internal/logging/MetricsLogger; 11 +Landroid/os/strictmode/LeakedClosableViolation; 11 +Lcom/android/internal/policy/AttributeCache; 11 +Lcom/android/internal/util/LatencyTracker$Action; 11 +Landroid/app/AppOpsManager$OnOpStartedListener; 11 +Landroid/app/Notification$DecoratedCustomViewStyle; 11 +Lcom/android/internal/R$styleable;.WindowAnimation:[I 11 +Landroid/app/Notification$CallStyle; 11 +Lcom/android/internal/statusbar/NotificationVisibility; 11 +Landroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal; 12 +Landroid/graphics/ColorSpace$Model;.RGB:Landroid/graphics/ColorSpace$Model; 13 +Landroid/app/WallpaperManager; 13 +Landroid/text/TextUtils$TruncateAt; 14 +Landroid/app/smartspace/uitemplatedata/BaseTemplateData; 15 +Landroid/app/smartspace/SmartspaceTarget; 15 +Lcom/android/internal/os/SomeArgs; 16 +Landroid/widget/inline/InlinePresentationSpec; 17 +Landroid/media/AudioSystem; 18 +Lcom/android/internal/os/CachedDeviceState$Readonly; 18 +Landroid/service/notification/Condition; 18 +Landroid/os/BatteryManagerInternal; 18 +Landroid/content/pm/PermissionGroupInfo; 18 +Landroid/app/job/JobInfo; 18 +Landroid/hardware/location/IActivityRecognitionHardwareClient; 18 +Landroid/accessibilityservice/AccessibilityServiceInfo; 18 +Landroid/app/Notification$DecoratedMediaCustomViewStyle; 18 +Landroid/hardware/location/NanoAppMessage; 18 +Landroid/net/Uri$PathPart;.NULL:Landroid/net/Uri$PathPart; 18 +Landroid/hardware/soundtrigger/SoundTrigger$StatusListener; 18 +Landroid/util/EventLog; 18 +Landroid/app/ActivityManager$RecentTaskInfo; 18 +Lcom/android/internal/widget/LockSettingsInternal; 18 +Landroid/window/DisplayAreaAppearedInfo; 18 +Landroid/accounts/AuthenticatorException; 18 +Landroid/os/ResultReceiver; 18 +Landroid/content/pm/UserPackage;.sCacheLock:Ljava/lang/Object; 18 +Lcom/android/internal/view/WindowManagerPolicyThread; 18 +Landroid/content/pm/LauncherActivityInfoInternal; 18 +Landroid/webkit/WebViewLibraryLoader$RelroFileCreator; 18 +Landroid/hardware/biometrics/BiometricSourceType; 18 +Landroid/net/metrics/ValidationProbeEvent; 18 +Landroid/view/RoundedCorners; 18 +Landroid/os/Process;.ZYGOTE_PROCESS:Landroid/os/ZygoteProcess; 18 +Landroid/app/ServiceStartArgs; 18 +Landroid/telecom/Logging/EventManager$EventListener; 18 +Landroid/app/SystemServiceRegistry; 18 +Landroid/permission/PermissionManagerInternal; 18 +Landroid/service/notification/StatusBarNotification; 18 +Lcom/android/internal/os/ProcessCpuTracker$FilterStats; 18 +Lcom/android/internal/util/ToBooleanFunction; 18 +Landroid/content/pm/RegisteredServicesCache$3; 18 +Landroid/os/ServiceManager$ServiceNotFoundException; 18 +Landroid/app/ActivityManagerInternal; 18 +Landroid/app/assist/AssistStructure; 18 +Landroid/hardware/camera2/CameraManager$CameraManagerGlobal; 18 +Landroid/app/servertransaction/PauseActivityItem; 18 +Landroid/hardware/soundtrigger/SoundTriggerModule$EventHandlerDelegate; 18 +Landroid/media/AudioAttributes; 18 +Landroid/service/dreams/DreamManagerInternal; 18 +Lcom/android/internal/listeners/ListenerExecutor$FailureCallback; 18 +Landroid/net/metrics/DhcpErrorEvent; 18 +Landroid/app/servertransaction/ConfigurationChangeItem; 18 +Landroid/hardware/sidekick/SidekickInternal; 18 +Landroid/appwidget/AppWidgetManagerInternal; 18 +Landroid/hardware/display/DisplayManagerInternal; 18 +Landroid/telecom/PhoneAccountHandle; 18 +Landroid/view/WindowManagerPolicyConstants; 18 +Landroid/net/wifi/nl80211/WifiNl80211Manager$ScanEventCallback; 18 +Lcom/android/internal/app/procstats/AssociationState;.sTmpSourceKey:Lcom/android/internal/app/procstats/AssociationState$SourceKey; 18 +Landroid/content/pm/RegisteredServicesCache$2; 18 +Landroid/content/pm/UserPackage; 18 +Landroid/app/time/TimeZoneCapabilities; 18 +Lcom/android/internal/util/function/LongObjPredicate; 18 +Landroid/app/servertransaction/NewIntentItem; 18 +Landroid/app/PropertyInvalidatedCache;.sCorkedInvalidates:Ljava/util/HashMap; 18 +Lcom/android/internal/os/StatsdHiddenApiUsageLogger;.sInstance:Lcom/android/internal/os/StatsdHiddenApiUsageLogger; 18 +Landroid/app/admin/DevicePolicyManagerInternal$OnCrossProfileWidgetProvidersChangeListener; 18 +Landroid/app/usage/AppStandbyInfo; 18 +Landroid/graphics/GraphicsStatsService; 18 +Lcom/android/internal/os/LongArrayMultiStateCounter; 18 +Landroid/graphics/Bitmap$CompressFormat; 18 +Landroid/media/audiopolicy/AudioVolumeGroup; 18 +Landroid/content/pm/CrossProfileAppsInternal; 18 +Landroid/os/PowerManagerInternal; 18 +Landroid/hardware/location/GeofenceHardwareImpl; 18 +Landroid/app/AppOpsManager$AttributedOpEntry; 18 +Landroid/attention/AttentionManagerInternal; 18 +Landroid/telecom/Log; 18 +Landroid/accounts/AccountManagerInternal; 18 +Landroid/content/pm/ShortcutServiceInternal$ShortcutChangeListener; 18 +Landroid/os/PatternMatcher;.sParsedPatternScratch:[I 18 +Landroid/app/AppOpsManager$NoteOpEvent; 18 +Lcom/android/internal/R$styleable;.Window:[I 18 +Landroid/content/pm/dex/ArtManagerInternal; 18 +Landroid/content/pm/PackageInstaller$SessionInfo; 18 +Landroid/app/servertransaction/StartActivityItem; 18 +Landroid/content/pm/PackageManager;.sCacheAutoCorker:Landroid/app/PropertyInvalidatedCache$AutoCorker; 18 +Landroid/graphics/Region;.sPool:Landroid/util/Pools$SynchronizedPool;.mPool:[Ljava/lang/Object; 18 +Landroid/app/Notification$MediaStyle; 18 +Landroid/app/time/TimeZoneConfiguration; 18 +Lcom/android/internal/os/LongMultiStateCounter; 18 +Landroid/service/voice/VoiceInteractionManagerInternal; 18 +Landroid/view/Display$HdrCapabilities; 18 +Landroid/media/AudioSystem$AudioRecordingCallback; 18 +Landroid/app/servertransaction/DestroyActivityItem; 18 +Lcom/android/internal/os/RuntimeInit$ApplicationWtfHandler; 18 +Landroid/net/metrics/IpManagerEvent; 18 +Landroid/net/metrics/NetworkEvent; 18 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.7:Ljava/util/WeakHashMap$Entry;.referent:Ljava/lang/Object;.mLock:Ljava/lang/Object; 18 +Landroid/app/AppOpsManagerInternal; 18 +Landroid/content/res/ResourceTimer; 18 +Lcom/android/internal/infra/AbstractRemoteService$AsyncRequest; 18 +Lcom/android/internal/statusbar/NotificationVisibility$NotificationLocation; 18 +Landroid/app/servertransaction/ObjectPool;.sPoolSync:Ljava/lang/Object; 18 +Landroid/content/pm/PackageManager;.sCacheAutoCorker:Landroid/app/PropertyInvalidatedCache$AutoCorker;.mLock:Ljava/lang/Object; 18 +Landroid/app/admin/DevicePolicyManagerInternal; 18 +Landroid/webkit/WebViewZygote; 18 +Landroid/view/DisplayAddress$Physical; 18 +Landroid/accounts/AccountManagerInternal$OnAppPermissionChangeListener; 18 +Lcom/android/internal/os/BatteryStatsHistory$HistoryStepDetailsCalculator; 18 +Landroid/appwidget/AppWidgetProviderInfo; 18 +Landroid/provider/Settings; 18 +Lcom/android/server/AppWidgetBackupBridge; 18 +Landroid/content/pm/RegisteredServicesCacheListener; 18 +Landroid/window/IOnBackInvokedCallback$Stub$Proxy; 18 +Landroid/view/ViewDebug$ExportedProperty; 18 +Landroid/text/format/TimeFormatter; 18 +Landroid/content/ComponentName$WithComponentName; 18 +Landroid/hardware/location/ContextHubInfo; 18 +Landroid/app/servertransaction/ActivityResultItem; 18 +Landroid/hardware/display/DeviceProductInfo$ManufactureDate; 18 +Lcom/android/internal/util/function/DodecConsumer; 18 +Landroid/app/PropertyInvalidatedCache;.sCorks:Ljava/util/HashMap; 18 +Landroid/app/ApplicationExitInfo; 18 +Lcom/android/server/usage/AppStandbyInternal; 18 +Landroid/view/autofill/AutofillManagerInternal; 18 +Lcom/android/internal/infra/AbstractRemoteService$VultureCallback; 18 +Landroid/service/notification/NotificationListenerService$RankingMap; 18 +Landroid/service/notification/ConditionProviderService; 18 +Landroid/net/metrics/ApfProgramEvent; 18 +Lcom/android/internal/infra/AndroidFuture$1; 18 +Landroid/app/servertransaction/StopActivityItem; 18 +Landroid/app/PropertyInvalidatedCache$AutoCorker$1; 18 +Landroid/util/NtpTrustedTime; 18 +Landroid/content/pm/parsing/ApkLite; 18 +Lcom/android/server/LocalServices;.sLocalServiceObjects:Landroid/util/ArrayMap; 18 +Landroid/app/PropertyInvalidatedCache;.sCorkLock:Ljava/lang/Object; 18 +Landroid/app/PendingIntent$FinishedDispatcher; 18 +Landroid/os/ResultReceiver$MyResultReceiver; 18 +Landroid/os/ServiceSpecificException; 18 +Landroid/os/UEventObserver; 18 +Landroid/os/SharedMemory; 18 +Lcom/android/internal/util/function/DodecFunction; 18 +Landroid/content/pm/BaseParceledListSlice$1; 18 +Landroid/content/pm/FallbackCategoryProvider;.sFallbacks:Landroid/util/ArrayMap; 18 +Lcom/android/internal/content/om/OverlayConfig$PackageProvider; 18 +Landroid/util/ArrayMap;.sBaseCacheLock:Ljava/lang/Object; 18 +Landroid/debug/AdbManagerInternal; 18 +Landroid/view/WindowManagerPolicyConstants$PointerEventListener; 18 +Landroid/telephony/ServiceState; 18 +Lcom/android/internal/os/LooperStats; 18 +Landroid/content/pm/LauncherApps$ShortcutQuery$QueryFlags; 18 +Landroid/app/ActivityManager; 18 +Landroid/app/assist/ActivityId; 18 +Landroid/hardware/display/DeviceProductInfo; 18 +Lcom/android/internal/os/LongArrayMultiStateCounter;.sTmpArrayContainer:Ljava/util/concurrent/atomic/AtomicReference; 18 +Lcom/android/internal/os/LongArrayMultiStateCounter$LongArrayContainer; 18 +Landroid/service/notification/ZenPolicy; 18 +Landroid/content/pm/PackageManager$Property; 18 +Lcom/android/internal/content/om/OverlayConfig; 18 +Landroid/content/pm/ResolveInfo; 18 +Lcom/android/internal/os/KernelCpuBpfTracking; 18 +Landroid/content/pm/RegisteredServicesCache$1; 18 +Landroid/telecom/Logging/SessionManager$ISessionListener; 18 +Landroid/media/AudioPlaybackConfiguration$PlayerDeathMonitor; 18 +Landroid/service/autofill/FillContext; 18 +Landroid/graphics/Region;.sPool:Landroid/util/Pools$SynchronizedPool; 18 +Landroid/util/MemoryIntArray; 18 +Lcom/android/internal/config/appcloning/AppCloningDeviceConfigHelper; 18 +Landroid/os/storage/StorageManagerInternal; 18 +Landroid/media/AudioSystem$ErrorCallback; 18 +Landroid/service/notification/ZenModeConfig; 18 +Landroid/media/AudioPlaybackConfiguration; 18 +Landroid/content/pm/UserPackage;.sCache:Landroid/util/SparseArrayMap;.mData:Landroid/util/SparseArray; 18 +Landroid/app/AppOpsManager$SamplingStrategy; 18 +Landroid/app/servertransaction/ActivityConfigurationChangeItem; 18 +Landroid/hardware/location/GeofenceHardwareService; 18 +Landroid/os/RemoteCallback$1; 18 +Landroid/os/FileUtils$ProgressListener; 18 +Landroid/annotation/StringRes; 18 +Lcom/android/server/WidgetBackupProvider; 18 +Landroid/media/AudioManagerInternal$RingerModeDelegate; 18 +Landroid/hardware/biometrics/ComponentInfoInternal; 18 +Landroid/media/AudioManagerInternal; 18 +Landroid/media/AudioSystem$DynamicPolicyCallback; 18 +Landroid/os/DeadObjectException; 18 +Landroid/content/pm/ShortcutServiceInternal; 18 +Landroid/view/ViewDebug$FlagToString; 18 +Landroid/os/storage/StorageVolume; 18 +Landroid/window/TaskAppearedInfo; 18 +Lcom/android/internal/display/BrightnessSynchronizer; 18 +Lcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob; 18 +Landroid/os/strictmode/UnbufferedIoViolation; 19 +Landroid/app/usage/UsageStats; 20 +Landroid/app/usage/CacheQuotaHint; 21 +Landroid/service/watchdog/ExplicitHealthCheckService$PackageConfig; 21 +Landroid/os/BaseBundle; 22 +Landroid/os/Parcel$ReadWriteHelper; 23 +Landroid/util/SparseArray; 24 +Landroid/app/Instrumentation; 25 +Landroid/content/pm/PathPermission; 26 +[Landroid/content/pm/ConfigurationInfo; 26 +Landroid/content/pm/ActivityInfo; 26 +Landroid/content/pm/Attribution; 26 +Landroid/content/pm/ConfigurationInfo; 26 +Landroid/content/pm/ActivityInfo$WindowLayout; 26 +Landroid/os/PatternMatcher; 26 +Landroid/content/pm/ServiceInfo; 26 +[Landroid/content/pm/FeatureInfo; 26 +[Landroid/content/pm/FeatureGroupInfo; 26 +Landroid/content/pm/SigningInfo; 26 +[Landroid/content/pm/InstrumentationInfo; 26 +[Landroid/content/pm/ServiceInfo; 26 +[Landroid/os/PatternMatcher; 26 +Landroid/content/pm/ComponentInfo; 26 +[Landroid/content/pm/PermissionInfo; 26 +[Landroid/content/pm/ActivityInfo; 26 +[Landroid/content/pm/Attribution; 26 +Landroid/content/pm/SharedLibraryInfo; 26 +Landroid/content/pm/FeatureGroupInfo; 26 +Landroid/content/pm/InstrumentationInfo; 26 +[Landroid/content/pm/Signature; 26 +[Landroid/content/pm/ProviderInfo; 26 +[Landroid/content/pm/PathPermission; 26 +Landroid/content/pm/Signature; 26 +Landroid/graphics/drawable/NinePatchDrawable; 28 +Landroid/hardware/camera2/CameraCharacteristics;.LENS_INFO_AVAILABLE_APERTURES:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 29 +Landroid/hardware/camera2/CameraCharacteristics;.LENS_INFO_AVAILABLE_FOCAL_LENGTHS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 30 +Landroid/hardware/camera2/params/StreamConfigurationDuration; 31 +Landroid/hardware/camera2/CameraCharacteristics;.SCALER_AVAILABLE_MIN_FRAME_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/CameraCharacteristics;.SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/CameraCharacteristics;.DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/CameraCharacteristics;.DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/CameraCharacteristics;.HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/CameraCharacteristics;.JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/CameraCharacteristics;.DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/CameraCharacteristics;.HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/CameraCharacteristics;.SCALER_AVAILABLE_STREAM_CONFIGURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/params/StreamConfiguration; 31 +Landroid/hardware/camera2/CameraCharacteristics;.REQUEST_AVAILABLE_CAPABILITIES:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/CameraCharacteristics;.JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/CameraCharacteristics;.DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/CameraCharacteristics;.SCALER_AVAILABLE_STALL_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/CameraCharacteristics;.JPEGR_AVAILABLE_JPEG_R_MIN_FRAME_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/CameraCharacteristics;.CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/CameraCharacteristics;.DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/CameraCharacteristics;.HEIC_AVAILABLE_HEIC_STALL_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/params/HighSpeedVideoConfiguration; 31 +Landroid/hardware/camera2/CameraCharacteristics;.DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 31 +Landroid/hardware/camera2/CameraCharacteristics;.LENS_FACING:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 32 +Landroid/hardware/camera2/CameraCharacteristics;.SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 33 +Landroid/hardware/camera2/marshal/MarshalRegistry;.sMarshalerMap:Ljava/util/HashMap; 33 +Landroid/hardware/devicestate/DeviceStateManagerGlobal; 34 +Lgov/nist/javax/sip/header/AuthenticationHeader;.SIGNATURE:Ljava/lang/String; 40 +Landroid/app/slice/Slice;.SUBTYPE_SOURCE:Ljava/lang/String; 41 +Ljavax/sip/message/Request;.INFO:Ljava/lang/String; 41 +Lgov/nist/javax/sip/header/extensions/ReferencesHeader;.SERVICE:Ljava/lang/String; 42 +Landroid/icu/impl/locale/LocaleValidityChecker$SpecialCase;.normal:Landroid/icu/impl/locale/LocaleValidityChecker$SpecialCase;.name:Ljava/lang/String; 42 +Lgov/nist/javax/sip/address/NetObject;.PHONE:Ljava/lang/String; 42 +Landroid/icu/impl/ValidIdentifiers$Datatype;.language:Landroid/icu/impl/ValidIdentifiers$Datatype;.name:Ljava/lang/String; 42 +Landroid/icu/text/MessageFormat;.dateModifierList:[Ljava/lang/String;.3:Ljava/lang/String; 42 +Landroid/view/translation/UiTranslationManager;.EXTRA_PACKAGE_NAME:Ljava/lang/String; 42 +Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.140:Ljava/lang/String; 43 +Landroid/icu/impl/units/UnitPreferences;.measurementSystem:Ljava/util/Map;.m:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.15:Ljava/util/HashMap$Node;.value:Ljava/lang/Object; 44 +Lcom/android/i18n/timezone/TimeZoneFinder;.COUNTRY_ELEMENT:Ljava/lang/String; 45 +Landroid/app/usage/UsageEvents$Event;.DEVICE_EVENT_PACKAGE_NAME:Ljava/lang/String; 46 +Landroid/icu/text/MessageFormat;.rootLocale:Ljava/util/Locale;.baseLocale:Lsun/util/locale/BaseLocale;.language:Ljava/lang/String; 47 +Landroid/graphics/Bitmap; 68 +Landroid/view/inputmethod/IInputMethodManagerGlobalInvoker; 69 +Landroid/view/SurfaceControlRegistry; 70 +Lcom/android/internal/inputmethod/ImeTracing; 70 +Lcom/android/internal/policy/DecorView; 71 +Landroid/view/ViewTreeObserver; 71 +Landroid/view/accessibility/AccessibilityNodeIdManager; 71 +Landroid/view/ViewRootImpl; 71 +Landroid/widget/FrameLayout; 71 +Landroid/view/ViewStub; 71 +Landroid/window/SurfaceSyncGroup; 72 +Landroid/view/Choreographer; 73 +Landroid/os/SystemProperties;.sChangeCallbacks:Ljava/util/ArrayList; 74 +Landroid/app/ActivityClient;.sInstance:Landroid/util/Singleton; 75 +Landroid/app/ActivityClient;.INTERFACE_SINGLETON:Landroid/app/ActivityClient$ActivityClientControllerSingleton; 75 +Landroid/view/autofill/AutofillId; 76 +Landroid/os/StrictMode$InstanceTracker;.sInstanceCounts:Ljava/util/HashMap; 77 +Landroid/widget/LinearLayout; 78 Landroid/view/ViewConfiguration;.sConfigurations:Landroid/util/SparseArray;.mKeys:[I 79 Landroid/view/ViewConfiguration;.sConfigurations:Landroid/util/SparseArray;.mValues:[Ljava/lang/Object; 79 Landroid/view/ViewConfiguration;.sConfigurations:Landroid/util/SparseArray; 79 -Landroid/widget/FrameLayout; 80 -Lcom/android/internal/inputmethod/ImeTracing; 80 -Lcom/android/internal/policy/DecorView; 80 -Landroid/view/accessibility/AccessibilityNodeIdManager; 80 -Landroid/view/ViewTreeObserver; 80 -Landroid/view/ViewRootImpl; 80 -Landroid/os/SystemProperties;.sChangeCallbacks:Ljava/util/ArrayList; 80 -Landroid/transition/ChangeTransform; 80 -Landroid/window/SurfaceSyncGroup; 80 -Landroid/transition/ChangeClipBounds; 80 -Landroid/view/SurfaceControlRegistry; 80 -Landroid/transition/ChangeImageTransform; 80 -Landroid/widget/LinearLayout; 80 -Landroid/view/ViewStub; 81 -Landroid/text/TextLine;.sCached:[Landroid/text/TextLine; 82 -Landroid/text/TextUtils; 82 -Landroid/graphics/TemporaryBuffer; 82 -Landroid/content/res/ColorStateList;.sCache:Landroid/util/SparseArray; 83 -Landroid/text/Layout;.sTempRect:Landroid/graphics/Rect; 84 -Landroid/widget/ImageView; 85 -Landroid/graphics/drawable/ColorDrawable; 86 -Landroid/os/StrictMode$InstanceTracker;.sInstanceCounts:Ljava/util/HashMap; 87 -Landroid/app/ActivityClient;.INTERFACE_SINGLETON:Landroid/app/ActivityClient$ActivityClientControllerSingleton; 88 -Landroid/app/ActivityClient;.sInstance:Landroid/util/Singleton; 88 -Landroid/view/AbsSavedState$1; 89 -Landroid/app/FragmentManagerState; 90 -Landroid/window/OnBackAnimationCallback; 91 -Landroid/animation/AnimatorInflater;.sTmpTypedValue:Landroid/util/TypedValue; 92 -Landroid/graphics/drawable/RippleDrawable; 93 -Landroid/view/inputmethod/IInputMethodManagerGlobalInvoker; 94 -Landroid/app/ActivityTaskManager;.IActivityTaskManagerSingleton:Landroid/util/Singleton; 95 -Landroid/view/Choreographer; 96 -Lcom/android/internal/os/SomeArgs; 97 -Landroid/graphics/Bitmap; 98 -Landroid/view/autofill/AutofillId; 99 -Landroid/view/inputmethod/BaseInputConnection;.COMPOSING:Ljava/lang/Object; 100 -Landroid/text/Selection;.SELECTION_MEMORY:Ljava/lang/Object; 101 -Landroid/text/Selection;.SELECTION_END:Ljava/lang/Object; 101 -Landroid/text/Selection;.SELECTION_START:Ljava/lang/Object; 101 -Landroid/text/SpannableStringBuilder;.sCachedIntBuffer:[[I 102 -Landroid/text/Selection$MemoryTextWatcher; 103 -Landroid/text/SpanWatcher; 104 -Lcom/android/internal/util/ArrayUtils;.sCache:[Ljava/lang/Object; 105 -Ljava/lang/Integer;.SMALL_NEG_VALUES:[Ljava/lang/String; 106 -Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap;.tail:Ljava/util/LinkedHashMap$LinkedHashMapEntry;.before:Ljava/util/LinkedHashMap$LinkedHashMapEntry;.before:Ljava/util/LinkedHashMap$LinkedHashMapEntry;.before:Ljava/util/LinkedHashMap$LinkedHashMapEntry;.before:Ljava/util/LinkedHashMap$LinkedHashMapEntry;.before:Ljava/util/LinkedHashMap$LinkedHashMapEntry; 107 -Lsun/nio/ch/SharedFileLockTable;.lockMap:Ljava/util/concurrent/ConcurrentHashMap; 108 -Lsun/nio/ch/FileChannelImpl; 108 -Landroid/database/sqlite/SQLiteDatabase$CursorFactory; 109 -Landroid/database/sqlite/SQLiteDebug$NoPreloadHolder; 110 -Landroid/database/sqlite/SQLiteCompatibilityWalFlags; 110 -Landroid/database/sqlite/SQLiteGlobal; 110 -Landroid/database/CursorWindow; 111 -Landroid/content/ContentResolver; 112 -Ljava/nio/charset/Charset; 113 -Landroid/app/ContextImpl; 114 -Ljava/util/concurrent/Executors$DefaultThreadFactory;.poolNumber:Ljava/util/concurrent/atomic/AtomicInteger; 115 -Landroid/content/pm/PackageManager;.sPackageInfoCache:Landroid/app/PropertyInvalidatedCache;.mCache:Ljava/util/LinkedHashMap; 116 -Landroid/content/pm/PackageManager;.sApplicationInfoCache:Landroid/app/PropertyInvalidatedCache;.mCache:Ljava/util/LinkedHashMap; 117 -Ljava/util/logging/LogManager;.manager:Ljava/util/logging/LogManager;.systemContext:Ljava/util/logging/LogManager$LoggerContext;.namedLoggers:Ljava/util/Hashtable;.table:[Ljava/util/Hashtable$HashtableEntry; 118 -Landroid/ddm/DdmHandleAppName; 118 -Landroid/provider/DeviceConfigInitializer; 118 -Lsun/misc/Cleaner; 118 -Ldalvik/system/CloseGuard; 118 -Landroid/graphics/Typeface; 118 -Landroid/os/BinderProxy;.sProxyMap:Landroid/os/BinderProxy$ProxyMap;.mMainIndexKeys:[[Ljava/lang/Long; 118 -Landroid/permission/PermissionManager; 118 -Landroid/media/MediaFrameworkPlatformInitializer; 118 -Ljava/util/TimeZone; 118 -Landroid/os/Environment; 118 -Landroid/compat/Compatibility; 118 -Landroid/os/ServiceManager; 118 -Landroid/content/pm/PackageManager;.sApplicationInfoCache:Landroid/app/PropertyInvalidatedCache; 118 -Ljava/util/Locale$NoImagePreloadHolder; 118 -Ljava/lang/System; 118 -Lcom/android/internal/os/RuntimeInit; 118 -Ljava/util/logging/LogManager;.manager:Ljava/util/logging/LogManager;.systemContext:Ljava/util/logging/LogManager$LoggerContext;.namedLoggers:Ljava/util/Hashtable; 118 -Ldalvik/system/VMRuntime;.THE_ONE:Ldalvik/system/VMRuntime; 118 -Landroid/view/View; 118 -Landroid/hardware/display/DisplayManagerGlobal; 118 -Ljava/util/logging/LogManager;.manager:Ljava/util/logging/LogManager; 118 -Landroid/telephony/TelephonyFrameworkInitializer; 118 -Landroid/se/omapi/SeFrameworkInitializer; 118 -Landroid/app/LoadedApk;.sApplications:Landroid/util/ArrayMap;.mHashes:[I 118 -Landroid/security/net/config/SystemCertificateSource$NoPreloadHolder; 118 -Landroid/security/net/config/ApplicationConfig; 118 -Landroid/content/res/Resources;.sResourcesHistory:Ljava/util/Set;.c:Ljava/util/Collection;.m:Ljava/util/Map; 118 -Ljava/util/Locale; 118 -Landroid/content/res/Resources;.sResourcesHistory:Ljava/util/Set;.c:Ljava/util/Collection;.m:Ljava/util/Map;.table:[Ljava/util/WeakHashMap$Entry; 118 -Ljava/security/Provider; 118 -Ldalvik/system/ZygoteHooks; 118 -Landroid/os/Message; 118 -Landroid/app/LoadedApk;.sApplications:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object; 118 -Landroid/app/LoadedApk;.sApplications:Landroid/util/ArrayMap; 118 -Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap; 118 -Ljava/util/logging/LogManager;.manager:Ljava/util/logging/LogManager;.userContext:Ljava/util/logging/LogManager$LoggerContext;.namedLoggers:Ljava/util/Hashtable; 118 -Ljava/lang/ThreadGroup;.mainThreadGroup:Ljava/lang/ThreadGroup; 118 -Ldalvik/system/RuntimeHooks; 118 -Landroid/nfc/NfcFrameworkInitializer; 118 -Landroid/os/Looper; 118 -Landroid/os/LocaleList; 118 -Ldalvik/system/SocketTagger; 118 -Landroid/icu/util/TimeZone; 118 -Landroid/util/ArraySet; 118 -Ljava/util/logging/LogManager;.manager:Ljava/util/logging/LogManager;.systemContext:Ljava/util/logging/LogManager$LoggerContext;.root:Ljava/util/logging/LogManager$LogNode; 118 -Landroid/os/BinderProxy;.sProxyMap:Landroid/os/BinderProxy$ProxyMap;.mMainIndexValues:[Ljava/util/ArrayList; 118 -Ljava/util/Random;.seedUniquifier:Ljava/util/concurrent/atomic/AtomicLong; 118 -Landroid/app/ActivityThread; 118 -Landroid/os/Binder; 118 -Ljava/lang/ThreadLocal;.nextHashCode:Ljava/util/concurrent/atomic/AtomicInteger; 119 -Landroid/os/Parcel; 120 -Landroid/system/UnixSocketAddress; 120 -Ljava/lang/ThreadGroup;.systemThreadGroup:Ljava/lang/ThreadGroup; 120 -Ljava/lang/Daemons$FinalizerDaemon;.INSTANCE:Ljava/lang/Daemons$FinalizerDaemon; 120 -Landroid/os/Parcel;.sPairedCreators:Ljava/util/HashMap; 120 -Ljava/lang/Thread; 120 -Landroid/os/Parcel;.mCreators:Ljava/util/HashMap; 120 -Ljava/lang/Daemons$FinalizerDaemon;.INSTANCE:Ljava/lang/Daemons$FinalizerDaemon;.progressCounter:Ljava/util/concurrent/atomic/AtomicInteger; 120 -Landroid/system/StructPollfd; 120 -Ljava/lang/Daemons$HeapTaskDaemon;.INSTANCE:Ljava/lang/Daemons$HeapTaskDaemon; 120 -Landroid/system/StructTimeval; 120 -Ldalvik/system/VMRuntime;.THE_ONE:Ldalvik/system/VMRuntime;.allocationCount:Ljava/util/concurrent/atomic/AtomicInteger; 120 -Ljava/lang/Daemons$ReferenceQueueDaemon;.INSTANCE:Ljava/lang/Daemons$ReferenceQueueDaemon;.progressCounter:Ljava/util/concurrent/atomic/AtomicInteger; 120 -Landroid/os/GraphicsEnvironment;.sInstance:Landroid/os/GraphicsEnvironment; 120 -Ljava/lang/Daemons$FinalizerWatchdogDaemon;.INSTANCE:Ljava/lang/Daemons$FinalizerWatchdogDaemon; 120 -Ljava/lang/ref/FinalizerReference; 120 -Landroid/os/Process; 120 -Ljava/lang/Daemons$ReferenceQueueDaemon;.INSTANCE:Ljava/lang/Daemons$ReferenceQueueDaemon; 120 -Lcom/android/internal/os/BinderInternal; 120 -Landroid/app/ApplicationLoaders;.gApplicationLoaders:Landroid/app/ApplicationLoaders;.mLoaders:Landroid/util/ArrayMap; 121 -Landroid/app/DexLoadReporter;.INSTANCE:Landroid/app/DexLoadReporter;.mDataDirs:Ljava/util/Set;.map:Ljava/util/HashMap; 122 -Ldalvik/system/BaseDexClassLoader; 122 -Landroid/renderscript/RenderScriptCacheDir; 122 -Landroid/graphics/Compatibility; 123 -Llibcore/io/Libcore; 123 -Landroid/provider/FontsContract; 123 -Ljava/security/Security;.version:Ljava/util/concurrent/atomic/AtomicInteger; 123 -Llibcore/net/NetworkSecurityPolicy; 123 -Lsun/security/jca/Providers; 123 -Landroid/graphics/Canvas; 123 -Landroid/os/StrictMode; 124 -Landroid/content/pm/PackageManager;.sPackageInfoCache:Landroid/app/PropertyInvalidatedCache; 125 -Lcom/android/internal/os/StatsdHiddenApiUsageLogger;.sInstance:Lcom/android/internal/os/StatsdHiddenApiUsageLogger; 126 -Ljava/util/logging/LogManager;.manager:Ljava/util/logging/LogManager;.loggerRefQueue:Ljava/lang/ref/ReferenceQueue; 127 -Landroid/view/WindowManagerGlobal; 128 -Lcom/android/internal/util/function/pooled/PooledLambdaImpl;.sPool:Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool; 129 -Lcom/android/internal/util/function/pooled/PooledLambdaImpl;.sPool:Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;.mPool:[Ljava/lang/Object; 129 -Landroid/view/inputmethod/InputMethodManager; 130 -Landroid/media/MediaRouter; 131 -Landroid/hardware/SensorPrivacyManager; 132 -Landroid/os/storage/StorageManager; 133 -Landroid/view/contentcapture/ContentCaptureManager; 134 -Landroid/hardware/input/InputManager; 134 -Landroid/app/people/PeopleManager; 134 -Landroid/media/session/MediaSessionManager; 134 -Landroid/security/attestationverification/AttestationVerificationManager; 134 -Landroid/net/vcn/VcnManager; 134 -Landroid/os/RecoverySystem; 134 -Landroid/net/NetworkPolicyManager; 134 -Landroid/net/wifi/sharedconnectivity/app/SharedConnectivityManager; 134 -Landroid/permission/PermissionControllerManager; 134 -Landroid/app/tare/EconomyManager; 134 -Landroid/view/translation/TranslationManager; 134 -Landroid/view/textclassifier/TextClassificationManager; 134 -Landroid/view/autofill/AutofillManager; 134 -Landroid/os/SystemConfigManager; 134 -Landroid/view/LayoutInflater; 134 -Landroid/credentials/CredentialManager; 134 -Landroid/service/persistentdata/PersistentDataBlockManager; 134 -Landroid/view/textservice/TextServicesManager; 134 -Landroid/app/admin/DevicePolicyManager; 134 -Ljava/lang/StackStreamFactory; 134 -Landroid/view/WindowManager; 134 -Landroid/app/contentsuggestions/ContentSuggestionsManager; 134 -Landroid/media/tv/tunerresourcemanager/TunerResourceManager; 134 -Landroid/telephony/SubscriptionManager; 134 -Landroid/os/HardwarePropertiesManager; 134 -Landroid/media/AudioManager; 135 -Landroid/telephony/TelephonyManager; 136 -Landroid/util/ArrayMap; 137 -Landroid/app/QueuedWork; 138 -Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.0:Ljava/util/WeakHashMap$Entry; 139 -Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap; 140 -Ljava/util/concurrent/ScheduledThreadPoolExecutor;.sequencer:Ljava/util/concurrent/atomic/AtomicLong; 141 -Landroid/util/Log; 142 -Ljava/util/Collections$SynchronizedCollection; 143 -Ljava/util/Set; 143 -Ljava/util/Collections$SynchronizedSet; 143 -Ljava/util/Collection; 143 -Ljava/lang/Integer;.SMALL_NONNEG_VALUES:[Ljava/lang/String; 144 -Landroid/content/ComponentName; 145 -Landroid/view/textclassifier/TextLanguage;.EMPTY:Landroid/view/textclassifier/TextLanguage;.mBundle:Landroid/os/Bundle; 146 -Landroid/os/PersistableBundle;.EMPTY:Landroid/os/PersistableBundle; 147 -Landroid/icu/impl/locale/BaseLocale;.CACHE:Landroid/icu/impl/locale/BaseLocale$Cache;._map:Ljava/util/concurrent/ConcurrentHashMap; 148 -Ljava/util/GregorianCalendar; 149 -Ljava/text/DontCareFieldPosition;.INSTANCE:Ljava/text/FieldPosition; 150 -Landroid/app/UiModeManager; 151 -Ljdk/internal/access/SharedSecrets; 152 -Landroid/icu/impl/ZoneMeta;.CANONICAL_ID_CACHE:Landroid/icu/impl/ICUCache; 153 -Landroid/icu/impl/ZoneMeta;.SYSTEM_ZONE_CACHE:Landroid/icu/impl/ZoneMeta$SystemTimeZoneCache;.map:Ljava/util/concurrent/ConcurrentHashMap; 154 -Ljava/time/ZoneOffset;.ID_CACHE:Ljava/util/concurrent/ConcurrentMap; 155 -Ljava/time/ZoneOffset;.ID_CACHE:Ljava/util/concurrent/ConcurrentMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node; 155 -Ljava/time/ZoneOffset;.SECONDS_CACHE:Ljava/util/concurrent/ConcurrentMap; 155 -Ljava/time/ZoneOffset;.SECONDS_CACHE:Ljava/util/concurrent/ConcurrentMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.0:Ljava/util/concurrent/ConcurrentHashMap$Node;.next:Ljava/util/concurrent/ConcurrentHashMap$Node; 155 -Ljava/time/ZoneOffset;.SECONDS_CACHE:Ljava/util/concurrent/ConcurrentMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node; 155 -Landroid/widget/TextView; 156 -Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;.sPool:Landroid/util/Pools$SimplePool;.mPool:[Ljava/lang/Object; 157 -Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;.sPool:Landroid/util/Pools$SimplePool; 157 -Landroid/view/ViewGroup; 158 -Landroid/graphics/Rect; 159 -Landroid/view/View$BaseSavedState; 160 -Landroid/widget/Button; 161 -Landroid/widget/ImageButton; 162 -Landroid/view/View$OnHoverListener; 163 -Landroid/widget/Toolbar; 164 -Landroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal; 165 -Landroid/app/WallpaperManager; 166 -Landroid/graphics/ColorSpace$Model;.RGB:Landroid/graphics/ColorSpace$Model; 166 -Landroid/graphics/drawable/AdaptiveIconDrawable; 167 -Landroid/animation/ValueAnimator$DurationScaleChangeListener; 168 -Landroid/widget/Toast; 168 -Landroid/app/smartspace/SmartspaceSession$OnTargetsAvailableListener; 168 -Landroid/view/CrossWindowBlurListeners; 168 -Landroid/app/servertransaction/ActivityRelaunchItem; 169 -[Ljava/util/concurrent/ForkJoinTask; 169 -Landroid/view/WindowManager$LayoutParams; 169 -Ljava/util/concurrent/ForkJoinPool$WorkQueue; 169 -Landroid/app/prediction/AppTargetEvent; 169 -Lorg/xmlpull/v1/XmlPullParserException; 169 -Landroid/app/servertransaction/ObjectPool;.sPoolMap:Ljava/util/Map; 170 -Landroid/app/servertransaction/ClientTransaction; 170 -Landroid/app/servertransaction/StopActivityItem; 170 -Landroid/system/ErrnoException; 171 -Landroid/hardware/location/ContextHubTransaction$OnCompleteListener; 172 -Landroid/app/PendingIntent$OnFinished; 172 -Ljava/lang/NullPointerException; 173 -Landroid/os/strictmode/DiskReadViolation; 174 -Lorg/apache/http/params/HttpParams; 175 -Landroid/nfc/cardemulation/CardEmulation; 176 -Ljava/io/FileDescriptor; 177 -Landroid/content/pm/PackageManager$OnPermissionsChangedListener; 178 -Landroid/security/keystore2/KeyStoreCryptoOperationUtils; 179 -Landroid/app/ActivityTaskManager; 180 -Landroid/util/EventLog; 181 -Ljava/net/URLConnection; 181 -Ljava/net/SocketException; 181 -Ljava/lang/reflect/InvocationTargetException; 181 -Ljava/lang/Enum; 182 -Landroid/widget/AbsListView$SelectionBoundsAdjuster; 183 -Ljava/lang/ClassNotFoundException; 183 -Landroid/content/SyncStatusObserver; 184 -Landroid/content/AsyncTaskLoader$LoadTask; 185 -Landroid/app/LoaderManager$LoaderCallbacks; 185 -Landroid/webkit/CookieSyncManager; 186 -Landroid/webkit/WebViewProvider$ViewDelegate; 187 -Landroid/webkit/WebView; 187 -Landroid/webkit/WebViewProvider$ScrollDelegate; 187 -Landroid/webkit/WebViewProvider; 187 -Landroid/webkit/WebViewFactory;.sTimestamps:Landroid/webkit/WebViewFactory$StartupTimestamps; 188 -Landroid/webkit/WebViewFactoryProvider; 189 -Landroid/webkit/WebViewFactory; 190 -Landroid/os/PowerManager$OnThermalStatusChangedListener; 191 -Landroid/os/Bundle; 192 -Landroid/widget/ProgressBar; 193 -Landroid/graphics/Bitmap$Config;.ALPHA_8:Landroid/graphics/Bitmap$Config; 194 -Landroid/graphics/Bitmap$Config;.RGB_565:Landroid/graphics/Bitmap$Config; 194 -Landroid/graphics/Bitmap$Config;.RGBA_1010102:Landroid/graphics/Bitmap$Config; 194 -Landroid/renderscript/Allocation;.mBitmapOptions:Landroid/graphics/BitmapFactory$Options;.inPreferredConfig:Landroid/graphics/Bitmap$Config; 194 -Landroid/graphics/Bitmap$Config;.RGBA_F16:Landroid/graphics/Bitmap$Config; 194 -Landroid/graphics/Bitmap$Config;.ARGB_4444:Landroid/graphics/Bitmap$Config; 194 -Landroid/graphics/Bitmap$Config;.HARDWARE:Landroid/graphics/Bitmap$Config; 194 -Landroid/graphics/drawable/StateListDrawable; 195 -Landroid/view/PointerIcon;.gSystemIconsByDisplay:Landroid/util/SparseArray; 196 -Landroid/view/PointerIcon; 196 -Ljavax/net/ssl/SSLServerSocketFactory; 197 -Ljavax/net/ssl/SSLSocketFactory; 198 -Ljavax/net/ssl/HttpsURLConnection$NoPreloadHolder; 198 -Ljavax/net/ssl/SSLSessionContext; 199 -Lcom/android/org/bouncycastle/crypto/CryptoServicesRegistrar; 200 -Lsun/security/x509/PKIXExtensions;.KeyUsage_Id:Lsun/security/util/ObjectIdentifier; 201 -Lsun/security/x509/PKIXExtensions;.PolicyConstraints_Id:Lsun/security/util/ObjectIdentifier; 201 -Ljava/security/cert/PKIXRevocationChecker$Option;.ONLY_END_ENTITY:Ljava/security/cert/PKIXRevocationChecker$Option; 201 -Lsun/security/x509/PKIXExtensions;.ExtendedKeyUsage_Id:Lsun/security/util/ObjectIdentifier; 201 -Lsun/security/provider/X509Factory;.certCache:Lsun/security/util/Cache; 201 -Lsun/security/x509/PKIXExtensions;.CertificatePolicies_Id:Lsun/security/util/ObjectIdentifier; 201 -Lsun/security/x509/PKIXExtensions;.NameConstraints_Id:Lsun/security/util/ObjectIdentifier; 201 -Lsun/security/x509/PKIXExtensions;.AuthorityKey_Id:Lsun/security/util/ObjectIdentifier; 201 -Lsun/security/provider/X509Factory;.certCache:Lsun/security/util/Cache;.cacheMap:Ljava/util/Map; 201 -Ljava/security/cert/PKIXRevocationChecker$Option;.NO_FALLBACK:Ljava/security/cert/PKIXRevocationChecker$Option; 201 -Lsun/security/x509/PKIXExtensions;.SubjectAlternativeName_Id:Lsun/security/util/ObjectIdentifier; 201 -Lsun/security/x509/PKIXExtensions;.PolicyMappings_Id:Lsun/security/util/ObjectIdentifier; 202 -Lsun/security/x509/PKIXExtensions;.InhibitAnyPolicy_Id:Lsun/security/util/ObjectIdentifier; 202 -Lsun/security/x509/PKIXExtensions;.BasicConstraints_Id:Lsun/security/util/ObjectIdentifier; 202 -Ljava/security/Security;.spiMap:Ljava/util/Map; 203 -Lsun/security/x509/X500Name;.commonName_oid:Lsun/security/util/ObjectIdentifier; 204 -Lsun/security/x509/X500Name;.countryName_oid:Lsun/security/util/ObjectIdentifier; 204 -Lsun/security/x509/X500Name;.orgName_oid:Lsun/security/util/ObjectIdentifier; 204 -Ljava/nio/charset/Charset;.cache2:Ljava/util/HashMap; 205 -Ljava/net/URL;.handlers:Ljava/util/Hashtable;.table:[Ljava/util/Hashtable$HashtableEntry; 206 -Ljava/net/URL;.handlers:Ljava/util/Hashtable; 206 -Ljava/net/Inet6AddressImpl;.addressCache:Ljava/net/AddressCache;.cache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap; 207 -Ljava/net/Proxy$Type;.DIRECT:Ljava/net/Proxy$Type; 208 -Ljava/net/ProxySelector;.theProxySelector:Ljava/net/ProxySelector; 208 -Lcom/android/okhttp/okio/SegmentPool; 209 -Lcom/android/okhttp/internal/http/AuthenticatorAdapter;.INSTANCE:Lcom/android/okhttp/Authenticator; 209 -Lcom/android/okhttp/HttpsHandler;.HTTP_1_1_ONLY:Ljava/util/List;.element:Ljava/lang/Object; 209 -Lcom/android/okhttp/ConfigAwareConnectionPool;.instance:Lcom/android/okhttp/ConfigAwareConnectionPool;.networkEventDispatcher:Llibcore/net/event/NetworkEventDispatcher;.listeners:Ljava/util/List; 210 -Lcom/android/okhttp/Dns;.SYSTEM:Lcom/android/okhttp/Dns; 210 -Lcom/android/okhttp/ConfigAwareConnectionPool;.instance:Lcom/android/okhttp/ConfigAwareConnectionPool; 210 -Lcom/android/okhttp/okio/AsyncTimeout; 211 -Ljava/lang/IllegalAccessException; 212 -Ljavax/net/ssl/SSLContext; 213 -Ljavax/net/ssl/HttpsURLConnection; 213 -Ljava/security/Security;.props:Ljava/util/Properties;.map:Ljava/util/concurrent/ConcurrentHashMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.12:Ljava/util/concurrent/ConcurrentHashMap$Node;.next:Ljava/util/concurrent/ConcurrentHashMap$Node; 214 -Ljava/security/Security;.props:Ljava/util/Properties;.map:Ljava/util/concurrent/ConcurrentHashMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.30:Ljava/util/concurrent/ConcurrentHashMap$Node; 214 -Landroid/database/sqlite/SQLiteTransactionListener; 215 -Landroid/accounts/OnAccountsUpdateListener; 216 -Landroid/accounts/AccountManager$20; 217 -Lsun/nio/ch/FileChannelImpl$Unmapper; 218 -Landroid/content/res/Resources;.sResourcesHistory:Ljava/util/Set;.c:Ljava/util/Collection;.m:Ljava/util/Map;.queue:Ljava/lang/ref/ReferenceQueue; 219 -Landroid/text/method/SingleLineTransformationMethod; 220 -Landroid/widget/RelativeLayout; 221 -Landroid/graphics/drawable/BitmapDrawable; 222 -Landroid/graphics/drawable/GradientDrawable; 223 -Landroid/animation/PropertyValuesHolder;.sGetterPropertyMap:Ljava/util/HashMap; 224 -Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;.sJNISetterPropertyMap:Ljava/util/HashMap; 225 -Landroid/graphics/drawable/Drawable;.DEFAULT_TINT_MODE:Landroid/graphics/PorterDuff$Mode; 226 -Landroid/text/StaticLayout$Builder;.sPool:Landroid/util/Pools$SynchronizedPool; 227 -Landroid/text/StaticLayout$Builder;.sPool:Landroid/util/Pools$SynchronizedPool;.mPool:[Ljava/lang/Object; 227 -Ljava/util/concurrent/ThreadLocalRandom; 228 -Landroid/widget/Space; 229 -Landroid/widget/ScrollView; 230 -Landroid/text/style/LineHeightSpan; 231 -Landroid/text/style/TabStopSpan; 232 -Landroid/text/style/ReplacementSpan; 233 -Landroid/text/style/MetricAffectingSpan; 233 -Landroid/text/style/LeadingMarginSpan; 233 +Landroid/view/WindowManagerImpl; 80 +Landroid/view/accessibility/AccessibilityManager; 81 +Landroid/app/ActivityTaskManager;.IActivityTaskManagerSingleton:Landroid/util/Singleton; 82 +Landroid/os/Handler; 83 +Landroid/transition/ChangeImageTransform; 109 +Landroid/transition/ChangeClipBounds; 109 +Landroid/transition/ChangeTransform; 109 +Landroid/graphics/drawable/ColorDrawable; 110 +Landroid/text/TextUtils; 111 +Landroid/graphics/TemporaryBuffer; 112 +Landroid/text/TextLine;.sCached:[Landroid/text/TextLine; 113 +Landroid/text/Layout;.sTempRect:Landroid/graphics/Rect; 114 +Landroid/widget/ImageView; 115 +Landroid/content/res/ColorStateList;.sCache:Landroid/util/SparseArray; 116 +Landroid/graphics/Bitmap;.sAllBitmaps:Ljava/util/WeakHashMap; 117 +Landroid/icu/impl/locale/BaseLocale;.CACHE:Landroid/icu/impl/locale/BaseLocale$Cache;._map:Ljava/util/concurrent/ConcurrentHashMap; 118 +Landroid/database/sqlite/SQLiteGlobal; 125 +Landroid/database/sqlite/SQLiteDebug$NoPreloadHolder; 125 +Landroid/database/sqlite/SQLiteCompatibilityWalFlags; 125 +Landroid/database/CursorWindow; 126 +Landroid/content/SharedPreferences; 127 +Landroid/app/AppOpsManager; 132 +Landroid/app/LoadedApk;.sApplications:Landroid/util/ArrayMap;.mHashes:[I 133 +Landroid/media/MediaFrameworkPlatformInitializer; 133 +Lcom/android/internal/os/RuntimeInit; 133 +Landroid/os/Message; 133 +Landroid/content/res/Resources;.sResourcesHistory:Ljava/util/Set;.c:Ljava/util/Collection;.m:Ljava/util/Map; 133 +Landroid/os/ServiceManager; 133 +Landroid/se/omapi/SeFrameworkInitializer; 133 +Landroid/ddm/DdmHandleAppName; 133 +Landroid/security/net/config/ApplicationConfig; 133 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.7:Ljava/util/WeakHashMap$Entry;.referent:Ljava/lang/Object; 133 +Landroid/os/Environment; 133 +Landroid/os/Looper; 133 +Landroid/content/res/Resources;.sResourcesHistory:Ljava/util/Set;.c:Ljava/util/Collection;.m:Ljava/util/Map;.table:[Ljava/util/WeakHashMap$Entry; 133 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.7:Ljava/util/WeakHashMap$Entry;.referent:Ljava/lang/Object;.mCache:Ljava/util/LinkedHashMap; 133 +Landroid/os/StrictMode; 133 +Landroid/provider/DeviceConfigInitializer; 133 +Landroid/graphics/Typeface; 133 +Landroid/app/ActivityThread; 133 +Landroid/view/View; 133 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap; 133 +Landroid/app/LoadedApk;.sApplications:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object; 133 +Landroid/telephony/TelephonyFrameworkInitializer; 133 +Landroid/util/ArraySet; 133 +Landroid/os/Binder; 133 +Landroid/os/LocaleList; 133 +Landroid/hardware/display/DisplayManagerGlobal; 133 +Landroid/app/LoadedApk;.sApplications:Landroid/util/ArrayMap; 133 +Landroid/security/net/config/SystemCertificateSource$NoPreloadHolder; 133 +Landroid/os/DdmSyncState; 133 +Landroid/os/GraphicsEnvironment;.sInstance:Landroid/os/GraphicsEnvironment; 134 +Landroid/os/Parcel;.mCreators:Ljava/util/HashMap; 134 +Landroid/os/Parcel; 134 +Landroid/app/ApplicationLoaders;.gApplicationLoaders:Landroid/app/ApplicationLoaders;.mLoaders:Landroid/util/ArrayMap; 134 +Landroid/os/Process; 134 +Landroid/os/Parcel;.sPairedCreators:Ljava/util/HashMap; 134 +Landroid/graphics/Compatibility; 135 +Landroid/app/DexLoadReporter;.INSTANCE:Landroid/app/DexLoadReporter;.mDataDirs:Ljava/util/Set;.map:Ljava/util/HashMap; 135 +Landroid/renderscript/RenderScriptCacheDir; 135 +Landroid/graphics/Canvas; 135 +Landroid/provider/FontsContract; 135 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.4:Ljava/util/WeakHashMap$Entry;.referent:Ljava/lang/Object;.mCache:Ljava/util/LinkedHashMap; 136 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.4:Ljava/util/WeakHashMap$Entry;.referent:Ljava/lang/Object; 136 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.9:Ljava/util/WeakHashMap$Entry;.referent:Ljava/lang/Object; 139 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.9:Ljava/util/WeakHashMap$Entry;.referent:Ljava/lang/Object;.mCache:Ljava/util/LinkedHashMap; 140 +Lcom/android/internal/os/BinderInternal; 141 +Landroid/app/servertransaction/ClientTransactionListenerController; 142 +Landroid/app/QueuedWork; 143 +Landroid/view/WindowManagerGlobal; 144 +Landroid/view/WindowManager; 145 +Landroid/view/inputmethod/InputMethodManager; 146 +Landroid/telephony/TelephonyManager; 147 +Landroid/content/Context; 151 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.4:Ljava/util/WeakHashMap$Entry;.referent:Ljava/lang/Object;.mSkips:[J 152 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.9:Ljava/util/WeakHashMap$Entry;.referent:Ljava/lang/Object;.mSkips:[J 153 +Landroid/app/NotificationManager; 154 +Landroid/content/pm/VersionedPackage; 155 +Landroid/content/ContentResolver; 156 +Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener; 160 +Landroid/app/UiModeManager; 162 +Landroid/webkit/WebViewFactory; 163 +Landroid/webkit/WebViewFactory;.sTimestamps:Landroid/webkit/WebViewFactory$StartupTimestamps; 164 +Landroid/webkit/WebViewFactoryProvider; 165 +Landroid/webkit/WebViewProvider$ViewDelegate; 166 +Landroid/webkit/WebViewProvider; 166 +Landroid/webkit/WebViewProvider$ScrollDelegate; 166 +Landroid/webkit/CookieSyncManager; 167 +Landroid/media/MediaCodecList; 168 +Landroid/media/MediaCodecInfo$CodecCapabilities$FeatureList; 168 +Landroid/media/MediaCodec; 169 +Landroid/view/KeyEvent; 170 +Landroid/webkit/HttpAuthHandler; 171 +Landroid/webkit/WebResourceResponse; 171 +Landroid/webkit/WebViewClient; 171 +Landroid/webkit/WebResourceError; 171 +Landroid/webkit/WebView; 171 +Landroid/view/InputEvent; 171 +Landroid/webkit/RenderProcessGoneDetail; 171 +Landroid/webkit/WebResourceRequest; 172 +Landroid/view/PointerIcon;.SYSTEM_ICONS:Landroid/util/SparseArray; 173 +Landroid/content/ClipboardManager$OnPrimaryClipChangedListener; 174 +Landroid/hardware/input/InputManager$InputDeviceListener; 175 +Landroid/hardware/input/InputManagerGlobal; 176 +Landroid/window/WindowTokenClientController; 177 +Landroid/os/PowerManager$OnThermalStatusChangedListener; 178 +Landroid/webkit/WebViewFactoryProvider$Statics; 179 +Landroid/webkit/DownloadListener; 180 +Landroid/webkit/ConsoleMessage; 181 +Landroid/webkit/GeolocationPermissions$Callback; 181 +Landroid/webkit/PermissionRequest; 181 +Landroid/webkit/WebChromeClient$CustomViewCallback; 181 +Landroid/webkit/WebChromeClient; 181 +Landroid/webkit/ValueCallback; 182 +Landroid/view/View$OnDragListener; 183 +Landroid/view/autofill/Helper; 184 +Landroid/icu/impl/ICUResourceBundleReader;.CACHE:Landroid/icu/impl/ICUResourceBundleReader$ReaderCache;.map:Ljava/util/concurrent/ConcurrentHashMap; 185 +Landroid/icu/impl/ZoneMeta;.CANONICAL_ID_CACHE:Landroid/icu/impl/ICUCache; 186 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.10:Ljava/util/WeakHashMap$Entry;.referent:Ljava/lang/Object; 187 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.10:Ljava/util/WeakHashMap$Entry;.referent:Ljava/lang/Object;.mCache:Ljava/util/LinkedHashMap; 188 +Landroid/graphics/fonts/Font$NoImagePreloadHolder; 189 +Landroid/icu/text/DecimalFormatSymbols;.cachedLocaleData:Landroid/icu/impl/CacheBase;.map:Ljava/util/concurrent/ConcurrentHashMap; 198 +Landroid/icu/impl/CurrencyData;.provider:Landroid/icu/impl/CurrencyData$CurrencyDisplayInfoProvider; 199 +Landroid/icu/text/DateFormatSymbols;.DFSCACHE:Landroid/icu/impl/CacheBase;.map:Ljava/util/concurrent/ConcurrentHashMap; 204 +Landroid/icu/util/ULocale; 205 +Landroid/graphics/Paint;.sMinikinLocaleListIdCache:Ljava/util/HashMap; 206 +Landroid/os/Parcelable$Creator; 207 +Landroid/graphics/drawable/Drawable; 215 +Landroid/graphics/Bitmap$Config;.RGB_565:Landroid/graphics/Bitmap$Config; 218 +Landroid/graphics/Bitmap$Config;.RGBA_F16:Landroid/graphics/Bitmap$Config; 218 +Landroid/renderscript/Allocation;.mBitmapOptions:Landroid/graphics/BitmapFactory$Options;.inPreferredConfig:Landroid/graphics/Bitmap$Config; 218 +Landroid/graphics/Bitmap$Config;.HARDWARE:Landroid/graphics/Bitmap$Config; 218 +Landroid/graphics/Bitmap$Config;.RGBA_1010102:Landroid/graphics/Bitmap$Config; 218 +Landroid/graphics/Bitmap$Config;.ALPHA_8:Landroid/graphics/Bitmap$Config; 218 +Landroid/graphics/Bitmap$Config;.ARGB_4444:Landroid/graphics/Bitmap$Config; 218 +Landroid/os/ParcelFileDescriptor; 219 +Landroid/content/ComponentName; 224 +Landroid/view/textclassifier/TextLanguage;.EMPTY:Landroid/view/textclassifier/TextLanguage;.mBundle:Landroid/os/Bundle; 225 +Landroid/database/sqlite/SQLiteDatabase$CursorFactory; 226 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.7:Ljava/util/WeakHashMap$Entry;.referent:Ljava/lang/Object;.mSkips:[J 227 +Landroid/util/ArrayMap; 229 +Landroid/media/AudioManager; 230 +Landroid/content/res/Resources;.sResourcesHistory:Ljava/util/Set;.c:Ljava/util/Collection;.m:Ljava/util/Map;.queue:Ljava/lang/ref/ReferenceQueue; 231 +Lcom/android/internal/util/ArrayUtils;.sCache:[Ljava/lang/Object; 232 +Landroid/text/SpanWatcher; 233 Landroid/text/style/LineBackgroundSpan; 234 -Landroid/text/style/CharacterStyle; 235 -Landroid/text/style/SuggestionSpan; 236 -Landroid/widget/TextView$ChangeWatcher; 237 -Landroid/text/DynamicLayout$Builder;.sPool:Landroid/util/Pools$SynchronizedPool;.mPool:[Ljava/lang/Object; 238 -Landroid/text/DynamicLayout; 238 -Landroid/text/DynamicLayout$ChangeWatcher; 238 -Landroid/text/style/WrapTogetherSpan; 238 -Landroid/text/DynamicLayout$Builder;.sPool:Landroid/util/Pools$SynchronizedPool; 238 -Landroid/text/method/LinkMovementMethod; 239 +Landroid/text/style/LeadingMarginSpan; 235 +Landroid/text/style/TabStopSpan; 236 +Landroid/text/style/LineBreakConfigSpan; 237 +Landroid/text/style/MetricAffectingSpan; 238 +Landroid/text/style/LineHeightSpan; 239 Landroid/text/style/ClickableSpan; 240 -Ljava/util/logging/LogRecord;.globalSequenceNumber:Ljava/util/concurrent/atomic/AtomicLong; 241 -Ljava/lang/Runtime;.currentRuntime:Ljava/lang/Runtime; 242 -Landroid/content/pm/LauncherActivityInfo; 243 -Landroid/database/sqlite/SQLiteMisuseException; 243 -Landroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask; 243 -Landroid/database/sqlite/SQLiteCantOpenDatabaseException; 243 -Landroid/database/sqlite/SQLiteDatabaseCorruptException; 243 -Landroid/database/sqlite/SQLiteDatabaseLockedException; 243 -Ljava/util/Map$Entry; 243 -Ljava/util/zip/ZipException; 243 -Landroid/database/sqlite/SQLiteAccessPermException; 243 -Landroid/speech/tts/TextToSpeech$OnInitListener; 243 -Landroid/app/Notification$MessagingStyle; 244 -Landroid/text/TextUtils$TruncateAt; 245 -Landroid/app/smartspace/SmartspaceTarget; 246 -Landroid/app/prediction/AppTarget; 246 -Landroid/app/smartspace/uitemplatedata/BaseTemplateData; 246 -Landroid/location/LocationManager;.sLocationListeners:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry; 247 -Landroid/location/LocationManager;.sLocationListeners:Ljava/util/WeakHashMap; 247 -Landroid/service/notification/ConditionProviderService; 248 -Landroid/os/WorkSource; 249 -Landroid/security/keystore2/AndroidKeyStoreProvider; 249 -Ljava/net/Socket; 249 -Lcom/android/internal/listeners/ListenerTransport; 249 -Landroid/os/ParcelUuid; 250 -Landroid/telephony/emergency/EmergencyNumber; 251 -Lcom/android/internal/telephony/uicc/UiccProfile$4; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$IncomingSms; 251 -Lcom/android/internal/telephony/SmsStorageMonitor$1; 251 -Lcom/android/internal/telephony/TelephonyDevController; 251 -Lcom/android/internal/telephony/uicc/UiccController; 251 -Lcom/android/internal/telephony/emergency/EmergencyNumberTracker$1; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$DataCallSession; 251 -Lcom/android/internal/telephony/TelephonyDevController;.mSims:Ljava/util/ArrayList; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$RcsAcsProvisioningStats; 251 -Ljava/lang/UnsupportedOperationException; 251 -Landroid/database/CursorToBulkCursorAdaptor; 251 -Lcom/android/internal/telephony/satellite/PointingAppController; 251 -Landroid/telephony/ModemActivityInfo; 251 -Lcom/android/internal/telephony/imsphone/ImsPhone; 251 -Lcom/android/internal/telephony/ServiceStateTracker; 251 -Lcom/android/internal/telephony/IccSmsInterfaceManager; 251 -Lcom/android/internal/telephony/util/NotificationChannelController$1; 251 -Lcom/android/internal/telephony/RilWakelockInfo; 251 -Lcom/android/internal/telephony/gsm/GsmInboundSmsHandler$GsmCbTestBroadcastReceiver; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$SipTransportFeatureTagStats; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$UceEventStats; 251 -Lcom/android/internal/telephony/euicc/EuiccConnector$BindingState; 251 -Lcom/android/internal/telephony/ims/ImsResolver$3; 251 -Landroid/net/NetworkPolicyManager$SubscriptionCallbackProxy; 251 -Lcom/android/internal/telephony/TelephonyDevController;.mModems:Ljava/util/ArrayList; 251 -Landroid/telephony/ims/aidl/IImsServiceController$Stub$Proxy; 251 -Lcom/android/internal/telephony/CarrierPrivilegesTracker$1; 251 -Lcom/android/internal/telephony/CommandException; 251 -Lcom/android/ims/FeatureConnector$1; 251 -Lcom/android/internal/telephony/IWapPushManager; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$SipDelegateStats; 251 -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker; 251 -Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mTtyModeReceivedRegistrants:Lcom/android/internal/telephony/RegistrantList;.registrants:Ljava/util/ArrayList; 251 -Landroid/view/textclassifier/TextLanguage;.EMPTY:Landroid/view/textclassifier/TextLanguage;.mBundle:Landroid/os/Bundle;.mClassLoader:Ljava/lang/ClassLoader; 251 -Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mMmiCompleteRegistrants:Lcom/android/internal/telephony/RegistrantList;.registrants:Ljava/util/ArrayList; 251 -Lcom/android/i18n/timezone/TelephonyLookup; 251 -Landroid/telephony/BarringInfo$BarringServiceInfo; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$NetworkRequests; 251 -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$14; 251 -Lcom/android/internal/telephony/SmsBroadcastUndelivered; 251 -Lcom/android/internal/telephony/LocaleTracker; 251 -Lcom/android/internal/telephony/PhoneSubInfoController; 251 -Lcom/android/internal/telephony/CarrierKeyDownloadManager$1; 251 -Lcom/android/internal/telephony/GsmCdmaCallTracker$1; 251 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.339:[Ljava/lang/String; 251 -Lcom/android/internal/telephony/ServiceStateTracker$1; 251 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.353:[Ljava/lang/String; 251 -Lcom/android/internal/telephony/euicc/EuiccCardController$SimSlotStatusChangedBroadcastReceiver; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$PresenceNotifyEvent; 251 -Lcom/android/internal/telephony/SimActivationTracker$1; 251 -Landroid/telephony/ModemInfo; 251 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.1393:[Ljava/lang/String; 251 -Landroid/telephony/CellSignalStrengthWcdma; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteProvision; 251 -Lcom/android/internal/telephony/PhoneConfigurationManager; 251 -Lcom/android/internal/telephony/SmsApplication$SmsPackageMonitor; 251 -Landroid/telephony/TelephonyRegistryManager$3; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$VoiceCallSession; 251 -Landroid/os/Handler$MessengerImpl; 251 -Lcom/android/internal/telephony/LocaleTracker$1; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$CellularDataServiceSwitch; 251 -Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mInCallVoicePrivacyOffRegistrants:Lcom/android/internal/telephony/RegistrantList;.registrants:Ljava/util/ArrayList; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteSosMessageRecommender; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationServiceDescStats; 251 -Lcom/android/internal/telephony/uicc/UiccPkcs15$Pkcs15Selector; 251 -Lcom/android/internal/telephony/CarrierResolver$2; 251 -Lcom/android/internal/telephony/CarrierActionAgent$1; 251 -Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mPhones:Ljava/util/ArrayList; 251 -Lcom/android/internal/telephony/SmsController; 251 -Lcom/android/internal/telephony/uicc/euicc/EuiccCardException; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationTermination; 251 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.1125:[Ljava/lang/String; 251 -Lcom/android/internal/telephony/NetworkTypeController$1; 251 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.803:[Ljava/lang/String; 251 -Lcom/android/internal/telephony/uicc/asn1/TagNotFoundException; 251 -Lcom/android/internal/telephony/CarrierServiceBindHelper$1; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$CellularServiceState; 251 -Lcom/android/internal/telephony/cdma/CdmaSubscriptionSourceManager; 251 -Lcom/android/internal/telephony/InboundSmsHandler$NewMessageNotificationActionReceiver; 251 -Lcom/android/internal/telephony/CarrierActionAgent; 251 -Lcom/android/i18n/timezone/TimeZoneFinder; 251 -Lcom/android/internal/telephony/RILRequest; 251 -Lcom/android/internal/telephony/RIL;.sRilTimeHistograms:Landroid/util/SparseArray; 251 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.33:[Ljava/lang/String; 251 -Lcom/android/internal/telephony/MccTable; 251 -Lcom/android/internal/telephony/uicc/UiccProfile$2; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$CarrierIdMismatch; 251 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.1235:[Ljava/lang/String; 251 -Lcom/android/internal/telephony/uicc/UiccCarrierPrivilegeRules; 251 -Landroid/telephony/CellSignalStrengthTdscdma; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsDedicatedBearerListenerEvent; 251 -Lcom/android/internal/telephony/SmsDispatchersController; 251 -Landroid/timezone/TelephonyLookup; 251 -Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteOutgoingDatagram; 251 -Lcom/android/internal/telephony/SMSDispatcher$1; 251 -Lcom/android/internal/telephony/AppSmsManager; 251 -Landroid/timezone/TimeZoneFinder; 251 -Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mBackgroundCalls:Ljava/util/ArrayList; 251 -Lcom/android/ims/rcs/uce/eab/EabProvider; 251 -Lcom/android/internal/telephony/uicc/PinStorage$1; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsDedicatedBearerEvent; 251 -Landroid/telephony/CellSignalStrengthLte; 251 -Landroid/telephony/ims/ProvisioningManager$Callback$CallbackBinder; 251 -Lcom/android/ims/ImsManager;.IMS_STATS_CALLBACKS:Landroid/util/SparseArray;.mKeys:[I 251 -Landroid/telephony/CellSignalStrengthNr; 251 -Lcom/android/internal/telephony/SomeArgs; 251 -Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mInCallVoicePrivacyOnRegistrants:Lcom/android/internal/telephony/RegistrantList;.registrants:Ljava/util/ArrayList; 251 -Lcom/android/internal/telephony/StateMachine$SmHandler; 251 -Lcom/android/internal/telephony/PackageChangeReceiver; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$OutgoingShortCodeSms; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$NetworkRequestsV2; 251 -Lcom/android/internal/telephony/nano/TelephonyProto$RilDataCall; 251 -Lcom/android/internal/telephony/euicc/EuiccConnector$AvailableState; 251 -Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub$Proxy; 251 -Landroid/telephony/data/ApnSetting;.APN_TYPE_INT_MAP:Ljava/util/Map; 251 -Lcom/android/internal/telephony/RadioInterfaceCapabilityController; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationStats; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$VoiceCallRatUsage; 251 -Lcom/android/internal/telephony/metrics/TelephonyMetrics; 251 -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$RilCall; 251 -Lcom/android/internal/telephony/NetworkRegistrationManager$NetworkRegStateCallback; 251 -Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler; 251 -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState; 251 -Lcom/android/internal/telephony/RadioConfig; 251 -Lcom/android/internal/telephony/euicc/EuiccConnector$DisconnectedState; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteSession; 251 -Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mDisplayInfoRegistrants:Lcom/android/internal/telephony/RegistrantList;.registrants:Ljava/util/ArrayList; 251 -Lcom/android/phone/ecc/nano/ProtobufEccData$EccInfo; 251 -Lcom/android/internal/telephony/GsmCdmaPhone; 251 -Lcom/android/internal/telephony/TelephonyTester$1; 251 -Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler$CdmaScpTestBroadcastReceiver; 251 -Lcom/android/internal/telephony/NetworkTypeController$DefaultState; 251 -Landroid/net/TelephonyNetworkSpecifier; 251 -Lcom/android/internal/telephony/NitzStateMachine; 251 -Landroid/app/timezonedetector/TimeZoneDetector; 251 -Lcom/android/internal/telephony/IntentBroadcaster$1; 251 -Lcom/android/internal/telephony/uicc/UiccStateChangedLauncher; 251 -Lcom/android/internal/telephony/ims/ImsResolver$1; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$OutgoingSms; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$UnmeteredNetworks; 251 -Landroid/view/textclassifier/TextLanguage;.EMPTY:Landroid/view/textclassifier/TextLanguage;.mBundle:Landroid/os/Bundle;.mClassLoader:Ljava/lang/ClassLoader;.packages:Ljava/util/Map;.m:Ljava/util/Map; 251 -Lcom/android/internal/telephony/euicc/EuiccController; 251 -Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mForegroundCalls:Ljava/util/ArrayList; 251 -Lcom/android/internal/telephony/satellite/SatelliteModemInterface; 251 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.531:[Ljava/lang/String; 251 -Lcom/android/ims/ImsManager;.IMS_STATS_CALLBACKS:Landroid/util/SparseArray; 251 -Lcom/android/internal/telephony/euicc/EuiccConnector$1; 251 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.467:[Ljava/lang/String; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$SipMessageResponse; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$SipTransportSession; 251 -Lcom/android/internal/telephony/euicc/EuiccConnector$UnavailableState; 251 -Lcom/android/internal/telephony/DeviceStateMonitor$3; 251 -Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mSignalInfoRegistrants:Lcom/android/internal/telephony/RegistrantList;.registrants:Ljava/util/ArrayList; 251 -Lcom/android/ims/ImsManager;.IMS_STATS_CALLBACKS:Landroid/util/SparseArray;.mValues:[Ljava/lang/Object; 251 -Lcom/android/internal/telephony/IccPhoneBookInterfaceManager; 251 -Lcom/android/internal/telephony/DisplayInfoController; 251 -Lcom/android/internal/telephony/ims/ImsResolver$2; 251 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.1377:[Ljava/lang/String; 251 -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState$NetworkRegistrationInfo; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteController; 251 -Landroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder; 251 -Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$EmergencyNumbersInfo; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$GbaEvent; 251 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.23:[Ljava/lang/String; 251 -Landroid/telephony/CellSignalStrengthCdma; 251 -Landroid/telephony/TelephonyLocalConnection; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteIncomingDatagram; 251 -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$2; 251 -Lcom/android/internal/telephony/ims/ImsResolver; 251 -Lcom/android/internal/telephony/SmsStorageMonitor; 251 -Lcom/android/internal/telephony/uicc/UiccProfile; 251 -Landroid/telephony/ims/ImsMmTelManager$CapabilityCallback$CapabilityBinder; 251 -Lcom/android/internal/telephony/euicc/EuiccCardController; 251 -Lcom/android/internal/telephony/SmsBroadcastUndelivered$1; 251 -Lcom/android/internal/telephony/GsmCdmaCallTracker; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$RcsClientProvisioningStats; 251 -Lcom/android/internal/telephony/cat/CatService; 251 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.761:[Ljava/lang/String; 251 -Lcom/android/internal/telephony/SmsApplication; 251 -Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mDisconnectRegistrants:Lcom/android/internal/telephony/RegistrantList;.registrants:Ljava/util/ArrayList; 251 -Lcom/android/internal/telephony/PhoneFactory; 251 -Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mHandlerMap:Ljava/util/HashMap; 251 -Landroid/os/AsyncResult; 251 -Lcom/android/internal/telephony/ProxyController; 251 -Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler$CdmaCbTestBroadcastReceiver; 251 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.453:[Ljava/lang/String; 251 -Lcom/android/internal/telephony/MultiSimSettingController; 251 -Ljava/io/BufferedReader; 251 -Landroid/telephony/CellSignalStrengthGsm; 251 -Lcom/android/internal/telephony/SimActivationTracker; 251 -Lcom/android/internal/telephony/CellBroadcastServiceManager; 251 -Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mRingingCalls:Ljava/util/ArrayList; 251 -Lcom/android/internal/telephony/IntentBroadcaster; 251 -Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationFeatureTagStats; 251 -Lcom/android/internal/telephony/euicc/EuiccConnector$EuiccPackageMonitor; 251 -Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mSuppServiceFailedRegistrants:Lcom/android/internal/telephony/RegistrantList;.registrants:Ljava/util/ArrayList; 251 -Landroid/view/textclassifier/TextLanguage;.EMPTY:Landroid/view/textclassifier/TextLanguage;.mBundle:Landroid/os/Bundle;.mClassLoader:Ljava/lang/ClassLoader;.packages:Ljava/util/Map;.m:Ljava/util/Map;.table:[Ljava/util/HashMap$Node; 251 -Lcom/android/internal/telephony/CarrierServiceBindHelper$CarrierServicePackageMonitor; 251 -Lcom/android/internal/telephony/TelephonyComponentFactory; 251 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.637:[Ljava/lang/String; 251 -Lcom/android/phone/ecc/nano/ProtobufEccData$CountryInfo; 251 -Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.651:[Ljava/lang/String; 251 -Lcom/android/internal/telephony/SmsUsageMonitor; 251 -Lcom/android/internal/telephony/CommandException$Error;.INVALID_SIM_STATE:Lcom/android/internal/telephony/CommandException$Error; 251 -Landroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback; 252 -Landroid/app/ActivityThread$ApplicationThread; 252 -Landroid/app/ActivityManager$MyUidObserver; 253 -Landroid/media/browse/MediaBrowser$ServiceCallbacks; 253 -Landroid/media/session/MediaController$CallbackStub; 253 -Landroid/media/session/MediaSessionManager$OnMediaKeyEventSessionChangedListener; 253 -Landroid/app/PendingIntent$CancelListener; 253 -Landroid/media/AudioManager$2; 253 -Landroid/database/ContentObserver$Transport; 253 -Landroid/media/session/MediaSessionManager$SessionsChangedWrapper$1; 253 -Landroid/content/ContentProvider$PipeDataWriter; 254 -Landroid/security/net/config/UserCertificateSource$NoPreloadHolder; 255 -Landroid/view/Window$Callback; 256 -Landroid/transition/TransitionManager;.sDefaultTransition:Landroid/transition/Transition;.mTransitions:Ljava/util/ArrayList;.elementData:[Ljava/lang/Object;.1:Landroid/transition/ChangeBounds;.mCurrentAnimators:Ljava/util/ArrayList; 256 -Landroid/transition/TransitionManager;.sDefaultTransition:Landroid/transition/Transition;.mTransitions:Ljava/util/ArrayList;.elementData:[Ljava/lang/Object;.2:Landroid/transition/Fade;.mCurrentAnimators:Ljava/util/ArrayList; 256 -Landroid/transition/TransitionManager;.sPendingTransitions:Ljava/util/ArrayList; 256 -Landroid/transition/TransitionManager;.sDefaultTransition:Landroid/transition/Transition;.mTransitions:Ljava/util/ArrayList;.elementData:[Ljava/lang/Object;.0:Landroid/transition/Fade;.mCurrentAnimators:Ljava/util/ArrayList; 256 -Landroid/view/AttachedSurfaceControl$OnBufferTransformHintChangedListener; 257 -Landroid/webkit/ValueCallback; 258 -Landroid/webkit/WebResourceRequest; 258 -Landroid/webkit/WebChromeClient$CustomViewCallback; 258 -Landroid/hardware/camera2/CameraCharacteristics;.INFO_SUPPORTED_HARDWARE_LEVEL:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 258 -Landroid/accounts/Account; 258 -Landroid/hardware/camera2/CameraCharacteristics;.SCALER_AVAILABLE_MAX_DIGITAL_ZOOM:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 258 -Landroid/hardware/camera2/CameraCharacteristics;.DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/CameraCharacteristics;.DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/CameraCharacteristics;.HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/CameraCharacteristics;.SCALER_AVAILABLE_STALL_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/CameraCharacteristics;.JPEGR_AVAILABLE_JPEG_R_MIN_FRAME_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/params/StreamConfigurationDuration; 259 -Landroid/hardware/camera2/CameraCharacteristics;.SCALER_AVAILABLE_STREAM_CONFIGURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/CameraCharacteristics;.DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_INFO_COLOR_FILTER_ARRANGEMENT:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/CameraCharacteristics;.JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/CameraCharacteristics;.DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/CameraCharacteristics;.SCALER_AVAILABLE_MIN_FRAME_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/CameraCharacteristics;.CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/CameraCharacteristics;.HEIC_AVAILABLE_HEIC_STALL_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/CameraCharacteristics;.JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/CameraCharacteristics;.HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/params/HighSpeedVideoConfiguration; 259 -Landroid/hardware/camera2/CameraCharacteristics;.DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/CameraCharacteristics;.SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/CameraCharacteristics;.DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -I 259 -Landroid/hardware/camera2/CameraCharacteristics;.REQUEST_AVAILABLE_CAPABILITIES:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 259 -Landroid/hardware/camera2/params/StreamConfiguration; 259 -Z 260 -Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_INFO_PIXEL_ARRAY_SIZE:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.LENS_FOCAL_LENGTH:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.LENS_INFO_AVAILABLE_APERTURES:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.DISTORTION_CORRECTION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.EXTENSION_STRENGTH:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -J 260 -Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_INFO_PHYSICAL_SIZE:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.TONEMAP_PRESET_CURVE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -B 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_AF_TRIGGER:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_AE_EXPOSURE_COMPENSATION:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -[D 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_AWB_REGIONS:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.REQUEST_AVAILABLE_SESSION_KEYS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.SENSOR_EXPOSURE_TIME:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_CALIBRATION_TRANSFORM2:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.COLOR_CORRECTION_TRANSFORM:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/content/res/Resources$Theme; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_AE_LOCK:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -F 260 -Landroid/hardware/camera2/CaptureRequest;.LENS_FILTER_DENSITY:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.LENS_OPTICAL_STABILIZATION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.NOISE_REDUCTION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.SENSOR_FRAME_DURATION:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_AE_REGIONS:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_EXTENDED_SCENE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.STATISTICS_OIS_DATA_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.SENSOR_TEST_PATTERN_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.HOT_PIXEL_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_AE_ANTIBANDING_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.STATISTICS_LENS_SHADING_MAP_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.SCALER_CROP_REGION:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.LENS_FOCUS_DISTANCE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.TONEMAP_GAMMA:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_REFERENCE_ILLUMINANT2:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_REFERENCE_ILLUMINANT1:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -[F 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_ZOOM_RATIO:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.COLOR_CORRECTION_ABERRATION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.TONEMAP_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.REQUEST_AVAILABLE_REQUEST_KEYS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.SCALER_ROTATE_AND_CROP:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.COLOR_CORRECTION_GAINS:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_COLOR_TRANSFORM1:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_AF_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.SENSOR_SENSITIVITY:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.LENS_INFO_AVAILABLE_FOCAL_LENGTHS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_OPTICAL_BLACK_REGIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.JPEG_QUALITY:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.FLASH_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_POST_RAW_SENSITIVITY_BOOST:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_AE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_INFO_WHITE_LEVEL:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_SETTINGS_OVERRIDE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -[Landroid/hardware/camera2/params/MeteringRectangle; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_AWB_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.LOGICAL_MULTI_CAMERA_PHYSICAL_IDS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_INFO_EXPOSURE_TIME_RANGE:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Ljava/lang/Float; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_ENABLE_ZSL:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.INFO_DEVICE_STATE_ORIENTATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_CALIBRATION_TRANSFORM1:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.EDGE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_CAPTURE_INTENT:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_ORIENTATION:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.JPEG_ORIENTATION:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_COLOR_TRANSFORM2:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -[J 260 -Landroid/hardware/camera2/CameraCharacteristics;.CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Ljava/util/concurrent/Phaser; 260 -Landroid/hardware/camera2/CaptureRequest;.BLACK_LEVEL_LOCK:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.COLOR_CORRECTION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_SCENE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.JPEG_THUMBNAIL_SIZE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.SHADING_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.STATISTICS_FACE_DETECT_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.STATISTICS_HOT_PIXEL_MAP_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_AUTOFRAMING:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_AE_TARGET_FPS_RANGE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_AWB_LOCK:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.SENSOR_TEST_PATTERN_DATA:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_AE_PRECAPTURE_TRIGGER:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.FLASH_STRENGTH_LEVEL:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_VIDEO_STABILIZATION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.REPROCESS_EFFECTIVE_EXPOSURE_FACTOR:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Ljava/lang/Boolean; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_EFFECT_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.LENS_APERTURE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.JPEG_THUMBNAIL_QUALITY:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Landroid/hardware/camera2/CaptureRequest;.CONTROL_AF_REGIONS:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -Ljava/lang/Long; 260 -Landroid/hardware/camera2/CaptureRequest;.SENSOR_PIXEL_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 260 -[Ljava/lang/String; 261 -[Z 262 -Ljava/lang/Class$Caches;.genericInterfaces:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap; 263 -Ljava/util/Map; 264 -Ljava/nio/Bits; 265 -Ljava/nio/DirectByteBuffer; 266 -Ljava/io/File; 267 -Ljava/nio/ByteBuffer; 268 -Ljava/io/InputStream; 269 -Landroid/os/ParcelFileDescriptor; 270 -Landroid/os/BinderProxy;.sProxyMap:Landroid/os/BinderProxy$ProxyMap; 271 -Landroid/app/PendingIntent; 272 -Landroid/content/Intent; 273 -Landroid/net/Uri$HierarchicalUri; 274 -Landroid/net/Uri$StringUri; 275 -Landroid/net/Uri$PathPart;.EMPTY:Landroid/net/Uri$PathPart; 276 -Lcom/android/internal/telephony/MccTable;.FALLBACKS:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.6:Ljava/util/HashMap$Node;.key:Ljava/lang/Object; 277 -Landroid/icu/text/DecimalFormatSymbols;.cachedLocaleData:Landroid/icu/impl/CacheBase;.map:Ljava/util/concurrent/ConcurrentHashMap; 278 -Llibcore/icu/DecimalFormatData;.CACHE:Ljava/util/concurrent/ConcurrentHashMap; 279 -Landroid/icu/impl/CurrencyData;.provider:Landroid/icu/impl/CurrencyData$CurrencyDisplayInfoProvider; 280 -Lcom/android/internal/infra/AndroidFuture; 281 -Lcom/android/internal/util/LatencyTracker$Action; 282 -Landroid/app/AppOpsManager$Mode; 283 -Landroid/view/accessibility/AccessibilityManager$AccessibilityServicesStateChangeListener; 284 -Landroid/annotation/IdRes; 285 -Landroid/content/pm/PackageItemInfo; 286 -Ljava/util/Random; 287 -Landroid/widget/RadioButton; 288 -Lcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState; 289 -Landroid/graphics/Insets; 290 -Landroid/view/View;.sNextGeneratedId:Ljava/util/concurrent/atomic/AtomicInteger; 291 -Landroid/graphics/drawable/LayerDrawable; 292 -Landroid/animation/LayoutTransition; 293 -Llibcore/reflect/AnnotationFactory;.cache:Ljava/util/Map; 294 -Llibcore/reflect/AnnotationFactory;.cache:Ljava/util/Map;.table:[Ljava/util/WeakHashMap$Entry; 294 -Ljava/lang/reflect/Proxy;.proxyClassCache:Ljava/lang/reflect/WeakCache;.reverseMap:Ljava/util/concurrent/ConcurrentMap; 295 -Ljava/lang/reflect/Proxy$ProxyClassFactory;.nextUniqueNumber:Ljava/util/concurrent/atomic/AtomicLong; 295 -Ljava/lang/reflect/Proxy;.proxyClassCache:Ljava/lang/reflect/WeakCache;.map:Ljava/util/concurrent/ConcurrentMap; 296 -Ljava/lang/Object; 297 -Ljava/lang/invoke/MethodType;.internTable:Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;.map:Ljava/util/concurrent/ConcurrentMap; 298 -Ljava/nio/channels/SocketChannel;.dexCache:Ljava/lang/Object; 298 -Ljava/lang/invoke/MethodType;.objectOnlyTypes:[Ljava/lang/invoke/MethodType; 299 -Ljava/util/concurrent/ForkJoinTask; 300 -Ljava/util/concurrent/CompletableFuture; 301 -Landroid/app/Notification$BigTextStyle; 302 -Landroid/content/pm/ApplicationInfo; 303 -Ljava/security/Signature;.signatureInfo:Ljava/util/Map;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.13:Ljava/util/concurrent/ConcurrentHashMap$Node;.next:Ljava/util/concurrent/ConcurrentHashMap$Node;.next:Ljava/util/concurrent/ConcurrentHashMap$Node; 304 -Lsun/security/x509/X500Name;.stateName_oid:Lsun/security/util/ObjectIdentifier; 305 -Lsun/security/x509/X500Name;.localityName_oid:Lsun/security/util/ObjectIdentifier; 306 -Lsun/security/x509/X500Name;.orgUnitName_oid:Lsun/security/util/ObjectIdentifier; 306 -Ljava/util/UUID; 307 -Landroid/app/slice/Slice; 308 -Ljava/util/Locale;.FRENCH:Ljava/util/Locale; 308 -Landroid/os/NullVibrator; 308 -Ldalvik/system/CloseGuard;.MESSAGE:Ljava/lang/String; 308 -Lsun/util/locale/BaseLocale$Cache;.CACHE:Lsun/util/locale/BaseLocale$Cache;.map:Ljava/util/concurrent/ConcurrentMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.22:Ljava/util/concurrent/ConcurrentHashMap$Node;.val:Ljava/lang/Object;.referent:Ljava/lang/Object; 308 -Ljava/util/Locale$Cache;.LOCALECACHE:Ljava/util/Locale$Cache;.map:Ljava/util/concurrent/ConcurrentMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.24:Ljava/util/concurrent/ConcurrentHashMap$Node;.val:Ljava/lang/Object;.referent:Ljava/lang/Object; 308 -Landroid/app/Activity$$ExternalSyntheticLambda0; 308 -Landroid/icu/impl/locale/BaseLocale;.CACHE:Landroid/icu/impl/locale/BaseLocale$Cache;._map:Ljava/util/concurrent/ConcurrentHashMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.0:Ljava/util/concurrent/ConcurrentHashMap$Node; 308 -Ljava/util/Locale;.ITALIAN:Ljava/util/Locale; 308 -Landroid/media/MediaRouter2Manager$Callback; 308 -Lsun/util/locale/BaseLocale$Cache;.CACHE:Lsun/util/locale/BaseLocale$Cache;.map:Ljava/util/concurrent/ConcurrentMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.29:Ljava/util/concurrent/ConcurrentHashMap$Node;.val:Ljava/lang/Object;.referent:Ljava/lang/Object; 308 -Ljava/util/Locale;.GERMAN:Ljava/util/Locale; 309 -Landroid/icu/impl/StandardPlural; 310 -Landroid/icu/impl/number/range/StandardPluralRanges; 311 -Landroid/icu/impl/PluralRulesLoader;.loader:Landroid/icu/impl/PluralRulesLoader; 311 -Landroid/icu/impl/PluralRulesLoader;.loader:Landroid/icu/impl/PluralRulesLoader;.pluralRulesCache:Ljava/util/Map; 311 -Landroid/icu/text/PluralRules$Operand; 311 -Landroid/icu/util/Calendar;.PATTERN_CACHE:Landroid/icu/impl/ICUCache; 312 -Landroid/icu/impl/DateNumberFormat;.CACHE:Landroid/icu/impl/SimpleCache; 313 -Landroid/text/format/DateFormat; 314 -Landroid/view/View$OnDragListener; 315 -Landroid/hardware/input/InputManager$InputDeviceListener; 316 -Landroid/hardware/input/InputManagerGlobal; 317 -Landroid/hardware/SystemSensorManager; 318 -Lcom/android/internal/os/BackgroundThread; 319 -Ljava/lang/Throwable; 320 -Landroid/app/NotificationManager; 321 -Landroid/app/NotificationChannel; 322 -Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener; 323 -Landroid/content/pm/VersionedPackage; 324 -Landroid/app/AppOpsManager; 325 -Ldalvik/system/ZipPathValidator; 326 -Landroid/content/pm/PackageManager;.sPackageInfoCache:Landroid/app/PropertyInvalidatedCache;.mSkips:[J 327 -Landroid/content/pm/PackageManager;.sApplicationInfoCache:Landroid/app/PropertyInvalidatedCache;.mSkips:[J 328 -Lsun/util/locale/BaseLocale$Cache;.CACHE:Lsun/util/locale/BaseLocale$Cache;.map:Ljava/util/concurrent/ConcurrentMap; 329 -Landroid/content/Context; 330 -Ljava/util/concurrent/Executor; 331 -Ljava/util/concurrent/ScheduledExecutorService; 332 -Ljava/util/concurrent/ExecutorService; 332 -Landroid/view/Window$OnFrameMetricsAvailableListener; 333 -Ljava/lang/annotation/Annotation; 334 -Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap;.tail:Ljava/util/LinkedHashMap$LinkedHashMapEntry;.before:Ljava/util/LinkedHashMap$LinkedHashMapEntry;.before:Ljava/util/LinkedHashMap$LinkedHashMapEntry;.before:Ljava/util/LinkedHashMap$LinkedHashMapEntry;.before:Ljava/util/LinkedHashMap$LinkedHashMapEntry; 335 -Ljava/util/concurrent/CancellationException; 336 -Ljava/lang/NoSuchMethodException; 337 -Landroid/os/strictmode/CustomViolation; 338 -Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.3:Ljava/util/WeakHashMap$Entry; 339 -Lcom/android/internal/policy/PhoneWindow; 340 -Landroid/view/autofill/AutofillValue; 340 -Landroid/widget/TextView$SavedState; 341 -Landroid/text/method/MetaKeyKeyListener;.SYM:Ljava/lang/Object; 342 -Landroid/text/method/MetaKeyKeyListener;.ALT:Ljava/lang/Object; 342 -Landroid/text/method/MetaKeyKeyListener;.SELECTING:Ljava/lang/Object; 342 -Landroid/text/method/MetaKeyKeyListener;.CAP:Ljava/lang/Object; 342 -Landroid/widget/PopupWindow$PopupBackgroundView; 343 -Landroid/widget/TextView;.TEMP_RECTF:Landroid/graphics/RectF; 343 -Landroid/text/method/ScrollingMovementMethod; 343 -Landroid/icu/impl/locale/UnicodeLocaleExtension;.EMPTY_SORTED_SET:Ljava/util/SortedSet;.m:Ljava/util/NavigableMap; 343 -Landroid/widget/PopupWindow$PopupDecorView; 343 -Landroid/widget/Editor$TextRenderNode; 343 -Landroid/widget/Editor$PositionListener; 344 -Landroid/text/style/SpellCheckSpan; 345 -Landroid/text/method/ArrowKeyMovementMethod; 346 -Landroid/text/method/TextKeyListener;.sInstance:[Landroid/text/method/TextKeyListener; 346 -Landroid/text/TextUtils$TruncateAt;.MARQUEE:Landroid/text/TextUtils$TruncateAt; 347 -Landroid/view/autofill/Helper; 348 -Lcom/android/internal/util/LatencyTracker; 349 -Lcom/android/internal/util/LatencyTracker$SLatencyTrackerHolder; 349 -Landroid/graphics/drawable/Icon; 350 -Landroid/text/style/AlignmentSpan; 351 -Landroid/text/MeasuredParagraph;.sPool:Landroid/util/Pools$SynchronizedPool;.mPool:[Ljava/lang/Object; 352 -Landroid/text/MeasuredParagraph;.sPool:Landroid/util/Pools$SynchronizedPool; 352 -Landroid/icu/impl/ICUResourceBundleReader;.CACHE:Landroid/icu/impl/ICUResourceBundleReader$ReaderCache;.map:Ljava/util/concurrent/ConcurrentHashMap; 353 -Landroid/location/ILocationManager$Stub;.dexCache:Ljava/lang/Object; 354 -Landroid/annotation/CurrentTimeMillisLong; 355 -Ljava/lang/reflect/Method; 356 -Lcom/android/internal/os/ZygoteInit; 356 -Landroid/database/DatabaseUtils; 356 -Landroid/os/HandlerThread; 356 -Ljava/security/Signature;.signatureInfo:Ljava/util/Map;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node; 357 -Ljava/security/Signature;.signatureInfo:Ljava/util/Map; 358 -Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.queue:Ljava/lang/ref/ReferenceQueue; 359 -Landroid/telephony/TelephonyRegistryManager; 360 -Landroid/graphics/HardwareRenderer; 361 -Landroid/os/BinderProxy; 362 -Landroid/app/compat/CompatChanges;.QUERY_CACHE:Landroid/app/compat/ChangeIdStateCache;.mCache:Ljava/util/LinkedHashMap; 363 -Landroid/app/compat/CompatChanges;.QUERY_CACHE:Landroid/app/compat/ChangeIdStateCache; 363 -Landroid/app/AlarmManager; 364 -Landroid/net/metrics/DhcpClientEvent; 365 -[I 366 -Landroid/media/MediaCodecList; 367 -Landroid/graphics/drawable/InsetDrawable; 368 -Landroid/widget/ProgressBar$SavedState; 369 -Landroid/widget/ScrollView$SavedState; 370 -Landroid/graphics/drawable/AnimatedVectorDrawable; 371 -Landroid/widget/ListView; 372 -Landroid/widget/AbsListView; 373 -Landroid/widget/AbsListView$SavedState; 373 -Landroid/widget/CompoundButton$SavedState; 374 -Landroid/widget/HorizontalScrollView$SavedState; 375 -Landroid/widget/HorizontalScrollView; 376 -Landroid/icu/text/MeasureFormat;.hmsTo012:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.1:Ljava/util/HashMap$Node;.value:Ljava/lang/Object; 377 -Landroid/icu/text/MeasureFormat;.hmsTo012:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.6:Ljava/util/HashMap$Node;.value:Ljava/lang/Object; 377 -Landroid/view/View$OnSystemUiVisibilityChangeListener; 378 -Ljava/util/AbstractMap; 379 -Landroid/telephony/euicc/EuiccCardManager$ResultCallback; 380 -Ljava/lang/Character$UnicodeBlock;.CJK_SYMBOLS_AND_PUNCTUATION:Ljava/lang/Character$UnicodeBlock; 381 -Ljava/lang/Character$UnicodeBlock;.KANBUN:Ljava/lang/Character$UnicodeBlock; 381 -Ljava/lang/Character$UnicodeBlock;.HANGUL_COMPATIBILITY_JAMO:Ljava/lang/Character$UnicodeBlock; 381 -Ljava/lang/Character$UnicodeBlock;.KATAKANA:Ljava/lang/Character$UnicodeBlock; 381 -Ljava/lang/Character$UnicodeBlock;.HANGUL_SYLLABLES:Ljava/lang/Character$UnicodeBlock; 381 -Ljava/lang/Character$UnicodeBlock;.ENCLOSED_CJK_LETTERS_AND_MONTHS:Ljava/lang/Character$UnicodeBlock; 381 -Ljava/lang/Character$UnicodeBlock;.HANGUL_JAMO:Ljava/lang/Character$UnicodeBlock; 381 -Ljava/lang/Character$UnicodeBlock;.BOPOMOFO_EXTENDED:Ljava/lang/Character$UnicodeBlock; 381 -Ljava/lang/Character$UnicodeBlock;.CJK_COMPATIBILITY_FORMS:Ljava/lang/Character$UnicodeBlock; 381 -Ljava/lang/Character$UnicodeBlock;.BOPOMOFO:Ljava/lang/Character$UnicodeBlock; 381 -Ljava/lang/Character$UnicodeBlock;.HIRAGANA:Ljava/lang/Character$UnicodeBlock; 381 -Ljava/lang/Character$UnicodeBlock;.HALFWIDTH_AND_FULLWIDTH_FORMS:Ljava/lang/Character$UnicodeBlock; 381 -Ljava/lang/Character$UnicodeBlock;.KANGXI_RADICALS:Ljava/lang/Character$UnicodeBlock; 381 -Ljava/lang/Character$UnicodeBlock;.CJK_RADICALS_SUPPLEMENT:Ljava/lang/Character$UnicodeBlock; 381 -Ljava/lang/Character$UnicodeBlock;.KATAKANA_PHONETIC_EXTENSIONS:Ljava/lang/Character$UnicodeBlock; 381 -Ljava/lang/Character$UnicodeBlock;.CJK_COMPATIBILITY:Ljava/lang/Character$UnicodeBlock; 381 -Ljava/lang/Character$UnicodeBlock;.CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT:Ljava/lang/Character$UnicodeBlock; 382 -Ljava/lang/Character$UnicodeBlock;.CJK_COMPATIBILITY_IDEOGRAPHS:Ljava/lang/Character$UnicodeBlock; 382 -Ljava/lang/Character$UnicodeBlock;.CJK_UNIFIED_IDEOGRAPHS:Ljava/lang/Character$UnicodeBlock; 382 -Ljava/lang/Character$UnicodeBlock;.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A:Ljava/lang/Character$UnicodeBlock; 382 -Ljava/lang/Character$UnicodeBlock;.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B:Ljava/lang/Character$UnicodeBlock; 382 -Lcom/android/internal/inputmethod/InputMethodPrivilegedOperationsRegistry; 383 -Landroid/view/Window$DecorCallback; 383 -Landroid/view/inputmethod/EditorInfo; 383 -Landroid/view/MenuItem$OnActionExpandListener; 384 -Ljava/util/Locale;.JAPANESE:Ljava/util/Locale; 385 -Ljava/util/Locale;.KOREAN:Ljava/util/Locale; 385 -Lcom/android/internal/config/appcloning/AppCloningDeviceConfigHelper; 386 -Landroid/telecom/PhoneAccountHandle; 387 -Landroid/content/AsyncQueryHandler; 388 -Landroid/speech/RecognitionListener; 389 -Ljava/lang/InstantiationException; 390 -Ljava/util/concurrent/ExecutionException; 391 -Landroid/icu/text/DateIntervalInfo;.DIICACHE:Landroid/icu/impl/ICUCache; 392 -Landroid/text/format/DateIntervalFormat;.CACHED_FORMATTERS:Landroid/util/LruCache;.map:Ljava/util/LinkedHashMap; 392 -Landroid/icu/text/DateIntervalFormat;.LOCAL_PATTERN_CACHE:Landroid/icu/impl/ICUCache; 392 -Landroid/icu/impl/OlsonTimeZone; 392 -Landroid/text/format/DateIntervalFormat;.CACHED_FORMATTERS:Landroid/util/LruCache; 392 -Landroid/graphics/drawable/Drawable; 393 -Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap;.tail:Ljava/util/LinkedHashMap$LinkedHashMapEntry; 394 -Landroid/app/Activity; 395 -Landroid/icu/text/PluralRules$KeywordStatus;.INVALID:Landroid/icu/text/PluralRules$KeywordStatus;.name:Ljava/lang/String; 396 -Landroid/net/Uri; 396 -Lsun/util/calendar/CalendarSystem;.calendars:Ljava/util/concurrent/ConcurrentMap; 396 -Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;.sJNISetterPropertyMap:Ljava/util/HashMap; 397 -Landroid/graphics/drawable/ShapeDrawable; 398 -Lcom/android/internal/widget/ActionBarContextView; 399 -Landroid/widget/Toolbar$SavedState; 399 -Lcom/android/internal/widget/ActionBarContainer; 399 -Lcom/android/internal/widget/ActionBarOverlayLayout; 399 -Lcom/android/internal/widget/ActionBarContainer$ActionBarBackgroundDrawable; 399 -Landroid/widget/ActionMenuPresenter$OverflowMenuButton; 400 -Landroid/widget/ActionMenuView; 401 -Landroid/content/res/Configuration; 402 -Ljava/util/IdentityHashMap;.NULL_KEY:Ljava/lang/Object; 403 -Ljava/util/concurrent/ForkJoinPool; 404 -Landroid/os/ResultReceiver; 405 -Ljava/util/concurrent/TimeoutException; 406 -Ljava/io/IOException; 407 -Landroid/accounts/AccountAuthenticatorResponse; 408 -Landroid/nfc/NfcAdapter; 409 -Landroid/nfc/NfcAdapter;.sNfcAdapters:Ljava/util/HashMap; 409 -Landroid/app/backup/BackupManager; 410 -Landroid/app/NotificationChannelGroup; 411 -Landroid/content/pm/ParceledListSlice; 411 -Landroid/os/FileObserver; 412 -Landroid/os/UserHandle; 413 -Landroid/content/pm/PackageManager$NameNotFoundException; 414 -[Ljava/lang/Integer; 415 -Landroid/animation/PropertyValuesHolder;.sSetterPropertyMap:Ljava/util/HashMap; 415 -Landroid/content/LocusId; 416 -Landroid/view/contentcapture/ContentCaptureContext; 416 -Landroid/telephony/ims/RegistrationManager;.IMS_REG_TO_ACCESS_TYPE_MAP:Ljava/util/Map;.table:[Ljava/lang/Object;.18:Ljava/lang/Integer; 417 -Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;.pool:Ljava/util/concurrent/ConcurrentMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.4:Ljava/util/concurrent/ConcurrentHashMap$Node; 418 -Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;.pool:Ljava/util/concurrent/ConcurrentMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node; 418 -Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;.pool:Ljava/util/concurrent/ConcurrentMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.2:Ljava/util/concurrent/ConcurrentHashMap$Node;.next:Ljava/util/concurrent/ConcurrentHashMap$Node; 418 -Lcom/android/internal/telephony/cdnr/CarrierDisplayNameResolver;.EF_SOURCE_PRIORITY:Ljava/util/List;.a:[Ljava/lang/Object;.9:Ljava/lang/Integer; 418 -Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;.pool:Ljava/util/concurrent/ConcurrentMap;.table:[Ljava/util/concurrent/ConcurrentHashMap$Node;.56:Ljava/util/concurrent/ConcurrentHashMap$Node; 418 -Lcom/android/internal/telephony/cdnr/CarrierDisplayNameResolver;.EF_SOURCE_PRIORITY:Ljava/util/List;.a:[Ljava/lang/Object;.5:Ljava/lang/Integer; 418 -Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;.pool:Ljava/util/concurrent/ConcurrentMap; 418 -Landroid/widget/EditText; 419 -Landroid/widget/CheckedTextView; 420 -Landroid/os/strictmode/UnsafeIntentLaunchViolation; 421 -Landroid/app/Service; 422 -Ldalvik/system/BlockGuard; 423 -Landroid/hardware/devicestate/DeviceStateManagerGlobal; 424 -Landroid/hardware/camera2/CameraCharacteristics;.SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 425 -Landroid/hardware/camera2/marshal/MarshalRegistry;.sMarshalerMap:Ljava/util/HashMap; 425 -Landroid/hardware/camera2/CameraCharacteristics;.LENS_FACING:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 425 -Landroid/content/ClipboardManager$OnPrimaryClipChangedListener; 426 -Landroid/icu/text/BreakIterator;.iterCache:[Landroid/icu/impl/CacheValue; 427 -Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.13:Ljava/util/WeakHashMap$Entry; 428 -Landroid/icu/text/Collator; 429 -Landroid/icu/impl/number/parse/NanMatcher;.DEFAULT:Landroid/icu/impl/number/parse/NanMatcher;.uniSet:Landroid/icu/text/UnicodeSet;.strings:Ljava/util/SortedSet;.c:Ljava/util/Collection;.m:Ljava/util/NavigableMap; 430 -Ljava/io/FileNotFoundException; 431 -Landroid/os/BaseBundle; 432 -Landroid/service/watchdog/ExplicitHealthCheckService$PackageConfig; 433 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.116:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.12:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.90:Ljava/lang/String; 434 -Landroid/icu/text/MessageFormat;.rootLocale:Ljava/util/Locale;.baseLocale:Lsun/util/locale/BaseLocale;.language:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.385:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.107:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.112:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.480:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.550:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.143:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._obsoleteLanguages:[Ljava/lang/String;.1:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.473:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.138:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.204:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.71:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._replacementCountries:[Ljava/lang/String;.12:Ljava/lang/String; 434 -Landroid/icu/impl/duration/impl/DataRecord$ETimeLimit;.names:[Ljava/lang/String;.1:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._replacementCountries:[Ljava/lang/String;.9:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.99:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages3:[Ljava/lang/String;.152:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.256:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.170:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.220:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.461:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._replacementLanguages:[Ljava/lang/String;.5:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.190:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.157:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._obsoleteCountries:[Ljava/lang/String;.4:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.196:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.117:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.5:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.499:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.199:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.18:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.324:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.101:Ljava/lang/String; 434 -Landroid/icu/impl/locale/UnicodeLocaleExtension;.CA_JAPANESE:Landroid/icu/impl/locale/UnicodeLocaleExtension;._keywords:Ljava/util/SortedMap;.root:Ljava/util/TreeMap$TreeMapEntry;.key:Ljava/lang/Object; 434 -Landroid/icu/impl/LocaleIDs;._replacementCountries:[Ljava/lang/String;.3:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.140:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.105:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.37:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._replacementCountries:[Ljava/lang/String;.5:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.22:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.103:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.412:Ljava/lang/String; 434 -Landroid/icu/impl/duration/impl/DataRecord$EMilliSupport;.names:[Ljava/lang/String;.1:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.124:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.232:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.219:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.179:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.523:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.75:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.486:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.166:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.112:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.119:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.160:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.298:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.257:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.182:Ljava/lang/String; 434 -Landroid/icu/impl/units/UnitPreferences;.measurementSystem:Ljava/util/Map;.m:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.5:Ljava/util/HashMap$Node;.next:Ljava/util/HashMap$Node;.value:Ljava/lang/Object; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.47:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.180:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.111:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.358:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.96:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._obsoleteLanguages:[Ljava/lang/String;.0:Ljava/lang/String; 434 -Landroid/icu/text/DateFormat;.HOUR_GENERIC_TZ:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.67:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.254:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.222:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.55:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.349:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.16:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.352:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.443:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.478:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.19:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.401:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.137:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.65:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.474:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.168:Ljava/lang/String; 434 -Landroid/icu/impl/units/UnitPreferences;.measurementSystem:Ljava/util/Map;.m:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.15:Ljava/util/HashMap$Node;.value:Ljava/lang/Object; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.111:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages3:[Ljava/lang/String;.545:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.30:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.469:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.21:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.69:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.56:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.519:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._replacementLanguages:[Ljava/lang/String;.4:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.107:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.290:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.59:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.220:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.186:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.516:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.181:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.199:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.396:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.117:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.227:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.331:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.447:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.151:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.144:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.132:Ljava/lang/String; 434 -Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.230:Ljava/lang/String; 434 -Landroid/icu/text/DateFormat;.MINUTE_SECOND:Ljava/lang/String; 434 -Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap;.tail:Ljava/util/LinkedHashMap$LinkedHashMapEntry;.before:Ljava/util/LinkedHashMap$LinkedHashMapEntry; 435 -Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap;.head:Ljava/util/LinkedHashMap$LinkedHashMapEntry; 436 -Ljava/lang/Enum;.sharedConstantsCache:Llibcore/util/BasicLruCache;.map:Ljava/util/LinkedHashMap;.tail:Ljava/util/LinkedHashMap$LinkedHashMapEntry;.before:Ljava/util/LinkedHashMap$LinkedHashMapEntry;.before:Ljava/util/LinkedHashMap$LinkedHashMapEntry; 437 -Landroid/graphics/drawable/ColorStateListDrawable; 438 -Ljava/lang/SecurityException; 439 -Ljava/lang/RuntimeException; 440 -Landroid/media/audiopolicy/AudioProductStrategy; 441 -Landroid/os/PersistableBundle; 442 -Landroid/content/pm/ShortcutInfo; 442 -Landroid/icu/text/TimeZoneFormat;._tzfCache:Landroid/icu/text/TimeZoneFormat$TimeZoneFormatCache;.map:Ljava/util/concurrent/ConcurrentHashMap; 443 -Landroid/graphics/LeakyTypefaceStorage;.sStorage:Ljava/util/ArrayList; 443 -Landroid/graphics/LeakyTypefaceStorage;.sTypefaceMap:Landroid/util/ArrayMap; 443 -Landroid/text/TextWatcher; 444 -Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener; 445 -Ljavax/net/SocketFactory; 446 -Ljava/util/Collections; 447 -Ljava/lang/Exception; 448 -Landroid/os/UserManager; 449 -Landroid/os/RemoteException; 450 -Landroid/content/AttributionSource; 451 -Lcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory$DnsAdapter; 452 -Lcom/android/okhttp/Protocol;.HTTP_2:Lcom/android/okhttp/Protocol; 452 -Ljava/net/Inet4Address; 452 -Lcom/android/okhttp/Protocol;.SPDY_3:Lcom/android/okhttp/Protocol; 452 -Lcom/android/okhttp/OkHttpClient; 452 -Landroid/os/storage/VolumeInfo; 453 -Landroid/os/storage/DiskInfo; 453 -Landroid/view/textclassifier/TextLanguage;.EMPTY:Landroid/view/textclassifier/TextLanguage;.mBundle:Landroid/os/Bundle;.mMap:Landroid/util/ArrayMap; 454 -Ljava/nio/file/StandardOpenOption;.WRITE:Ljava/nio/file/StandardOpenOption; 455 -Ljava/nio/file/StandardOpenOption;.APPEND:Ljava/nio/file/StandardOpenOption; 456 -Ljava/util/logging/FileHandler; 457 -Ljava/nio/file/StandardOpenOption;.CREATE_NEW:Ljava/nio/file/StandardOpenOption; 457 -Ljava/util/logging/FileHandler;.locks:Ljava/util/Set;.map:Ljava/util/HashMap; 457 -Lsun/nio/ch/SharedFileLockTable;.queue:Ljava/lang/ref/ReferenceQueue; 458 -Ljavax/net/ServerSocketFactory; 458 -Landroid/os/AsyncTask; 459 -Landroid/os/strictmode/UnbufferedIoViolation; 460 -Landroid/app/usage/AppStandbyInfo; 461 -Landroid/text/format/DateUtils; 462 -Landroid/security/IKeyChainService; 463 -Landroid/util/Log$TerribleFailure; 464 -Lcom/android/internal/os/RuntimeInit$KillApplicationHandler; 464 -Ljava/util/Timer;.nextSerialNumber:Ljava/util/concurrent/atomic/AtomicInteger; 465 -Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub; 466 -Landroid/telephony/ims/stub/ImsRegistrationImplBase$1; 466 -Landroid/telephony/ims/ImsUtListener; 466 -Landroid/telephony/ims/feature/MmTelFeature$1; 466 -Lcom/android/ims/ImsManager;.IMS_MANAGER_INSTANCES:Landroid/util/SparseArray;.mValues:[Ljava/lang/Object; 467 -Lcom/android/ims/ImsManager;.IMS_MANAGER_INSTANCES:Landroid/util/SparseArray; 467 -Lcom/android/ims/ImsManager;.IMS_MANAGER_INSTANCES:Landroid/util/SparseArray;.mKeys:[I 467 -Landroid/telephony/ims/aidl/IImsConfig$Stub$Proxy; 468 -Landroid/telephony/ims/aidl/IImsRegistration$Stub$Proxy; 468 -Landroid/telephony/NetworkService; 469 -Landroid/telephony/TelephonyCallback$ServiceStateListener; 470 -Landroid/telephony/TelephonyCallback$PhysicalChannelConfigListener; 471 -Landroid/telephony/TelephonyCallback$RadioPowerStateListener; 471 -Lsun/security/x509/X500Name;.internedOIDs:Ljava/util/Map; 472 -Lsun/security/x509/X500Name;.internedOIDs:Ljava/util/Map;.table:[Ljava/util/HashMap$Node; 472 -Landroid/media/MediaCodec; 473 -Ljava/nio/file/StandardOpenOption;.CREATE:Ljava/nio/file/StandardOpenOption; 474 -Ljava/nio/file/NoSuchFileException; 475 -Ljava/text/DateFormatSymbols;.cachedInstances:Ljava/util/concurrent/ConcurrentMap; 476 -Ljava/util/Currency;.instances:Ljava/util/concurrent/ConcurrentMap; 476 -Ljava/util/Calendar;.cachedLocaleData:Ljava/util/concurrent/ConcurrentMap; 476 -Ljava/text/SimpleDateFormat;.cachedNumberFormatData:Ljava/util/concurrent/ConcurrentMap; 476 -Landroid/app/UriGrantsManager;.IUriGrantsManagerSingleton:Landroid/util/Singleton; 477 -Landroid/content/ContentProviderProxy; 478 -Landroid/os/DeadObjectException; 479 -Landroid/app/slice/SliceSpec; 479 -Landroid/database/sqlite/SQLiteDatabase; 480 -Ljava/util/Locale;.CHINA:Ljava/util/Locale; 481 -Ljava/util/Locale;.TAIWAN:Ljava/util/Locale; 481 -Ljava/util/Locale;.KOREA:Ljava/util/Locale; 481 -Ljava/util/Scanner; 482 -Ljava/math/BigDecimal; 483 -Ljava/security/interfaces/RSAPrivateCrtKey; 483 -Ljava/security/interfaces/RSAPrivateKey; 483 -Lcom/android/server/backup/AccountSyncSettingsBackupHelper;.KEY_ACCOUNT_TYPE:Ljava/lang/String; 483 -Landroid/util/UtilConfig; 484 -Ljava/net/ResponseCache; 485 -Landroid/content/ReceiverCallNotAllowedException; 486 -Landroid/app/ReceiverRestrictedContext; 487 -Landroid/os/strictmode/CredentialProtectedWhileLockedViolation; 488 -Landroid/app/Application; 489 -Ljava/util/NoSuchElementException; 490 -Landroid/os/Messenger; 491 -Landroid/telephony/TelephonyCallback$DataEnabledListener; 491 -Landroid/system/StructLinger; 492 +Landroid/text/DynamicLayout$ChangeWatcher; 241 +Landroid/text/DynamicLayout$Builder;.sPool:Landroid/util/Pools$SynchronizedPool; 242 +Landroid/text/DynamicLayout; 242 +Landroid/text/DynamicLayout$Builder;.sPool:Landroid/util/Pools$SynchronizedPool;.mPool:[Ljava/lang/Object; 242 +Landroid/text/style/WrapTogetherSpan; 243 +Landroid/widget/TextView$ChangeWatcher; 244 +Landroid/text/Selection$MemoryTextWatcher; 245 +Landroid/text/SpannableStringBuilder;.sCachedIntBuffer:[[I 246 +Landroid/text/style/SuggestionSpan; 247 +Landroid/text/style/ReplacementSpan; 248 +Landroid/text/TextUtils$TruncateAt;.MARQUEE:Landroid/text/TextUtils$TruncateAt; 249 +Landroid/text/style/SpellCheckSpan; 250 +Landroid/text/method/ArrowKeyMovementMethod; 251 +Landroid/text/method/TextKeyListener;.sInstance:[Landroid/text/method/TextKeyListener; 251 +Landroid/view/textclassifier/TextClassificationConstants; 252 +Landroid/text/Selection;.SELECTION_START:Ljava/lang/Object; 253 +Landroid/text/Selection;.SELECTION_END:Ljava/lang/Object; 253 +Landroid/text/Selection;.SELECTION_MEMORY:Ljava/lang/Object; 253 +Landroid/widget/EditText; 254 +Landroid/view/autofill/AutofillValue; 255 +Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;.sPool:Landroid/util/Pools$SimplePool; 256 +Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;.sPool:Landroid/util/Pools$SimplePool;.mPool:[Ljava/lang/Object; 256 +Landroid/view/ViewGroup; 257 +Landroid/widget/TextView; 258 +Landroid/animation/AnimatorInflater;.sTmpTypedValue:Landroid/util/TypedValue; 259 +Landroid/graphics/drawable/GradientDrawable; 260 +Landroid/text/method/SingleLineTransformationMethod; 261 +Landroid/text/StaticLayout$Builder;.sPool:Landroid/util/Pools$SynchronizedPool;.mPool:[Ljava/lang/Object; 262 +Landroid/text/StaticLayout$Builder;.sPool:Landroid/util/Pools$SynchronizedPool; 262 +Landroid/os/HandlerThread; 263 +Lcom/android/internal/os/ZygoteInit; 263 +Landroid/database/DatabaseUtils; 263 +Landroid/annotation/CurrentTimeMillisLong; 264 +Landroid/app/NotificationChannel; 265 +Landroid/os/AsyncTask; 267 +Landroid/graphics/Bitmap;.sAllBitmaps:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry; 285 +Lcom/android/internal/telephony/MccTable;.FALLBACKS:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.6:Ljava/util/HashMap$Node;.key:Ljava/lang/Object; 288 +Landroid/view/Window$OnFrameMetricsAvailableListener; 289 +Landroid/graphics/drawable/BitmapDrawable; 290 +Landroid/graphics/drawable/RippleDrawable; 291 +Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;.sJNISetterPropertyMap:Ljava/util/HashMap; 292 +Landroid/animation/PropertyValuesHolder;.sGetterPropertyMap:Ljava/util/HashMap; 293 +Landroid/graphics/drawable/LayerDrawable; 294 +Landroid/media/audiopolicy/AudioProductStrategy;.sLock:Ljava/lang/Object; 304 +Landroid/graphics/drawable/RotateDrawable; 304 +Landroid/opengl/EGLConfig; 307 +Landroid/icu/impl/ValidIdentifiers$Datasubtype;.unknown:Landroid/icu/impl/ValidIdentifiers$Datasubtype;.name:Ljava/lang/String; 308 +Lcom/android/ims/rcs/uce/UceDeviceState;.DEVICE_STATE_DESCRIPTION:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.4:Ljava/util/HashMap$Node;.key:Ljava/lang/Object; 308 +Lcom/android/ims/rcs/uce/UceDeviceState;.DEVICE_STATE_DESCRIPTION:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.3:Ljava/util/HashMap$Node;.key:Ljava/lang/Object; 309 +Landroid/icu/text/MeasureFormat;.hmsTo012:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.0:Ljava/util/HashMap$Node;.value:Ljava/lang/Object; 310 +Landroid/telephony/ims/ImsService;.CAPABILITIES_LOG_MAP:Ljava/util/Map;.table:[Ljava/lang/Object;.2:Ljava/lang/Long; 311 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.569:Ljava/lang/Long; 311 +Landroid/icu/text/MeasureFormat;.hmsTo012:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.6:Ljava/util/HashMap$Node;.value:Ljava/lang/Object; 312 +Landroid/icu/text/MeasureFormat;.hmsTo012:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.1:Ljava/util/HashMap$Node;.value:Ljava/lang/Object; 313 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.11:Ljava/lang/Boolean; 314 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.1:Ljava/lang/Boolean; 315 +Landroid/os/SystemProperties; 325 +Landroid/app/job/JobParameters; 328 +Landroid/view/Window$DecorCallback; 329 +Landroid/view/MenuItem$OnActionExpandListener; 329 +Landroid/view/inputmethod/EditorInfo; 329 +Lcom/android/internal/inputmethod/InputMethodPrivilegedOperationsRegistry; 329 +Landroid/app/ActivityManager$OnUidImportanceListener; 331 +Landroid/os/strictmode/DiskReadViolation; 332 +Landroid/os/strictmode/CustomViolation; 333 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.4:Ljava/util/WeakHashMap$Entry;.referent:Ljava/lang/Object;.mLock:Ljava/lang/Object; 334 +Landroid/location/Location; 337 +Landroid/database/sqlite/SQLiteConstraintException; 337 +Lcom/android/internal/listeners/ListenerTransport; 338 +Landroid/content/IntentFilter; 339 +Landroid/hardware/location/ContextHubTransaction$OnCompleteListener; 340 +Landroid/app/PendingIntent$OnFinished; 340 +Landroid/os/WorkSource; 340 +Landroid/content/pm/PackageManager$OnPermissionsChangedListener; 341 +Landroid/annotation/IdRes; 342 +Landroid/app/AppOpsManager$Mode; 343 +Landroid/view/accessibility/AccessibilityManager$AccessibilityServicesStateChangeListener; 344 +Landroid/telephony/DataSpecificRegistrationInfo; 345 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle; 346 +Landroid/telephony/TelephonyRegistryManager;.sCarrierPrivilegeCallbacks:Ljava/util/WeakHashMap; 347 +Landroid/telephony/NetworkRegistrationInfo; 347 +Lcom/android/internal/telephony/TelephonyPermissions;.sReportedDeviceIDPackages:Ljava/util/Map; 347 +Landroid/telephony/AnomalyReporter; 347 +Landroid/content/ContentProvider$Transport; 347 +Landroid/database/CursorToBulkCursorAdaptor; 347 +Landroid/telephony/TelephonyRegistryManager;.sCarrierPrivilegeCallbacks:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry; 347 +Landroid/telephony/VoiceSpecificRegistrationInfo; 347 +Landroid/net/MatchAllNetworkSpecifier; 347 +Landroid/app/PropertyInvalidatedCache$NoPreloadHolder; 348 +Landroid/app/PropertyInvalidatedCache;.sInvalidates:Ljava/util/HashMap; 348 +Landroid/app/PropertyInvalidatedCache;.sDisabledKeys:Ljava/util/HashSet;.map:Ljava/util/HashMap; 349 +Landroid/media/session/MediaSessionManager$SessionsChangedWrapper$1; 350 +Landroid/media/session/MediaSessionManager$OnMediaKeyEventSessionChangedListener; 350 +Landroid/media/AudioManager$2; 350 +Landroid/app/PendingIntent$CancelListener; 350 +Landroid/app/ActivityManager$MyUidObserver; 350 +Landroid/app/compat/CompatChanges;.QUERY_CACHE:Landroid/app/compat/ChangeIdStateCache;.mCache:Ljava/util/LinkedHashMap; 351 +Landroid/app/compat/CompatChanges;.QUERY_CACHE:Landroid/app/compat/ChangeIdStateCache; 351 +Landroid/app/AlarmManager; 352 +Landroid/os/UserManager; 353 +Landroid/text/MeasuredParagraph;.sPool:Landroid/util/Pools$SynchronizedPool; 355 +Landroid/text/MeasuredParagraph;.sPool:Landroid/util/Pools$SynchronizedPool;.mPool:[Ljava/lang/Object; 355 +Landroid/database/sqlite/SQLiteTransactionListener; 357 +Landroid/text/format/DateFormat; 358 +Landroid/icu/util/Calendar;.PATTERN_CACHE:Landroid/icu/impl/ICUCache; 359 +Landroid/icu/impl/DateNumberFormat;.CACHE:Landroid/icu/impl/SimpleCache; 360 +Landroid/app/smartspace/SmartspaceSession$OnTargetsAvailableListener; 361 +Lcom/android/internal/util/PerfettoTrigger;.sLastInvocationPerTrigger:Landroid/util/SparseLongArray; 361 +Lcom/android/internal/util/PerfettoTrigger;.sLastInvocationPerTrigger:Landroid/util/SparseLongArray;.mValues:[J 361 +Landroid/window/WindowOrganizer;.IWindowOrganizerControllerSingleton:Landroid/util/Singleton; 361 +Landroid/window/WindowContainerTransaction$Change; 361 +Lcom/android/internal/util/PerfettoTrigger;.sLastInvocationPerTrigger:Landroid/util/SparseLongArray;.mKeys:[I 361 +Landroid/view/ViewTreeObserver$OnWindowVisibilityChangeListener; 361 +Landroid/view/CrossWindowBlurListeners; 362 +Landroid/widget/Toast; 363 +Landroid/view/ViewStub$OnInflateListener; 364 +Landroid/text/Spanned; 365 +Lcom/android/internal/policy/PhoneLayoutInflater; 365 +Landroid/content/MutableContextWrapper; 365 +Landroid/renderscript/RenderScript; 365 +Landroid/content/pm/IPackageManager$Stub$Proxy; 367 +Landroid/media/MediaPlayer$EventHandler; 368 +Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.220:Ljava/lang/String; 368 +Landroid/graphics/drawable/GradientDrawable$Orientation;.BOTTOM_TOP:Landroid/graphics/drawable/GradientDrawable$Orientation; 368 +Landroid/graphics/drawable/GradientDrawable$Orientation;.RIGHT_LEFT:Landroid/graphics/drawable/GradientDrawable$Orientation; 368 +Landroid/content/res/ResourcesImpl; 368 +Landroid/os/ResultReceiver$MyRunnable; 368 +Landroid/graphics/drawable/GradientDrawable$Orientation;.TL_BR:Landroid/graphics/drawable/GradientDrawable$Orientation; 368 +Landroid/view/animation/Animation$3; 368 +Landroid/view/ViewRootImpl$7; 368 +Landroid/view/animation/Animation$1; 368 +Landroid/graphics/drawable/GradientDrawable$Orientation;.BR_TL:Landroid/graphics/drawable/GradientDrawable$Orientation; 368 +Landroid/graphics/drawable/GradientDrawable$Orientation;.TOP_BOTTOM:Landroid/graphics/drawable/GradientDrawable$Orientation; 368 +Landroid/os/PowerManager$3$$ExternalSyntheticLambda0; 368 +Landroid/graphics/drawable/GradientDrawable$Orientation;.BL_TR:Landroid/graphics/drawable/GradientDrawable$Orientation; 368 +Landroid/graphics/drawable/GradientDrawable$Orientation;.LEFT_RIGHT:Landroid/graphics/drawable/GradientDrawable$Orientation; 368 +Landroid/graphics/drawable/GradientDrawable$Orientation;.TR_BL:Landroid/graphics/drawable/GradientDrawable$Orientation; 368 +Lcom/android/internal/policy/PhoneWindow$1; 368 +Landroid/hardware/SensorManager; 368 +Landroid/widget/SeekBar; 369 +Landroid/media/MediaRouter2Manager; 370 +Landroid/app/trust/TrustManager$TrustListener; 370 +Landroid/permission/PermissionManager;.INDICATOR_EXEMPTED_PACKAGES:[Ljava/lang/String; 370 +Landroid/media/session/MediaSessionManager$SessionsChangedWrapper$1$$ExternalSyntheticLambda0; 370 +Landroid/view/ViewOverlay$OverlayViewGroup; 370 +Landroid/hardware/display/NightDisplayListener$Callback; 370 +Lcom/android/internal/widget/NotificationOptimizedLinearLayout; 370 +Landroid/hardware/biometrics/BiometricSourceType;.IRIS:Landroid/hardware/biometrics/BiometricSourceType; 370 +Landroid/view/NotificationTopLineView; 370 +Landroid/permission/PermissionManager; 370 +Landroid/text/TextShaper$GlyphsConsumer; 370 +Lcom/android/internal/widget/RemeasuringLinearLayout; 370 +Landroid/os/HandlerExecutor; 370 +Landroid/hardware/biometrics/BiometricSourceType;.FACE:Landroid/hardware/biometrics/BiometricSourceType; 370 +Landroid/animation/ValueAnimator$DurationScaleChangeListener; 370 +Landroid/widget/RemoteViews;.sLookupKey:Landroid/widget/RemoteViews$MethodKey; 370 +Lcom/android/internal/logging/UiEventLogger; 370 +Lcom/android/internal/view/menu/ActionMenuItemView; 370 +Landroid/hardware/biometrics/BiometricSourceType;.FINGERPRINT:Landroid/hardware/biometrics/BiometricSourceType; 370 +Landroid/transition/TransitionManager;.sPendingTransitions:Ljava/util/ArrayList; 370 +Landroid/graphics/drawable/DrawableInflater;.CONSTRUCTOR_MAP:Ljava/util/HashMap; 370 +Lcom/android/internal/widget/ImageFloatingTextView; 370 +Lcom/android/internal/widget/CachingIconView; 370 +Lcom/android/internal/widget/MessagingLayout; 370 +Landroid/widget/DateTimeView$ReceiverInfo$1; 370 +Landroid/view/animation/AnimationSet; 370 +Landroid/hardware/face/FaceManager$FaceDetectionCallback; 370 +Landroid/view/SurfaceControl; 370 +Lcom/android/internal/widget/NotificationExpandButton; 370 +Landroid/widget/ViewSwitcher;.dexCache:Ljava/lang/Object; 370 +Lcom/android/internal/colorextraction/ColorExtractor$OnColorsChangedListener; 370 +Landroid/view/RemotableViewMethod; 370 +Landroid/view/View;.SCALE_Y:Landroid/util/Property; 370 +Landroid/view/View;.TRANSLATION_Y:Landroid/util/Property; 370 +Landroid/telephony/satellite/SatelliteManager;.sSatelliteSupportedStateCallbackMap:Ljava/util/concurrent/ConcurrentHashMap; 370 +Landroid/view/NotificationHeaderView; 370 +Lcom/android/internal/widget/ImageResolver; 370 +Landroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate$$ExternalSyntheticLambda0; 370 +Lcom/android/internal/widget/ConversationLayout; 370 +Lcom/android/internal/util/ContrastColorUtil; 370 +Landroid/text/format/DateUtils; 370 +Landroid/widget/RemoteViews;.sMethods:Landroid/util/ArrayMap; 370 +Landroid/widget/DateTimeView; 370 +Lcom/android/internal/widget/NotificationActionListLayout; 370 +Landroid/view/View;.SCALE_X:Landroid/util/Property; 370 +Landroid/widget/GridLayout;.UNDEFINED_ALIGNMENT:Landroid/widget/GridLayout$Alignment; 372 +Landroid/database/CursorIndexOutOfBoundsException; 374 +Lcom/android/internal/policy/DecorView$2; 375 +Landroid/widget/Spinner; 376 +Landroid/security/keystore2/AndroidKeyStoreRSAPrivateKey; 376 +Landroid/security/keystore/KeyInfo; 377 +Landroid/security/keystore2/AndroidKeyStoreECPrivateKey; 378 +Landroid/text/method/TextKeyListener;.ACTIVE:Ljava/lang/Object; 379 +Landroid/text/method/PasswordTransformationMethod; 380 +Landroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask; 382 +Landroid/speech/tts/TextToSpeech$OnInitListener; 383 +Lcom/android/internal/policy/PhoneWindow; 384 +Lcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState; 385 +Landroid/content/res/Configuration; 386 +Landroid/window/WindowContext; 386 +Landroid/icu/impl/number/parse/NanMatcher;.DEFAULT:Landroid/icu/impl/number/parse/NanMatcher;.uniSet:Landroid/icu/text/UnicodeSet;.strings:Ljava/util/SortedSet;.c:Ljava/util/Collection;.m:Ljava/util/NavigableMap; 386 +Landroid/app/Dialog$$ExternalSyntheticLambda2; 386 +Landroid/app/prediction/AppTargetEvent; 386 +Landroid/app/prediction/AppTarget; 388 +Landroid/content/res/Resources$NotFoundException; 389 +Landroid/icu/text/Collator; 390 +Landroid/widget/TextView$SavedState; 391 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.4:Ljava/util/WeakHashMap$Entry; 393 +Lcom/android/internal/logging/AndroidHandler; 395 +Landroid/view/VelocityTracker;.sPool:Landroid/util/Pools$SynchronizedPool; 397 +Landroid/os/StrictMode$OnThreadViolationListener; 397 +Landroid/view/VelocityTracker;.sPool:Landroid/util/Pools$SynchronizedPool;.mPool:[Ljava/lang/Object; 397 +Landroid/content/Context;.ACCOUNT_SERVICE:Ljava/lang/String; 397 +Landroid/service/trust/TrustAgentService;.EXTRA_TOKEN:Ljava/lang/String; 397 +Ljavax/sip/header/AcceptEncodingHeader;.NAME:Ljava/lang/String; 397 +Landroid/widget/RadioGroup$OnCheckedChangeListener; 398 +Lcom/android/internal/widget/DialogTitle; 399 +Lcom/android/internal/widget/ButtonBarLayout; 399 +Lcom/android/internal/widget/AlertDialogLayout; 399 +Landroid/icu/text/DecimalFormatSymbols;.DEF_DIGIT_STRINGS_ARRAY:[Ljava/lang/String;.1:Ljava/lang/String; 401 +Landroid/widget/Editor$TextRenderNode; 402 +Landroid/view/inputmethod/DeleteGesture; 403 +Landroid/text/method/MetaKeyKeyListener;.ALT:Ljava/lang/Object; 403 +Landroid/view/inputmethod/SelectRangeGesture; 403 +Landroid/text/method/MetaKeyKeyListener;.CAP:Ljava/lang/Object; 403 +Landroid/view/inputmethod/DeleteRangeGesture; 403 +Landroid/text/method/MetaKeyKeyListener;.SYM:Ljava/lang/Object; 403 +Landroid/text/method/MetaKeyKeyListener;.SELECTING:Ljava/lang/Object; 403 +Landroid/view/inputmethod/SelectGesture; 403 +Landroid/widget/TextView;.TEMP_POSITION:[F 404 +Landroid/view/inputmethod/BaseInputConnection;.COMPOSING:Ljava/lang/Object; 405 +Lcom/android/internal/infra/AndroidFuture; 406 +Landroid/accounts/Account;.sAccessedAccounts:Ljava/util/Set; 407 +Landroid/os/Message;.sPoolSync:Ljava/lang/Object; 408 +Landroid/database/sqlite/SQLiteCantOpenDatabaseException; 409 +Landroid/accounts/Account; 409 +Landroid/os/VibrationEffect; 411 +Landroid/content/ServiceConnection; 411 +Landroid/app/ActivityManager$MemoryInfo; 411 +Landroid/util/DisplayMetrics; 411 +Landroid/view/Display; 411 +Landroid/telephony/TelephonyCallback$DataConnectionStateListener; 412 +Landroid/hardware/display/IDisplayManager; 414 +Lcom/android/icu/util/regex/PatternNative; 414 +Landroid/view/WindowInsets; 414 +Landroid/app/ActivityTaskManager$2; 414 +Landroid/view/View$AttachInfo; 414 +Landroid/media/AudioManager$ServiceEventHandlerDelegate$1; 414 +Landroid/view/ViewRootImpl$6; 414 +Landroid/webkit/WebViewDelegate; 414 +Landroid/os/IInterface; 415 +Landroid/content/pm/IPackageManager; 417 +Landroid/app/IActivityManager; 418 +Landroid/text/style/ImageSpan; 419 +Landroid/widget/RelativeLayout; 422 +Landroid/graphics/drawable/StateListDrawable; 423 +Landroid/view/TextureView$SurfaceTextureListener; 427 +Landroid/graphics/SurfaceTexture; 428 +Landroid/media/audiopolicy/AudioProductStrategy; 429 +Landroid/media/PlayerBase; 430 +Landroid/os/FileUtils; 431 +Landroid/media/MediaDrm$OnEventListener; 435 +Landroid/graphics/drawable/TransitionDrawable; 436 +Lcom/android/internal/telephony/WspTypeDecoder;.WELL_KNOWN_PARAMETERS:Ljava/util/HashMap;.table:[Ljava/util/HashMap$Node;.25:Ljava/util/HashMap$Node;.key:Ljava/lang/Object; 437 +Lcom/android/ims/rcs/uce/presence/pidfparser/omapres/Version;.ELEMENT_NAME:Ljava/lang/String; 442 +Landroid/view/Window$Callback; 442 +Landroid/provider/SyncStateContract$Columns;.DATA:Ljava/lang/String; 442 +Lcom/android/internal/util/Parcelling$Cache;.sCache:Landroid/util/ArrayMap;.mHashes:[I 444 +Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedString; 444 +Landroid/aconfig/nano/Aconfig$tracepoint; 444 +Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringArray; 444 +Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringSet; 444 +Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringValueMap; 444 +Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringList; 444 +Lcom/android/internal/util/Parcelling$Cache;.sCache:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object; 444 +Landroid/app/ActivityTaskManager; 444 +Landroid/aconfig/nano/Aconfig$parsed_flag; 444 +Lcom/android/internal/util/Parcelling$Cache;.sCache:Landroid/util/ArrayMap; 444 +Landroid/app/servertransaction/TopResumedActivityChangeItem; 445 +Landroid/app/LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0; 446 +Landroid/app/LoadedApk$ServiceDispatcher$RunConnection; 447 +Landroid/view/Choreographer$FrameDisplayEventReceiver; 448 +Landroid/view/inputmethod/InputMethodManager$H; 448 +Landroid/graphics/HardwareRendererObserver$$ExternalSyntheticLambda0; 448 +Landroid/view/ViewRootImpl$ViewRootHandler; 449 +Landroid/view/Choreographer$FrameHandler; 450 +Landroid/view/View$$ExternalSyntheticLambda4; 451 +Landroid/app/IActivityTaskManager; 451 +Landroid/os/AsyncTask$InternalHandler; 452 +Landroid/app/job/JobServiceEngine$JobHandler; 452 +Landroid/app/servertransaction/PendingTransactionActions$StopInfo; 453 +Landroid/os/MessageQueue; 453 +Landroid/widget/PopupWindow$PopupDecorView; 453 +Landroid/view/WindowLeaked; 454 +Landroid/app/servertransaction/ClientTransaction; 455 +Landroid/content/res/Resources; 457 +Landroid/util/Pair; 458 +Landroid/widget/Switch; 460 +Landroid/view/ViewManager; 467 +Landroid/view/accessibility/AccessibilityEventSource; 467 +Landroid/view/KeyEvent$Callback; 467 +Landroid/view/ViewParent; 467 +Landroid/graphics/drawable/Drawable$Callback; 467 +Landroid/content/pm/SigningDetails; 468 +Landroid/content/pm/FeatureInfo; 468 +Landroid/content/pm/ProviderInfo; 468 +Landroid/content/pm/PermissionInfo; 468 +Landroid/content/pm/PackageItemInfo; 469 +Landroid/content/pm/PackageInfo; 470 +Landroid/app/IActivityManager$Stub$Proxy; 473 +Lcom/android/internal/os/PowerProfile;.sPowerItemMap:Ljava/util/HashMap; 474 +Lcom/android/internal/os/PowerProfile;.sPowerArrayMap:Ljava/util/HashMap; 474 +Lcom/android/internal/os/PowerProfile;.sModemPowerProfile:Lcom/android/internal/power/ModemPowerProfile;.mPowerConstants:Landroid/util/SparseDoubleArray;.mValues:Landroid/util/SparseLongArray; 474 +Landroid/widget/HorizontalScrollView; 475 +Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener; 476 +Landroid/content/res/AssetManager$AssetInputStream; 477 +Landroid/os/Parcelable; 478 +Landroid/icu/util/Calendar;.WEEK_DATA_CACHE:Landroid/icu/util/Calendar$WeekDataCache;.map:Ljava/util/concurrent/ConcurrentHashMap; 480 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.10:Ljava/util/WeakHashMap$Entry; 482 +Landroid/view/InsetsAnimationThread; 483 +Lcom/android/internal/jank/InteractionJankMonitor$InstanceHolder; 484 +Lcom/android/internal/jank/InteractionJankMonitor; 484 +Landroid/view/View$OnSystemUiVisibilityChangeListener; 485 +Landroid/hardware/display/DisplayManager$DisplayListener; 486 +Landroid/view/View$OnApplyWindowInsetsListener; 486 +Landroid/view/Choreographer$FrameCallback; 487 +Landroid/os/Handler$Callback; 489 +Landroid/os/Build$VERSION; 490 +Landroid/view/View$OnLayoutChangeListener; 490 +Landroid/app/SharedPreferencesImpl$EditorImpl; 491 +Landroid/view/InputDevice; 492 +Landroid/preference/PreferenceManager; 492 +Landroid/os/Build; 493 +Landroid/app/ContextImpl$ApplicationContentResolver; 496 +Landroid/provider/Settings$Secure; 496 +Landroid/view/TextureView; 497 +Landroid/os/strictmode/NetworkViolation; 498 +Landroid/graphics/drawable/AnimatedVectorDrawable; 499 +Landroid/icu/util/MeasureUnit$Complexity;.MIXED:Landroid/icu/util/MeasureUnit$Complexity;.name:Ljava/lang/String; 500 +Landroid/media/MediaDrm; 500 +Lcom/android/internal/app/procstats/DumpUtils;.STATE_NAMES_CSV:[Ljava/lang/String;.12:Ljava/lang/String; 500 +Landroid/provider/DocumentsContract;.DOWNLOADS_PROVIDER_AUTHORITY:Ljava/lang/String; 500 +Landroid/annotation/SystemApi; 500 +Landroid/icu/text/MessagePattern;.argTypes:[Landroid/icu/text/MessagePattern$ArgType;.0:Landroid/icu/text/MessagePattern$ArgType;.name:Ljava/lang/String; 500 +Landroid/webkit/WebViewFactory;.sProviderLock:Ljava/lang/Object; 505 +Landroid/app/ActivityThread$H; 506 +Landroid/view/AttachedSurfaceControl$OnBufferTransformHintChangedListener; 508 +Landroid/widget/ViewFlipper; 517 +Landroid/app/IActivityTaskManager$Stub$Proxy; 519 +Landroid/app/ActivityThread$ProviderRefCount; 519 +Landroid/view/ViewRootImpl$W; 519 +Lcom/android/internal/telephony/ITelephony; 519 +Lcom/android/internal/os/PowerProfile; 521 +Landroid/view/View$VisibilityChangeForAutofillHandler; 521 +Landroid/view/View$ScrollabilityCache; 521 +Landroid/app/INotificationManager; 521 +Landroid/graphics/drawable/LevelListDrawable; 521 +Landroid/app/SharedPreferencesImpl$EditorImpl$$ExternalSyntheticLambda0; 522 +Landroid/window/SplashScreen; 526 +Landroid/media/AudioManager$OnAudioFocusChangeListener; 528 +Landroid/app/Application; 529 +Landroid/content/ContextWrapper; 530 +Landroid/view/SurfaceView; 531 +Landroid/hardware/camera2/CameraCharacteristics;.FLASH_INFO_AVAILABLE:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 532 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_AE_TARGET_FPS_RANGE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 533 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_AWB_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 533 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_ZOOM_RATIO:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 533 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_AE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 533 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_AE_EXPOSURE_COMPENSATION:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 533 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 533 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_AF_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 533 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_ENABLE_ZSL:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 533 +Landroid/hardware/camera2/CaptureRequest;.SENSOR_TEST_PATTERN_DATA:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_AE_REGIONS:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.JPEG_QUALITY:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.STATISTICS_LENS_SHADING_MAP_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.LENS_FOCUS_DISTANCE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.REPROCESS_EFFECTIVE_EXPOSURE_FACTOR:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.SENSOR_TEST_PATTERN_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.LENS_APERTURE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.STATISTICS_HOT_PIXEL_MAP_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_AF_REGIONS:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.REQUEST_AVAILABLE_SESSION_KEYS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_REFERENCE_ILLUMINANT1:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_AWB_LOCK:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.EFV_STABILIZATION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.LENS_OPTICAL_STABILIZATION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.LENS_FILTER_DENSITY:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_AWB_REGIONS:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.EFV_PADDING_ZOOM_FACTOR:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.BLACK_LEVEL_LOCK:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.COLOR_CORRECTION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.STATISTICS_FACE_DETECT_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.LOGICAL_MULTI_CAMERA_PHYSICAL_IDS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.JPEG_THUMBNAIL_SIZE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.SCALER_ROTATE_AND_CROP:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_INFO_COLOR_FILTER_ARRANGEMENT:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_OPTICAL_BLACK_REGIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.FLASH_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_AF_TRIGGER:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.EFV_MAX_PADDING_ZOOM_FACTOR:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.SENSOR_PIXEL_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_INFO_WHITE_LEVEL:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.DISTORTION_CORRECTION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_CAPTURE_INTENT:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.EFV_AUTO_ZOOM:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_CALIBRATION_TRANSFORM1:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.COLOR_CORRECTION_ABERRATION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_COLOR_TRANSFORM1:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.TONEMAP_GAMMA:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.NOISE_REDUCTION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.SCALER_CROP_REGION:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.TONEMAP_PRESET_CURVE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_INFO_EXPOSURE_TIME_RANGE:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_POST_RAW_SENSITIVITY_BOOST:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.STATISTICS_OIS_DATA_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.SENSOR_FRAME_DURATION:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.HOT_PIXEL_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_EXTENDED_SCENE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.REQUEST_AVAILABLE_REQUEST_KEYS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.COLOR_CORRECTION_GAINS:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_COLOR_TRANSFORM2:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_CALIBRATION_TRANSFORM2:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_AE_LOCK:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.JPEG_THUMBNAIL_QUALITY:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_AE_PRECAPTURE_TRIGGER:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.SENSOR_SENSITIVITY:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_EFFECT_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +[Landroid/hardware/camera2/params/MeteringRectangle; 534 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_AE_ANTIBANDING_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_AUTOFRAMING:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.EXTENSION_STRENGTH:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_SCENE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_SETTINGS_OVERRIDE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.EFV_ROTATE_VIEWPORT:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.FLASH_STRENGTH_LEVEL:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_REFERENCE_ILLUMINANT2:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_INFO_PIXEL_ARRAY_SIZE:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.CONTROL_VIDEO_STABILIZATION_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.LENS_FOCAL_LENGTH:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.JPEG_ORIENTATION:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.EFV_TRANSLATE_VIEWPORT:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.SENSOR_EXPOSURE_TIME:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.TONEMAP_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.COLOR_CORRECTION_TRANSFORM:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.SHADING_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CaptureRequest;.EDGE_MODE:Landroid/hardware/camera2/CaptureRequest$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 534 +Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_INFO_PHYSICAL_SIZE:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 535 +Landroid/util/Log; 536 +Landroid/accounts/AccountManager$20; 537 +Landroid/accounts/OnAccountsUpdateListener; 538 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.7:Ljava/util/WeakHashMap$Entry; 541 +Landroid/os/FileObserver; 544 +Landroid/widget/Space; 546 +Landroid/content/pm/ApplicationInfo; 547 +Landroid/graphics/ColorMatrix;.dexCache:Ljava/lang/Object; 548 +Landroid/text/style/CharacterStyle; 549 +Landroid/text/style/AlignmentSpan; 550 +Landroid/text/TextWatcher; 551 +Landroid/graphics/Bitmap;.sAllBitmaps:Ljava/util/WeakHashMap;.queue:Ljava/lang/ref/ReferenceQueue; 553 +Landroid/view/ViewRootImpl$$ExternalSyntheticLambda11; 554 +Landroid/app/Fragment;.sClassMap:Landroid/util/ArrayMap; 555 +Landroid/os/Bundle; 556 +Landroid/app/ActivityTaskManager;.sInstance:Landroid/util/Singleton; 557 +Landroid/content/pm/ShortcutInfo; 564 +Landroid/graphics/drawable/Icon; 565 +Landroid/os/PersistableBundle; 566 +Landroid/content/LocusId; 576 +Landroid/view/contentcapture/ContentCaptureContext; 576 +Landroid/telephony/TelephonyCallback$DisplayInfoListener; 577 +Landroid/app/Notification$Builder; 583 +Landroid/hardware/usb/UsbManager;.FUNCTION_NAME_TO_CODE:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.13:Ljava/util/HashMap$Node;.next:Ljava/util/HashMap$Node;.next:Ljava/util/HashMap$Node;.value:Ljava/lang/Object; 583 +Landroid/telephony/ims/ImsService;.CAPABILITIES_LOG_MAP:Ljava/util/Map;.table:[Ljava/lang/Object;.8:Ljava/lang/Long; 583 +Landroid/app/Notification; 584 +Landroid/app/RemoteAction; 585 +Landroid/graphics/Insets; 590 +Landroid/graphics/Rect; 591 +Lcom/android/internal/os/BackgroundThread; 592 +Landroid/widget/ViewSwitcher; 602 +Landroid/graphics/Color;.sColorNameMap:Ljava/util/HashMap;.table:[Ljava/util/HashMap$Node;.3:Ljava/util/HashMap$Node;.key:Ljava/lang/Object; 603 +Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Basic;.OPEN:Ljava/lang/String; 603 +Lcom/android/internal/os/BinderCallsStats$SettingsObserver;.SETTINGS_ENABLED_KEY:Ljava/lang/String; 603 +Landroid/icu/text/DecimalFormatSymbols;.DEF_DIGIT_STRINGS_ARRAY:[Ljava/lang/String;.3:Ljava/lang/String; 603 +Landroid/os/BatteryConsumer;.sPowerComponentNames:[Ljava/lang/String;.13:Ljava/lang/String; 603 +Landroid/os/IncidentManager;.URI_SCHEME:Ljava/lang/String; 603 +Landroid/os/AsyncTask$4; 603 +Landroid/text/Html$HtmlParser;.schema:Lorg/ccil/cowan/tagsoup/HTMLSchema;.theEntities:Ljava/util/HashMap;.table:[Ljava/util/HashMap$Node;.3233:Ljava/util/HashMap$Node;.key:Ljava/lang/Object; 603 +Landroid/provider/DocumentsContract;.PATH_SEARCH:Ljava/lang/String; 603 +Landroid/icu/impl/LocaleIDs;._languages:[Ljava/lang/String;.437:Ljava/lang/String; 603 +Landroid/icu/impl/units/UnitsData$Constants;.DEFAULT_USAGE:Ljava/lang/String; 604 +Lcom/android/internal/telephony/IccProvider;.ADDRESS_BOOK_COLUMN_NAMES:[Ljava/lang/String;.0:Ljava/lang/String; 604 +Landroid/text/method/DialerKeyListener; 605 +Landroid/icu/text/DecimalFormatSymbols;.DEF_DIGIT_STRINGS_ARRAY:[Ljava/lang/String;.0:Ljava/lang/String; 605 +Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Timestamp;.ELEMENT_NAME:Ljava/lang/String; 605 +Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Status;.ELEMENT_NAME:Ljava/lang/String; 605 +Landroid/os/BatteryManager;.EXTRA_SEQUENCE:Ljava/lang/String; 605 +Landroid/icu/text/MessageFormat;.typeList:[Ljava/lang/String;.5:Ljava/lang/String; 605 +Landroid/provider/Telephony$ThreadsColumns;.ERROR:Ljava/lang/String; 605 +Lcom/android/internal/os/RailStats;.WIFI_SUBSYSTEM:Ljava/lang/String; 605 +Landroid/app/NotificationChannel;.TAG_CHANNEL:Ljava/lang/String; 605 +Landroid/app/NotificationChannel;.EDIT_LAUNCHER:Ljava/lang/String; 605 +Lcom/android/ims/ImsUt;.KEY_ACTION:Ljava/lang/String; 605 +Landroid/view/textclassifier/TextClassifier;.TYPE_URL:Ljava/lang/String; 605 +Landroid/provider/Telephony$BaseMmsColumns;.START:Ljava/lang/String; 605 +Landroid/icu/impl/ValidIdentifiers$Datatype;.region:Landroid/icu/impl/ValidIdentifiers$Datatype;.name:Ljava/lang/String; 605 +Landroid/icu/impl/ZoneMeta;.REGION_CACHE:Landroid/icu/impl/ICUCache; 608 +Landroid/widget/TextView;.TEMP_RECTF:Landroid/graphics/RectF; 609 +Landroid/app/Activity; 611 +Landroid/text/method/LinkMovementMethod; 614 +Landroid/net/Uri; 615 +Landroid/app/PendingIntent; 617 +Landroid/security/net/config/UserCertificateSource$NoPreloadHolder; 618 +Landroid/net/Uri$PathPart;.EMPTY:Landroid/net/Uri$PathPart; 619 +Landroid/content/Intent; 620 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.197:Landroid/os/PersistableBundle; 622 +Landroid/graphics/HardwareRenderer; 624 +Landroid/icu/util/TimeZone; 625 +Landroid/telephony/TelephonyRegistryManager; 627 +Landroid/telecom/TelecomManager; 628 +Landroid/telephony/TelephonyCallback$ServiceStateListener; 629 +Landroid/telephony/TelephonyCallback$RadioPowerStateListener; 630 +Landroid/widget/ActionMenuView; 631 +Landroid/widget/ActionMenuPresenter$OverflowMenuButton; 631 +Landroid/widget/Toolbar; 631 +Lcom/android/internal/widget/ActionBarContainer; 632 +Lcom/android/internal/widget/ActionBarContainer$ActionBarBackgroundDrawable; 632 +Lcom/android/internal/widget/ActionBarContextView; 632 +Lcom/android/internal/widget/ActionBarOverlayLayout; 632 +Landroid/graphics/drawable/AdaptiveIconDrawable; 633 +Landroid/widget/ImageButton; 634 +Landroid/widget/Button; 635 +Landroid/view/AbsSavedState$1; 636 +Landroid/app/FragmentManagerState; 637 +Landroid/view/View$BaseSavedState; 638 +Landroid/graphics/drawable/ShapeDrawable; 639 +Lcom/android/internal/telephony/WspTypeDecoder;.WELL_KNOWN_MIME_TYPES:Ljava/util/HashMap;.table:[Ljava/util/HashMap$Node;.54:Ljava/util/HashMap$Node;.key:Ljava/lang/Object; 640 +Lcom/android/internal/telephony/WspTypeDecoder;.WELL_KNOWN_MIME_TYPES:Ljava/util/HashMap;.table:[Ljava/util/HashMap$Node;.33:Ljava/util/HashMap$Node;.key:Ljava/lang/Object; 640 +Landroid/widget/MultiAutoCompleteTextView; 642 +Landroid/speech/RecognitionListener; 642 +Landroid/widget/ToggleButton; 643 +Landroid/widget/AutoCompleteTextView; 644 +Landroid/widget/RadioButton; 645 +Landroid/widget/CheckBox; 646 +Landroid/view/View$OnGenericMotionListener; 647 +Landroid/os/UserHandle; 648 +Landroid/app/servertransaction/ResumeActivityItem; 655 +Landroid/app/servertransaction/ActivityRelaunchItem; 655 +Landroid/app/servertransaction/ObjectPool;.sPoolMap:Ljava/util/Map; 655 +Landroid/text/style/URLSpan; 656 +Landroid/icu/util/ULocale$AvailableType;.DEFAULT:Landroid/icu/util/ULocale$AvailableType;.name:Ljava/lang/String; 656 +Landroid/icu/util/CodePointMap$RangeOption;.NORMAL:Landroid/icu/util/CodePointMap$RangeOption;.name:Ljava/lang/String; 658 +Landroid/security/keystore2/AndroidKeyStoreProvider; 676 +Landroid/security/keystore2/KeyStoreCryptoOperationUtils; 677 +Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener; 678 +Landroid/view/View;.sNextGeneratedId:Ljava/util/concurrent/atomic/AtomicInteger; 679 +Landroid/icu/impl/number/range/StandardPluralRanges; 680 +Landroid/icu/impl/PluralRulesLoader;.loader:Landroid/icu/impl/PluralRulesLoader; 680 +Landroid/icu/impl/PluralRulesLoader;.loader:Landroid/icu/impl/PluralRulesLoader;.pluralRulesCache:Ljava/util/Map; 680 +Landroid/icu/text/PluralRules$Operand; 680 +Landroid/icu/impl/StandardPlural; 681 +Landroid/webkit/JavascriptInterface; 682 +Landroid/content/res/AssetManager; 684 +Ljavax/sip/header/ContentEncodingHeader;.NAME:Ljava/lang/String; 685 +Landroid/view/View$OnClickListener; 685 +Landroid/hardware/usb/UsbManager;.FUNCTION_NAME_TO_CODE:Ljava/util/Map;.table:[Ljava/util/HashMap$Node;.13:Ljava/util/HashMap$Node;.value:Ljava/lang/Object; 685 +Landroid/widget/CompoundButton; 685 +Landroid/view/accessibility/AccessibilityManager;.sInstanceSync:Ljava/lang/Object; 686 +Landroid/webkit/CookieManager; 687 +Landroid/icu/text/NFRule;.ZERO:Ljava/lang/Long; 689 +Landroid/app/AppOpsManager$OnOpActiveChangedListener; 691 +Landroid/view/textclassifier/TextLanguage;.EMPTY:Landroid/view/textclassifier/TextLanguage;.mBundle:Landroid/os/Bundle;.mMap:Landroid/util/ArrayMap; 692 +Landroid/os/RemoteException; 693 +Landroid/content/pm/PackageManager$OnChecksumsReadyListener; 694 +Landroid/content/pm/Checksum$Type; 695 +Landroid/view/InputEvent;.mNextSeq:Ljava/util/concurrent/atomic/AtomicInteger; 696 +Landroid/view/MotionEvent; 697 +Landroid/widget/ScrollView; 698 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.10:Ljava/util/WeakHashMap$Entry;.referent:Ljava/lang/Object;.mSkips:[J 702 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.queue:Ljava/lang/ref/ReferenceQueue; 703 +Landroid/widget/ProgressBar; 704 +Landroid/animation/LayoutTransition; 706 +Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;.sJNISetterPropertyMap:Ljava/util/HashMap; 707 +Lorg/apache/http/params/HttpParams; 711 +Landroid/app/NotificationChannelGroup; 712 +Landroid/content/pm/ParceledListSlice; 712 +Landroid/os/vibrator/StepSegment; 713 +Lcom/android/internal/util/LatencyTracker$SLatencyTrackerHolder; 714 +Lcom/android/internal/util/LatencyTracker; 714 +Landroid/app/Application$ActivityLifecycleCallbacks; 715 +Landroid/os/Messenger; 716 +Landroid/hardware/camera2/CameraCharacteristics;.CONTROL_AE_AVAILABLE_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 720 +Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_INFO_ACTIVE_ARRAY_SIZE:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 720 +Landroid/hardware/camera2/CameraCharacteristics;.REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 720 +Landroid/hardware/camera2/CameraCharacteristics;.INFO_SESSION_CONFIGURATION_QUERY_VERSION:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 720 +Landroid/hardware/camera2/CameraCharacteristics;.LENS_INFO_SHADING_MAP_SIZE:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 720 +Landroid/hardware/camera2/CaptureResult;.SENSOR_TIMESTAMP:Landroid/hardware/camera2/CaptureResult$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 720 +Landroid/hardware/camera2/CameraCharacteristics;.CONTROL_AWB_AVAILABLE_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 720 +Landroid/hardware/camera2/CameraDevice$StateCallback; 720 +Landroid/hardware/camera2/impl/CameraMetadataNative; 720 +Landroid/hardware/camera2/CameraCharacteristics;.SCALER_AVAILABLE_STREAM_USE_CASES:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 720 +Landroid/hardware/camera2/CameraCharacteristics;.CONTROL_ZOOM_RATIO_RANGE:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 720 +Landroid/util/Size; 720 +Landroid/hardware/camera2/CameraCaptureSession$StateCallback; 720 +Landroid/hardware/camera2/CameraCharacteristics;.CONTROL_AF_AVAILABLE_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 720 +Landroid/hardware/camera2/CameraCharacteristics;.REQUEST_PARTIAL_RESULT_COUNT:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 720 +Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback; 720 +Landroid/util/Range; 720 +Landroid/widget/ListView; 721 +Landroid/widget/AbsListView; 721 +Landroid/transition/Explode; 723 +Landroid/text/HtmlToSpannedConverter$Font; 724 +Landroid/text/Html$TagHandler; 725 +Lcom/android/internal/telephony/cdnr/CarrierDisplayNameResolver;.EF_SOURCE_PRIORITY:Ljava/util/List;.a:[Ljava/lang/Object;.2:Ljava/lang/Integer; 725 +Landroid/telephony/ims/feature/MmTelFeature$1; 726 +Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub; 726 +Landroid/telephony/ims/ImsUtListener; 726 +Landroid/telephony/ims/stub/ImsRegistrationImplBase$1; 726 +Lcom/android/ims/ImsManager;.IMS_MANAGER_INSTANCES:Landroid/util/SparseArray;.mKeys:[I 727 +Lcom/android/ims/ImsManager;.IMS_MANAGER_INSTANCES:Landroid/util/SparseArray; 728 +Lcom/android/ims/ImsManager;.IMS_MANAGER_INSTANCES:Landroid/util/SparseArray;.mValues:[Ljava/lang/Object; 728 +Landroid/telephony/ims/aidl/IImsConfig$Stub$Proxy; 729 +Lcom/android/internal/telephony/nano/PersistAtomsProto$SipMessageResponse; 730 +Landroid/timezone/TimeZoneFinder; 730 +Landroid/telephony/TelephonyRegistryManager$3; 730 +Lcom/android/internal/telephony/DeviceStateMonitor; 730 +Lcom/android/internal/telephony/imsphone/ImsPhone; 730 +Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker; 730 +Lcom/android/internal/telephony/cat/CatService; 730 +Landroid/net/NetworkPolicyManager$SubscriptionCallbackProxy; 730 +Landroid/telephony/ModemActivityInfo; 730 +Lcom/android/internal/telephony/InboundSmsHandler$NewMessageNotificationActionReceiver; 730 +Landroid/icu/impl/ZoneMeta;.SYSTEM_ZONE_CACHE:Landroid/icu/impl/ZoneMeta$SystemTimeZoneCache;.map:Ljava/util/concurrent/ConcurrentHashMap; 730 +Lcom/android/internal/telephony/TelephonyDevController; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$GbaEvent; 730 +Lcom/android/internal/telephony/RadioInterfaceCapabilityController; 730 +Lcom/android/internal/telephony/SmsBroadcastUndelivered; 730 +Landroid/telephony/data/ApnSetting;.APN_TYPE_INT_MAP:Ljava/util/Map; 730 +Lcom/android/internal/telephony/SmsStorageMonitor$1; 730 +Lcom/android/internal/telephony/CellBroadcastServiceManager; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$CellularDataServiceSwitch; 730 +Lcom/android/internal/telephony/StateMachine$SmHandler; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$CarrierRoamingSatelliteControllerStats; 730 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.673:[Ljava/lang/String; 730 +Lcom/android/internal/telephony/NetworkTypeController$1; 730 +Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mDisplayInfoRegistrants:Lcom/android/internal/telephony/RegistrantList;.registrants:Ljava/util/ArrayList; 730 +Lcom/android/internal/telephony/CarrierActionAgent; 730 +Lcom/android/internal/telephony/uicc/UiccCarrierPrivilegeRules; 730 +Lcom/android/internal/telephony/MultiSimSettingController; 730 +Lcom/android/internal/telephony/GsmCdmaCallTracker; 730 +Lcom/android/internal/telephony/gsm/GsmInboundSmsHandler$GsmCbTestBroadcastReceiver; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteController; 730 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.1289:[Ljava/lang/String; 730 +Lcom/android/internal/telephony/IntentBroadcaster$1; 730 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.483:[Ljava/lang/String; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$PresenceNotifyEvent; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteSosMessageRecommender; 730 +Landroid/telephony/CellSignalStrengthWcdma; 730 +Lcom/android/ims/rcs/uce/eab/EabProvider; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$CarrierRoamingSatelliteSession; 730 +Lcom/android/internal/telephony/TelephonyComponentFactory; 730 +Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mRingingCalls:Ljava/util/ArrayList; 730 +Lcom/android/internal/telephony/ims/ImsResolver$2; 730 +Lcom/android/internal/telephony/emergency/EmergencyNumberTracker; 730 +Landroid/timezone/TelephonyLookup; 730 +Lcom/android/internal/telephony/euicc/EuiccConnector$UnavailableState; 730 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.363:[Ljava/lang/String; 730 +Lcom/android/internal/telephony/ProxyController; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteOutgoingDatagram; 730 +Lcom/android/i18n/timezone/TimeZoneFinder; 730 +Lcom/android/internal/telephony/SimActivationTracker; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteProvision; 730 +Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler$CdmaScpTestBroadcastReceiver; 730 +Lcom/android/internal/telephony/ServiceStateTracker; 730 +Lcom/android/internal/telephony/euicc/EuiccConnector$AvailableState; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$RcsClientProvisioningStats; 730 +Lcom/android/internal/telephony/SmsApplication; 730 +Lcom/android/internal/telephony/TelephonyDevController;.mModems:Ljava/util/ArrayList; 730 +Lcom/android/internal/telephony/SimActivationTracker$1; 730 +Lcom/android/internal/telephony/emergency/EmergencyNumberTracker$1; 730 +Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$NetworkRequestsV2; 730 +Lcom/android/internal/telephony/AppSmsManager; 730 +Landroid/telephony/ims/ProvisioningManager$Callback$CallbackBinder; 730 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.789:[Ljava/lang/String; 730 +Lcom/android/i18n/timezone/TelephonyLookup; 730 +Lcom/android/internal/telephony/CarrierServiceBindHelper$CarrierServicePackageMonitor; 730 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.549:[Ljava/lang/String; 730 +Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mInCallVoicePrivacyOffRegistrants:Lcom/android/internal/telephony/RegistrantList;.registrants:Ljava/util/ArrayList; 730 +Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler$CdmaCbTestBroadcastReceiver; 730 +Lcom/android/internal/telephony/IntentBroadcaster; 730 +Landroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder; 730 +Lcom/android/internal/telephony/GsmCdmaCallTracker$1; 730 +Lcom/android/internal/telephony/uicc/UiccProfile$2; 730 +Landroid/telephony/ims/ImsMmTelManager$CapabilityCallback$CapabilityBinder; 730 +Landroid/telephony/CellSignalStrengthGsm; 730 +Landroid/os/Handler$MessengerImpl; 730 +Lcom/android/internal/telephony/DisplayInfoController; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationStats; 730 +Lcom/android/internal/telephony/DeviceStateMonitor$3; 730 +Lcom/android/internal/telephony/RIL;.sRilTimeHistograms:Landroid/util/SparseArray; 730 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.469:[Ljava/lang/String; 730 +Lcom/android/internal/telephony/PhoneConfigurationManager; 730 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.349:[Ljava/lang/String; 730 +Lcom/android/internal/telephony/TelephonyDevController;.mSims:Ljava/util/ArrayList; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$IncomingSms; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$UnmeteredNetworks; 730 +Lcom/android/internal/telephony/euicc/EuiccCardController; 730 +Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mMmiCompleteRegistrants:Lcom/android/internal/telephony/RegistrantList;.registrants:Ljava/util/ArrayList; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$DataNetworkValidation; 730 +Lcom/android/internal/telephony/euicc/EuiccConnector$BindingState; 730 +Lcom/android/internal/telephony/uicc/UiccPkcs15$Pkcs15Selector; 730 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.23:[Ljava/lang/String; 730 +Lcom/android/internal/telephony/SomeArgs; 730 +Lcom/android/internal/telephony/SmsStorageMonitor; 730 +Lcom/android/internal/telephony/SmsApplication$SmsPackageMonitor; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$CarrierIdMismatch; 730 +Lcom/android/phone/ecc/nano/ProtobufEccData$EccInfo; 730 +Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mSuppServiceFailedRegistrants:Lcom/android/internal/telephony/RegistrantList;.registrants:Ljava/util/ArrayList; 730 +Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$RilCall; 730 +Lcom/android/internal/telephony/metrics/TelephonyMetrics; 730 +Lcom/android/internal/telephony/ims/ImsResolver$3; 730 +Lcom/android/internal/telephony/uicc/UiccProfile; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteAccessController; 730 +Lcom/android/internal/telephony/NitzStateMachine; 730 +Lcom/android/internal/telephony/euicc/EuiccConnector$DisconnectedState; 730 +Lcom/android/internal/telephony/uicc/UiccStateChangedLauncher; 730 +Lcom/android/ims/ImsManager;.IMS_STATS_CALLBACKS:Landroid/util/SparseArray; 730 +Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$15; 730 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.833:[Ljava/lang/String; 730 +Lcom/android/internal/telephony/SmsUsageMonitor; 730 +Lcom/android/internal/telephony/euicc/EuiccCardController$SimSlotStatusChangedBroadcastReceiver; 730 +Lcom/android/internal/telephony/ims/ImsServiceController$1; 730 +Lcom/android/internal/telephony/satellite/SatelliteModemInterface; 730 +Lcom/android/internal/telephony/CarrierResolver$2; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$NetworkRequests; 730 +Lcom/android/internal/telephony/MccTable; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$SipDelegateStats; 730 +Lcom/android/ims/ImsManager;.IMS_STATS_CALLBACKS:Landroid/util/SparseArray;.mValues:[Ljava/lang/Object; 730 +Lcom/android/ims/FeatureConnector$1; 730 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.1443:[Ljava/lang/String; 730 +Lcom/android/internal/telephony/ims/ImsResolver$1; 730 +Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState; 730 +Lcom/android/internal/telephony/security/NullCipherNotifier; 730 +Lcom/android/internal/telephony/SMSDispatcher$1; 730 +Lcom/android/phone/ecc/nano/ProtobufEccData$CountryInfo; 730 +Lcom/android/internal/telephony/LocaleTracker$1; 730 +Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mTtyModeReceivedRegistrants:Lcom/android/internal/telephony/RegistrantList;.registrants:Ljava/util/ArrayList; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$VoiceCallRatUsage; 730 +Landroid/os/AsyncResult; 730 +Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mDisconnectRegistrants:Lcom/android/internal/telephony/RegistrantList;.registrants:Ljava/util/ArrayList; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteConfigUpdater; 730 +Lcom/android/internal/telephony/ims/ImsResolver; 730 +Lcom/android/internal/telephony/ServiceStateTracker$1; 730 +Lcom/android/internal/telephony/PhoneFactory; 730 +Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager; 730 +Landroid/telephony/CellSignalStrengthTdscdma; 730 +Landroid/telephony/emergency/EmergencyNumber; 730 +Lcom/android/internal/telephony/GsmCdmaPhone; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$SipTransportSession; 730 +Landroid/app/timezonedetector/TimeZoneDetector; 730 +Landroid/telephony/ims/aidl/IImsServiceController$Stub$Proxy; 730 +Lcom/android/internal/telephony/TelephonyTester$1; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$EmergencyNumbersInfo; 730 +Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState$NetworkRegistrationInfo; 730 +Lcom/android/internal/telephony/CarrierServiceBindHelper$1; 730 +Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mHandlerMap:Ljava/util/HashMap; 730 +Lcom/android/internal/telephony/IccPhoneBookInterfaceManager; 730 +Lcom/android/internal/telephony/CarrierPrivilegesTracker$1; 730 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.1173:[Ljava/lang/String; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$DataCallSession; 730 +Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mForegroundCalls:Ljava/util/ArrayList; 730 +Landroid/telephony/TelephonyLocalConnection; 730 +Lcom/android/internal/telephony/euicc/EuiccConnector$1; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsDedicatedBearerListenerEvent; 730 +Landroid/telephony/ModemInfo; 730 +Lcom/android/internal/telephony/CommandException$Error;.INVALID_SIM_STATE:Lcom/android/internal/telephony/CommandException$Error; 730 +Lcom/android/internal/telephony/CommandException; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$VoiceCallSession; 730 +Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker; 730 +Lcom/android/internal/telephony/euicc/EuiccController; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteSession; 730 +Landroid/telephony/CellSignalStrengthLte; 730 +Lcom/android/internal/telephony/CarrierActionAgent$1; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$OutgoingShortCodeSms; 730 +Lcom/android/internal/telephony/satellite/PointingAppController; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteIncomingDatagram; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationFeatureTagStats; 730 +Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$2; 730 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.33:[Ljava/lang/String; 730 +Lcom/android/internal/telephony/nano/TelephonyProto$RilDataCall; 730 +Lcom/android/internal/telephony/RILRequest; 730 +Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$5; 730 +Landroid/telephony/BarringInfo$BarringServiceInfo; 730 +Lcom/android/internal/telephony/IWapPushManager; 730 +Lcom/android/internal/telephony/SmsDispatchersController; 730 +Lcom/android/internal/telephony/uicc/UiccController; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$CellularServiceState; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$OutgoingSms; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteEntitlement; 730 +Lcom/android/internal/telephony/util/NotificationChannelController$1; 730 +Lcom/android/ims/ImsManager;.IMS_STATS_CALLBACKS:Landroid/util/SparseArray;.mKeys:[I 730 +Lcom/android/internal/telephony/IccSmsInterfaceManager; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$SipTransportFeatureTagStats; 730 +Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mInCallVoicePrivacyOnRegistrants:Lcom/android/internal/telephony/RegistrantList;.registrants:Ljava/util/ArrayList; 730 +Lcom/android/internal/telephony/uicc/UiccProfile$4; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$UceEventStats; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsDedicatedBearerEvent; 730 +Lcom/android/internal/telephony/RadioConfig; 730 +Lcom/android/internal/telephony/PackageChangeReceiver; 730 +Lcom/android/internal/telephony/PhoneSubInfoController; 730 +Lcom/android/internal/telephony/euicc/EuiccConnector$EuiccPackageMonitor; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationTermination; 730 +Lcom/android/internal/telephony/uicc/PinStorage$1; 730 +Lcom/android/internal/telephony/SmsBroadcastUndelivered$1; 730 +Lcom/android/internal/telephony/cdma/CdmaSubscriptionSourceManager; 730 +Lcom/android/internal/telephony/CarrierKeyDownloadManager$3; 730 +Lcom/android/internal/telephony/NetworkTypeController$DefaultState; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$RcsAcsProvisioningStats; 730 +Landroid/net/TelephonyNetworkSpecifier; 730 +Landroid/telephony/CarrierConfigManager;.sDefaults:Landroid/os/PersistableBundle;.mMap:Landroid/util/ArrayMap;.mArray:[Ljava/lang/Object;.1459:[Ljava/lang/String; 730 +Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mSignalInfoRegistrants:Lcom/android/internal/telephony/RegistrantList;.registrants:Ljava/util/ArrayList; 730 +Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationServiceDescStats; 730 +Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mBackgroundCalls:Ljava/util/ArrayList; 730 +Lcom/android/internal/telephony/CallManager;.INSTANCE:Lcom/android/internal/telephony/CallManager;.mPhones:Ljava/util/ArrayList; 730 +Lcom/android/internal/telephony/LocaleTracker; 730 +Lcom/android/internal/telephony/RilWakelockInfo; 730 +Landroid/telephony/CellSignalStrengthNr; 730 +Landroid/telephony/CellSignalStrengthCdma; 730 +Landroid/telephony/NetworkService; 731 +Landroid/util/Log$TerribleFailure; 732 +Lcom/android/internal/os/RuntimeInit$KillApplicationHandler; 733 +Landroid/content/res/ResourcesKey; 734 +Landroid/app/ResourcesManager; 734 +Landroid/widget/HorizontalScrollView$SavedState; 736 +Landroid/widget/AbsSpinner$SavedState; 736 +Landroid/widget/Spinner$SavedState; 736 +Lcom/android/internal/transition/EpicenterTranslateClipReveal; 737 +Landroid/transition/TransitionInflater;.sConstructors:Landroid/util/ArrayMap; 737 +Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.15:Ljava/lang/String; 738 +Landroid/view/ThreadedRenderer;.OVERDRAW_PROPERTY_SHOW:Ljava/lang/String; 738 +Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.141:Ljava/lang/String; 738 +Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.35:Ljava/lang/String; 738 +Landroid/text/Html$ImageGetter; 738 +Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.80:Ljava/lang/String; 738 +Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.224:Ljava/lang/String; 738 +Landroid/webkit/ConsoleMessage$MessageLevel;.WARNING:Landroid/webkit/ConsoleMessage$MessageLevel; 738 +Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.118:Ljava/lang/String; 738 +Landroid/webkit/ConsoleMessage$MessageLevel;.LOG:Landroid/webkit/ConsoleMessage$MessageLevel; 738 +Landroid/webkit/ConsoleMessage$MessageLevel;.DEBUG:Landroid/webkit/ConsoleMessage$MessageLevel; 738 +Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.221:Ljava/lang/String; 738 +Landroid/icu/impl/LocaleIDs;._replacementCountries:[Ljava/lang/String;.9:Ljava/lang/String; 738 +Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.127:Ljava/lang/String; 738 +Landroid/window/ImeOnBackInvokedDispatcher;.RESULT_KEY_PRIORITY:Ljava/lang/String; 738 +Landroid/util/AndroidRuntimeException; 738 +Lcom/android/internal/app/procstats/DumpUtils;.STATE_TAGS:[Ljava/lang/String;.14:Ljava/lang/String; 738 +Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.6:Ljava/lang/String; 738 +Landroid/webkit/ConsoleMessage$MessageLevel;.TIP:Landroid/webkit/ConsoleMessage$MessageLevel; 738 +Landroid/webkit/ConsoleMessage$MessageLevel;.ERROR:Landroid/webkit/ConsoleMessage$MessageLevel; 738 +Landroid/opengl/GLSurfaceView; 738 +Landroid/icu/impl/LocaleIDs;._countries:[Ljava/lang/String;.237:Ljava/lang/String; 738 +Landroid/app/servertransaction/LaunchActivityItem; 739 +Landroid/app/backup/BackupManager; 750 +Landroid/content/pm/PackageManager$NameNotFoundException; 751 +Landroid/view/textclassifier/TextLanguage;.EMPTY:Landroid/view/textclassifier/TextLanguage;.mBundle:Landroid/os/Bundle;.mClassLoader:Ljava/lang/ClassLoader;.packages:Ljava/util/Map;.m:Ljava/util/Map;.table:[Ljava/util/HashMap$Node; 752 +Landroid/view/textclassifier/TextLanguage;.EMPTY:Landroid/view/textclassifier/TextLanguage;.mBundle:Landroid/os/Bundle;.mClassLoader:Ljava/lang/ClassLoader;.packages:Ljava/util/Map;.m:Ljava/util/Map; 752 +Landroid/view/textclassifier/TextLanguage;.EMPTY:Landroid/view/textclassifier/TextLanguage;.mBundle:Landroid/os/Bundle;.mClassLoader:Ljava/lang/ClassLoader; 752 +Landroid/icu/util/ULocale$AliasReplacer; 753 +Landroid/widget/MediaController$MediaPlayerControl; 755 +Landroid/graphics/Point; 759 +Landroid/content/ContentValues; 759 +Landroid/opengl/GLSurfaceView$Renderer; 760 +Landroid/opengl/GLSurfaceView;.sGLThreadManager:Landroid/opengl/GLSurfaceView$GLThreadManager; 761 +Landroid/text/StaticLayout; 762 +Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider; 762 +Landroid/text/method/DigitsKeyListener;.sLocaleInstanceCache:Ljava/util/HashMap; 764 +Landroid/graphics/Path$Op; 765 +Landroid/text/method/QwertyKeyListener; 765 +Landroid/app/StackTrace; 765 +Landroid/icu/text/BreakIterator;.iterCache:[Landroid/icu/impl/CacheValue; 766 +Landroid/view/View$OnHoverListener; 767 +Landroid/content/res/ColorStateList; 767 +Landroid/security/IKeyChainService; 768 +Landroid/app/Notification$MessagingStyle; 769 +Landroid/content/ContentProviderClient; 773 +Landroid/os/UserHandle;.sExtraUserHandleCache:Landroid/util/SparseArray; 773 +Landroid/content/ContentProvider$PipeDataWriter; 774 +Landroid/os/strictmode/UnsafeIntentLaunchViolation; 774 +Landroid/content/AsyncQueryHandler; 776 +Landroid/app/Activity$$ExternalSyntheticLambda0; 777 +Landroid/widget/CheckedTextView; 777 +Landroid/graphics/PorterDuff$Mode;.SRC_IN:Landroid/graphics/PorterDuff$Mode; 778 +Landroid/graphics/drawable/InsetDrawable; 779 +Landroid/view/OrientationEventListener; 781 +Landroid/hardware/camera2/CameraCharacteristics;.INFO_SUPPORTED_HARDWARE_LEVEL:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 782 +Landroid/hardware/camera2/CameraCharacteristics;.SENSOR_ORIENTATION:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 783 +Landroid/hardware/camera2/CameraCharacteristics;.INFO_DEVICE_STATE_ORIENTATIONS:Landroid/hardware/camera2/CameraCharacteristics$Key;.mKey:Landroid/hardware/camera2/impl/CameraMetadataNative$Key; 783 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.9:Ljava/util/WeakHashMap$Entry; 785 +Landroid/media/MediaRouter$VolumeChangeReceiver; 787 +Landroid/media/MediaRouter$WifiDisplayStatusChangedReceiver; 787 +Landroid/media/MediaRouter; 788 +Landroid/hardware/SensorPrivacyManager; 789 +Landroid/os/storage/StorageManager; 790 +Landroid/telephony/SubscriptionManager; 791 +Landroid/view/textservice/TextServicesManager; 791 +Landroid/os/SystemConfigManager; 791 +Landroid/view/LayoutInflater; 791 +Landroid/hardware/input/InputManager; 791 +Landroid/credentials/CredentialManager; 791 +Landroid/permission/PermissionControllerManager; 791 +Landroid/net/NetworkPolicyManager; 791 +Landroid/security/attestationverification/AttestationVerificationManager; 791 +Landroid/app/contextualsearch/ContextualSearchManager; 791 +Landroid/app/wearable/WearableSensingManager; 791 +Landroid/app/people/PeopleManager; 791 +Landroid/net/wifi/sharedconnectivity/app/SharedConnectivityManager; 791 +Landroid/media/session/MediaSessionManager; 791 +Landroid/provider/E2eeContactKeysManager; 791 +Landroid/view/contentcapture/ContentCaptureManager; 791 +Landroid/app/contentsuggestions/ContentSuggestionsManager; 791 +Landroid/os/HardwarePropertiesManager; 791 +Landroid/app/admin/DevicePolicyManager; 791 +Landroid/view/translation/TranslationManager; 791 +Landroid/view/autofill/AutofillManager; 791 +Landroid/net/vcn/VcnManager; 791 +Landroid/service/persistentdata/PersistentDataBlockManager; 791 +Landroid/view/textclassifier/TextClassificationManager; 791 +Landroid/media/tv/tunerresourcemanager/TunerResourceManager; 791 +Landroid/os/RecoverySystem; 791 +Landroid/os/strictmode/Violation; 793 +Lcom/android/internal/telephony/uicc/asn1/Asn1Node;.EMPTY_NODE_LIST:Ljava/util/List; 795 +Landroid/os/strictmode/CredentialProtectedWhileLockedViolation; 796 +Landroid/net/metrics/DhcpClientEvent; 797 +Landroid/icu/impl/CharacterPropertiesImpl;.inclusions:[Landroid/icu/text/UnicodeSet; 798 +Landroid/content/AttributionSource; 800 +Landroid/database/sqlite/SQLiteException; 801 +Lcom/android/ims/ImsManager;.TRUE:Ljava/lang/String; 802 +Landroid/graphics/Matrix; 803 +Landroid/graphics/RectF; 803 +Landroid/os/Parcel$LazyValue; 803 +Landroid/telephony/TelephonyCallback$DataEnabledListener; 804 +Landroid/app/PropertyInvalidatedCache;.sCaches:Ljava/util/WeakHashMap;.table:[Ljava/util/WeakHashMap$Entry;.6:Ljava/util/WeakHashMap$Entry; 805 +Landroid/service/media/MediaBrowserService$ServiceState; 806 +Landroid/graphics/drawable/PictureDrawable; 806 +Landroid/content/pm/PackageManager; 812 +Landroid/window/IWindowContainerToken$Stub$Proxy; 813 +Landroid/app/UriGrantsManager;.IUriGrantsManagerSingleton:Landroid/util/Singleton; 814 +Landroid/provider/FontsContract;.sTypefaceCache:Landroid/util/LruCache;.map:Ljava/util/LinkedHashMap; 816 +Landroid/provider/FontsContract;.sTypefaceCache:Landroid/util/LruCache; 816 +Lcom/android/internal/telephony/WspTypeDecoder;.WELL_KNOWN_MIME_TYPES:Ljava/util/HashMap;.table:[Ljava/util/HashMap$Node;.81:Ljava/util/HashMap$Node;.key:Ljava/lang/Object; 817 +Landroid/app/Service; 818 +Landroid/app/ReceiverRestrictedContext; 819 +Landroid/util/proto/ProtoStream;.FIELD_TYPE_NAMES:[Ljava/lang/String;.10:Ljava/lang/String; 820 +Lorg/apache/http/conn/ssl/SSLSocketFactory$NoPreloadHolder; 820 +Landroid/app/LoadedApk$WarningContextClassLoader; 820 +Ljavax/sip/header/PriorityHeader;.NORMAL:Ljava/lang/String; 820 +Lcom/android/internal/telephony/euicc/EuiccController;.EXTRA_OPERATION:Ljava/lang/String; 820 +Landroid/widget/ViewAnimator; 820 +Landroid/security/keystore/KeyGenParameterSpec; 821 +Landroid/text/style/StyleSpan; 821 +Landroid/util/SparseIntArray; 823 +Landroid/database/ContentObserver; 823 diff --git a/config/preloaded-classes b/config/preloaded-classes index fe3e0e4bbd203b945d1f2436d46184715f6ec3e4..ed402767ee64915eb2fb270d70388ed175649acc 100644 --- a/config/preloaded-classes +++ b/config/preloaded-classes @@ -56,13 +56,13 @@ android.accounts.AccountManager$5 android.accounts.AccountManager$8 android.accounts.AccountManager$AccountKeyData android.accounts.AccountManager$AmsTask$1 -android.accounts.AccountManager$AmsTask$Response-IA android.accounts.AccountManager$AmsTask$Response android.accounts.AccountManager$AmsTask android.accounts.AccountManager$BaseFutureTask$1 android.accounts.AccountManager$BaseFutureTask android.accounts.AccountManager$Future2Task$1 android.accounts.AccountManager$Future2Task +android.accounts.AccountManager-IA android.accounts.AccountManager android.accounts.AccountManagerCallback android.accounts.AccountManagerFuture @@ -86,13 +86,20 @@ android.accounts.IAccountManagerResponse android.accounts.NetworkErrorException android.accounts.OnAccountsUpdateListener android.accounts.OperationCanceledException +android.aconfig.nano.Aconfig$flag_declaration +android.aconfig.nano.Aconfig$flag_declarations +android.aconfig.nano.Aconfig$flag_value +android.aconfig.nano.Aconfig$flag_values +android.aconfig.nano.Aconfig$parsed_flag +android.aconfig.nano.Aconfig$parsed_flags +android.aconfig.nano.Aconfig$tracepoint android.animation.AnimationHandler$$ExternalSyntheticLambda0 android.animation.AnimationHandler$1 android.animation.AnimationHandler$2 android.animation.AnimationHandler$AnimationFrameCallback android.animation.AnimationHandler$AnimationFrameCallbackProvider -android.animation.AnimationHandler$MyFrameCallbackProvider-IA android.animation.AnimationHandler$MyFrameCallbackProvider +android.animation.AnimationHandler-IA android.animation.AnimationHandler android.animation.Animator$AnimatorCaller$$ExternalSyntheticLambda0 android.animation.Animator$AnimatorCaller$$ExternalSyntheticLambda1 @@ -106,8 +113,8 @@ android.animation.Animator$AnimatorConstantState android.animation.Animator$AnimatorListener android.animation.Animator$AnimatorPauseListener android.animation.Animator -android.animation.AnimatorInflater$PathDataEvaluator-IA android.animation.AnimatorInflater$PathDataEvaluator +android.animation.AnimatorInflater-IA android.animation.AnimatorInflater android.animation.AnimatorListenerAdapter android.animation.AnimatorSet$$ExternalSyntheticLambda0 @@ -118,8 +125,8 @@ android.animation.AnimatorSet$3 android.animation.AnimatorSet$AnimationEvent android.animation.AnimatorSet$Builder android.animation.AnimatorSet$Node -android.animation.AnimatorSet$SeekState-IA android.animation.AnimatorSet$SeekState +android.animation.AnimatorSet-IA android.animation.AnimatorSet android.animation.ArgbEvaluator android.animation.BidirectionalTypeConverter @@ -150,8 +157,8 @@ android.animation.PathKeyframes$3 android.animation.PathKeyframes$4 android.animation.PathKeyframes$FloatKeyframesBase android.animation.PathKeyframes$IntKeyframesBase -android.animation.PathKeyframes$SimpleKeyframes-IA android.animation.PathKeyframes$SimpleKeyframes +android.animation.PathKeyframes-IA android.animation.PathKeyframes android.animation.PropertyValuesHolder$1 android.animation.PropertyValuesHolder$FloatPropertyValuesHolder @@ -164,8 +171,8 @@ android.animation.RectEvaluator android.animation.RevealAnimator android.animation.StateListAnimator$1 android.animation.StateListAnimator$StateListAnimatorConstantState -android.animation.StateListAnimator$Tuple-IA android.animation.StateListAnimator$Tuple +android.animation.StateListAnimator-IA android.animation.StateListAnimator android.animation.TimeAnimator$TimeListener android.animation.TimeAnimator @@ -198,19 +205,22 @@ android.app.Activity$$ExternalSyntheticLambda0 android.app.Activity$1 android.app.Activity$HostCallbacks android.app.Activity$ManagedCursor -android.app.Activity$ManagedDialog-IA android.app.Activity$ManagedDialog android.app.Activity$NonConfigurationInstances android.app.Activity$RequestFinishCallback android.app.Activity$TranslucentConversionListener +android.app.Activity-IA android.app.Activity android.app.ActivityClient$1 -android.app.ActivityClient$ActivityClientControllerSingleton-IA android.app.ActivityClient$ActivityClientControllerSingleton android.app.ActivityClient-IA android.app.ActivityClient -android.app.ActivityManager$2 +android.app.ActivityManager$$ExternalSyntheticLambda0 +android.app.ActivityManager$$ExternalSyntheticLambda1 +android.app.ActivityManager$$ExternalSyntheticLambda2 +android.app.ActivityManager$1 android.app.ActivityManager$3 +android.app.ActivityManager$4 android.app.ActivityManager$AppTask android.app.ActivityManager$MemoryInfo$1 android.app.ActivityManager$MemoryInfo @@ -222,20 +232,16 @@ android.app.ActivityManager$ProcessErrorStateInfo$1 android.app.ActivityManager$ProcessErrorStateInfo android.app.ActivityManager$RecentTaskInfo$1 android.app.ActivityManager$RecentTaskInfo$PersistedTaskSnapshotData -android.app.ActivityManager$RecentTaskInfo-IA android.app.ActivityManager$RecentTaskInfo android.app.ActivityManager$RunningAppProcessInfo$1 -android.app.ActivityManager$RunningAppProcessInfo-IA android.app.ActivityManager$RunningAppProcessInfo android.app.ActivityManager$RunningServiceInfo$1 -android.app.ActivityManager$RunningServiceInfo-IA android.app.ActivityManager$RunningServiceInfo android.app.ActivityManager$RunningTaskInfo$1 -android.app.ActivityManager$RunningTaskInfo-IA android.app.ActivityManager$RunningTaskInfo android.app.ActivityManager$TaskDescription$1 -android.app.ActivityManager$TaskDescription-IA android.app.ActivityManager$TaskDescription +android.app.ActivityManager-IA android.app.ActivityManager android.app.ActivityManagerInternal android.app.ActivityOptions$1 @@ -268,7 +274,6 @@ android.app.ActivityThread$ActivityClientRecord android.app.ActivityThread$AppBindData android.app.ActivityThread$ApplicationThread$$ExternalSyntheticLambda2 android.app.ActivityThread$ApplicationThread$1 -android.app.ActivityThread$ApplicationThread-IA android.app.ActivityThread$BindServiceData android.app.ActivityThread$ContextCleanupInfo android.app.ActivityThread$CreateBackupAgentData @@ -278,7 +283,6 @@ android.app.ActivityThread$DumpHeapData android.app.ActivityThread$DumpResourcesData android.app.ActivityThread$GcIdler android.app.ActivityThread$H -android.app.ActivityThread$Idler-IA android.app.ActivityThread$Idler android.app.ActivityThread$Profiler android.app.ActivityThread$ProviderClientRecord @@ -290,6 +294,7 @@ android.app.ActivityThread$RequestAssistContextExtras android.app.ActivityThread$SafeCancellationTransport android.app.ActivityThread$ServiceArgsData android.app.ActivityThread$UpdateCompatibilityData +android.app.ActivityThread-IA android.app.ActivityThread android.app.ActivityThreadInternal android.app.ActivityTransitionCoordinator @@ -360,6 +365,7 @@ android.app.AppOpsManager android.app.AppOpsManagerInternal android.app.Application$ActivityLifecycleCallbacks android.app.Application$OnProvideAssistDataListener +android.app.Application android.app.ApplicationErrorReport$1 android.app.ApplicationErrorReport$AnrInfo android.app.ApplicationErrorReport$BatteryInfo @@ -371,8 +377,8 @@ android.app.ApplicationErrorReport android.app.ApplicationExitInfo$1 android.app.ApplicationExitInfo-IA android.app.ApplicationExitInfo -android.app.ApplicationLoaders$CachedClassLoader-IA android.app.ApplicationLoaders$CachedClassLoader +android.app.ApplicationLoaders-IA android.app.ApplicationLoaders android.app.ApplicationPackageManager$$ExternalSyntheticLambda1 android.app.ApplicationPackageManager$$ExternalSyntheticLambda2 @@ -395,6 +401,8 @@ android.app.BackgroundInstallControlManager android.app.BackgroundServiceStartNotAllowedException$1 android.app.BackgroundServiceStartNotAllowedException android.app.BroadcastOptions +android.app.BroadcastStickyCache +android.app.CameraCompatTaskInfo$1 android.app.CameraCompatTaskInfo android.app.ClientTransactionHandler android.app.ComponentCaller @@ -499,7 +507,6 @@ android.app.IAssistDataReceiver android.app.IBackupAgent$Stub$Proxy android.app.IBackupAgent$Stub android.app.IBackupAgent -android.app.ICompatCameraControlCallback android.app.IForegroundServiceObserver$Stub$Proxy android.app.IForegroundServiceObserver$Stub android.app.IForegroundServiceObserver @@ -594,14 +601,13 @@ android.app.ListActivity android.app.LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0 android.app.LoadedApk$ReceiverDispatcher$Args android.app.LoadedApk$ReceiverDispatcher -android.app.LoadedApk$ServiceDispatcher$ConnectionInfo-IA android.app.LoadedApk$ServiceDispatcher$ConnectionInfo android.app.LoadedApk$ServiceDispatcher$DeathMonitor android.app.LoadedApk$ServiceDispatcher$RunConnection android.app.LoadedApk$ServiceDispatcher android.app.LoadedApk$SplitDependencyLoaderImpl -android.app.LoadedApk$WarningContextClassLoader-IA android.app.LoadedApk$WarningContextClassLoader +android.app.LoadedApk-IA android.app.LoadedApk android.app.LoaderManager$LoaderCallbacks android.app.LoaderManager @@ -615,13 +621,11 @@ android.app.Notification$$ExternalSyntheticLambda0 android.app.Notification$1 android.app.Notification$Action$1 android.app.Notification$Action$Builder -android.app.Notification$Action-IA android.app.Notification$Action android.app.Notification$BigPictureStyle android.app.Notification$BigTextStyle android.app.Notification$BubbleMetadata$1 android.app.Notification$BubbleMetadata$Builder -android.app.Notification$BubbleMetadata-IA android.app.Notification$BubbleMetadata android.app.Notification$Builder android.app.Notification$BuilderRemoteViews @@ -634,12 +638,12 @@ android.app.Notification$InboxStyle android.app.Notification$MediaStyle android.app.Notification$MessagingStyle$Message android.app.Notification$MessagingStyle -android.app.Notification$StandardTemplateParams-IA android.app.Notification$StandardTemplateParams android.app.Notification$Style android.app.Notification$TemplateBindResult$MarginSet android.app.Notification$TemplateBindResult android.app.Notification$TvExtender +android.app.Notification-IA android.app.Notification android.app.NotificationChannel$1 android.app.NotificationChannel @@ -658,7 +662,6 @@ android.app.PackageInstallObserver android.app.PendingIntent$$ExternalSyntheticLambda0 android.app.PendingIntent$$ExternalSyntheticLambda1 android.app.PendingIntent$$ExternalSyntheticLambda2 -android.app.PendingIntent$$ExternalSyntheticLambda3 android.app.PendingIntent$1 android.app.PendingIntent$CancelListener android.app.PendingIntent$CanceledException @@ -666,7 +669,6 @@ android.app.PendingIntent$OnFinished android.app.PendingIntent$OnMarshaledListener android.app.PendingIntent android.app.Person$1 -android.app.Person$Builder-IA android.app.Person$Builder android.app.Person-IA android.app.Person @@ -704,15 +706,14 @@ android.app.RemoteInputHistoryItem android.app.RemoteServiceException android.app.ResourcesManager$$ExternalSyntheticLambda0 android.app.ResourcesManager$$ExternalSyntheticLambda1 -android.app.ResourcesManager$ActivityResource-IA android.app.ResourcesManager$ActivityResource -android.app.ResourcesManager$ActivityResources-IA android.app.ResourcesManager$ActivityResources android.app.ResourcesManager$ApkAssetsSupplier android.app.ResourcesManager$ApkKey +android.app.ResourcesManager$PathCollector android.app.ResourcesManager$SharedLibraryAssets -android.app.ResourcesManager$UpdateHandler-IA android.app.ResourcesManager$UpdateHandler +android.app.ResourcesManager-IA android.app.ResourcesManager android.app.ResultInfo$1 android.app.ResultInfo @@ -738,9 +739,10 @@ android.app.SharedPreferencesImpl$1 android.app.SharedPreferencesImpl$EditorImpl$$ExternalSyntheticLambda0 android.app.SharedPreferencesImpl$EditorImpl$1 android.app.SharedPreferencesImpl$EditorImpl$2 -android.app.SharedPreferencesImpl$MemoryCommitResult-IA +android.app.SharedPreferencesImpl$EditorImpl android.app.SharedPreferencesImpl$MemoryCommitResult android.app.SharedPreferencesImpl$SharedPreferencesThreadFactory +android.app.SharedPreferencesImpl-IA android.app.StackTrace android.app.StatusBarManager android.app.SyncNotedAppOp$1 @@ -797,6 +799,8 @@ android.app.SystemServiceRegistry$143 android.app.SystemServiceRegistry$144 android.app.SystemServiceRegistry$145 android.app.SystemServiceRegistry$146 +android.app.SystemServiceRegistry$147 +android.app.SystemServiceRegistry$148 android.app.SystemServiceRegistry$14 android.app.SystemServiceRegistry$15 android.app.SystemServiceRegistry$16 @@ -906,8 +910,8 @@ android.app.UiModeManager$1 android.app.UiModeManager$Globals android.app.UiModeManager$InnerListener android.app.UiModeManager$OnProjectionStateChangedListener -android.app.UiModeManager$OnProjectionStateChangedListenerResourceManager-IA android.app.UiModeManager$OnProjectionStateChangedListenerResourceManager +android.app.UiModeManager-IA android.app.UiModeManager android.app.UidObserver android.app.UriGrantsManager$1 @@ -1019,17 +1023,17 @@ android.app.assist.AssistStructure$ViewNodeText android.app.assist.AssistStructure$ViewStackEntry android.app.assist.AssistStructure$WindowNode android.app.assist.AssistStructure -android.app.backup.BackupAgent$BackupServiceBinder-IA android.app.backup.BackupAgent$BackupServiceBinder android.app.backup.BackupAgent$SharedPrefsSynchronizer +android.app.backup.BackupAgent-IA android.app.backup.BackupAgent android.app.backup.BackupAgentHelper android.app.backup.BackupDataInput$EntityHeader android.app.backup.BackupDataInput android.app.backup.BackupDataOutput android.app.backup.BackupHelper -android.app.backup.BackupHelperDispatcher$Header-IA android.app.backup.BackupHelperDispatcher$Header +android.app.backup.BackupHelperDispatcher-IA android.app.backup.BackupHelperDispatcher android.app.backup.BackupHelperWithLogger android.app.backup.BackupManager$BackupObserverWrapper$1 @@ -1117,11 +1121,11 @@ android.app.job.IUserVisibleJobObserver android.app.job.JobInfo$1 android.app.job.JobInfo$Builder android.app.job.JobInfo$TriggerContentUri$1 -android.app.job.JobInfo$TriggerContentUri-IA android.app.job.JobInfo$TriggerContentUri android.app.job.JobInfo-IA android.app.job.JobInfo android.app.job.JobParameters$1 +android.app.job.JobParameters$JobCleanupCallback android.app.job.JobParameters-IA android.app.job.JobParameters android.app.job.JobScheduler @@ -1195,8 +1199,6 @@ android.app.servertransaction.LaunchActivityItem android.app.servertransaction.NewIntentItem$1 android.app.servertransaction.NewIntentItem-IA android.app.servertransaction.NewIntentItem -android.app.servertransaction.ObjectPool -android.app.servertransaction.ObjectPoolItem android.app.servertransaction.PauseActivityItem$1 android.app.servertransaction.PauseActivityItem-IA android.app.servertransaction.PauseActivityItem @@ -1216,6 +1218,7 @@ android.app.servertransaction.TopResumedActivityChangeItem-IA android.app.servertransaction.TopResumedActivityChangeItem android.app.servertransaction.TransactionExecutor android.app.servertransaction.TransactionExecutorHelper +android.app.servertransaction.WindowStateTransactionItem$TransactionListener android.app.slice.ISliceManager$Stub$Proxy android.app.slice.ISliceManager$Stub android.app.slice.ISliceManager @@ -1267,6 +1270,7 @@ android.app.smartspace.uitemplatedata.TapAction$1 android.app.smartspace.uitemplatedata.TapAction android.app.smartspace.uitemplatedata.Text$1 android.app.smartspace.uitemplatedata.Text +android.app.supervision.SupervisionManager android.app.time.ITimeZoneDetectorListener$Stub$Proxy android.app.time.ITimeZoneDetectorListener$Stub android.app.time.ITimeZoneDetectorListener @@ -1389,6 +1393,7 @@ android.companion.virtual.IVirtualDevice android.companion.virtual.IVirtualDeviceManager$Stub$Proxy android.companion.virtual.IVirtualDeviceManager$Stub android.companion.virtual.IVirtualDeviceManager +android.companion.virtual.VirtualDevice$1 android.companion.virtual.VirtualDevice android.companion.virtual.VirtualDeviceManager android.companion.virtual.flags.FeatureFlags @@ -1398,10 +1403,9 @@ android.compat.Compatibility$1 android.compat.Compatibility$BehaviorChangeDelegate android.compat.Compatibility$ChangeConfig android.compat.Compatibility -android.content.AbstractThreadedSyncAdapter$ISyncAdapterImpl-IA android.content.AbstractThreadedSyncAdapter$ISyncAdapterImpl -android.content.AbstractThreadedSyncAdapter$SyncThread-IA android.content.AbstractThreadedSyncAdapter$SyncThread +android.content.AbstractThreadedSyncAdapter-IA android.content.AbstractThreadedSyncAdapter android.content.ActivityNotFoundException android.content.ApexEnvironment @@ -1421,8 +1425,8 @@ android.content.BroadcastReceiver$PendingResult$1 android.content.BroadcastReceiver$PendingResult android.content.BroadcastReceiver android.content.ClipData$1 -android.content.ClipData$Item-IA android.content.ClipData$Item +android.content.ClipData-IA android.content.ClipData android.content.ClipDescription$1 android.content.ClipDescription @@ -1450,14 +1454,13 @@ android.content.ContentProvider$PipeDataWriter android.content.ContentProvider$Transport android.content.ContentProvider android.content.ContentProviderClient$CursorWrapperInner -android.content.ContentProviderClient$NotRespondingRunnable-IA android.content.ContentProviderClient$NotRespondingRunnable +android.content.ContentProviderClient-IA android.content.ContentProviderClient android.content.ContentProviderNative android.content.ContentProviderOperation$1 android.content.ContentProviderOperation$BackReference$1 android.content.ContentProviderOperation$BackReference -android.content.ContentProviderOperation$Builder-IA android.content.ContentProviderOperation$Builder android.content.ContentProviderOperation-IA android.content.ContentProviderOperation @@ -1467,11 +1470,10 @@ android.content.ContentResolver$1 android.content.ContentResolver$2 android.content.ContentResolver$OpenResourceIdResult android.content.ContentResolver$ParcelFileDescriptorInner -android.content.ContentResolver$ResultListener-IA android.content.ContentResolver$ResultListener -android.content.ContentResolver$StringResultListener-IA android.content.ContentResolver$StringResultListener android.content.ContentResolver$UriResultListener +android.content.ContentResolver-IA android.content.ContentResolver android.content.ContentUris android.content.ContentValues$1 @@ -1739,11 +1741,11 @@ android.content.pm.LauncherApps$1 android.content.pm.LauncherApps$AppUsageLimit$1 android.content.pm.LauncherApps$AppUsageLimit android.content.pm.LauncherApps$Callback -android.content.pm.LauncherApps$CallbackMessageHandler$CallbackInfo-IA android.content.pm.LauncherApps$CallbackMessageHandler$CallbackInfo android.content.pm.LauncherApps$CallbackMessageHandler android.content.pm.LauncherApps$ShortcutQuery$QueryFlags android.content.pm.LauncherApps$ShortcutQuery +android.content.pm.LauncherApps-IA android.content.pm.LauncherApps android.content.pm.ModuleInfo$1 android.content.pm.ModuleInfo-IA @@ -1787,7 +1789,6 @@ android.content.pm.PackageManager$Property android.content.pm.PackageManager$ResolveInfoFlags android.content.pm.PackageManager android.content.pm.PackageParser$Activity$1 -android.content.pm.PackageParser$Activity-IA android.content.pm.PackageParser$Activity android.content.pm.PackageParser$ActivityIntentInfo android.content.pm.PackageParser$ApkLite @@ -1807,16 +1808,13 @@ android.content.pm.PackageParser$PackageParserException android.content.pm.PackageParser$ParseComponentArgs android.content.pm.PackageParser$ParsePackageItemArgs android.content.pm.PackageParser$Permission$1 -android.content.pm.PackageParser$Permission-IA android.content.pm.PackageParser$Permission android.content.pm.PackageParser$PermissionGroup$1 android.content.pm.PackageParser$PermissionGroup android.content.pm.PackageParser$Provider$1 -android.content.pm.PackageParser$Provider-IA android.content.pm.PackageParser$Provider android.content.pm.PackageParser$ProviderIntentInfo android.content.pm.PackageParser$Service$1 -android.content.pm.PackageParser$Service-IA android.content.pm.PackageParser$Service android.content.pm.PackageParser$ServiceIntentInfo android.content.pm.PackageParser$SigningDetails$1 @@ -1825,6 +1823,7 @@ android.content.pm.PackageParser$SigningDetails android.content.pm.PackageParser$SplitAssetLoader android.content.pm.PackageParser$SplitDependencyLoader$IllegalDependencyException android.content.pm.PackageParser$SplitNameComparator +android.content.pm.PackageParser-IA android.content.pm.PackageParser android.content.pm.PackageParserCacheHelper$ReadHelper android.content.pm.PackageParserCacheHelper$WriteHelper @@ -1949,7 +1948,6 @@ android.content.res.ApkAssets android.content.res.AssetFileDescriptor$1 android.content.res.AssetFileDescriptor$AutoCloseInputStream android.content.res.AssetFileDescriptor -android.content.res.AssetManager$AssetInputStream-IA android.content.res.AssetManager$AssetInputStream android.content.res.AssetManager$Builder android.content.res.AssetManager-IA @@ -1991,19 +1989,20 @@ android.content.res.ResourceTimer$Config android.content.res.ResourceTimer$Timer android.content.res.ResourceTimer android.content.res.Resources$$ExternalSyntheticLambda0 +android.content.res.Resources$$ExternalSyntheticLambda1 android.content.res.Resources$AssetManagerUpdateHandler android.content.res.Resources$NotFoundException -android.content.res.Resources$Theme-IA android.content.res.Resources$Theme android.content.res.Resources$ThemeKey android.content.res.Resources$UpdateCallbacks +android.content.res.Resources-IA android.content.res.Resources android.content.res.ResourcesImpl$$ExternalSyntheticLambda0 android.content.res.ResourcesImpl$$ExternalSyntheticLambda1 android.content.res.ResourcesImpl$$ExternalSyntheticLambda2 -android.content.res.ResourcesImpl$LookupStack-IA android.content.res.ResourcesImpl$LookupStack android.content.res.ResourcesImpl$ThemeImpl +android.content.res.ResourcesImpl-IA android.content.res.ResourcesImpl android.content.res.ResourcesKey android.content.res.StringBlock$Height @@ -2083,17 +2082,20 @@ android.database.sqlite.SQLiteBlobTooBigException android.database.sqlite.SQLiteCantOpenDatabaseException android.database.sqlite.SQLiteClosable android.database.sqlite.SQLiteCompatibilityWalFlags -android.database.sqlite.SQLiteConnection$Operation-IA android.database.sqlite.SQLiteConnection$Operation +android.database.sqlite.SQLiteConnection$OperationLog$$ExternalSyntheticLambda0 +android.database.sqlite.SQLiteConnection$OperationLog$$ExternalSyntheticLambda1 android.database.sqlite.SQLiteConnection$OperationLog android.database.sqlite.SQLiteConnection$PreparedStatement android.database.sqlite.SQLiteConnection$PreparedStatementCache +android.database.sqlite.SQLiteConnection$RateLimiter +android.database.sqlite.SQLiteConnection-IA android.database.sqlite.SQLiteConnection android.database.sqlite.SQLiteConnectionPool$1 android.database.sqlite.SQLiteConnectionPool$AcquiredConnectionStatus -android.database.sqlite.SQLiteConnectionPool$ConnectionWaiter-IA android.database.sqlite.SQLiteConnectionPool$ConnectionWaiter android.database.sqlite.SQLiteConnectionPool$IdleConnectionHandler +android.database.sqlite.SQLiteConnectionPool-IA android.database.sqlite.SQLiteConnectionPool android.database.sqlite.SQLiteConstraintException android.database.sqlite.SQLiteCursorDriver @@ -2105,8 +2107,8 @@ android.database.sqlite.SQLiteDatabase$$ExternalSyntheticLambda3 android.database.sqlite.SQLiteDatabase$1 android.database.sqlite.SQLiteDatabase$CursorFactory android.database.sqlite.SQLiteDatabase$OpenParams$Builder -android.database.sqlite.SQLiteDatabase$OpenParams-IA android.database.sqlite.SQLiteDatabase$OpenParams +android.database.sqlite.SQLiteDatabase-IA android.database.sqlite.SQLiteDatabase android.database.sqlite.SQLiteDatabaseConfiguration android.database.sqlite.SQLiteDatabaseCorruptException @@ -2129,8 +2131,8 @@ android.database.sqlite.SQLiteQuery android.database.sqlite.SQLiteQueryBuilder android.database.sqlite.SQLiteRawStatement android.database.sqlite.SQLiteReadOnlyDatabaseException -android.database.sqlite.SQLiteSession$Transaction-IA android.database.sqlite.SQLiteSession$Transaction +android.database.sqlite.SQLiteSession-IA android.database.sqlite.SQLiteSession android.database.sqlite.SQLiteStatement android.database.sqlite.SQLiteStatementInfo @@ -2139,8 +2141,8 @@ android.database.sqlite.SQLiteTokenizer android.database.sqlite.SQLiteTransactionListener android.database.sqlite.SqliteWrapper android.ddm.DdmHandle -android.ddm.DdmHandleAppName$Names-IA android.ddm.DdmHandleAppName$Names +android.ddm.DdmHandleAppName-IA android.ddm.DdmHandleAppName android.ddm.DdmHandleExit android.ddm.DdmHandleHeap @@ -2198,12 +2200,16 @@ android.graphics.ColorSpace$Rgb$$ExternalSyntheticLambda0 android.graphics.ColorSpace$Rgb$$ExternalSyntheticLambda1 android.graphics.ColorSpace$Rgb$$ExternalSyntheticLambda2 android.graphics.ColorSpace$Rgb$$ExternalSyntheticLambda3 +android.graphics.ColorSpace$Rgb$$ExternalSyntheticLambda4 android.graphics.ColorSpace$Rgb$$ExternalSyntheticLambda5 +android.graphics.ColorSpace$Rgb$$ExternalSyntheticLambda6 +android.graphics.ColorSpace$Rgb$$ExternalSyntheticLambda9 +android.graphics.ColorSpace$Rgb$Native android.graphics.ColorSpace$Rgb$NoImagePreloadHolder android.graphics.ColorSpace$Rgb$TransferParameters -android.graphics.ColorSpace$Rgb-IA android.graphics.ColorSpace$Rgb android.graphics.ColorSpace$Xyz +android.graphics.ColorSpace-IA android.graphics.ColorSpace android.graphics.Compatibility android.graphics.ComposePathEffect @@ -2233,11 +2239,11 @@ android.graphics.HardwareRenderer$DestroyContextRunnable android.graphics.HardwareRenderer$FrameCommitCallback android.graphics.HardwareRenderer$FrameCompleteCallback android.graphics.HardwareRenderer$FrameDrawingCallback -android.graphics.HardwareRenderer$FrameRenderRequest-IA android.graphics.HardwareRenderer$FrameRenderRequest android.graphics.HardwareRenderer$PrepareSurfaceControlForWebviewCallback android.graphics.HardwareRenderer$ProcessInitializer$1 android.graphics.HardwareRenderer$ProcessInitializer +android.graphics.HardwareRenderer-IA android.graphics.HardwareRenderer android.graphics.HardwareRendererObserver$$ExternalSyntheticLambda0 android.graphics.HardwareRendererObserver$OnFrameMetricsAvailableListener @@ -2246,12 +2252,11 @@ android.graphics.ImageDecoder$AssetInputStreamSource android.graphics.ImageDecoder$ByteArraySource android.graphics.ImageDecoder$DecodeException android.graphics.ImageDecoder$ImageDecoderSourceTrace -android.graphics.ImageDecoder$ImageInfo-IA android.graphics.ImageDecoder$ImageInfo android.graphics.ImageDecoder$InputStreamSource android.graphics.ImageDecoder$OnHeaderDecodedListener -android.graphics.ImageDecoder$Source-IA android.graphics.ImageDecoder$Source +android.graphics.ImageDecoder-IA android.graphics.ImageDecoder android.graphics.ImageFormat android.graphics.Insets$1 @@ -2264,6 +2269,7 @@ android.graphics.LightingColorFilter android.graphics.LinearGradient android.graphics.MaskFilter android.graphics.Matrix$1 +android.graphics.Matrix$ExtraNatives android.graphics.Matrix$NoImagePreloadHolder android.graphics.Matrix$ScaleToFit android.graphics.Matrix @@ -2287,6 +2293,7 @@ android.graphics.Paint android.graphics.PaintFlagsDrawFilter android.graphics.Path$Direction android.graphics.Path$FillType +android.graphics.Path$NoImagePreloadHolder android.graphics.Path$Op android.graphics.Path android.graphics.PathDashPathEffect @@ -2367,7 +2374,6 @@ android.graphics.drawable.AnimatedStateListDrawable$AnimatedStateListState android.graphics.drawable.AnimatedStateListDrawable$AnimatedVectorDrawableTransition android.graphics.drawable.AnimatedStateListDrawable$AnimationDrawableTransition android.graphics.drawable.AnimatedStateListDrawable$FrameInterpolator -android.graphics.drawable.AnimatedStateListDrawable$Transition-IA android.graphics.drawable.AnimatedStateListDrawable$Transition android.graphics.drawable.AnimatedStateListDrawable-IA android.graphics.drawable.AnimatedStateListDrawable @@ -2401,9 +2407,9 @@ android.graphics.drawable.Drawable$Callback android.graphics.drawable.Drawable$ConstantState android.graphics.drawable.Drawable android.graphics.drawable.DrawableContainer$1 -android.graphics.drawable.DrawableContainer$BlockInvalidateCallback-IA android.graphics.drawable.DrawableContainer$BlockInvalidateCallback android.graphics.drawable.DrawableContainer$DrawableContainerState +android.graphics.drawable.DrawableContainer-IA android.graphics.drawable.DrawableContainer android.graphics.drawable.DrawableInflater android.graphics.drawable.DrawableWrapper$DrawableWrapperState @@ -2497,6 +2503,7 @@ android.graphics.drawable.shapes.RectShape android.graphics.drawable.shapes.RoundRectShape android.graphics.drawable.shapes.Shape android.graphics.fonts.Font$Builder +android.graphics.fonts.Font$NoImagePreloadHolder android.graphics.fonts.Font android.graphics.fonts.FontCustomizationParser$Result android.graphics.fonts.FontCustomizationParser @@ -2515,7 +2522,6 @@ android.graphics.text.LineBreakConfig$Builder android.graphics.text.LineBreakConfig android.graphics.text.LineBreaker$Builder android.graphics.text.LineBreaker$ParagraphConstraints -android.graphics.text.LineBreaker$Result-IA android.graphics.text.LineBreaker$Result android.graphics.text.LineBreaker-IA android.graphics.text.LineBreaker @@ -2649,7 +2655,6 @@ android.hardware.camera2.CameraCharacteristics$5 android.hardware.camera2.CameraCharacteristics$6 android.hardware.camera2.CameraCharacteristics$7 android.hardware.camera2.CameraCharacteristics$8 -android.hardware.camera2.CameraCharacteristics$9 android.hardware.camera2.CameraCharacteristics$Key android.hardware.camera2.CameraCharacteristics android.hardware.camera2.CameraDevice$StateCallback @@ -2669,18 +2674,17 @@ android.hardware.camera2.CameraMetadata android.hardware.camera2.CameraOfflineSession$CameraOfflineSessionCallback android.hardware.camera2.CaptureRequest$1 android.hardware.camera2.CaptureRequest$2 -android.hardware.camera2.CaptureRequest$3 android.hardware.camera2.CaptureRequest$Key android.hardware.camera2.CaptureRequest android.hardware.camera2.CaptureResult$1 android.hardware.camera2.CaptureResult$2 android.hardware.camera2.CaptureResult$3 -android.hardware.camera2.CaptureResult$4 android.hardware.camera2.CaptureResult$Key android.hardware.camera2.CaptureResult android.hardware.camera2.DngCreator android.hardware.camera2.TotalCaptureResult android.hardware.camera2.extension.ICaptureProcessorImpl +android.hardware.camera2.impl.CameraDeviceImpl$1 android.hardware.camera2.impl.CameraDeviceImpl$CameraHandlerExecutor android.hardware.camera2.impl.CameraDeviceImpl android.hardware.camera2.impl.CameraExtensionJpegProcessor @@ -2815,6 +2819,7 @@ android.hardware.contexthub.V1_0.MemRange android.hardware.contexthub.V1_0.NanoAppBinary android.hardware.contexthub.V1_0.PhysicalSensor android.hardware.contexthub.V1_1.Setting +android.hardware.devicestate.DeviceState$Configuration$1 android.hardware.devicestate.DeviceState$Configuration android.hardware.devicestate.DeviceState android.hardware.devicestate.DeviceStateInfo$1 @@ -2826,8 +2831,8 @@ android.hardware.devicestate.DeviceStateManagerGlobal$DeviceStateCallbackWrapper android.hardware.devicestate.DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda1 android.hardware.devicestate.DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda2 android.hardware.devicestate.DeviceStateManagerGlobal$DeviceStateCallbackWrapper -android.hardware.devicestate.DeviceStateManagerGlobal$DeviceStateManagerCallback-IA android.hardware.devicestate.DeviceStateManagerGlobal$DeviceStateManagerCallback +android.hardware.devicestate.DeviceStateManagerGlobal-IA android.hardware.devicestate.DeviceStateManagerGlobal android.hardware.devicestate.IDeviceStateManager$Stub$Proxy android.hardware.devicestate.IDeviceStateManager$Stub @@ -2862,13 +2867,12 @@ android.hardware.display.DisplayManager$$ExternalSyntheticLambda0 android.hardware.display.DisplayManager$$ExternalSyntheticLambda1 android.hardware.display.DisplayManager$$ExternalSyntheticLambda2 android.hardware.display.DisplayManager$DisplayListener -android.hardware.display.DisplayManager$WeakDisplayCache-IA android.hardware.display.DisplayManager$WeakDisplayCache +android.hardware.display.DisplayManager-IA android.hardware.display.DisplayManager android.hardware.display.DisplayManagerGlobal$1 android.hardware.display.DisplayManagerGlobal$DisplayListenerDelegate$$ExternalSyntheticLambda0 android.hardware.display.DisplayManagerGlobal$DisplayListenerDelegate -android.hardware.display.DisplayManagerGlobal$DisplayManagerCallback-IA android.hardware.display.DisplayManagerGlobal android.hardware.display.DisplayManagerInternal$DisplayPowerCallbacks android.hardware.display.DisplayManagerInternal$DisplayPowerRequest @@ -2974,9 +2978,9 @@ android.hardware.input.InputDeviceIdentifier android.hardware.input.InputManager$InputDeviceListener android.hardware.input.InputManager android.hardware.input.InputManagerGlobal$InputDeviceListenerDelegate -android.hardware.input.InputManagerGlobal$InputDevicesChangedListener-IA android.hardware.input.InputManagerGlobal$InputDevicesChangedListener android.hardware.input.InputManagerGlobal$OnTabletModeChangedListenerDelegate +android.hardware.input.InputManagerGlobal-IA android.hardware.input.InputManagerGlobal android.hardware.input.InputSettings android.hardware.input.KeyboardLayout$1 @@ -3486,11 +3490,11 @@ android.icu.impl.ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$VariantSy android.icu.impl.ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo android.icu.impl.ICUCurrencyDisplayInfoProvider android.icu.impl.ICUCurrencyMetaInfo$Collector -android.icu.impl.ICUCurrencyMetaInfo$CurrencyCollector-IA android.icu.impl.ICUCurrencyMetaInfo$CurrencyCollector android.icu.impl.ICUCurrencyMetaInfo$InfoCollector android.icu.impl.ICUCurrencyMetaInfo$RegionCollector android.icu.impl.ICUCurrencyMetaInfo$UniqueList +android.icu.impl.ICUCurrencyMetaInfo-IA android.icu.impl.ICUCurrencyMetaInfo android.icu.impl.ICUData$1 android.icu.impl.ICUData$2 @@ -3518,10 +3522,10 @@ android.icu.impl.ICUResourceBundle$4 android.icu.impl.ICUResourceBundle$5 android.icu.impl.ICUResourceBundle$AvailEntry android.icu.impl.ICUResourceBundle$AvailableLocalesSink -android.icu.impl.ICUResourceBundle$Loader-IA android.icu.impl.ICUResourceBundle$Loader android.icu.impl.ICUResourceBundle$OpenType android.icu.impl.ICUResourceBundle$WholeBundle +android.icu.impl.ICUResourceBundle-IA android.icu.impl.ICUResourceBundle android.icu.impl.ICUResourceBundleImpl$ResourceArray android.icu.impl.ICUResourceBundleImpl$ResourceBinary @@ -3656,10 +3660,10 @@ android.icu.impl.TZDBTimeZoneNames$TZDBNames android.icu.impl.TZDBTimeZoneNames android.icu.impl.TextTrieMap$CharIterator android.icu.impl.TextTrieMap$LongestMatchHandler -android.icu.impl.TextTrieMap$Node-IA android.icu.impl.TextTrieMap$Node android.icu.impl.TextTrieMap$Output android.icu.impl.TextTrieMap$ResultHandler +android.icu.impl.TextTrieMap-IA android.icu.impl.TextTrieMap android.icu.impl.TimeZoneAdapter android.icu.impl.TimeZoneGenericNames$1 @@ -3679,9 +3683,9 @@ android.icu.impl.TimeZoneNamesImpl$NameSearchHandler android.icu.impl.TimeZoneNamesImpl$TZ2MZsCache android.icu.impl.TimeZoneNamesImpl$ZNames$NameTypeIndex android.icu.impl.TimeZoneNamesImpl$ZNames -android.icu.impl.TimeZoneNamesImpl$ZNamesLoader-IA android.icu.impl.TimeZoneNamesImpl$ZNamesLoader android.icu.impl.TimeZoneNamesImpl$ZoneStringsLoader +android.icu.impl.TimeZoneNamesImpl-IA android.icu.impl.TimeZoneNamesImpl android.icu.impl.Trie$DataManipulate android.icu.impl.Trie$DefaultGetFoldingOffset @@ -4022,10 +4026,10 @@ android.icu.impl.number.MutablePatternModifier$ImmutablePatternModifier android.icu.impl.number.MutablePatternModifier android.icu.impl.number.Padder$PadPosition android.icu.impl.number.Padder -android.icu.impl.number.PatternStringParser$ParsedPatternInfo-IA android.icu.impl.number.PatternStringParser$ParsedPatternInfo android.icu.impl.number.PatternStringParser$ParsedSubpatternInfo android.icu.impl.number.PatternStringParser$ParserState +android.icu.impl.number.PatternStringParser-IA android.icu.impl.number.PatternStringParser android.icu.impl.number.PatternStringUtils$1 android.icu.impl.number.PatternStringUtils$PatternSignType @@ -4337,7 +4341,6 @@ android.icu.text.DateFormat$Field android.icu.text.DateFormat$HourCycle android.icu.text.DateFormat android.icu.text.DateFormatSymbols$1 -android.icu.text.DateFormatSymbols$AospExtendedDateFormatSymbols-IA android.icu.text.DateFormatSymbols$AospExtendedDateFormatSymbols android.icu.text.DateFormatSymbols$CalendarDataSink$AliasType android.icu.text.DateFormatSymbols$CalendarDataSink @@ -4353,25 +4356,21 @@ android.icu.text.DateIntervalFormat android.icu.text.DateIntervalInfo$DateIntervalSink android.icu.text.DateIntervalInfo$PatternInfo android.icu.text.DateIntervalInfo -android.icu.text.DateTimePatternGenerator$AppendItemFormatsSink-IA android.icu.text.DateTimePatternGenerator$AppendItemFormatsSink -android.icu.text.DateTimePatternGenerator$AppendItemNamesSink-IA android.icu.text.DateTimePatternGenerator$AppendItemNamesSink android.icu.text.DateTimePatternGenerator$AvailableFormatsSink android.icu.text.DateTimePatternGenerator$DTPGflags -android.icu.text.DateTimePatternGenerator$DateTimeMatcher-IA android.icu.text.DateTimePatternGenerator$DateTimeMatcher android.icu.text.DateTimePatternGenerator$DayPeriodAllowedHoursSink android.icu.text.DateTimePatternGenerator$DisplayWidth -android.icu.text.DateTimePatternGenerator$DistanceInfo-IA android.icu.text.DateTimePatternGenerator$DistanceInfo android.icu.text.DateTimePatternGenerator$FormatParser android.icu.text.DateTimePatternGenerator$PatternInfo android.icu.text.DateTimePatternGenerator$PatternWithMatcher android.icu.text.DateTimePatternGenerator$PatternWithSkeletonFlag -android.icu.text.DateTimePatternGenerator$SkeletonFields-IA android.icu.text.DateTimePatternGenerator$SkeletonFields android.icu.text.DateTimePatternGenerator$VariableField +android.icu.text.DateTimePatternGenerator-IA android.icu.text.DateTimePatternGenerator android.icu.text.DecimalFormat$PropertySetter android.icu.text.DecimalFormat @@ -4382,8 +4381,8 @@ android.icu.text.DecimalFormatSymbols android.icu.text.DisplayContext$Type android.icu.text.DisplayContext android.icu.text.DurationFormat -android.icu.text.Edits$Iterator-IA android.icu.text.Edits$Iterator +android.icu.text.Edits-IA android.icu.text.Edits android.icu.text.EscapeTransliterator$1 android.icu.text.EscapeTransliterator$2 @@ -4521,10 +4520,10 @@ android.icu.text.PluralRules$OrConstraint android.icu.text.PluralRules$PluralType android.icu.text.PluralRules$RangeConstraint android.icu.text.PluralRules$Rule -android.icu.text.PluralRules$RuleList-IA android.icu.text.PluralRules$RuleList android.icu.text.PluralRules$SampleType android.icu.text.PluralRules$SimpleTokenizer +android.icu.text.PluralRules-IA android.icu.text.PluralRules android.icu.text.PluralRulesSerialProxy android.icu.text.Quantifier @@ -4570,12 +4569,12 @@ android.icu.text.ReplaceableString android.icu.text.RuleBasedBreakIterator$BreakCache android.icu.text.RuleBasedBreakIterator$DictionaryCache android.icu.text.RuleBasedBreakIterator -android.icu.text.RuleBasedCollator$CollationBuffer-IA android.icu.text.RuleBasedCollator$CollationBuffer android.icu.text.RuleBasedCollator$CollationKeyByteSink android.icu.text.RuleBasedCollator$FCDUTF16NFDIterator android.icu.text.RuleBasedCollator$NFDIterator android.icu.text.RuleBasedCollator$UTF16NFDIterator +android.icu.text.RuleBasedCollator-IA android.icu.text.RuleBasedCollator android.icu.text.RuleBasedNumberFormat android.icu.text.RuleBasedTransliterator$Data @@ -4729,11 +4728,11 @@ android.icu.util.BytesTrieBuilder$BytesAsCharSequence android.icu.util.BytesTrieBuilder android.icu.util.CECalendar android.icu.util.Calendar$1 -android.icu.util.Calendar$FormatConfiguration-IA android.icu.util.Calendar$FormatConfiguration android.icu.util.Calendar$PatternData android.icu.util.Calendar$WeekData android.icu.util.Calendar$WeekDataCache +android.icu.util.Calendar-IA android.icu.util.Calendar android.icu.util.CaseInsensitiveString android.icu.util.CharsTrie$Entry @@ -4748,19 +4747,16 @@ android.icu.util.CodePointMap$RangeOption android.icu.util.CodePointMap$StringIterator android.icu.util.CodePointMap$ValueFilter android.icu.util.CodePointMap -android.icu.util.CodePointTrie$Data-IA android.icu.util.CodePointTrie$Data16 android.icu.util.CodePointTrie$Data32 android.icu.util.CodePointTrie$Data8 android.icu.util.CodePointTrie$Data android.icu.util.CodePointTrie$Fast$FastStringIterator -android.icu.util.CodePointTrie$Fast-IA android.icu.util.CodePointTrie$Fast16 android.icu.util.CodePointTrie$Fast32 android.icu.util.CodePointTrie$Fast8 android.icu.util.CodePointTrie$Fast android.icu.util.CodePointTrie$Small$SmallStringIterator -android.icu.util.CodePointTrie$Small-IA android.icu.util.CodePointTrie$Small16 android.icu.util.CodePointTrie$Small32 android.icu.util.CodePointTrie$Small8 @@ -4842,8 +4838,8 @@ android.icu.util.MeasureUnit$MeasureUnitSink android.icu.util.MeasureUnit android.icu.util.MutableCodePointTrie$1 android.icu.util.MutableCodePointTrie$AllSameBlocks -android.icu.util.MutableCodePointTrie$MixedBlocks-IA android.icu.util.MutableCodePointTrie$MixedBlocks +android.icu.util.MutableCodePointTrie-IA android.icu.util.MutableCodePointTrie android.icu.util.NoUnit android.icu.util.Output @@ -4917,6 +4913,7 @@ android.inputmethodservice.InputMethodService$Insets android.inputmethodservice.InputMethodService$SettingsObserver android.inputmethodservice.InputMethodService android.inputmethodservice.SoftInputWindow +android.internal.framework.protobuf.nano.MessageNano android.internal.hidl.base.V1_0.DebugInfo android.internal.hidl.base.V1_0.IBase android.internal.hidl.manager.V1_0.IServiceManager @@ -4951,11 +4948,14 @@ android.location.IGpsGeofenceHardware$Stub android.location.IGpsGeofenceHardware android.location.Location$$ExternalSyntheticLambda0 android.location.Location$1 -android.location.Location$BearingDistanceCache-IA android.location.Location$BearingDistanceCache +android.location.Location-IA android.location.Location android.location.LocationTime$1 android.location.LocationTime +android.location.flags.FeatureFlags +android.location.flags.FeatureFlagsImpl +android.location.flags.Flags android.media.AudioAttributes$1 android.media.AudioAttributes$Builder android.media.AudioAttributes-IA @@ -4989,22 +4989,20 @@ android.media.AudioManager$AudioPlaybackCallbackInfo android.media.AudioManager$AudioRecordingCallback android.media.AudioManager$AudioRecordingCallbackInfo android.media.AudioManager$BlockingFocusResultReceiver -android.media.AudioManager$DevRoleListeners-IA android.media.AudioManager$DevRoleListeners android.media.AudioManager$FocusRequestInfo android.media.AudioManager$NativeEventHandlerDelegate$1 android.media.AudioManager$NativeEventHandlerDelegate -android.media.AudioManager$OnAmPortUpdateListener-IA android.media.AudioManager$OnAmPortUpdateListener android.media.AudioManager$OnAudioFocusChangeListener android.media.AudioManager$OnAudioPortUpdateListener android.media.AudioManager$OnModeChangedListener android.media.AudioManager$PlaybackConfigChangeCallbackData android.media.AudioManager$RecordConfigChangeCallbackData -android.media.AudioManager$SafeWaitObject-IA android.media.AudioManager$SafeWaitObject android.media.AudioManager$ServiceEventHandlerDelegate$1 android.media.AudioManager$ServiceEventHandlerDelegate +android.media.AudioManager-IA android.media.AudioManager android.media.AudioManagerInternal$RingerModeDelegate android.media.AudioManagerInternal @@ -5160,10 +5158,9 @@ android.media.ImageWriter android.media.JetPlayer android.media.MediaCodec$$ExternalSyntheticLambda6 android.media.MediaCodec$$ExternalSyntheticLambda7 +android.media.MediaCodec$$ExternalSyntheticLambda8 android.media.MediaCodec$BufferInfo -android.media.MediaCodec$BufferMap$CodecBuffer-IA android.media.MediaCodec$BufferMap$CodecBuffer -android.media.MediaCodec$BufferMap-IA android.media.MediaCodec$BufferMap android.media.MediaCodec$Callback android.media.MediaCodec$CodecException @@ -5179,6 +5176,7 @@ android.media.MediaCodec$OutputFrame android.media.MediaCodec$ParameterDescriptor android.media.MediaCodec$PersistentSurface android.media.MediaCodec$QueueRequest +android.media.MediaCodec-IA android.media.MediaCodecInfo$AudioCapabilities android.media.MediaCodecInfo$CodecProfileLevel android.media.MediaCodecInfo$EncoderCapabilities @@ -5233,7 +5231,6 @@ android.media.MediaPlayer$2 android.media.MediaPlayer$3 android.media.MediaPlayer$6 android.media.MediaPlayer$7 -android.media.MediaPlayer$DrmInfo-IA android.media.MediaPlayer$DrmInfo android.media.MediaPlayer$EventHandler$$ExternalSyntheticLambda0 android.media.MediaPlayer$EventHandler$1 @@ -5259,6 +5256,7 @@ android.media.MediaPlayer$TimeProvider$EventHandler android.media.MediaPlayer$TimeProvider android.media.MediaPlayer$TrackInfo$1 android.media.MediaPlayer$TrackInfo +android.media.MediaPlayer-IA android.media.MediaPlayer android.media.MediaRecorder android.media.MediaRoute2Info$1 @@ -5424,13 +5422,14 @@ android.media.browse.MediaBrowser$ConnectionCallback android.media.browse.MediaBrowser$MediaItem$1 android.media.browse.MediaBrowser$MediaItem android.media.browse.MediaBrowser$MediaServiceConnection$1 -android.media.browse.MediaBrowser$MediaServiceConnection-IA android.media.browse.MediaBrowser$MediaServiceConnection android.media.browse.MediaBrowser$ServiceCallbacks android.media.browse.MediaBrowser$Subscription android.media.browse.MediaBrowser$SubscriptionCallback +android.media.browse.MediaBrowser-IA android.media.browse.MediaBrowser android.media.browse.MediaBrowserUtils +android.media.codec.Flags android.media.metrics.Event android.media.metrics.IMediaMetricsManager$Stub$Proxy android.media.metrics.IMediaMetricsManager$Stub @@ -5511,6 +5510,7 @@ android.media.session.ISessionCallback android.media.session.ISessionController$Stub$Proxy android.media.session.ISessionController$Stub android.media.session.ISessionController +android.media.session.ISessionControllerCallback$Stub$Proxy android.media.session.ISessionControllerCallback$Stub android.media.session.ISessionControllerCallback android.media.session.ISessionManager$Stub$Proxy @@ -5521,8 +5521,8 @@ android.media.session.MediaController$CallbackStub android.media.session.MediaController$MessageHandler android.media.session.MediaController$PlaybackInfo$1 android.media.session.MediaController$PlaybackInfo -android.media.session.MediaController$TransportControls-IA android.media.session.MediaController$TransportControls +android.media.session.MediaController-IA android.media.session.MediaController android.media.session.MediaSession$Callback android.media.session.MediaSession$CallbackMessageHandler @@ -5535,29 +5535,26 @@ android.media.session.MediaSession android.media.session.MediaSessionLegacyHelper android.media.session.MediaSessionManager$OnActiveSessionsChangedListener android.media.session.MediaSessionManager$OnMediaKeyEventDispatchedListener -android.media.session.MediaSessionManager$OnMediaKeyEventDispatchedListenerStub-IA android.media.session.MediaSessionManager$OnMediaKeyEventDispatchedListenerStub android.media.session.MediaSessionManager$OnMediaKeyEventSessionChangedListener -android.media.session.MediaSessionManager$OnMediaKeyEventSessionChangedListenerStub-IA android.media.session.MediaSessionManager$OnMediaKeyEventSessionChangedListenerStub android.media.session.MediaSessionManager$OnMediaKeyListener android.media.session.MediaSessionManager$OnMediaKeyListenerImpl android.media.session.MediaSessionManager$OnSession2TokensChangedListener android.media.session.MediaSessionManager$OnVolumeKeyLongPressListener android.media.session.MediaSessionManager$OnVolumeKeyLongPressListenerImpl -android.media.session.MediaSessionManager$RemoteSessionCallbackStub-IA android.media.session.MediaSessionManager$RemoteSessionCallbackStub android.media.session.MediaSessionManager$RemoteUserInfo android.media.session.MediaSessionManager$Session2TokensChangedWrapper android.media.session.MediaSessionManager$SessionsChangedWrapper$1$$ExternalSyntheticLambda0 android.media.session.MediaSessionManager$SessionsChangedWrapper$1 android.media.session.MediaSessionManager$SessionsChangedWrapper +android.media.session.MediaSessionManager-IA android.media.session.MediaSessionManager android.media.session.ParcelableListBinder android.media.session.PlaybackState$1 android.media.session.PlaybackState$Builder android.media.session.PlaybackState$CustomAction$1 -android.media.session.PlaybackState$CustomAction-IA android.media.session.PlaybackState$CustomAction android.media.session.PlaybackState-IA android.media.session.PlaybackState @@ -5624,7 +5621,6 @@ android.net.INetworkPolicyListener android.net.INetworkPolicyManager$Stub$Proxy android.net.INetworkPolicyManager$Stub android.net.INetworkPolicyManager -android.net.INetworkRecommendationProvider$Stub$Proxy android.net.INetworkRecommendationProvider$Stub android.net.INetworkRecommendationProvider android.net.INetworkScoreCache$Stub$Proxy @@ -5687,18 +5683,14 @@ android.net.TelephonyNetworkSpecifier$1 android.net.TelephonyNetworkSpecifier$Builder android.net.TelephonyNetworkSpecifier android.net.Uri$1 -android.net.Uri$AbstractHierarchicalUri-IA android.net.Uri$AbstractHierarchicalUri android.net.Uri$AbstractPart android.net.Uri$Builder -android.net.Uri$HierarchicalUri-IA android.net.Uri$NotCachedHolder -android.net.Uri$OpaqueUri-IA android.net.Uri$Part$EmptyPart android.net.Uri$Part android.net.Uri$PathPart android.net.Uri$PathSegmentsBuilder -android.net.Uri$StringUri-IA android.net.Uri-IA android.net.Uri android.net.UriCodec @@ -5827,16 +5819,99 @@ android.net.wifi.nl80211.WifiNl80211Manager$ScanEventHandler android.net.wifi.nl80211.WifiNl80211Manager$SignalPollResult android.net.wifi.nl80211.WifiNl80211Manager android.net.wifi.sharedconnectivity.app.SharedConnectivityManager +android.nfc.IAppCallback$Stub +android.nfc.IAppCallback +android.nfc.INfcAdapter$Stub +android.nfc.INfcAdapter +android.nfc.INfcAdapterExtras +android.nfc.INfcCardEmulation +android.nfc.INfcControllerAlwaysOnListener$Stub +android.nfc.INfcControllerAlwaysOnListener +android.nfc.INfcDta +android.nfc.INfcFCardEmulation +android.nfc.INfcTag +android.nfc.INfcUnlockHandler$Stub +android.nfc.INfcUnlockHandler +android.nfc.INfcVendorNciCallback$Stub +android.nfc.INfcVendorNciCallback +android.nfc.INfcWlcStateListener$Stub +android.nfc.INfcWlcStateListener +android.nfc.ITagRemovedCallback$Stub +android.nfc.ITagRemovedCallback +android.nfc.NdefMessage +android.nfc.NfcActivityManager +android.nfc.NfcAdapter$$ExternalSyntheticLambda0 +android.nfc.NfcAdapter$$ExternalSyntheticLambda10 +android.nfc.NfcAdapter$$ExternalSyntheticLambda11 +android.nfc.NfcAdapter$$ExternalSyntheticLambda12 +android.nfc.NfcAdapter$$ExternalSyntheticLambda13 +android.nfc.NfcAdapter$$ExternalSyntheticLambda14 +android.nfc.NfcAdapter$$ExternalSyntheticLambda15 +android.nfc.NfcAdapter$$ExternalSyntheticLambda16 +android.nfc.NfcAdapter$$ExternalSyntheticLambda17 +android.nfc.NfcAdapter$$ExternalSyntheticLambda18 +android.nfc.NfcAdapter$$ExternalSyntheticLambda19 +android.nfc.NfcAdapter$$ExternalSyntheticLambda1 +android.nfc.NfcAdapter$$ExternalSyntheticLambda20 +android.nfc.NfcAdapter$$ExternalSyntheticLambda21 +android.nfc.NfcAdapter$$ExternalSyntheticLambda22 +android.nfc.NfcAdapter$$ExternalSyntheticLambda23 +android.nfc.NfcAdapter$$ExternalSyntheticLambda24 +android.nfc.NfcAdapter$$ExternalSyntheticLambda25 +android.nfc.NfcAdapter$$ExternalSyntheticLambda26 +android.nfc.NfcAdapter$$ExternalSyntheticLambda27 +android.nfc.NfcAdapter$$ExternalSyntheticLambda28 +android.nfc.NfcAdapter$$ExternalSyntheticLambda29 +android.nfc.NfcAdapter$$ExternalSyntheticLambda2 +android.nfc.NfcAdapter$$ExternalSyntheticLambda30 +android.nfc.NfcAdapter$$ExternalSyntheticLambda31 +android.nfc.NfcAdapter$$ExternalSyntheticLambda32 +android.nfc.NfcAdapter$$ExternalSyntheticLambda33 +android.nfc.NfcAdapter$$ExternalSyntheticLambda34 +android.nfc.NfcAdapter$$ExternalSyntheticLambda35 +android.nfc.NfcAdapter$$ExternalSyntheticLambda36 +android.nfc.NfcAdapter$$ExternalSyntheticLambda37 +android.nfc.NfcAdapter$$ExternalSyntheticLambda38 +android.nfc.NfcAdapter$$ExternalSyntheticLambda39 +android.nfc.NfcAdapter$$ExternalSyntheticLambda3 +android.nfc.NfcAdapter$$ExternalSyntheticLambda4 +android.nfc.NfcAdapter$$ExternalSyntheticLambda5 +android.nfc.NfcAdapter$$ExternalSyntheticLambda6 +android.nfc.NfcAdapter$$ExternalSyntheticLambda7 +android.nfc.NfcAdapter$$ExternalSyntheticLambda8 +android.nfc.NfcAdapter$$ExternalSyntheticLambda9 +android.nfc.NfcAdapter$1 +android.nfc.NfcAdapter$2 +android.nfc.NfcAdapter$ControllerAlwaysOnListener +android.nfc.NfcAdapter$CreateBeamUrisCallback +android.nfc.NfcAdapter$CreateNdefMessageCallback +android.nfc.NfcAdapter$NfcUnlockHandler +android.nfc.NfcAdapter$NfcVendorNciCallback +android.nfc.NfcAdapter$OnNdefPushCompleteCallback +android.nfc.NfcAdapter$OnTagRemovedListener +android.nfc.NfcAdapter$ReaderCallback +android.nfc.NfcAdapter$ServiceCall +android.nfc.NfcAdapter$ServiceCallReturn +android.nfc.NfcAdapter$WlcStateListener android.nfc.NfcAdapter +android.nfc.NfcAntennaInfo +android.nfc.NfcControllerAlwaysOnListener android.nfc.NfcFrameworkInitializer$$ExternalSyntheticLambda0 android.nfc.NfcFrameworkInitializer android.nfc.NfcManager +android.nfc.NfcOemExtension android.nfc.NfcServiceManager$ServiceRegisterer android.nfc.NfcServiceManager +android.nfc.NfcVendorNciCallbackListener +android.nfc.NfcWlcStateListener +android.nfc.Tag +android.nfc.TechListParcel +android.nfc.WlcListenerDeviceInfo android.nfc.cardemulation.AidGroup$1 android.nfc.cardemulation.AidGroup android.nfc.cardemulation.ApduServiceInfo$1 android.nfc.cardemulation.ApduServiceInfo +android.nfc.cardemulation.PollingFrame android.opengl.EGL14 android.opengl.EGL15 android.opengl.EGLConfig @@ -5887,8 +5962,8 @@ android.os.AsyncTask$InternalHandler android.os.AsyncTask$SerialExecutor$1 android.os.AsyncTask$SerialExecutor android.os.AsyncTask$Status -android.os.AsyncTask$WorkerRunnable-IA android.os.AsyncTask$WorkerRunnable +android.os.AsyncTask-IA android.os.AsyncTask android.os.BadParcelableException android.os.BadTypeParcelableException @@ -5956,8 +6031,8 @@ android.os.Build android.os.Bundle$1 android.os.Bundle android.os.CancellationSignal$OnCancelListener -android.os.CancellationSignal$Transport-IA android.os.CancellationSignal$Transport +android.os.CancellationSignal-IA android.os.CancellationSignal android.os.CarrierAssociatedAppEntry$1 android.os.CarrierAssociatedAppEntry @@ -5983,8 +6058,8 @@ android.os.DdmSyncState android.os.DeadObjectException android.os.DeadSystemException android.os.Debug$MemoryInfo$1 -android.os.Debug$MemoryInfo-IA android.os.Debug$MemoryInfo +android.os.Debug-IA android.os.Debug android.os.DeviceIdleManager android.os.DropBoxManager$Entry$1 @@ -6018,8 +6093,8 @@ android.os.GraphicsEnvironment$1 android.os.GraphicsEnvironment android.os.Handler$BlockingRunnable android.os.Handler$Callback -android.os.Handler$MessengerImpl-IA android.os.Handler$MessengerImpl +android.os.Handler-IA android.os.Handler android.os.HandlerExecutor android.os.HandlerThread @@ -6037,6 +6112,7 @@ android.os.IBatteryPropertiesRegistrar$Stub$Proxy android.os.IBatteryPropertiesRegistrar$Stub android.os.IBatteryPropertiesRegistrar android.os.IBinder$DeathRecipient +android.os.IBinder$FrozenStateChangeCallback android.os.IBinder android.os.IBinderCallback android.os.ICancellationSignal$Stub$Proxy @@ -6165,6 +6241,7 @@ android.os.IWakeLockCallback android.os.IncidentManager$IncidentReport$1 android.os.IncidentManager$IncidentReport android.os.IncidentManager +android.os.IpcDataCache$1 android.os.IpcDataCache$Config android.os.IpcDataCache$QueryHandler android.os.IpcDataCache$RemoteCall @@ -6259,7 +6336,6 @@ android.os.RemoteCallback$2 android.os.RemoteCallback$3 android.os.RemoteCallback$OnResultListener android.os.RemoteCallback -android.os.RemoteCallbackList$Callback android.os.RemoteCallbackList android.os.RemoteException android.os.ResultReceiver$1 @@ -6268,17 +6344,16 @@ android.os.ResultReceiver$MyRunnable android.os.ResultReceiver android.os.SELinux android.os.SecurityStateManager +android.os.Service$1 +android.os.Service android.os.ServiceManager$ServiceNotFoundException android.os.ServiceManager android.os.ServiceManagerNative android.os.ServiceManagerProxy android.os.ServiceSpecificException android.os.SharedMemory$1 -android.os.SharedMemory$Closer-IA android.os.SharedMemory$Closer -android.os.SharedMemory$MemoryRegistration-IA android.os.SharedMemory$MemoryRegistration -android.os.SharedMemory$Unmapper-IA android.os.SharedMemory$Unmapper android.os.SharedMemory-IA android.os.SharedMemory @@ -6304,33 +6379,29 @@ android.os.StrictMode$9 android.os.StrictMode$AndroidBlockGuardPolicy$$ExternalSyntheticLambda0 android.os.StrictMode$AndroidBlockGuardPolicy$$ExternalSyntheticLambda1 android.os.StrictMode$AndroidBlockGuardPolicy -android.os.StrictMode$AndroidCloseGuardReporter-IA android.os.StrictMode$AndroidCloseGuardReporter android.os.StrictMode$InstanceTracker android.os.StrictMode$OnThreadViolationListener android.os.StrictMode$OnVmViolationListener android.os.StrictMode$Span android.os.StrictMode$ThreadPolicy$Builder -android.os.StrictMode$ThreadPolicy-IA android.os.StrictMode$ThreadPolicy -android.os.StrictMode$ThreadSpanState-IA android.os.StrictMode$ThreadSpanState -android.os.StrictMode$UnsafeIntentStrictModeCallback-IA android.os.StrictMode$UnsafeIntentStrictModeCallback android.os.StrictMode$ViolationInfo$1 android.os.StrictMode$ViolationInfo android.os.StrictMode$ViolationLogger android.os.StrictMode$VmPolicy$Builder -android.os.StrictMode$VmPolicy-IA android.os.StrictMode$VmPolicy +android.os.StrictMode-IA android.os.StrictMode android.os.SynchronousResultReceiver$Result android.os.SynchronousResultReceiver android.os.SystemClock$2 android.os.SystemClock android.os.SystemConfigManager -android.os.SystemProperties$Handle-IA android.os.SystemProperties$Handle +android.os.SystemProperties-IA android.os.SystemProperties android.os.SystemService$1 android.os.SystemService$State @@ -6366,9 +6437,6 @@ android.os.UpdateLock android.os.UserHandle$1 android.os.UserHandle android.os.UserManager$1 -android.os.UserManager$2 -android.os.UserManager$3 -android.os.UserManager$4 android.os.UserManager$EnforcingUser$1 android.os.UserManager$EnforcingUser android.os.UserManager$UserOperationException @@ -6446,7 +6514,6 @@ android.os.storage.IStorageShutdownObserver android.os.storage.OnObbStateChangeListener android.os.storage.StorageEventListener android.os.storage.StorageManager$1 -android.os.storage.StorageManager$ObbActionListener-IA android.os.storage.StorageManager$ObbActionListener android.os.storage.StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda2 android.os.storage.StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda3 @@ -6455,6 +6522,7 @@ android.os.storage.StorageManager$StorageEventListenerDelegate$$ExternalSyntheti android.os.storage.StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda6 android.os.storage.StorageManager$StorageEventListenerDelegate android.os.storage.StorageManager$StorageVolumeCallback +android.os.storage.StorageManager-IA android.os.storage.StorageManager android.os.storage.StorageManagerInternal android.os.storage.StorageVolume$1 @@ -6523,8 +6591,8 @@ android.permission.PermissionManager$2 android.permission.PermissionManager$OnPermissionsChangeListenerDelegate android.permission.PermissionManager$PackageNamePermissionQuery android.permission.PermissionManager$PermissionQuery -android.permission.PermissionManager$SplitPermissionInfo-IA android.permission.PermissionManager$SplitPermissionInfo +android.permission.PermissionManager-IA android.permission.PermissionManagerInternal android.preference.DialogPreference android.preference.GenericInflater$Parent @@ -6840,12 +6908,11 @@ android.security.keystore.recovery.WrappedApplicationKey$1 android.security.keystore.recovery.WrappedApplicationKey$Builder android.security.keystore.recovery.WrappedApplicationKey android.security.keystore.recovery.X509CertificateParsingUtils -android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream-IA android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream -android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer-IA android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi$GCM$NoPadding android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi$GCM +android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi-IA android.security.keystore2.AndroidKeyStoreAuthenticatedAESCipherSpi android.security.keystore2.AndroidKeyStoreBCWorkaroundProvider android.security.keystore2.AndroidKeyStoreCipherSpiBase @@ -7057,18 +7124,16 @@ android.service.media.MediaBrowserService$BrowserRoot android.service.media.MediaBrowserService$ConnectionRecord android.service.media.MediaBrowserService$Result android.service.media.MediaBrowserService$ServiceBinder$$ExternalSyntheticLambda1 -android.service.media.MediaBrowserService$ServiceBinder-IA android.service.media.MediaBrowserService$ServiceBinder -android.service.media.MediaBrowserService$ServiceState-IA android.service.media.MediaBrowserService$ServiceState +android.service.media.MediaBrowserService-IA android.service.media.MediaBrowserService android.service.notification.Adjustment$1 android.service.notification.Adjustment android.service.notification.Condition$1 android.service.notification.Condition -android.service.notification.ConditionProviderService$H-IA android.service.notification.ConditionProviderService$H -android.service.notification.ConditionProviderService$Provider-IA +android.service.notification.ConditionProviderService-IA android.service.notification.ConditionProviderService android.service.notification.IConditionProvider$Stub android.service.notification.IConditionProvider @@ -7085,8 +7150,8 @@ android.service.notification.NotificationListenerFilter android.service.notification.NotificationListenerService$MyHandler android.service.notification.NotificationListenerService$Ranking android.service.notification.NotificationListenerService$RankingMap$1 -android.service.notification.NotificationListenerService$RankingMap-IA android.service.notification.NotificationListenerService$RankingMap +android.service.notification.NotificationListenerService-IA android.service.notification.NotificationListenerService android.service.notification.NotificationRankingUpdate$1 android.service.notification.NotificationRankingUpdate @@ -7216,14 +7281,11 @@ android.speech.tts.TextToSpeech$$ExternalSyntheticLambda17 android.speech.tts.TextToSpeech$$ExternalSyntheticLambda1 android.speech.tts.TextToSpeech$Action android.speech.tts.TextToSpeech$Connection$1 -android.speech.tts.TextToSpeech$Connection$SetupConnectionAsyncTask-IA -android.speech.tts.TextToSpeech$Connection-IA -android.speech.tts.TextToSpeech$DirectConnection-IA android.speech.tts.TextToSpeech$DirectConnection android.speech.tts.TextToSpeech$EngineInfo android.speech.tts.TextToSpeech$OnInitListener -android.speech.tts.TextToSpeech$SystemConnection-IA android.speech.tts.TextToSpeech$SystemConnection +android.speech.tts.TextToSpeech-IA android.speech.tts.TtsEngines$EngineInfoComparator android.speech.tts.TtsEngines android.speech.tts.UtteranceProgressListener @@ -7236,7 +7298,6 @@ android.sysprop.CryptoProperties android.sysprop.DeviceProperties android.sysprop.DisplayProperties android.sysprop.HdmiProperties -android.sysprop.InitProperties android.sysprop.InputProperties android.sysprop.MediaProperties android.sysprop.PowerProperties @@ -7256,6 +7317,7 @@ android.sysprop.TelephonyProperties$$ExternalSyntheticLambda7 android.sysprop.TelephonyProperties$$ExternalSyntheticLambda8 android.sysprop.TelephonyProperties$$ExternalSyntheticLambda9 android.sysprop.TelephonyProperties +android.sysprop.ViewProperties android.sysprop.VndkProperties android.system.ErrnoException android.system.GaiException @@ -7282,6 +7344,7 @@ android.system.StructTimespec android.system.StructTimeval android.system.StructUcred android.system.StructUtsname +android.system.SystemCleaner android.system.UnixSocketAddress android.system.VmSocketAddress android.system.keystore2.Authorization$1 @@ -7522,9 +7585,9 @@ android.telephony.JapanesePhoneNumberFormatter android.telephony.LinkCapacityEstimate$1 android.telephony.LinkCapacityEstimate android.telephony.LocationAccessPolicy$LocationPermissionQuery$Builder -android.telephony.LocationAccessPolicy$LocationPermissionQuery-IA android.telephony.LocationAccessPolicy$LocationPermissionQuery android.telephony.LocationAccessPolicy$LocationPermissionResult +android.telephony.LocationAccessPolicy-IA android.telephony.LocationAccessPolicy android.telephony.LteVopsSupportInfo$1 android.telephony.LteVopsSupportInfo-IA @@ -7758,6 +7821,7 @@ android.telephony.TelephonyRegistryManager$$ExternalSyntheticLambda0 android.telephony.TelephonyRegistryManager$$ExternalSyntheticLambda1 android.telephony.TelephonyRegistryManager$$ExternalSyntheticLambda2 android.telephony.TelephonyRegistryManager$1$$ExternalSyntheticLambda0 +android.telephony.TelephonyRegistryManager$1 android.telephony.TelephonyRegistryManager$2 android.telephony.TelephonyRegistryManager$3 android.telephony.TelephonyRegistryManager$CarrierPrivilegesCallbackWrapper$$ExternalSyntheticLambda0 @@ -8082,33 +8146,23 @@ android.text.Html$TagHandler android.text.Html android.text.HtmlToSpannedConverter$Alignment android.text.HtmlToSpannedConverter$Background -android.text.HtmlToSpannedConverter$Big-IA android.text.HtmlToSpannedConverter$Big -android.text.HtmlToSpannedConverter$Blockquote-IA android.text.HtmlToSpannedConverter$Blockquote -android.text.HtmlToSpannedConverter$Bold-IA android.text.HtmlToSpannedConverter$Bold -android.text.HtmlToSpannedConverter$Bullet-IA android.text.HtmlToSpannedConverter$Bullet android.text.HtmlToSpannedConverter$Font android.text.HtmlToSpannedConverter$Foreground android.text.HtmlToSpannedConverter$Heading android.text.HtmlToSpannedConverter$Href -android.text.HtmlToSpannedConverter$Italic-IA android.text.HtmlToSpannedConverter$Italic -android.text.HtmlToSpannedConverter$Monospace-IA android.text.HtmlToSpannedConverter$Monospace android.text.HtmlToSpannedConverter$Newline -android.text.HtmlToSpannedConverter$Small-IA android.text.HtmlToSpannedConverter$Small -android.text.HtmlToSpannedConverter$Strikethrough-IA android.text.HtmlToSpannedConverter$Strikethrough -android.text.HtmlToSpannedConverter$Sub-IA android.text.HtmlToSpannedConverter$Sub -android.text.HtmlToSpannedConverter$Super-IA android.text.HtmlToSpannedConverter$Super -android.text.HtmlToSpannedConverter$Underline-IA android.text.HtmlToSpannedConverter$Underline +android.text.HtmlToSpannedConverter-IA android.text.HtmlToSpannedConverter android.text.Hyphenator android.text.InputFilter$LengthFilter @@ -8144,6 +8198,7 @@ android.text.Selection$MemoryTextWatcher android.text.Selection$PositionIterator android.text.Selection$START android.text.Selection +android.text.SpanColors android.text.SpanSet android.text.SpanWatcher android.text.Spannable$Factory @@ -8165,9 +8220,9 @@ android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl android.text.TextDirectionHeuristics$TextDirectionHeuristicInternal android.text.TextDirectionHeuristics$TextDirectionHeuristicLocale android.text.TextDirectionHeuristics -android.text.TextLine$DecorationInfo-IA android.text.TextLine$DecorationInfo android.text.TextLine$LineInfo +android.text.TextLine-IA android.text.TextLine android.text.TextPaint android.text.TextShaper$GlyphsConsumer @@ -8306,6 +8361,7 @@ android.timezone.TelephonyLookup android.timezone.TelephonyNetwork android.timezone.TelephonyNetworkFinder android.timezone.TimeZoneFinder +android.tracing.Flags android.tracing.perfetto.CreateIncrementalStateArgs android.tracing.perfetto.CreateTlsStateArgs android.tracing.perfetto.DataSource @@ -8376,8 +8432,8 @@ android.transition.TransitionValues android.transition.TransitionValuesMaps android.transition.Visibility$1 android.transition.Visibility$DisappearListener -android.transition.Visibility$VisibilityInfo-IA android.transition.Visibility$VisibilityInfo +android.transition.Visibility-IA android.transition.Visibility android.transition.VisibilityPropagation android.transparency.BinaryTransparencyManager @@ -8427,6 +8483,7 @@ android.util.FeatureFlagUtils android.util.FloatProperty android.util.Half android.util.IconDrawableFactory +android.util.IndentingPrintWriter android.util.IntArray android.util.IntProperty android.util.JsonReader$1 @@ -8490,6 +8547,7 @@ android.util.RecurrenceRule$NonrecurringIterator android.util.RecurrenceRule android.util.ReflectiveProperty android.util.RotationUtils +android.util.SequenceUtils android.util.Singleton android.util.Size android.util.SizeF$1 @@ -8590,9 +8648,7 @@ android.view.Choreographer$1 android.view.Choreographer$2 android.view.Choreographer$3 android.view.Choreographer$4 -android.view.Choreographer$CallbackQueue-IA android.view.Choreographer$CallbackQueue -android.view.Choreographer$CallbackRecord-IA android.view.Choreographer$CallbackRecord android.view.Choreographer$FrameCallback android.view.Choreographer$FrameData @@ -8611,21 +8667,19 @@ android.view.CrossWindowBlurListeners android.view.CutoutSpecification$Parser android.view.CutoutSpecification android.view.Display$HdrCapabilities$1 -android.view.Display$HdrCapabilities-IA android.view.Display$HdrCapabilities android.view.Display$HdrSdrRatioListenerWrapper android.view.Display$Mode$1 -android.view.Display$Mode-IA android.view.Display$Mode +android.view.Display-IA android.view.Display android.view.DisplayAddress$Network$1 android.view.DisplayAddress$Network android.view.DisplayAddress$Physical$1 -android.view.DisplayAddress$Physical-IA android.view.DisplayAddress$Physical +android.view.DisplayAddress-IA android.view.DisplayAddress android.view.DisplayAdjustments -android.view.DisplayCutout$Bounds-IA android.view.DisplayCutout$Bounds android.view.DisplayCutout$CutoutPathParserInfo android.view.DisplayCutout$ParcelableWrapper$1 @@ -8670,8 +8724,8 @@ android.view.HandlerActionQueue$HandlerAction android.view.HandlerActionQueue android.view.HandwritingInitiator$HandwritableViewInfo android.view.HandwritingInitiator$HandwritingAreaTracker -android.view.HandwritingInitiator$State-IA android.view.HandwritingInitiator$State +android.view.HandwritingInitiator-IA android.view.HandwritingInitiator android.view.HapticScrollFeedbackProvider android.view.IAppTransitionAnimationSpecsFuture$Stub$Proxy @@ -8706,12 +8760,6 @@ android.view.IOnKeyguardExitResult$Stub android.view.IOnKeyguardExitResult android.view.IPinnedTaskListener$Stub android.view.IPinnedTaskListener -android.view.IRecentsAnimationController$Stub$Proxy -android.view.IRecentsAnimationController$Stub -android.view.IRecentsAnimationController -android.view.IRecentsAnimationRunner$Stub$Proxy -android.view.IRecentsAnimationRunner$Stub -android.view.IRecentsAnimationRunner android.view.IRemoteAnimationFinishedCallback$Stub$Proxy android.view.IRemoteAnimationFinishedCallback$Stub android.view.IRemoteAnimationFinishedCallback @@ -8763,7 +8811,6 @@ android.view.InputApplicationHandle android.view.InputChannel$1 android.view.InputChannel android.view.InputDevice$1 -android.view.InputDevice$MotionRange-IA android.view.InputDevice$MotionRange android.view.InputDevice$ViewBehavior android.view.InputDevice-IA @@ -8785,10 +8832,14 @@ android.view.InputWindowHandle android.view.InsetsAnimationControlCallbacks android.view.InsetsAnimationControlImpl$$ExternalSyntheticLambda0 android.view.InsetsAnimationControlImpl +android.view.InsetsAnimationControlRunner$SurfaceParamsApplier$$ExternalSyntheticLambda0 +android.view.InsetsAnimationControlRunner$SurfaceParamsApplier android.view.InsetsAnimationControlRunner +android.view.InsetsAnimationSpec android.view.InsetsAnimationThread android.view.InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda0 android.view.InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda1 +android.view.InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda2 android.view.InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda0 android.view.InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda1 android.view.InsetsAnimationThreadControlRunner$1 @@ -8796,7 +8847,6 @@ android.view.InsetsAnimationThreadControlRunner android.view.InsetsController$$ExternalSyntheticLambda0 android.view.InsetsController$$ExternalSyntheticLambda10 android.view.InsetsController$$ExternalSyntheticLambda11 -android.view.InsetsController$$ExternalSyntheticLambda12 android.view.InsetsController$$ExternalSyntheticLambda1 android.view.InsetsController$$ExternalSyntheticLambda2 android.view.InsetsController$$ExternalSyntheticLambda3 @@ -8911,10 +8961,10 @@ android.view.SearchEvent android.view.SoundEffectConstants android.view.SubMenu android.view.Surface$1 -android.view.Surface$CompatibleCanvas-IA android.view.Surface$CompatibleCanvas android.view.Surface$HwuiContext android.view.Surface$OutOfResourcesException +android.view.Surface-IA android.view.Surface android.view.SurfaceControl$1 android.view.SurfaceControl$Builder @@ -8931,6 +8981,7 @@ android.view.SurfaceControl$RefreshRateRange$1 android.view.SurfaceControl$RefreshRateRange android.view.SurfaceControl$RefreshRateRanges android.view.SurfaceControl$StaticDisplayInfo +android.view.SurfaceControl$Transaction$$ExternalSyntheticLambda1 android.view.SurfaceControl$Transaction$1 android.view.SurfaceControl$Transaction$2 android.view.SurfaceControl$Transaction @@ -8941,9 +8992,7 @@ android.view.SurfaceControl$TrustedPresentationThresholds android.view.SurfaceControl-IA android.view.SurfaceControl android.view.SurfaceControlHdrLayerInfoListener -android.view.SurfaceControlRegistry$DefaultReporter-IA android.view.SurfaceControlRegistry$DefaultReporter -android.view.SurfaceControlRegistry$NoOpRegistry-IA android.view.SurfaceControlRegistry$NoOpRegistry android.view.SurfaceControlRegistry$Reporter android.view.SurfaceControlRegistry-IA @@ -8961,14 +9010,14 @@ android.view.SurfaceView$$ExternalSyntheticLambda3 android.view.SurfaceView$$ExternalSyntheticLambda4 android.view.SurfaceView$$ExternalSyntheticLambda5 android.view.SurfaceView$1 -android.view.SurfaceView$2 +android.view.SurfaceView$SurfaceControlViewHostParent android.view.SurfaceView$SurfaceViewPositionUpdateListener -android.view.SurfaceView$SyncBufferTransactionCallback-IA android.view.SurfaceView$SyncBufferTransactionCallback +android.view.SurfaceView-IA android.view.SurfaceView android.view.SyncRtSurfaceTransactionApplier$SurfaceParams$Builder -android.view.SyncRtSurfaceTransactionApplier$SurfaceParams-IA android.view.SyncRtSurfaceTransactionApplier$SurfaceParams +android.view.SyncRtSurfaceTransactionApplier-IA android.view.SyncRtSurfaceTransactionApplier android.view.TextureView$$ExternalSyntheticLambda0 android.view.TextureView$$ExternalSyntheticLambda1 @@ -8977,8 +9026,8 @@ android.view.TextureView android.view.ThreadedRenderer$1$$ExternalSyntheticLambda0 android.view.ThreadedRenderer$1 android.view.ThreadedRenderer$DrawCallbacks -android.view.ThreadedRenderer$WebViewOverlayProvider-IA android.view.ThreadedRenderer$WebViewOverlayProvider +android.view.ThreadedRenderer-IA android.view.ThreadedRenderer android.view.TouchDelegate android.view.TunnelModeEnabledListener @@ -9021,13 +9070,10 @@ android.view.View$AttachInfo$InvalidateInfo android.view.View$AttachInfo android.view.View$BaseSavedState$1 android.view.View$BaseSavedState -android.view.View$CheckForLongPress-IA android.view.View$CheckForLongPress -android.view.View$CheckForTap-IA android.view.View$CheckForTap android.view.View$DeclaredOnClickListener android.view.View$DragShadowBuilder -android.view.View$ForegroundInfo-IA android.view.View$ForegroundInfo android.view.View$ListenerInfo android.view.View$MatchIdPredicate @@ -9047,19 +9093,16 @@ android.view.View$OnLongClickListener android.view.View$OnScrollChangeListener android.view.View$OnSystemUiVisibilityChangeListener android.view.View$OnTouchListener -android.view.View$PerformClick-IA android.view.View$PerformClick android.view.View$ScrollabilityCache android.view.View$SendAccessibilityEventThrottle android.view.View$SendViewScrolledAccessibilityEvent android.view.View$TintInfo -android.view.View$TooltipInfo-IA android.view.View$TooltipInfo android.view.View$TransformationInfo -android.view.View$UnsetPressedState-IA android.view.View$UnsetPressedState -android.view.View$VisibilityChangeForAutofillHandler-IA android.view.View$VisibilityChangeForAutofillHandler +android.view.View-IA android.view.View android.view.ViewAnimationHostBridge android.view.ViewAnimationUtils @@ -9097,10 +9140,10 @@ android.view.ViewParent android.view.ViewPropertyAnimator$1 android.view.ViewPropertyAnimator$2 android.view.ViewPropertyAnimator$3 -android.view.ViewPropertyAnimator$AnimatorEventListener-IA android.view.ViewPropertyAnimator$AnimatorEventListener android.view.ViewPropertyAnimator$NameValuesHolder android.view.ViewPropertyAnimator$PropertyBundle +android.view.ViewPropertyAnimator-IA android.view.ViewPropertyAnimator android.view.ViewRootImpl$$ExternalSyntheticLambda0 android.view.ViewRootImpl$$ExternalSyntheticLambda10 @@ -9121,6 +9164,8 @@ android.view.ViewRootImpl$$ExternalSyntheticLambda6 android.view.ViewRootImpl$$ExternalSyntheticLambda7 android.view.ViewRootImpl$$ExternalSyntheticLambda8 android.view.ViewRootImpl$$ExternalSyntheticLambda9 +android.view.ViewRootImpl$10 +android.view.ViewRootImpl$11 android.view.ViewRootImpl$1 android.view.ViewRootImpl$2 android.view.ViewRootImpl$3 @@ -9147,7 +9192,6 @@ android.view.ViewRootImpl$InputStage android.view.ViewRootImpl$InvalidateOnAnimationRunnable android.view.ViewRootImpl$NativePostImeInputStage android.view.ViewRootImpl$NativePreImeInputStage -android.view.ViewRootImpl$QueuedInputEvent-IA android.view.ViewRootImpl$QueuedInputEvent android.view.ViewRootImpl$SendWindowContentChangedAccessibilityEvent android.view.ViewRootImpl$SurfaceChangedCallback @@ -9162,12 +9206,12 @@ android.view.ViewRootImpl$SystemUiVisibilityInfo android.view.ViewRootImpl$TakenSurfaceHolder android.view.ViewRootImpl$TrackballAxis android.view.ViewRootImpl$TraversalRunnable -android.view.ViewRootImpl$UnhandledKeyManager-IA android.view.ViewRootImpl$UnhandledKeyManager android.view.ViewRootImpl$ViewPostImeInputStage android.view.ViewRootImpl$ViewPreImeInputStage android.view.ViewRootImpl$ViewRootHandler android.view.ViewRootImpl$WindowInputEventReceiver +android.view.ViewRootImpl-IA android.view.ViewRootImpl android.view.ViewRootInsetsControllerHost android.view.ViewRootRectTracker$ViewInfo @@ -9231,12 +9275,13 @@ android.view.WindowManager android.view.WindowManagerGlobal$$ExternalSyntheticLambda0 android.view.WindowManagerGlobal$1 android.view.WindowManagerGlobal$2 -android.view.WindowManagerGlobal$TrustedPresentationListener-IA android.view.WindowManagerGlobal$TrustedPresentationListener +android.view.WindowManagerGlobal-IA android.view.WindowManagerGlobal android.view.WindowManagerPolicyConstants$PointerEventListener android.view.WindowManagerPolicyConstants android.view.WindowMetrics +android.view.WindowRelayoutResult android.view.WindowlessWindowLayout android.view.WindowlessWindowManager android.view.accessibility.AccessibilityCache$AccessibilityNodeRefresher @@ -9253,10 +9298,9 @@ android.view.accessibility.AccessibilityManager$1 android.view.accessibility.AccessibilityManager$AccessibilityPolicy android.view.accessibility.AccessibilityManager$AccessibilityServicesStateChangeListener android.view.accessibility.AccessibilityManager$AccessibilityStateChangeListener -android.view.accessibility.AccessibilityManager$HighTextContrastChangeListener -android.view.accessibility.AccessibilityManager$MyCallback-IA android.view.accessibility.AccessibilityManager$MyCallback android.view.accessibility.AccessibilityManager$TouchExplorationStateChangeListener +android.view.accessibility.AccessibilityManager-IA android.view.accessibility.AccessibilityManager android.view.accessibility.AccessibilityNodeIdManager android.view.accessibility.AccessibilityNodeInfo$1 @@ -9310,11 +9354,12 @@ android.view.animation.Animation$NoImagePreloadHolder android.view.animation.Animation android.view.animation.AnimationSet android.view.animation.AnimationUtils$1 -android.view.animation.AnimationUtils$AnimationState-IA android.view.animation.AnimationUtils$AnimationState +android.view.animation.AnimationUtils-IA android.view.animation.AnimationUtils android.view.animation.AnticipateInterpolator android.view.animation.AnticipateOvershootInterpolator +android.view.animation.BackGestureInterpolator android.view.animation.BaseInterpolator android.view.animation.BounceInterpolator android.view.animation.ClipRectAnimation @@ -9343,7 +9388,6 @@ android.view.autofill.AutofillManager$$ExternalSyntheticLambda1 android.view.autofill.AutofillManager$$ExternalSyntheticLambda2 android.view.autofill.AutofillManager$$ExternalSyntheticLambda3 android.view.autofill.AutofillManager$$ExternalSyntheticLambda4 -android.view.autofill.AutofillManager$AugmentedAutofillManagerClient-IA android.view.autofill.AutofillManager$AugmentedAutofillManagerClient android.view.autofill.AutofillManager$AutofillCallback android.view.autofill.AutofillManager$AutofillClient @@ -9354,13 +9398,15 @@ android.view.autofill.AutofillManager$AutofillManagerClient$$ExternalSyntheticLa android.view.autofill.AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda16 android.view.autofill.AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda18 android.view.autofill.AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda8 -android.view.autofill.AutofillManager$AutofillManagerClient-IA +android.view.autofill.AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda9 android.view.autofill.AutofillManager$AutofillManagerClient android.view.autofill.AutofillManager$CompatibilityBridge android.view.autofill.AutofillManager$TrackedViews +android.view.autofill.AutofillManager-IA android.view.autofill.AutofillManager android.view.autofill.AutofillManagerInternal android.view.autofill.AutofillPopupWindow +android.view.autofill.AutofillStateFingerprint android.view.autofill.AutofillValue$1 android.view.autofill.AutofillValue-IA android.view.autofill.AutofillValue @@ -9387,9 +9433,9 @@ android.view.contentcapture.ContentCaptureEvent$1 android.view.contentcapture.ContentCaptureEvent android.view.contentcapture.ContentCaptureHelper android.view.contentcapture.ContentCaptureManager$ContentCaptureClient -android.view.contentcapture.ContentCaptureManager$LocalDataShareAdapterResourceManager-IA android.view.contentcapture.ContentCaptureManager$LocalDataShareAdapterResourceManager android.view.contentcapture.ContentCaptureManager$StrippedContext +android.view.contentcapture.ContentCaptureManager-IA android.view.contentcapture.ContentCaptureManager android.view.contentcapture.ContentCaptureSession android.view.contentcapture.ContentCaptureSessionId$1 @@ -9410,18 +9456,13 @@ android.view.contentcapture.IContentCaptureOptionsCallback android.view.contentcapture.IDataShareWriteAdapter$Stub android.view.contentcapture.IDataShareWriteAdapter android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda0 -android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda10 -android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda11 -android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda12 -android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda13 android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda1 android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda2 android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda3 android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda4 android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda5 android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda6 -android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda8 -android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda9 +android.view.contentcapture.MainContentCaptureSession$$ExternalSyntheticLambda7 android.view.contentcapture.MainContentCaptureSession$SessionStateReceiver$$ExternalSyntheticLambda0 android.view.contentcapture.MainContentCaptureSession$SessionStateReceiver$$ExternalSyntheticLambda1 android.view.contentcapture.MainContentCaptureSession$SessionStateReceiver @@ -9481,15 +9522,13 @@ android.view.inputmethod.ImeTracker$Debug$$ExternalSyntheticLambda0 android.view.inputmethod.ImeTracker$Debug$$ExternalSyntheticLambda1 android.view.inputmethod.ImeTracker$Debug$$ExternalSyntheticLambda2 android.view.inputmethod.ImeTracker$Debug -android.view.inputmethod.ImeTracker$ImeJankTracker-IA android.view.inputmethod.ImeTracker$ImeJankTracker -android.view.inputmethod.ImeTracker$ImeLatencyTracker-IA android.view.inputmethod.ImeTracker$ImeLatencyTracker android.view.inputmethod.ImeTracker$InputMethodJankContext android.view.inputmethod.ImeTracker$InputMethodLatencyContext android.view.inputmethod.ImeTracker$Token$1 -android.view.inputmethod.ImeTracker$Token-IA android.view.inputmethod.ImeTracker$Token +android.view.inputmethod.ImeTracker-IA android.view.inputmethod.ImeTracker android.view.inputmethod.InlineSuggestionsRequest$1 android.view.inputmethod.InlineSuggestionsRequest @@ -9515,16 +9554,15 @@ android.view.inputmethod.InputMethodManager$1 android.view.inputmethod.InputMethodManager$2 android.view.inputmethod.InputMethodManager$6 android.view.inputmethod.InputMethodManager$BindState -android.view.inputmethod.InputMethodManager$DelegateImpl-IA android.view.inputmethod.InputMethodManager$DelegateImpl android.view.inputmethod.InputMethodManager$FinishedInputEventCallback android.view.inputmethod.InputMethodManager$H$$ExternalSyntheticLambda0 android.view.inputmethod.InputMethodManager$H$$ExternalSyntheticLambda1 android.view.inputmethod.InputMethodManager$H android.view.inputmethod.InputMethodManager$ImeInputEventSender -android.view.inputmethod.InputMethodManager$PendingEvent-IA android.view.inputmethod.InputMethodManager$PendingEvent android.view.inputmethod.InputMethodManager$ReportInputConnectionOpenedRunner +android.view.inputmethod.InputMethodManager-IA android.view.inputmethod.InputMethodManager android.view.inputmethod.InputMethodManagerGlobal android.view.inputmethod.InputMethodSession$EventCallback @@ -9585,7 +9623,6 @@ android.view.textclassifier.ConversationAction android.view.textclassifier.ConversationActions$1 android.view.textclassifier.ConversationActions$Message$1 android.view.textclassifier.ConversationActions$Message$Builder -android.view.textclassifier.ConversationActions$Message-IA android.view.textclassifier.ConversationActions$Message android.view.textclassifier.ConversationActions$Request$1 android.view.textclassifier.ConversationActions$Request$Builder @@ -9603,8 +9640,8 @@ android.view.textclassifier.SelectionEvent android.view.textclassifier.SelectionSessionLogger$SignatureParser android.view.textclassifier.SelectionSessionLogger android.view.textclassifier.SystemTextClassifier$BlockingCallback -android.view.textclassifier.SystemTextClassifier$ResponseReceiver-IA android.view.textclassifier.SystemTextClassifier$ResponseReceiver +android.view.textclassifier.SystemTextClassifier-IA android.view.textclassifier.SystemTextClassifier android.view.textclassifier.SystemTextClassifierMetadata$1 android.view.textclassifier.SystemTextClassifierMetadata @@ -9632,23 +9669,19 @@ android.view.textclassifier.TextClassificationSessionId android.view.textclassifier.TextClassifier$1 android.view.textclassifier.TextClassifier$EntityConfig$1 android.view.textclassifier.TextClassifier$EntityConfig$Builder -android.view.textclassifier.TextClassifier$EntityConfig-IA android.view.textclassifier.TextClassifier$EntityConfig android.view.textclassifier.TextClassifier$Utils +android.view.textclassifier.TextClassifier-IA android.view.textclassifier.TextClassifier android.view.textclassifier.TextClassifierEvent$1 android.view.textclassifier.TextClassifierEvent$Builder android.view.textclassifier.TextClassifierEvent$ConversationActionsEvent$1 -android.view.textclassifier.TextClassifierEvent$ConversationActionsEvent-IA android.view.textclassifier.TextClassifierEvent$ConversationActionsEvent android.view.textclassifier.TextClassifierEvent$LanguageDetectionEvent$1 -android.view.textclassifier.TextClassifierEvent$LanguageDetectionEvent-IA android.view.textclassifier.TextClassifierEvent$LanguageDetectionEvent android.view.textclassifier.TextClassifierEvent$TextLinkifyEvent$1 -android.view.textclassifier.TextClassifierEvent$TextLinkifyEvent-IA android.view.textclassifier.TextClassifierEvent$TextLinkifyEvent android.view.textclassifier.TextClassifierEvent$TextSelectionEvent$1 -android.view.textclassifier.TextClassifierEvent$TextSelectionEvent-IA android.view.textclassifier.TextClassifierEvent$TextSelectionEvent android.view.textclassifier.TextClassifierEvent-IA android.view.textclassifier.TextClassifierEvent @@ -9681,7 +9714,6 @@ android.view.textservice.SpellCheckerSession$SpellCheckerSessionListenerImpl$1 android.view.textservice.SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams android.view.textservice.SpellCheckerSession$SpellCheckerSessionListenerImpl android.view.textservice.SpellCheckerSession$SpellCheckerSessionParams$Builder -android.view.textservice.SpellCheckerSession$SpellCheckerSessionParams-IA android.view.textservice.SpellCheckerSession$SpellCheckerSessionParams android.view.textservice.SpellCheckerSession android.view.textservice.SpellCheckerSubtype$1 @@ -9787,12 +9819,9 @@ android.widget.AbsListView$3 android.widget.AbsListView$4 android.widget.AbsListView$AbsPositionScroller android.widget.AbsListView$AdapterDataSetObserver -android.widget.AbsListView$CheckForKeyLongPress-IA android.widget.AbsListView$CheckForKeyLongPress android.widget.AbsListView$CheckForLongPress -android.widget.AbsListView$CheckForTap-IA android.widget.AbsListView$CheckForTap -android.widget.AbsListView$DeviceConfigChangeListener-IA android.widget.AbsListView$DeviceConfigChangeListener android.widget.AbsListView$FlingRunnable$1 android.widget.AbsListView$FlingRunnable @@ -9802,7 +9831,6 @@ android.widget.AbsListView$ListItemAccessibilityDelegate android.widget.AbsListView$MultiChoiceModeListener android.widget.AbsListView$MultiChoiceModeWrapper android.widget.AbsListView$OnScrollListener -android.widget.AbsListView$PerformClick-IA android.widget.AbsListView$PerformClick android.widget.AbsListView$PositionScroller android.widget.AbsListView$RecycleBin @@ -9810,8 +9838,8 @@ android.widget.AbsListView$RecyclerListener android.widget.AbsListView$SavedState$1 android.widget.AbsListView$SavedState android.widget.AbsListView$SelectionBoundsAdjuster -android.widget.AbsListView$WindowRunnnable-IA android.widget.AbsListView$WindowRunnnable +android.widget.AbsListView-IA android.widget.AbsListView android.widget.AbsSeekBar android.widget.AbsSpinner$RecycleBin @@ -9847,13 +9875,11 @@ android.widget.AdapterView android.widget.ArrayAdapter android.widget.AutoCompleteTextView$$ExternalSyntheticLambda0 android.widget.AutoCompleteTextView$$ExternalSyntheticLambda1 -android.widget.AutoCompleteTextView$DropDownItemClickListener-IA android.widget.AutoCompleteTextView$DropDownItemClickListener -android.widget.AutoCompleteTextView$MyWatcher-IA android.widget.AutoCompleteTextView$MyWatcher -android.widget.AutoCompleteTextView$PassThroughClickListener-IA android.widget.AutoCompleteTextView$PassThroughClickListener android.widget.AutoCompleteTextView$Validator +android.widget.AutoCompleteTextView-IA android.widget.AutoCompleteTextView android.widget.BaseAdapter android.widget.Button @@ -9881,21 +9907,16 @@ android.widget.Editor$1 android.widget.Editor$2 android.widget.Editor$3 android.widget.Editor$5 -android.widget.Editor$AccessibilitySmartActions-IA android.widget.Editor$AccessibilitySmartActions -android.widget.Editor$Blink-IA android.widget.Editor$Blink android.widget.Editor$CorrectionHighlighter -android.widget.Editor$CursorAnchorInfoNotifier-IA android.widget.Editor$CursorAnchorInfoNotifier android.widget.Editor$CursorController android.widget.Editor$EasyEditDeleteListener -android.widget.Editor$EasyEditPopupWindow-IA android.widget.Editor$EasyEditPopupWindow android.widget.Editor$EditOperation$1 android.widget.Editor$EditOperation android.widget.Editor$ErrorPopup -android.widget.Editor$HandleView-IA android.widget.Editor$HandleView android.widget.Editor$InputContentType android.widget.Editor$InputMethodState @@ -9906,24 +9927,20 @@ android.widget.Editor$InsertionPointCursorController$1 android.widget.Editor$InsertionPointCursorController android.widget.Editor$MagnifierMotionAnimator android.widget.Editor$PinnedPopupWindow -android.widget.Editor$PositionListener-IA android.widget.Editor$PositionListener -android.widget.Editor$ProcessTextIntentActionsHandler-IA android.widget.Editor$ProcessTextIntentActionsHandler android.widget.Editor$SelectionHandleView android.widget.Editor$SelectionModifierCursorController android.widget.Editor$SpanController$1 android.widget.Editor$SpanController$2 -android.widget.Editor$SpanController-IA android.widget.Editor$SpanController -android.widget.Editor$SuggestionHelper$SuggestionSpanComparator-IA android.widget.Editor$SuggestionHelper$SuggestionSpanComparator -android.widget.Editor$SuggestionHelper-IA android.widget.Editor$SuggestionHelper android.widget.Editor$SuggestionsPopupWindow android.widget.Editor$TextRenderNode android.widget.Editor$TextViewPositionListener android.widget.Editor$UndoInputFilter +android.widget.Editor-IA android.widget.Editor android.widget.EditorTouchState android.widget.FastScroller$1 @@ -9938,8 +9955,8 @@ android.widget.Filter$FilterListener android.widget.Filter$FilterResults android.widget.Filter$RequestArguments android.widget.Filter$RequestHandler -android.widget.Filter$ResultsHandler-IA android.widget.Filter$ResultsHandler +android.widget.Filter-IA android.widget.Filter android.widget.Filterable android.widget.ForwardingListener @@ -9958,15 +9975,14 @@ android.widget.GridLayout$Alignment android.widget.GridLayout$Arc android.widget.GridLayout$Assoc android.widget.GridLayout$Axis$1 -android.widget.GridLayout$Axis-IA android.widget.GridLayout$Axis android.widget.GridLayout$Bounds android.widget.GridLayout$Interval android.widget.GridLayout$LayoutParams android.widget.GridLayout$MutableInt -android.widget.GridLayout$PackedMap-IA android.widget.GridLayout$PackedMap android.widget.GridLayout$Spec +android.widget.GridLayout-IA android.widget.GridLayout android.widget.HeaderViewListAdapter android.widget.HorizontalScrollView$SavedState$1 @@ -9979,22 +9995,17 @@ android.widget.ImageView android.widget.LinearLayout$LayoutParams android.widget.LinearLayout android.widget.ListAdapter -android.widget.ListPopupWindow$ListSelectorHider-IA android.widget.ListPopupWindow$ListSelectorHider -android.widget.ListPopupWindow$PopupDataSetObserver-IA android.widget.ListPopupWindow$PopupDataSetObserver -android.widget.ListPopupWindow$PopupScrollListener-IA android.widget.ListPopupWindow$PopupScrollListener -android.widget.ListPopupWindow$PopupTouchInterceptor-IA android.widget.ListPopupWindow$PopupTouchInterceptor -android.widget.ListPopupWindow$ResizePopupRunnable-IA android.widget.ListPopupWindow$ResizePopupRunnable +android.widget.ListPopupWindow-IA android.widget.ListPopupWindow -android.widget.ListView$ArrowScrollFocusResult-IA android.widget.ListView$ArrowScrollFocusResult android.widget.ListView$FixedViewInfo -android.widget.ListView$FocusSelector-IA android.widget.ListView$FocusSelector +android.widget.ListView-IA android.widget.ListView android.widget.Magnifier$Builder android.widget.Magnifier$InternalPopupWindow @@ -10025,14 +10036,12 @@ android.widget.PopupWindow$PopupDecorView android.widget.PopupWindow android.widget.ProgressBar$1 android.widget.ProgressBar$2 -android.widget.ProgressBar$ProgressTintInfo-IA android.widget.ProgressBar$ProgressTintInfo android.widget.ProgressBar$RefreshData -android.widget.ProgressBar$RefreshProgressRunnable-IA android.widget.ProgressBar$RefreshProgressRunnable android.widget.ProgressBar$SavedState$1 -android.widget.ProgressBar$SavedState-IA android.widget.ProgressBar$SavedState +android.widget.ProgressBar-IA android.widget.ProgressBar android.widget.QuickContactBadge android.widget.RadioButton @@ -10040,19 +10049,21 @@ android.widget.RadioGroup$OnCheckedChangeListener android.widget.RadioGroup android.widget.RatingBar android.widget.RelativeLayout$DependencyGraph$Node -android.widget.RelativeLayout$DependencyGraph-IA android.widget.RelativeLayout$DependencyGraph android.widget.RelativeLayout$LayoutParams android.widget.RelativeLayout$TopToBottomLeftToRightComparator +android.widget.RelativeLayout-IA android.widget.RelativeLayout android.widget.RemoteViews$$ExternalSyntheticLambda0 android.widget.RemoteViews$$ExternalSyntheticLambda1 android.widget.RemoteViews$$ExternalSyntheticLambda2 +android.widget.RemoteViews$$ExternalSyntheticLambda4 +android.widget.RemoteViews$$ExternalSyntheticLambda5 android.widget.RemoteViews$1 android.widget.RemoteViews$2 -android.widget.RemoteViews$Action-IA android.widget.RemoteViews$Action android.widget.RemoteViews$ActionException +android.widget.RemoteViews$ApplicationInfoCache$$ExternalSyntheticLambda0 android.widget.RemoteViews$ApplicationInfoCache android.widget.RemoteViews$AsyncApplyTask android.widget.RemoteViews$AttributeReflectionAction @@ -10068,6 +10079,7 @@ android.widget.RemoteViews$MethodArgs android.widget.RemoteViews$MethodKey android.widget.RemoteViews$NightModeReflectionAction android.widget.RemoteViews$OnViewAppliedListener +android.widget.RemoteViews$PendingResources android.widget.RemoteViews$ReflectionAction android.widget.RemoteViews$RemoteCollectionCache android.widget.RemoteViews$RemoteCollectionItems$1 @@ -10103,6 +10115,7 @@ android.widget.RemoteViews$ViewGroupActionRemove$1 android.widget.RemoteViews$ViewGroupActionRemove android.widget.RemoteViews$ViewPaddingAction android.widget.RemoteViews$ViewTree +android.widget.RemoteViews-IA android.widget.RemoteViews android.widget.RemoteViewsAdapter$AsyncRemoteAdapterAction android.widget.RemoteViewsAdapter$RemoteAdapterConnectionCallback @@ -10126,10 +10139,10 @@ android.widget.SelectionActionModeHelper$$ExternalSyntheticLambda2 android.widget.SelectionActionModeHelper$$ExternalSyntheticLambda3 android.widget.SelectionActionModeHelper$$ExternalSyntheticLambda8 android.widget.SelectionActionModeHelper$SelectionMetricsLogger -android.widget.SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable-IA android.widget.SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable android.widget.SelectionActionModeHelper$SelectionTracker android.widget.SelectionActionModeHelper$TextClassificationHelper +android.widget.SelectionActionModeHelper-IA android.widget.SelectionActionModeHelper android.widget.SmartSelectSprite$$ExternalSyntheticLambda0 android.widget.SmartSelectSprite$$ExternalSyntheticLambda1 @@ -10140,11 +10153,10 @@ android.widget.Space android.widget.SpellChecker$1 android.widget.SpellChecker$RemoveReason android.widget.SpellChecker$SentenceIteratorWrapper -android.widget.SpellChecker$SpellParser-IA android.widget.SpellChecker$SpellParser +android.widget.SpellChecker-IA android.widget.SpellChecker android.widget.Spinner$1 -android.widget.Spinner$DialogPopup-IA android.widget.Spinner$DialogPopup android.widget.Spinner$DropDownAdapter android.widget.Spinner$DropdownPopup$1 @@ -10152,6 +10164,7 @@ android.widget.Spinner$DropdownPopup android.widget.Spinner$SavedState$1 android.widget.Spinner$SavedState android.widget.Spinner$SpinnerPopup +android.widget.Spinner-IA android.widget.Spinner android.widget.SpinnerAdapter android.widget.Switch$1 @@ -10176,7 +10189,6 @@ android.widget.TextView$2 android.widget.TextView$3 android.widget.TextView$4 android.widget.TextView$BufferType -android.widget.TextView$ChangeWatcher-IA android.widget.TextView$ChangeWatcher android.widget.TextView$CharWrapper android.widget.TextView$Drawables @@ -10186,23 +10198,22 @@ android.widget.TextView$Marquee$3 android.widget.TextView$Marquee android.widget.TextView$OnEditorActionListener android.widget.TextView$SavedState$1 -android.widget.TextView$SavedState-IA android.widget.TextView$SavedState -android.widget.TextView$TextAppearanceAttributes-IA android.widget.TextView$TextAppearanceAttributes +android.widget.TextView-IA android.widget.TextView -android.widget.TextViewOnReceiveContentListener$InputConnectionInfo-IA android.widget.TextViewOnReceiveContentListener$InputConnectionInfo +android.widget.TextViewOnReceiveContentListener-IA android.widget.TextViewOnReceiveContentListener android.widget.TextViewTranslationCallback android.widget.ThemedSpinnerAdapter android.widget.Toast$Callback android.widget.Toast$CallbackBinder$$ExternalSyntheticLambda0 android.widget.Toast$CallbackBinder$$ExternalSyntheticLambda1 -android.widget.Toast$CallbackBinder-IA android.widget.Toast$CallbackBinder android.widget.Toast$TN$1 android.widget.Toast$TN +android.widget.Toast-IA android.widget.Toast android.widget.ToastPresenter android.widget.ToggleButton @@ -10219,6 +10230,8 @@ android.widget.ViewFlipper$1 android.widget.ViewFlipper android.widget.ViewSwitcher android.widget.WrapperListAdapter +android.widget.flags.FeatureFlags +android.widget.flags.FeatureFlagsImpl android.widget.flags.Flags android.widget.inline.InlinePresentationSpec$1 android.widget.inline.InlinePresentationSpec$BaseBuilder @@ -10234,6 +10247,7 @@ android.window.BackMotionEvent android.window.BackNavigationInfo$1 android.window.BackNavigationInfo android.window.BackProgressAnimator$$ExternalSyntheticLambda0 +android.window.BackProgressAnimator$$ExternalSyntheticLambda1 android.window.BackProgressAnimator$1 android.window.BackProgressAnimator$ProgressCallback android.window.BackProgressAnimator @@ -10290,7 +10304,6 @@ android.window.IWindowContainerTransactionCallback android.window.IWindowOrganizerController$Stub$Proxy android.window.IWindowOrganizerController$Stub android.window.IWindowOrganizerController -android.window.ImeOnBackInvokedDispatcher$$ExternalSyntheticLambda0 android.window.ImeOnBackInvokedDispatcher$1 android.window.ImeOnBackInvokedDispatcher$2 android.window.ImeOnBackInvokedDispatcher$DefaultImeOnBackAnimationCallback @@ -10336,9 +10349,9 @@ android.window.SurfaceSyncGroup$$ExternalSyntheticLambda5 android.window.SurfaceSyncGroup$$ExternalSyntheticLambda6 android.window.SurfaceSyncGroup$1 android.window.SurfaceSyncGroup$2 -android.window.SurfaceSyncGroup$ISurfaceSyncGroupImpl-IA android.window.SurfaceSyncGroup$ISurfaceSyncGroupImpl android.window.SurfaceSyncGroup$SurfaceViewFrameCallback +android.window.SurfaceSyncGroup-IA android.window.SurfaceSyncGroup android.window.TaskAppearedInfo$1 android.window.TaskAppearedInfo @@ -10378,13 +10391,15 @@ android.window.WindowInfosListener android.window.WindowMetricsController$$ExternalSyntheticLambda0 android.window.WindowMetricsController android.window.WindowOnBackInvokedDispatcher$$ExternalSyntheticLambda0 +android.window.WindowOnBackInvokedDispatcher$$ExternalSyntheticLambda1 +android.window.WindowOnBackInvokedDispatcher$$ExternalSyntheticLambda2 android.window.WindowOnBackInvokedDispatcher$Checker android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda0 android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda1 android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda2 android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda3 android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda4 -android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$CallbackRef +android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda5 android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper android.window.WindowOnBackInvokedDispatcher android.window.WindowOrganizer$1 @@ -10396,6 +10411,9 @@ android.window.WindowTokenClientController com.android.apex.ApexInfo com.android.apex.ApexInfoList com.android.apex.XmlParser +com.android.art.flags.FeatureFlags +com.android.art.flags.FeatureFlagsImpl +com.android.art.flags.Flags com.android.cellbroadcastservice.CellBroadcastStatsLog com.android.framework.protobuf.AbstractMessageLite$Builder com.android.framework.protobuf.AbstractMessageLite @@ -10468,9 +10486,15 @@ com.android.framework.protobuf.nano.InternalNano com.android.framework.protobuf.nano.InvalidProtocolBufferNanoException com.android.framework.protobuf.nano.MessageNano com.android.framework.protobuf.nano.WireFormatNano +com.android.graphics.flags.FeatureFlags +com.android.graphics.flags.FeatureFlagsImpl +com.android.graphics.flags.Flags com.android.graphics.hwui.flags.FeatureFlags com.android.graphics.hwui.flags.FeatureFlagsImpl com.android.graphics.hwui.flags.Flags +com.android.graphics.surfaceflinger.flags.FeatureFlags +com.android.graphics.surfaceflinger.flags.FeatureFlagsImpl +com.android.graphics.surfaceflinger.flags.Flags com.android.i18n.phonenumbers.AlternateFormatsCountryCodeSet com.android.i18n.phonenumbers.AsYouTypeFormatter com.android.i18n.phonenumbers.CountryCodeToRegionCodeMap @@ -10606,6 +10630,7 @@ com.android.icu.util.ExtendedCalendar com.android.icu.util.ExtendedTimeZone com.android.icu.util.Icu4cMetadata com.android.icu.util.LocaleNative +com.android.icu.util.UResourceBundleNative com.android.icu.util.regex.MatcherNative com.android.icu.util.regex.PatternNative com.android.ims.FeatureConnection$$ExternalSyntheticLambda0 @@ -10659,6 +10684,7 @@ com.android.ims.ImsManager$$ExternalSyntheticLambda2 com.android.ims.ImsManager$$ExternalSyntheticLambda3 com.android.ims.ImsManager$$ExternalSyntheticLambda4 com.android.ims.ImsManager$$ExternalSyntheticLambda5 +com.android.ims.ImsManager$$ExternalSyntheticLambda6 com.android.ims.ImsManager$$ExternalSyntheticLambda7 com.android.ims.ImsManager$$ExternalSyntheticLambda8 com.android.ims.ImsManager$$ExternalSyntheticLambda9 @@ -10690,6 +10716,7 @@ com.android.ims.RcsFeatureConnection$RegistrationCallbackManager com.android.ims.RcsFeatureConnection com.android.ims.RcsFeatureManager$$ExternalSyntheticLambda0 com.android.ims.RcsFeatureManager$$ExternalSyntheticLambda1 +com.android.ims.RcsFeatureManager$$ExternalSyntheticLambda2 com.android.ims.RcsFeatureManager$1$$ExternalSyntheticLambda0 com.android.ims.RcsFeatureManager$1$$ExternalSyntheticLambda1 com.android.ims.RcsFeatureManager$1$$ExternalSyntheticLambda2 @@ -10735,6 +10762,7 @@ com.android.ims.internal.IImsRegistrationListener$Stub com.android.ims.internal.IImsRegistrationListener com.android.ims.internal.IImsServiceController$Stub com.android.ims.internal.IImsServiceController +com.android.ims.internal.IImsServiceFeatureCallback$Stub$Proxy com.android.ims.internal.IImsServiceFeatureCallback$Stub com.android.ims.internal.IImsServiceFeatureCallback com.android.ims.internal.IImsStreamMediaSession @@ -11013,7 +11041,6 @@ com.android.internal.app.AlertController$ButtonHandler com.android.internal.app.AlertController$RecycleListView com.android.internal.app.AlertController com.android.internal.app.AssistUtils -com.android.internal.app.IAppOpsActiveCallback$Stub$Proxy com.android.internal.app.IAppOpsActiveCallback$Stub com.android.internal.app.IAppOpsActiveCallback com.android.internal.app.IAppOpsAsyncNotedCallback$Stub @@ -11100,6 +11127,7 @@ com.android.internal.appwidget.IAppWidgetHost com.android.internal.appwidget.IAppWidgetService$Stub$Proxy com.android.internal.appwidget.IAppWidgetService$Stub com.android.internal.appwidget.IAppWidgetService +com.android.internal.backup.IBackupTransport$Stub$Proxy com.android.internal.backup.IBackupTransport$Stub com.android.internal.backup.IBackupTransport com.android.internal.colorextraction.ColorExtractor$GradientColors @@ -11177,6 +11205,7 @@ com.android.internal.dynamicanimation.animation.DynamicAnimation$8 com.android.internal.dynamicanimation.animation.DynamicAnimation$9 com.android.internal.dynamicanimation.animation.DynamicAnimation$MassState com.android.internal.dynamicanimation.animation.DynamicAnimation$OnAnimationEndListener +com.android.internal.dynamicanimation.animation.DynamicAnimation$OnAnimationUpdateListener com.android.internal.dynamicanimation.animation.DynamicAnimation$ViewProperty com.android.internal.dynamicanimation.animation.DynamicAnimation com.android.internal.dynamicanimation.animation.Force @@ -11196,13 +11225,29 @@ com.android.internal.graphics.drawable.BackgroundBlurDrawable$Aggregator com.android.internal.graphics.drawable.BackgroundBlurDrawable$BlurRegion com.android.internal.graphics.drawable.BackgroundBlurDrawable-IA com.android.internal.graphics.drawable.BackgroundBlurDrawable +com.android.internal.hidden_from_bootclasspath.android.app.appfunctions.flags.FeatureFlags +com.android.internal.hidden_from_bootclasspath.android.app.appfunctions.flags.FeatureFlagsImpl +com.android.internal.hidden_from_bootclasspath.android.app.appfunctions.flags.Flags +com.android.internal.hidden_from_bootclasspath.android.app.job.FeatureFlags +com.android.internal.hidden_from_bootclasspath.android.app.job.FeatureFlagsImpl com.android.internal.hidden_from_bootclasspath.android.app.job.Flags +com.android.internal.hidden_from_bootclasspath.android.content.pm.FeatureFlags +com.android.internal.hidden_from_bootclasspath.android.content.pm.FeatureFlagsImpl +com.android.internal.hidden_from_bootclasspath.android.content.pm.Flags com.android.internal.hidden_from_bootclasspath.android.os.FeatureFlags com.android.internal.hidden_from_bootclasspath.android.os.FeatureFlagsImpl com.android.internal.hidden_from_bootclasspath.android.os.Flags +com.android.internal.hidden_from_bootclasspath.android.permission.flags.FeatureFlags +com.android.internal.hidden_from_bootclasspath.android.permission.flags.FeatureFlagsImpl +com.android.internal.hidden_from_bootclasspath.android.permission.flags.Flags com.android.internal.hidden_from_bootclasspath.android.service.notification.FeatureFlags com.android.internal.hidden_from_bootclasspath.android.service.notification.FeatureFlagsImpl com.android.internal.hidden_from_bootclasspath.android.service.notification.Flags +com.android.internal.hidden_from_bootclasspath.com.android.libcore.Flags +com.android.internal.hidden_from_bootclasspath.com.android.server.power.optimization.Flags +com.android.internal.hidden_from_bootclasspath.com.android.window.flags.FeatureFlags +com.android.internal.hidden_from_bootclasspath.com.android.window.flags.FeatureFlagsImpl +com.android.internal.hidden_from_bootclasspath.com.android.window.flags.Flags com.android.internal.infra.AbstractMultiplePendingRequestsRemoteService com.android.internal.infra.AbstractRemoteService$AsyncRequest com.android.internal.infra.AbstractRemoteService$BasePendingRequest @@ -11252,6 +11297,7 @@ com.android.internal.inputmethod.IRemoteInputConnection$Stub com.android.internal.inputmethod.IRemoteInputConnection com.android.internal.inputmethod.ImeTracing com.android.internal.inputmethod.ImeTracingClientImpl +com.android.internal.inputmethod.ImeTracingPerfettoImpl com.android.internal.inputmethod.ImeTracingServerImpl com.android.internal.inputmethod.InputBindResult$1 com.android.internal.inputmethod.InputBindResult-IA @@ -11292,8 +11338,8 @@ com.android.internal.jank.InteractionJankMonitor$$ExternalSyntheticLambda9 com.android.internal.jank.InteractionJankMonitor$Configuration com.android.internal.jank.InteractionJankMonitor$RunningTracker com.android.internal.jank.InteractionJankMonitor$TimeFunction -com.android.internal.jank.InteractionJankMonitor$TrackerResult-IA com.android.internal.jank.InteractionJankMonitor$TrackerResult +com.android.internal.jank.InteractionJankMonitor-IA com.android.internal.listeners.ListenerExecutor$$ExternalSyntheticLambda0 com.android.internal.listeners.ListenerExecutor$FailureCallback com.android.internal.listeners.ListenerExecutor$ListenerOperation @@ -11355,8 +11401,8 @@ com.android.internal.os.BinderCallsStats$ExportedCallStat com.android.internal.os.BinderCallsStats$Injector com.android.internal.os.BinderCallsStats$OverflowBinder com.android.internal.os.BinderCallsStats$UidEntry -com.android.internal.os.BinderDeathDispatcher$RecipientsInfo-IA com.android.internal.os.BinderDeathDispatcher$RecipientsInfo +com.android.internal.os.BinderDeathDispatcher-IA com.android.internal.os.BinderDeathDispatcher com.android.internal.os.BinderInternal$BinderProxyCountEventListenerDelegate com.android.internal.os.BinderInternal$CallSession @@ -11377,6 +11423,7 @@ com.android.internal.os.CachedDeviceState$TimeInStateStopwatch com.android.internal.os.CachedDeviceState com.android.internal.os.ClassLoaderFactory com.android.internal.os.Clock +com.android.internal.os.DebugStore com.android.internal.os.FeatureFlags com.android.internal.os.FeatureFlagsImpl com.android.internal.os.Flags @@ -11436,10 +11483,10 @@ com.android.internal.os.LongArrayMultiStateCounter$LongArrayContainer com.android.internal.os.LongArrayMultiStateCounter com.android.internal.os.LongMultiStateCounter$1 com.android.internal.os.LongMultiStateCounter -com.android.internal.os.LooperStats$DispatchSession-IA com.android.internal.os.LooperStats$DispatchSession com.android.internal.os.LooperStats$Entry com.android.internal.os.LooperStats$ExportedEntry +com.android.internal.os.LooperStats-IA com.android.internal.os.LooperStats com.android.internal.os.PowerProfile$CpuClusterKey com.android.internal.os.PowerProfile @@ -11460,9 +11507,9 @@ com.android.internal.os.RuntimeInit$$ExternalSyntheticLambda1 com.android.internal.os.RuntimeInit$ApplicationWtfHandler com.android.internal.os.RuntimeInit$Arguments com.android.internal.os.RuntimeInit$KillApplicationHandler -com.android.internal.os.RuntimeInit$LoggingHandler-IA com.android.internal.os.RuntimeInit$LoggingHandler com.android.internal.os.RuntimeInit$MethodAndArgsCaller +com.android.internal.os.RuntimeInit-IA com.android.internal.os.RuntimeInit com.android.internal.os.SafeZipPathValidatorCallback com.android.internal.os.SomeArgs @@ -11535,12 +11582,12 @@ com.android.internal.policy.PhoneWindow$$ExternalSyntheticLambda1 com.android.internal.policy.PhoneWindow$1 com.android.internal.policy.PhoneWindow$ActionMenuPresenterCallback com.android.internal.policy.PhoneWindow$PanelFeatureState$SavedState$1 -com.android.internal.policy.PhoneWindow$PanelFeatureState$SavedState-IA com.android.internal.policy.PhoneWindow$PanelFeatureState$SavedState com.android.internal.policy.PhoneWindow$PanelFeatureState com.android.internal.policy.PhoneWindow$PhoneWindowMenuCallback com.android.internal.policy.PhoneWindow$RotationWatcher$1 com.android.internal.policy.PhoneWindow$RotationWatcher +com.android.internal.policy.PhoneWindow-IA com.android.internal.policy.PhoneWindow com.android.internal.policy.ScreenDecorationsUtils com.android.internal.policy.SystemBarUtils @@ -11555,6 +11602,8 @@ com.android.internal.protolog.ProtoLogViewerConfigReader com.android.internal.protolog.common.BitmaskConversionException com.android.internal.protolog.common.IProtoLogGroup com.android.internal.protolog.common.LogDataType +com.android.internal.ravenwood.RavenwoodEnvironment$Workaround +com.android.internal.ravenwood.RavenwoodEnvironment com.android.internal.security.VerityUtils com.android.internal.statusbar.IAddTileResultCallback com.android.internal.statusbar.IStatusBar$Stub @@ -11794,6 +11843,7 @@ com.android.internal.telephony.IState com.android.internal.telephony.ISub$Stub$Proxy com.android.internal.telephony.ISub$Stub com.android.internal.telephony.ISub +com.android.internal.telephony.ITelephony$Stub$Proxy com.android.internal.telephony.ITelephony$Stub com.android.internal.telephony.ITelephony com.android.internal.telephony.ITelephonyRegistry$Stub$Proxy @@ -11959,6 +12009,7 @@ com.android.internal.telephony.PhoneSubInfoController$$ExternalSyntheticLambda8 com.android.internal.telephony.PhoneSubInfoController$$ExternalSyntheticLambda9 com.android.internal.telephony.PhoneSubInfoController$CallPhoneMethodHelper com.android.internal.telephony.PhoneSubInfoController$PermissionCheckHelper +com.android.internal.telephony.PhoneSubInfoController com.android.internal.telephony.ProxyController$1 com.android.internal.telephony.ProxyController com.android.internal.telephony.RIL$RadioProxyDeathRecipient @@ -12351,6 +12402,7 @@ com.android.internal.telephony.euicc.EuiccController$9 com.android.internal.telephony.euicc.EuiccController$DownloadSubscriptionGetMetadataCommandCallback com.android.internal.telephony.euicc.EuiccController$GetDefaultListCommandCallback com.android.internal.telephony.euicc.EuiccController$GetMetadataCommandCallback +com.android.internal.telephony.euicc.EuiccController com.android.internal.telephony.euicc.EuiccOperation$1 com.android.internal.telephony.euicc.EuiccOperation$Action com.android.internal.telephony.euicc.EuiccOperation @@ -12529,6 +12581,7 @@ com.android.internal.telephony.imsphone.ImsPhoneCallTracker$HoldSwapState com.android.internal.telephony.imsphone.ImsPhoneCallTracker$MmTelFeatureListener com.android.internal.telephony.imsphone.ImsPhoneCallTracker$PhoneStateListener com.android.internal.telephony.imsphone.ImsPhoneCallTracker$SharedPreferenceProxy +com.android.internal.telephony.imsphone.ImsPhoneCallTracker$VtDataUsageProvider com.android.internal.telephony.imsphone.ImsPhoneCallTracker com.android.internal.telephony.imsphone.ImsPhoneCommandInterface com.android.internal.telephony.imsphone.ImsPhoneConnection$$ExternalSyntheticLambda0 @@ -12583,6 +12636,7 @@ com.android.internal.telephony.metrics.PersistAtomsStorage$$ExternalSyntheticLam com.android.internal.telephony.metrics.PersistAtomsStorage$$ExternalSyntheticLambda7 com.android.internal.telephony.metrics.PersistAtomsStorage$1 com.android.internal.telephony.metrics.PersistAtomsStorage +com.android.internal.telephony.metrics.SatelliteStats$CarrierRoamingSatelliteControllerStatsParams com.android.internal.telephony.metrics.ServiceStateStats$$ExternalSyntheticLambda0 com.android.internal.telephony.metrics.ServiceStateStats$TimestampedServiceState com.android.internal.telephony.metrics.ServiceStateStats @@ -12612,6 +12666,8 @@ com.android.internal.telephony.nano.CarrierIdProto$CarrierAttribute com.android.internal.telephony.nano.CarrierIdProto$CarrierId com.android.internal.telephony.nano.CarrierIdProto$CarrierList com.android.internal.telephony.nano.PersistAtomsProto$CarrierIdMismatch +com.android.internal.telephony.nano.PersistAtomsProto$CarrierRoamingSatelliteControllerStats +com.android.internal.telephony.nano.PersistAtomsProto$CarrierRoamingSatelliteSession com.android.internal.telephony.nano.PersistAtomsProto$CellularDataServiceSwitch com.android.internal.telephony.nano.PersistAtomsProto$CellularServiceState com.android.internal.telephony.nano.PersistAtomsProto$DataCallSession @@ -12633,7 +12689,10 @@ com.android.internal.telephony.nano.PersistAtomsProto$PersistAtoms com.android.internal.telephony.nano.PersistAtomsProto$PresenceNotifyEvent com.android.internal.telephony.nano.PersistAtomsProto$RcsAcsProvisioningStats com.android.internal.telephony.nano.PersistAtomsProto$RcsClientProvisioningStats +com.android.internal.telephony.nano.PersistAtomsProto$SatelliteAccessController +com.android.internal.telephony.nano.PersistAtomsProto$SatelliteConfigUpdater com.android.internal.telephony.nano.PersistAtomsProto$SatelliteController +com.android.internal.telephony.nano.PersistAtomsProto$SatelliteEntitlement com.android.internal.telephony.nano.PersistAtomsProto$SatelliteIncomingDatagram com.android.internal.telephony.nano.PersistAtomsProto$SatelliteOutgoingDatagram com.android.internal.telephony.nano.PersistAtomsProto$SatelliteProvision @@ -13057,8 +13116,9 @@ com.android.internal.util.DumpUtils com.android.internal.util.EmergencyAffordanceManager com.android.internal.util.ExponentiallyBucketedHistogram com.android.internal.util.FastMath -com.android.internal.util.FastPrintWriter$DummyWriter-IA com.android.internal.util.FastPrintWriter$DummyWriter +com.android.internal.util.FastPrintWriter-IA +com.android.internal.util.FastPrintWriter com.android.internal.util.FastXmlSerializer com.android.internal.util.FileRotator$FileInfo com.android.internal.util.FileRotator$Reader @@ -13079,6 +13139,7 @@ com.android.internal.util.HeavyHitterSketch com.android.internal.util.HexDump com.android.internal.util.IState com.android.internal.util.ImageUtils +com.android.internal.util.IndentingPrintWriter com.android.internal.util.IntPair com.android.internal.util.JournaledFile com.android.internal.util.LatencyTracker$$ExternalSyntheticLambda0 @@ -13086,10 +13147,10 @@ com.android.internal.util.LatencyTracker$$ExternalSyntheticLambda1 com.android.internal.util.LatencyTracker$$ExternalSyntheticLambda2 com.android.internal.util.LatencyTracker$Action com.android.internal.util.LatencyTracker$ActionProperties -com.android.internal.util.LatencyTracker$FrameworkStatsLogEvent-IA com.android.internal.util.LatencyTracker$FrameworkStatsLogEvent com.android.internal.util.LatencyTracker$Session$$ExternalSyntheticLambda0 com.android.internal.util.LatencyTracker$Session +com.android.internal.util.LatencyTracker-IA com.android.internal.util.LineBreakBufferedWriter com.android.internal.util.LocalLog com.android.internal.util.MemInfoReader @@ -13115,6 +13176,8 @@ com.android.internal.util.ProcFileReader com.android.internal.util.ProgressReporter com.android.internal.util.ProviderAccessStats$PerThreadData com.android.internal.util.ProviderAccessStats +com.android.internal.util.RateLimitingCache$ValueFetcher +com.android.internal.util.RateLimitingCache com.android.internal.util.RingBuffer$$ExternalSyntheticLambda0 com.android.internal.util.RingBuffer$$ExternalSyntheticLambda1 com.android.internal.util.RingBuffer @@ -13125,22 +13188,18 @@ com.android.internal.util.ScreenshotHelper com.android.internal.util.StatLogger com.android.internal.util.State com.android.internal.util.StateMachine$LogRec -com.android.internal.util.StateMachine$LogRecords-IA com.android.internal.util.StateMachine$LogRecords -com.android.internal.util.StateMachine$SmHandler$HaltingState-IA com.android.internal.util.StateMachine$SmHandler$HaltingState -com.android.internal.util.StateMachine$SmHandler$QuittingState-IA com.android.internal.util.StateMachine$SmHandler$QuittingState com.android.internal.util.StateMachine$SmHandler$StateInfo -com.android.internal.util.StateMachine$SmHandler-IA com.android.internal.util.StateMachine$SmHandler +com.android.internal.util.StateMachine-IA com.android.internal.util.StateMachine com.android.internal.util.StringPool com.android.internal.util.SyncResultReceiver$TimeoutException com.android.internal.util.SyncResultReceiver com.android.internal.util.ToBooleanFunction com.android.internal.util.TokenBucket -com.android.internal.util.TraceBuffer$ProtoOutputStreamProvider-IA com.android.internal.util.TraceBuffer$ProtoOutputStreamProvider com.android.internal.util.TraceBuffer$ProtoProvider com.android.internal.util.TraceBuffer @@ -13331,6 +13390,9 @@ com.android.internal.widget.floatingtoolbar.FloatingToolbar$$ExternalSyntheticLa com.android.internal.widget.floatingtoolbar.FloatingToolbar$$ExternalSyntheticLambda1 com.android.internal.widget.floatingtoolbar.FloatingToolbar com.android.internal.widget.floatingtoolbar.FloatingToolbarPopup +com.android.libcore.FeatureFlags +com.android.libcore.FeatureFlagsImpl +com.android.libcore.Flags com.android.media.flags.FeatureFlags com.android.media.flags.FeatureFlagsImpl com.android.media.flags.Flags @@ -13354,6 +13416,7 @@ com.android.net.module.util.NetworkCapabilitiesUtils com.android.net.module.util.NetworkIdentityUtils com.android.net.module.util.NetworkStackConstants com.android.net.module.util.ProxyUtils +com.android.nfc.x.android.nfc.Flags com.android.okhttp.Address com.android.okhttp.AndroidInternal com.android.okhttp.AndroidShimResponseCache @@ -13519,12 +13582,14 @@ com.android.org.bouncycastle.asn1.ASN1Boolean com.android.org.bouncycastle.asn1.ASN1Choice com.android.org.bouncycastle.asn1.ASN1Encodable com.android.org.bouncycastle.asn1.ASN1EncodableVector +com.android.org.bouncycastle.asn1.ASN1Enumerated$$ExternalSyntheticOutline0 com.android.org.bouncycastle.asn1.ASN1Enumerated com.android.org.bouncycastle.asn1.ASN1Exception com.android.org.bouncycastle.asn1.ASN1External com.android.org.bouncycastle.asn1.ASN1GeneralizedTime com.android.org.bouncycastle.asn1.ASN1InputStream com.android.org.bouncycastle.asn1.ASN1Integer +com.android.org.bouncycastle.asn1.ASN1Null com.android.org.bouncycastle.asn1.ASN1Object com.android.org.bouncycastle.asn1.ASN1ObjectIdentifier$OidHandle com.android.org.bouncycastle.asn1.ASN1ObjectIdentifier @@ -13611,7 +13676,6 @@ com.android.org.bouncycastle.crypto.DataLengthException com.android.org.bouncycastle.crypto.Digest com.android.org.bouncycastle.crypto.ExtendedDigest com.android.org.bouncycastle.crypto.InvalidCipherTextException -com.android.org.bouncycastle.crypto.Mac com.android.org.bouncycastle.crypto.OutputLengthException com.android.org.bouncycastle.crypto.PBEParametersGenerator com.android.org.bouncycastle.crypto.RuntimeCryptoException @@ -13792,9 +13856,9 @@ com.android.server.am.nano.Capabilities com.android.server.am.nano.Capability com.android.server.am.nano.FrameworkCapability com.android.server.am.nano.VMCapability +com.android.server.am.nano.VMInfo com.android.server.backup.AccountManagerBackupHelper com.android.server.backup.AccountSyncSettingsBackupHelper -com.android.server.backup.NotificationBackupHelper com.android.server.backup.PermissionBackupHelper com.android.server.backup.PreferredActivityBackupHelper com.android.server.backup.ShortcutBackupHelper @@ -13830,6 +13894,7 @@ com.android.server.criticalevents.nano.CriticalEventProto$Watchdog com.android.server.job.JobSchedulerInternal$JobStorePersistStats com.android.server.net.BaseNetdEventCallback com.android.server.net.BaseNetworkObserver +com.android.server.ondeviceintelligence.nano.InferenceInfo com.android.server.sip.SipHelper com.android.server.sip.SipService$ConnectivityReceiver$1 com.android.server.sip.SipService$ConnectivityReceiver @@ -13905,9 +13970,6 @@ com.android.telephony.Rlog com.android.text.flags.FeatureFlags com.android.text.flags.FeatureFlagsImpl com.android.text.flags.Flags -com.android.window.flags.FeatureFlags -com.android.window.flags.FeatureFlagsImpl -com.android.window.flags.Flags com.google.android.collect.Lists com.google.android.collect.Maps com.google.android.collect.Sets @@ -13947,8 +14009,8 @@ dalvik.system.CloseGuard dalvik.system.DelegateLastClassLoader dalvik.system.DexClassLoader dalvik.system.DexFile$DFEnum -dalvik.system.DexFile$OptimizationInfo-IA dalvik.system.DexFile$OptimizationInfo +dalvik.system.DexFile-IA dalvik.system.DexFile dalvik.system.DexPathList$$ExternalSyntheticLambda0 dalvik.system.DexPathList$Element @@ -14457,8 +14519,8 @@ java.io.ObjectOutputStream$Caches java.io.ObjectOutputStream$DebugTraceInfoStack java.io.ObjectOutputStream$HandleTable java.io.ObjectOutputStream$PutField -java.io.ObjectOutputStream$PutFieldImpl java.io.ObjectOutputStream$ReplaceTable +java.io.ObjectOutputStream java.io.ObjectStreamClass$$ExternalSyntheticLambda0 java.io.ObjectStreamClass$$ExternalSyntheticLambda1 java.io.ObjectStreamClass$$ExternalSyntheticLambda2 @@ -14473,13 +14535,13 @@ java.io.ObjectStreamClass$ClassDataSlot java.io.ObjectStreamClass$DefaultSUIDCompatibilityListener java.io.ObjectStreamClass$DeserializationConstructorsCache java.io.ObjectStreamClass$EntryFuture$1 -java.io.ObjectStreamClass$EntryFuture-IA java.io.ObjectStreamClass$EntryFuture java.io.ObjectStreamClass$ExceptionInfo java.io.ObjectStreamClass$FieldReflector java.io.ObjectStreamClass$FieldReflectorKey java.io.ObjectStreamClass$MemberSignature java.io.ObjectStreamClass$WeakClassKey +java.io.ObjectStreamClass-IA java.io.ObjectStreamClass java.io.ObjectStreamConstants java.io.ObjectStreamException @@ -14591,6 +14653,7 @@ java.lang.Iterable java.lang.LinkageError java.lang.Long$LongCache java.lang.Long +java.lang.MatchException java.lang.Math$RandomNumberGeneratorHolder java.lang.Math java.lang.NegativeArraySizeException @@ -14642,8 +14705,8 @@ java.lang.String$$ExternalSyntheticLambda0 java.lang.String$$ExternalSyntheticLambda1 java.lang.String$$ExternalSyntheticLambda2 java.lang.String$$ExternalSyntheticLambda3 -java.lang.String$CaseInsensitiveComparator-IA java.lang.String$CaseInsensitiveComparator +java.lang.String-IA java.lang.String java.lang.StringBuffer java.lang.StringBuilder @@ -14662,30 +14725,29 @@ java.lang.System java.lang.Thread$1 java.lang.Thread$Caches java.lang.Thread$State +java.lang.Thread$ThreadIdentifiers java.lang.Thread$UncaughtExceptionHandler java.lang.Thread$WeakClassKey java.lang.Thread java.lang.ThreadDeath java.lang.ThreadGroup java.lang.ThreadLocal$ThreadLocalMap$Entry -java.lang.ThreadLocal$ThreadLocalMap-IA java.lang.ThreadLocal$ThreadLocalMap +java.lang.ThreadLocal-IA java.lang.ThreadLocal -java.lang.Throwable$PrintStreamOrWriter-IA java.lang.Throwable$PrintStreamOrWriter java.lang.Throwable$SentinelHolder java.lang.Throwable$WrappedPrintStream java.lang.Throwable$WrappedPrintWriter +java.lang.Throwable-IA java.lang.Throwable java.lang.TypeNotPresentException java.lang.UNIXProcess$1 java.lang.UNIXProcess$2 java.lang.UNIXProcess$3 java.lang.UNIXProcess$ProcessPipeInputStream -java.lang.UNIXProcess$ProcessPipeOutputStream java.lang.UNIXProcess$ProcessReaperThreadFactory$1 java.lang.UNIXProcess$ProcessReaperThreadFactory -java.lang.UNIXProcess java.lang.UnsatisfiedLinkError java.lang.UnsupportedClassVersionError java.lang.UnsupportedOperationException @@ -14756,8 +14818,7 @@ java.lang.invoke.MethodHandles$$ExternalSyntheticLambda8 java.lang.invoke.MethodHandles$$ExternalSyntheticLambda9 java.lang.invoke.MethodHandles$Lookup java.lang.invoke.MethodHandles -java.lang.invoke.MethodType$ConcurrentWeakInternSet$WeakEntry -java.lang.invoke.MethodType$ConcurrentWeakInternSet +java.lang.invoke.MethodType$1 java.lang.invoke.MethodType java.lang.invoke.MethodTypeForm java.lang.invoke.SerializedLambda @@ -14801,8 +14862,8 @@ java.lang.invoke.WrongMethodTypeException java.lang.ref.Cleaner$1 java.lang.ref.Cleaner$Cleanable java.lang.ref.Cleaner -java.lang.ref.FinalizerReference$Sentinel-IA java.lang.ref.FinalizerReference$Sentinel +java.lang.ref.FinalizerReference-IA java.lang.ref.FinalizerReference java.lang.ref.PhantomReference java.lang.ref.Reference$SinkHolder$1 @@ -14833,11 +14894,10 @@ java.lang.reflect.ParameterizedType java.lang.reflect.Proxy$1 java.lang.reflect.Proxy$Key1 java.lang.reflect.Proxy$Key2 -java.lang.reflect.Proxy$KeyFactory-IA java.lang.reflect.Proxy$KeyFactory java.lang.reflect.Proxy$KeyX -java.lang.reflect.Proxy$ProxyClassFactory-IA java.lang.reflect.Proxy$ProxyClassFactory +java.lang.reflect.Proxy-IA java.lang.reflect.Proxy java.lang.reflect.RecordComponent java.lang.reflect.ReflectPermission @@ -14902,16 +14962,16 @@ java.net.HttpURLConnection java.net.IDN java.net.InMemoryCookieStore java.net.Inet4Address -java.net.Inet6Address$Inet6AddressHolder-IA java.net.Inet6Address$Inet6AddressHolder +java.net.Inet6Address-IA java.net.Inet6Address java.net.Inet6AddressImpl java.net.InetAddress$1 java.net.InetAddress$InetAddressHolder java.net.InetAddress java.net.InetAddressImpl -java.net.InetSocketAddress$InetSocketAddressHolder-IA java.net.InetSocketAddress$InetSocketAddressHolder +java.net.InetSocketAddress-IA java.net.InetSocketAddress java.net.InterfaceAddress java.net.JarURLConnection @@ -15141,11 +15201,10 @@ java.security.PrivilegedActionException java.security.PrivilegedExceptionAction java.security.ProtectionDomain java.security.Provider$EngineDescription -java.security.Provider$Service-IA java.security.Provider$Service -java.security.Provider$ServiceKey-IA java.security.Provider$ServiceKey java.security.Provider$UString +java.security.Provider-IA java.security.Provider java.security.ProviderException java.security.PublicKey @@ -15266,8 +15325,8 @@ java.text.DecimalFormat java.text.DecimalFormatSymbols java.text.DontCareFieldPosition$1 java.text.DontCareFieldPosition -java.text.FieldPosition$Delegate-IA java.text.FieldPosition$Delegate +java.text.FieldPosition-IA java.text.FieldPosition java.text.Format$Field java.text.Format$FieldDelegate @@ -15333,15 +15392,14 @@ java.time.format.DateTimeFormatterBuilder$InstantPrinterParser java.time.format.DateTimeFormatterBuilder$NumberPrinterParser java.time.format.DateTimeFormatterBuilder$OffsetIdPrinterParser java.time.format.DateTimeFormatterBuilder$PadPrinterParserDecorator -java.time.format.DateTimeFormatterBuilder$PrefixTree$CI-IA java.time.format.DateTimeFormatterBuilder$PrefixTree$CI -java.time.format.DateTimeFormatterBuilder$PrefixTree-IA java.time.format.DateTimeFormatterBuilder$PrefixTree java.time.format.DateTimeFormatterBuilder$SettingsParser java.time.format.DateTimeFormatterBuilder$StringLiteralPrinterParser java.time.format.DateTimeFormatterBuilder$TextPrinterParser java.time.format.DateTimeFormatterBuilder$ZoneIdPrinterParser java.time.format.DateTimeFormatterBuilder$ZoneTextPrinterParser +java.time.format.DateTimeFormatterBuilder-IA java.time.format.DateTimeFormatterBuilder java.time.format.DateTimeParseContext java.time.format.DateTimeParseException @@ -15398,12 +15456,12 @@ java.time.zone.ZoneRules java.time.zone.ZoneRulesException java.time.zone.ZoneRulesProvider java.util.AbstractCollection -java.util.AbstractList$Itr-IA java.util.AbstractList$ListItr java.util.AbstractList$RandomAccessSpliterator java.util.AbstractList$RandomAccessSubList java.util.AbstractList$SubList$1 java.util.AbstractList$SubList +java.util.AbstractList-IA java.util.AbstractList java.util.AbstractMap$1 java.util.AbstractMap$2$1 @@ -15440,7 +15498,6 @@ java.util.Calendar$Builder java.util.Calendar java.util.Collection java.util.Collections$2 -java.util.Collections$3 java.util.Collections$AsLIFOQueue java.util.Collections$CheckedCollection java.util.Collections$CheckedList @@ -15454,17 +15511,14 @@ java.util.Collections$CheckedSortedMap java.util.Collections$CheckedSortedSet java.util.Collections$CopiesList java.util.Collections$EmptyEnumeration -java.util.Collections$EmptyList-IA java.util.Collections$EmptyListIterator -java.util.Collections$EmptyMap-IA -java.util.Collections$EmptySet-IA java.util.Collections$ReverseComparator2 java.util.Collections$ReverseComparator java.util.Collections$SequencedSetFromMap +java.util.Collections$SetFromMap java.util.Collections$SynchronizedList java.util.Collections$SynchronizedNavigableMap java.util.Collections$SynchronizedNavigableSet -java.util.Collections$SynchronizedRandomAccessList java.util.Collections$SynchronizedSortedMap java.util.Collections$SynchronizedSortedSet java.util.Collections$UnmodifiableList$1 @@ -15477,6 +15531,7 @@ java.util.Collections$UnmodifiableSequencedCollection java.util.Collections$UnmodifiableSequencedMap java.util.Collections$UnmodifiableSequencedSet java.util.Collections$UnmodifiableSortedMap +java.util.Collections-IA java.util.Collections java.util.ComparableTimSort java.util.Comparator$$ExternalSyntheticLambda1 @@ -15493,28 +15548,21 @@ java.util.Date java.util.Deque java.util.Dictionary java.util.DoubleSummaryStatistics -java.util.DualPivotQuicksort$Sorter-IA java.util.DualPivotQuicksort$Sorter +java.util.DualPivotQuicksort-IA java.util.DualPivotQuicksort java.util.DuplicateFormatFlagsException java.util.EmptyStackException java.util.EnumMap$1 -java.util.EnumMap$EntryIterator$Entry-IA java.util.EnumMap$EntryIterator$Entry -java.util.EnumMap$EntryIterator-IA java.util.EnumMap$EntryIterator -java.util.EnumMap$EntrySet-IA java.util.EnumMap$EntrySet -java.util.EnumMap$EnumMapIterator-IA java.util.EnumMap$EnumMapIterator -java.util.EnumMap$KeyIterator-IA java.util.EnumMap$KeyIterator -java.util.EnumMap$KeySet-IA java.util.EnumMap$KeySet -java.util.EnumMap$ValueIterator-IA java.util.EnumMap$ValueIterator -java.util.EnumMap$Values-IA java.util.EnumMap$Values +java.util.EnumMap-IA java.util.EnumMap java.util.EnumSet$SerializationProxy java.util.EnumSet @@ -15540,31 +15588,22 @@ java.util.HashMap$UnsafeHolder java.util.HashMap$ValueSpliterator java.util.HashMap java.util.HashSet -java.util.Hashtable$EntrySet-IA java.util.Hashtable$EntrySet java.util.Hashtable$HashtableEntry -java.util.Hashtable$KeySet-IA java.util.Hashtable$KeySet -java.util.Hashtable$ValueCollection-IA java.util.Hashtable$ValueCollection +java.util.Hashtable-IA java.util.Hashtable java.util.HexFormat -java.util.IdentityHashMap$EntryIterator$Entry-IA java.util.IdentityHashMap$EntryIterator$Entry -java.util.IdentityHashMap$EntryIterator-IA java.util.IdentityHashMap$EntryIterator -java.util.IdentityHashMap$EntrySet-IA java.util.IdentityHashMap$EntrySet -java.util.IdentityHashMap$IdentityHashMapIterator-IA java.util.IdentityHashMap$IdentityHashMapIterator -java.util.IdentityHashMap$KeyIterator-IA java.util.IdentityHashMap$KeyIterator -java.util.IdentityHashMap$KeySet-IA java.util.IdentityHashMap$KeySet -java.util.IdentityHashMap$ValueIterator-IA java.util.IdentityHashMap$ValueIterator -java.util.IdentityHashMap$Values-IA java.util.IdentityHashMap$Values +java.util.IdentityHashMap-IA java.util.IdentityHashMap java.util.IllegalFormatArgumentIndexException java.util.IllegalFormatCodePointException @@ -15580,19 +15619,19 @@ java.util.ImmutableCollections$AbstractImmutableMap java.util.ImmutableCollections$AbstractImmutableSet java.util.ImmutableCollections$Access$1 java.util.ImmutableCollections$Access -java.util.ImmutableCollections$ListN-IA +java.util.ImmutableCollections$MapN$1 +java.util.ImmutableCollections$MapN$MapNIterator java.util.ImmutableCollections$SubList +java.util.ImmutableCollections-IA java.util.InputMismatchException java.util.Iterator java.util.JumboEnumSet$EnumSetIterator java.util.JumboEnumSet -java.util.LinkedHashMap$LinkedEntryIterator -java.util.LinkedHashMap$LinkedEntrySet +java.util.KeyValueHolder java.util.LinkedHashMap$LinkedHashIterator java.util.LinkedHashMap$ReversedLinkedHashMapView java.util.LinkedHashMap java.util.LinkedHashSet -java.util.LinkedList$DescendingIterator-IA java.util.LinkedList$Node java.util.LinkedList java.util.List @@ -15607,7 +15646,6 @@ java.util.Locale$IsoCountryCode$2 java.util.Locale$IsoCountryCode$3 java.util.Locale$IsoCountryCode java.util.Locale$LanguageRange -java.util.Locale$LocaleKey-IA java.util.Locale$LocaleKey java.util.Locale$NoImagePreloadHolder java.util.Locale-IA @@ -15719,21 +15757,16 @@ java.util.UUID java.util.UnknownFormatConversionException java.util.UnknownFormatFlagsException java.util.Vector$1 -java.util.Vector$Itr-IA java.util.Vector$Itr +java.util.Vector-IA java.util.Vector java.util.WeakHashMap$Entry -java.util.WeakHashMap$EntryIterator-IA java.util.WeakHashMap$EntryIterator -java.util.WeakHashMap$EntrySet-IA java.util.WeakHashMap$EntrySet java.util.WeakHashMap$HashIterator -java.util.WeakHashMap$KeyIterator-IA -java.util.WeakHashMap$KeySet-IA -java.util.WeakHashMap$ValueIterator-IA java.util.WeakHashMap$ValueIterator -java.util.WeakHashMap$Values-IA java.util.WeakHashMap$Values +java.util.WeakHashMap-IA java.util.WeakHashMap java.util.concurrent.AbstractExecutorService java.util.concurrent.ArrayBlockingQueue$Itrs @@ -15766,7 +15799,6 @@ java.util.concurrent.ConcurrentHashMap$ForEachTransformedMappingTask java.util.concurrent.ConcurrentHashMap$ForEachTransformedValueTask java.util.concurrent.ConcurrentHashMap$ForEachValueTask java.util.concurrent.ConcurrentHashMap$ForwardingNode -java.util.concurrent.ConcurrentHashMap$KeyIterator java.util.concurrent.ConcurrentHashMap$KeySetView java.util.concurrent.ConcurrentHashMap$KeySpliterator java.util.concurrent.ConcurrentHashMap$MapReduceEntriesTask @@ -15865,10 +15897,6 @@ java.util.concurrent.Semaphore$FairSync java.util.concurrent.Semaphore$NonfairSync java.util.concurrent.Semaphore$Sync java.util.concurrent.Semaphore -java.util.concurrent.SynchronousQueue$TransferQueue$QNode -java.util.concurrent.SynchronousQueue$TransferQueue -java.util.concurrent.SynchronousQueue$TransferStack$SNode -java.util.concurrent.SynchronousQueue$TransferStack java.util.concurrent.SynchronousQueue$Transferer java.util.concurrent.SynchronousQueue java.util.concurrent.ThreadFactory @@ -15977,9 +16005,9 @@ java.util.jar.Manifest java.util.logging.ConsoleHandler java.util.logging.ErrorManager java.util.logging.FileHandler$1 -java.util.logging.FileHandler$InitializationErrorManager-IA java.util.logging.FileHandler$InitializationErrorManager java.util.logging.FileHandler$MeteredStream +java.util.logging.FileHandler-IA java.util.logging.FileHandler java.util.logging.Filter java.util.logging.Formatter @@ -16156,13 +16184,11 @@ java.util.stream.Nodes$IntArrayNode java.util.stream.Nodes$IntFixedNodeBuilder java.util.stream.Nodes$IntSpinedNodeBuilder java.util.stream.Nodes$SpinedNodeBuilder -java.util.stream.Nodes$ToArrayTask$OfInt-IA java.util.stream.Nodes$ToArrayTask$OfInt -java.util.stream.Nodes$ToArrayTask$OfPrimitive-IA java.util.stream.Nodes$ToArrayTask$OfPrimitive -java.util.stream.Nodes$ToArrayTask$OfRef-IA java.util.stream.Nodes$ToArrayTask$OfRef java.util.stream.Nodes$ToArrayTask +java.util.stream.Nodes-IA java.util.stream.Nodes java.util.stream.PipelineHelper java.util.stream.ReduceOps$10 @@ -16230,12 +16256,12 @@ java.util.stream.StreamSpliterators$WrappingSpliterator java.util.stream.StreamSupport java.util.stream.Streams$1 java.util.stream.Streams$2 -java.util.stream.Streams$AbstractStreamBuilderImpl-IA java.util.stream.Streams$AbstractStreamBuilderImpl java.util.stream.Streams$ConcatSpliterator$OfRef java.util.stream.Streams$ConcatSpliterator java.util.stream.Streams$RangeIntSpliterator java.util.stream.Streams$StreamBuilderImpl +java.util.stream.Streams-IA java.util.stream.Streams java.util.stream.TerminalOp java.util.stream.TerminalSink @@ -16247,15 +16273,14 @@ java.util.zip.CheckedInputStream java.util.zip.Checksum$1 java.util.zip.Checksum java.util.zip.DataFormatException -java.util.zip.Deflater$DeflaterZStreamRef-IA java.util.zip.Deflater$DeflaterZStreamRef +java.util.zip.Deflater-IA java.util.zip.Deflater java.util.zip.DeflaterOutputStream java.util.zip.GZIPInputStream$1 -java.util.zip.GZIPInputStream java.util.zip.GZIPOutputStream -java.util.zip.Inflater$InflaterZStreamRef-IA java.util.zip.Inflater$InflaterZStreamRef +java.util.zip.Inflater-IA java.util.zip.Inflater java.util.zip.InflaterInputStream java.util.zip.ZipCoder$UTF8ZipCoder @@ -16266,14 +16291,16 @@ java.util.zip.ZipError java.util.zip.ZipException java.util.zip.ZipFile$CleanableResource java.util.zip.ZipFile$InflaterCleanupAction -java.util.zip.ZipFile$Source$End-IA java.util.zip.ZipFile$Source$End java.util.zip.ZipFile$Source$Key java.util.zip.ZipFile$Source java.util.zip.ZipFile$ZipEntryIterator +java.util.zip.ZipFile$ZipFileInflaterInputStream java.util.zip.ZipFile$ZipFileInputStream +java.util.zip.ZipFile-IA java.util.zip.ZipFile java.util.zip.ZipInputStream +java.util.zip.ZipOutputStream java.util.zip.ZipUtils javax.crypto.AEADBadTagException javax.crypto.BadPaddingException @@ -16527,6 +16554,7 @@ jdk.internal.misc.TerminatingThreadLocal jdk.internal.misc.Unsafe jdk.internal.misc.UnsafeConstants jdk.internal.misc.VM +jdk.internal.misc.VirtualThreads jdk.internal.ref.CleanerFactory jdk.internal.ref.CleanerImpl jdk.internal.ref.PhantomCleanable @@ -16534,7 +16562,17 @@ jdk.internal.reflect.Reflection jdk.internal.util.ArraysSupport jdk.internal.util.NullableKeyValueHolder jdk.internal.util.Preconditions +jdk.internal.util.ReferenceKey +jdk.internal.util.ReferencedKeyMap$$ExternalSyntheticLambda0 +jdk.internal.util.ReferencedKeyMap$$ExternalSyntheticLambda1 +jdk.internal.util.ReferencedKeyMap$$ExternalSyntheticLambda2 +jdk.internal.util.ReferencedKeyMap$$ExternalSyntheticLambda3 +jdk.internal.util.ReferencedKeyMap +jdk.internal.util.ReferencedKeySet +jdk.internal.util.SoftReferenceKey jdk.internal.util.StaticProperty +jdk.internal.util.StrongReferenceKey +jdk.internal.util.WeakReferenceKey jdk.internal.util.random.RandomSupport libcore.content.type.MimeMap$$ExternalSyntheticLambda0 libcore.content.type.MimeMap$Builder$Element @@ -16551,6 +16589,16 @@ libcore.icu.SimpleDateFormatData libcore.icu.TimeZoneNames$1 libcore.icu.TimeZoneNames$ZoneStringsCache libcore.icu.TimeZoneNames +libcore.internal.Java21LanguageFeatures$$ExternalSyntheticTypeSwitch10 +libcore.internal.Java21LanguageFeatures$$ExternalSyntheticTypeSwitch1 +libcore.internal.Java21LanguageFeatures$$ExternalSyntheticTypeSwitch2 +libcore.internal.Java21LanguageFeatures$$ExternalSyntheticTypeSwitch3 +libcore.internal.Java21LanguageFeatures$$ExternalSyntheticTypeSwitch4 +libcore.internal.Java21LanguageFeatures$$ExternalSyntheticTypeSwitch5 +libcore.internal.Java21LanguageFeatures$$ExternalSyntheticTypeSwitch6 +libcore.internal.Java21LanguageFeatures$$ExternalSyntheticTypeSwitch7 +libcore.internal.Java21LanguageFeatures$$ExternalSyntheticTypeSwitch8 +libcore.internal.Java21LanguageFeatures$$ExternalSyntheticTypeSwitch9 libcore.internal.StringPool libcore.io.AsynchronousCloseMonitor libcore.io.BlockGuardOs @@ -16613,11 +16661,10 @@ org.apache.harmony.dalvik.ddmc.DdmServer org.apache.harmony.dalvik.ddmc.DdmVmInternal org.apache.harmony.xml.ExpatAttributes org.apache.harmony.xml.ExpatException -org.apache.harmony.xml.ExpatParser$CurrentAttributes-IA org.apache.harmony.xml.ExpatParser$CurrentAttributes -org.apache.harmony.xml.ExpatParser$ExpatLocator-IA org.apache.harmony.xml.ExpatParser$ExpatLocator org.apache.harmony.xml.ExpatParser$ParseException +org.apache.harmony.xml.ExpatParser-IA org.apache.harmony.xml.ExpatParser org.apache.harmony.xml.ExpatReader org.apache.harmony.xml.dom.AttrImpl @@ -16625,9 +16672,7 @@ org.apache.harmony.xml.dom.CDATASectionImpl org.apache.harmony.xml.dom.CharacterDataImpl org.apache.harmony.xml.dom.CommentImpl org.apache.harmony.xml.dom.DOMImplementationImpl -org.apache.harmony.xml.dom.DocumentImpl org.apache.harmony.xml.dom.DocumentTypeImpl -org.apache.harmony.xml.dom.ElementImpl org.apache.harmony.xml.dom.EntityReferenceImpl org.apache.harmony.xml.dom.InnerNodeImpl org.apache.harmony.xml.dom.LeafNodeImpl @@ -16635,7 +16680,6 @@ org.apache.harmony.xml.dom.NodeImpl$1 org.apache.harmony.xml.dom.NodeImpl org.apache.harmony.xml.dom.NodeListImpl org.apache.harmony.xml.dom.ProcessingInstructionImpl -org.apache.harmony.xml.dom.TextImpl org.apache.harmony.xml.parsers.DocumentBuilderFactoryImpl org.apache.harmony.xml.parsers.DocumentBuilderImpl org.apache.harmony.xml.parsers.SAXParserFactoryImpl @@ -16768,8 +16812,8 @@ sun.nio.ch.DatagramDispatcher sun.nio.ch.DefaultSelectorProvider sun.nio.ch.DirectBuffer sun.nio.ch.FileChannelImpl$SimpleFileLockTable -sun.nio.ch.FileChannelImpl$Unmapper-IA sun.nio.ch.FileChannelImpl$Unmapper +sun.nio.ch.FileChannelImpl-IA sun.nio.ch.FileDescriptorHolderSocketImpl sun.nio.ch.FileDispatcher sun.nio.ch.FileDispatcherImpl @@ -16853,8 +16897,8 @@ sun.reflect.misc.ReflectUtil sun.security.action.GetBooleanAction sun.security.action.GetIntegerAction sun.security.action.GetPropertyAction -sun.security.jca.GetInstance$Instance-IA sun.security.jca.GetInstance$Instance +sun.security.jca.GetInstance-IA sun.security.jca.GetInstance sun.security.jca.JCAUtil$CachedSecureRandomHolder sun.security.jca.JCAUtil @@ -16892,8 +16936,8 @@ sun.security.provider.certpath.OCSP$RevocationStatus$CertStatus sun.security.provider.certpath.OCSP$RevocationStatus sun.security.provider.certpath.OCSP sun.security.provider.certpath.OCSPResponse$ResponseStatus -sun.security.provider.certpath.OCSPResponse$SingleResponse-IA sun.security.provider.certpath.OCSPResponse$SingleResponse +sun.security.provider.certpath.OCSPResponse-IA sun.security.provider.certpath.OCSPResponse sun.security.provider.certpath.PKIX$ValidatorParams sun.security.provider.certpath.PKIX @@ -16904,8 +16948,8 @@ sun.security.provider.certpath.PolicyNodeImpl sun.security.provider.certpath.RevocationChecker$1 sun.security.provider.certpath.RevocationChecker$2 sun.security.provider.certpath.RevocationChecker$Mode -sun.security.provider.certpath.RevocationChecker$RevocationProperties-IA sun.security.provider.certpath.RevocationChecker$RevocationProperties +sun.security.provider.certpath.RevocationChecker-IA sun.security.provider.certpath.RevocationChecker sun.security.timestamp.TimestampToken sun.security.util.AbstractAlgorithmConstraints$1 @@ -16927,11 +16971,11 @@ sun.security.util.DerInputStream sun.security.util.DerOutputStream sun.security.util.DerValue sun.security.util.DisabledAlgorithmConstraints$Constraint$Operator -sun.security.util.DisabledAlgorithmConstraints$Constraint-IA sun.security.util.DisabledAlgorithmConstraints$Constraint sun.security.util.DisabledAlgorithmConstraints$Constraints sun.security.util.DisabledAlgorithmConstraints$KeySizeConstraint sun.security.util.DisabledAlgorithmConstraints$jdkCAConstraint +sun.security.util.DisabledAlgorithmConstraints-IA sun.security.util.DisabledAlgorithmConstraints sun.security.util.FilePaths sun.security.util.KeyUtil @@ -17035,13 +17079,12 @@ sun.util.calendar.JulianCalendar$Date sun.util.calendar.JulianCalendar sun.util.calendar.LocalGregorianCalendar sun.util.locale.BaseLocale$Cache -sun.util.locale.BaseLocale$Key-IA sun.util.locale.BaseLocale$Key sun.util.locale.BaseLocale-IA sun.util.locale.BaseLocale sun.util.locale.Extension -sun.util.locale.InternalLocaleBuilder$CaseInsensitiveChar-IA sun.util.locale.InternalLocaleBuilder$CaseInsensitiveChar +sun.util.locale.InternalLocaleBuilder-IA sun.util.locale.InternalLocaleBuilder sun.util.locale.LanguageTag sun.util.locale.LocaleExtensions diff --git a/core/api/Android.bp b/core/api/Android.bp index 77594b758d196ae59fe73cf288ec711645ab2f49..06eea52881eaa07efb003d189400f26cc6d912c3 100644 --- a/core/api/Android.bp +++ b/core/api/Android.bp @@ -100,50 +100,50 @@ filegroup { // Exportable stub artifacts filegroup { name: "non-updatable-exportable-current.txt", - srcs: [":api-stubs-docs-non-updatable{.exportable.api.txt}"], + device_common_srcs: [":api-stubs-docs-non-updatable{.exportable.api.txt}"], } filegroup { name: "non-updatable-exportable-removed.txt", - srcs: [":api-stubs-docs-non-updatable{.exportable.removed-api.txt}"], + device_common_srcs: [":api-stubs-docs-non-updatable{.exportable.removed-api.txt}"], } filegroup { name: "non-updatable-exportable-system-current.txt", - srcs: [":system-api-stubs-docs-non-updatable{.exportable.api.txt}"], + device_common_srcs: [":system-api-stubs-docs-non-updatable{.exportable.api.txt}"], } filegroup { name: "non-updatable-exportable-system-removed.txt", - srcs: [":system-api-stubs-docs-non-updatable{.exportable.removed-api.txt}"], + device_common_srcs: [":system-api-stubs-docs-non-updatable{.exportable.removed-api.txt}"], } filegroup { name: "non-updatable-exportable-module-lib-current.txt", - srcs: [":module-lib-api-stubs-docs-non-updatable{.exportable.api.txt}"], + device_common_srcs: [":module-lib-api-stubs-docs-non-updatable{.exportable.api.txt}"], } filegroup { name: "non-updatable-exportable-module-lib-removed.txt", - srcs: [":module-lib-api-stubs-docs-non-updatable{.exportable.removed-api.txt}"], + device_common_srcs: [":module-lib-api-stubs-docs-non-updatable{.exportable.removed-api.txt}"], } filegroup { name: "non-updatable-exportable-test-current.txt", - srcs: [":test-api-stubs-docs-non-updatable{.exportable.api.txt}"], + device_common_srcs: [":test-api-stubs-docs-non-updatable{.exportable.api.txt}"], } filegroup { name: "non-updatable-exportable-test-removed.txt", - srcs: [":test-api-stubs-docs-non-updatable{.exportable.removed-api.txt}"], + device_common_srcs: [":test-api-stubs-docs-non-updatable{.exportable.removed-api.txt}"], } filegroup { name: "non-updatable-exportable-system-server-current.txt", - srcs: [":services-non-updatable-stubs{.exportable.api.txt}"], + device_common_srcs: [":services-non-updatable-stubs{.exportable.api.txt}"], } filegroup { name: "non-updatable-exportable-system-server-removed.txt", - srcs: [":services-non-updatable-stubs{.exportable.removed-api.txt}"], + device_common_srcs: [":services-non-updatable-stubs{.exportable.removed-api.txt}"], } diff --git a/core/api/current.txt b/core/api/current.txt index ff203848fa3a2ed470fc476be7b9c11d88d8b660..46a864e198659e99f14cc6046c35d096bbe5aa91 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -11240,6 +11240,7 @@ package android.content { method public void removeCategory(String); method public void removeExtra(String); method public void removeFlags(int); + method @FlaggedApi("android.security.prevent_intent_redirect") public void removeLaunchSecurityProtection(); method @NonNull public android.content.Intent replaceExtras(@NonNull android.content.Intent); method @NonNull public android.content.Intent replaceExtras(@Nullable android.os.Bundle); method public android.content.ComponentName resolveActivity(@NonNull android.content.pm.PackageManager); @@ -13372,6 +13373,11 @@ package android.content.pm { field public static final String FEATURE_WIFI_PASSPOINT = "android.hardware.wifi.passpoint"; field public static final String FEATURE_WIFI_RTT = "android.hardware.wifi.rtt"; field public static final String FEATURE_WINDOW_MAGNIFICATION = "android.software.window_magnification"; + field @FlaggedApi("android.xr.xr_manifest_entries") public static final String FEATURE_XR_API_OPENXR = "android.software.xr.api.openxr"; + field @FlaggedApi("android.xr.xr_manifest_entries") public static final String FEATURE_XR_API_SPATIAL = "android.software.xr.api.spatial"; + field @FlaggedApi("android.xr.xr_manifest_entries") public static final String FEATURE_XR_INPUT_CONTROLLER = "android.hardware.xr.input.controller"; + field @FlaggedApi("android.xr.xr_manifest_entries") public static final String FEATURE_XR_INPUT_EYE_TRACKING = "android.hardware.xr.input.eye_tracking"; + field @FlaggedApi("android.xr.xr_manifest_entries") public static final String FEATURE_XR_INPUT_HAND_TRACKING = "android.hardware.xr.input.hand_tracking"; field public static final int FLAG_PERMISSION_WHITELIST_INSTALLER = 2; // 0x2 field public static final int FLAG_PERMISSION_WHITELIST_SYSTEM = 1; // 0x1 field public static final int FLAG_PERMISSION_WHITELIST_UPGRADE = 4; // 0x4 @@ -16368,6 +16374,7 @@ package android.graphics { field public static final int UNKNOWN = 0; // 0x0 field public static final int Y8 = 538982489; // 0x20203859 field public static final int YCBCR_P010 = 54; // 0x36 + field @FlaggedApi("android.media.codec.p210_format_support") public static final int YCBCR_P210 = 60; // 0x3c field public static final int YUV_420_888 = 35; // 0x23 field public static final int YUV_422_888 = 39; // 0x27 field public static final int YUV_444_888 = 40; // 0x28 @@ -18717,6 +18724,7 @@ package android.hardware { field public static final long USAGE_VIDEO_ENCODE = 65536L; // 0x10000L field public static final int YCBCR_420_888 = 35; // 0x23 field public static final int YCBCR_P010 = 54; // 0x36 + field @FlaggedApi("android.media.codec.p210_format_support") public static final int YCBCR_P210 = 60; // 0x3c } @FlaggedApi("android.hardware.flags.overlayproperties_class_api") public final class OverlayProperties implements android.os.Parcelable { @@ -22984,6 +22992,7 @@ package android.media { field public static final int COLOR_FormatYUV444Flexible = 2135181448; // 0x7f444888 field @Deprecated public static final int COLOR_FormatYUV444Interleaved = 29; // 0x1d field public static final int COLOR_FormatYUVP010 = 54; // 0x36 + field @FlaggedApi("android.media.codec.p210_format_support") public static final int COLOR_FormatYUVP210 = 60; // 0x3c field @Deprecated public static final int COLOR_QCOM_FormatYUV420SemiPlanar = 2141391872; // 0x7fa30c00 field @Deprecated public static final int COLOR_TI_FormatYUV420PackedSemiPlanar = 2130706688; // 0x7f000100 field public static final String FEATURE_AdaptivePlayback = "adaptive-playback"; @@ -32843,6 +32852,7 @@ package android.os { public static class Build.VERSION_CODES { ctor public Build.VERSION_CODES(); + field @FlaggedApi("android.sdk.major_minor_versioning_scheme") public static final int BAKLAVA = 10000; // 0x2710 field public static final int BASE = 1; // 0x1 field public static final int BASE_1_1 = 2; // 0x2 field public static final int CUPCAKE = 3; // 0x3 @@ -32882,6 +32892,7 @@ package android.os { } @FlaggedApi("android.sdk.major_minor_versioning_scheme") public static class Build.VERSION_CODES_FULL { + field public static final int BAKLAVA = 1000000000; // 0x3b9aca00 field public static final int BASE = 100000; // 0x186a0 field public static final int BASE_1_1 = 200000; // 0x30d40 field public static final int CUPCAKE = 300000; // 0x493e0 @@ -37071,6 +37082,7 @@ package android.provider { @FlaggedApi("android.provider.new_default_account_api_enabled") public static final class ContactsContract.RawContacts.DefaultAccount { method @FlaggedApi("android.provider.new_default_account_api_enabled") @NonNull public static android.provider.ContactsContract.RawContacts.DefaultAccount.DefaultAccountAndState getDefaultAccountForNewContacts(@NonNull android.content.ContentResolver); + field public static final String ACTION_MOVE_CONTACTS_TO_DEFAULT_ACCOUNT = "android.provider.action.MOVE_CONTACTS_TO_DEFAULT_ACCOUNT"; } @FlaggedApi("android.provider.new_default_account_api_enabled") public static final class ContactsContract.RawContacts.DefaultAccount.DefaultAccountAndState { @@ -52490,6 +52502,7 @@ package android.view { method public android.graphics.Canvas lockHardwareCanvas(); method public void readFromParcel(android.os.Parcel); method public void release(); + method @FlaggedApi("com.android.graphics.surfaceflinger.flags.arr_setframerate_api") public void setFrameRate(@NonNull android.view.Surface.FrameRateParams); method public void setFrameRate(@FloatRange(from=0.0) float, int, int); method public void setFrameRate(@FloatRange(from=0.0) float, int); method @Deprecated public void unlockCanvas(android.graphics.Canvas); @@ -52506,6 +52519,22 @@ package android.view { field public static final int ROTATION_90 = 1; // 0x1 } + @FlaggedApi("com.android.graphics.surfaceflinger.flags.arr_setframerate_api") public static class Surface.FrameRateParams { + method @FlaggedApi("com.android.graphics.surfaceflinger.flags.arr_setframerate_api") public int getChangeFrameRateStrategy(); + method @FlaggedApi("com.android.graphics.surfaceflinger.flags.arr_setframerate_api") public float getDesiredMaxRate(); + method @FlaggedApi("com.android.graphics.surfaceflinger.flags.arr_setframerate_api") public float getDesiredMinRate(); + method @FlaggedApi("com.android.graphics.surfaceflinger.flags.arr_setframerate_api") public float getFixedSourceRate(); + field @FlaggedApi("com.android.graphics.surfaceflinger.flags.arr_setframerate_api") public static final android.view.Surface.FrameRateParams IGNORE; + } + + @FlaggedApi("com.android.graphics.surfaceflinger.flags.arr_setframerate_api") public static final class Surface.FrameRateParams.Builder { + ctor public Surface.FrameRateParams.Builder(); + method @FlaggedApi("com.android.graphics.surfaceflinger.flags.arr_setframerate_api") @NonNull public android.view.Surface.FrameRateParams build(); + method @FlaggedApi("com.android.graphics.surfaceflinger.flags.arr_setframerate_api") @NonNull public android.view.Surface.FrameRateParams.Builder setChangeFrameRateStrategy(int); + method @FlaggedApi("com.android.graphics.surfaceflinger.flags.arr_setframerate_api") @NonNull public android.view.Surface.FrameRateParams.Builder setDesiredRateRange(@FloatRange(from=0.0) float, @FloatRange(from=0.0) float); + method @FlaggedApi("com.android.graphics.surfaceflinger.flags.arr_setframerate_api") @NonNull public android.view.Surface.FrameRateParams.Builder setFixedSourceRate(@FloatRange(from=0.0) float); + } + public static class Surface.OutOfResourcesException extends java.lang.RuntimeException { ctor public Surface.OutOfResourcesException(); ctor public Surface.OutOfResourcesException(String); @@ -52657,6 +52686,8 @@ package android.view { ctor public SurfaceView(android.content.Context, android.util.AttributeSet, int); ctor public SurfaceView(android.content.Context, android.util.AttributeSet, int, int); method public void applyTransactionToFrame(@NonNull android.view.SurfaceControl.Transaction); + method @FlaggedApi("android.view.flags.surface_view_get_surface_package") public void clearChildSurfacePackage(); + method @FlaggedApi("android.view.flags.surface_view_get_surface_package") @Nullable public android.view.SurfaceControlViewHost.SurfacePackage getChildSurfacePackage(); method @FlaggedApi("android.view.flags.surface_view_set_composition_order") public int getCompositionOrder(); method public android.view.SurfaceHolder getHolder(); method @Deprecated @Nullable public android.os.IBinder getHostToken(); @@ -61752,12 +61783,13 @@ package android.window { public final class BackEvent { ctor public BackEvent(float, float, float, int); ctor @FlaggedApi("com.android.window.flags.predictive_back_timestamp_api") public BackEvent(float, float, float, int, long); - method @FlaggedApi("com.android.window.flags.predictive_back_timestamp_api") public long getFrameTime(); + method @FlaggedApi("com.android.window.flags.predictive_back_timestamp_api") public long getFrameTimeMillis(); method @FloatRange(from=0, to=1) public float getProgress(); method public int getSwipeEdge(); method public float getTouchX(); method public float getTouchY(); field public static final int EDGE_LEFT = 0; // 0x0 + field @FlaggedApi("com.android.window.flags.predictive_back_swipe_edge_none_api") public static final int EDGE_NONE = 2; // 0x2 field public static final int EDGE_RIGHT = 1; // 0x1 } diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 207f4b57e8bf9d5ac6d794fdd09c8bc97c757799..d1a9e67d25ee7e634ce3813b8866adb592608eb5 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -209,6 +209,8 @@ package android { field public static final String MANAGE_FACTORY_RESET_PROTECTION = "android.permission.MANAGE_FACTORY_RESET_PROTECTION"; field public static final String MANAGE_GAME_ACTIVITY = "android.permission.MANAGE_GAME_ACTIVITY"; field public static final String MANAGE_GAME_MODE = "android.permission.MANAGE_GAME_MODE"; + field @FlaggedApi("android.media.tv.flags.media_quality_fw") public static final String MANAGE_GLOBAL_PICTURE_QUALITY_SERVICE = "android.permission.MANAGE_GLOBAL_PICTURE_QUALITY_SERVICE"; + field @FlaggedApi("android.media.tv.flags.media_quality_fw") public static final String MANAGE_GLOBAL_SOUND_QUALITY_SERVICE = "android.permission.MANAGE_GLOBAL_SOUND_QUALITY_SERVICE"; field public static final String MANAGE_HOTWORD_DETECTION = "android.permission.MANAGE_HOTWORD_DETECTION"; field public static final String MANAGE_IPSEC_TUNNELS = "android.permission.MANAGE_IPSEC_TUNNELS"; field public static final String MANAGE_LOW_POWER_STANDBY = "android.permission.MANAGE_LOW_POWER_STANDBY"; @@ -4637,7 +4639,7 @@ package android.content.pm.verify.pkg { @FlaggedApi("android.content.pm.verification_service") public final class VerificationSession implements android.os.Parcelable { method public int describeContents(); - method @RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT) public long extendTimeRemaining(long); + method public long extendTimeRemaining(long); method @NonNull public java.util.List getDeclaredLibraries(); method @NonNull public android.os.PersistableBundle getExtensionParams(); method public int getId(); @@ -4645,12 +4647,12 @@ package android.content.pm.verify.pkg { method @NonNull public String getPackageName(); method @NonNull public android.content.pm.SigningInfo getSigningInfo(); method @NonNull public android.net.Uri getStagedPackageUri(); - method @RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT) public long getTimeoutTime(); + method public long getTimeoutTime(); method public int getVerificationPolicy(); - method @RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT) public void reportVerificationComplete(@NonNull android.content.pm.verify.pkg.VerificationStatus); - method @RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT) public void reportVerificationComplete(@NonNull android.content.pm.verify.pkg.VerificationStatus, @NonNull android.os.PersistableBundle); - method @RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT) public void reportVerificationIncomplete(int); - method @RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT) public boolean setVerificationPolicy(int); + method public void reportVerificationComplete(@NonNull android.content.pm.verify.pkg.VerificationStatus); + method public void reportVerificationComplete(@NonNull android.content.pm.verify.pkg.VerificationStatus, @NonNull android.os.PersistableBundle); + method public void reportVerificationIncomplete(int); + method public boolean setVerificationPolicy(int); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; field public static final int VERIFICATION_INCOMPLETE_NETWORK_UNAVAILABLE = 1; // 0x1 @@ -6054,7 +6056,7 @@ package android.hardware.location { method @NonNull public android.hardware.location.ContextHubInfo getAttachedHub(); method @IntRange(from=0, to=65535) public int getId(); method @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public int sendMessageToNanoApp(@NonNull android.hardware.location.NanoAppMessage); - method @FlaggedApi("android.chre.flags.reliable_message") @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public android.hardware.location.ContextHubTransaction sendReliableMessageToNanoApp(@NonNull android.hardware.location.NanoAppMessage); + method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) public android.hardware.location.ContextHubTransaction sendReliableMessageToNanoApp(@NonNull android.hardware.location.NanoAppMessage); } public class ContextHubClientCallback { @@ -6090,7 +6092,7 @@ package android.hardware.location { method public String getToolchain(); method public int getToolchainVersion(); method public String getVendor(); - method @FlaggedApi("android.chre.flags.reliable_message") public boolean supportsReliableMessages(); + method public boolean supportsReliableMessages(); method public void writeToParcel(android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; } @@ -6174,7 +6176,7 @@ package android.hardware.location { field public static final int RESULT_FAILED_BAD_PARAMS = 2; // 0x2 field public static final int RESULT_FAILED_BUSY = 4; // 0x4 field public static final int RESULT_FAILED_HAL_UNAVAILABLE = 8; // 0x8 - field @FlaggedApi("android.chre.flags.reliable_message") public static final int RESULT_FAILED_NOT_SUPPORTED = 9; // 0x9 + field public static final int RESULT_FAILED_NOT_SUPPORTED = 9; // 0x9 field public static final int RESULT_FAILED_SERVICE_INTERNAL_FAILURE = 7; // 0x7 field public static final int RESULT_FAILED_TIMEOUT = 6; // 0x6 field public static final int RESULT_FAILED_UNINITIALIZED = 3; // 0x3 @@ -6184,7 +6186,7 @@ package android.hardware.location { field public static final int TYPE_ENABLE_NANOAPP = 2; // 0x2 field public static final int TYPE_LOAD_NANOAPP = 0; // 0x0 field public static final int TYPE_QUERY_NANOAPPS = 4; // 0x4 - field @FlaggedApi("android.chre.flags.reliable_message") public static final int TYPE_RELIABLE_MESSAGE = 5; // 0x5 + field public static final int TYPE_RELIABLE_MESSAGE = 5; // 0x5 field public static final int TYPE_UNLOAD_NANOAPP = 1; // 0x1 } @@ -6367,15 +6369,15 @@ package android.hardware.location { public final class NanoAppMessage implements android.os.Parcelable { method public static android.hardware.location.NanoAppMessage createMessageFromNanoApp(long, int, byte[], boolean); - method @FlaggedApi("android.chre.flags.reliable_message") @NonNull public static android.hardware.location.NanoAppMessage createMessageFromNanoApp(long, int, @NonNull byte[], boolean, boolean, int); + method @NonNull public static android.hardware.location.NanoAppMessage createMessageFromNanoApp(long, int, @NonNull byte[], boolean, boolean, int); method public static android.hardware.location.NanoAppMessage createMessageToNanoApp(long, int, byte[]); method public int describeContents(); method public byte[] getMessageBody(); - method @FlaggedApi("android.chre.flags.reliable_message") public int getMessageSequenceNumber(); + method public int getMessageSequenceNumber(); method public int getMessageType(); method public long getNanoAppId(); method public boolean isBroadcastMessage(); - method @FlaggedApi("android.chre.flags.reliable_message") public boolean isReliable(); + method public boolean isReliable(); method public void writeToParcel(android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; } @@ -6528,6 +6530,92 @@ package android.hardware.radio { field @NonNull public static final android.os.Parcelable.Creator CREATOR; } + @FlaggedApi("android.hardware.radio.hd_radio_emergency_alert_system") public final class RadioAlert implements android.os.Parcelable { + method public int describeContents(); + method @NonNull public java.util.List getInfoList(); + method public int getMessageType(); + method public int getStatus(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field public static final int CATEGORY_CBRNE = 10; // 0xa + field public static final int CATEGORY_ENV = 7; // 0x7 + field public static final int CATEGORY_FIRE = 5; // 0x5 + field public static final int CATEGORY_GEO = 0; // 0x0 + field public static final int CATEGORY_HEALTH = 6; // 0x6 + field public static final int CATEGORY_INFRA = 9; // 0x9 + field public static final int CATEGORY_MET = 1; // 0x1 + field public static final int CATEGORY_OTHER = 11; // 0xb + field public static final int CATEGORY_RESCUE = 4; // 0x4 + field public static final int CATEGORY_SAFETY = 2; // 0x2 + field public static final int CATEGORY_SECURITY = 3; // 0x3 + field public static final int CATEGORY_TRANSPORT = 8; // 0x8 + field public static final int CERTAINTY_LIKELY = 1; // 0x1 + field public static final int CERTAINTY_OBSERVED = 0; // 0x0 + field public static final int CERTAINTY_POSSIBLE = 2; // 0x2 + field public static final int CERTAINTY_UNKNOWN = 4; // 0x4 + field public static final int CERTAINTY_UNLIKELY = 3; // 0x3 + field @NonNull public static final android.os.Parcelable.Creator CREATOR; + field public static final int MESSAGE_TYPE_ALERT = 0; // 0x0 + field public static final int MESSAGE_TYPE_CANCEL = 2; // 0x2 + field public static final int MESSAGE_TYPE_UPDATE = 1; // 0x1 + field public static final int SEVERITY_EXTREME = 0; // 0x0 + field public static final int SEVERITY_MINOR = 3; // 0x3 + field public static final int SEVERITY_MODERATE = 2; // 0x2 + field public static final int SEVERITY_SEVERE = 1; // 0x1 + field public static final int SEVERITY_UNKNOWN = 4; // 0x4 + field public static final int STATUS_ACTUAL = 0; // 0x0 + field public static final int STATUS_EXERCISE = 1; // 0x1 + field public static final int STATUS_TEST = 2; // 0x2 + field public static final int URGENCY_EXPECTED = 1; // 0x1 + field public static final int URGENCY_FUTURE = 2; // 0x2 + field public static final int URGENCY_IMMEDIATE = 0; // 0x0 + field public static final int URGENCY_PAST = 3; // 0x3 + field public static final int URGENCY_UNKNOWN = 4; // 0x4 + } + + public static final class RadioAlert.AlertArea implements android.os.Parcelable { + method public int describeContents(); + method @NonNull public java.util.List getGeocodes(); + method @NonNull public java.util.List getPolygons(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator CREATOR; + } + + public static final class RadioAlert.AlertInfo implements android.os.Parcelable { + method public int describeContents(); + method @NonNull public java.util.List getAreas(); + method @NonNull public int[] getCategories(); + method public int getCertainty(); + method @NonNull public String getDescription(); + method @Nullable public String getLanguage(); + method public int getSeverity(); + method public int getUrgency(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator CREATOR; + } + + public static final class RadioAlert.Coordinate implements android.os.Parcelable { + method public int describeContents(); + method @FloatRange(from=-90.0, to=90.0) public double getLatitude(); + method @FloatRange(from=-180.0, to=180.0) public double getLongitude(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator CREATOR; + } + + public static final class RadioAlert.Geocode implements android.os.Parcelable { + method public int describeContents(); + method @NonNull public String getValue(); + method @NonNull public String getValueName(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator CREATOR; + } + + public static final class RadioAlert.Polygon implements android.os.Parcelable { + method public int describeContents(); + method @NonNull public java.util.List getCoordinates(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator CREATOR; + } + public class RadioManager { method @RequiresPermission(android.Manifest.permission.ACCESS_BROADCAST_RADIO) public void addAnnouncementListener(@NonNull java.util.Set, @NonNull android.hardware.radio.Announcement.OnListUpdatedListener); method @RequiresPermission(android.Manifest.permission.ACCESS_BROADCAST_RADIO) public void addAnnouncementListener(@NonNull java.util.concurrent.Executor, @NonNull java.util.Set, @NonNull android.hardware.radio.Announcement.OnListUpdatedListener); @@ -6663,6 +6751,7 @@ package android.hardware.radio { public static class RadioManager.ProgramInfo implements android.os.Parcelable { method public int describeContents(); + method @FlaggedApi("android.hardware.radio.hd_radio_emergency_alert_system") @Nullable public android.hardware.radio.RadioAlert getAlert(); method @Deprecated public int getChannel(); method @Nullable public android.hardware.radio.ProgramSelector.Identifier getLogicallyTunedTo(); method public android.hardware.radio.RadioMetadata getMetadata(); @@ -7251,6 +7340,7 @@ package android.media { method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setSupportedSystemUsages(@NonNull int[]); method @RequiresPermission(anyOf={android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED, android.Manifest.permission.MODIFY_AUDIO_ROUTING}) public void setVolumeGroupVolumeIndex(int, int, int); method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setVolumeIndexForAttributes(@NonNull android.media.AudioAttributes, int, int); + method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setWiredDeviceConnectionState(@NonNull android.media.AudioDeviceAttributes, int); method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public boolean supportsBluetoothVariableLatency(); method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void unregisterAudioPolicy(@NonNull android.media.audiopolicy.AudioPolicy); method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void unregisterAudioPolicyAsync(@NonNull android.media.audiopolicy.AudioPolicy); @@ -7260,6 +7350,8 @@ package android.media { field public static final int AUDIOFOCUS_FLAG_DELAY_OK = 1; // 0x1 field public static final int AUDIOFOCUS_FLAG_LOCK = 4; // 0x4 field public static final int AUDIOFOCUS_FLAG_PAUSES_ON_DUCKABLE_LOSS = 2; // 0x2 + field @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static final int DEVICE_CONNECTION_STATE_CONNECTED = 1; // 0x1 + field @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static final int DEVICE_CONNECTION_STATE_DISCONNECTED = 0; // 0x0 field public static final int DEVICE_VOLUME_BEHAVIOR_ABSOLUTE = 3; // 0x3 field public static final int DEVICE_VOLUME_BEHAVIOR_ABSOLUTE_ADJUST_ONLY = 5; // 0x5 field public static final int DEVICE_VOLUME_BEHAVIOR_ABSOLUTE_MULTI_MODE = 4; // 0x4 @@ -9429,6 +9521,7 @@ package android.media.tv.tuner.frontend { method public int getSignalStrength(); method public int getSnr(); method public int getSpectralInversion(); + method @FlaggedApi("android.media.tv.flags.tuner_w_apis") @NonNull public android.media.tv.tuner.frontend.StandardExt getStandardExt(); method @NonNull public int[] getStreamIds(); method public int getSymbolRate(); method @IntRange(from=0, to=65535) public int getSystemId(); @@ -9483,6 +9576,7 @@ package android.media.tv.tuner.frontend { field public static final int FRONTEND_STATUS_TYPE_SIGNAL_STRENGTH = 6; // 0x6 field public static final int FRONTEND_STATUS_TYPE_SNR = 1; // 0x1 field public static final int FRONTEND_STATUS_TYPE_SPECTRAL = 10; // 0xa + field @FlaggedApi("android.media.tv.flags.tuner_w_apis") public static final int FRONTEND_STATUS_TYPE_STANDARD_EXT = 47; // 0x2f field public static final int FRONTEND_STATUS_TYPE_STREAM_IDS = 39; // 0x27 field public static final int FRONTEND_STATUS_TYPE_SYMBOL_RATE = 7; // 0x7 field public static final int FRONTEND_STATUS_TYPE_T2_SYSTEM_ID = 29; // 0x1d @@ -9774,6 +9868,11 @@ package android.media.tv.tuner.frontend { method public default void onUnlocked(); } + @FlaggedApi("android.media.tv.flags.tuner_w_apis") public final class StandardExt { + method public int getDvbsStandardExt(); + method public int getDvbtStandardExt(); + } + } package android.media.voice { diff --git a/core/api/test-current.txt b/core/api/test-current.txt index 1ff8c510b6bf51050347c81092297fbf5dcf359f..79bea01883088766e6df14825dd2a44685394015 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -1892,8 +1892,7 @@ package android.hardware.soundtrigger { } @FlaggedApi("android.media.soundtrigger.manager_api") public static final class SoundTrigger.RecognitionConfig implements android.os.Parcelable { - ctor @Deprecated public SoundTrigger.RecognitionConfig(boolean, boolean, @Nullable android.hardware.soundtrigger.SoundTrigger.KeyphraseRecognitionExtra[], @Nullable byte[], int); - ctor public SoundTrigger.RecognitionConfig(boolean, boolean, @Nullable android.hardware.soundtrigger.SoundTrigger.KeyphraseRecognitionExtra[], @Nullable byte[]); + ctor @Deprecated public SoundTrigger.RecognitionConfig(boolean, boolean, @Nullable android.hardware.soundtrigger.SoundTrigger.KeyphraseRecognitionExtra[], @Nullable byte[]); } public static class SoundTrigger.RecognitionEvent { diff --git a/core/java/Android.bp b/core/java/Android.bp index d12e1bf77e179e66976c91ca095c95f022bfb9dd..9875efe043619cc0114dec3829b9f71c57a56bfa 100644 --- a/core/java/Android.bp +++ b/core/java/Android.bp @@ -344,6 +344,13 @@ filegroup { ], } +filegroup { + name: "service-crashrecovery-shared-srcs", + srcs: [ + "android/util/IndentingPrintWriter.java", + ], +} + filegroup { name: "incremental_aidl", srcs: [ diff --git a/core/java/android/animation/AnimationHandler.java b/core/java/android/animation/AnimationHandler.java index 4fc90ae9d22c819f0ef91d6b442d2948c77041c5..d84a4c12a2cd7e7530057c6db87eb496fbeb3dbe 100644 --- a/core/java/android/animation/AnimationHandler.java +++ b/core/java/android/animation/AnimationHandler.java @@ -81,6 +81,25 @@ public class AnimationHandler { */ private final ArrayList> mAnimatorRequestors = new ArrayList<>(); + /** + * The callbacks which will invoke {@link Animator#notifyEndListeners(boolean)} on next frame. + * It is only used if {@link Animator#setPostNotifyEndListenerEnabled(boolean)} sets true. + */ + private ArrayList mPendingEndAnimationListeners; + + /** + * The value of {@link Choreographer#getVsyncId()} at the last animation frame. + * It is only used if {@link Animator#setPostNotifyEndListenerEnabled(boolean)} sets true. + */ + private long mLastAnimationFrameVsyncId; + + /** + * The value of {@link Choreographer#getVsyncId()} when calling + * {@link Animator#notifyEndListeners(boolean)}. + * It is only used if {@link Animator#setPostNotifyEndListenerEnabled(boolean)} sets true. + */ + private long mEndAnimationFrameVsyncId; + private final Choreographer.FrameCallback mFrameCallback = new Choreographer.FrameCallback() { @Override public void doFrame(long frameTimeNanos) { @@ -332,6 +351,39 @@ public class AnimationHandler { } } + /** + * Returns the vsyncId of last animation frame if the given {@param currentVsyncId} matches + * the vsyncId from the end callback of animation. Otherwise it returns the given vsyncId. + * It only takes effect if {@link #postEndAnimationCallback(Runnable)} is called. + */ + public long getLastAnimationFrameVsyncId(long currentVsyncId) { + return currentVsyncId == mEndAnimationFrameVsyncId && mLastAnimationFrameVsyncId != 0 + ? mLastAnimationFrameVsyncId : currentVsyncId; + } + + /** Runs the given callback on next frame to notify the end of the animation. */ + public void postEndAnimationCallback(Runnable notifyEndAnimation) { + if (mPendingEndAnimationListeners == null) { + mPendingEndAnimationListeners = new ArrayList<>(); + } + mPendingEndAnimationListeners.add(notifyEndAnimation); + if (mPendingEndAnimationListeners.size() > 1) { + return; + } + final Choreographer choreographer = Choreographer.getInstance(); + mLastAnimationFrameVsyncId = choreographer.getVsyncId(); + getProvider().postFrameCallback(frame -> { + mEndAnimationFrameVsyncId = choreographer.getVsyncId(); + // The animation listeners can only get vsyncId of last animation frame in this frame + // by getLastAnimationFrameVsyncId(currentVsyncId). + while (mPendingEndAnimationListeners.size() > 0) { + mPendingEndAnimationListeners.remove(0).run(); + } + mEndAnimationFrameVsyncId = 0; + mLastAnimationFrameVsyncId = 0; + }); + } + private void doAnimationFrame(long frameTime) { long currentTime = SystemClock.uptimeMillis(); final int size = mAnimationCallbacks.size(); diff --git a/core/java/android/animation/Animator.java b/core/java/android/animation/Animator.java index c58624e9dfab5045a6049286e9ddc5bed6b21e23..d1eb8e8fa2ff200bf13b8a5a29816c5ef9cb2a75 100644 --- a/core/java/android/animation/Animator.java +++ b/core/java/android/animation/Animator.java @@ -16,6 +16,7 @@ package android.animation; +import android.annotation.CallSuper; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.TestApi; @@ -23,6 +24,7 @@ import android.compat.annotation.UnsupportedAppUsage; import android.content.pm.ActivityInfo.Config; import android.content.res.ConstantState; import android.os.Build; +import android.os.Trace; import android.util.LongArray; import java.util.ArrayList; @@ -72,6 +74,13 @@ public abstract class Animator implements Cloneable { */ private static long sBackgroundPauseDelay = 1000; + /** + * If true, when the animation plays normally to the end, the callback + * {@link AnimatorListener#onAnimationEnd(Animator)} will be scheduled on the next frame. + * It is to avoid the last animation frame being delayed by the implementation of listeners. + */ + static boolean sPostNotifyEndListenerEnabled; + /** * A cache of the values in a list. Used so that when calling the list, we have a copy * of it in case the list is modified while iterating. The array can be reused to avoid @@ -123,6 +132,14 @@ public abstract class Animator implements Cloneable { AnimationHandler.setOverrideAnimatorPausingSystemProperty(!enable); } + /** + * @see #sPostNotifyEndListenerEnabled + * @hide + */ + public static void setPostNotifyEndListenerEnabled(boolean enable) { + sPostNotifyEndListenerEnabled = enable; + } + /** * Starts this animation. If the animation has a nonzero startDelay, the animation will start * running after that delay elapses. A non-delayed animation will have its initial @@ -635,6 +652,28 @@ public abstract class Animator implements Cloneable { } } + void notifyEndListenersFromEndAnimation(boolean isReversing, boolean postNotifyEndListener) { + if (postNotifyEndListener) { + AnimationHandler.getInstance().postEndAnimationCallback( + () -> completeEndAnimation(isReversing, "postNotifyAnimEnd")); + } else { + completeEndAnimation(isReversing, "notifyAnimEnd"); + } + } + + @CallSuper + void completeEndAnimation(boolean isReversing, String notifyListenerTraceName) { + final boolean useTrace = mListeners != null && Trace.isTagEnabled(Trace.TRACE_TAG_VIEW); + if (useTrace) { + Trace.traceBegin(Trace.TRACE_TAG_VIEW, notifyListenerTraceName + + "-" + getClass().getSimpleName()); + } + notifyEndListeners(isReversing); + if (useTrace) { + Trace.traceEnd(Trace.TRACE_TAG_VIEW); + } + } + /** * Calls call for every item in list with animator and * isReverse as parameters. diff --git a/core/java/android/animation/AnimatorSet.java b/core/java/android/animation/AnimatorSet.java index ac3711366ec7f4833336bb44ce57946eab81c976..76098db2dc5b3a85319039fffd64c343d8725822 100644 --- a/core/java/android/animation/AnimatorSet.java +++ b/core/java/android/animation/AnimatorSet.java @@ -1442,6 +1442,8 @@ public final class AnimatorSet extends Animator implements AnimationHandler.Anim } private void endAnimation() { + final boolean postNotifyEndListener = sPostNotifyEndListenerEnabled && mListeners != null + && mLastFrameTime > 0; mStarted = false; mLastFrameTime = -1; mFirstFrame = -1; @@ -1453,7 +1455,12 @@ public final class AnimatorSet extends Animator implements AnimationHandler.Anim // No longer receive callbacks removeAnimationCallback(); - notifyEndListeners(mReversing); + notifyEndListenersFromEndAnimation(mReversing, postNotifyEndListener); + } + + @Override + void completeEndAnimation(boolean isReversing, String notifyListenerTraceName) { + super.completeEndAnimation(isReversing, notifyListenerTraceName); removeAnimationEndListener(); mSelfPulse = true; mReversing = false; diff --git a/core/java/android/animation/ValueAnimator.java b/core/java/android/animation/ValueAnimator.java index 5de7f387b2068f217b191c0438d4e0ea8ce1edb5..e849abaf4aec9990b75f22f8ab961ad9e50f1f7c 100644 --- a/core/java/android/animation/ValueAnimator.java +++ b/core/java/android/animation/ValueAnimator.java @@ -1289,6 +1289,8 @@ public class ValueAnimator extends Animator implements AnimationHandler.Animatio if (mAnimationEndRequested) { return; } + final boolean postNotifyEndListener = sPostNotifyEndListenerEnabled && mListeners != null + && mLastFrameTime > 0; removeAnimationCallback(); mAnimationEndRequested = true; @@ -1303,15 +1305,20 @@ public class ValueAnimator extends Animator implements AnimationHandler.Animatio mStartTime = -1; mRunning = false; mStarted = false; - notifyEndListeners(mReversing); - // mReversing needs to be reset *after* notifying the listeners for the end callbacks. - mReversing = false; + notifyEndListenersFromEndAnimation(mReversing, postNotifyEndListener); if (Trace.isTagEnabled(Trace.TRACE_TAG_VIEW)) { Trace.asyncTraceEnd(Trace.TRACE_TAG_VIEW, getNameForTrace(), System.identityHashCode(this)); } } + @Override + void completeEndAnimation(boolean isReversing, String notifyListenerTraceName) { + super.completeEndAnimation(isReversing, notifyListenerTraceName); + // mReversing needs to be reset *after* notifying the listeners for the end callbacks. + mReversing = false; + } + /** * Called internally to start an animation by adding it to the active animations list. Must be * called on the UI thread. diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index e7f4dbc24022dbdd7eee6d2bfeaec34cb32bd370..52251745f758d213140a3d6e0410a9c1bd863b4e 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -237,6 +237,7 @@ import com.android.internal.os.DebugStore; import com.android.internal.os.RuntimeInit; import com.android.internal.os.SafeZipPathValidatorCallback; import com.android.internal.os.SomeArgs; +import com.android.internal.os.logging.MetricsLoggerWrapper; import com.android.internal.policy.DecorView; import com.android.internal.util.ArrayUtils; import com.android.internal.util.FastPrintWriter; @@ -2680,7 +2681,10 @@ public final class ActivityThread extends ClientTransactionHandler handleUnstableProviderDied((IBinder)msg.obj, false); break; case REQUEST_ASSIST_CONTEXT_EXTRAS: + Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, + "handleRequestAssistContextExtras"); handleRequestAssistContextExtras((RequestAssistContextExtras)msg.obj); + Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); break; case TRANSLUCENT_CONVERSION_COMPLETE: handleTranslucentConversionComplete((IBinder)msg.obj, msg.arg1 == 1); @@ -7675,6 +7679,16 @@ public final class ActivityThread extends ClientTransactionHandler } } }); + + // Register callback to report native memory metrics post GC cleanup + if (Flags.reportPostgcMemoryMetricsReadonly() && + com.android.libcore.readonly.Flags.postCleanupApis()) { + VMRuntime.addPostCleanupCallback(new Runnable() { + @Override public void run() { + MetricsLoggerWrapper.logPostGcMemorySnapshot(); + } + }); + } } @UnsupportedAppUsage diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java index 2e3d22647a0f7cba2439d48a5a2b8dec7a6a0757..56538d92baa0cf71c55fbc5987af1fb76ae35d96 100644 --- a/core/java/android/app/AppOpsManager.java +++ b/core/java/android/app/AppOpsManager.java @@ -8755,21 +8755,9 @@ public class AppOpsManager { * Do a quick check for whether an application might be able to perform an operation. * This is not a security check; you must use {@link #noteOp(String, int, String, * String, String)} or {@link #startOp(String, int, String, String, String)} for your actual - * security checks, which also ensure that the given uid and package name are consistent. This - * function can just be used for a quick check to see if an operation has been disabled for the - * application, as an early reject of some work. This does not modify the time stamp or other - * data about the operation. - * - *

Important things this will not do (which you need to ultimate use - * {@link #noteOp(String, int, String, String, String)} or - * {@link #startOp(String, int, String, String, String)} to cover):

- *
    - *
  • Verifying the uid and package are consistent, so callers can't spoof - * their identity.
  • - *
  • Taking into account the current foreground/background state of the - * app; apps whose mode varies by this state will always be reported - * as {@link #MODE_ALLOWED}.
  • - *
+ * security checks. This function can just be used for a quick check to see if an operation has + * been disabled for the application, as an early reject of some work. This does not modify the + * time stamp or other data about the operation. * * @param op The operation to check. One of the OPSTR_* constants. * @param uid The user id of the application attempting to perform the operation. diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index ed6b85125e6625e7940cfa6961d7294a66ae42ef..fb5a12b49921ac53b8a72e0147f280a1e7e64596 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -132,6 +132,7 @@ import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.Immutable; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.os.SomeArgs; +import com.android.internal.pm.RoSystemFeatures; import com.android.internal.util.UserIcons; import dalvik.system.VMRuntime; @@ -822,6 +823,16 @@ public class ApplicationPackageManager extends PackageManager { @Override public Boolean recompute(HasSystemFeatureQuery query) { try { + // As an optimization, check first to see if the feature was defined at + // compile-time as either available or unavailable. + // TODO(b/203143243): Consider hoisting this optimization out of the cache + // after the trunk stable (build) flag has soaked and more features are + // defined at compile-time. + Boolean maybeHasSystemFeature = + RoSystemFeatures.maybeHasFeature(query.name, query.version); + if (maybeHasSystemFeature != null) { + return maybeHasSystemFeature.booleanValue(); + } return ActivityThread.currentActivityThread().getPackageManager(). hasSystemFeature(query.name, query.version); } catch (RemoteException e) { diff --git a/core/java/android/app/IActivityManager.aidl b/core/java/android/app/IActivityManager.aidl index ffb920b907abc178cf165ef70a7415fb963018e9..f880901429f773d1727481168f06f3f9717bb963 100644 --- a/core/java/android/app/IActivityManager.aidl +++ b/core/java/android/app/IActivityManager.aidl @@ -501,7 +501,7 @@ interface IActivityManager { in String shareDescription); void requestInteractiveBugReport(); - void requestBugReportWithExtraAttachment(in Uri extraAttachment); + void requestBugReportWithExtraAttachments(in List extraAttachment); void requestFullBugReport(); void requestRemoteBugReport(long nonce); boolean launchBugReportHandlerApp(); diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 64aa705447aa987c13751ffd431114ea4b93ba66..ca1662e6bfd0a94a013e4076b234c171f9e41409 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -11823,28 +11823,42 @@ public class Notification implements Parcelable sanitizeProgressColor(indeterminateColor, backgroundColor, defaultProgressColor)); } else { - // Ensure segment color contrasts. final List segments = new ArrayList<>(); + int totalLength = 0; for (Segment segment : mProgressSegments) { - segments.add(sanitizeSegment(segment, backgroundColor, - defaultProgressColor)); + final int length = segment.getLength(); + if (length <= 0) continue; + + try { + totalLength += Math.addExact(totalLength, length); + segments.add(sanitizeSegment(segment, backgroundColor, + defaultProgressColor)); + } catch (ArithmeticException e) { + totalLength = DEFAULT_PROGRESS_MAX; + segments.clear(); + break; + } } // Create default segment when no segments are provided. if (segments.isEmpty()) { - segments.add(sanitizeSegment(new Segment(100), backgroundColor, + totalLength = DEFAULT_PROGRESS_MAX; + segments.add(sanitizeSegment(new Segment(totalLength), backgroundColor, defaultProgressColor)); } // Ensure point color contrasts. final List points = new ArrayList<>(); for (Point point : mProgressPoints) { + final int position = point.getPosition(); + if (position < 0 || position > totalLength) continue; + points.add(sanitizePoint(point, backgroundColor, defaultProgressColor)); } model = new NotificationProgressModel(segments, points, - mProgress, mIsStyledByProgress); + Math.clamp(mProgress, 0, totalLength), mIsStyledByProgress); } return model; } diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java index 06bf67c1e86f989ccf069791f66090eee72a63e5..f2a36e90c8cee2fc1fc553ba0a1fbc3328879ce6 100644 --- a/core/java/android/app/NotificationManager.java +++ b/core/java/android/app/NotificationManager.java @@ -16,6 +16,8 @@ package android.app; +import static android.service.notification.Flags.notificationClassification; + import android.annotation.CallbackExecutor; import android.annotation.FlaggedApi; import android.annotation.IntDef; @@ -752,6 +754,11 @@ public class NotificationManager { INotificationManager service = getService(); String pkg = mContext.getPackageName(); + if (notificationClassification() + && NotificationChannel.SYSTEM_RESERVED_IDS.contains(notification.getChannelId())) { + return; + } + try { if (localLOGV) Log.v(TAG, pkg + ": notify(" + id + ", " + notification + ")"); service.enqueueNotificationWithTag(pkg, mContext.getOpPackageName(), tag, id, @@ -1131,6 +1138,10 @@ public class NotificationManager { * had before it was deleted. */ public void deleteNotificationChannel(String channelId) { + if (notificationClassification() + && NotificationChannel.SYSTEM_RESERVED_IDS.contains(channelId)) { + return; + } INotificationManager service = getService(); try { service.deleteNotificationChannel(mContext.getPackageName(), channelId); diff --git a/core/java/android/app/PropertyInvalidatedCache.java b/core/java/android/app/PropertyInvalidatedCache.java index c17da249f322be3d87171ddd796442d405a02a74..bc9e709420f10a8b77904736e5405009ec61c24b 100644 --- a/core/java/android/app/PropertyInvalidatedCache.java +++ b/core/java/android/app/PropertyInvalidatedCache.java @@ -16,38 +16,46 @@ package android.app; +import static android.text.TextUtils.formatSimple; + import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.TestApi; +import android.os.Binder; import android.os.Build; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.os.ParcelFileDescriptor; +import android.os.Process; import android.os.SystemClock; import android.os.SystemProperties; -import android.text.TextUtils; +import android.util.ArrayMap; import android.util.Log; import com.android.internal.annotations.GuardedBy; +import com.android.internal.annotations.VisibleForTesting; +import com.android.internal.os.ApplicationSharedMemory; import com.android.internal.os.BackgroundThread; -import com.android.internal.util.FastPrintWriter; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; +import dalvik.annotation.optimization.CriticalNative; +import dalvik.annotation.optimization.FastNative; + import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; -import java.util.HashMap; +import java.util.Arrays; import java.util.HashSet; +import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import java.util.Objects; import java.util.Random; import java.util.Set; import java.util.WeakHashMap; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicLong; /** @@ -75,10 +83,15 @@ public class PropertyInvalidatedCache { public abstract @Nullable R apply(@NonNull Q query); /** - * Return true if a query should not use the cache. The default implementation - * always uses the cache. + * Return true if a query should not use the cache. The default implementation returns true + * if the process UID differs from the calling UID. This is to prevent a binder caller from + * reading a cached value created due to a different binder caller, when processes are + * caching on behalf of other processes. */ public boolean shouldBypassCache(@NonNull Q query) { + if(android.multiuser.Flags.propertyInvalidatedCacheBypassMismatchedUids()) { + return Binder.getCallingUid() != Process.myUid(); + } return false; } }; @@ -197,19 +210,14 @@ public class PropertyInvalidatedCache { }; /** - * Verify that the property name conforms to the standard. Log a warning if this is not true. - * Note that this is done once in the cache constructor; it does not have to be very fast. + * Verify that the property name conforms to the standard and throw if this is not true. Note + * that this is done only once for a given property name; it does not have to be very fast. */ - private void validateCacheKey(String name) { - if (Build.IS_USER) { - // Do not bother checking keys in user builds. The keys will have been tested in - // eng/userdebug builds already. - return; - } + private static void throwIfInvalidCacheKey(String name) { for (int i = 0; i < sValidKeyPrefix.length; i++) { if (name.startsWith(sValidKeyPrefix[i])) return; } - Log.w(TAG, "invalid cache name: " + name); + throw new IllegalArgumentException("invalid cache name: " + name); } /** @@ -224,12 +232,25 @@ public class PropertyInvalidatedCache { } /** - * Reserved nonce values. Use isReservedNonce() to test for a reserved value. Note - * that all values cause the cache to be skipped. + * Reserved nonce values. Use isReservedNonce() to test for a reserved value. Note that all + * reserved values cause the cache to be skipped. */ - private static final int NONCE_UNSET = 0; + // This is the initial value of all cache keys. It is changed when a cache is invalidated. + @VisibleForTesting + static final int NONCE_UNSET = 0; + // This value is used in two ways. First, it is used internally to indicate that the cache is + // disabled for the current query. Secondly, it is used to globally disable the cache across + // the entire system. Once a cache is disabled, there is no way to enable it again. The + // global behavior is unused and will likely be removed in the future. private static final int NONCE_DISABLED = 1; + // The cache is corked, which means that clients must act as though the cache is always + // invalid. This is used when the server is processing updates that continuously invalidate + // caches. Rather than issuing individual invalidations (which has a performance penalty), + // the server corks the caches at the start of the process and uncorks at the end of the + // process. private static final int NONCE_CORKED = 2; + // The cache is bypassed for the current query. Unlike UNSET and CORKED, this value is never + // written to global store. private static final int NONCE_BYPASS = 3; private static boolean isReservedNonce(long n) { @@ -237,15 +258,27 @@ public class PropertyInvalidatedCache { } /** - * The names of the nonces + * The names of the reserved nonces. */ private static final String[] sNonceName = new String[]{ "unset", "disabled", "corked", "bypass" }; + // The standard tag for logging. private static final String TAG = "PropertyInvalidatedCache"; + + // Set this true to enable very chatty logging. Never commit this true. private static final boolean DEBUG = false; + + // Set this true to enable cache verification. On every cache hit, the cache will compare the + // cached value to a value pulled directly from the source. This completely negates any + // performance advantage of the cache. Enable it only to test if a particular cache is not + // being properly invalidated. private static final boolean VERIFY = false; + // The test mode. This is only used to ensure that the test functions setTestMode() and + // testPropertyName() are used correctly. + private static boolean sTestMode = false; + /** * The object-private lock. */ @@ -276,23 +309,6 @@ public class PropertyInvalidatedCache { */ private static final Object sCorkLock = new Object(); - /** - * Record the number of invalidate or cork calls that were nops because the cache was already - * corked. This is static because invalidation is done in a static context. Entries are - * indexed by the cache property. - */ - @GuardedBy("sCorkLock") - private static final HashMap sCorkedInvalidates = new HashMap<>(); - - /** - * A map of cache keys that we've "corked". (The values are counts.) When a cache key is - * corked, we skip the cache invalidate when the cache key is in the unset state --- that - * is, when a cache key is corked, an invalidation does not enable the cache if somebody - * else hasn't disabled it. - */ - @GuardedBy("sCorkLock") - private static final HashMap sCorks = new HashMap<>(); - /** * A lock for the global list of caches and cache keys. This must never be taken inside mLock * or sCorkLock. @@ -300,9 +316,11 @@ public class PropertyInvalidatedCache { private static final Object sGlobalLock = new Object(); /** - * A map of cache keys that have been disabled in the local process. When a key is - * disabled locally, existing caches are disabled and the key is saved in this map. - * Future cache instances that use the same key will be disabled in their constructor. + * A map of cache keys that have been disabled in the local process. When a key is disabled + * locally, existing caches are disabled and the key is saved in this map. Future cache + * instances that use the same key will be disabled in their constructor. Note that "disabled" + * means the cache is not used in this process. Invalidation still proceeds normally, because + * the cache may be used in other processes. */ @GuardedBy("sGlobalLock") private static final HashSet sDisabledKeys = new HashSet<>(); @@ -314,14 +332,6 @@ public class PropertyInvalidatedCache { @GuardedBy("sGlobalLock") private static final WeakHashMap sCaches = new WeakHashMap<>(); - /** - * Counts of the number of times a cache key was invalidated. Invalidation occurs in a static - * context with no cache object available, so this is a static map. Entries are indexed by - * the cache property. - */ - @GuardedBy("sGlobalLock") - private static final HashMap sInvalidates = new HashMap<>(); - /** * If sEnabled is false then all cache operations are stubbed out. Set * it to false inside test processes. @@ -333,12 +343,6 @@ public class PropertyInvalidatedCache { */ private final String mPropertyName; - /** - * Handle to the {@code mPropertyName} property, transitioning to non-{@code null} once the - * property exists on the system. - */ - private volatile SystemProperties.Handle mPropertyHandle; - /** * The name by which this cache is known. This should normally be the * binder call that is being cached, but the constructors default it to @@ -369,7 +373,13 @@ public class PropertyInvalidatedCache { private final LinkedHashMap mCache; /** - * The last value of the {@code mPropertyHandle} that we observed. + * The nonce handler for this cache. + */ + @GuardedBy("mLock") + private final NonceHandler mNonce; + + /** + * The last nonce value that was observed. */ @GuardedBy("mLock") private long mLastSeenNonce = NONCE_UNSET; @@ -384,6 +394,446 @@ public class PropertyInvalidatedCache { */ private final int mMaxEntries; + /** + * A class to manage cache keys. There is a single instance of this class for each unique key + * that is shared by all cache instances that use that key. This class is abstract; subclasses + * use different storage mechanisms for the nonces. + */ + private static abstract class NonceHandler { + // The name of the nonce. + final String mName; + + // A lock to synchronize corking and invalidation. + protected final Object mLock = new Object(); + + // Count the number of times the property name was invalidated. + @GuardedBy("mLock") + private int mInvalidated = 0; + + // Count the number of times invalidate or cork calls were nops because the cache was + // already corked. + @GuardedBy("mLock") + private int mCorkedInvalidates = 0; + + // Count the number of corks against this property name. This is not a statistic. It + // increases when the property is corked and decreases when the property is uncorked. + // Invalidation requests are ignored when the cork count is greater than zero. + @GuardedBy("mLock") + private int mCorks = 0; + + // True if this handler is in test mode. If it is in test mode, then nonces are stored + // and retrieved from mTestNonce. + @GuardedBy("mLock") + private boolean mTestMode = false; + + /** + * The local value of the handler, used during testing but also used directly by the + * NonceLocal handler. + */ + @GuardedBy("mLock") + protected long mTestNonce = NONCE_UNSET; + + /** + * The methods to get and set a nonce from whatever storage is being used. mLock may be + * held when these methods are called. Implementations that take locks must behave as + * though mLock could be held. + */ + abstract long getNonceInternal(); + abstract void setNonceInternal(long value); + + NonceHandler(@NonNull String name) { + mName = name; + } + + /** + * Get a nonce from storage. If the handler is in test mode, the nonce is returned from + * the local mTestNonce. + */ + long getNonce() { + synchronized (mLock) { + if (mTestMode) return mTestNonce; + } + return getNonceInternal(); + } + + /** + * Write a nonce to storage. If the handler is in test mode, the nonce is written to the + * local mTestNonce and storage is not affected. + */ + void setNonce(long val) { + synchronized (mLock) { + if (mTestMode) { + mTestNonce = val; + return; + } + } + setNonceInternal(val); + } + + /** + * Write the invalidation nonce for the property. + */ + void invalidate() { + if (!sEnabled) { + if (DEBUG) { + Log.d(TAG, formatSimple("cache invalidate %s suppressed", mName)); + } + return; + } + + synchronized (mLock) { + if (mCorks > 0) { + if (DEBUG) { + Log.d(TAG, "ignoring invalidation due to cork: " + mName); + } + mCorkedInvalidates++; + return; + } + + final long nonce = getNonce(); + if (nonce == NONCE_DISABLED) { + if (DEBUG) { + Log.d(TAG, "refusing to invalidate disabled cache: " + mName); + } + return; + } + + long newValue; + do { + newValue = NoPreloadHolder.next(); + } while (isReservedNonce(newValue)); + if (DEBUG) { + Log.d(TAG, formatSimple( + "invalidating cache [%s]: [%s] -> [%s]", + mName, nonce, Long.toString(newValue))); + } + // There is a small race with concurrent disables here. A compare-and-exchange + // property operation would be required to eliminate the race condition. + setNonce(newValue); + mInvalidated++; + } + } + + void cork() { + if (!sEnabled) { + if (DEBUG) { + Log.d(TAG, formatSimple("cache corking %s suppressed", mName)); + } + return; + } + + synchronized (mLock) { + int numberCorks = mCorks; + if (DEBUG) { + Log.d(TAG, formatSimple( + "corking %s: numberCorks=%s", mName, numberCorks)); + } + + // If we're the first ones to cork this cache, set the cache to the corked state so + // existing caches talk directly to their services while we've corked updates. + // Make sure we don't clobber a disabled cache value. + + // TODO: we can skip this property write and leave the cache enabled if the + // caller promises not to make observable changes to the cache backing state before + // uncorking the cache, e.g., by holding a read lock across the cork-uncork pair. + // Implement this more dangerous mode of operation if necessary. + if (numberCorks == 0) { + final long nonce = getNonce(); + if (nonce != NONCE_UNSET && nonce != NONCE_DISABLED) { + setNonce(NONCE_CORKED); + } + } else { + mCorkedInvalidates++; + } + mCorks++; + if (DEBUG) { + Log.d(TAG, "corked: " + mName); + } + } + } + + void uncork() { + if (!sEnabled) { + if (DEBUG) { + Log.d(TAG, formatSimple("cache uncorking %s suppressed", mName)); + } + return; + } + + synchronized (mLock) { + int numberCorks = --mCorks; + if (DEBUG) { + Log.d(TAG, formatSimple( + "uncorking %s: numberCorks=%s", mName, numberCorks)); + } + + if (numberCorks < 0) { + throw new AssertionError("cork underflow: " + mName); + } + if (numberCorks == 0) { + // The property is fully uncorked and can be invalidated normally. + invalidate(); + if (DEBUG) { + Log.d(TAG, "uncorked: " + mName); + } + } + } + } + + /** + * Globally (that is, system-wide) disable all caches that use this key. There is no way + * to re-enable these caches. + */ + void disable() { + if (!sEnabled) { + return; + } + synchronized (mLock) { + setNonce(NONCE_DISABLED); + } + } + + /** + * Put this handler in or out of test mode. Regardless of the current and next mode, the + * test nonce variable is reset to UNSET. + */ + void setTestMode(boolean mode) { + synchronized (mLock) { + mTestMode = mode; + mTestNonce = NONCE_UNSET; + } + } + + /** + * Return the statistics associated with the key. These statistics are not associated + * with any individual cache. + */ + record Stats(int invalidated, int corkedInvalidates) {} + Stats getStats() { + synchronized (mLock) { + return new Stats(mInvalidated, mCorkedInvalidates); + } + } + } + + /** + * Manage nonces that are stored in a system property. + */ + private static final class NonceSysprop extends NonceHandler { + // A handle to the property, for fast lookups. + private volatile SystemProperties.Handle mHandle; + + NonceSysprop(@NonNull String name) { + super(name); + } + + /** + * Retrieve the nonce from the system property. If the handle is null, this method + * attempts to create a handle. If handle creation fails, the method returns UNSET. If + * the handle is not null, the method returns a value read via the handle. This read + * occurs outside any lock. + */ + @Override + long getNonceInternal() { + if (mHandle == null) { + synchronized (mLock) { + if (mHandle == null) { + mHandle = SystemProperties.find(mName); + if (mHandle == null) { + return NONCE_UNSET; + } + } + } + } + return mHandle.getLong(NONCE_UNSET); + } + + /** + * Write a nonce to a system property. + */ + @Override + void setNonceInternal(long value) { + // Failing to set the nonce is a fatal error. Failures setting a system property have + // been reported; given that the failure is probably transient, this function includes + // a retry. + final String str = Long.toString(value); + RuntimeException failure = null; + for (int attempt = 0; attempt < PROPERTY_FAILURE_RETRY_LIMIT; attempt++) { + try { + SystemProperties.set(mName, str); + if (attempt > 0) { + // This log is not guarded. Based on known bug reports, it should + // occur once a week or less. The purpose of the log message is to + // identify the retries as a source of delay that might be otherwise + // be attributed to the cache itself. + Log.w(TAG, "Nonce set after " + attempt + " tries"); + } + return; + } catch (RuntimeException e) { + if (failure == null) { + failure = e; + } + try { + Thread.sleep(PROPERTY_FAILURE_RETRY_DELAY_MILLIS); + } catch (InterruptedException x) { + // Ignore this exception. The desired delay is only approximate and + // there is no issue if the sleep sometimes terminates early. + } + } + } + // This point is reached only if SystemProperties.set() fails at least once. + // Rethrow the first exception that was received. + throw failure; + } + } + + /** + * Manage nonces that are stored in shared memory. + */ + private static final class NonceSharedMem extends NonceHandler { + // The shared memory. + private volatile NonceStore mStore; + + // The index of the nonce in shared memory. + private volatile int mHandle = NonceStore.INVALID_NONCE_INDEX; + + // True if the string has been stored, ever. + private volatile boolean mRecorded = false; + + // A short name that is saved in shared memory. This is the portion of the property name + // that follows the prefix. + private final String mShortName; + + NonceSharedMem(@NonNull String name, @Nullable String prefix) { + super(name); + if ((prefix != null) && name.startsWith(prefix)) { + mShortName = name.substring(prefix.length()); + } else { + mShortName = name; + } + } + + // Fetch the nonce from shared memory. If the shared memory is not available, return + // UNSET. If the shared memory is available but the nonce name is not known (it may not + // have been invalidated by the server yet), return UNSET. + @Override + long getNonceInternal() { + if (mHandle == NonceStore.INVALID_NONCE_INDEX) { + if (mStore == null) { + mStore = NonceStore.getInstance(); + if (mStore == null) { + return NONCE_UNSET; + } + } + mHandle = mStore.getHandleForName(mShortName); + if (mHandle == NonceStore.INVALID_NONCE_INDEX) { + return NONCE_UNSET; + } + } + return mStore.getNonce(mHandle); + } + + // Set the nonce in shared mmory. If the shared memory is not available, throw an + // exception. Otherwise, if the nonce name has never been recorded, record it now and + // fetch the handle for the name. If the handle cannot be created, throw an exception. + @Override + void setNonceInternal(long value) { + if (mHandle == NonceStore.INVALID_NONCE_INDEX || !mRecorded) { + if (mStore == null) { + mStore = NonceStore.getInstance(); + if (mStore == null) { + throw new IllegalStateException("setNonce: shared memory not ready"); + } + } + // Always store the name before fetching the handle. storeName() is idempotent + // but does take a little time, so this code calls it just once. + mStore.storeName(mShortName); + mRecorded = true; + mHandle = mStore.getHandleForName(mShortName); + if (mHandle == NonceStore.INVALID_NONCE_INDEX) { + throw new IllegalStateException("setNonce: shared memory store failed"); + } + } + mStore.setNonce(mHandle, value); + } + } + + /** + * SystemProperties and shared storage are protected and cannot be written by random + * processes. So, for testing purposes, the NonceLocal handler stores the nonce locally. The + * NonceLocal uses the mTestNonce in the superclass, regardless of test mode. + */ + private static class NonceLocal extends NonceHandler { + // The saved nonce. + private long mValue; + + NonceLocal(@NonNull String name) { + super(name); + } + + @Override + long getNonceInternal() { + return mTestNonce; + } + + @Override + void setNonceInternal(long value) { + mTestNonce = value; + } + } + + /** + * Complete key prefixes. + */ + private static final String PREFIX_TEST = CACHE_KEY_PREFIX + "." + MODULE_TEST + "."; + private static final String PREFIX_SYSTEM = CACHE_KEY_PREFIX + "." + MODULE_SYSTEM + "."; + + /** + * A static list of nonce handlers, indexed by name. NonceHandlers can be safely shared by + * multiple threads, and can therefore be shared by multiple instances of the same cache, and + * with static calls (see {@link #invalidateCache}. Addition and removal are guarded by the + * global lock, to ensure that duplicates are not created. + */ + private static final ConcurrentHashMap sHandlers + = new ConcurrentHashMap<>(); + + // True if shared memory is flag-enabled, false otherwise. Read the flags exactly once. + private static final boolean sSharedMemoryAvailable = + com.android.internal.os.Flags.applicationSharedMemoryEnabled() + && android.app.Flags.picUsesSharedMemory(); + + // Return true if this cache can use shared memory for its nonce. Shared memory may be used + // if the module is the system. + private static boolean sharedMemoryOkay(@NonNull String name) { + return sSharedMemoryAvailable && name.startsWith(PREFIX_SYSTEM); + } + + /** + * Return the proper nonce handler, based on the property name. A handler is created if + * necessary. Before a handler is created, the name is checked, and an exception is thrown if + * the name is not valid. + */ + private static NonceHandler getNonceHandler(@NonNull String name) { + NonceHandler h = sHandlers.get(name); + if (h == null) { + synchronized (sGlobalLock) { + throwIfInvalidCacheKey(name); + h = sHandlers.get(name); + if (h == null) { + if (sharedMemoryOkay(name)) { + h = new NonceSharedMem(name, PREFIX_SYSTEM); + } else if (name.startsWith(PREFIX_TEST)) { + h = new NonceLocal(name); + } else { + h = new NonceSysprop(name); + } + sHandlers.put(name, h); + } + } + } + return h; + } + /** * Make a new property invalidated cache. This constructor names the cache after the * property name. New clients should prefer the constructor that takes an explicit @@ -415,8 +865,8 @@ public class PropertyInvalidatedCache { public PropertyInvalidatedCache(int maxEntries, @NonNull String propertyName, @NonNull String cacheName) { mPropertyName = propertyName; - validateCacheKey(mPropertyName); mCacheName = cacheName; + mNonce = getNonceHandler(mPropertyName); mMaxEntries = maxEntries; mComputer = new DefaultComputer<>(this); mCache = createMap(); @@ -439,8 +889,8 @@ public class PropertyInvalidatedCache { public PropertyInvalidatedCache(int maxEntries, @NonNull String module, @NonNull String api, @NonNull String cacheName, @NonNull QueryHandler computer) { mPropertyName = createPropertyName(module, api); - validateCacheKey(mPropertyName); mCacheName = cacheName; + mNonce = getNonceHandler(mPropertyName); mMaxEntries = maxEntries; mComputer = computer; mCache = createMap(); @@ -484,130 +934,69 @@ public class PropertyInvalidatedCache { } /** - * SystemProperties are protected and cannot be written (or read, usually) by random - * processes. So, for testing purposes, the methods have a bypass mode that reads and - * writes to a HashMap and does not go out to the SystemProperties at all. - */ - - // If true, the cache might be under test. If false, there is no testing in progress. - private static volatile boolean sTesting = false; - - // If sTesting is true then keys that are under test are in this map. - private static final HashMap sTestingPropertyMap = new HashMap<>(); - - /** - * Enable or disable testing. The testing property map is cleared every time this - * method is called. + * Enable or disable testing. The protocol requires that the mode toggle: for instance, it is + * illegal to clear the test mode if the test mode is already off. The purpose is solely to + * ensure that test clients do not forget to use the test mode properly, even though the + * current logic does not care. * @hide */ @TestApi public static void setTestMode(boolean mode) { - sTesting = mode; - synchronized (sTestingPropertyMap) { - sTestingPropertyMap.clear(); + synchronized (sGlobalLock) { + if (sTestMode == mode) { + throw new IllegalStateException("cannot set test mode redundantly: mode=" + mode); + } + sTestMode = mode; + if (mode) { + // No action when testing begins. + } else { + resetAfterTestLocked(); + } } } /** - * Enable testing the specific cache key. Only keys in the map are subject to testing. - * There is no method to stop testing a property name. Just disable the test mode. + * Clean up when testing ends. All handlers are reset out of test mode. NonceLocal handlers + * (MODULE_TEST) are reset to the NONCE_UNSET state. This has no effect on any other handlers + * that were not originally in test mode. */ - private static void testPropertyName(@NonNull String name) { - synchronized (sTestingPropertyMap) { - sTestingPropertyMap.put(name, (long) NONCE_UNSET); + @GuardedBy("sGlobalLock") + private static void resetAfterTestLocked() { + for (Iterator e = sHandlers.keys().asIterator(); e.hasNext(); ) { + String s = e.next(); + final NonceHandler h = sHandlers.get(s); + h.setTestMode(false); } } /** - * Enable testing the specific cache key. Only keys in the map are subject to testing. - * There is no method to stop testing a property name. Just disable the test mode. + * Enable testing the specific cache key. This API allows a test process to invalidate caches + * for which it would not otherwise have permission. Caches in test mode do NOT write their + * values to the system properties. The effect is local to the current process. Test mode + * must be true when this method is called. * @hide */ @TestApi public void testPropertyName() { - testPropertyName(mPropertyName); - } - - // Read the system property associated with the current cache. This method uses the - // handle for faster reading. - private long getCurrentNonce() { - if (sTesting) { - synchronized (sTestingPropertyMap) { - Long n = sTestingPropertyMap.get(mPropertyName); - if (n != null) { - return n; - } - } - } - - SystemProperties.Handle handle = mPropertyHandle; - if (handle == null) { - handle = SystemProperties.find(mPropertyName); - if (handle == null) { - return NONCE_UNSET; - } - mPropertyHandle = handle; - } - return handle.getLong(NONCE_UNSET); - } - - // Write the nonce in a static context. No handle is available. - private static void setNonce(String name, long val) { - if (sTesting) { - synchronized (sTestingPropertyMap) { - Long n = sTestingPropertyMap.get(name); - if (n != null) { - sTestingPropertyMap.put(name, val); - return; - } - } - } - RuntimeException failure = null; - for (int attempt = 0; attempt < PROPERTY_FAILURE_RETRY_LIMIT; attempt++) { - try { - SystemProperties.set(name, Long.toString(val)); - if (attempt > 0) { - // This log is not guarded. Based on known bug reports, it should - // occur once a week or less. The purpose of the log message is to - // identify the retries as a source of delay that might be otherwise - // be attributed to the cache itself. - Log.w(TAG, "Nonce set after " + attempt + " tries"); - } - return; - } catch (RuntimeException e) { - if (failure == null) { - failure = e; - } - try { - Thread.sleep(PROPERTY_FAILURE_RETRY_DELAY_MILLIS); - } catch (InterruptedException x) { - // Ignore this exception. The desired delay is only approximate and - // there is no issue if the sleep sometimes terminates early. - } + synchronized (sGlobalLock) { + if (sTestMode == false) { + throw new IllegalStateException("cannot test property name with test mode off"); } + mNonce.setTestMode(true); } - // This point is reached only if SystemProperties.set() fails at least once. - // Rethrow the first exception that was received. - throw failure; } - // Set the nonce in a static context. No handle is available. - private static long getNonce(String name) { - if (sTesting) { - synchronized (sTestingPropertyMap) { - Long n = sTestingPropertyMap.get(name); - if (n != null) { - return n; - } - } - } - return SystemProperties.getLong(name, NONCE_UNSET); + // Read the nonce associated with the current cache. + @GuardedBy("mLock") + private long getCurrentNonce() { + return mNonce.getNonce(); } /** - * Forget all cached values. - * TODO(216112648) remove this as a public API. Clients should invalidate caches, not clear - * them. + * Forget all cached values. This is used by a client when the server exits. Since the + * server has exited, the cache values are no longer valid, but the server is no longer + * present to invalidate the cache. Note that this is not necessary if the server is + * system_server, because the entire operating system reboots if that process exits. * @hide */ public final void clear() { @@ -674,7 +1063,7 @@ public class PropertyInvalidatedCache { } /** - * Disable the use of this cache in this process. This method is using internally and during + * Disable the use of this cache in this process. This method is used internally and during * testing. To disable a cache in normal code, use disableLocal(). A disabled cache cannot * be re-enabled. * @hide @@ -783,7 +1172,7 @@ public class PropertyInvalidatedCache { if (DEBUG) { if (!mDisabled) { - Log.d(TAG, TextUtils.formatSimple( + Log.d(TAG, formatSimple( "cache %s %s for %s", cacheName(), sNonceName[(int) currentNonce], queryToString(query))); } @@ -798,7 +1187,7 @@ public class PropertyInvalidatedCache { if (cachedResult != null) mHits++; } else { if (DEBUG) { - Log.d(TAG, TextUtils.formatSimple( + Log.d(TAG, formatSimple( "clearing cache %s of %d entries because nonce changed [%s] -> [%s]", cacheName(), mCache.size(), mLastSeenNonce, currentNonce)); @@ -824,7 +1213,7 @@ public class PropertyInvalidatedCache { if (currentNonce != afterRefreshNonce) { currentNonce = afterRefreshNonce; if (DEBUG) { - Log.d(TAG, TextUtils.formatSimple( + Log.d(TAG, formatSimple( "restarting %s %s because nonce changed in refresh", cacheName(), queryToString(query))); @@ -895,20 +1284,18 @@ public class PropertyInvalidatedCache { * @param name Name of the cache-key property to invalidate */ private static void disableSystemWide(@NonNull String name) { - if (!sEnabled) { - return; - } - setNonce(name, NONCE_DISABLED); + getNonceHandler(name).disable(); } /** - * Non-static convenience version of invalidateCache() for situations in which only a single - * PropertyInvalidatedCache is keyed on a particular property value. + * Non-static version of invalidateCache() for situations in which a cache instance is + * available. This is slightly faster than than the static versions because it does not have + * to look up the NonceHandler for a given property name. * @hide */ @TestApi public void invalidateCache() { - invalidateCache(mPropertyName); + mNonce.invalidate(); } /** @@ -931,59 +1318,7 @@ public class PropertyInvalidatedCache { * @hide */ public static void invalidateCache(@NonNull String name) { - if (!sEnabled) { - if (DEBUG) { - Log.w(TAG, TextUtils.formatSimple( - "cache invalidate %s suppressed", name)); - } - return; - } - - // Take the cork lock so invalidateCache() racing against corkInvalidations() doesn't - // clobber a cork-written NONCE_UNSET with a cache key we compute before the cork. - // The property service is single-threaded anyway, so we don't lose any concurrency by - // taking the cork lock around cache invalidations. If we see contention on this lock, - // we're invalidating too often. - synchronized (sCorkLock) { - Integer numberCorks = sCorks.get(name); - if (numberCorks != null && numberCorks > 0) { - if (DEBUG) { - Log.d(TAG, "ignoring invalidation due to cork: " + name); - } - final long count = sCorkedInvalidates.getOrDefault(name, (long) 0); - sCorkedInvalidates.put(name, count + 1); - return; - } - invalidateCacheLocked(name); - } - } - - @GuardedBy("sCorkLock") - private static void invalidateCacheLocked(@NonNull String name) { - // There's no race here: we don't require that values strictly increase, but instead - // only that each is unique in a single runtime-restart session. - final long nonce = getNonce(name); - if (nonce == NONCE_DISABLED) { - if (DEBUG) { - Log.d(TAG, "refusing to invalidate disabled cache: " + name); - } - return; - } - - long newValue; - do { - newValue = NoPreloadHolder.next(); - } while (isReservedNonce(newValue)); - if (DEBUG) { - Log.d(TAG, TextUtils.formatSimple( - "invalidating cache [%s]: [%s] -> [%s]", - name, nonce, Long.toString(newValue))); - } - // There is a small race with concurrent disables here. A compare-and-exchange - // property operation would be required to eliminate the race condition. - setNonce(name, newValue); - long invalidateCount = sInvalidates.getOrDefault(name, (long) 0); - sInvalidates.put(name, ++invalidateCount); + getNonceHandler(name).invalidate(); } /** @@ -1000,43 +1335,7 @@ public class PropertyInvalidatedCache { * @hide */ public static void corkInvalidations(@NonNull String name) { - if (!sEnabled) { - if (DEBUG) { - Log.w(TAG, TextUtils.formatSimple( - "cache cork %s suppressed", name)); - } - return; - } - - synchronized (sCorkLock) { - int numberCorks = sCorks.getOrDefault(name, 0); - if (DEBUG) { - Log.d(TAG, TextUtils.formatSimple( - "corking %s: numberCorks=%s", name, numberCorks)); - } - - // If we're the first ones to cork this cache, set the cache to the corked state so - // existing caches talk directly to their services while we've corked updates. - // Make sure we don't clobber a disabled cache value. - - // TODO(dancol): we can skip this property write and leave the cache enabled if the - // caller promises not to make observable changes to the cache backing state before - // uncorking the cache, e.g., by holding a read lock across the cork-uncork pair. - // Implement this more dangerous mode of operation if necessary. - if (numberCorks == 0) { - final long nonce = getNonce(name); - if (nonce != NONCE_UNSET && nonce != NONCE_DISABLED) { - setNonce(name, NONCE_CORKED); - } - } else { - final long count = sCorkedInvalidates.getOrDefault(name, (long) 0); - sCorkedInvalidates.put(name, count + 1); - } - sCorks.put(name, numberCorks + 1); - if (DEBUG) { - Log.d(TAG, "corked: " + name); - } - } + getNonceHandler(name).cork(); } /** @@ -1048,34 +1347,7 @@ public class PropertyInvalidatedCache { * @hide */ public static void uncorkInvalidations(@NonNull String name) { - if (!sEnabled) { - if (DEBUG) { - Log.w(TAG, TextUtils.formatSimple( - "cache uncork %s suppressed", name)); - } - return; - } - - synchronized (sCorkLock) { - int numberCorks = sCorks.getOrDefault(name, 0); - if (DEBUG) { - Log.d(TAG, TextUtils.formatSimple( - "uncorking %s: numberCorks=%s", name, numberCorks)); - } - - if (numberCorks < 1) { - throw new AssertionError("cork underflow: " + name); - } - if (numberCorks == 1) { - sCorks.remove(name); - invalidateCacheLocked(name); - if (DEBUG) { - Log.d(TAG, "uncorked: " + name); - } - } else { - sCorks.put(name, numberCorks - 1); - } - } + getNonceHandler(name).uncork(); } /** @@ -1104,6 +1376,8 @@ public class PropertyInvalidatedCache { @GuardedBy("mLock") private Handler mHandler; + private NonceHandler mNonce; + public AutoCorker(@NonNull String propertyName) { this(propertyName, DEFAULT_AUTO_CORK_DELAY_MS); } @@ -1117,31 +1391,35 @@ public class PropertyInvalidatedCache { } public void autoCork() { + synchronized (mLock) { + if (mNonce == null) { + mNonce = getNonceHandler(mPropertyName); + } + } + if (getLooper() == null) { // We're not ready to auto-cork yet, so just invalidate the cache immediately. if (DEBUG) { Log.w(TAG, "invalidating instead of autocorking early in init: " + mPropertyName); } - PropertyInvalidatedCache.invalidateCache(mPropertyName); + mNonce.invalidate(); return; } synchronized (mLock) { boolean alreadyQueued = mUncorkDeadlineMs >= 0; if (DEBUG) { - Log.w(TAG, TextUtils.formatSimple( + Log.d(TAG, formatSimple( "autoCork %s mUncorkDeadlineMs=%s", mPropertyName, mUncorkDeadlineMs)); } mUncorkDeadlineMs = SystemClock.uptimeMillis() + mAutoCorkDelayMs; if (!alreadyQueued) { getHandlerLocked().sendEmptyMessageAtTime(0, mUncorkDeadlineMs); - PropertyInvalidatedCache.corkInvalidations(mPropertyName); + mNonce.cork(); } else { - synchronized (sCorkLock) { - final long count = sCorkedInvalidates.getOrDefault(mPropertyName, (long) 0); - sCorkedInvalidates.put(mPropertyName, count + 1); - } + // Count this as a corked invalidation. + mNonce.invalidate(); } } } @@ -1149,7 +1427,7 @@ public class PropertyInvalidatedCache { private void handleMessage(Message msg) { synchronized (mLock) { if (DEBUG) { - Log.w(TAG, TextUtils.formatSimple( + Log.d(TAG, formatSimple( "handleMsesage %s mUncorkDeadlineMs=%s", mPropertyName, mUncorkDeadlineMs)); } @@ -1161,7 +1439,7 @@ public class PropertyInvalidatedCache { if (mUncorkDeadlineMs > nowMs) { mUncorkDeadlineMs = nowMs + mAutoCorkDelayMs; if (DEBUG) { - Log.w(TAG, TextUtils.formatSimple( + Log.d(TAG, formatSimple( "scheduling uncork at %s", mUncorkDeadlineMs)); } @@ -1169,10 +1447,10 @@ public class PropertyInvalidatedCache { return; } if (DEBUG) { - Log.w(TAG, "automatic uncorking " + mPropertyName); + Log.d(TAG, "automatic uncorking " + mPropertyName); } mUncorkDeadlineMs = -1; - PropertyInvalidatedCache.uncorkInvalidations(mPropertyName); + mNonce.uncork(); } } @@ -1207,7 +1485,7 @@ public class PropertyInvalidatedCache { Result resultToCompare = recompute(query); boolean nonceChanged = (getCurrentNonce() != mLastSeenNonce); if (!nonceChanged && !resultEquals(proposedResult, resultToCompare)) { - Log.e(TAG, TextUtils.formatSimple( + Log.e(TAG, formatSimple( "cache %s inconsistent for %s is %s should be %s", cacheName(), queryToString(query), proposedResult, resultToCompare)); @@ -1284,17 +1562,9 @@ public class PropertyInvalidatedCache { /** * Returns a list of caches alive at the current time. */ - @GuardedBy("sGlobalLock") private static @NonNull ArrayList getActiveCaches() { - return new ArrayList(sCaches.keySet()); - } - - /** - * Returns a list of the active corks in a process. - */ - private static @NonNull ArrayList> getActiveCorks() { - synchronized (sCorkLock) { - return new ArrayList>(sCorks.entrySet()); + synchronized (sGlobalLock) { + return new ArrayList(sCaches.keySet()); } } @@ -1309,6 +1579,7 @@ public class PropertyInvalidatedCache { final static String NAME_LIKE = "-name-like="; final static String PROPERTY_CONTAINS = "-property-has="; final static String PROPERTY_LIKE = "-property-like="; + final static String BRIEF = "-brief"; /** * Return true if any argument is a detailed specification switch. @@ -1354,6 +1625,21 @@ public class PropertyInvalidatedCache { return false; } + /** + * helper method to check if dump should be skipped due to zero values + * @param args takes command arguments to check if -brief is present + * @return True if dump should be skipped + */ + private boolean skipDump(String[] args) { + for (String a : args) { + if (a.equals(BRIEF)) { + return (mSkips[NONCE_CORKED] + mSkips[NONCE_UNSET] + mSkips[NONCE_DISABLED] + + mSkips[NONCE_BYPASS] + mHits + mMisses) == 0; + } + } + return false; + } + private void dumpContents(PrintWriter pw, boolean detailed, String[] args) { // If the user has requested specific caches and this is not one of them, return // immediately. @@ -1361,33 +1647,31 @@ public class PropertyInvalidatedCache { return; } - long invalidateCount; - long corkedInvalidates; - synchronized (sCorkLock) { - invalidateCount = sInvalidates.getOrDefault(mPropertyName, (long) 0); - corkedInvalidates = sCorkedInvalidates.getOrDefault(mPropertyName, (long) 0); - } + NonceHandler.Stats stats = mNonce.getStats(); synchronized (mLock) { - pw.println(TextUtils.formatSimple(" Cache Name: %s", cacheName())); - pw.println(TextUtils.formatSimple(" Property: %s", mPropertyName)); - final long skips = mSkips[NONCE_CORKED] + mSkips[NONCE_UNSET] + mSkips[NONCE_DISABLED] - + mSkips[NONCE_BYPASS]; - pw.println(TextUtils.formatSimple( - " Hits: %d, Misses: %d, Skips: %d, Clears: %d", - mHits, mMisses, skips, mClears)); - pw.println(TextUtils.formatSimple( - " Skip-corked: %d, Skip-unset: %d, Skip-bypass: %d, Skip-other: %d", - mSkips[NONCE_CORKED], mSkips[NONCE_UNSET], - mSkips[NONCE_BYPASS], mSkips[NONCE_DISABLED])); - pw.println(TextUtils.formatSimple( - " Nonce: 0x%016x, Invalidates: %d, CorkedInvalidates: %d", - mLastSeenNonce, invalidateCount, corkedInvalidates)); - pw.println(TextUtils.formatSimple( - " Current Size: %d, Max Size: %d, HW Mark: %d, Overflows: %d", - mCache.size(), mMaxEntries, mHighWaterMark, mMissOverflow)); - pw.println(TextUtils.formatSimple(" Enabled: %s", mDisabled ? "false" : "true")); - pw.println(""); + if (!skipDump(args)) { + pw.println(formatSimple(" Cache Name: %s", cacheName())); + pw.println(formatSimple(" Property: %s", mPropertyName)); + final long skips = + mSkips[NONCE_CORKED] + mSkips[NONCE_UNSET] + mSkips[NONCE_DISABLED] + + mSkips[NONCE_BYPASS]; + pw.println(formatSimple( + " Hits: %d, Misses: %d, Skips: %d, Clears: %d", + mHits, mMisses, skips, mClears)); + pw.println(formatSimple( + " Skip-corked: %d, Skip-unset: %d, Skip-bypass: %d, Skip-other: %d", + mSkips[NONCE_CORKED], mSkips[NONCE_UNSET], + mSkips[NONCE_BYPASS], mSkips[NONCE_DISABLED])); + pw.println(formatSimple( + " Nonce: 0x%016x, Invalidates: %d, CorkedInvalidates: %d", + mLastSeenNonce, stats.invalidated, stats.corkedInvalidates)); + pw.println(formatSimple( + " Current Size: %d, Max Size: %d, HW Mark: %d, Overflows: %d", + mCache.size(), mMaxEntries, mHighWaterMark, mMissOverflow)); + pw.println(formatSimple(" Enabled: %s", mDisabled ? "false" : "true")); + pw.println(""); + } // No specific cache was requested. This is the default, and no details // should be dumped. @@ -1404,23 +1688,7 @@ public class PropertyInvalidatedCache { String key = Objects.toString(entry.getKey()); String value = Objects.toString(entry.getValue()); - pw.println(TextUtils.formatSimple(" Key: %s\n Value: %s\n", key, value)); - } - } - } - - /** - * Dump the corking status. - */ - @GuardedBy("sCorkLock") - private static void dumpCorkInfo(PrintWriter pw) { - ArrayList> activeCorks = getActiveCorks(); - if (activeCorks.size() > 0) { - pw.println(" Corking Status:"); - for (int i = 0; i < activeCorks.size(); i++) { - Map.Entry entry = activeCorks.get(i); - pw.println(TextUtils.formatSimple(" Property Name: %s Count: %d", - entry.getKey(), entry.getValue())); + pw.println(formatSimple(" Key: %s\n Value: %s\n", key, value)); } } } @@ -1441,14 +1709,15 @@ public class PropertyInvalidatedCache { // then only that cache is reported. boolean detail = anyDetailed(args); - ArrayList activeCaches; - synchronized (sGlobalLock) { - activeCaches = getActiveCaches(); - if (!detail) { - dumpCorkInfo(pw); - } - } + if (sSharedMemoryAvailable) { + pw.println(" SharedMemory: enabled"); + NonceStore.getInstance().dump(pw, " ", detail); + } else { + pw.println(" SharedMemory: disabled"); + } + pw.println(); + ArrayList activeCaches = getActiveCaches(); for (int i = 0; i < activeCaches.size(); i++) { PropertyInvalidatedCache currentCache = activeCaches.get(i); currentCache.dumpContents(pw, detail, args); @@ -1482,4 +1751,363 @@ public class PropertyInvalidatedCache { Log.e(TAG, "Failed to dump PropertyInvalidatedCache instances"); } } + + /** + * Nonces in shared memory are supported by a string block that acts as a table of contents + * for nonce names, and an array of nonce values. There are two key design principles with + * respect to nonce maps: + * + * 1. It is always okay if a nonce value cannot be determined. If the nonce is UNSET, the + * cache is bypassed, which is always functionally correct. Clients do not take extraordinary + * measures to be current with the nonce map. Clients must be current with the nonce itself; + * this is achieved through the shared memory. + * + * 2. Once a name is mapped to a nonce index, the mapping is fixed for the lifetime of the + * system. It is only necessary to distinguish between the unmapped and mapped states. Once + * a client has mapped a nonce, that mapping is known to be good for the lifetime of the + * system. + * @hide + */ + @VisibleForTesting + public static class NonceStore { + + // A lock for the store. + private final Object mLock = new Object(); + + // The native pointer. This is not owned by this class. It is owned by + // ApplicationSharedMemory, and it disappears when the owning instance is closed. + private final long mPtr; + + // True if the memory is immutable. + private final boolean mMutable; + + // The maximum length of a string in the string block. The maximum length must fit in a + // byte, but a smaller value has been chosen to limit memory use. Because strings are + // run-length encoded, a string consumes at most MAX_STRING_LENGTH+1 bytes in the string + // block. + private static final int MAX_STRING_LENGTH = 63; + + // The raw byte block. Strings are stored as run-length encoded byte arrays. The first + // byte is the length of the following string. It is an axiom of the system that the + // string block is initially all zeros and that it is write-once memory: new strings are + // appended to existing strings, so there is never a need to revisit strings that have + // already been pulled from the string block. + @GuardedBy("mLock") + private final byte[] mStringBlock; + + // The expected hash code of the string block. If the hash over the string block equals + // this value, then the string block is valid. Otherwise, the block is not valid and + // should be re-read. An invalid block generally means that a client has read the shared + // memory while the server was still writing it. + @GuardedBy("mLock") + private int mBlockHash = 0; + + // The number of nonces that the native layer can hold. This is maintained for debug and + // logging. + private final int mMaxNonce; + + /** @hide */ + @VisibleForTesting + public NonceStore(long ptr, boolean mutable) { + mPtr = ptr; + mMutable = mutable; + mStringBlock = new byte[nativeGetMaxByte(ptr)]; + mMaxNonce = nativeGetMaxNonce(ptr); + refreshStringBlockLocked(); + } + + // The static lock for singleton acquisition. + private static Object sLock = new Object(); + + // NonceStore is supposed to be a singleton. + private static NonceStore sInstance; + + // Return the singleton instance. + static NonceStore getInstance() { + synchronized (sLock) { + if (sInstance == null) { + try { + ApplicationSharedMemory shmem = ApplicationSharedMemory.getInstance(); + sInstance = (shmem == null) + ? null + : new NonceStore(shmem.getSystemNonceBlock(), + shmem.isMutable()); + } catch (IllegalStateException e) { + // ApplicationSharedMemory.getInstance() throws if the shared memory is + // not yet mapped. Swallow the exception and leave sInstance null. + } + } + return sInstance; + } + } + + // The index value of an unmapped name. + public static final int INVALID_NONCE_INDEX = -1; + + // The highest string index extracted from the string block. -1 means no strings have + // been seen. This is used to skip strings that have already been processed, when the + // string block is updated. + @GuardedBy("mLock") + private int mHighestIndex = -1; + + // The number bytes of the string block that has been used. This is a statistics. + @GuardedBy("mLock") + private int mStringBytes = 0; + + // The number of partial reads on the string block. This is a statistic. + @GuardedBy("mLock") + private int mPartialReads = 0; + + // The number of times the string block was updated. This is a statistic. + @GuardedBy("mLock") + private int mStringUpdated = 0; + + // Map a string to a native index. + @GuardedBy("mLock") + private final ArrayMap mStringHandle = new ArrayMap<>(); + + // Update the string map from the current string block. The string block is not modified + // and the block hash is not checked. The function skips past strings that have already + // been read, and then processes any new strings. + @GuardedBy("mLock") + private void updateStringMapLocked() { + int index = 0; + int offset = 0; + while (offset < mStringBlock.length && mStringBlock[offset] != 0) { + if (index > mHighestIndex) { + // Only record the string if it has not been seen yet. + final String s = new String(mStringBlock, offset+1, mStringBlock[offset]); + mStringHandle.put(s, index); + mHighestIndex = index; + } + offset += mStringBlock[offset] + 1; + index++; + } + mStringBytes = offset; + } + + // Append a string to the string block and update the hash. This does not write the block + // to shared memory. + @GuardedBy("mLock") + private void appendStringToMapLocked(@NonNull String str) { + int offset = 0; + while (offset < mStringBlock.length && mStringBlock[offset] != 0) { + offset += mStringBlock[offset] + 1; + } + final byte[] strBytes = str.getBytes(); + + if (offset + strBytes.length >= mStringBlock.length) { + // Overflow. Do not add the string to the block; the string will remain undefined. + return; + } + + mStringBlock[offset] = (byte) strBytes.length; + offset++; + for (int i = 0; i < strBytes.length; i++, offset++) { + mStringBlock[offset] = strBytes[i]; + } + mBlockHash = Arrays.hashCode(mStringBlock); + } + + // Possibly update the string block. If the native shared memory has a new block hash, + // then read the new string block values from shared memory, as well as the new hash. + @GuardedBy("mLock") + private void refreshStringBlockLocked() { + if (mBlockHash == nativeGetByteBlockHash(mPtr)) { + // The fastest way to know that the shared memory string block has not changed. + return; + } + final int hash = nativeGetByteBlock(mPtr, mBlockHash, mStringBlock); + if (hash != Arrays.hashCode(mStringBlock)) { + // This is a partial read: ignore it. The next time someone needs this string + // the memory will be read again and should succeed. Set the local hash to + // zero to ensure that the next read attempt will actually read from shared + // memory. + mBlockHash = 0; + mPartialReads++; + return; + } + // The hash has changed. Update the strings from the byte block. + mStringUpdated++; + mBlockHash = hash; + updateStringMapLocked(); + } + + // Throw an exception if the string cannot be stored in the string block. + private static void throwIfBadString(@NonNull String s) { + if (s.length() == 0) { + throw new IllegalArgumentException("cannot store an empty string"); + } + if (s.length() > MAX_STRING_LENGTH) { + throw new IllegalArgumentException("cannot store a string longer than " + + MAX_STRING_LENGTH); + } + } + + // Throw an exception if the nonce handle is invalid. The handle is bad if it is out of + // range of allocated handles. Note that NONCE_HANDLE_INVALID will throw: this is + // important for setNonce(). + @GuardedBy("mLock") + private void throwIfBadHandle(int handle) { + if (handle < 0 || handle > mHighestIndex) { + throw new IllegalArgumentException("invalid nonce handle: " + handle); + } + } + + // Throw if the memory is immutable (the process does not have write permission). The + // exception mimics the permission-denied exception thrown when a process writes to an + // unauthorized system property. + private void throwIfImmutable() { + if (!mMutable) { + throw new RuntimeException("write permission denied"); + } + } + + // Add a string to the local copy of the block and write the block to shared memory. + // Return the index of the new string. If the string has already been recorded, the + // shared memory is not updated but the index of the existing string is returned. + public int storeName(@NonNull String str) { + synchronized (mLock) { + Integer handle = mStringHandle.get(str); + if (handle == null) { + throwIfImmutable(); + throwIfBadString(str); + appendStringToMapLocked(str); + nativeSetByteBlock(mPtr, mBlockHash, mStringBlock); + updateStringMapLocked(); + handle = mStringHandle.get(str); + } + return handle; + } + } + + // Retrieve the handle for a string. -1 is returned if the string is not found. + public int getHandleForName(@NonNull String str) { + synchronized (mLock) { + Integer handle = mStringHandle.get(str); + if (handle == null) { + refreshStringBlockLocked(); + handle = mStringHandle.get(str); + } + return (handle != null) ? handle : INVALID_NONCE_INDEX; + } + } + + // Thin wrapper around the native method. + public boolean setNonce(int handle, long value) { + synchronized (mLock) { + throwIfBadHandle(handle); + throwIfImmutable(); + return nativeSetNonce(mPtr, handle, value); + } + } + + public long getNonce(int handle) { + synchronized (mLock) { + throwIfBadHandle(handle); + return nativeGetNonce(mPtr, handle); + } + } + + /** + * Dump the nonce statistics + */ + public void dump(@NonNull PrintWriter pw, @NonNull String prefix, boolean detailed) { + synchronized (mLock) { + pw.println(formatSimple( + "%sStringsMapped: %d, BytesUsed: %d", + prefix, mHighestIndex, mStringBytes)); + pw.println(formatSimple( + "%sPartialReads: %d, StringUpdates: %d", + prefix, mPartialReads, mStringUpdated)); + + if (detailed) { + for (String s: mStringHandle.keySet()) { + int h = mStringHandle.get(s); + pw.println(formatSimple( + "%sHandle:%d Name:%s", prefix, h, s)); + } + } + } + } + } + + /** + * Return the maximum number of nonces supported in the native layer. + * + * @param mPtr the pointer to the native shared memory. + * @return the number of nonces supported by the shared memory. + */ + private static native int nativeGetMaxNonce(long mPtr); + + /** + * Return the maximum number of string bytes supported in the native layer. + * + * @param mPtr the pointer to the native shared memory. + * @return the number of string bytes supported by the shared memory. + */ + private static native int nativeGetMaxByte(long mPtr); + + /** + * Write the byte block and set the hash into shared memory. The method is relatively + * forgiving, in that any non-null byte array will be stored without error. The number of + * bytes will the lesser of the length of the block parameter and the size of the native + * array. The native layer performs no checks on either byte block or the hash. + * + * @param mPtr the pointer to the native shared memory. + * @param hash a value to be stored in the native block hash. + * @param block the byte array to be store. + */ + @FastNative + private static native void nativeSetByteBlock(long mPtr, int hash, @NonNull byte[] block); + + /** + * Retrieve the string block into the array and return the hash value. If the incoming hash + * value is the same as the hash in shared memory, the native function returns immediately + * without touching the block parameter. Note that a zero hash value will always cause shared + * memory to be read. The number of bytes read is the lesser of the length of the block + * parameter and the size of the native array. + * + * @param mPtr the pointer to the native shared memory. + * @param hash a value to be compared against the hash in the native layer. + * @param block an array to receive the bytes from the native layer. + * @return the hash from the native layer. + */ + @FastNative + private static native int nativeGetByteBlock(long mPtr, int hash, @NonNull byte[] block); + + /** + * Retrieve just the byte block hash from the native layer. The function is CriticalNative + * and thus very fast. + * + * @param mPtr the pointer to the native shared memory. + * @return the current native hash value. + */ + @CriticalNative + private static native int nativeGetByteBlockHash(long mPtr); + + /** + * Set a nonce at the specified index. The index is checked against the size of the native + * nonce array and the function returns true if the index is valid, and false. The function + * is CriticalNative and thus very fast. + * + * @param mPtr the pointer to the native shared memory. + * @param index the index of the nonce to set. + * @param value the value to set for the nonce. + * @return true if the index is inside the nonce array and false otherwise. + */ + @CriticalNative + private static native boolean nativeSetNonce(long mPtr, int index, long value); + + /** + * Get the nonce from the specified index. The index is checked against the size of the + * native nonce array; the function returns the nonce value if the index is valid, and 0 + * otherwise. The function is CriticalNative and thus very fast. + * + * @param mPtr the pointer to the native shared memory. + * @param index the index of the nonce to retrieve. + * @return the value of the specified nonce, of 0 if the index is out of bounds. + */ + @CriticalNative + private static native long nativeGetNonce(long mPtr, int index); } diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java index bd26db55052bd802028f5295b643be945f785871..c6b8f3baecf611516b26e64bfa9f716f500dc3d8 100644 --- a/core/java/android/app/SystemServiceRegistry.java +++ b/core/java/android/app/SystemServiceRegistry.java @@ -1750,10 +1750,13 @@ public final class SystemServiceRegistry { @Override public AdvancedProtectionManager createService(ContextImpl ctx) throws ServiceNotFoundException { - IBinder iBinder = ServiceManager.getServiceOrThrow( + IBinder iBinder = ServiceManager.getService( Context.ADVANCED_PROTECTION_SERVICE); IAdvancedProtectionService service = IAdvancedProtectionService.Stub.asInterface(iBinder); + if (service == null) { + return null; + } return new AdvancedProtectionManager(service); } }); diff --git a/core/java/android/app/TaskInfo.java b/core/java/android/app/TaskInfo.java index e882bb564db987f0b3caac085329b541d6007fb3..081ce31e08865673cd218d87317d5eccd7d730f7 100644 --- a/core/java/android/app/TaskInfo.java +++ b/core/java/android/app/TaskInfo.java @@ -345,6 +345,15 @@ public class TaskInfo { */ public AppCompatTaskInfo appCompatTaskInfo = AppCompatTaskInfo.create(); + /** + * The top activity's main window frame if it doesn't match the top activity bounds. + * {@code null}, otherwise. + * + * @hide + */ + @Nullable + public Rect topActivityMainWindowFrame; + TaskInfo() { // Do nothing } @@ -477,7 +486,8 @@ public class TaskInfo { && Objects.equals(capturedLink, that.capturedLink) && capturedLinkTimestamp == that.capturedLinkTimestamp && requestedVisibleTypes == that.requestedVisibleTypes - && appCompatTaskInfo.equalsForTaskOrganizer(that.appCompatTaskInfo); + && appCompatTaskInfo.equalsForTaskOrganizer(that.appCompatTaskInfo) + && Objects.equals(topActivityMainWindowFrame, that.topActivityMainWindowFrame); } /** @@ -553,6 +563,7 @@ public class TaskInfo { capturedLinkTimestamp = source.readLong(); requestedVisibleTypes = source.readInt(); appCompatTaskInfo = source.readTypedObject(AppCompatTaskInfo.CREATOR); + topActivityMainWindowFrame = source.readTypedObject(Rect.CREATOR); } /** @@ -606,6 +617,7 @@ public class TaskInfo { dest.writeLong(capturedLinkTimestamp); dest.writeInt(requestedVisibleTypes); dest.writeTypedObject(appCompatTaskInfo, flags); + dest.writeTypedObject(topActivityMainWindowFrame, flags); } @Override @@ -649,6 +661,7 @@ public class TaskInfo { + " capturedLinkTimestamp=" + capturedLinkTimestamp + " requestedVisibleTypes=" + requestedVisibleTypes + " appCompatTaskInfo=" + appCompatTaskInfo + + " topActivityMainWindowFrame=" + topActivityMainWindowFrame + "}"; } } diff --git a/core/java/android/app/appfunctions/AppFunctionManager.java b/core/java/android/app/appfunctions/AppFunctionManager.java index dca433696fe744d679541c435cd8156f5a4de088..5b478d09ecdc3a843c2c2d8d2d18a39b52fb6fe5 100644 --- a/core/java/android/app/appfunctions/AppFunctionManager.java +++ b/core/java/android/app/appfunctions/AppFunctionManager.java @@ -42,12 +42,38 @@ import java.util.concurrent.Executor; import java.util.function.Consumer; /** - * Provides app functions related functionalities. + * Provides access to app functions. * - *

App function is a specific piece of functionality that an app offers to the system. These - * functionalities can be integrated into various system features. + *

An app function is a piece of functionality that apps expose to the system for cross-app + * orchestration. + * + *

**Developer Workflow:** + * + *

Most developers should interact with app functions through the AppFunctions SDK. This SDK + * library offers a more convenient and type-safe way to represent the inputs and outputs of an app + * function, using custom data classes called "AppFunction Schemas". + * + *

The suggested way to build an app function is to use the AppFunctions SDK. The SDK provides + * custom data classes (AppFunctions Schemas) and handles the conversion to the underlying {@link + * android.app.appsearch.GenericDocument}/{@link android.os.Bundle} format used in {@link + * ExecuteAppFunctionRequest} and {@link ExecuteAppFunctionResponse}. + * + *

**Discovering (Listing) App Functions:** + * + *

When there is a package change or the device starts up, the metadata of available functions is + * indexed on-device by {@link AppSearchManager}. AppSearch stores the indexed information as a + * {@code AppFunctionStaticMetadata} document. This allows other apps and the app itself to discover + * these functions using the AppSearch search APIs. Visibility to this metadata document is based on + * the packages that have visibility to the app providing the app functions. + * + *

**Executing App Functions:** + * + *

Requests to execute a function are built using the {@link ExecuteAppFunctionRequest} class. + * Callers need the {@code android.permission.EXECUTE_APP_FUNCTIONS} or {@code + * android.permission.EXECUTE_APP_FUNCTIONS_TRUSTED} permission to execute app functions from other + * apps. An app has automatic visibility to its own functions and doesn't need these permissions to + * call its own functions via {@code AppFunctionManager}. */ -// TODO(b/357551503): Implement get and set enabled app function APIs. @FlaggedApi(FLAG_ENABLE_APP_FUNCTION_MANAGER) @SystemService(Context.APP_FUNCTION_SERVICE) public final class AppFunctionManager { @@ -111,17 +137,19 @@ public final class AppFunctionManager { * @param request the request to execute the app function * @param executor the executor to run the callback * @param cancellationSignal the cancellation signal to cancel the execution. - * @param callback the callback to receive the function execution result. if the calling app - * does not own the app function or does not have {@code + * @param callback the callback to receive the function execution result. + *

If the calling app does not own the app function or does not have {@code * android.permission.EXECUTE_APP_FUNCTIONS_TRUSTED} or {@code * android.permission.EXECUTE_APP_FUNCTIONS}, the execution result will contain {@code * ExecuteAppFunctionResponse.RESULT_DENIED}. + *

If the caller only has {@code android.permission.EXECUTE_APP_FUNCTIONS} but the + * function requires {@code android.permission.EXECUTE_APP_FUNCTIONS_TRUSTED}, the execution + * result will contain {@code ExecuteAppFunctionResponse.RESULT_DENIED} + *

If the function requested for execution is disabled, then the execution result will + * contain {@code ExecuteAppFunctionResponse.RESULT_DISABLED} + *

If the cancellation signal is issued, the operation is cancelled and no response is + * returned to the caller. */ - // TODO(b/357551503): Document the behavior when the cancellation signal is issued. - // TODO(b/360864791): Document that apps can opt-out from being executed by callers with - // EXECUTE_APP_FUNCTIONS and how a caller knows whether a function is opted out. - // TODO(b/357551503): Update documentation when get / set APIs are implemented that this will - // also return RESULT_DENIED if the app function is disabled. @RequiresPermission( anyOf = { Manifest.permission.EXECUTE_APP_FUNCTIONS_TRUSTED, diff --git a/core/java/android/app/appfunctions/ExecuteAppFunctionRequest.java b/core/java/android/app/appfunctions/ExecuteAppFunctionRequest.java index fe7fd8837624ebfe57c46634e30af10608c58843..4c5e8c130a73790234b88597c02c465aabaa42cb 100644 --- a/core/java/android/app/appfunctions/ExecuteAppFunctionRequest.java +++ b/core/java/android/app/appfunctions/ExecuteAppFunctionRequest.java @@ -50,12 +50,12 @@ public final class ExecuteAppFunctionRequest implements Parcelable { } }; - /** Returns the package name of the app that hosts the function. */ + /** Returns the package name of the app that hosts/owns the function. */ @NonNull private final String mTargetPackageName; /** - * Returns the unique string identifier of the app function to be executed. TODO(b/357551503): - * Document how callers can get the available function identifiers. + * The unique string identifier of the app function to be executed. This identifier is used to + * execute a specific app function. */ @NonNull private final String mFunctionIdentifier; @@ -69,8 +69,6 @@ public final class ExecuteAppFunctionRequest implements Parcelable { * *

The document may have missing parameters. Developers are advised to implement defensive * handling measures. - * - *

TODO(b/357551503): Document how function parameters can be obtained for function execution */ @NonNull private final GenericDocumentWrapper mParameters; @@ -91,7 +89,19 @@ public final class ExecuteAppFunctionRequest implements Parcelable { return mTargetPackageName; } - /** Returns the unique string identifier of the app function to be executed. */ + /** + * Returns the unique string identifier of the app function to be executed. + * + *

When there is a package change or the device starts up, the metadata of available + * functions is indexed by AppSearch. AppSearch stores the indexed information as {@code + * AppFunctionStaticMetadata} document. + * + *

The ID can be obtained by querying the {@code AppFunctionStaticMetadata} documents from + * AppSearch. + * + *

If the {@code functionId} provided is invalid, the caller will get an invalid argument + * response. + */ @NonNull public String getFunctionIdentifier() { return mFunctionIdentifier; @@ -103,6 +113,12 @@ public final class ExecuteAppFunctionRequest implements Parcelable { * *

The bundle may have missing parameters. Developers are advised to implement defensive * handling measures. + * + *

Similar to {@link #getFunctionIdentifier()} the parameters required by a function can be + * obtained by querying AppSearch for the corresponding {@code AppFunctionStaticMetadata}. This + * metadata will contain enough information for the caller to resolve the required parameters + * either using information from the metadata itself or using the AppFunction SDK for function + * callers. */ @NonNull public GenericDocument getParameters() { diff --git a/core/java/android/app/appfunctions/ExecuteAppFunctionResponse.java b/core/java/android/app/appfunctions/ExecuteAppFunctionResponse.java index a879b1ba6b5ce7b594b203435177c0b828edd4e0..c907ef11428613d7aef4e3581f82108879c7d263 100644 --- a/core/java/android/app/appfunctions/ExecuteAppFunctionResponse.java +++ b/core/java/android/app/appfunctions/ExecuteAppFunctionResponse.java @@ -79,14 +79,15 @@ public final class ExecuteAppFunctionResponse implements Parcelable { /** The caller does not have the permission to execute an app function. */ public static final int RESULT_DENIED = 1; - /** An unknown error occurred while processing the call in the AppFunctionService. */ - public static final int RESULT_APP_UNKNOWN_ERROR = 2; - /** - * An internal error occurred within AppFunctionManagerService. + * An unknown error occurred while processing the call in the AppFunctionService. * - *

This error may be considered similar to {@link IllegalStateException} + *

This error is thrown when the service is connected in the remote application but an + * unexpected error is thrown from the bound application. */ + public static final int RESULT_APP_UNKNOWN_ERROR = 2; + + /** An internal unexpected error coming from the system. */ public static final int RESULT_INTERNAL_ERROR = 3; /** diff --git a/core/java/android/app/metrics.aconfig b/core/java/android/app/metrics.aconfig new file mode 100644 index 0000000000000000000000000000000000000000..55d9c2d6b347075173e6662e93051f761cb3688e --- /dev/null +++ b/core/java/android/app/metrics.aconfig @@ -0,0 +1,19 @@ +package: "android.app" +container: "system" + +flag { + namespace: "system_performance" + name: "report_postgc_memory_metrics" + is_exported: false + description: "Controls whether to report memory metrics post GC cleanup" + bug: "331243037" +} + +flag { + namespace: "system_performance" + name: "report_postgc_memory_metrics_readonly" + is_exported: false + description: "Controls whether to report memory metrics post GC cleanup (readonly)" + bug: "331243037" + is_fixed_read_only: true +} diff --git a/core/java/android/app/notification.aconfig b/core/java/android/app/notification.aconfig index 37fa9a26b91cbf57c61fe9748674a4944709992b..1d4c18f6a62c79be7b202296915012b8a0bf7e8b 100644 --- a/core/java/android/app/notification.aconfig +++ b/core/java/android/app/notification.aconfig @@ -286,4 +286,11 @@ flag { namespace: "systemui" description: "Adds logging for notification/modes backup and restore events" bug: "289524803" -} \ No newline at end of file +} + +flag { + name: "notification_classification_ui" + namespace: "systemui" + description: "Adds UI for NAS classification of notifications" + bug: "367996732" +} diff --git a/core/java/android/app/performance.aconfig b/core/java/android/app/performance.aconfig new file mode 100644 index 0000000000000000000000000000000000000000..7c6989e4f3e9565f0f794b44c8f44be42603e669 --- /dev/null +++ b/core/java/android/app/performance.aconfig @@ -0,0 +1,11 @@ +package: "android.app" +container: "system" + +flag { + namespace: "system_performance" + name: "pic_uses_shared_memory" + is_exported: true + is_fixed_read_only: true + description: "PropertyInvalidatedCache uses shared memory for nonces." + bug: "366552454" +} diff --git a/core/java/android/appwidget/AppWidgetHostView.java b/core/java/android/appwidget/AppWidgetHostView.java index 933c336c13595e28901a8e9c7a520e2a8848550d..df1028e9e04c4f53961a2aafdb22874672979559 100644 --- a/core/java/android/appwidget/AppWidgetHostView.java +++ b/core/java/android/appwidget/AppWidgetHostView.java @@ -716,8 +716,8 @@ public class AppWidgetHostView extends FrameLayout implements AppWidgetHost.AppW mCurrentSize); } else { applyContent(null, false, e); + mLastExecutionSignal = null; } - mLastExecutionSignal = null; } } diff --git a/core/java/android/appwidget/OWNERS b/core/java/android/appwidget/OWNERS index 19108330376906917d6179f6bbb8f5dda54bef64..0e85d5bd7a27690853e1102310f8bc33200b542c 100644 --- a/core/java/android/appwidget/OWNERS +++ b/core/java/android/appwidget/OWNERS @@ -3,3 +3,5 @@ sihua@google.com pinyaoting@google.com suprabh@google.com sunnygoyal@google.com +zakcohen@google.com +shamalip@google.com diff --git a/core/java/android/appwidget/flags.aconfig b/core/java/android/appwidget/flags.aconfig index ac9263c2cab5114ead0611e1c544598df427397a..3839b5fa25990d7f7fb308adc5e5a5f828d6054f 100644 --- a/core/java/android/appwidget/flags.aconfig +++ b/core/java/android/appwidget/flags.aconfig @@ -74,3 +74,12 @@ flag { purpose: PURPOSE_BUGFIX } } + +flag { + name: "use_smaller_app_widget_radius" + namespace: "app_widgets" + description: "Updates system corner radius for app widgets to 24.dp instead of 28.dp" + bug: "373351337" + is_exported: true + is_fixed_read_only: true +} diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index f7195284987226a9b48b00e06f87dbe2bc9b761f..66ef004c5298235e50cf5e58fac981f854a946c4 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -20,6 +20,7 @@ import static android.app.sdksandbox.SdkSandboxManager.ACTION_START_SANDBOXED_AC import static android.content.ContentProvider.maybeAddUserId; import static android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE; import static android.security.Flags.FLAG_FRP_ENFORCEMENT; +import static android.security.Flags.FLAG_PREVENT_INTENT_REDIRECT; import static android.security.Flags.preventIntentRedirect; import android.Manifest; @@ -40,7 +41,10 @@ import android.app.Activity; import android.app.ActivityThread; import android.app.AppGlobals; import android.app.StatusBarManager; +import android.app.compat.CompatChanges; import android.bluetooth.BluetoothDevice; +import android.compat.annotation.ChangeId; +import android.compat.annotation.Overridable; import android.compat.annotation.UnsupportedAppUsage; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; @@ -670,6 +674,11 @@ import java.util.TimeZone; public class Intent implements Parcelable, Cloneable { private static final String TAG = "Intent"; + /** @hide */ + @ChangeId + @Overridable + public static final long ENABLE_PREVENT_INTENT_REDIRECT = 29076063L; + private static final String ATTR_ACTION = "action"; private static final String TAG_CATEGORIES = "categories"; private static final String ATTR_CATEGORY = "category"; @@ -11663,6 +11672,7 @@ public class Intent implements Parcelable, Cloneable { Log.w(TAG, "Failure filling in extras", e); } } + mCreatorTokenInfo = other.mCreatorTokenInfo; if (mayHaveCopiedUris && mContentUserHint == UserHandle.USER_CURRENT && other.mContentUserHint != UserHandle.USER_CURRENT) { mContentUserHint = other.mContentUserHint; @@ -12215,6 +12225,13 @@ public class Intent implements Parcelable, Cloneable { mCreatorTokenInfo = null; } + /** @hide */ + public void removeCreatorToken() { + if (mCreatorTokenInfo != null) { + mCreatorTokenInfo.mCreatorToken = null; + } + } + /** @hide */ public @Nullable IBinder getCreatorToken() { return mCreatorTokenInfo == null ? null : mCreatorTokenInfo.mCreatorToken; @@ -12240,9 +12257,9 @@ public class Intent implements Parcelable, Cloneable { * @hide */ public void collectExtraIntentKeys() { - if (!preventIntentRedirect()) return; + if (!isPreventIntentRedirectEnabled()) return; - if (mExtras != null && !mExtras.isParcelled() && !mExtras.isEmpty()) { + if (mExtras != null && !mExtras.isEmpty()) { for (String key : mExtras.keySet()) { if (mExtras.get(key) instanceof Intent) { if (mCreatorTokenInfo == null) { @@ -12257,6 +12274,14 @@ public class Intent implements Parcelable, Cloneable { } } + /** + * @hide + */ + public static boolean isPreventIntentRedirectEnabled() { + return preventIntentRedirect() && CompatChanges.isChangeEnabled( + ENABLE_PREVENT_INTENT_REDIRECT); + } + /** @hide */ public void checkCreatorToken() { if (mExtras == null) return; @@ -12281,6 +12306,20 @@ public class Intent implements Parcelable, Cloneable { mExtras.setIsIntentExtra(); } + /** + * When an intent comes from another app or component as an embedded extra intent, the system + * creates a token to identify the creator of this foreign intent. If this token is missing or + * invalid, the system will block the launch of this intent. If it contains a valid token, the + * system will perform verification against the creator to block launching target it has no + * permission to launch or block it from granting URI access to the tagert it cannot access. + * This method provides a way to opt out this feature. + */ + @FlaggedApi(FLAG_PREVENT_INTENT_REDIRECT) + public void removeLaunchSecurityProtection() { + mExtendedFlags &= ~EXTENDED_FLAG_MISSING_CREATOR_OR_INVALID_TOKEN; + removeCreatorTokenInfo(); + } + public void writeToParcel(Parcel out, int flags) { out.writeString8(mAction); Uri.writeToParcel(out, mData); @@ -12331,7 +12370,7 @@ public class Intent implements Parcelable, Cloneable { out.writeInt(0); } - if (preventIntentRedirect()) { + if (isPreventIntentRedirectEnabled()) { if (mCreatorTokenInfo == null) { out.writeInt(0); } else { @@ -12398,7 +12437,7 @@ public class Intent implements Parcelable, Cloneable { mOriginalIntent = new Intent(in); } - if (preventIntentRedirect()) { + if (isPreventIntentRedirectEnabled()) { if (in.readInt() != 0) { mCreatorTokenInfo = new CreatorTokenInfo(); mCreatorTokenInfo.mCreatorToken = in.readStrongBinder(); @@ -12802,6 +12841,8 @@ public class Intent implements Parcelable, Cloneable { private boolean isImageCaptureIntent() { return (MediaStore.ACTION_IMAGE_CAPTURE.equals(mAction) || MediaStore.ACTION_IMAGE_CAPTURE_SECURE.equals(mAction) + || MediaStore.ACTION_MOTION_PHOTO_CAPTURE.equals(mAction) + || MediaStore.ACTION_MOTION_PHOTO_CAPTURE_SECURE.equals(mAction) || MediaStore.ACTION_VIDEO_CAPTURE.equals(mAction)); } diff --git a/core/java/android/content/pm/IPackageInstaller.aidl b/core/java/android/content/pm/IPackageInstaller.aidl index c911326ccffd2af794cea3385e126783b6fb1d00..ecea47944c72aeb72474a3496e322f9eb4c8ab26 100644 --- a/core/java/android/content/pm/IPackageInstaller.aidl +++ b/core/java/android/content/pm/IPackageInstaller.aidl @@ -94,9 +94,9 @@ interface IPackageInstaller { @JavaPassthrough(annotation="@android.annotation.RequiresPermission(anyOf={android.Manifest.permission.INSTALL_PACKAGES,android.Manifest.permission.REQUEST_INSTALL_PACKAGES})") void reportUnarchivalStatus(int unarchiveId, int status, long requiredStorageBytes, in PendingIntent userActionIntent, in UserHandle userHandle); - @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT)") + @EnforcePermission("VERIFICATION_AGENT") int getVerificationPolicy(); - @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT)") + @EnforcePermission("VERIFICATION_AGENT") boolean setVerificationPolicy(int policy); } diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index e985f88f38fc0c012081f17ea9cbf43564000184..47d9f09a57277cd5d24dd5207e8f738f1ac14f1b 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -4863,6 +4863,64 @@ public abstract class PackageManager { public static final String FEATURE_CONTEXTUAL_SEARCH_HELPER = "android.software.contextualsearch"; + /** + * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}: This device + * supports XR input from XR controllers. + */ + @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES) + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_XR_INPUT_CONTROLLER = + "android.hardware.xr.input.controller"; + + /** + * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}: This device + * supports XR input from the user's hands. + */ + @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES) + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_XR_INPUT_HAND_TRACKING = + "android.hardware.xr.input.hand_tracking"; + + /** + * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}: This device + * supports XR input from the user's eye gaze. + */ + @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES) + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_XR_INPUT_EYE_TRACKING = + "android.hardware.xr.input.eye_tracking"; + + /** + * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}: This device + * supports OpenXR. The feature version indicates + * the highest version of OpenXR supported by the device using the following encoding: + *

    + *
  • Major version in bits 31-16
  • + *
  • Minor version in bits 15-0
  • + *
+ * This is the same encoding as the top 32 bits of an {@code XrVersion}. + *

+ * Example: OpenXR 1.1 support is encoded as 0x00010001. + */ + @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES) + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_XR_API_OPENXR = + "android.software.xr.api.openxr"; + + /** + * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}: This device + * supports the Android XR Spatial APIs. The feature version indicates the highest version of + * the Android XR Spatial APIs supported by the device. + * + *

Also see Getting started with Spatializing + * your app. + */ + // TODO(b/374330735): update public documentation once link content is finalized + @FlaggedApi(android.xr.Flags.FLAG_XR_MANIFEST_ENTRIES) + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_XR_API_SPATIAL = + "android.software.xr.api.spatial"; + /** @hide */ public static final boolean APP_ENUMERATION_ENABLED_BY_DEFAULT = true; diff --git a/core/java/android/content/pm/flags.aconfig b/core/java/android/content/pm/flags.aconfig index 5b38942d468d97d5b0da12f2ca9be665319f2a82..6f70586881bed1c2190f9f6a11a0061db76bf0e5 100644 --- a/core/java/android/content/pm/flags.aconfig +++ b/core/java/android/content/pm/flags.aconfig @@ -296,14 +296,6 @@ flag { is_fixed_read_only: true } -flag { - name: "get_packages_from_launcher_apps" - namespace: "package_manager_service" - description: "Feature flag to provide the new methods within launcher apps class to get packages." - bug: "363324203" - is_fixed_read_only: true -} - flag { name: "remove_cross_user_permission_hack" namespace: "package_manager_service" @@ -327,6 +319,13 @@ flag { is_fixed_read_only: true } +flag { + name: "sdk_dependency_installer" + namespace: "package_manager_service" + description: "Feature flag to enable installation of missing sdk dependency of app" + bug: "370822870" +} + flag { name: "include_feature_flags_in_package_cacher" namespace: "package_manager_service" @@ -342,3 +341,11 @@ flag { bug: "292261144" is_fixed_read_only: true } + +flag { + name: "change_launcher_badging" + namespace: "package_manager_service" + description: "Feature flag to introduce a new way to change the launcher badging." + bug: "364760703" + is_fixed_read_only: true +} diff --git a/core/java/android/content/pm/parsing/ApkLite.java b/core/java/android/content/pm/parsing/ApkLite.java index 19a13db15b05d5c1439797e0da7c27b250a77bc3..4220590a69437a9228aaf6333e54db799c07c779 100644 --- a/core/java/android/content/pm/parsing/ApkLite.java +++ b/core/java/android/content/pm/parsing/ApkLite.java @@ -28,6 +28,7 @@ import android.content.pm.VerifierInfo; import com.android.internal.util.CollectionUtils; import com.android.internal.util.DataClass; +import java.util.Collections; import java.util.List; import java.util.Set; @@ -140,6 +141,21 @@ public class ApkLite { */ private final boolean mIsSdkLibrary; + /** + * List of SDK names used by this apk. + */ + private final @NonNull List mUsesSdkLibraries; + + /** + * List of SDK major versions used by this apk. + */ + private final @Nullable long[] mUsesSdkLibrariesVersionsMajor; + + /** + * List of SDK certificates used by this apk. + */ + private final @Nullable String[][] mUsesSdkLibrariesCertDigests; + /** * Indicates if this system app can be updated. */ @@ -167,7 +183,9 @@ public class ApkLite { String requiredSystemPropertyName, String requiredSystemPropertyValue, int minSdkVersion, int targetSdkVersion, int rollbackDataPolicy, Set requiredSplitTypes, Set splitTypes, - boolean hasDeviceAdminReceiver, boolean isSdkLibrary, boolean updatableSystem, + boolean hasDeviceAdminReceiver, boolean isSdkLibrary, + List usesSdkLibraries, long[] usesSdkLibrariesVersionsMajor, + String[][] usesSdkLibrariesCertDigests, boolean updatableSystem, String emergencyInstaller, List declaredLibraries) { mPath = path; mPackageName = packageName; @@ -202,6 +220,9 @@ public class ApkLite { mRollbackDataPolicy = rollbackDataPolicy; mHasDeviceAdminReceiver = hasDeviceAdminReceiver; mIsSdkLibrary = isSdkLibrary; + mUsesSdkLibraries = usesSdkLibraries; + mUsesSdkLibrariesVersionsMajor = usesSdkLibrariesVersionsMajor; + mUsesSdkLibrariesCertDigests = usesSdkLibrariesCertDigests; mUpdatableSystem = updatableSystem; mEmergencyInstaller = emergencyInstaller; mArchivedPackage = null; @@ -242,6 +263,9 @@ public class ApkLite { mRollbackDataPolicy = 0; mHasDeviceAdminReceiver = false; mIsSdkLibrary = false; + mUsesSdkLibraries = Collections.emptyList(); + mUsesSdkLibrariesVersionsMajor = null; + mUsesSdkLibrariesCertDigests = null; mUpdatableSystem = true; mEmergencyInstaller = null; mArchivedPackage = archivedPackage; @@ -554,6 +578,30 @@ public class ApkLite { return mIsSdkLibrary; } + /** + * List of SDK names used by this apk. + */ + @DataClass.Generated.Member + public @NonNull List getUsesSdkLibraries() { + return mUsesSdkLibraries; + } + + /** + * List of SDK major versions used by this apk. + */ + @DataClass.Generated.Member + public @Nullable long[] getUsesSdkLibrariesVersionsMajor() { + return mUsesSdkLibrariesVersionsMajor; + } + + /** + * List of SDK certificates used by this apk. + */ + @DataClass.Generated.Member + public @Nullable String[][] getUsesSdkLibrariesCertDigests() { + return mUsesSdkLibrariesCertDigests; + } + /** * Indicates if this system app can be updated. */ @@ -584,10 +632,10 @@ public class ApkLite { } @DataClass.Generated( - time = 1728333566322L, + time = 1729247366948L, codegenVersion = "1.0.23", sourceFile = "frameworks/base/core/java/android/content/pm/parsing/ApkLite.java", - inputSignatures = "private final @android.annotation.NonNull java.lang.String mPackageName\nprivate final @android.annotation.NonNull java.lang.String mPath\nprivate final @android.annotation.Nullable java.lang.String mSplitName\nprivate final @android.annotation.Nullable java.lang.String mUsesSplitName\nprivate final @android.annotation.Nullable java.lang.String mConfigForSplit\nprivate final @android.annotation.Nullable java.util.Set mRequiredSplitTypes\nprivate final @android.annotation.Nullable java.util.Set mSplitTypes\nprivate final int mVersionCodeMajor\nprivate final int mVersionCode\nprivate final int mRevisionCode\nprivate final int mInstallLocation\nprivate final int mMinSdkVersion\nprivate final int mTargetSdkVersion\nprivate final @android.annotation.NonNull android.content.pm.VerifierInfo[] mVerifiers\nprivate final @android.annotation.NonNull android.content.pm.SigningDetails mSigningDetails\nprivate final boolean mFeatureSplit\nprivate final boolean mIsolatedSplits\nprivate final boolean mSplitRequired\nprivate final boolean mCoreApp\nprivate final boolean mDebuggable\nprivate final boolean mProfileableByShell\nprivate final boolean mMultiArch\nprivate final boolean mUse32bitAbi\nprivate final boolean mExtractNativeLibs\nprivate final boolean mUseEmbeddedDex\nprivate final @android.annotation.Nullable java.lang.String mTargetPackageName\nprivate final boolean mOverlayIsStatic\nprivate final int mOverlayPriority\nprivate final @android.annotation.Nullable java.lang.String mRequiredSystemPropertyName\nprivate final @android.annotation.Nullable java.lang.String mRequiredSystemPropertyValue\nprivate final int mRollbackDataPolicy\nprivate final boolean mHasDeviceAdminReceiver\nprivate final boolean mIsSdkLibrary\nprivate final boolean mUpdatableSystem\nprivate final @android.annotation.Nullable java.lang.String mEmergencyInstaller\nprivate final @android.annotation.NonNull java.util.List mDeclaredLibraries\nprivate final @android.annotation.Nullable android.content.pm.ArchivedPackageParcel mArchivedPackage\npublic long getLongVersionCode()\nprivate boolean hasAnyRequiredSplitTypes()\nclass ApkLite extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genConstructor=false, genConstDefs=false)") + inputSignatures = "private final @android.annotation.NonNull java.lang.String mPackageName\nprivate final @android.annotation.NonNull java.lang.String mPath\nprivate final @android.annotation.Nullable java.lang.String mSplitName\nprivate final @android.annotation.Nullable java.lang.String mUsesSplitName\nprivate final @android.annotation.Nullable java.lang.String mConfigForSplit\nprivate final @android.annotation.Nullable java.util.Set mRequiredSplitTypes\nprivate final @android.annotation.Nullable java.util.Set mSplitTypes\nprivate final int mVersionCodeMajor\nprivate final int mVersionCode\nprivate final int mRevisionCode\nprivate final int mInstallLocation\nprivate final int mMinSdkVersion\nprivate final int mTargetSdkVersion\nprivate final @android.annotation.NonNull android.content.pm.VerifierInfo[] mVerifiers\nprivate final @android.annotation.NonNull android.content.pm.SigningDetails mSigningDetails\nprivate final boolean mFeatureSplit\nprivate final boolean mIsolatedSplits\nprivate final boolean mSplitRequired\nprivate final boolean mCoreApp\nprivate final boolean mDebuggable\nprivate final boolean mProfileableByShell\nprivate final boolean mMultiArch\nprivate final boolean mUse32bitAbi\nprivate final boolean mExtractNativeLibs\nprivate final boolean mUseEmbeddedDex\nprivate final @android.annotation.Nullable java.lang.String mTargetPackageName\nprivate final boolean mOverlayIsStatic\nprivate final int mOverlayPriority\nprivate final @android.annotation.Nullable java.lang.String mRequiredSystemPropertyName\nprivate final @android.annotation.Nullable java.lang.String mRequiredSystemPropertyValue\nprivate final int mRollbackDataPolicy\nprivate final boolean mHasDeviceAdminReceiver\nprivate final boolean mIsSdkLibrary\nprivate final @android.annotation.NonNull java.util.List mUsesSdkLibraries\nprivate final @android.annotation.Nullable long[] mUsesSdkLibrariesVersionsMajor\nprivate final @android.annotation.Nullable java.lang.String[][] mUsesSdkLibrariesCertDigests\nprivate final boolean mUpdatableSystem\nprivate final @android.annotation.Nullable java.lang.String mEmergencyInstaller\nprivate final @android.annotation.NonNull java.util.List mDeclaredLibraries\nprivate final @android.annotation.Nullable android.content.pm.ArchivedPackageParcel mArchivedPackage\npublic long getLongVersionCode()\nprivate boolean hasAnyRequiredSplitTypes()\nclass ApkLite extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genConstructor=false, genConstDefs=false)") @Deprecated private void __metadata() {} diff --git a/core/java/android/content/pm/parsing/ApkLiteParseUtils.java b/core/java/android/content/pm/parsing/ApkLiteParseUtils.java index 1a7f628ae61c3e28456451f12db9adbc78217044..50d875845b2fc595d7cf9e38e3d9ababcb76a1f9 100644 --- a/core/java/android/content/pm/parsing/ApkLiteParseUtils.java +++ b/core/java/android/content/pm/parsing/ApkLiteParseUtils.java @@ -32,6 +32,7 @@ import android.content.pm.parsing.result.ParseResult; import android.content.res.ApkAssets; import android.content.res.XmlResourceParser; import android.os.Build; +import android.os.SystemProperties; import android.os.Trace; import android.text.TextUtils; import android.util.ArrayMap; @@ -44,6 +45,7 @@ import com.android.internal.pm.pkg.component.flags.Flags; import com.android.internal.util.ArrayUtils; import libcore.io.IoUtils; +import libcore.util.HexEncoding; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; @@ -88,6 +90,7 @@ public class ApkLiteParseUtils { private static final String TAG_USES_SDK = "uses-sdk"; private static final String TAG_USES_SPLIT = "uses-split"; private static final String TAG_MANIFEST = "manifest"; + private static final String TAG_USES_SDK_LIBRARY = "uses-sdk-library"; private static final String TAG_SDK_LIBRARY = "sdk-library"; private static final int SDK_VERSION = Build.VERSION.SDK_INT; private static final String[] SDK_CODENAMES = Build.VERSION.ACTIVE_CODENAMES; @@ -460,6 +463,9 @@ public class ApkLiteParseUtils { boolean hasDeviceAdminReceiver = false; boolean isSdkLibrary = false; + List usesSdkLibraries = new ArrayList<>(); + long[] usesSdkLibrariesVersionsMajor = new long[0]; + String[][] usesSdkLibrariesCertDigests = new String[0][0]; List declaredLibraries = new ArrayList<>(); // Only search the tree when the tag is the direct child of tag @@ -523,6 +529,57 @@ public class ApkLiteParseUtils { hasDeviceAdminReceiver |= isDeviceAdminReceiver(parser, hasBindDeviceAdminPermission); break; + case TAG_USES_SDK_LIBRARY: + String usesSdkLibName = parser.getAttributeValue( + ANDROID_RES_NAMESPACE, "name"); + long usesSdkLibVersionMajor = parser.getAttributeIntValue( + ANDROID_RES_NAMESPACE, "versionMajor", -1); + String usesSdkCertDigest = parser.getAttributeValue( + ANDROID_RES_NAMESPACE, "certDigest"); + + if (usesSdkLibName == null || usesSdkLibName.isBlank() + || usesSdkLibVersionMajor < 0) { + return input.error( + PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED, + "Bad uses-sdk-library declaration name: " + + usesSdkLibName + + " version: " + usesSdkLibVersionMajor); + } + + if (usesSdkLibraries.contains(usesSdkLibName)) { + return input.error( + PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED, + "Bad uses-sdk-library declaration. Depending on" + + " multiple versions of SDK library: " + + usesSdkLibName); + } + + usesSdkLibraries.add(usesSdkLibName); + usesSdkLibrariesVersionsMajor = ArrayUtils.appendLong( + usesSdkLibrariesVersionsMajor, usesSdkLibVersionMajor, + /*allowDuplicates=*/ true); + + // We allow ":" delimiters in the SHA declaration as this is the format + // emitted by the certtool making it easy for developers to copy/paste. + // TODO(372862145): Add test for this replacement + usesSdkCertDigest = usesSdkCertDigest.replace(":", "").toLowerCase(); + + if ("".equals(usesSdkCertDigest)) { + // Test-only uses-sdk-library empty certificate digest override. + usesSdkCertDigest = SystemProperties.get( + "debug.pm.uses_sdk_library_default_cert_digest", ""); + // Validate the overridden digest. + try { + HexEncoding.decode(usesSdkCertDigest, false); + } catch (IllegalArgumentException e) { + usesSdkCertDigest = ""; + } + } + // TODO(372862145): Add support for multiple signer + usesSdkLibrariesCertDigests = ArrayUtils.appendElement(String[].class, + usesSdkLibrariesCertDigests, new String[]{usesSdkCertDigest}, + /*allowDuplicates=*/ true); + break; case TAG_SDK_LIBRARY: isSdkLibrary = true; // Mirrors ParsingPackageUtils#parseSdkLibrary until lite and full @@ -534,7 +591,7 @@ public class ApkLiteParseUtils { if (sdkLibName == null || sdkLibVersionMajor < 0) { return input.error( PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED, - "Bad uses-sdk-library declaration name: " + sdkLibName + "Bad sdk-library declaration name: " + sdkLibName + " version: " + sdkLibVersionMajor); } declaredLibraries.add(new SharedLibraryInfo( @@ -694,8 +751,9 @@ public class ApkLiteParseUtils { overlayIsStatic, overlayPriority, requiredSystemPropertyName, requiredSystemPropertyValue, minSdkVersion, targetSdkVersion, rollbackDataPolicy, requiredSplitTypes.first, requiredSplitTypes.second, - hasDeviceAdminReceiver, isSdkLibrary, updatableSystem, emergencyInstaller, - declaredLibraries)); + hasDeviceAdminReceiver, isSdkLibrary, usesSdkLibraries, + usesSdkLibrariesVersionsMajor, usesSdkLibrariesCertDigests, + updatableSystem, emergencyInstaller, declaredLibraries)); } private static boolean isDeviceAdminReceiver( diff --git a/core/java/android/content/pm/parsing/PackageLite.java b/core/java/android/content/pm/parsing/PackageLite.java index 9a2ee7fe4cc6b076df776218c69b854b35667ab2..79c597327f5a1fa8cad62d48fba0556bd0ea70ae 100644 --- a/core/java/android/content/pm/parsing/PackageLite.java +++ b/core/java/android/content/pm/parsing/PackageLite.java @@ -115,6 +115,12 @@ public class PackageLite { */ private final boolean mIsSdkLibrary; + private final @NonNull List mUsesSdkLibraries; + + private final @Nullable long[] mUsesSdkLibrariesVersionsMajor; + + private final @Nullable String[][] mUsesSdkLibrariesCertDigests; + private final @NonNull List mDeclaredLibraries; /** @@ -149,6 +155,9 @@ public class PackageLite { mSplitRequired = (baseApk.isSplitRequired() || hasAnyRequiredSplitTypes()); mProfileableByShell = baseApk.isProfileableByShell(); mIsSdkLibrary = baseApk.isIsSdkLibrary(); + mUsesSdkLibraries = baseApk.getUsesSdkLibraries(); + mUsesSdkLibrariesVersionsMajor = baseApk.getUsesSdkLibrariesVersionsMajor(); + mUsesSdkLibrariesCertDigests = baseApk.getUsesSdkLibrariesCertDigests(); mSplitNames = splitNames; mSplitTypes = splitTypes; mIsFeatureSplits = isFeatureSplits; @@ -437,6 +446,21 @@ public class PackageLite { return mIsSdkLibrary; } + @DataClass.Generated.Member + public @NonNull List getUsesSdkLibraries() { + return mUsesSdkLibraries; + } + + @DataClass.Generated.Member + public @Nullable long[] getUsesSdkLibrariesVersionsMajor() { + return mUsesSdkLibrariesVersionsMajor; + } + + @DataClass.Generated.Member + public @Nullable String[][] getUsesSdkLibrariesCertDigests() { + return mUsesSdkLibrariesCertDigests; + } + @DataClass.Generated.Member public @NonNull List getDeclaredLibraries() { return mDeclaredLibraries; @@ -451,10 +475,10 @@ public class PackageLite { } @DataClass.Generated( - time = 1728333569917L, + time = 1729248757933L, codegenVersion = "1.0.23", sourceFile = "frameworks/base/core/java/android/content/pm/parsing/PackageLite.java", - inputSignatures = "private final @android.annotation.NonNull java.lang.String mPackageName\nprivate final @android.annotation.NonNull java.lang.String mPath\nprivate final @android.annotation.NonNull java.lang.String mBaseApkPath\nprivate final @android.annotation.Nullable java.lang.String[] mSplitApkPaths\nprivate final @android.annotation.Nullable java.lang.String[] mSplitNames\nprivate final @android.annotation.Nullable java.lang.String[] mUsesSplitNames\nprivate final @android.annotation.Nullable java.lang.String[] mConfigForSplit\nprivate final @android.annotation.Nullable java.util.Set mBaseRequiredSplitTypes\nprivate final @android.annotation.Nullable java.util.Set[] mRequiredSplitTypes\nprivate final @android.annotation.Nullable java.util.Set[] mSplitTypes\nprivate final int mVersionCodeMajor\nprivate final int mVersionCode\nprivate final int mTargetSdk\nprivate final int mBaseRevisionCode\nprivate final @android.annotation.Nullable int[] mSplitRevisionCodes\nprivate final int mInstallLocation\nprivate final @android.annotation.NonNull android.content.pm.VerifierInfo[] mVerifiers\nprivate final @android.annotation.NonNull android.content.pm.SigningDetails mSigningDetails\nprivate final @android.annotation.Nullable boolean[] mIsFeatureSplits\nprivate final boolean mIsolatedSplits\nprivate final boolean mSplitRequired\nprivate final boolean mCoreApp\nprivate final boolean mDebuggable\nprivate final boolean mMultiArch\nprivate final boolean mUse32bitAbi\nprivate final boolean mExtractNativeLibs\nprivate final boolean mProfileableByShell\nprivate final boolean mUseEmbeddedDex\nprivate final boolean mIsSdkLibrary\nprivate final @android.annotation.NonNull java.util.List mDeclaredLibraries\nprivate final @android.annotation.Nullable android.content.pm.ArchivedPackageParcel mArchivedPackage\npublic java.util.List getAllApkPaths()\npublic long getLongVersionCode()\nprivate boolean hasAnyRequiredSplitTypes()\nclass PackageLite extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genConstructor=false, genConstDefs=false)") + inputSignatures = "private final @android.annotation.NonNull java.lang.String mPackageName\nprivate final @android.annotation.NonNull java.lang.String mPath\nprivate final @android.annotation.NonNull java.lang.String mBaseApkPath\nprivate final @android.annotation.Nullable java.lang.String[] mSplitApkPaths\nprivate final @android.annotation.Nullable java.lang.String[] mSplitNames\nprivate final @android.annotation.Nullable java.lang.String[] mUsesSplitNames\nprivate final @android.annotation.Nullable java.lang.String[] mConfigForSplit\nprivate final @android.annotation.Nullable java.util.Set mBaseRequiredSplitTypes\nprivate final @android.annotation.Nullable java.util.Set[] mRequiredSplitTypes\nprivate final @android.annotation.Nullable java.util.Set[] mSplitTypes\nprivate final int mVersionCodeMajor\nprivate final int mVersionCode\nprivate final int mTargetSdk\nprivate final int mBaseRevisionCode\nprivate final @android.annotation.Nullable int[] mSplitRevisionCodes\nprivate final int mInstallLocation\nprivate final @android.annotation.NonNull android.content.pm.VerifierInfo[] mVerifiers\nprivate final @android.annotation.NonNull android.content.pm.SigningDetails mSigningDetails\nprivate final @android.annotation.Nullable boolean[] mIsFeatureSplits\nprivate final boolean mIsolatedSplits\nprivate final boolean mSplitRequired\nprivate final boolean mCoreApp\nprivate final boolean mDebuggable\nprivate final boolean mMultiArch\nprivate final boolean mUse32bitAbi\nprivate final boolean mExtractNativeLibs\nprivate final boolean mProfileableByShell\nprivate final boolean mUseEmbeddedDex\nprivate final boolean mIsSdkLibrary\nprivate final @android.annotation.NonNull java.util.List mUsesSdkLibraries\nprivate final @android.annotation.Nullable long[] mUsesSdkLibrariesVersionsMajor\nprivate final @android.annotation.Nullable java.lang.String[][] mUsesSdkLibrariesCertDigests\nprivate final @android.annotation.NonNull java.util.List mDeclaredLibraries\nprivate final @android.annotation.Nullable android.content.pm.ArchivedPackageParcel mArchivedPackage\npublic java.util.List getAllApkPaths()\npublic long getLongVersionCode()\nprivate boolean hasAnyRequiredSplitTypes()\nclass PackageLite extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genConstructor=false, genConstDefs=false)") @Deprecated private void __metadata() {} diff --git a/core/java/android/content/pm/verify/pkg/IVerificationSessionInterface.aidl b/core/java/android/content/pm/verify/pkg/IVerificationSessionInterface.aidl index 66caf2d0fec0c90f46c97e4a83cd13187c2676f0..2ab745205193d7f686ba483d9f227c1ee6a619d1 100644 --- a/core/java/android/content/pm/verify/pkg/IVerificationSessionInterface.aidl +++ b/core/java/android/content/pm/verify/pkg/IVerificationSessionInterface.aidl @@ -24,16 +24,9 @@ import android.os.PersistableBundle; * @hide */ interface IVerificationSessionInterface { - @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT)") long getTimeoutTime(int verificationId); - @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT)") long extendTimeRemaining(int verificationId, long additionalMs); - @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT)") boolean setVerificationPolicy(int verificationId, int policy); - @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT)") void reportVerificationIncomplete(int verificationId, int reason); - @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT)") - void reportVerificationComplete(int verificationId, in VerificationStatus status); - @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT)") - void reportVerificationCompleteWithExtensionResponse(int verificationId, in VerificationStatus status, in PersistableBundle response); + void reportVerificationComplete(int verificationId, in VerificationStatus status, in @nullable PersistableBundle extensionResponse); } \ No newline at end of file diff --git a/core/java/android/content/pm/verify/pkg/VerificationSession.java b/core/java/android/content/pm/verify/pkg/VerificationSession.java index 4ade21198f37425d38376bf4a7f7b0d557e5329c..97f78e0978fa42b6b0707b288678ff838898f31d 100644 --- a/core/java/android/content/pm/verify/pkg/VerificationSession.java +++ b/core/java/android/content/pm/verify/pkg/VerificationSession.java @@ -19,7 +19,6 @@ package android.content.pm.verify.pkg; import android.annotation.FlaggedApi; import android.annotation.IntDef; import android.annotation.NonNull; -import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.content.pm.Flags; import android.content.pm.PackageInstaller; @@ -166,8 +165,8 @@ public final class VerificationSession implements Parcelable { /** * Get the value of Clock.elapsedRealtime() at which time this verification * will timeout as incomplete if no other verification response is provided. + * @throws SecurityException if the caller is not the current verifier bound by the system. */ - @RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT) public long getTimeoutTime() { try { return mSession.getTimeoutTime(mId); @@ -190,8 +189,8 @@ public final class VerificationSession implements Parcelable { /** * Override the verification policy for this session. * @return True if the override was successful, False otherwise. + * @throws SecurityException if the caller is not the current verifier bound by the system. */ - @RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT) public boolean setVerificationPolicy(@PackageInstaller.VerificationPolicy int policy) { if (mVerificationPolicy == policy) { // No effective policy change @@ -215,8 +214,8 @@ public final class VerificationSession implements Parcelable { * This may be called multiple times. If the request would bypass any max * duration by the system, the method will return a lower value than the * requested amount that indicates how much the time was extended. + * @throws SecurityException if the caller is not the current verifier bound by the system. */ - @RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT) public long extendTimeRemaining(long additionalMs) { try { return mSession.extendTimeRemaining(mId, additionalMs); @@ -227,9 +226,9 @@ public final class VerificationSession implements Parcelable { /** * Report to the system that verification could not be completed along - * with an approximate reason to pass on to the installer. + * with an approximate reason to pass on to the installer.] + * @throws SecurityException if the caller is not the current verifier bound by the system. */ - @RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT) public void reportVerificationIncomplete(@VerificationIncompleteReason int reason) { try { mSession.reportVerificationIncomplete(mId, reason); @@ -242,11 +241,11 @@ public final class VerificationSession implements Parcelable { * Report to the system that the verification has completed and the * install process may act on that status to either block in the case * of failure or continue to process the install in the case of success. + * @throws SecurityException if the caller is not the current verifier bound by the system. */ - @RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT) public void reportVerificationComplete(@NonNull VerificationStatus status) { try { - mSession.reportVerificationComplete(mId, status); + mSession.reportVerificationComplete(mId, status, /* extensionResponse= */ null); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } @@ -256,12 +255,12 @@ public final class VerificationSession implements Parcelable { * Same as {@link #reportVerificationComplete(VerificationStatus)}, but also provide * a result to the extension params provided in the request, which will be passed to the * installer in the installation result. + * @throws SecurityException if the caller is not the current verifier bound by the system. */ - @RequiresPermission(android.Manifest.permission.VERIFICATION_AGENT) public void reportVerificationComplete(@NonNull VerificationStatus status, - @NonNull PersistableBundle response) { + @NonNull PersistableBundle extensionResponse) { try { - mSession.reportVerificationCompleteWithExtensionResponse(mId, status, response); + mSession.reportVerificationComplete(mId, status, extensionResponse); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } diff --git a/core/java/android/database/DatabaseUtils.java b/core/java/android/database/DatabaseUtils.java index 3c4307c63cf777c75d5dc5f86e46320a25a94852..0d583dedeb74e3001fa7090a11b61ef2eb301897 100644 --- a/core/java/android/database/DatabaseUtils.java +++ b/core/java/android/database/DatabaseUtils.java @@ -48,8 +48,6 @@ import java.util.Arrays; import java.util.HashMap; import java.util.Locale; import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; /** * Static utility methods for dealing with databases and {@link Cursor}s. @@ -1576,49 +1574,6 @@ public class DatabaseUtils { db.close(); } - /** - * The legacy prefix matcher. - */ - private static String getSqlStatementPrefixSimple(@NonNull String sql) { - sql = sql.trim(); - if (sql.length() < 3) { - return null; - } - return sql.substring(0, 3).toUpperCase(Locale.ROOT); - } - - /** - * A regular expression that matches the first three characters in a SQL statement, after - * skipping past comments and whitespace. PREFIX_GROUP_NUM is the regex group that contains - * the matching prefix string. If PREFIX_REGEX is changed, PREFIX_GROUP_NUM may require an - * update too. - */ - private static final String PREFIX_REGEX = - "(" // Zero-or more... - + "\\s+" // Leading space - + "|" - + "--.*?\n" // Line comment - + "|" - + "/\\*[\\w\\W]*?\\*/" // Block comment - + ")*" - + "(\\w\\w\\w)"; // Three word-characters - private static final int PREFIX_GROUP_NUM = 2; - private static final Pattern sPrefixPattern = Pattern.compile(PREFIX_REGEX); - - /** - * Return the three-letter prefix of a SQL statement, skipping past whitespace and comments. - * Comments either start with "--" and run to the end of the line or are C-style block - * comments. The function returns null if a prefix could not be found. - */ - private static String getSqlStatementPrefixExtendedRegex(String sql) { - Matcher m = sPrefixPattern.matcher(sql); - if (m.lookingAt()) { - return m.group(PREFIX_GROUP_NUM).toUpperCase(Locale.ROOT); - } else { - return null; - } - } - /** * Return the index of the first character past comments and whitespace. -1 is returned if * a comment is malformed. @@ -1719,15 +1674,7 @@ public class DatabaseUtils { * @hide */ public static int getSqlStatementTypeExtended(@NonNull String sql) { - if (Flags.simpleSqlCommentScanner()) { - return categorizeStatement(getSqlStatementPrefixExtendedNoRegex(sql), sql); - } else { - int type = categorizeStatement(getSqlStatementPrefixSimple(sql), sql); - if (type == STATEMENT_COMMENT) { - type = categorizeStatement(getSqlStatementPrefixExtendedRegex(sql), sql); - } - return type; - } + return categorizeStatement(getSqlStatementPrefixExtendedNoRegex(sql), sql); } /** diff --git a/core/java/android/database/sqlite/SQLiteConnection.java b/core/java/android/database/sqlite/SQLiteConnection.java index 914aa51e5314eeec00486a2b634971dfc458d003..d77e6280d19ca4f3271c9e4ea167dab642baa4d7 100644 --- a/core/java/android/database/sqlite/SQLiteConnection.java +++ b/core/java/android/database/sqlite/SQLiteConnection.java @@ -129,9 +129,6 @@ public final class SQLiteConnection implements CancellationSignal.OnCancelListen // Restrict this connection to read-only operations. private boolean mOnlyAllowReadOnlyOperations; - // Allow this connection to treat updates to temporary tables as read-only operations. - private boolean mAllowTempTableRetry = Flags.sqliteAllowTempTables(); - // The number of times attachCancellationSignal has been called. // Because SQLite statement execution can be reentrant, we keep track of how many // times we have attempted to attach a cancellation signal to the connection so that @@ -1281,19 +1278,17 @@ public final class SQLiteConnection implements CancellationSignal.OnCancelListen /** * Verify that the statement is read-only, if the connection only allows read-only - * operations. If the connection allows updates to temporary tables, then the statement is - * read-only if the only updates are to temporary tables. + * operations. If the statement is not read-only, then check if the statement only modifies + * temp tables, in which case it is treated the same as a read-only statement and is allowed. * @param statement The statement to check. * @throws SQLiteException if the statement could update the database inside a read-only * transaction. */ void throwIfStatementForbidden(PreparedStatement statement) { if (mOnlyAllowReadOnlyOperations && !statement.mReadOnly) { - if (mAllowTempTableRetry) { - statement.mReadOnly = - nativeUpdatesTempOnly(mConnectionPtr, statement.mStatementPtr); - if (statement.mReadOnly) return; - } + statement.mReadOnly = + nativeUpdatesTempOnly(mConnectionPtr, statement.mStatementPtr); + if (statement.mReadOnly) return; throw new SQLiteException("Cannot execute this statement because it " + "might modify the database but the connection is read-only."); diff --git a/core/java/android/database/sqlite/flags.aconfig b/core/java/android/database/sqlite/flags.aconfig index 285f984faab7aea53b2fb80abf060c32c13a5007..d5a7db82d4563e229190bb61fcf7f4656cd886c7 100644 --- a/core/java/android/database/sqlite/flags.aconfig +++ b/core/java/android/database/sqlite/flags.aconfig @@ -9,19 +9,3 @@ flag { description: "SQLite APIs held back for Android 15" bug: "279043253" } - -flag { - name: "sqlite_allow_temp_tables" - namespace: "system_performance" - is_fixed_read_only: true - description: "Permit updates to TEMP tables in read-only transactions" - bug: "317993835" -} - -flag { - name: "simple_sql_comment_scanner" - namespace: "system_performance" - is_fixed_read_only: true - description: "Scan SQL comments by hand instead of with a regex" - bug: "329118560" -} diff --git a/core/java/android/hardware/HardwareBuffer.java b/core/java/android/hardware/HardwareBuffer.java index 93958443c01bc1289e60f5a0ee62de7235d8ea9b..44115c832c17e7e94f6218320ff971fa6d4650fd 100644 --- a/core/java/android/hardware/HardwareBuffer.java +++ b/core/java/android/hardware/HardwareBuffer.java @@ -66,6 +66,7 @@ public final class HardwareBuffer implements Parcelable, AutoCloseable { DS_FP32UI8, S_UI8, YCBCR_P010, + YCBCR_P210, R_8, R_16, RG_1616, @@ -111,6 +112,16 @@ public final class HardwareBuffer implements Parcelable, AutoCloseable { * little-endian value, with the lower 6 bits set to zero. */ public static final int YCBCR_P010 = 0x36; + /** + *

Android YUV P210 format.

+ * + * P210 is a 4:2:2 YCbCr semiplanar format comprised of a WxH Y plane + * followed by a WxH CbCr plane. Each sample is represented by a 16-bit + * little-endian value, with the lower 6 bits set to zero. + */ + @FlaggedApi(android.media.codec.Flags.FLAG_P210_FORMAT_SUPPORT) + public static final int YCBCR_P210 = 0x3c; + /** Format: 8 bits red */ @FlaggedApi(com.android.graphics.hwui.flags.Flags.FLAG_REQUESTED_FORMATS_V) public static final int R_8 = 0x38; diff --git a/core/java/android/hardware/LutProperties.java b/core/java/android/hardware/LutProperties.java index 57f8a4ece304413072335bfc861b8969fba8befb..c9c6d6d08ed2d2dbd158ce3694c3c7dda4326ad9 100644 --- a/core/java/android/hardware/LutProperties.java +++ b/core/java/android/hardware/LutProperties.java @@ -30,7 +30,7 @@ import java.lang.annotation.RetentionPolicy; */ public final class LutProperties { private final @Dimension int mDimension; - private final long mSize; + private final int mSize; private final @SamplingKey int[] mSamplingKeys; @Retention(RetentionPolicy.SOURCE) @@ -68,7 +68,7 @@ public final class LutProperties { /** * @return the size of the Lut. */ - public long getSize() { + public int getSize() { return mSize; } @@ -83,7 +83,7 @@ public final class LutProperties { } /* use in the native code */ - private LutProperties(@Dimension int dimension, long size, @SamplingKey int[] samplingKeys) { + private LutProperties(@Dimension int dimension, int size, @SamplingKey int[] samplingKeys) { if (dimension != ONE_DIMENSION || dimension != THREE_DIMENSION) { throw new IllegalArgumentException("The dimension is either 1 or 3!"); } diff --git a/core/java/android/hardware/biometrics/flags.aconfig b/core/java/android/hardware/biometrics/flags.aconfig index 047d1fa4f49af7f6103a71be12a0228f07f5dab0..26ffa11823d8afd5c83fd8d5e34e24870fb1091e 100644 --- a/core/java/android/hardware/biometrics/flags.aconfig +++ b/core/java/android/hardware/biometrics/flags.aconfig @@ -39,3 +39,11 @@ flag { description: "This flag controls whether LSKF fallback is removed from biometric prompt when the phone is outside trusted locations" bug: "322081563" } + +flag { + name: "screen_off_unlock_udfps" + is_exported: true + namespace: "biometrics_integration" + description: "This flag controls Whether to enable fp unlock when screen turns off on udfps devices" + bug: "373792870" +} diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java index 37983df75f2b2e776bf6660857172287a42abbc9..1137e1e89f67f0f13bd314f5d9bd340352d6f65b 100644 --- a/core/java/android/hardware/camera2/CameraCharacteristics.java +++ b/core/java/android/hardware/camera2/CameraCharacteristics.java @@ -4247,7 +4247,7 @@ public final class CameraCharacteristics extends CameraMetadata + * lists {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}.

*

Units: Pixel coordinates on the image sensor

*

Optional - The value for this key may be {@code null} on some devices.

* @@ -4273,7 +4273,7 @@ public final class CameraCharacteristics extends CameraMetadata + * lists {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}.

*

Units: Pixels

*

Optional - The value for this key may be {@code null} on some devices.

* @@ -4298,7 +4298,7 @@ public final class CameraCharacteristics extends CameraMetadata + * lists {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}.

*

Units: Pixel coordinates on the image sensor

*

Optional - The value for this key may be {@code null} on some devices.

* @@ -4332,7 +4332,7 @@ public final class CameraCharacteristics extends CameraMetadata *
  • This key will be present if * {@link CameraCharacteristics#getAvailableCaptureRequestKeys } - * lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}}, since RAW + * lists {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}, since RAW * images may not necessarily have a regular bayer pattern when * {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}} is set to * {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }.
  • diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java index a193ee10b6e6914dc8b8361a4d1e676612725c35..a5c5a9952879416738db7d75fc07141c9685a0c4 100644 --- a/core/java/android/hardware/camera2/CaptureRequest.java +++ b/core/java/android/hardware/camera2/CaptureRequest.java @@ -1465,7 +1465,7 @@ public final class CaptureRequest extends CameraMetadata> * {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR } * capability or devices where * {@link CameraCharacteristics#getAvailableCaptureRequestKeys } - * lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}} + * lists {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}, * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} / * {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the * coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to @@ -1715,7 +1715,7 @@ public final class CaptureRequest extends CameraMetadata> * {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR } * capability or devices where * {@link CameraCharacteristics#getAvailableCaptureRequestKeys } - * lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}}, + * lists {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}, * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} / * {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the * coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to @@ -1940,7 +1940,7 @@ public final class CaptureRequest extends CameraMetadata> * {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR } * capability or devices where * {@link CameraCharacteristics#getAvailableCaptureRequestKeys } - * lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}}, + * lists {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}, * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} / * {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the * coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to @@ -3285,8 +3285,8 @@ public final class CaptureRequest extends CameraMetadata> *

    For camera devices with the * {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR } * capability or devices where {@link CameraCharacteristics#getAvailableCaptureRequestKeys } - * lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}}

    - *

    {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} / + * lists {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}, + * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} / * {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the * coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to * {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }.

    diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java index e5ca46ab0a72133fbe2e43ea6901911ce142dea7..a6bdb3f1bb0735f7cbe7846f1e178ba6d611c12d 100644 --- a/core/java/android/hardware/camera2/CaptureResult.java +++ b/core/java/android/hardware/camera2/CaptureResult.java @@ -866,7 +866,7 @@ public class CaptureResult extends CameraMetadata> { * {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR } * capability or devices where * {@link CameraCharacteristics#getAvailableCaptureRequestKeys } - * lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}} + * lists {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}, * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} / * {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the * coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to @@ -1366,7 +1366,7 @@ public class CaptureResult extends CameraMetadata> { * {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR } * capability or devices where * {@link CameraCharacteristics#getAvailableCaptureRequestKeys } - * lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}}, + * lists {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}, * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} / * {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the * coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to @@ -2002,7 +2002,7 @@ public class CaptureResult extends CameraMetadata> { * {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR } * capability or devices where * {@link CameraCharacteristics#getAvailableCaptureRequestKeys } - * lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}}, + * lists {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}, * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} / * {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the * coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to @@ -3953,8 +3953,8 @@ public class CaptureResult extends CameraMetadata> { *

    For camera devices with the * {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR } * capability or devices where {@link CameraCharacteristics#getAvailableCaptureRequestKeys } - * lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}}

    - *

    {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} / + * lists {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}, + * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} / * {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the * coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to * {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }.

    @@ -5137,6 +5137,14 @@ public class CaptureResult extends CameraMetadata> { * height dimensions are given in {@link CameraCharacteristics#SENSOR_INFO_PIXEL_ARRAY_SIZE android.sensor.info.pixelArraySize}. * This may include hot pixels that lie outside of the active array * bounds given by {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize}.

    + *

    For camera devices with the + * {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR } + * capability or devices where + * {@link CameraCharacteristics#getAvailableCaptureRequestKeys } + * lists {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}, + * {@link CameraCharacteristics#SENSOR_INFO_PIXEL_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.pixelArraySizeMaximumResolution} will be used as the + * pixel array size if the corresponding request sets {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} to + * {@link android.hardware.camera2.CameraMetadata#SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION }.

    *

    Range of valid values:

    *

    n <= number of pixels on the sensor. * The (x, y) coordinates must be bounded by @@ -5145,6 +5153,8 @@ public class CaptureResult extends CameraMetadata> { * * @see CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE * @see CameraCharacteristics#SENSOR_INFO_PIXEL_ARRAY_SIZE + * @see CameraCharacteristics#SENSOR_INFO_PIXEL_ARRAY_SIZE_MAXIMUM_RESOLUTION + * @see CaptureRequest#SENSOR_PIXEL_MODE */ @PublicKey @NonNull @@ -5798,8 +5808,8 @@ public class CaptureResult extends CameraMetadata> { *

    For camera devices with the * {@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR } * capability or devices where {@link CameraCharacteristics#getAvailableCaptureRequestKeys } - * lists {@link CaptureRequest#SENSOR_PIXEL_MODE {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}} - * , the current active physical device + * lists {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode}, + * the current active physical device * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.activeArraySizeMaximumResolution} / * {@link CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION android.sensor.info.preCorrectionActiveArraySizeMaximumResolution} must be used as the * coordinate system for requests where {@link CaptureRequest#SENSOR_PIXEL_MODE android.sensor.pixelMode} is set to diff --git a/core/java/android/hardware/display/AmbientDisplayConfiguration.java b/core/java/android/hardware/display/AmbientDisplayConfiguration.java index 47541ca16cdae79bf75517bdee677bbc76eca7a1..59a602ca092db3af89760066e6732888e15a6469 100644 --- a/core/java/android/hardware/display/AmbientDisplayConfiguration.java +++ b/core/java/android/hardware/display/AmbientDisplayConfiguration.java @@ -18,6 +18,7 @@ package android.hardware.display; import android.annotation.TestApi; import android.content.Context; +import android.hardware.biometrics.Flags; import android.os.Build; import android.os.SystemProperties; import android.provider.Settings; @@ -41,6 +42,7 @@ public class AmbientDisplayConfiguration { private final Context mContext; private final boolean mAlwaysOnByDefault; private final boolean mPickupGestureEnabledByDefault; + private final boolean mScreenOffUdfpsEnabledByDefault; /** Copied from android.provider.Settings.Secure since these keys are hidden. */ private static final String[] DOZE_SETTINGS = { @@ -68,6 +70,8 @@ public class AmbientDisplayConfiguration { mAlwaysOnByDefault = mContext.getResources().getBoolean(R.bool.config_dozeAlwaysOnEnabled); mPickupGestureEnabledByDefault = mContext.getResources().getBoolean(R.bool.config_dozePickupGestureEnabled); + mScreenOffUdfpsEnabledByDefault = + mContext.getResources().getBoolean(R.bool.config_screen_off_udfps_enabled); } /** @hide */ @@ -146,7 +150,9 @@ public class AmbientDisplayConfiguration { /** @hide */ public boolean screenOffUdfpsEnabled(int user) { return !TextUtils.isEmpty(udfpsLongPressSensorType()) - && boolSettingDefaultOff("screen_off_udfps_enabled", user); + && ((mScreenOffUdfpsEnabledByDefault && Flags.screenOffUnlockUdfps()) + ? boolSettingDefaultOn("screen_off_udfps_enabled", user) + : boolSettingDefaultOff("screen_off_udfps_enabled", user)); } /** @hide */ diff --git a/core/java/android/hardware/fingerprint/FingerprintCallback.java b/core/java/android/hardware/fingerprint/FingerprintCallback.java index 24e9f9ddef77a9e5558d92bd7a0b65626553cd04..e4fbe6e097096bdee24b262585dff40e50437cad 100644 --- a/core/java/android/hardware/fingerprint/FingerprintCallback.java +++ b/core/java/android/hardware/fingerprint/FingerprintCallback.java @@ -189,7 +189,7 @@ public class FingerprintCallback { mEnrollmentCallback.onAcquired(acquireInfo == FINGERPRINT_ACQUIRED_GOOD); } final String msg = getAcquiredString(context, acquireInfo, vendorCode); - if (msg == null || msg.isEmpty()) { + if (msg == null) { return; } // emulate HAL 2.1 behavior and send real acquiredInfo diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java index 7f1cac08b430dd27cc61371609bd78fb8d6078a1..590c4d6610767edb54614488924705ec2cdd2ab0 100644 --- a/core/java/android/hardware/fingerprint/FingerprintManager.java +++ b/core/java/android/hardware/fingerprint/FingerprintManager.java @@ -1517,7 +1517,7 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing */ public static String getAcquiredString(Context context, int acquireInfo, int vendorCode) { switch (acquireInfo) { - case FINGERPRINT_ACQUIRED_GOOD: + case FINGERPRINT_ACQUIRED_GOOD, FINGERPRINT_ACQUIRED_START: return null; case FINGERPRINT_ACQUIRED_PARTIAL: return context.getString( @@ -1546,13 +1546,10 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing case FINGERPRINT_ACQUIRED_VENDOR: { String[] msgArray = context.getResources().getStringArray( com.android.internal.R.array.fingerprint_acquired_vendor); - if (vendorCode < msgArray.length) { + if (vendorCode < msgArray.length && !msgArray[vendorCode].isEmpty()) { return msgArray[vendorCode]; } } - break; - case FINGERPRINT_ACQUIRED_START: - return null; } Slog.w(TAG, "Invalid acquired message: " + acquireInfo + ", " + vendorCode); return null; diff --git a/core/java/android/hardware/input/AidlKeyGestureEvent.aidl b/core/java/android/hardware/input/AidlKeyGestureEvent.aidl index 7cf8795085e32b0887010c2434ccb006d6c0d60e..fc7151940bd7f8af6d4d3c37e7766f8eaaff1917 100644 --- a/core/java/android/hardware/input/AidlKeyGestureEvent.aidl +++ b/core/java/android/hardware/input/AidlKeyGestureEvent.aidl @@ -26,4 +26,10 @@ parcelable AidlKeyGestureEvent { int action; int displayId; int flags; + + // App launch parameters: only set when gestureType = KEY_GESTURE_TYPE_LAUNCH_APPLICATION + String appLaunchCategory; + String appLaunchRole; + String appLaunchPackageName; + String appLaunchClassName; } diff --git a/core/java/android/hardware/input/AppLaunchData.java b/core/java/android/hardware/input/AppLaunchData.java new file mode 100644 index 0000000000000000000000000000000000000000..43186f5db415ba2b9a80aadb6043fada1dc6adf0 --- /dev/null +++ b/core/java/android/hardware/input/AppLaunchData.java @@ -0,0 +1,176 @@ +/* + * 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.hardware.input; + +import android.annotation.NonNull; +import android.annotation.Nullable; +import android.text.TextUtils; + +import java.util.Objects; + +/** + * Provides data for launching an application. + * + * @hide + */ +public interface AppLaunchData { + + /** Creates AppLaunchData for the provided category */ + @NonNull + static AppLaunchData createLaunchDataForCategory(@NonNull String category) { + return new CategoryData(category); + } + + /** Creates AppLaunchData for the provided role */ + @NonNull + static AppLaunchData createLaunchDataForRole(@NonNull String role) { + return new RoleData(role); + } + + /** Creates AppLaunchData for the target package name and class name */ + @NonNull + static AppLaunchData createLaunchDataForComponent(@NonNull String packageName, + @NonNull String className) { + return new ComponentData(packageName, className); + } + + @Nullable + static AppLaunchData createLaunchData(@Nullable String category, @Nullable String role, + @Nullable String packageName, @Nullable String className) { + if (!TextUtils.isEmpty(category)) { + return new CategoryData(category); + } + if (!TextUtils.isEmpty(role)) { + return new RoleData(role); + } + if (!TextUtils.isEmpty(packageName) && !TextUtils.isEmpty(className)) { + return new ComponentData(packageName, className); + } + return null; + } + + /** Intent category based app launch data */ + class CategoryData implements AppLaunchData { + @NonNull + private final String mCategory; + public CategoryData(@NonNull String category) { + mCategory = category; + } + + @NonNull + public String getCategory() { + return mCategory; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof CategoryData that)) return false; + return Objects.equals(mCategory, that.mCategory); + } + + @Override + public int hashCode() { + return Objects.hash(mCategory); + } + + @Override + public String toString() { + return "CategoryData{" + + "mCategory='" + mCategory + '\'' + + '}'; + } + } + + /** Role based app launch data */ + class RoleData implements AppLaunchData { + @NonNull + private final String mRole; + public RoleData(@NonNull String role) { + mRole = role; + } + + @NonNull + public String getRole() { + return mRole; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof RoleData roleData)) return false; + return Objects.equals(mRole, roleData.mRole); + } + + @Override + public int hashCode() { + return Objects.hash(mRole); + } + + @Override + public String toString() { + return "RoleData{" + + "mRole='" + mRole + '\'' + + '}'; + } + } + + /** Target application launch data */ + class ComponentData implements AppLaunchData { + @NonNull + private final String mPackageName; + + @NonNull + private final String mClassName; + + public ComponentData(@NonNull String packageName, @NonNull String className) { + mPackageName = packageName; + mClassName = className; + } + + @NonNull + public String getPackageName() { + return mPackageName; + } + + @NonNull + public String getClassName() { + return mClassName; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof ComponentData that)) return false; + return Objects.equals(mPackageName, that.mPackageName) && Objects.equals( + mClassName, that.mClassName); + } + + @Override + public int hashCode() { + return Objects.hash(mPackageName, mClassName); + } + + @Override + public String toString() { + return "ComponentData{" + + "mPackageName='" + mPackageName + '\'' + + ", mClassName='" + mClassName + '\'' + + '}'; + } + } +} diff --git a/core/java/android/hardware/input/KeyGestureEvent.java b/core/java/android/hardware/input/KeyGestureEvent.java index 5ee61bcd436a8b593919b80d2957c457ab686604..ee1a6aba2ab579ba5d261275f3d1aa7dabe0ac73 100644 --- a/core/java/android/hardware/input/KeyGestureEvent.java +++ b/core/java/android/hardware/input/KeyGestureEvent.java @@ -19,6 +19,8 @@ package android.hardware.input; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; +import android.app.role.RoleManager; +import android.content.Intent; import android.view.Display; import android.view.KeyCharacterMap; @@ -26,6 +28,7 @@ import com.android.internal.util.FrameworkStatsLog; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.util.Objects; /** * Provides information about the keyboard gesture event being triggered by an external keyboard. @@ -37,6 +40,9 @@ public final class KeyGestureEvent { @NonNull private AidlKeyGestureEvent mKeyGestureEvent; + private static final int LOG_EVENT_UNSPECIFIED = + FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__UNSPECIFIED; + public static final int KEY_GESTURE_TYPE_UNSPECIFIED = 0; public static final int KEY_GESTURE_TYPE_HOME = 1; public static final int KEY_GESTURE_TYPE_RECENT_APPS = 2; @@ -76,6 +82,8 @@ public final class KeyGestureEvent { public static final int KEY_GESTURE_TYPE_SLEEP = 36; public static final int KEY_GESTURE_TYPE_WAKEUP = 37; public static final int KEY_GESTURE_TYPE_MEDIA_KEY = 38; + // TODO(b/280423320): Remove "LAUNCH_DEFAULT_..." gestures and rely on launch intent to find + // the correct logging event. public static final int KEY_GESTURE_TYPE_LAUNCH_DEFAULT_BROWSER = 39; public static final int KEY_GESTURE_TYPE_LAUNCH_DEFAULT_EMAIL = 40; public static final int KEY_GESTURE_TYPE_LAUNCH_DEFAULT_CONTACTS = 41; @@ -88,7 +96,7 @@ public final class KeyGestureEvent { public static final int KEY_GESTURE_TYPE_LAUNCH_DEFAULT_FILES = 48; public static final int KEY_GESTURE_TYPE_LAUNCH_DEFAULT_WEATHER = 49; public static final int KEY_GESTURE_TYPE_LAUNCH_DEFAULT_FITNESS = 50; - public static final int KEY_GESTURE_TYPE_LAUNCH_APPLICATION_BY_PACKAGE_NAME = 51; + public static final int KEY_GESTURE_TYPE_LAUNCH_APPLICATION = 51; public static final int KEY_GESTURE_TYPE_DESKTOP_MODE = 52; public static final int KEY_GESTURE_TYPE_MULTI_WINDOW_NAVIGATION = 53; public static final int KEY_GESTURE_TYPE_RECENT_APPS_SWITCHER = 54; @@ -99,6 +107,8 @@ public final class KeyGestureEvent { public static final int KEY_GESTURE_TYPE_TV_TRIGGER_BUG_REPORT = 59; public static final int KEY_GESTURE_TYPE_ACCESSIBILITY_SHORTCUT = 60; public static final int KEY_GESTURE_TYPE_CLOSE_ALL_DIALOGS = 61; + public static final int KEY_GESTURE_TYPE_MOVE_TO_NEXT_DISPLAY = 62; + public static final int KEY_GESTURE_TYPE_TOGGLE_TALKBACK = 63; public static final int FLAG_CANCELLED = 1; @@ -164,7 +174,7 @@ public final class KeyGestureEvent { KEY_GESTURE_TYPE_LAUNCH_DEFAULT_FILES, KEY_GESTURE_TYPE_LAUNCH_DEFAULT_WEATHER, KEY_GESTURE_TYPE_LAUNCH_DEFAULT_FITNESS, - KEY_GESTURE_TYPE_LAUNCH_APPLICATION_BY_PACKAGE_NAME, + KEY_GESTURE_TYPE_LAUNCH_APPLICATION, KEY_GESTURE_TYPE_DESKTOP_MODE, KEY_GESTURE_TYPE_MULTI_WINDOW_NAVIGATION, KEY_GESTURE_TYPE_RECENT_APPS_SWITCHER, @@ -175,7 +185,8 @@ public final class KeyGestureEvent { KEY_GESTURE_TYPE_TV_TRIGGER_BUG_REPORT, KEY_GESTURE_TYPE_ACCESSIBILITY_SHORTCUT, KEY_GESTURE_TYPE_CLOSE_ALL_DIALOGS, - + KEY_GESTURE_TYPE_MOVE_TO_NEXT_DISPLAY, + KEY_GESTURE_TYPE_TOGGLE_TALKBACK, }) @Retention(RetentionPolicy.SOURCE) public @interface KeyGestureType { @@ -207,6 +218,8 @@ public final class KeyGestureEvent { private int mAction = KeyGestureEvent.ACTION_GESTURE_COMPLETE; private int mDisplayId = Display.DEFAULT_DISPLAY; private int mFlags = 0; + @Nullable + private AppLaunchData mAppLaunchData = null; /** * @see KeyGestureEvent#getDeviceId() @@ -264,6 +277,14 @@ public final class KeyGestureEvent { return this; } + /** + * @see KeyGestureEvent#getAppLaunchData() + */ + public Builder setAppLaunchData(@NonNull AppLaunchData appLaunchData) { + mAppLaunchData = appLaunchData; + return this; + } + /** * Build {@link KeyGestureEvent} */ @@ -276,6 +297,21 @@ public final class KeyGestureEvent { event.action = mAction; event.displayId = mDisplayId; event.flags = mFlags; + if (mAppLaunchData != null) { + if (mAppLaunchData instanceof AppLaunchData.CategoryData) { + event.appLaunchCategory = + ((AppLaunchData.CategoryData) mAppLaunchData).getCategory(); + } else if (mAppLaunchData instanceof AppLaunchData.RoleData) { + event.appLaunchRole = ((AppLaunchData.RoleData) mAppLaunchData).getRole(); + } else if (mAppLaunchData instanceof AppLaunchData.ComponentData) { + event.appLaunchPackageName = + ((AppLaunchData.ComponentData) mAppLaunchData).getPackageName(); + event.appLaunchClassName = + ((AppLaunchData.ComponentData) mAppLaunchData).getClassName(); + } else { + throw new IllegalArgumentException("AppLaunchData type is invalid!"); + } + } return new KeyGestureEvent(event); } } @@ -312,6 +348,27 @@ public final class KeyGestureEvent { return (mKeyGestureEvent.flags & FLAG_CANCELLED) != 0; } + public int getLogEvent() { + if (getKeyGestureType() == KEY_GESTURE_TYPE_LAUNCH_APPLICATION) { + return getLogEventFromLaunchAppData(getAppLaunchData()); + } + return keyGestureTypeToLogEvent(getKeyGestureType()); + } + + /** + * @return Launch app data associated with the event, only if key gesture type is + * {@code KEY_GESTURE_TYPE_LAUNCH_APPLICATION} + */ + @Nullable + public AppLaunchData getAppLaunchData() { + if (mKeyGestureEvent.gestureType != KEY_GESTURE_TYPE_LAUNCH_APPLICATION) { + return null; + } + return AppLaunchData.createLaunchData(mKeyGestureEvent.appLaunchCategory, + mKeyGestureEvent.appLaunchRole, mKeyGestureEvent.appLaunchPackageName, + mKeyGestureEvent.appLaunchClassName); + } + @Override public String toString() { return "KeyGestureEvent { " @@ -321,7 +378,8 @@ public final class KeyGestureEvent { + "keyGestureType = " + keyGestureTypeToString(mKeyGestureEvent.gestureType) + ", " + "action = " + mKeyGestureEvent.action + ", " + "displayId = " + mKeyGestureEvent.displayId + ", " - + "flags = " + mKeyGestureEvent.flags + + "flags = " + mKeyGestureEvent.flags + ", " + + "appLaunchData = " + getAppLaunchData() + " }"; } @@ -336,7 +394,11 @@ public final class KeyGestureEvent { && mKeyGestureEvent.gestureType == that.mKeyGestureEvent.gestureType && mKeyGestureEvent.action == that.mKeyGestureEvent.action && mKeyGestureEvent.displayId == that.mKeyGestureEvent.displayId - && mKeyGestureEvent.flags == that.mKeyGestureEvent.flags; + && mKeyGestureEvent.flags == that.mKeyGestureEvent.flags + && Objects.equals(mKeyGestureEvent.appLaunchCategory, that.mKeyGestureEvent.appLaunchCategory) + && Objects.equals(mKeyGestureEvent.appLaunchRole, that.mKeyGestureEvent.appLaunchRole) + && Objects.equals(mKeyGestureEvent.appLaunchPackageName, that.mKeyGestureEvent.appLaunchPackageName) + && Objects.equals(mKeyGestureEvent.appLaunchClassName, that.mKeyGestureEvent.appLaunchClassName); } @Override @@ -349,13 +411,21 @@ public final class KeyGestureEvent { _hash = 31 * _hash + mKeyGestureEvent.action; _hash = 31 * _hash + mKeyGestureEvent.displayId; _hash = 31 * _hash + mKeyGestureEvent.flags; + _hash = 31 * _hash + (mKeyGestureEvent.appLaunchCategory != null + ? mKeyGestureEvent.appLaunchCategory.hashCode() : 0); + _hash = 31 * _hash + (mKeyGestureEvent.appLaunchRole != null + ? mKeyGestureEvent.appLaunchRole.hashCode() : 0); + _hash = 31 * _hash + (mKeyGestureEvent.appLaunchPackageName != null + ? mKeyGestureEvent.appLaunchPackageName.hashCode() : 0); + _hash = 31 * _hash + (mKeyGestureEvent.appLaunchClassName != null + ? mKeyGestureEvent.appLaunchClassName.hashCode() : 0); return _hash; } /** * Convert KeyGestureEvent type to corresponding log event got KeyboardSystemsEvent */ - public static int keyGestureTypeToLogEvent(@KeyGestureType int value) { + private static int keyGestureTypeToLogEvent(@KeyGestureType int value) { switch (value) { case KEY_GESTURE_TYPE_HOME: return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__HOME; @@ -415,6 +485,8 @@ public final class KeyGestureEvent { case KEY_GESTURE_TYPE_CHANGE_SPLITSCREEN_FOCUS_LEFT: case KEY_GESTURE_TYPE_CHANGE_SPLITSCREEN_FOCUS_RIGHT: return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__CHANGE_SPLITSCREEN_FOCUS; + case KEY_GESTURE_TYPE_MOVE_TO_NEXT_DISPLAY: + return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__MOVE_TO_NEXT_DISPLAY; case KEY_GESTURE_TYPE_TRIGGER_BUG_REPORT: return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__TRIGGER_BUG_REPORT; case KEY_GESTURE_TYPE_LOCK_SCREEN: @@ -455,14 +527,79 @@ public final class KeyGestureEvent { return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_DEFAULT_WEATHER; case KEY_GESTURE_TYPE_LAUNCH_DEFAULT_FITNESS: return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_DEFAULT_FITNESS; - case KEY_GESTURE_TYPE_LAUNCH_APPLICATION_BY_PACKAGE_NAME: + case KEY_GESTURE_TYPE_LAUNCH_APPLICATION: return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_APPLICATION_BY_PACKAGE_NAME; case KEY_GESTURE_TYPE_DESKTOP_MODE: return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__DESKTOP_MODE; case KEY_GESTURE_TYPE_MULTI_WINDOW_NAVIGATION: return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__MULTI_WINDOW_NAVIGATION; default: - return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__UNSPECIFIED; + return LOG_EVENT_UNSPECIFIED; + } + } + + /** + * Find Log event type corresponding to app launch data. + * Returns {@code LOG_EVENT_UNSPECIFIED} if no matching event found + */ + private static int getLogEventFromLaunchAppData(@Nullable AppLaunchData data) { + if (data == null) { + return LOG_EVENT_UNSPECIFIED; + } + if (data instanceof AppLaunchData.CategoryData) { + return getLogEventFromSelectorCategory( + ((AppLaunchData.CategoryData) data).getCategory()); + } else if (data instanceof AppLaunchData.RoleData) { + return getLogEventFromRole(((AppLaunchData.RoleData) data).getRole()); + } else if (data instanceof AppLaunchData.ComponentData) { + return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_APPLICATION_BY_PACKAGE_NAME; + } else { + throw new IllegalArgumentException("AppLaunchData type is invalid!"); + } + } + + private static int getLogEventFromSelectorCategory(@NonNull String category) { + switch (category) { + case Intent.CATEGORY_APP_BROWSER: + return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_DEFAULT_BROWSER; + case Intent.CATEGORY_APP_EMAIL: + return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_DEFAULT_EMAIL; + case Intent.CATEGORY_APP_CONTACTS: + return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_DEFAULT_CONTACTS; + case Intent.CATEGORY_APP_CALENDAR: + return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_DEFAULT_CALENDAR; + case Intent.CATEGORY_APP_CALCULATOR: + return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_DEFAULT_CALCULATOR; + case Intent.CATEGORY_APP_MUSIC: + return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_DEFAULT_MUSIC; + case Intent.CATEGORY_APP_MAPS: + return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_DEFAULT_MAPS; + case Intent.CATEGORY_APP_MESSAGING: + return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_DEFAULT_MESSAGING; + case Intent.CATEGORY_APP_GALLERY: + return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_DEFAULT_GALLERY; + case Intent.CATEGORY_APP_FILES: + return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_DEFAULT_FILES; + case Intent.CATEGORY_APP_WEATHER: + return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_DEFAULT_WEATHER; + case Intent.CATEGORY_APP_FITNESS: + return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_DEFAULT_FITNESS; + default: + return LOG_EVENT_UNSPECIFIED; + } + } + + /** + * Find Log event corresponding to the provide system role name. + * Returns {@code LOG_EVENT_UNSPECIFIED} if no matching event found. + */ + private static int getLogEventFromRole(@NonNull String role) { + if (RoleManager.ROLE_BROWSER.equals(role)) { + return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_DEFAULT_BROWSER; + } else if (RoleManager.ROLE_SMS.equals(role)) { + return FrameworkStatsLog.KEYBOARD_SYSTEMS_EVENT_REPORTED__KEYBOARD_SYSTEM_EVENT__LAUNCH_DEFAULT_MESSAGING; + } else { + return LOG_EVENT_UNSPECIFIED; } } @@ -530,6 +667,8 @@ public final class KeyGestureEvent { return "KEY_GESTURE_TYPE_CHANGE_SPLITSCREEN_FOCUS_LEFT"; case KEY_GESTURE_TYPE_CHANGE_SPLITSCREEN_FOCUS_RIGHT: return "KEY_GESTURE_TYPE_CHANGE_SPLITSCREEN_FOCUS_RIGHT"; + case KEY_GESTURE_TYPE_MOVE_TO_NEXT_DISPLAY: + return "KEY_GESTURE_TYPE_MOVE_TO_NEXT_DISPLAY"; case KEY_GESTURE_TYPE_TRIGGER_BUG_REPORT: return "KEY_GESTURE_TYPE_TRIGGER_BUG_REPORT"; case KEY_GESTURE_TYPE_LOCK_SCREEN: @@ -570,8 +709,8 @@ public final class KeyGestureEvent { return "KEY_GESTURE_TYPE_LAUNCH_DEFAULT_WEATHER"; case KEY_GESTURE_TYPE_LAUNCH_DEFAULT_FITNESS: return "KEY_GESTURE_TYPE_LAUNCH_DEFAULT_FITNESS"; - case KEY_GESTURE_TYPE_LAUNCH_APPLICATION_BY_PACKAGE_NAME: - return "KEY_GESTURE_TYPE_LAUNCH_APPLICATION_BY_PACKAGE_NAME"; + case KEY_GESTURE_TYPE_LAUNCH_APPLICATION: + return "KEY_GESTURE_TYPE_LAUNCH_APPLICATION"; case KEY_GESTURE_TYPE_DESKTOP_MODE: return "KEY_GESTURE_TYPE_DESKTOP_MODE"; case KEY_GESTURE_TYPE_MULTI_WINDOW_NAVIGATION: @@ -592,6 +731,8 @@ public final class KeyGestureEvent { return "KEY_GESTURE_TYPE_ACCESSIBILITY_SHORTCUT"; case KEY_GESTURE_TYPE_CLOSE_ALL_DIALOGS: return "KEY_GESTURE_TYPE_CLOSE_ALL_DIALOGS"; + case KEY_GESTURE_TYPE_TOGGLE_TALKBACK: + return "KEY_GESTURE_TYPE_TOGGLE_TALKBACK"; default: return Integer.toHexString(value); } diff --git a/core/java/android/hardware/input/KeyGlyphMap.java b/core/java/android/hardware/input/KeyGlyphMap.java index 49c47a2ad4c48a43aa69c5d95c120ac2a331fc73..b517a635c9c1c1e086e94aac799603c874ccb65f 100644 --- a/core/java/android/hardware/input/KeyGlyphMap.java +++ b/core/java/android/hardware/input/KeyGlyphMap.java @@ -170,6 +170,8 @@ public final class KeyGlyphMap implements Parcelable { return resources.getDrawable(drawableRes, null); } catch (PackageManager.NameNotFoundException ignored) { Log.e(TAG, "Package name not found for " + mComponentName); + } catch (Resources.NotFoundException ignored) { + Log.e(TAG, "Resource not found for " + mComponentName); } return null; } diff --git a/core/java/android/hardware/location/ContextHubClient.java b/core/java/android/hardware/location/ContextHubClient.java index 953086de2d15582bafa20972369d3d89d8246477..538e2fb7fe3ed9fc95af2793b69ac8c77b8af356 100644 --- a/core/java/android/hardware/location/ContextHubClient.java +++ b/core/java/android/hardware/location/ContextHubClient.java @@ -194,23 +194,20 @@ public class ContextHubClient implements Closeable { /** * Sends a reliable message to a nanoapp. * - * This method is similar to {@link ContextHubClient#sendMessageToNanoApp} with the + *

    This method is similar to {@link ContextHubClient#sendMessageToNanoApp} with the * difference that it expects the message to be acknowledged by CHRE. * - * The transaction succeeds after we received an ACK from CHRE without error. - * In all other cases the transaction will fail. + *

    The transaction succeeds after we received an ACK from CHRE without error. In all other + * cases the transaction will fail. */ @RequiresPermission(android.Manifest.permission.ACCESS_CONTEXT_HUB) @NonNull - @FlaggedApi(Flags.FLAG_RELIABLE_MESSAGE) public ContextHubTransaction sendReliableMessageToNanoApp( @NonNull NanoAppMessage message) { ContextHubTransaction transaction = new ContextHubTransaction<>(ContextHubTransaction.TYPE_RELIABLE_MESSAGE); - if (!Flags.reliableMessageImplementation() || - !mAttachedHub.supportsReliableMessages() || - message.isBroadcastMessage()) { + if (!mAttachedHub.supportsReliableMessages() || message.isBroadcastMessage()) { transaction.setResponse(new ContextHubTransaction.Response( ContextHubTransaction.RESULT_FAILED_NOT_SUPPORTED, null)); return transaction; diff --git a/core/java/android/hardware/location/ContextHubInfo.java b/core/java/android/hardware/location/ContextHubInfo.java index d9349701bf7dfcb4c486360498841040e3f51fe3..858ec23ebed8b1a49724f09edd905434fc99c799 100644 --- a/core/java/android/hardware/location/ContextHubInfo.java +++ b/core/java/android/hardware/location/ContextHubInfo.java @@ -99,8 +99,7 @@ public class ContextHubInfo implements Parcelable { mSleepPowerDrawMw = 0; mPeakPowerDrawMw = 0; mMaxPacketLengthBytes = contextHub.maxSupportedMessageLengthBytes; - mSupportsReliableMessages = Flags.reliableMessageImplementation() - && contextHub.supportsReliableMessages; + mSupportsReliableMessages = contextHub.supportsReliableMessages; mChrePlatformId = contextHub.chrePlatformId; mChreApiMajorVersion = contextHub.chreApiMajorVersion; mChreApiMinorVersion = contextHub.chreApiMinorVersion; @@ -124,7 +123,6 @@ public class ContextHubInfo implements Parcelable { * * @return whether reliable messages are supported. */ - @FlaggedApi(Flags.FLAG_RELIABLE_MESSAGE) public boolean supportsReliableMessages() { return mSupportsReliableMessages; } @@ -364,22 +362,22 @@ public class ContextHubInfo implements Parcelable { boolean isEqual = false; if (object instanceof ContextHubInfo) { ContextHubInfo other = (ContextHubInfo) object; - isEqual = (other.getId() == mId) - && other.getName().equals(mName) - && other.getVendor().equals(mVendor) - && other.getToolchain().equals(mToolchain) - && (other.getToolchainVersion() == mToolchainVersion) - && (other.getStaticSwVersion() == getStaticSwVersion()) - && (other.getChrePlatformId() == mChrePlatformId) - && (other.getPeakMips() == mPeakMips) - && (other.getStoppedPowerDrawMw() == mStoppedPowerDrawMw) - && (other.getSleepPowerDrawMw() == mSleepPowerDrawMw) - && (other.getPeakPowerDrawMw() == mPeakPowerDrawMw) - && (other.getMaxPacketLengthBytes() == mMaxPacketLengthBytes) - && (!Flags.reliableMessage() - || (other.supportsReliableMessages() == mSupportsReliableMessages)) - && Arrays.equals(other.getSupportedSensors(), mSupportedSensors) - && Arrays.equals(other.getMemoryRegions(), mMemoryRegions); + isEqual = + (other.getId() == mId) + && other.getName().equals(mName) + && other.getVendor().equals(mVendor) + && other.getToolchain().equals(mToolchain) + && (other.getToolchainVersion() == mToolchainVersion) + && (other.getStaticSwVersion() == getStaticSwVersion()) + && (other.getChrePlatformId() == mChrePlatformId) + && (other.getPeakMips() == mPeakMips) + && (other.getStoppedPowerDrawMw() == mStoppedPowerDrawMw) + && (other.getSleepPowerDrawMw() == mSleepPowerDrawMw) + && (other.getPeakPowerDrawMw() == mPeakPowerDrawMw) + && (other.getMaxPacketLengthBytes() == mMaxPacketLengthBytes) + && (other.supportsReliableMessages() == mSupportsReliableMessages) + && Arrays.equals(other.getSupportedSensors(), mSupportedSensors) + && Arrays.equals(other.getMemoryRegions(), mMemoryRegions); } return isEqual; diff --git a/core/java/android/hardware/location/ContextHubManager.java b/core/java/android/hardware/location/ContextHubManager.java index 218b02315fc838092e79be8bb0b49842edb7655a..6284e7061b8882354ef5016e22e056219bde76b3 100644 --- a/core/java/android/hardware/location/ContextHubManager.java +++ b/core/java/android/hardware/location/ContextHubManager.java @@ -750,9 +750,7 @@ public final class ContextHubManager { executor.execute( () -> { callback.onMessageFromNanoApp(client, message); - if (Flags.reliableMessage() - && Flags.reliableMessageImplementation() - && message.isReliable()) { + if (message.isReliable()) { client.reliableMessageCallbackFinished( message.getMessageSequenceNumber(), ErrorCode.OK); } else { diff --git a/core/java/android/hardware/location/ContextHubTransaction.java b/core/java/android/hardware/location/ContextHubTransaction.java index 4060f4c1b462a59660cf258e8c0e742842409032..bd87b5cb6d5431d06961cf0083d3d289d66d5a1a 100644 --- a/core/java/android/hardware/location/ContextHubTransaction.java +++ b/core/java/android/hardware/location/ContextHubTransaction.java @@ -69,7 +69,6 @@ public class ContextHubTransaction { public static final int TYPE_ENABLE_NANOAPP = 2; public static final int TYPE_DISABLE_NANOAPP = 3; public static final int TYPE_QUERY_NANOAPPS = 4; - @FlaggedApi(Flags.FLAG_RELIABLE_MESSAGE) public static final int TYPE_RELIABLE_MESSAGE = 5; /** @@ -123,10 +122,8 @@ public class ContextHubTransaction { * Failure mode when the Context Hub HAL was not available. */ public static final int RESULT_FAILED_HAL_UNAVAILABLE = 8; - /** - * Failure mode when the operation is not supported. - */ - @FlaggedApi(Flags.FLAG_RELIABLE_MESSAGE) + + /** Failure mode when the operation is not supported. */ public static final int RESULT_FAILED_NOT_SUPPORTED = 9; /** @@ -232,11 +229,8 @@ public class ContextHubTransaction { return upperCase ? "Disable" : "disable"; case ContextHubTransaction.TYPE_QUERY_NANOAPPS: return upperCase ? "Query" : "query"; - case ContextHubTransaction.TYPE_RELIABLE_MESSAGE: { - if (Flags.reliableMessage()) { - return upperCase ? "Reliable Message" : "reliable message"; - } - } + case ContextHubTransaction.TYPE_RELIABLE_MESSAGE: + return upperCase ? "Reliable Message" : "reliable message"; default: return upperCase ? "Unknown" : "unknown"; } diff --git a/core/java/android/hardware/location/NanoAppMessage.java b/core/java/android/hardware/location/NanoAppMessage.java index ec0adda38d1091149819c997df014d5a771cdaa9..32b9283ecd2eed74130c97df61e594de7a3bccd6 100644 --- a/core/java/android/hardware/location/NanoAppMessage.java +++ b/core/java/android/hardware/location/NanoAppMessage.java @@ -97,7 +97,7 @@ public final class NanoAppMessage implements Parcelable { /** * Creates a NanoAppMessage object sent from a nanoapp. * - * This factory method is intended only to be used by the Context Hub Service when delivering + *

    This factory method is intended only to be used by the Context Hub Service when delivering * messages from a nanoapp to clients. * * @param sourceNanoAppId the ID of the nanoapp that the message was sent from @@ -106,12 +106,14 @@ public final class NanoAppMessage implements Parcelable { * @param broadcasted {@code true} if the message was broadcasted, {@code false} otherwise * @param isReliable if the NanoAppMessage is reliable * @param messageSequenceNumber the message sequence number of the NanoAppMessage - * * @return the NanoAppMessage object */ - @FlaggedApi(Flags.FLAG_RELIABLE_MESSAGE) - public static @NonNull NanoAppMessage createMessageFromNanoApp(long sourceNanoAppId, - int messageType, @NonNull byte[] messageBody, boolean broadcasted, boolean isReliable, + public static @NonNull NanoAppMessage createMessageFromNanoApp( + long sourceNanoAppId, + int messageType, + @NonNull byte[] messageBody, + boolean broadcasted, + boolean isReliable, int messageSequenceNumber) { return new NanoAppMessage(sourceNanoAppId, messageType, messageBody, broadcasted, isReliable, messageSequenceNumber); @@ -147,18 +149,18 @@ public final class NanoAppMessage implements Parcelable { /** * Returns if the message is reliable. The default value is {@code false} + * * @return {@code true} if the message is reliable, {@code false} otherwise */ - @FlaggedApi(Flags.FLAG_RELIABLE_MESSAGE) public boolean isReliable() { return mIsReliable; } /** * Returns the message sequence number. The default value is 0 + * * @return the message sequence number of the message */ - @FlaggedApi(Flags.FLAG_RELIABLE_MESSAGE) public int getMessageSequenceNumber() { return mMessageSequenceNumber; } diff --git a/core/java/android/hardware/radio/RadioAlert.java b/core/java/android/hardware/radio/RadioAlert.java index 9b93e73555f0cd524a572ab905e91c55fc36d9ce..6eb9e5845d3010c33a17fbde1e4298e292bfa3e9 100644 --- a/core/java/android/hardware/radio/RadioAlert.java +++ b/core/java/android/hardware/radio/RadioAlert.java @@ -17,13 +17,19 @@ package android.hardware.radio; import android.annotation.FlaggedApi; +import android.annotation.FloatRange; +import android.annotation.IntDef; import android.annotation.Nullable; +import android.annotation.SystemApi; import android.os.Parcel; import android.os.Parcelable; import androidx.annotation.NonNull; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -35,8 +41,272 @@ import java.util.Objects; * @hide */ @FlaggedApi(Flags.FLAG_HD_RADIO_EMERGENCY_ALERT_SYSTEM) +@SystemApi public final class RadioAlert implements Parcelable { + /** + * Actionable by all targeted recipients. + */ + public static final int STATUS_ACTUAL = 0; + + /** + * Actionable only by designated exercise participants. + */ + public static final int STATUS_EXERCISE = 1; + + /** + * Technical testing only, all recipients disregard. + */ + public static final int STATUS_TEST = 2; + + /** + * The status of the alert message. + * + *

    Status is the appropriate handling of the alert message. + * + * @hide + */ + @IntDef(prefix = { "STATUS_" }, value = { + STATUS_ACTUAL, + STATUS_EXERCISE, + STATUS_TEST, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface AlertStatus {} + + /** + * Initial information requiring attention by targeted recipients. + */ + public static final int MESSAGE_TYPE_ALERT = 0; + + /** + * Updates and supersedes the earlier message(s). + */ + public static final int MESSAGE_TYPE_UPDATE = 1; + + /** + * Cancels the earlier message(s). + */ + public static final int MESSAGE_TYPE_CANCEL = 2; + + /** + * The emergency alert message type. + * + *

    The message type indicates the emergency alert message nature. + * + * @hide + */ + @IntDef(prefix = { "MESSAGE_TYPE_" }, value = { + MESSAGE_TYPE_ALERT, + MESSAGE_TYPE_UPDATE, + MESSAGE_TYPE_CANCEL, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface AlertMessageType {} + + /** + * Alert category related to geophysical (inc. landslide). + */ + public static final int CATEGORY_GEO = 0; + + /** + * Alert category related to meteorological (inc. flood). + */ + public static final int CATEGORY_MET = 1; + + /** + * Alert category related to general emergency and public safety. + */ + public static final int CATEGORY_SAFETY = 2; + + /** + * Alert category related to law enforcement, military, homeland and local/private security. + */ + public static final int CATEGORY_SECURITY = 3; + + /** + * Alert category related to rescue and recovery. + */ + public static final int CATEGORY_RESCUE = 4; + + /** + * Alert category related to fire suppression and rescue. + */ + public static final int CATEGORY_FIRE = 5; + + /** + * Alert category related to medical and public health. + */ + public static final int CATEGORY_HEALTH = 6; + + /** + * Alert category related to pollution and other environmental. + */ + public static final int CATEGORY_ENV = 7; + + /** + * Alert category related to public and private transportation. + */ + public static final int CATEGORY_TRANSPORT = 8; + + /** + * Alert category related to utility, telecommunication, other non-transport infrastructure. + */ + public static final int CATEGORY_INFRA = 9; + + /** + * Alert category related to chemical, biological, radiological, nuclear or high-yield + * explosive threat or attack. + */ + public static final int CATEGORY_CBRNE = 10; + + /** + * Alert category of other events. + */ + public static final int CATEGORY_OTHER = 11; + + /** + * The category of the subject event of the emergency alert message. + * + * @hide + */ + @IntDef(prefix = { "CATEGORY_" }, value = { + CATEGORY_GEO, + CATEGORY_MET, + CATEGORY_SAFETY, + CATEGORY_SECURITY, + CATEGORY_RESCUE, + CATEGORY_FIRE, + CATEGORY_HEALTH, + CATEGORY_ENV, + CATEGORY_TRANSPORT, + CATEGORY_INFRA, + CATEGORY_CBRNE, + CATEGORY_OTHER, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface AlertCategory {} + + /** + * Urgency indicating that responsive action should be taken immediately. + */ + public static final int URGENCY_IMMEDIATE = 0; + + /** + * Urgency indicating that responsive action should be taken soon. + */ + public static final int URGENCY_EXPECTED = 1; + + /** + * Urgency indicating that responsive action should be taken in the near future. + */ + public static final int URGENCY_FUTURE = 2; + + /** + * Urgency indicating that responsive action is no longer required. + */ + public static final int URGENCY_PAST = 3; + + /** + * Unknown Urgency. + */ + public static final int URGENCY_UNKNOWN = 4; + + /** + * The urgency of the subject event of the emergency alert message. + * + * @hide + */ + @IntDef(prefix = { "URGENCY_" }, value = { + URGENCY_IMMEDIATE, + URGENCY_EXPECTED, + URGENCY_FUTURE, + URGENCY_PAST, + URGENCY_UNKNOWN, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface AlertUrgency {} + + /** + * Severity indicating extraordinary threat to life or property. + */ + public static final int SEVERITY_EXTREME = 0; + + /** + * Severity indicating significant threat to life or property. + */ + public static final int SEVERITY_SEVERE = 1; + + /** + * Severity indicating possible threat to life or property. + */ + public static final int SEVERITY_MODERATE = 2; + + /** + * Severity indicating minimal to no known threat to life or property. + */ + public static final int SEVERITY_MINOR = 3; + + /** + * Unknown severity. + */ + public static final int SEVERITY_UNKNOWN = 4; + + /** + * The severity of the subject event of the emergency alert message. + * + * @hide + */ + @IntDef(prefix = { "SEVERITY_" }, value = { + SEVERITY_EXTREME, + SEVERITY_SEVERE, + SEVERITY_MODERATE, + SEVERITY_MINOR, + SEVERITY_UNKNOWN, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface AlertSeverity {} + + /** + * Certainty indicating that the event is determined to has occurred or to be ongoing. + */ + public static final int CERTAINTY_OBSERVED = 0; + + /** + * Certainty indicating that the event is likely (probability > ~50%). + */ + public static final int CERTAINTY_LIKELY = 1; + + /** + * Certainty indicating that the event is possible but not likely (probability <= ~50%). + */ + public static final int CERTAINTY_POSSIBLE = 2; + + /** + * Certainty indicating that the event is not expected to occur (probability ~ 0). + */ + public static final int CERTAINTY_UNLIKELY = 3; + + /** + * Unknown certainty. + */ + public static final int CERTAINTY_UNKNOWN = 4; + + /** + * The certainty of the subject event of the emergency alert message. + * + * @hide + */ + @IntDef(prefix = { "CERTAINTY_" }, value = { + CERTAINTY_OBSERVED, + CERTAINTY_LIKELY, + CERTAINTY_POSSIBLE, + CERTAINTY_UNLIKELY, + CERTAINTY_UNKNOWN, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface AlertCertainty {} + public static final class Geocode implements Parcelable { private final String mValueName; @@ -45,8 +315,9 @@ public final class RadioAlert implements Parcelable { /** * Constructor of geocode. * - * @param valueName Name of geocode value - * @param value Value of geocode + * @param valueName Name of geocode value. + * @param value Value of geocode. + * * @hide */ public Geocode(@NonNull String valueName, @NonNull String value) { @@ -71,6 +342,30 @@ public final class RadioAlert implements Parcelable { } }; + /** + * Gets the value name of a geographic code. + * + *

    Value name are acronyms should be represented in all capital + * letters without periods (e.g., SAME, FIPS, ZIP). See ITU-T X.1303 + * bis for more info). + * + * @return Value name of a geographic code. + */ + @NonNull + public String getValueName() { + return mValueName; + } + + /** + * Gets the value of a geographic code. + * + * @return Value of a geographic code. + */ + @NonNull + public String getValue() { + return mValue; + } + @Override public int describeContents() { return 0; @@ -116,6 +411,7 @@ public final class RadioAlert implements Parcelable { * * @param latitude Latitude of the coordinate * @param longitude Longitude of the coordinate + * * @hide */ public Coordinate(double latitude, double longitude) { @@ -147,6 +443,26 @@ public final class RadioAlert implements Parcelable { } }; + /** + * Gets the latitude of a coordinate. + * + * @return Latitude of a coordinate. + */ + @FloatRange(from = -90.0, to = 90.0) + public double getLatitude() { + return mLatitude; + } + + /** + * Gets the longitude of a coordinate. + * + * @return Longitude of a coordinate. + */ + @FloatRange(from = -180.0, to = 180.0) + public double getLongitude() { + return mLongitude; + } + @Override public int describeContents() { return 0; @@ -189,6 +505,7 @@ public final class RadioAlert implements Parcelable { * Constructor of polygon. * * @param coordinates Coordinates the polygon is composed of + * * @hide */ public Polygon(@NonNull List coordinates) { @@ -220,6 +537,19 @@ public final class RadioAlert implements Parcelable { } }; + /** + * Gets the coordinates of points defining a polygon. + * + *

    A minimum of 4 coordinates must be present and the first and last + * coordinates must be the same. See WGS 84 for more information. + * + * @return Paired values of points defining a polygon. + */ + @NonNull + public List getCoordinates() { + return mCoordinates; + } + @Override public int describeContents() { return 0; @@ -263,6 +593,7 @@ public final class RadioAlert implements Parcelable { * * @param polygons Polygons used in alert area * @param geocodes Geocodes used in alert area + * * @hide */ public AlertArea(@NonNull List polygons, @NonNull List geocodes) { @@ -289,6 +620,28 @@ public final class RadioAlert implements Parcelable { } }; + /** + * Gets polygons delineating the affected area of the alert message. + * + * @return Polygons delineating the affected area of the alert message. + */ + @NonNull + public List getPolygons() { + return mPolygons; + } + + /** + * Gets the geographic codes delineating the affected area of the alert + * message. + * + * @return geographic codes delineating the affected area of the alert + * message. + */ + @NonNull + public List getGeocodes() { + return mGeocodes; + } + @Override public int describeContents() { return 0; @@ -326,18 +679,18 @@ public final class RadioAlert implements Parcelable { public static final class AlertInfo implements Parcelable { - private final List mCategoryList; - private final int mUrgency; - private final int mSeverity; - private final int mCertainty; - private final String mTextualMessage; - private final List mAreaList; + private final @NonNull int[] mCategories; + private final @AlertUrgency int mUrgency; + private final @AlertSeverity int mSeverity; + private final @AlertCertainty int mCertainty; + private final @NonNull String mTextualMessage; + private final @NonNull List mAreaList; @Nullable private final String mLanguage; /** * Constructor for alert info. * - * @param categoryList Array of categories of the subject event of the alert message + * @param categories Array of categories of the subject event of the alert message * @param urgency The urgency of the subject event of the alert message * @param severity The severity of the subject event of the alert message * @param certainty The certainty of the subject event of the alert message @@ -347,10 +700,13 @@ public final class RadioAlert implements Parcelable { * @param language The optional language field of the alert info * @hide */ - public AlertInfo(@NonNull List categoryList, int urgency, - int severity, int certainty, String textualMessage, - @NonNull List areaList, @Nullable String language) { - mCategoryList = Objects.requireNonNull(categoryList, "Category list can not be null"); + public AlertInfo(@NonNull int[] categories, @AlertUrgency int urgency, + @AlertSeverity int severity, @AlertCertainty int certainty, + String textualMessage, @NonNull List areaList, + @Nullable String language) { + Objects.requireNonNull(categories, "Categories can not be null"); + Arrays.sort(categories); + mCategories = categories; mUrgency = urgency; mSeverity = severity; mCertainty = certainty; @@ -360,7 +716,8 @@ public final class RadioAlert implements Parcelable { } private AlertInfo(Parcel in) { - mCategoryList = in.readArrayList(Integer.class.getClassLoader(), Integer.class); + mCategories = new int[in.readInt()]; + in.readIntArray(mCategories); mUrgency = in.readInt(); mSeverity = in.readInt(); mCertainty = in.readInt(); @@ -375,6 +732,84 @@ public final class RadioAlert implements Parcelable { } } + /** + * Gets categories of the subject event of the alert info. + * + *

    According to ITU-T X.1303, a single alert info block may contains multiple categories. + * + * @return Categories of the subject event of the alert info. + */ + @NonNull + public int[] getCategories() { + return mCategories; + } + + /** + * Gets the urgency of the subject event of the alert info. + * + *

    Urgency represents the time available to prepare for the alert. See ITU-T X.1303 bis + * for more info. + * + * @return The urgency of the subject event of the alert info. + */ + @AlertUrgency public int getUrgency() { + return mUrgency; + } + + /** + * Gets the severity of the subject event of the alert info. + * + *

    Severity represents the intensity of impact. See ITU-T X.1303 bis for more info. + * + * @return The urgency of the subject event of the alert info + */ + @AlertSeverity public int getSeverity() { + return mSeverity; + } + + /** + * Gets the certainty of the subject event of the alert info. + * + *

    Certainty represents confidence in the observation or prediction. See ITU-T X.1303 + * bis for more info. + * + * @return The certainty of the subject event of the alert info. + */ + @AlertCertainty public int getCertainty() { + return mCertainty; + } + + /** + * Gets textual descriptions of the subject event. + * + * @return Textual descriptions of the subject event. + */ + @NonNull + public String getDescription() { + return mTextualMessage; + } + + /** + * Gets geographic areas to which the alert info segment in which it + * appears applies. + * + * @return Areas to which the alert info segment in which it appears applies. + */ + @NonNull + public List getAreas() { + return mAreaList; + } + + /** + * Gets IETF RFC 3066 language code donating the language of the alert message. + * + * @return {@code null} if unspecified, otherwise IETF RFC 3066 language code + */ + @Nullable + public String getLanguage() { + return mLanguage; + } + public static final @NonNull Creator CREATOR = new Creator() { @Override public AlertInfo createFromParcel(Parcel in) { @@ -394,7 +829,8 @@ public final class RadioAlert implements Parcelable { @Override public void writeToParcel(@NonNull Parcel dest, int flags) { - dest.writeList(mCategoryList); + dest.writeInt(mCategories.length); + dest.writeIntArray(mCategories); dest.writeInt(mUrgency); dest.writeInt(mSeverity); dest.writeInt(mCertainty); @@ -411,16 +847,16 @@ public final class RadioAlert implements Parcelable { @NonNull @Override public String toString() { - return "AlertInfo [categoryList=" + mCategoryList + ", urgency=" + mUrgency - + ", severity=" + mSeverity + ", certainty=" + mCertainty + return "AlertInfo [categories=" + Arrays.toString(mCategories) + ", urgency=" + + mUrgency + ", severity=" + mSeverity + ", certainty=" + mCertainty + ", textualMessage=" + mTextualMessage + ", areaList=" + mAreaList + ", language=" + mLanguage + "]"; } @Override public int hashCode() { - return Objects.hash(mCategoryList, mUrgency, mSeverity, mCertainty, mTextualMessage, - mAreaList, mLanguage); + return Objects.hash(Arrays.hashCode(mCategories), mUrgency, mSeverity, mCertainty, + mTextualMessage, mAreaList, mLanguage); } @Override @@ -432,16 +868,17 @@ public final class RadioAlert implements Parcelable { return false; } - return mCategoryList.equals(other.mCategoryList) && mUrgency == other.mUrgency - && mSeverity == other.mSeverity && mCertainty == other.mCertainty + return Arrays.equals(mCategories, other.mCategories) + && mUrgency == other.mUrgency && mSeverity == other.mSeverity + && mCertainty == other.mCertainty && mTextualMessage.equals(other.mTextualMessage) && mAreaList.equals(other.mAreaList) && Objects.equals(mLanguage, other.mLanguage); } } - private final int mStatus; - private final int mMessageType; + private final @AlertStatus int mStatus; + private final @AlertMessageType int mMessageType; private final List mInfoList; /** @@ -452,7 +889,7 @@ public final class RadioAlert implements Parcelable { * @param infoList List of alert info * @hide */ - public RadioAlert(int status, int messageType, + public RadioAlert(@AlertStatus int status, @AlertMessageType int messageType, @NonNull List infoList) { mStatus = status; mMessageType = messageType; @@ -466,6 +903,42 @@ public final class RadioAlert implements Parcelable { AlertInfo.class); } + /** + * Gets the status of the alert message. + * + *

    Status is the appropriate handling of the alert message. See ITU-T X.1303 bis for more + * info. + * + * @return The status of the alert message. + */ + @AlertStatus public int getStatus() { + return mStatus; + } + + /** + * Gets the message type of the alert message. + * + *

    Message type is The nature of the emergency alert message. See ITU-T X.1303 bis for + * more info. + * + * @return The message type of the alert message. + */ + @AlertMessageType public int getMessageType() { + return mMessageType; + } + + /** + * Gets the alert info list. + * + *

    See ITU-T X.1303 bis for more info of alert info. + * + * @return The alert info list. + */ + @NonNull + public List getInfoList() { + return mInfoList; + } + @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mStatus); diff --git a/core/java/android/hardware/radio/RadioManager.java b/core/java/android/hardware/radio/RadioManager.java index 61854e44287b3a6c182c070dc5374cfdd18202f4..c6fa9c2f99c16f7c8f6699bf42605837413d2ffe 100644 --- a/core/java/android/hardware/radio/RadioManager.java +++ b/core/java/android/hardware/radio/RadioManager.java @@ -1547,6 +1547,7 @@ public class RadioManager { private final int mSignalQuality; @Nullable private final RadioMetadata mMetadata; @NonNull private final Map mVendorInfo; + @Nullable private final RadioAlert mAlert; /** @hide */ public ProgramInfo(@NonNull ProgramSelector selector, @@ -1555,6 +1556,30 @@ public class RadioManager { @Nullable Collection relatedContent, int infoFlags, int signalQuality, @Nullable RadioMetadata metadata, @Nullable Map vendorInfo) { + this(selector, logicallyTunedTo, physicallyTunedTo, relatedContent, infoFlags, + signalQuality, metadata, vendorInfo, /* alert= */ null); + } + + /** + * Constructor for program info. + * + * @param selector Program selector + * @param logicallyTunedTo Program identifier logically tuned to + * @param physicallyTunedTo Program identifier physically tuned to + * @param relatedContent Related content + * @param infoFlags Program info flags + * @param signalQuality Signal quality + * @param metadata Radio metadata + * @param vendorInfo Vendor parameters + * @param alert Radio alert + * @hide + */ + public ProgramInfo(@NonNull ProgramSelector selector, + @Nullable ProgramSelector.Identifier logicallyTunedTo, + @Nullable ProgramSelector.Identifier physicallyTunedTo, + @Nullable Collection relatedContent, + int infoFlags, int signalQuality, @Nullable RadioMetadata metadata, + @Nullable Map vendorInfo, @Nullable RadioAlert alert) { mSelector = Objects.requireNonNull(selector); mLogicallyTunedTo = logicallyTunedTo; mPhysicallyTunedTo = physicallyTunedTo; @@ -1568,6 +1593,7 @@ public class RadioManager { mSignalQuality = signalQuality; mMetadata = metadata; mVendorInfo = (vendorInfo == null) ? new HashMap<>() : vendorInfo; + mAlert = alert; } /** @@ -1745,6 +1771,19 @@ public class RadioManager { return (mInfoFlags & FLAG_HD_AUDIO_ACQUIRED) != 0; } + /** + * Get alert message. + * + *

    Alert message can be sent from a radio station of technologies such as HD radio to + * the radio users for some emergency events. + * + * @return alert message if it exists, otherwise {@code null} + */ + @FlaggedApi(Flags.FLAG_HD_RADIO_EMERGENCY_ALERT_SYSTEM) + @Nullable public RadioAlert getAlert() { + return mAlert; + } + /** * Signal quality (as opposed to the name) indication from 0 (no signal) * to 100 (excellent) @@ -1786,6 +1825,12 @@ public class RadioManager { mSignalQuality = in.readInt(); mMetadata = in.readTypedObject(RadioMetadata.CREATOR); mVendorInfo = Utils.readStringMap(in); + if (Flags.hdRadioEmergencyAlertSystem()) { + boolean hasNonNullAlert = in.readBoolean(); + mAlert = hasNonNullAlert ? in.readTypedObject(RadioAlert.CREATOR) : null; + } else { + mAlert = null; + } } public static final @android.annotation.NonNull Parcelable.Creator CREATOR @@ -1809,6 +1854,14 @@ public class RadioManager { dest.writeInt(mSignalQuality); dest.writeTypedObject(mMetadata, flags); Utils.writeStringMap(dest, mVendorInfo); + if (Flags.hdRadioEmergencyAlertSystem()) { + if (mAlert == null) { + dest.writeBoolean(false); + } else { + dest.writeBoolean(true); + dest.writeTypedObject(mAlert, flags); + } + } } @Override @@ -1819,19 +1872,28 @@ public class RadioManager { @NonNull @Override public String toString() { - return "ProgramInfo" + String prorgamInfoString = "ProgramInfo" + " [selector=" + mSelector + ", logicallyTunedTo=" + Objects.toString(mLogicallyTunedTo) + ", physicallyTunedTo=" + Objects.toString(mPhysicallyTunedTo) + ", relatedContent=" + mRelatedContent.size() + ", infoFlags=" + mInfoFlags - + ", mSignalQuality=" + mSignalQuality - + ", mMetadata=" + Objects.toString(mMetadata) - + "]"; + + ", signalQuality=" + mSignalQuality + + ", metadata=" + Objects.toString(mMetadata); + if (Flags.hdRadioEmergencyAlertSystem()) { + prorgamInfoString += ", alert=" + Objects.toString(mAlert); + } + prorgamInfoString += "]"; + return prorgamInfoString; } @Override public int hashCode() { + if (Flags.hdRadioEmergencyAlertSystem()) { + return Objects.hash(mSelector, mLogicallyTunedTo, mPhysicallyTunedTo, + mRelatedContent, mInfoFlags, mSignalQuality, mMetadata, mVendorInfo, + mAlert); + } return Objects.hash(mSelector, mLogicallyTunedTo, mPhysicallyTunedTo, mRelatedContent, mInfoFlags, mSignalQuality, mMetadata, mVendorInfo); } @@ -1851,6 +1913,9 @@ public class RadioManager { if (!Objects.equals(mMetadata, other.mMetadata)) return false; if (!Objects.equals(mVendorInfo, other.mVendorInfo)) return false; + if (Flags.hdRadioEmergencyAlertSystem()) { + return Objects.equals(mAlert, other.mAlert); + } return true; } } diff --git a/core/java/android/hardware/soundtrigger/ConversionUtil.java b/core/java/android/hardware/soundtrigger/ConversionUtil.java index 22ae67672950b5889295197398a63a5bf67588b7..2ba1078055697a6d02c5a4622bc6a23f8bd6f20a 100644 --- a/core/java/android/hardware/soundtrigger/ConversionUtil.java +++ b/core/java/android/hardware/soundtrigger/ConversionUtil.java @@ -40,6 +40,7 @@ import android.os.SharedMemory; import android.system.ErrnoException; import java.nio.ByteBuffer; +import java.util.ArrayList; import java.util.Arrays; import java.util.Locale; import java.util.UUID; @@ -170,17 +171,18 @@ public class ConversionUtil { public static SoundTrigger.RecognitionConfig aidl2apiRecognitionConfig( RecognitionConfig aidlConfig) { - var keyphrases = - new SoundTrigger.KeyphraseRecognitionExtra[aidlConfig.phraseRecognitionExtras.length]; - int i = 0; + var keyphrases = new ArrayList( + aidlConfig.phraseRecognitionExtras.length); for (var extras : aidlConfig.phraseRecognitionExtras) { - keyphrases[i++] = aidl2apiPhraseRecognitionExtra(extras); + keyphrases.add(aidl2apiPhraseRecognitionExtra(extras)); } - return new SoundTrigger.RecognitionConfig(aidlConfig.captureRequested, - false /** allowMultipleTriggers **/, - keyphrases, - Arrays.copyOf(aidlConfig.data, aidlConfig.data.length), - aidl2apiAudioCapabilities(aidlConfig.audioCapabilities)); + return new SoundTrigger.RecognitionConfig.Builder() + .setCaptureRequested(aidlConfig.captureRequested) + .setAllowMultipleTriggers(false) + .setKeyphrases(keyphrases) + .setData(Arrays.copyOf(aidlConfig.data, aidlConfig.data.length)) + .setAudioCapabilities(aidl2apiAudioCapabilities(aidlConfig.audioCapabilities)) + .build(); } public static PhraseRecognitionExtra api2aidlPhraseRecognitionExtra( diff --git a/core/java/android/hardware/soundtrigger/SoundTrigger.java b/core/java/android/hardware/soundtrigger/SoundTrigger.java index 05e91e447a43882389d85ebaa48c34806a0cf6ac..c6fd0ee3c80df2752e8b240816154f44465e6396 100644 --- a/core/java/android/hardware/soundtrigger/SoundTrigger.java +++ b/core/java/android/hardware/soundtrigger/SoundTrigger.java @@ -1529,8 +1529,6 @@ public class SoundTrigger { * config that can be used by * {@link SoundTriggerModule#startRecognition(int, RecognitionConfig)} * - * @deprecated should use builder-based constructor instead. - * TODO(b/368042125): remove this method. * @param captureRequested Whether the DSP should capture the trigger sound. * @param allowMultipleTriggers Whether the service should restart listening after the DSP * triggers. @@ -1538,15 +1536,10 @@ public class SoundTrigger { * @param data Opaque data for use by system applications who know about voice engine * internals, typically during enrollment. * @param audioCapabilities Bit field encoding of the AudioCapabilities. - * - * @hide */ - @Deprecated - @SuppressWarnings("Todo") - @TestApi - public RecognitionConfig(boolean captureRequested, boolean allowMultipleTriggers, - @SuppressLint("ArrayReturn") @Nullable KeyphraseRecognitionExtra[] keyphrases, - @Nullable byte[] data, int audioCapabilities) { + private RecognitionConfig(boolean captureRequested, boolean allowMultipleTriggers, + @Nullable KeyphraseRecognitionExtra[] keyphrases, @Nullable byte[] data, + int audioCapabilities) { this.mCaptureRequested = captureRequested; this.mAllowMultipleTriggers = allowMultipleTriggers; this.mKeyphrases = keyphrases != null ? keyphrases : new KeyphraseRecognitionExtra[0]; @@ -1558,6 +1551,7 @@ public class SoundTrigger { * Constructor for {@link RecognitionConfig} without audioCapabilities. The * audioCapabilities is set to 0. * + * @deprecated Use {@link Builder} instead. * @param captureRequested Whether the DSP should capture the trigger sound. * @param allowMultipleTriggers Whether the service should restart listening after the DSP * triggers. @@ -1567,10 +1561,10 @@ public class SoundTrigger { * @hide */ @UnsupportedAppUsage + @Deprecated @TestApi public RecognitionConfig(boolean captureRequested, boolean allowMultipleTriggers, - @SuppressLint("ArrayReturn") @Nullable KeyphraseRecognitionExtra[] keyphrases, - @Nullable byte[] data) { + @Nullable KeyphraseRecognitionExtra[] keyphrases, @Nullable byte[] data) { this(captureRequested, allowMultipleTriggers, keyphrases, data, 0); } @@ -1633,7 +1627,7 @@ public class SoundTrigger { boolean allowMultipleTriggers = in.readBoolean(); KeyphraseRecognitionExtra[] keyphrases = in.createTypedArray(KeyphraseRecognitionExtra.CREATOR); - byte[] data = in.readBlob(); + byte[] data = in.createByteArray(); int audioCapabilities = in.readInt(); return new RecognitionConfig(captureRequested, allowMultipleTriggers, keyphrases, data, audioCapabilities); @@ -1644,7 +1638,7 @@ public class SoundTrigger { dest.writeBoolean(mCaptureRequested); dest.writeBoolean(mAllowMultipleTriggers); dest.writeTypedArray(mKeyphrases, flags); - dest.writeBlob(mData); + dest.writeByteArray(mData); dest.writeInt(mAudioCapabilities); } @@ -1718,7 +1712,7 @@ public class SoundTrigger { /** * Sets capture requested state. - * @param captureRequested The new requested state. + * @param captureRequested Whether the DSP should capture the trigger sound. * @return the same Builder instance. */ public @NonNull Builder setCaptureRequested(boolean captureRequested) { @@ -1728,7 +1722,8 @@ public class SoundTrigger { /** * Sets allow multiple triggers state. - * @param allowMultipleTriggers The new allow multiple triggers state. + * @param allowMultipleTriggers Whether the service should restart listening after the + * DSP triggers. * @return the same Builder instance. */ public @NonNull Builder setAllowMultipleTriggers(boolean allowMultipleTriggers) { @@ -1738,7 +1733,8 @@ public class SoundTrigger { /** * Sets the keyphrases field. - * @param keyphrases The new keyphrases. + * @param keyphrases The list of keyphrase specific data associated with this + * recognition session. * @return the same Builder instance. */ public @NonNull Builder setKeyphrases( @@ -1749,7 +1745,9 @@ public class SoundTrigger { /** * Sets the data field. - * @param data The new data. + * @param data Opaque data provided to the DSP associated with this recognition session, + * which is used by system applications who know about voice engine + * internals, typically during enrollment. * @return the same Builder instance. */ public @NonNull Builder setData(@Nullable byte[] data) { @@ -1759,7 +1757,8 @@ public class SoundTrigger { /** * Sets the audio capabilities field. - * @param audioCapabilities The new audio capabilities. + * @param audioCapabilities The bit field encoding of the audio capabilities associated + * with this recognition session. * @return the same Builder instance. */ public @NonNull Builder setAudioCapabilities(int audioCapabilities) { diff --git a/core/java/android/net/vcn/VcnCellUnderlyingNetworkTemplate.java b/core/java/android/net/vcn/VcnCellUnderlyingNetworkTemplate.java index 46cf0163c0e51087591071319ee30a717b89602f..c0398ce1fcf1a01399bc2fa1438be2ce42b61af7 100644 --- a/core/java/android/net/vcn/VcnCellUnderlyingNetworkTemplate.java +++ b/core/java/android/net/vcn/VcnCellUnderlyingNetworkTemplate.java @@ -40,9 +40,9 @@ import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.util.ArraySet; +import android.util.IndentingPrintWriter; import com.android.internal.annotations.VisibleForTesting; -import com.android.internal.util.IndentingPrintWriter; import com.android.internal.util.Preconditions; import com.android.server.vcn.util.PersistableBundleUtils; diff --git a/core/java/android/net/vcn/VcnManager.java b/core/java/android/net/vcn/VcnManager.java index 1c9be6fb4b826edef1e130af66c3d6f763c59105..f275714e2cf5801f1e9cd76839e410899292ea52 100644 --- a/core/java/android/net/vcn/VcnManager.java +++ b/core/java/android/net/vcn/VcnManager.java @@ -28,13 +28,13 @@ import android.content.Context; import android.content.pm.PackageManager; import android.net.LinkProperties; import android.net.NetworkCapabilities; -import android.os.Binder; import android.os.ParcelUuid; import android.os.RemoteException; import android.os.ServiceSpecificException; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting.Visibility; +import com.android.net.module.util.BinderUtils; import java.io.IOException; import java.lang.annotation.Retention; @@ -711,7 +711,7 @@ public class VcnManager { @Override public void onPolicyChanged() { - Binder.withCleanCallingIdentity( + BinderUtils.withCleanCallingIdentity( () -> mExecutor.execute(() -> mListener.onPolicyChanged())); } } @@ -734,7 +734,7 @@ public class VcnManager { @Override public void onVcnStatusChanged(@VcnStatusCode int statusCode) { - Binder.withCleanCallingIdentity( + BinderUtils.withCleanCallingIdentity( () -> mExecutor.execute(() -> mCallback.onStatusChanged(statusCode))); } @@ -747,7 +747,7 @@ public class VcnManager { @Nullable String exceptionMessage) { final Throwable cause = createThrowableByClassName(exceptionClass, exceptionMessage); - Binder.withCleanCallingIdentity( + BinderUtils.withCleanCallingIdentity( () -> mExecutor.execute( () -> diff --git a/core/java/android/net/vcn/VcnUnderlyingNetworkTemplate.java b/core/java/android/net/vcn/VcnUnderlyingNetworkTemplate.java index edf2c093bc8bb47bcb2ad7c44d746ef3cd6e7629..16114dd135af5b6e89729a3883ad927a5b8cc672 100644 --- a/core/java/android/net/vcn/VcnUnderlyingNetworkTemplate.java +++ b/core/java/android/net/vcn/VcnUnderlyingNetworkTemplate.java @@ -21,10 +21,10 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.os.PersistableBundle; +import android.util.IndentingPrintWriter; import android.util.SparseArray; import com.android.internal.annotations.VisibleForTesting; -import com.android.internal.util.IndentingPrintWriter; import com.android.internal.util.Preconditions; import java.lang.annotation.Retention; diff --git a/core/java/android/net/vcn/VcnWifiUnderlyingNetworkTemplate.java b/core/java/android/net/vcn/VcnWifiUnderlyingNetworkTemplate.java index 2e6b09f032fb1193e670e60f2ed999478bbc0c34..c7b2f188ba96001eb114a391b066ac23e5a1787f 100644 --- a/core/java/android/net/vcn/VcnWifiUnderlyingNetworkTemplate.java +++ b/core/java/android/net/vcn/VcnWifiUnderlyingNetworkTemplate.java @@ -29,9 +29,9 @@ import android.net.NetworkCapabilities; import android.net.vcn.VcnUnderlyingNetworkTemplate.MatchCriteria; import android.os.PersistableBundle; import android.util.ArraySet; +import android.util.IndentingPrintWriter; import com.android.internal.annotations.VisibleForTesting; -import com.android.internal.util.IndentingPrintWriter; import com.android.server.vcn.util.PersistableBundleUtils; import java.util.ArrayList; diff --git a/core/java/android/os/BatteryUsageStats.java b/core/java/android/os/BatteryUsageStats.java index ddcb5c60ab8046ac8f2b79b24a30bf9bdaed9187..6c3c2852c7e71c8f606f91e0ca1ed8e99cc715ac 100644 --- a/core/java/android/os/BatteryUsageStats.java +++ b/core/java/android/os/BatteryUsageStats.java @@ -24,6 +24,8 @@ import android.util.Range; import android.util.SparseArray; import android.util.proto.ProtoOutputStream; +import com.android.internal.annotations.GuardedBy; +import com.android.internal.annotations.VisibleForTesting; import com.android.internal.os.BatteryStatsHistory; import com.android.internal.os.BatteryStatsHistoryIterator; import com.android.internal.os.MonotonicClock; @@ -43,7 +45,9 @@ import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * Contains a snapshot of battery attribution data, on a per-subsystem and per-UID basis. @@ -126,6 +130,12 @@ public final class BatteryUsageStats implements Parcelable, Closeable { // Max window size. CursorWindow uses only as much memory as needed. private static final long BATTERY_CONSUMER_CURSOR_WINDOW_SIZE = 20_000_000; // bytes + /** + * Used by tests to ensure all BatteryUsageStats instances are closed. + */ + @VisibleForTesting + public static boolean DEBUG_INSTANCE_COUNT; + private static final int STATSD_PULL_ATOM_MAX_BYTES = 45000; private static final int[] UID_USAGE_TIME_PROCESS_STATES = { @@ -153,7 +163,7 @@ public final class BatteryUsageStats implements Parcelable, Closeable { private final List mUserBatteryConsumers; private final AggregateBatteryConsumer[] mAggregateBatteryConsumers; private final BatteryStatsHistory mBatteryStatsHistory; - private BatteryConsumer.BatteryConsumerDataLayout mBatteryConsumerDataLayout; + private final BatteryConsumer.BatteryConsumerDataLayout mBatteryConsumerDataLayout; private CursorWindow mBatteryConsumersCursorWindow; private BatteryUsageStats(@NonNull Builder builder) { @@ -873,6 +883,7 @@ public final class BatteryUsageStats implements Parcelable, Closeable { @Override public void close() throws IOException { + onCursorWindowReleased(mBatteryConsumersCursorWindow); mBatteryConsumersCursorWindow.close(); mBatteryConsumersCursorWindow = null; } @@ -880,6 +891,7 @@ public final class BatteryUsageStats implements Parcelable, Closeable { @Override protected void finalize() throws Throwable { if (mBatteryConsumersCursorWindow != null) { + // Do not decrement sOpenCusorWindowCount. All instances should be closed explicitly mBatteryConsumersCursorWindow.close(); } super.finalize(); @@ -934,6 +946,7 @@ public final class BatteryUsageStats implements Parcelable, Closeable { boolean includesPowerStateData, double minConsumedPowerThreshold) { mBatteryConsumersCursorWindow = new CursorWindow(null, BATTERY_CONSUMER_CURSOR_WINDOW_SIZE); + onCursorWindowAllocated(mBatteryConsumersCursorWindow); mBatteryConsumerDataLayout = BatteryConsumer.createBatteryConsumerDataLayout( customPowerComponentNames, includePowerModels, includeProcessStateData, includeScreenStateData, includesPowerStateData); @@ -996,6 +1009,7 @@ public final class BatteryUsageStats implements Parcelable, Closeable { */ public void discard() { mBatteryConsumersCursorWindow.close(); + onCursorWindowReleased(mBatteryConsumersCursorWindow); } /** @@ -1264,4 +1278,50 @@ public final class BatteryUsageStats implements Parcelable, Closeable { } } } + + @GuardedBy("BatteryUsageStats.class") + private static Map sInstances; + + private static void onCursorWindowAllocated(CursorWindow window) { + if (!DEBUG_INSTANCE_COUNT) { + return; + } + + synchronized (BatteryUsageStats.class) { + if (sInstances == null) { + sInstances = new HashMap<>(); + } + sInstances.put(window, new Exception()); + } + } + + private static void onCursorWindowReleased(CursorWindow window) { + if (!DEBUG_INSTANCE_COUNT) { + return; + } + + synchronized (BatteryUsageStats.class) { + sInstances.remove(window); + } + } + + /** + * Used by tests to ensure all BatteryUsageStats instances are closed. + */ + @VisibleForTesting + public static void assertAllInstancesClosed() { + if (!DEBUG_INSTANCE_COUNT) { + throw new IllegalStateException("DEBUG_INSTANCE_COUNT is false"); + } + + synchronized (BatteryUsageStats.class) { + if (!sInstances.isEmpty()) { + Exception callSite = sInstances.entrySet().iterator().next().getValue(); + int count = sInstances.size(); + sInstances.clear(); + throw new IllegalStateException( + "Instances of BatteryUsageStats not closed: " + count, callSite); + } + } + } } diff --git a/core/java/android/os/BatteryUsageStatsQuery.java b/core/java/android/os/BatteryUsageStatsQuery.java index e68c4ca5c07007266704ba8372a5566df5747827..6325b003a99904d6383128a173e1b1d307764c54 100644 --- a/core/java/android/os/BatteryUsageStatsQuery.java +++ b/core/java/android/os/BatteryUsageStatsQuery.java @@ -370,7 +370,10 @@ public final class BatteryUsageStatsQuery implements Parcelable { * and most battery stats resets. */ public Builder accumulated() { - mFlags |= FLAG_BATTERY_USAGE_STATS_ACCUMULATED; + mFlags |= FLAG_BATTERY_USAGE_STATS_ACCUMULATED + | FLAG_BATTERY_USAGE_STATS_INCLUDE_POWER_STATE + | FLAG_BATTERY_USAGE_STATS_INCLUDE_SCREEN_STATE + | FLAG_BATTERY_USAGE_STATS_INCLUDE_PROCESS_STATE_DATA; return this; } diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java index a894833946114760bdb134f660171d95707ae8ad..13d7e3c2fbfd13e3d37ed54f76a99e13d5a01fec 100644 --- a/core/java/android/os/Build.java +++ b/core/java/android/os/Build.java @@ -1274,6 +1274,12 @@ public class Build { * Vanilla Ice Cream. */ public static final int VANILLA_ICE_CREAM = 35; + + /** + * Baklava. + */ + @FlaggedApi(Flags.FLAG_MAJOR_MINOR_VERSIONING_SCHEME) + public static final int BAKLAVA = CUR_DEVELOPMENT; } /** @hide */ @@ -1313,6 +1319,7 @@ public class Build { VERSION_CODES_FULL.TIRAMISU, VERSION_CODES_FULL.UPSIDE_DOWN_CAKE, VERSION_CODES_FULL.VANILLA_ICE_CREAM, + VERSION_CODES_FULL.BAKLAVA, }) @Retention(RetentionPolicy.SOURCE) public @interface SdkIntFull {} @@ -1514,6 +1521,11 @@ public class Build { */ public static final int VANILLA_ICE_CREAM = VERSION_CODES.VANILLA_ICE_CREAM * SDK_INT_MULTIPLIER; + + /** + * The upcoming, not yet finalized, version of Android. + */ + public static final int BAKLAVA = VERSION_CODES.BAKLAVA * SDK_INT_MULTIPLIER; } /** diff --git a/core/java/android/os/ConcurrentMessageQueue/MessageQueue.java b/core/java/android/os/ConcurrentMessageQueue/MessageQueue.java index 6afb8e097121ed2aaa37fcbddb97411c8f80ef4d..8eaadde5a1d0a79c0d67de2635c1e0db58a4a094 100644 --- a/core/java/android/os/ConcurrentMessageQueue/MessageQueue.java +++ b/core/java/android/os/ConcurrentMessageQueue/MessageQueue.java @@ -29,6 +29,8 @@ import android.util.proto.ProtoOutputStream; import com.android.internal.annotations.GuardedBy; +import dalvik.annotation.optimization.NeverCompile; + import java.io.FileDescriptor; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -1331,6 +1333,7 @@ public final class MessageQueue { mMatchAllFutureMessages, true); } + @NeverCompile private void printPriorityQueueNodes() { Iterator iterator = mPriorityQueue.iterator(); @@ -1342,6 +1345,7 @@ public final class MessageQueue { } } + @NeverCompile private int dumpPriorityQueue(ConcurrentSkipListSet queue, Printer pw, String prefix, Handler h, int n) { int count = 0; @@ -1357,6 +1361,7 @@ public final class MessageQueue { return count; } + @NeverCompile void dump(Printer pw, String prefix, Handler h) { long now = SystemClock.uptimeMillis(); int n = 0; @@ -1387,6 +1392,7 @@ public final class MessageQueue { + ", quitting=" + (boolean) sQuitting.getVolatile(this) + ")"); } + @NeverCompile private int dumpPriorityQueue(ConcurrentSkipListSet queue, ProtoOutputStream proto) { int count = 0; @@ -1399,6 +1405,7 @@ public final class MessageQueue { return count; } + @NeverCompile void dumpDebug(ProtoOutputStream proto, long fieldId) { final long messageQueueToken = proto.start(fieldId); diff --git a/core/java/android/os/ITradeInMode.aidl b/core/java/android/os/ITradeInMode.aidl new file mode 100644 index 0000000000000000000000000000000000000000..f15954d14d0e6b5e81fa2b631f386cc00a164f1f --- /dev/null +++ b/core/java/android/os/ITradeInMode.aidl @@ -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 android.os; + +/** @hide */ +interface ITradeInMode { + /** + * Enable adb in limited-privilege trade-in mode. Returns true if trade-in + * mode was enabled. + * + * Trade-in mode can be enabled if the following conditions are all true: + * ro.debuggable is 0. + * Settings.Global.ADB_ENABLED is 0. + * Settings.Global.USER_SETUP_COMPLETE is 0. + * Settings.Secure.DEVICE_PROVISIONED is 0. + * + * It is stopped automatically when any of the following conditions become + * true: + * + * Settings.Global.USER_SETUP_COMPLETE is 1. + * Settings.Secure.DEVICE_PROVISIONED is 1. + * A change in network configuration occurs. + * An account is added. + * + * ENTER_TRADE_IN_MODE permission is required. + */ + boolean start(); + + /** + * Returns whether evaluation mode is allowed on this device. It will return + * false if any kind of device protection (such as FRP) is detected. + * + * ENTER_TRADE_IN_MODE permission is required. + */ + boolean isEvaluationModeAllowed(); + + /** + * Enable full adb access and provision the device. This forces a factory + * reset on the next boot. + * + * This will return false if start() was not called, if factory reset + * protection is active, or if trade-in mode was disabled due to any of the + * conditions listed above for start(). + * + * ENTER_TRADE_IN_MODE permission is required. + */ + boolean enterEvaluationMode(); +} diff --git a/core/java/android/os/LegacyMessageQueue/MessageQueue.java b/core/java/android/os/LegacyMessageQueue/MessageQueue.java index 4474e7e91fdc896b998ab145814f9e75f0d3ff58..9f7b0b71ae95facea43f9fab19810e8d869eebcf 100644 --- a/core/java/android/os/LegacyMessageQueue/MessageQueue.java +++ b/core/java/android/os/LegacyMessageQueue/MessageQueue.java @@ -28,6 +28,8 @@ import android.util.Printer; import android.util.SparseArray; import android.util.proto.ProtoOutputStream; +import dalvik.annotation.optimization.NeverCompile; + import java.io.FileDescriptor; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -1106,6 +1108,7 @@ public final class MessageQueue { } } + @NeverCompile void dump(Printer pw, String prefix, Handler h) { synchronized (this) { pw.println(prefix + "(MessageQueue is using Legacy implementation)"); @@ -1122,6 +1125,7 @@ public final class MessageQueue { } } + @NeverCompile void dumpDebug(ProtoOutputStream proto, long fieldId) { final long messageQueueToken = proto.start(fieldId); synchronized (this) { diff --git a/core/java/android/os/LockedMessageQueue/MessageQueue.java b/core/java/android/os/LockedMessageQueue/MessageQueue.java index f1affce58a5c17d43aa81741afa3f996b3f1bfde..f3eec13cb20f09face3ef4008976359a97e85db7 100644 --- a/core/java/android/os/LockedMessageQueue/MessageQueue.java +++ b/core/java/android/os/LockedMessageQueue/MessageQueue.java @@ -30,6 +30,8 @@ import android.util.proto.ProtoOutputStream; import com.android.internal.annotations.GuardedBy; +import dalvik.annotation.optimization.NeverCompile; + import java.io.FileDescriptor; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -294,6 +296,7 @@ public final class MessageQueue { * Keep this for manual debugging. It's easier to pepper the code with this function * than MessageQueue.dump() */ + @NeverCompile void print() { Log.v(TAG, "heap num elem: " + mNumElements + " mHeap.length " + mHeap.length); for (int i = 0; i < mNumElements; i++) { @@ -1209,6 +1212,7 @@ public final class MessageQueue { sMatchAllFutureMessages, true); } + @NeverCompile int dumpPriorityQueue(Printer pw, String prefix, Handler h, MessageHeap priorityQueue) { int n = 0; long now = SystemClock.uptimeMillis(); @@ -1222,6 +1226,7 @@ public final class MessageQueue { return n; } + @NeverCompile void dumpPriorityQueue(ProtoOutputStream proto, MessageHeap priorityQueue) { for (int i = 0; i < priorityQueue.numElements(); i++) { Message m = priorityQueue.getMessageAt(i); @@ -1229,6 +1234,7 @@ public final class MessageQueue { } } + @NeverCompile void dump(Printer pw, String prefix, Handler h) { synchronized (this) { pw.println(prefix + "(MessageQueue is using Locked implementation)"); @@ -1240,6 +1246,7 @@ public final class MessageQueue { } } + @NeverCompile void dumpDebug(ProtoOutputStream proto, long fieldId) { final long messageQueueToken = proto.start(fieldId); synchronized (this) { diff --git a/core/java/android/os/SemiConcurrentMessageQueue/MessageQueue.java b/core/java/android/os/SemiConcurrentMessageQueue/MessageQueue.java index 023359726f90a7cbe942a12a017f51c443e3dfca..db323dcf90090b8f6478020c31b512e6e0508ad0 100644 --- a/core/java/android/os/SemiConcurrentMessageQueue/MessageQueue.java +++ b/core/java/android/os/SemiConcurrentMessageQueue/MessageQueue.java @@ -29,6 +29,8 @@ import android.util.proto.ProtoOutputStream; import com.android.internal.annotations.GuardedBy; +import dalvik.annotation.optimization.NeverCompile; + import java.io.FileDescriptor; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -1249,6 +1251,7 @@ public final class MessageQueue { mMatchAllFutureMessages, true); } + @NeverCompile private void printPriorityQueueNodes() { Iterator iterator = mPriorityQueue.iterator(); @@ -1260,6 +1263,7 @@ public final class MessageQueue { } } + @NeverCompile private int dumpPriorityQueue(PriorityQueue queue, Printer pw, String prefix, Handler h, int n) { int count = 0; @@ -1275,6 +1279,7 @@ public final class MessageQueue { return count; } + @NeverCompile void dump(Printer pw, String prefix, Handler h) { long now = SystemClock.uptimeMillis(); int n = 0; @@ -1307,6 +1312,7 @@ public final class MessageQueue { + ", quitting=" + (boolean) sQuitting.getVolatile(this) + ")"); } + @NeverCompile private int dumpPriorityQueue(PriorityQueue queue, ProtoOutputStream proto) { int count = 0; @@ -1318,6 +1324,7 @@ public final class MessageQueue { return count; } + @NeverCompile void dumpDebug(ProtoOutputStream proto, long fieldId) { final long messageQueueToken = proto.start(fieldId); diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index acf4a2f3ec71e1fbc03b8775847e43cb12a668b4..fa99f3563de9e1ecd301af11550ed228fbc55e0e 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -5602,14 +5602,30 @@ public class UserManager { android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS }) + @CachedProperty(api = "user_manager_users") public @Nullable UserHandle getProfileParent(@NonNull UserHandle user) { - UserInfo info = getProfileParent(user.getIdentifier()); - - if (info == null) { - return null; + if (android.multiuser.Flags.cacheProfileParentReadOnly()) { + final UserHandle userHandle = UserManagerCache.getProfileParent( + (UserHandle query) -> { + UserInfo info = getProfileParent(query.getIdentifier()); + // TODO: Remove when b/372923336 is fixed + if (info == null) { + return UserHandle.of(UserHandle.USER_NULL); + } + return UserHandle.of(info.id); + }, + user); + if (userHandle.getIdentifier() == UserHandle.USER_NULL) { + return null; + } + return userHandle; + } else { + UserInfo info = getProfileParent(user.getIdentifier()); + if (info == null) { + return null; + } + return UserHandle.of(info.id); } - - return UserHandle.of(info.id); } /** @@ -6424,6 +6440,9 @@ public class UserManager { */ public static final void invalidateCacheOnUserListChange() { UserManagerCache.invalidateUserSerialNumber(); + if (android.multiuser.Flags.cacheProfileParentReadOnly()) { + UserManagerCache.invalidateProfileParent(); + } } /** diff --git a/core/java/android/os/VibratorInfo.java b/core/java/android/os/VibratorInfo.java index 9419032c46f8b13c42572e34dda8f378c4574968..9dec8673f0192e649cbf8e987a08fcc698c12bb4 100644 --- a/core/java/android/os/VibratorInfo.java +++ b/core/java/android/os/VibratorInfo.java @@ -316,9 +316,7 @@ public class VibratorInfo implements Parcelable { * @return True if the hardware can control the frequency of the vibrations, otherwise false. */ public boolean hasFrequencyControl() { - // We currently can only control frequency of the vibration using the compose PWLE method. - return hasCapability( - IVibrator.CAP_FREQUENCY_CONTROL | IVibrator.CAP_COMPOSE_PWLE_EFFECTS); + return hasCapability(IVibrator.CAP_FREQUENCY_CONTROL); } /** @@ -481,7 +479,8 @@ public class VibratorInfo implements Parcelable { * @return True if the hardware supports creating envelope effects, false otherwise. */ public boolean areEnvelopeEffectsSupported() { - return hasCapability(IVibrator.CAP_COMPOSE_PWLE_EFFECTS_V2); + return hasCapability( + IVibrator.CAP_FREQUENCY_CONTROL | IVibrator.CAP_COMPOSE_PWLE_EFFECTS_V2); } /** diff --git a/core/java/android/os/flags.aconfig b/core/java/android/os/flags.aconfig index c7cc653f41784d0dba864242f3219a2e59dbe0c5..9c83bc2c88ec36a3747b43c45e4e3bdd5451cc67 100644 --- a/core/java/android/os/flags.aconfig +++ b/core/java/android/os/flags.aconfig @@ -90,6 +90,14 @@ flag { bug: "288119641" } +flag { + name: "allow_thermal_thresholds_callback" + is_exported: true + namespace: "game" + description: "Enable thermal threshold callback" + bug: "360486877" +} + flag { name: "android_os_build_vanilla_ice_cream" is_exported: true diff --git a/core/java/android/permission/flags.aconfig b/core/java/android/permission/flags.aconfig index bfefba5b36e67874ab809cfa79e2466be6b4abc9..1d654e1322c7839c72f0f0dac5034efd749d5641 100644 --- a/core/java/android/permission/flags.aconfig +++ b/core/java/android/permission/flags.aconfig @@ -282,3 +282,28 @@ flag { description: "This fixed read-only flag is used to enable platform support for Skin Temperature." bug: "369872443" } + +flag { + name: "platform_oxygen_saturation_enabled" + is_fixed_read_only: true + is_exported: true + namespace: "android_health_services" + description: "This fixed read-only flag is used to enable platform support for Oxygen Saturation (SpO2)." + bug: "369873227" +} + +flag { + name: "allow_host_permission_dialogs_on_virtual_devices" + is_exported: true + namespace: "permissions" + description: "Allow host device permission dialogs (i.e., dialogs for non device-aware permissions) to be shown on virtual devices" + bug: "371173672" +} + +flag { + name: "appop_mode_caching_enabled" + is_fixed_read_only: true + namespace: "permissions" + description: "Enable AppOp mode caching in AppOpsManager" + bug: "366013082" +} diff --git a/core/java/android/print/IPrintDocumentAdapter.aidl b/core/java/android/print/IPrintDocumentAdapter.aidl index 8f33e0b2c0038c044f18ef70a078b76376f21475..9d384fba874df8524bc718ad95e36d2e88a5924e 100644 --- a/core/java/android/print/IPrintDocumentAdapter.aidl +++ b/core/java/android/print/IPrintDocumentAdapter.aidl @@ -37,5 +37,4 @@ oneway interface IPrintDocumentAdapter { void write(in PageRange[] pages, in ParcelFileDescriptor fd, IWriteResultCallback callback, int sequence); void finish(); - void kill(String reason); } diff --git a/core/java/android/print/PrintManager.java b/core/java/android/print/PrintManager.java index ef274a56e1d3696d6a45cbc49ca3832c13fd974e..1b1554f8192d61e884ee55b2754089d693caa4b7 100644 --- a/core/java/android/print/PrintManager.java +++ b/core/java/android/print/PrintManager.java @@ -945,17 +945,6 @@ public final class PrintManager { } } - @Override - public void kill(String reason) { - synchronized (mLock) { - // If destroyed the handler is null. - if (!isDestroyedLocked()) { - mHandler.obtainMessage(MyHandler.MSG_ON_KILL, - reason).sendToTarget(); - } - } - } - @Override public void onActivityPaused(Activity activity) { /* do nothing */ @@ -1118,15 +1107,6 @@ public final class PrintManager { } } break; - case MSG_ON_KILL: { - if (DEBUG) { - Log.i(LOG_TAG, "onKill()"); - } - - String reason = (String) message.obj; - throw new RuntimeException(reason); - } - default: { throw new IllegalArgumentException("Unknown message: " + message.what); diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java index 5ecf361e83c7a332e8ae1a5be750c570b59485bf..8afc1779ed00095496462adefb167a372654d6cb 100644 --- a/core/java/android/provider/ContactsContract.java +++ b/core/java/android/provider/ContactsContract.java @@ -3070,6 +3070,14 @@ public final class ContactsContract { public static final String QUERY_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD = "queryDefaultAccountForNewContacts"; + /** + * Action used to launch the UI to move contacts to the default account. + */ + @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) + public static final String ACTION_MOVE_CONTACTS_TO_DEFAULT_ACCOUNT = + "android.provider.action.MOVE_CONTACTS_TO_DEFAULT_ACCOUNT"; + + /** * Represents the state of the default account, and the actual {@link Account} if it's * a cloud account. diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 0be55844b829ab5de8f0967e0ee665ba0abf95cb..83c599e57de90fab5901e8f4ac261df3e97bce01 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -5471,6 +5471,14 @@ public final class Settings { @Readable public static final String VOLUME_MASTER = "volume_master"; + /** + * The mapping of input device to its input gain index. + * + * @hide + */ + @Readable + public static final String INPUT_GAIN_INDEX_SETTINGS = "input_gain_index_settings"; + /** * Master mono (int 1 = mono, 0 = normal). * @@ -8390,7 +8398,6 @@ public final class Settings { @Readable public static final String LOCK_SCREEN_LOCK_AFTER_TIMEOUT = "lock_screen_lock_after_timeout"; - /** * This preference contains the string that shows for owner info on LockScreen. * @hide @@ -11281,7 +11288,8 @@ public final class Settings { "assist_long_press_home_enabled"; /** - * Whether all entrypoints can trigger search. Replaces individual settings. + * Whether all entrypoints (e.g. long-press home, long-press nav handle) + * can trigger contextual search. * * @hide */ @@ -19305,14 +19313,14 @@ public final class Settings { * If hotword detection should be enabled. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String HOTWORD_DETECTION_ENABLED = "hotword_detection_enabled"; /** * Whether Smart Replies are enabled within Wear. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String SMART_REPLIES_ENABLED = "smart_replies_enabled"; /** @@ -19326,7 +19334,7 @@ public final class Settings { * If FLP should obtain location data from the paired device. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String OBTAIN_PAIRED_DEVICE_LOCATION = "obtain_paired_device_location"; @@ -19334,7 +19342,7 @@ public final class Settings { * The play store availability on companion phone. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String PHONE_PLAY_STORE_AVAILABILITY = "phone_play_store_availability"; @@ -19350,7 +19358,7 @@ public final class Settings { * Whether the bug report is enabled. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String BUG_REPORT = "bug_report"; // Possible bug report states @@ -19363,14 +19371,14 @@ public final class Settings { * The enabled/disabled state of the SmartIlluminate. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String SMART_ILLUMINATE_ENABLED = "smart_illuminate_enabled"; /** * Whether automatic time is enabled on the watch. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String CLOCKWORK_AUTO_TIME = "clockwork_auto_time"; // Possible clockwork auto time states @@ -19388,7 +19396,7 @@ public final class Settings { * Whether automatic time zone is enabled on the watch. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String CLOCKWORK_AUTO_TIME_ZONE = "clockwork_auto_time_zone"; // Possible clockwork auto time zone states @@ -19405,14 +19413,14 @@ public final class Settings { * Whether 24 hour time format is enabled on the watch. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String CLOCKWORK_24HR_TIME = "clockwork_24hr_time"; /** * Whether the auto wifi toggle setting is enabled. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String AUTO_WIFI = "auto_wifi"; // Possible force wifi on states @@ -19432,7 +19440,7 @@ public final class Settings { * wifi requirement until this time). The time is in millis since epoch. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String ALT_BYPASS_WIFI_REQUIREMENT_TIME_MILLIS = "alt_bypass_wifi_requirement_time_millis"; @@ -19440,7 +19448,7 @@ public final class Settings { * Whether the setup was skipped. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String SETUP_SKIPPED = "setup_skipped"; // Possible setup_skipped states @@ -19455,7 +19463,7 @@ public final class Settings { * The last requested call forwarding action. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String LAST_CALL_FORWARD_ACTION = "last_call_forward_action"; // Possible call forwarding actions @@ -19468,31 +19476,31 @@ public final class Settings { // Stem button settings. /** @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String STEM_1_TYPE = "STEM_1_TYPE"; /** @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String STEM_1_DATA = "STEM_1_DATA"; /** @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String STEM_1_DEFAULT_DATA = "STEM_1_DEFAULT_DATA"; /** @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String STEM_2_TYPE = "STEM_2_TYPE"; /** @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String STEM_2_DATA = "STEM_2_DATA"; /** @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String STEM_2_DEFAULT_DATA = "STEM_2_DEFAULT_DATA"; /** @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String STEM_3_TYPE = "STEM_3_TYPE"; /** @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String STEM_3_DATA = "STEM_3_DATA"; /** @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String STEM_3_DEFAULT_DATA = "STEM_3_DEFAULT_DATA"; // Stem types @@ -19507,14 +19515,14 @@ public final class Settings { * If the device should be muted when off body. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String MUTE_WHEN_OFF_BODY_ENABLED = "obtain_mute_when_off_body"; /** * Wear OS version string. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String WEAR_OS_VERSION_STRING = "wear_os_version_string"; /** @@ -19527,28 +19535,28 @@ public final class Settings { * The android wear system version. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String ANDROID_WEAR_VERSION = "android_wear_version"; /** * The wear system capabiltiies. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String SYSTEM_CAPABILITIES = "system_capabilities"; /** * The android wear system edition. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String SYSTEM_EDITION = "android_wear_system_edition"; /** * The Wear platform MR number. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String WEAR_PLATFORM_MR_NUMBER = "wear_platform_mr_number"; /** @@ -19562,42 +19570,42 @@ public final class Settings { * Whether ambient is currently enabled. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String AMBIENT_ENABLED = "ambient_enabled"; /** * Whether ambient tilt to wake is enabled. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String AMBIENT_TILT_TO_WAKE = "ambient_tilt_to_wake"; /** * Whether ambient low bit mode is enabled by developer options. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String AMBIENT_LOW_BIT_ENABLED_DEV = "ambient_low_bit_enabled_dev"; /** * Whether ambient touch to wake is enabled. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String AMBIENT_TOUCH_TO_WAKE = "ambient_touch_to_wake"; /** * Whether ambient tilt to bright is enabled. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String AMBIENT_TILT_TO_BRIGHT = "ambient_tilt_to_bright"; /** * Whether touch and hold to edit WF is enabled * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String GESTURE_TOUCH_AND_HOLD_WATCH_FACE_ENABLED = "gesture_touch_and_hold_watchface_enabled"; @@ -19611,7 +19619,7 @@ public final class Settings { * Whether bedtime mode is enabled. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String BEDTIME_MODE = "bedtime_mode"; /** @@ -19623,35 +19631,35 @@ public final class Settings { * Whether the current watchface is decomposable. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String DECOMPOSABLE_WATCHFACE = "current_watchface_decomposable"; /** * Whether to force ambient when docked. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String AMBIENT_FORCE_WHEN_DOCKED = "ambient_force_when_docked"; /** * Whether the ambient low bit mode is enabled. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String AMBIENT_LOW_BIT_ENABLED = "ambient_low_bit_enabled"; /** * The timeout duration in minutes of ambient mode when plugged in. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String AMBIENT_PLUGGED_TIMEOUT_MIN = "ambient_plugged_timeout_min"; /** * What OS does paired device has. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String PAIRED_DEVICE_OS_TYPE = "paired_device_os_type"; // Possible values of PAIRED_DEVICE_OS_TYPE @@ -19686,7 +19694,7 @@ public final class Settings { * The user's last setting for hfp client. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String USER_HFP_CLIENT_SETTING = "user_hfp_client_setting"; // Possible hfp client user setting values @@ -19711,7 +19719,7 @@ public final class Settings { * The companion App name. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String COMPANION_APP_NAME = "wear_companion_app_name"; /** @@ -19719,21 +19727,21 @@ public final class Settings { * wear. 1 for supporting, 0 for not supporting. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String ENABLE_ALL_LANGUAGES = "enable_all_languages"; /** * The Locale (as language tag) the user chose at startup. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String SETUP_LOCALE = "setup_locale"; /** * The version of oem setup present. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String OEM_SETUP_VERSION = "oem_setup_version"; /** @@ -19779,7 +19787,7 @@ public final class Settings { * -{@link BATTERY_SAVER_MODE_CUSTOM} * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String BATTERY_SAVER_MODE = "battery_saver_mode"; /** @@ -19836,7 +19844,7 @@ public final class Settings { * If burn in protection is enabled. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String BURN_IN_PROTECTION_ENABLED = "burn_in_protection"; /** @@ -19855,7 +19863,7 @@ public final class Settings { * RIGHT_WRIST_ROTATION_0 = "2", RIGHT_WRIST_ROTATION_180 = "3" * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String WRIST_ORIENTATION_MODE = "wear_wrist_orientation_mode"; /** @@ -19894,7 +19902,7 @@ public final class Settings { * * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String CLOCKWORK_SYSUI_PACKAGE = "clockwork_sysui_package"; /** @@ -19924,7 +19932,7 @@ public final class Settings { * Whether the device has Wet Mode/ Touch Lock Mode enabled. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String WET_MODE_ON = "wet_mode_on"; /** @@ -19943,7 +19951,7 @@ public final class Settings { * Whether charging sounds are enabled. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String CHARGING_SOUNDS_ENABLED = "wear_charging_sounds_enabled"; /** @@ -19952,7 +19960,7 @@ public final class Settings { * * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String DYNAMIC_COLOR_THEME_ENABLED = "dynamic_color_theme_enabled"; /** @@ -20044,7 +20052,7 @@ public final class Settings { * The key to indicate the data migration status on device upgrade in Wear Services. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String UPGRADE_DATA_MIGRATION_STATUS = "upgrade_data_migration_status"; @@ -20101,20 +20109,20 @@ public final class Settings { * The custom foreground color. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String CUSTOM_COLOR_FOREGROUND = "custom_foreground_color"; /** * The custom background color. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String CUSTOM_COLOR_BACKGROUND = "custom_background_color"; /** The status of the phone switching process. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String PHONE_SWITCHING_STATUS = "phone_switching_status"; /** @@ -20291,7 +20299,7 @@ public final class Settings { * Controls the launcher ui mode on wearable devices. * @hide */ - @Readable(maxTargetSdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + @Readable public static final String WEAR_LAUNCHER_UI_MODE = "wear_launcher_ui_mode"; /** Whether Wear Power Anomaly Service is enabled. diff --git a/core/java/android/security/forensic/ForensicEvent.aidl b/core/java/android/security/forensic/ForensicEvent.aidl new file mode 100644 index 0000000000000000000000000000000000000000..a321fb0cb9393ffb38cc097e5798085749b03aa7 --- /dev/null +++ b/core/java/android/security/forensic/ForensicEvent.aidl @@ -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 android.security.forensic; + +/** {@hide} */ +parcelable ForensicEvent; diff --git a/core/java/android/security/forensic/ForensicEvent.java b/core/java/android/security/forensic/ForensicEvent.java new file mode 100644 index 0000000000000000000000000000000000000000..90906edcc636a2aa36070d49cae279731daebb22 --- /dev/null +++ b/core/java/android/security/forensic/ForensicEvent.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 android.security.forensic; + +import android.annotation.FlaggedApi; +import android.annotation.NonNull; +import android.os.Parcel; +import android.os.Parcelable; +import android.security.Flags; +import android.util.ArrayMap; + +import java.util.Map; + +/** + * A class that represents a forensic event. + * @hide + */ +@FlaggedApi(Flags.FLAG_AFL_API) +public final class ForensicEvent implements Parcelable { + private static final String TAG = "ForensicEvent"; + + @NonNull + private final String mType; + + @NonNull + private final Map mKeyValuePairs; + + public static final @NonNull Parcelable.Creator CREATOR = + new Parcelable.Creator<>() { + public ForensicEvent createFromParcel(Parcel in) { + return new ForensicEvent(in); + } + + public ForensicEvent[] newArray(int size) { + return new ForensicEvent[size]; + } + }; + + public ForensicEvent(@NonNull String type, @NonNull Map keyValuePairs) { + mType = type; + mKeyValuePairs = keyValuePairs; + } + + private ForensicEvent(@NonNull Parcel in) { + mType = in.readString(); + mKeyValuePairs = new ArrayMap<>(in.readInt()); + in.readMap(mKeyValuePairs, getClass().getClassLoader(), String.class, String.class); + } + + public String getType() { + return mType; + } + + public Map getKeyValuePairs() { + return mKeyValuePairs; + } + + @Override + public void writeToParcel(@NonNull Parcel out, int flags) { + out.writeString(mType); + out.writeInt(mKeyValuePairs.size()); + out.writeMap(mKeyValuePairs); + } + + @FlaggedApi(Flags.FLAG_AFL_API) + @Override + public int describeContents() { + return 0; + } + + @Override + public String toString() { + return "ForensicEvent{" + + "mType=" + mType + + ", mKeyValuePairs=" + mKeyValuePairs + + '}'; + } +} diff --git a/core/java/android/security/forensic/IBackupTransport.aidl b/core/java/android/security/forensic/IBackupTransport.aidl new file mode 100644 index 0000000000000000000000000000000000000000..c2cbc83ba1b33bc6d552b22b9e5a52ec5299bb95 --- /dev/null +++ b/core/java/android/security/forensic/IBackupTransport.aidl @@ -0,0 +1,41 @@ +/* + * 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.security.forensic; +import android.security.forensic.ForensicEvent; + +import com.android.internal.infra.AndroidFuture; + +/** {@hide} */ +oneway interface IBackupTransport { + /** + * Initialize the server side. + */ + void initialize(in AndroidFuture resultFuture); + + /** + * Send forensic logging data to the backup destination. + * The data is a list of ForensicEvent. + * The ForensicEvent is an abstract class that represents + * different type of events. + */ + void addData(in List events, in AndroidFuture resultFuture); + + /** + * Release the binder to the server. + */ + void release(in AndroidFuture resultFuture); +} diff --git a/core/java/android/security/responsible_apis_flags.aconfig b/core/java/android/security/responsible_apis_flags.aconfig index b593902a95d492fc84682bca2620f7b54776912f..dec28c34ae5bccc5f6f1d7a2ddbc8db7792648a2 100644 --- a/core/java/android/security/responsible_apis_flags.aconfig +++ b/core/java/android/security/responsible_apis_flags.aconfig @@ -77,4 +77,20 @@ flag { description: "Prevent intent redirect attacks" bug: "361143368" is_fixed_read_only: true -} \ No newline at end of file +} + +flag { + name: "prevent_intent_redirect_abort_or_throw_exception" + namespace: "responsible_apis" + description: "Prevent intent redirect attacks by aborting or throwing security exception" + bug: "361143368" +} + +flag { + name: "enable_intent_matching_flags" + is_exported: true + namespace: "permissions" + is_fixed_read_only: true + description: "Applies intentMatchingFlags while matching intents to application components" + bug: "364354494" +} diff --git a/core/java/android/service/settings/OWNERS b/core/java/android/service/settings/OWNERS new file mode 100644 index 0000000000000000000000000000000000000000..c70c7380ec0e92bae7bea9fffba72d747045dc39 --- /dev/null +++ b/core/java/android/service/settings/OWNERS @@ -0,0 +1,7 @@ +# Bug component: 27091 + +cantol@google.com +cechkahn@google.com +cipson@google.com +dswliu@google.com +jiannan@google.com diff --git a/core/java/android/service/voice/AlwaysOnHotwordDetector.java b/core/java/android/service/voice/AlwaysOnHotwordDetector.java index ccc17ecccbf9f0ee1b9b89eda68f4413cd14bde6..2e660fc1f1572e0bdbf4e88596f8273a5235717d 100644 --- a/core/java/android/service/voice/AlwaysOnHotwordDetector.java +++ b/core/java/android/service/voice/AlwaysOnHotwordDetector.java @@ -73,6 +73,7 @@ import com.android.internal.infra.AndroidFuture; import java.io.PrintWriter; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; @@ -1513,10 +1514,11 @@ public class AlwaysOnHotwordDetector extends AbstractDetector { "Recognition for the given keyphrase is not supported"); } - KeyphraseRecognitionExtra[] recognitionExtra = new KeyphraseRecognitionExtra[1]; + List recognitionExtra = + new ArrayList(1); // TODO: Do we need to do something about the confidence level here? - recognitionExtra[0] = new KeyphraseRecognitionExtra(mKeyphraseMetadata.getId(), - mKeyphraseMetadata.getRecognitionModeFlags(), 0, new ConfidenceLevel[0]); + recognitionExtra.add(new KeyphraseRecognitionExtra(mKeyphraseMetadata.getId(), + mKeyphraseMetadata.getRecognitionModeFlags(), 0, new ConfidenceLevel[0])); boolean captureTriggerAudio = (recognitionFlags&RECOGNITION_FLAG_CAPTURE_TRIGGER_AUDIO) != 0; boolean allowMultipleTriggers = @@ -1534,10 +1536,17 @@ public class AlwaysOnHotwordDetector extends AbstractDetector { int code; try { code = mSoundTriggerSession.startRecognition( - mKeyphraseMetadata.getId(), mLocale.toLanguageTag(), mInternalCallback, - new RecognitionConfig(captureTriggerAudio, allowMultipleTriggers, - recognitionExtra, data, audioCapabilities), - runInBatterySaver); + mKeyphraseMetadata.getId(), + mLocale.toLanguageTag(), + mInternalCallback, + new RecognitionConfig.Builder() + .setCaptureRequested(captureTriggerAudio) + .setAllowMultipleTriggers(allowMultipleTriggers) + .setKeyphrases(recognitionExtra) + .setData(data) + .setAudioCapabilities(audioCapabilities) + .build(), + runInBatterySaver); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } diff --git a/core/java/android/telephony/PhoneStateListener.java b/core/java/android/telephony/PhoneStateListener.java index e8ef9d65a2b49aa97b2d94c3a0bc09fb30d17358..bce51f297affa6b64470780305179de05be8a06d 100644 --- a/core/java/android/telephony/PhoneStateListener.java +++ b/core/java/android/telephony/PhoneStateListener.java @@ -1701,6 +1701,11 @@ public class PhoneStateListener { public final void onCarrierRoamingNtnEligibleStateChanged(boolean eligible) { // not supported on the deprecated interface - Use TelephonyCallback instead } + + public final void onCarrierRoamingNtnAvailableServicesChanged( + @NetworkRegistrationInfo.ServiceType int[] availableServices) { + // not supported on the deprecated interface - Use TelephonyCallback instead + } } private void log(String s) { diff --git a/core/java/android/telephony/TelephonyCallback.java b/core/java/android/telephony/TelephonyCallback.java index 5295b606dd19d5696dde2c38eb26db8fda0e50bc..46e27dc60adccf74db62160249d9e5620dbdeccf 100644 --- a/core/java/android/telephony/TelephonyCallback.java +++ b/core/java/android/telephony/TelephonyCallback.java @@ -680,6 +680,20 @@ public class TelephonyCallback { */ public static final int EVENT_CARRIER_ROAMING_NTN_ELIGIBLE_STATE_CHANGED = 43; + /** + * Event for listening to changes in carrier roaming non-terrestrial network available services + * via callback onCarrierRoamingNtnAvailableServicesChanged(). + * This callback is triggered when the available services provided by the carrier roaming + * satellite changes. The carrier roaming satellite is defined by the following conditions. + *

      + *
    • Subscription supports attaching to satellite which is defined by + * {@link CarrierConfigManager#KEY_SATELLITE_ATTACH_SUPPORTED_BOOL}
    • + *
    + * + * @hide + */ + public static final int EVENT_CARRIER_ROAMING_NTN_AVAILABLE_SERVICES_CHANGED = 44; + /** * @hide */ @@ -726,7 +740,8 @@ public class TelephonyCallback { EVENT_EMERGENCY_CALLBACK_MODE_CHANGED, EVENT_SIMULTANEOUS_CELLULAR_CALLING_SUBSCRIPTIONS_CHANGED, EVENT_CARRIER_ROAMING_NTN_MODE_CHANGED, - EVENT_CARRIER_ROAMING_NTN_ELIGIBLE_STATE_CHANGED + EVENT_CARRIER_ROAMING_NTN_ELIGIBLE_STATE_CHANGED, + EVENT_CARRIER_ROAMING_NTN_AVAILABLE_SERVICES_CHANGED }) @Retention(RetentionPolicy.SOURCE) public @interface TelephonyEvent { @@ -1784,6 +1799,15 @@ public class TelephonyCallback { * */ default void onCarrierRoamingNtnEligibleStateChanged(boolean eligible) {} + + /** + * Callback invoked when carrier roaming non-terrestrial network available + * service changes. + * + * @param availableServices The list of the supported services. + */ + default void onCarrierRoamingNtnAvailableServicesChanged( + @NetworkRegistrationInfo.ServiceType List availableServices) {} } /** @@ -2235,5 +2259,19 @@ public class TelephonyCallback { Binder.withCleanCallingIdentity(() -> mExecutor.execute( () -> listener.onCarrierRoamingNtnEligibleStateChanged(eligible))); } + + public void onCarrierRoamingNtnAvailableServicesChanged( + @NetworkRegistrationInfo.ServiceType int[] availableServices) { + if (!Flags.carrierRoamingNbIotNtn()) return; + + CarrierRoamingNtnModeListener listener = + (CarrierRoamingNtnModeListener) mTelephonyCallbackWeakRef.get(); + if (listener == null) return; + + List ServiceList = Arrays.stream(availableServices).boxed() + .collect(Collectors.toList()); + Binder.withCleanCallingIdentity(() -> mExecutor.execute( + () -> listener.onCarrierRoamingNtnAvailableServicesChanged(ServiceList))); + } } } diff --git a/core/java/android/telephony/TelephonyRegistryManager.java b/core/java/android/telephony/TelephonyRegistryManager.java index 3c7e924f07dfc63c4c3a9d468113828bded2404f..4d50a450490ef15fae3dc80a038978ffd956c7d9 100644 --- a/core/java/android/telephony/TelephonyRegistryManager.java +++ b/core/java/android/telephony/TelephonyRegistryManager.java @@ -1117,6 +1117,21 @@ public class TelephonyRegistryManager { } } + /** + * Notify external listeners that carrier roaming non-terrestrial available services changed. + * @param availableServices The list of the supported services. + * @hide + */ + public void notifyCarrierRoamingNtnAvailableServicesChanged( + int subId, @NetworkRegistrationInfo.ServiceType int[] availableServices) { + try { + sRegistry.notifyCarrierRoamingNtnAvailableServicesChanged(subId, availableServices); + } catch (RemoteException ex) { + // system server crash + throw ex.rethrowFromSystemServer(); + } + } + /** * Processes potential event changes from the provided {@link TelephonyCallback}. * @@ -1272,12 +1287,9 @@ public class TelephonyRegistryManager { if (telephonyCallback instanceof TelephonyCallback.CarrierRoamingNtnModeListener) { eventList.add(TelephonyCallback.EVENT_CARRIER_ROAMING_NTN_MODE_CHANGED); - } - - if (telephonyCallback instanceof TelephonyCallback.CarrierRoamingNtnModeListener) { eventList.add(TelephonyCallback.EVENT_CARRIER_ROAMING_NTN_ELIGIBLE_STATE_CHANGED); + eventList.add(TelephonyCallback.EVENT_CARRIER_ROAMING_NTN_AVAILABLE_SERVICES_CHANGED); } - return eventList; } diff --git a/core/java/android/view/LetterboxScrollProcessor.java b/core/java/android/view/LetterboxScrollProcessor.java index dc736d6abf7dc691680dca6f3445422e0e7dd966..1364a82e60a1723c248860e7334c8dc4da729f50 100644 --- a/core/java/android/view/LetterboxScrollProcessor.java +++ b/core/java/android/view/LetterboxScrollProcessor.java @@ -16,6 +16,8 @@ package android.view; +import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE; + import android.annotation.Nullable; import android.content.Context; import android.graphics.Rect; @@ -23,6 +25,8 @@ import android.os.Handler; import androidx.annotation.NonNull; +import com.android.internal.annotations.VisibleForTesting; + import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -35,6 +39,7 @@ import java.util.Set; * * @hide */ +@VisibleForTesting(visibility = PACKAGE) public class LetterboxScrollProcessor { private enum LetterboxScrollState { @@ -53,6 +58,7 @@ public class LetterboxScrollProcessor { /** IDs of events generated from this class */ private final Set mGeneratedEventIds = new HashSet<>(); + @VisibleForTesting(visibility = PACKAGE) public LetterboxScrollProcessor(@NonNull Context context, @Nullable Handler handler) { mContext = context; mScrollDetector = new GestureDetector(context, new ScrollListener(), handler); @@ -69,7 +75,9 @@ public class LetterboxScrollProcessor { * @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 processMotionEvent(MotionEvent motionEvent) { + @Nullable + @VisibleForTesting(visibility = PACKAGE) + public List processMotionEvent(@NonNull MotionEvent motionEvent) { mProcessedEvents.clear(); final Rect appBounds = getAppBounds(); @@ -124,11 +132,9 @@ public class LetterboxScrollProcessor { mState = LetterboxScrollState.AWAITING_GESTURE_START; } - if (makeNoAdjustments) return null; - return mProcessedEvents; + return makeNoAdjustments ? null : mProcessedEvents; } - /** * Processes the InputEvent for compatibility before it is finished by calling * InputEventReceiver#finishInputEvent(). @@ -136,21 +142,33 @@ public class LetterboxScrollProcessor { * @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; + @Nullable + @VisibleForTesting(visibility = PACKAGE) + public InputEvent processMotionEventBeforeFinish(@NonNull MotionEvent motionEvent) { + return mGeneratedEventIds.remove(motionEvent.getId()) ? null : motionEvent; } + @NonNull 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(); + /** Checks whether the gesture is located on the letterbox area. */ + private boolean isOutsideAppBounds(@NonNull MotionEvent motionEvent, @NonNull Rect appBounds) { + // The events are in the coordinate system of the ViewRootImpl (window). The window might + // not have the same dimensions as the app bounds - for example in case of Dialogs - thus + // `getRawX()` and `getRawY()` are used, with the absolute bounds (left, top, etc) instead + // of width and height. + // The event should be passed to the app if it has happened anywhere in the app area, + // irrespective of the current window size, therefore the app bounds are used instead of the + // current window. + return motionEvent.getRawX() < appBounds.left + || motionEvent.getRawX() >= appBounds.right + || motionEvent.getRawY() < appBounds.top + || motionEvent.getRawY() >= appBounds.bottom; } - private void applyOffset(MotionEvent event, Rect appBounds) { + private void applyOffset(@NonNull MotionEvent event, @NonNull 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. diff --git a/core/java/android/view/Surface.java b/core/java/android/view/Surface.java index 396be7b62b4d1a0429695d803c128571bda520b8..03f9d9814b4317197c614e3e61529cf5b55873b5 100644 --- a/core/java/android/view/Surface.java +++ b/core/java/android/view/Surface.java @@ -18,9 +18,11 @@ package android.view; import static android.system.OsConstants.EINVAL; +import android.annotation.FlaggedApi; import android.annotation.FloatRange; import android.annotation.IntDef; import android.annotation.NonNull; +import android.annotation.SuppressLint; import android.compat.annotation.UnsupportedAppUsage; import android.content.pm.ActivityInfo; import android.content.res.CompatibilityInfo.Translator; @@ -1025,6 +1027,211 @@ public class Surface implements Parcelable { return mIsAutoRefreshEnabled; } + /** + * Parameter object for {@link #setFrameRate(FrameRateParams)}, describing the intended frame + * rate for the Surface that setFrameRate is called on. + */ + @FlaggedApi(com.android.graphics.surfaceflinger.flags.Flags.FLAG_ARR_SETFRAMERATE_API) + public static class FrameRateParams { + private FrameRateParams() {} + + /** + * A static FrameRateParams that can be passed directly into {@link + * #setFrameRate(FrameRateParams)} to indicate the surface has no preference and any frame + * rate is acceptable. + */ + @FlaggedApi(com.android.graphics.surfaceflinger.flags.Flags.FLAG_ARR_SETFRAMERATE_API) + public static final FrameRateParams IGNORE = + new FrameRateParams.Builder().setDesiredRateRange(0f, Float.MAX_VALUE).build(); + + @FlaggedApi(com.android.graphics.surfaceflinger.flags.Flags.FLAG_ARR_SETFRAMERATE_API) + public static final class Builder { + private float mDesiredMinRate; + private float mDesiredMaxRate; + private float mFixedSourceRate; + private int mChangeFrameRateStrategy; + + /** + * Sets the desired frame rate range (inclusive) values for the surface, specifying that + * the surface prefers the device render rate to be in the range [desiredMinRate, + * desiredMaxRate]. + + * Set desiredMaxRate to FLOAT.MAX_VALUE to indicate the surface prefers any value + * greater than or equal to desiredMinRate. + * + * Set desiredMinRate = desiredMaxRate to indicate the surface prefers an exact frame + * rate. Note that this is different than specifying the fixed source frame rate with + * {@link FrameRateParams.Builder#setFixedSourceRate}. To reiterate, this call is used + * to specify the surface's frame rate preference to be within the desired range. + * + * desiredMaxRate must be greater than or equal to desiredMinRate. + * The values should be greater than or equal to 0. + * + * If the surface has no preference and any frame rate is acceptable, use the constant + * {@link FrameRateParams.IGNORE} in {@link #setFrameRate(FrameRateParams)} instead of + * building {@link FrameRateParams.Builder}. + * + * @see FrameRateParams#getDesiredMinRate() + * @see FrameRateParams#getDesiredMaxRate() + */ + @SuppressLint("MissingGetterMatchingBuilder") + @NonNull + @FlaggedApi(com.android.graphics.surfaceflinger.flags.Flags.FLAG_ARR_SETFRAMERATE_API) + public Builder setDesiredRateRange(@FloatRange(from = 0.0) float desiredMinRate, + @FloatRange(from = 0.0) float desiredMaxRate) { + if (desiredMaxRate < desiredMinRate) { + Log.e(TAG, + "Failed to set desired frame rate range. desiredMaxRate should be " + + "greater than or equal to desiredMinRate"); + return this; + } + mDesiredMinRate = desiredMinRate; + mDesiredMaxRate = desiredMaxRate; + return this; + } + + /** + * Sets the fixed frame rate of the surface when its content has a fixed frame rate, + * e.g. a video with a fixed frame rate. + * + * When the frame rate chosen for the surface is the {@code fixedSourceRate} or a + * multiple, the surface can render without frame pulldown, for optimal smoothness. For + * example, a 30 fps video ({@code fixedSourceRate=30}) renders just as well on 30 fps, + * 60 fps, 90 fps, 120 fps, and so on. + * + * This method to set the fixed source rate can also be used together with a desired + * frame rate range via {@link FrameRateParams.Builder#setDesiredRateRange}. This still + * means the surface's content has a fixed frame rate of the provided {@code + * fixedSourceRate}, as well as it preferring to be within the desired frame rate range. + * For example, a 30 fps video {@code fixedSourceRate=30} and desired frame rate range + * [60,90] means the surface ideally prefers 60 fps (which is 30 fps * 2) or 90 fps (30 + * fps * 3). + * + * @see FrameRateParams#getFixedSourceRate() + */ + @NonNull + @FlaggedApi(com.android.graphics.surfaceflinger.flags.Flags.FLAG_ARR_SETFRAMERATE_API) + public Builder setFixedSourceRate(@FloatRange(from = 0.0) float fixedSourceRate) { + mFixedSourceRate = fixedSourceRate; + return this; + } + + /** + * Whether display refresh rate transitions caused by this surface should be seamless. A + * seamless transition is one that doesn't have any visual interruptions, such as a + * black screen for a second or two. Value is + * Surface.CHANGE_FRAME_RATE_ONLY_IF_SEAMLESS, or Surface.CHANGE_FRAME_RATE_ALWAYS + * + * @see FrameRateParams#getChangeFrameRateStrategy() + */ + @NonNull + @FlaggedApi(com.android.graphics.surfaceflinger.flags.Flags.FLAG_ARR_SETFRAMERATE_API) + public Builder setChangeFrameRateStrategy( + @ChangeFrameRateStrategy int changeFrameRateStrategy) { + mChangeFrameRateStrategy = changeFrameRateStrategy; + return this; + } + + /** + * Builds the FrameRateParams object. + */ + @NonNull + @FlaggedApi(com.android.graphics.surfaceflinger.flags.Flags.FLAG_ARR_SETFRAMERATE_API) + public FrameRateParams build() { + FrameRateParams frameRate = new FrameRateParams(); + frameRate.mDesiredMinRate = this.mDesiredMinRate; + frameRate.mDesiredMaxRate = this.mDesiredMaxRate; + frameRate.mFixedSourceRate = this.mFixedSourceRate; + frameRate.mChangeFrameRateStrategy = this.mChangeFrameRateStrategy; + return frameRate; + } + } + + /** + * Gets the minimum desired frame rate. + * @see FrameRateParams.Builder#setDesiredRateRange() + */ + @FlaggedApi(com.android.graphics.surfaceflinger.flags.Flags.FLAG_ARR_SETFRAMERATE_API) + public float getDesiredMinRate() { + return mDesiredMinRate; + } + + /** + * Gets the maximum desired frame rate. + * @see FrameRateParams.Builder#setDesiredRateRange() + */ + @FlaggedApi(com.android.graphics.surfaceflinger.flags.Flags.FLAG_ARR_SETFRAMERATE_API) + public float getDesiredMaxRate() { + return mDesiredMaxRate; + } + + /** + * Gets the fixed source frame rate. + * @see FrameRateParams.Builder#setFixedSourceRate() + */ + @FlaggedApi(com.android.graphics.surfaceflinger.flags.Flags.FLAG_ARR_SETFRAMERATE_API) + public float getFixedSourceRate() { + return mFixedSourceRate; + } + + /** + * Gets the strategy when changing frame rate. + * @see FrameRateParams.Builder#setChangeFrameRateStrategy + */ + @FlaggedApi(com.android.graphics.surfaceflinger.flags.Flags.FLAG_ARR_SETFRAMERATE_API) + @ChangeFrameRateStrategy + public int getChangeFrameRateStrategy() { + return mChangeFrameRateStrategy; + } + + float mDesiredMinRate; + float mDesiredMaxRate; + float mFixedSourceRate; + int mChangeFrameRateStrategy; + } + + /** + * Sets the intended frame rate for this surface. + * + *

    On devices that are capable of running the display at different frame rates, + * the system may choose a display refresh rate to better match this surface's frame + * rate. Usage of this API won't introduce frame rate throttling, or affect other + * aspects of the application's frame production pipeline. However, because the system + * may change the display refresh rate, calls to this function may result in changes + * to Choreographer callback timings, and changes to the time interval at which the + * system releases buffers back to the application.

    + * + *

    Note that this only has an effect for surfaces presented on the display. If this + * surface is consumed by something other than the system compositor, e.g. a media + * codec, this call has no effect.

    + * + * @param frameRateParams The parameters describing the intended frame rate of this surface. + * Refer to {@link FrameRateParams} for details. + * @throws IllegalArgumentException If frameRateParams is invalid. + * @see #clearFrameRate() + */ + @FlaggedApi(com.android.graphics.surfaceflinger.flags.Flags.FLAG_ARR_SETFRAMERATE_API) + public void setFrameRate(@NonNull FrameRateParams frameRateParams) { + synchronized (mLock) { + checkNotReleasedLocked(); + // TODO(b/362798998): Logic currently incomplete: it uses fixed source rate over the + // desired min/max rates. Fix when plumbing is upgraded. + int compatibility = frameRateParams.getFixedSourceRate() == 0 + ? FRAME_RATE_COMPATIBILITY_DEFAULT + : FRAME_RATE_COMPATIBILITY_FIXED_SOURCE; + float frameRate = compatibility == FRAME_RATE_COMPATIBILITY_DEFAULT + ? frameRateParams.getDesiredMinRate() + : frameRateParams.getFixedSourceRate(); + int error = nativeSetFrameRate(mNativeObject, frameRate, compatibility, + frameRateParams.getChangeFrameRateStrategy()); + if (error == -EINVAL) { + throw new IllegalArgumentException("Invalid argument to Surface.setFrameRate()"); + } else if (error != 0) { + Log.e(TAG, "Failed to set frame rate on Surface. Native error: " + error); + } + } + } + /** * Sets the intended frame rate for this surface. * diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java index e6de478e3d3d32fc7c048eee30f2238c5f476a2e..94f415b8680f91e7411e31466d214ee743d35d47 100644 --- a/core/java/android/view/SurfaceControl.java +++ b/core/java/android/view/SurfaceControl.java @@ -412,41 +412,28 @@ public final class SurfaceControl implements Parcelable { */ public static class JankData { - /** @hide */ - @IntDef(flag = true, value = {JANK_NONE, - DISPLAY_HAL, - JANK_SURFACEFLINGER_DEADLINE_MISSED, - JANK_SURFACEFLINGER_GPU_DEADLINE_MISSED, - JANK_APP_DEADLINE_MISSED, - PREDICTION_ERROR, - SURFACE_FLINGER_SCHEDULING}) + /** + * Needs to be kept in sync with android_view_SurfaceControl.cpp's + * JankDataListenerWrapper::onJankDataAvailable. + * @hide + */ + @IntDef(flag = true, value = { + JANK_NONE, + JANK_COMPOSER, + JANK_APPLICATION, + JANK_OTHER, + }) @Retention(RetentionPolicy.SOURCE) public @interface JankType {} - // Needs to be kept in sync with frameworks/native/libs/gui/include/gui/JankInfo.h - // No Jank - public static final int JANK_NONE = 0x0; - - // Jank not related to SurfaceFlinger or the App - public static final int DISPLAY_HAL = 0x1; - // SF took too long on the CPU - public static final int JANK_SURFACEFLINGER_DEADLINE_MISSED = 0x2; - // SF took too long on the GPU - public static final int JANK_SURFACEFLINGER_GPU_DEADLINE_MISSED = 0x4; - // Either App or GPU took too long on the frame - public static final int JANK_APP_DEADLINE_MISSED = 0x8; - // Vsync predictions have drifted beyond the threshold from the actual HWVsync - public static final int PREDICTION_ERROR = 0x10; - // Latching a buffer early might cause an early present of the frame - public static final int SURFACE_FLINGER_SCHEDULING = 0x20; - // A buffer is said to be stuffed if it was expected to be presented on a vsync but was - // presented later because the previous buffer was presented in its expected vsync. This - // usually happens if there is an unexpectedly long frame causing the rest of the buffers - // to enter a stuffed state. - public static final int BUFFER_STUFFING = 0x40; - // Jank due to unknown reasons. - public static final int UNKNOWN = 0x80; + public static final int JANK_NONE = 0; + // Jank caused by the composer missing a deadline + public static final int JANK_COMPOSER = 1 << 0; + // Jank caused by the application missing the composer's deadline + public static final int JANK_APPLICATION = 1 << 1; + // Jank due to other unknown reasons + public static final int JANK_OTHER = 1 << 2; public JankData(long frameVsyncId, @JankType int jankType, long frameIntervalNs, long scheduledAppFrameTimeNs, long actualAppFrameTimeNs) { diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index 82235d252a728058d6914e59cfeb9bd9dab6845b..9cad3e58fa021a68cb48e2834772f224d3612147 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -16,6 +16,7 @@ package android.view; +import static android.view.flags.Flags.FLAG_SURFACE_VIEW_GET_SURFACE_PACKAGE; import static android.view.flags.Flags.FLAG_SURFACE_VIEW_SET_COMPOSITION_ORDER; import static android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; import static android.view.WindowManagerPolicyConstants.APPLICATION_MEDIA_OVERLAY_SUBLAYER; @@ -27,6 +28,7 @@ import android.annotation.FloatRange; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SuppressLint; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.res.CompatibilityInfo.Translator; @@ -2112,7 +2114,7 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall } /** - * Display the view-hierarchy embedded within a {@link SurfaceControlViewHost.SurfacePackage} + * Displays the view-hierarchy embedded within a {@link SurfaceControlViewHost.SurfacePackage} * within this SurfaceView. * * This can be called independently of the SurfaceView lifetime callbacks. SurfaceView @@ -2132,6 +2134,8 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall * SurfaceView the underlying {@link SurfaceControlViewHost} remains managed by it's original * remote-owner. * + * Users can call {@link SurfaceView#clearChildSurfacePackage} to clear the package. + * * @param p The SurfacePackage to embed. */ public void setChildSurfacePackage(@NonNull SurfaceControlViewHost.SurfacePackage p) { @@ -2155,6 +2159,46 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall invalidate(); } + /** + * Returns the {@link SurfaceControlViewHost.SurfacePackage} that was set on this SurfaceView. + * + * Note: This method will return {@code null} if + * {@link #setChildSurfacePackage(SurfaceControlViewHost.SurfacePackage)} + * has not been called or if {@link #clearChildSurfacePackage()} has been called. + * + * @see #setChildSurfacePackage(SurfaceControlViewHost.SurfacePackage) + */ + @SuppressLint("GetterSetterNullability") + @FlaggedApi(FLAG_SURFACE_VIEW_GET_SURFACE_PACKAGE) + public @Nullable SurfaceControlViewHost.SurfacePackage getChildSurfacePackage() { + return mSurfacePackage; + } + + /** + * Clears the {@link SurfaceControlViewHost.SurfacePackage} that was set on this SurfaceView. + * This hides any content rendered by the provided + * {@link SurfaceControlViewHost.SurfacePackage}. + * + * @see #setChildSurfacePackage(SurfaceControlViewHost.SurfacePackage) + */ + @FlaggedApi(FLAG_SURFACE_VIEW_GET_SURFACE_PACKAGE) + public void clearChildSurfacePackage() { + if (mSurfacePackage != null) { + mSurfaceControlViewHostParent.detach(); + mEmbeddedWindowParams.clear(); + + // Reparent the SurfaceControl to remove the content on screen. + final SurfaceControl sc = mSurfacePackage.getSurfaceControl(); + final SurfaceControl.Transaction transaction = new Transaction(); + transaction.reparent(sc, null); + mSurfacePackage.release(); + applyTransactionOnVriDraw(transaction); + + mSurfacePackage = null; + invalidate(); + } + } + private void reparentSurfacePackage(SurfaceControl.Transaction t, SurfaceControlViewHost.SurfacePackage p) { final SurfaceControl sc = p.getSurfaceControl(); diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 0efded2d0eb99979d716eba06e3222925366a497..d57a88075f8afc2c3a16dc3ea1115173d85bb4be 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -131,6 +131,7 @@ import static android.window.DesktopModeFlags.ENABLE_CAPTION_COMPAT_INSET_FORCE_ import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE; import static com.android.text.flags.Flags.disableHandwritingInitiatorForIme; import static com.android.window.flags.Flags.enableBufferTransformHintFromDisplay; +import static com.android.window.flags.Flags.predictiveBackSwipeEdgeNoneApi; import static com.android.window.flags.Flags.setScPropertiesInClient; import static com.android.window.flags.Flags.systemUiImmersiveConfirmationDialog; @@ -7559,8 +7560,13 @@ public final class ViewRootImpl implements ViewParent, // - 0 means the button was pressed. // - 1 means the button continues to be pressed (long press). if (keyEvent.getRepeatCount() == 0) { - animationCallback.onBackStarted( - new BackEvent(0, 0, 0f, BackEvent.EDGE_LEFT)); + BackEvent backEvent; + if (predictiveBackSwipeEdgeNoneApi()) { + backEvent = new BackEvent(0, 0, 0f, BackEvent.EDGE_NONE); + } else { + backEvent = new BackEvent(0, 0, 0f, BackEvent.EDGE_LEFT); + } + animationCallback.onBackStarted(backEvent); } break; case KeyEvent.ACTION_UP: diff --git a/core/java/android/view/flags/view_flags.aconfig b/core/java/android/view/flags/view_flags.aconfig index bb61ae49259cc851e650609590df04f8baf61934..1b86f96d7eb7e557922e1aab3fcf835b1b8d3851 100644 --- a/core/java/android/view/flags/view_flags.aconfig +++ b/core/java/android/view/flags/view_flags.aconfig @@ -118,6 +118,14 @@ flag { is_fixed_read_only: true } +flag { + name: "surface_view_get_surface_package" + namespace: "window_surfaces" + description: "Add APIs to manage SurfacePackage of the parent SurfaceView." + bug: "341021569" + is_fixed_read_only: true +} + flag { name: "use_refactored_round_scrollbar" namespace: "wear_frameworks" diff --git a/core/java/android/view/inputmethod/ImeTracker.java b/core/java/android/view/inputmethod/ImeTracker.java index d90455ab971daedbfc70ca276d9b582ed772c1b0..2ca62a0725df1e9d63f8c6195bbe8d2431d5dd8f 100644 --- a/core/java/android/view/inputmethod/ImeTracker.java +++ b/core/java/android/view/inputmethod/ImeTracker.java @@ -220,6 +220,7 @@ public interface ImeTracker { PHASE_WM_POSTING_CHANGED_IME_VISIBILITY, PHASE_WM_INVOKING_IME_REQUESTED_LISTENER, PHASE_CLIENT_ALREADY_HIDDEN, + PHASE_CLIENT_VIEW_HANDLER_AVAILABLE, }) @Retention(RetentionPolicy.SOURCE) @interface Phase {} @@ -424,6 +425,11 @@ public interface ImeTracker { ImeProtoEnums.PHASE_WM_INVOKING_IME_REQUESTED_LISTENER; /** IME is requested to be hidden, but already hidden. Don't hide to avoid another animation. */ int PHASE_CLIENT_ALREADY_HIDDEN = ImeProtoEnums.PHASE_CLIENT_ALREADY_HIDDEN; + /** + * The view's handler is needed to check if we're running on a different thread. We can't + * continue without. + */ + int PHASE_CLIENT_VIEW_HANDLER_AVAILABLE = ImeProtoEnums.PHASE_CLIENT_VIEW_HANDLER_AVAILABLE; /** * Called when an IME request is started. diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java index 47fc43735c4dbdfc2a1a4621e6d9d44e9ae8aad6..2d2f4c958a73109452c3e76739dfe7d318857bf3 100644 --- a/core/java/android/view/inputmethod/InputMethodManager.java +++ b/core/java/android/view/inputmethod/InputMethodManager.java @@ -2557,21 +2557,24 @@ public final class InputMethodManager { public boolean hideSoftInputFromWindow(IBinder windowToken, @HideFlags int flags, ResultReceiver resultReceiver) { return hideSoftInputFromWindow(windowToken, flags, resultReceiver, - SoftInputShowHideReason.HIDE_SOFT_INPUT); + SoftInputShowHideReason.HIDE_SOFT_INPUT, null); } private boolean hideSoftInputFromWindow(IBinder windowToken, @HideFlags int flags, - ResultReceiver resultReceiver, @SoftInputShowHideReason int reason) { + ResultReceiver resultReceiver, @SoftInputShowHideReason int reason, + @Nullable ImeTracker.Token statsToken) { // Get served view initially for statsToken creation. final View initialServedView; synchronized (mH) { initialServedView = getServedViewLocked(); } - final var statsToken = ImeTracker.forLogging().onStart(ImeTracker.TYPE_HIDE, - ImeTracker.ORIGIN_CLIENT, reason, ImeTracker.isFromUser(initialServedView)); - ImeTracker.forLatency().onRequestHide(statsToken, - ImeTracker.ORIGIN_CLIENT, reason, ActivityThread::currentApplication); + if (statsToken == null) { + statsToken = ImeTracker.forLogging().onStart(ImeTracker.TYPE_HIDE, + ImeTracker.ORIGIN_CLIENT, reason, ImeTracker.isFromUser(initialServedView)); + ImeTracker.forLatency().onRequestHide(statsToken, ImeTracker.ORIGIN_CLIENT, reason, + ActivityThread::currentApplication); + } ImeTracing.getInstance().triggerClientDump("InputMethodManager#hideSoftInputFromWindow", this, null /* icProto */); checkFocus(); @@ -2591,6 +2594,17 @@ public final class InputMethodManager { // TODO(b/322992891) handle case of HIDE_IMPLICIT_ONLY final var viewRootImpl = servedView.getViewRootImpl(); if (viewRootImpl != null) { + Handler vh = servedView.getHandler(); + if (vh == null) { + // If the view doesn't have a handler, something has changed out from + // under us. The current input has been closed before (from checkFocus). + ImeTracker.forLogging().onFailed(statsToken, + ImeTracker.PHASE_CLIENT_VIEW_HANDLER_AVAILABLE); + return false; + } + ImeTracker.forLogging().onProgress(statsToken, + ImeTracker.PHASE_CLIENT_VIEW_HANDLER_AVAILABLE); + if (resultReceiver != null) { final boolean imeReqVisible = (viewRootImpl.getInsetsController().getRequestedVisibleTypes() @@ -2599,7 +2613,15 @@ public final class InputMethodManager { !imeReqVisible ? InputMethodManager.RESULT_UNCHANGED_HIDDEN : InputMethodManager.RESULT_HIDDEN, null); } - viewRootImpl.getInsetsController().hide(WindowInsets.Type.ime()); + if (vh.getLooper() != Looper.myLooper()) { + // The view is running on a different thread than our own, so + // we need to reschedule our work for over there. + if (DEBUG) Log.v(TAG, "Hiding soft input: reschedule to view thread"); + vh.post(() -> viewRootImpl.getInsetsController().hide( + WindowInsets.Type.ime())); + } else { + viewRootImpl.getInsetsController().hide(WindowInsets.Type.ime()); + } } return true; } else { @@ -2646,8 +2668,14 @@ public final class InputMethodManager { ImeTracker.forLogging().onProgress(statsToken, ImeTracker.PHASE_CLIENT_VIEW_SERVED); - return IInputMethodManagerGlobalInvoker.hideSoftInput(mClient, view.getWindowToken(), - statsToken, flags, null, reason, mAsyncShowHideMethodEnabled); + if (Flags.refactorInsetsController()) { + return hideSoftInputFromWindow(view.getWindowToken(), flags, + null /* resultReceiver */, reason, statsToken); + } else { + return IInputMethodManagerGlobalInvoker.hideSoftInput(mClient, + view.getWindowToken(), statsToken, flags, null, reason, + mAsyncShowHideMethodEnabled); + } } } @@ -3143,7 +3171,7 @@ public final class InputMethodManager { if (rootInsets != null && rootInsets.isVisible(WindowInsets.Type.ime())) { hideSoftInputFromWindow(view.getWindowToken(), hideFlags, null /* resultReceiver */, - SoftInputShowHideReason.HIDE_TOGGLE_SOFT_INPUT); + SoftInputShowHideReason.HIDE_TOGGLE_SOFT_INPUT, null); } else { showSoftInput(view, showFlags, null /* resultReceiver */, SoftInputShowHideReason.SHOW_TOGGLE_SOFT_INPUT); @@ -3721,14 +3749,19 @@ public final class InputMethodManager { ImeTracker.forLogging().onProgress(statsToken, ImeTracker.PHASE_CLIENT_VIEW_SERVED); - IInputMethodManagerGlobalInvoker.hideSoftInput( - mClient, - rootView.getWindowToken(), - statsToken, - HIDE_NOT_ALWAYS, - null, - reason, - true /*async */); + if (Flags.refactorInsetsController()) { + mCurRootView.getInsetsController().hide(WindowInsets.Type.ime(), + false /* fromIme */, statsToken); + } else { + IInputMethodManagerGlobalInvoker.hideSoftInput( + mClient, + rootView.getWindowToken(), + statsToken, + HIDE_NOT_ALWAYS, + null, + reason, + true /*async */); + } } } diff --git a/core/java/android/window/BackEvent.java b/core/java/android/window/BackEvent.java index 23e572fcd5770d2887ba280a961c67fbac0f99c5..89b38d8048e537ab1c17e62a07e0455463d15ff8 100644 --- a/core/java/android/window/BackEvent.java +++ b/core/java/android/window/BackEvent.java @@ -16,13 +16,13 @@ package android.window; +import static com.android.window.flags.Flags.FLAG_PREDICTIVE_BACK_SWIPE_EDGE_NONE_API; import static com.android.window.flags.Flags.FLAG_PREDICTIVE_BACK_TIMESTAMP_API; import static com.android.window.flags.Flags.predictiveBackTimestampApi; import android.annotation.FlaggedApi; import android.annotation.FloatRange; import android.annotation.IntDef; -import android.util.TimeUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -37,11 +37,19 @@ public final class BackEvent { public static final int EDGE_LEFT = 0; /** Indicates that the edge swipe starts from the right edge of the screen */ public static final int EDGE_RIGHT = 1; + /** + * Indicates that the back event was not triggered by an edge swipe back gesture. This applies + * to cases like using the back button in 3-button navigation or pressing a hardware back + * button. + */ + @FlaggedApi(FLAG_PREDICTIVE_BACK_SWIPE_EDGE_NONE_API) + public static final int EDGE_NONE = 2; /** @hide */ @IntDef({ EDGE_LEFT, EDGE_RIGHT, + EDGE_NONE, }) @Retention(RetentionPolicy.SOURCE) public @interface SwipeEdge{} @@ -49,7 +57,7 @@ public final class BackEvent { private final float mTouchX; private final float mTouchY; private final float mProgress; - private final long mFrameTime; + private final long mFrameTimeMillis; @SwipeEdge private final int mSwipeEdge; @@ -59,7 +67,7 @@ public final class BackEvent { if (predictiveBackTimestampApi()) { return new BackEvent(backMotionEvent.getTouchX(), backMotionEvent.getTouchY(), backMotionEvent.getProgress(), backMotionEvent.getSwipeEdge(), - backMotionEvent.getFrameTime()); + backMotionEvent.getFrameTimeMillis()); } else { return new BackEvent(backMotionEvent.getTouchX(), backMotionEvent.getTouchY(), backMotionEvent.getProgress(), backMotionEvent.getSwipeEdge()); @@ -67,7 +75,7 @@ public final class BackEvent { } /** - * Creates a new {@link BackEvent} instance with the current uptime as frame time. + * Creates a new {@link BackEvent} instance with a frame time of 0. * * @param touchX Absolute X location of the touch point of this event. * @param touchY Absolute Y location of the touch point of this event. @@ -79,7 +87,7 @@ public final class BackEvent { mTouchY = touchY; mProgress = progress; mSwipeEdge = swipeEdge; - mFrameTime = System.nanoTime() / TimeUtils.NANOS_PER_MS; + mFrameTimeMillis = 0; } /** @@ -89,16 +97,16 @@ public final class BackEvent { * @param touchY Absolute Y location of the touch point of this event. * @param progress Value between 0 and 1 on how far along the back gesture is. * @param swipeEdge Indicates which edge the swipe starts from. - * @param frameTime frame time of the back event. + * @param frameTimeMillis frame time of the back event. */ @FlaggedApi(FLAG_PREDICTIVE_BACK_TIMESTAMP_API) public BackEvent(float touchX, float touchY, float progress, @SwipeEdge int swipeEdge, - long frameTime) { + long frameTimeMillis) { mTouchX = touchX; mTouchY = touchY; mProgress = progress; mSwipeEdge = swipeEdge; - mFrameTime = frameTime; + mFrameTimeMillis = frameTimeMillis; } /** @@ -151,8 +159,8 @@ public final class BackEvent { * Returns the frameTime of the BackEvent in milliseconds. Useful for calculating velocity. */ @FlaggedApi(FLAG_PREDICTIVE_BACK_TIMESTAMP_API) - public long getFrameTime() { - return mFrameTime; + public long getFrameTimeMillis() { + return mFrameTimeMillis; } @Override @@ -168,7 +176,7 @@ public final class BackEvent { && mTouchY == that.mTouchY && mProgress == that.mProgress && mSwipeEdge == that.mSwipeEdge - && mFrameTime == that.mFrameTime; + && mFrameTimeMillis == that.mFrameTimeMillis; } @Override @@ -178,7 +186,7 @@ public final class BackEvent { + ", mTouchY=" + mTouchY + ", mProgress=" + mProgress + ", mSwipeEdge=" + mSwipeEdge - + ", mFrameTime=" + mFrameTime + "ms" + + ", mFrameTimeMillis=" + mFrameTimeMillis + "}"; } } diff --git a/core/java/android/window/BackMotionEvent.java b/core/java/android/window/BackMotionEvent.java index a8ec4eeb039a5e4bde614f4115d27c24a9374e3a..cc2afbc6aaa37dc664d88c46aa6a8645c53d3936 100644 --- a/core/java/android/window/BackMotionEvent.java +++ b/core/java/android/window/BackMotionEvent.java @@ -33,7 +33,7 @@ import android.view.RemoteAnimationTarget; public final class BackMotionEvent implements Parcelable { private final float mTouchX; private final float mTouchY; - private final long mFrameTime; + private final long mFrameTimeMillis; private final float mProgress; private final boolean mTriggerBack; @@ -49,7 +49,7 @@ public final class BackMotionEvent implements Parcelable { * * @param touchX Absolute X location of the touch point of this event. * @param touchY Absolute Y location of the touch point of this event. - * @param frameTime Event time of the corresponding touch event. + * @param frameTimeMillis Event time of the corresponding touch event. * @param progress Value between 0 and 1 on how far along the back gesture is. * @param triggerBack Indicates whether the back arrow is in the triggered state or not * @param swipeEdge Indicates which edge the swipe starts from. @@ -59,14 +59,14 @@ public final class BackMotionEvent implements Parcelable { public BackMotionEvent( float touchX, float touchY, - long frameTime, + long frameTimeMillis, float progress, boolean triggerBack, @BackEvent.SwipeEdge int swipeEdge, @Nullable RemoteAnimationTarget departingAnimationTarget) { mTouchX = touchX; mTouchY = touchY; - mFrameTime = frameTime; + mFrameTimeMillis = frameTimeMillis; mProgress = progress; mTriggerBack = triggerBack; mSwipeEdge = swipeEdge; @@ -80,7 +80,7 @@ public final class BackMotionEvent implements Parcelable { mTriggerBack = in.readBoolean(); mSwipeEdge = in.readInt(); mDepartingAnimationTarget = in.readTypedObject(RemoteAnimationTarget.CREATOR); - mFrameTime = in.readLong(); + mFrameTimeMillis = in.readLong(); } @NonNull @@ -109,7 +109,7 @@ public final class BackMotionEvent implements Parcelable { dest.writeBoolean(mTriggerBack); dest.writeInt(mSwipeEdge); dest.writeTypedObject(mDepartingAnimationTarget, flags); - dest.writeLong(mFrameTime); + dest.writeLong(mFrameTimeMillis); } /** @@ -156,8 +156,8 @@ public final class BackMotionEvent implements Parcelable { /** * Returns the frame time of the BackMotionEvent in milliseconds. */ - public long getFrameTime() { - return mFrameTime; + public long getFrameTimeMillis() { + return mFrameTimeMillis; } /** @@ -175,7 +175,7 @@ public final class BackMotionEvent implements Parcelable { return "BackMotionEvent{" + "mTouchX=" + mTouchX + ", mTouchY=" + mTouchY - + ", mFrameTime=" + mFrameTime + "ms" + + ", mFrameTimeMillis=" + mFrameTimeMillis + ", mProgress=" + mProgress + ", mTriggerBack=" + mTriggerBack + ", mSwipeEdge=" + mSwipeEdge diff --git a/core/java/android/window/BackNavigationInfo.java b/core/java/android/window/BackNavigationInfo.java index 59639d04b45bd082462c55d69aae45882d72d0cf..6cefc4d2fecfd26f8c80e615dfe7fae38e9136e9 100644 --- a/core/java/android/window/BackNavigationInfo.java +++ b/core/java/android/window/BackNavigationInfo.java @@ -16,6 +16,8 @@ package android.window; +import static android.app.ActivityTaskManager.INVALID_TASK_ID; + import android.annotation.AnimRes; import android.annotation.ColorInt; import android.annotation.IntDef; @@ -118,6 +120,7 @@ public final class BackNavigationInfo implements Parcelable { private final Rect mTouchableRegion; private final boolean mAppProgressGenerationAllowed; + private final int mFocusedTaskId; /** * Create a new {@link BackNavigationInfo} instance. @@ -135,7 +138,8 @@ public final class BackNavigationInfo implements Parcelable { @Nullable CustomAnimationInfo customAnimationInfo, int letterboxColor, @Nullable Rect touchableRegion, - boolean appProgressGenerationAllowed) { + boolean appProgressGenerationAllowed, + int focusedTaskId) { mType = type; mOnBackNavigationDone = onBackNavigationDone; mOnBackInvokedCallback = onBackInvokedCallback; @@ -145,6 +149,7 @@ public final class BackNavigationInfo implements Parcelable { mLetterboxColor = letterboxColor; mTouchableRegion = new Rect(touchableRegion); mAppProgressGenerationAllowed = appProgressGenerationAllowed; + mFocusedTaskId = focusedTaskId; } private BackNavigationInfo(@NonNull Parcel in) { @@ -157,6 +162,7 @@ public final class BackNavigationInfo implements Parcelable { mLetterboxColor = in.readInt(); mTouchableRegion = in.readTypedObject(Rect.CREATOR); mAppProgressGenerationAllowed = in.readBoolean(); + mFocusedTaskId = in.readInt(); } /** @hide */ @@ -171,6 +177,7 @@ public final class BackNavigationInfo implements Parcelable { dest.writeInt(mLetterboxColor); dest.writeTypedObject(mTouchableRegion, flags); dest.writeBoolean(mAppProgressGenerationAllowed); + dest.writeInt(mFocusedTaskId); } /** @@ -237,6 +244,14 @@ public final class BackNavigationInfo implements Parcelable { return mAppProgressGenerationAllowed; } + /** + * @return The focused task id when back gesture start. + * @hide + */ + public int getFocusedTaskId() { + return mFocusedTaskId; + } + /** * Callback to be called when the back preview is finished in order to notify the server that * it can clean up the resources created for the animation. @@ -435,6 +450,7 @@ public final class BackNavigationInfo implements Parcelable { private int mLetterboxColor = Color.TRANSPARENT; private Rect mTouchableRegion; private boolean mAppProgressGenerationAllowed; + private int mFocusedTaskId = INVALID_TASK_ID; /** * @see BackNavigationInfo#getType() @@ -526,6 +542,14 @@ public final class BackNavigationInfo implements Parcelable { return this; } + /** + * @param focusedTaskId The current focused taskId when back gesture start. + */ + public Builder setFocusedTaskId(int focusedTaskId) { + mFocusedTaskId = focusedTaskId; + return this; + } + /** * Builds and returns an instance of {@link BackNavigationInfo} */ @@ -537,7 +561,8 @@ public final class BackNavigationInfo implements Parcelable { mCustomAnimationInfo, mLetterboxColor, mTouchableRegion, - mAppProgressGenerationAllowed); + mAppProgressGenerationAllowed, + mFocusedTaskId); } } } diff --git a/core/java/android/window/BackTouchTracker.java b/core/java/android/window/BackTouchTracker.java index 39a30253adbdf439e97453ec70db7cfa8286eaeb..4908068d51e47e72d5bcc1263e3e78b3e5708aee 100644 --- a/core/java/android/window/BackTouchTracker.java +++ b/core/java/android/window/BackTouchTracker.java @@ -151,7 +151,7 @@ public class BackTouchTracker { return new BackMotionEvent( /* touchX = */ mInitTouchX, /* touchY = */ mInitTouchY, - /* frameTime = */ 0, + /* frameTimeMillis = */ 0, /* progress = */ 0, /* triggerBack = */ mTriggerBack, /* swipeEdge = */ mSwipeEdge, @@ -236,7 +236,7 @@ public class BackTouchTracker { return new BackMotionEvent( /* touchX = */ mLatestTouchX, /* touchY = */ mLatestTouchY, - /* frameTime = */ 0, + /* frameTimeMillis = */ 0, /* progress = */ progress, /* triggerBack = */ mTriggerBack, /* swipeEdge = */ mSwipeEdge, diff --git a/core/java/android/window/ImeOnBackInvokedDispatcher.java b/core/java/android/window/ImeOnBackInvokedDispatcher.java index 8db1f9509757134ace697b0fca5f1d0388115429..bd01899a649b6d2ca896a5a88402f09430f91a4f 100644 --- a/core/java/android/window/ImeOnBackInvokedDispatcher.java +++ b/core/java/android/window/ImeOnBackInvokedDispatcher.java @@ -238,7 +238,7 @@ public class ImeOnBackInvokedDispatcher implements OnBackInvokedDispatcher, Parc try { long frameTime = 0; if (predictiveBackTimestampApi()) { - frameTime = backEvent.getFrameTime(); + frameTime = backEvent.getFrameTimeMillis(); } mIOnBackInvokedCallback.onBackStarted( new BackMotionEvent(backEvent.getTouchX(), backEvent.getTouchY(), frameTime, @@ -254,7 +254,7 @@ public class ImeOnBackInvokedDispatcher implements OnBackInvokedDispatcher, Parc try { long frameTime = 0; if (predictiveBackTimestampApi()) { - frameTime = backEvent.getFrameTime(); + frameTime = backEvent.getFrameTimeMillis(); } mIOnBackInvokedCallback.onBackProgressed( new BackMotionEvent(backEvent.getTouchX(), backEvent.getTouchY(), frameTime, diff --git a/core/java/android/window/SnapshotDrawerUtils.java b/core/java/android/window/SnapshotDrawerUtils.java index 9a7bce0c52ee0fe89580531666079c0b59613e08..5397da11eb36080c6a71e0102659c97d08043cc3 100644 --- a/core/java/android/window/SnapshotDrawerUtils.java +++ b/core/java/android/window/SnapshotDrawerUtils.java @@ -151,7 +151,9 @@ public class SnapshotDrawerUtils { @VisibleForTesting public void setFrames(Rect frame, Rect systemBarInsets) { mFrame.set(frame); - mSizeMismatch = (mFrame.width() != mSnapshotW || mFrame.height() != mSnapshotH); + final Rect letterboxInsets = mSnapshot.getLetterboxInsets(); + mSizeMismatch = (mFrame.width() != mSnapshotW || mFrame.height() != mSnapshotH) + || letterboxInsets.left != 0 || letterboxInsets.top != 0; if (!Flags.drawSnapshotAspectRatioMatch() && systemBarInsets != null) { mSystemBarInsets.set(systemBarInsets); mSystemBarBackgroundPainter.setInsets(systemBarInsets); diff --git a/core/java/android/window/flags/large_screen_experiences_app_compat.aconfig b/core/java/android/window/flags/large_screen_experiences_app_compat.aconfig index 235ba3a414275e5d6daa5149a24e6e033205b15e..7ad14b0c9fe806d5e497f77cab2106d18ccb27f9 100644 --- a/core/java/android/window/flags/large_screen_experiences_app_compat.aconfig +++ b/core/java/android/window/flags/large_screen_experiences_app_compat.aconfig @@ -142,4 +142,12 @@ flag { description: "Whether the declarative compat UI framework is enabled" bug: "270361630" is_fixed_read_only: true +} + +flag { + name: "vdm_force_app_universal_resizable_api" + namespace: "large_screen_experiences_app_compat" + description: "Whether the API for forcing apps to be universal resizable on virtual display is available" + bug: "372848702" + is_exported: true } \ No newline at end of file diff --git a/core/java/android/window/flags/lse_desktop_experience.aconfig b/core/java/android/window/flags/lse_desktop_experience.aconfig index 0bcc9c1f58c5ff8a0829dbe182be5660303364ec..c4a9e57223696e8bed468edd6b19fd9a505a5845 100644 --- a/core/java/android/window/flags/lse_desktop_experience.aconfig +++ b/core/java/android/window/flags/lse_desktop_experience.aconfig @@ -348,3 +348,24 @@ flag { description: "Enables a switch to change the concequence of dragging a window to the top edge." bug: "372614715" } + +flag { + name: "enable_task_resizing_keyboard_shortcuts" + namespace: "lse_desktop_experience" + description: "Enables keyboard shortcuts for resizing tasks in desktop mode." + bug: "335819608" +} + +flag { + name: "enable_display_windowing_mode_switching" + namespace: "lse_desktop_experience" + description: "Change the default display's windowing mode to freeform when display connected in extended mode." + bug: "374849026" +} + +flag { + name: "enable_desktop_windowing_pip" + namespace: "lse_desktop_experience" + description: "Enables PiP features in desktop mode." + bug: "350475854" +} diff --git a/core/java/android/window/flags/responsible_apis.aconfig b/core/java/android/window/flags/responsible_apis.aconfig index cd31850b281c582efa0c49b1a311f6f39e271be6..57aacffd4ffcfc5dc041db1f89008d391dcc11da 100644 --- a/core/java/android/window/flags/responsible_apis.aconfig +++ b/core/java/android/window/flags/responsible_apis.aconfig @@ -71,6 +71,13 @@ flag { bug: "339720406" } +flag { + name: "bal_strict_mode" + namespace: "responsible_apis" + description: "Strict mode flag" + bug: "324089586" +} + flag { name: "bal_reduce_grace_period" namespace: "responsible_apis" diff --git a/core/java/android/window/flags/windowing_frontend.aconfig b/core/java/android/window/flags/windowing_frontend.aconfig index 0d235ffad9b557b4954f3478f2ccf506807adaae..966e835018f37fb043a90a999639d40055ca41af 100644 --- a/core/java/android/window/flags/windowing_frontend.aconfig +++ b/core/java/android/window/flags/windowing_frontend.aconfig @@ -8,6 +8,16 @@ flag { bug: "232195501" } +flag { + name: "reset_draw_state_on_client_invisible" + namespace: "windowing_frontend" + description: "Reset draw state if the client is notified to be invisible" + bug: "373023636" + metadata { + purpose: PURPOSE_BUGFIX + } +} + flag { name: "wait_for_transition_on_display_switch" namespace: "windowing_frontend" @@ -322,3 +332,11 @@ flag { is_fixed_read_only: true bug: "362938401" } + +flag { + name: "predictive_back_swipe_edge_none_api" + namespace: "systemui" + description: "EDGE_NONE swipeEdge option in BackEvent" + is_fixed_read_only: true + bug: "362938401" +} diff --git a/core/java/com/android/internal/jank/FrameTracker.java b/core/java/com/android/internal/jank/FrameTracker.java index d474c6db4f0286e198ba0845b61d6372f51f3d9b..0af4bea70e651d704da5066a9e567f890fe591cb 100644 --- a/core/java/com/android/internal/jank/FrameTracker.java +++ b/core/java/com/android/internal/jank/FrameTracker.java @@ -16,13 +16,9 @@ package com.android.internal.jank; -import static android.view.SurfaceControl.JankData.DISPLAY_HAL; -import static android.view.SurfaceControl.JankData.JANK_APP_DEADLINE_MISSED; +import static android.view.SurfaceControl.JankData.JANK_APPLICATION; +import static android.view.SurfaceControl.JankData.JANK_COMPOSER; import static android.view.SurfaceControl.JankData.JANK_NONE; -import static android.view.SurfaceControl.JankData.JANK_SURFACEFLINGER_DEADLINE_MISSED; -import static android.view.SurfaceControl.JankData.JANK_SURFACEFLINGER_GPU_DEADLINE_MISSED; -import static android.view.SurfaceControl.JankData.PREDICTION_ERROR; -import static android.view.SurfaceControl.JankData.SURFACE_FLINGER_SCHEDULING; import static com.android.internal.jank.DisplayRefreshRate.UNKNOWN_REFRESH_RATE; import static com.android.internal.jank.DisplayRefreshRate.VARIABLE_REFRESH_RATE; @@ -30,6 +26,7 @@ import static com.android.internal.jank.InteractionJankMonitor.ACTION_SESSION_CA import static com.android.internal.jank.InteractionJankMonitor.ACTION_SESSION_END; import static com.android.internal.jank.InteractionJankMonitor.EXECUTOR_TASK_TIMEOUT; +import android.animation.AnimationHandler; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; @@ -180,23 +177,11 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai case JANK_NONE: str.append("JANK_NONE"); break; - case JANK_APP_DEADLINE_MISSED: - str.append("JANK_APP_DEADLINE_MISSED"); + case JANK_APPLICATION: + str.append("JANK_APPLICATION"); break; - case JANK_SURFACEFLINGER_DEADLINE_MISSED: - str.append("JANK_SURFACEFLINGER_DEADLINE_MISSED"); - break; - case JANK_SURFACEFLINGER_GPU_DEADLINE_MISSED: - str.append("JANK_SURFACEFLINGER_GPU_DEADLINE_MISSED"); - break; - case DISPLAY_HAL: - str.append("DISPLAY_HAL"); - break; - case PREDICTION_ERROR: - str.append("PREDICTION_ERROR"); - break; - case SURFACE_FLINGER_SCHEDULING: - str.append("SURFACE_FLINGER_SCHEDULING"); + case JANK_COMPOSER: + str.append("JANK_COMPOSER"); break; default: str.append("UNKNOWN: ").append(jankType); @@ -229,7 +214,7 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai mRendererWrapper = mSurfaceOnly ? null : renderer; mMetricsWrapper = mSurfaceOnly ? null : metrics; mViewRoot = mSurfaceOnly ? null : viewRootWrapper; - mObserver = mSurfaceOnly + mObserver = mSurfaceOnly || (Flags.useSfFrameDuration() && Flags.ignoreHwuiIsFirstFrame()) ? null : new HardwareRendererObserver(this, mMetricsWrapper.getTiming(), mHandler, /* waitForPresentTime= */ false); @@ -252,6 +237,7 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai mSurfaceChangedCallback = new ViewRootImpl.SurfaceChangedCallback() { @Override public void surfaceCreated(SurfaceControl.Transaction t) { + Trace.beginSection("FrameTracker#surfaceCreated"); mHandler.runWithScissors(() -> { if (mSurfaceControl == null) { mSurfaceControl = mViewRoot.getSurfaceControl(); @@ -261,6 +247,7 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai } } }, EXECUTOR_TASK_TIMEOUT); + Trace.endSection(); } @Override @@ -344,7 +331,8 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai @UiThread public boolean end(@Reasons int reason) { if (mCancelled || mEndVsyncId != INVALID_ID) return false; - mEndVsyncId = mChoreographer.getVsyncId(); + mEndVsyncId = AnimationHandler.getInstance().getLastAnimationFrameVsyncId( + mChoreographer.getVsyncId()); // Cancel the session if: // 1. The session begins and ends at the same vsync id. // 2. The session never begun. @@ -462,23 +450,28 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai @Override public void onJankDataAvailable(SurfaceControl.JankData[] jankData) { postCallback(() -> { - if (mCancelled || mMetricsFinalized) { - return; - } - - for (SurfaceControl.JankData jankStat : jankData) { - if (!isInRange(jankStat.frameVsyncId)) { - continue; + try { + Trace.beginSection("FrameTracker#onJankDataAvailable"); + if (mCancelled || mMetricsFinalized) { + return; } - JankInfo info = findJankInfo(jankStat.frameVsyncId); - if (info != null) { - info.update(jankStat); - } else { - mJankInfos.put((int) jankStat.frameVsyncId, - JankInfo.createFromSurfaceControlCallback(jankStat)); + + for (SurfaceControl.JankData jankStat : jankData) { + if (!isInRange(jankStat.frameVsyncId)) { + continue; + } + JankInfo info = findJankInfo(jankStat.frameVsyncId); + if (info != null) { + info.update(jankStat); + } else { + mJankInfos.put((int) jankStat.frameVsyncId, + JankInfo.createFromSurfaceControlCallback(jankStat)); + } } + processJankInfos(); + } finally { + Trace.endSection(); } - processJankInfos(); }); } @@ -505,29 +498,35 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai @Override public void onFrameMetricsAvailable(int dropCountSinceLastInvocation) { postCallback(() -> { - if (mCancelled || mMetricsFinalized) { - return; - } - - // Since this callback might come a little bit late after the end() call. - // We should keep tracking the begin / end timestamp that we can compare with - // vsync timestamp to check if the frame is in the duration of the CUJ. - long totalDurationNanos = mMetricsWrapper.getMetric(FrameMetrics.TOTAL_DURATION); - boolean isFirstFrame = mMetricsWrapper.getMetric(FrameMetrics.FIRST_DRAW_FRAME) == 1; - long frameVsyncId = - mMetricsWrapper.getTiming()[FrameMetrics.Index.FRAME_TIMELINE_VSYNC_ID]; + try { + Trace.beginSection("FrameTracker#onFrameMetricsAvailable"); + if (mCancelled || mMetricsFinalized) { + return; + } - if (!isInRange(frameVsyncId)) { - return; - } - JankInfo info = findJankInfo(frameVsyncId); - if (info != null) { - info.update(totalDurationNanos, isFirstFrame); - } else { - mJankInfos.put((int) frameVsyncId, JankInfo.createFromHwuiCallback( - frameVsyncId, totalDurationNanos, isFirstFrame)); + // Since this callback might come a little bit late after the end() call. + // We should keep tracking the begin / end timestamp that we can compare with + // vsync timestamp to check if the frame is in the duration of the CUJ. + long totalDurationNanos = mMetricsWrapper.getMetric(FrameMetrics.TOTAL_DURATION); + boolean isFirstFrame = + mMetricsWrapper.getMetric(FrameMetrics.FIRST_DRAW_FRAME) == 1; + long frameVsyncId = + mMetricsWrapper.getTiming()[FrameMetrics.Index.FRAME_TIMELINE_VSYNC_ID]; + + if (!isInRange(frameVsyncId)) { + return; + } + JankInfo info = findJankInfo(frameVsyncId); + if (info != null) { + info.update(totalDurationNanos, isFirstFrame); + } else { + mJankInfos.put((int) frameVsyncId, JankInfo.createFromHwuiCallback( + frameVsyncId, totalDurationNanos, isFirstFrame)); + } + processJankInfos(); + } finally { + Trace.endSection(); } - processJankInfos(); }); } @@ -566,13 +565,20 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai } private boolean callbacksReceived(JankInfo info) { - return mSurfaceOnly + return mObserver == null ? info.surfaceControlCallbackFired : info.hwuiCallbackFired && info.surfaceControlCallbackFired; } @UiThread private void finish() { + Trace.beginSection("FrameTracker#finish"); + finishTraced(); + Trace.endSection(); + } + + @UiThread + private void finishTraced() { if (mMetricsFinalized || mCancelled) return; mMetricsFinalized = true; @@ -597,7 +603,7 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai for (int i = 0; i < mJankInfos.size(); i++) { JankInfo info = mJankInfos.valueAt(i); final boolean isFirstDrawn = !mSurfaceOnly && info.isFirstFrame; - if (isFirstDrawn) { + if (isFirstDrawn && !Flags.ignoreHwuiIsFirstFrame()) { continue; } if (info.frameVsyncId > mEndVsyncId) { @@ -606,16 +612,12 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai if (info.surfaceControlCallbackFired) { totalFramesCount++; boolean missedFrame = false; - if ((info.jankType & JANK_APP_DEADLINE_MISSED) != 0) { + if ((info.jankType & JANK_APPLICATION) != 0) { Log.w(TAG, "Missed App frame:" + info + ", CUJ=" + name); missedAppFramesCount++; missedFrame = true; } - if ((info.jankType & DISPLAY_HAL) != 0 - || (info.jankType & JANK_SURFACEFLINGER_DEADLINE_MISSED) != 0 - || (info.jankType & JANK_SURFACEFLINGER_GPU_DEADLINE_MISSED) != 0 - || (info.jankType & SURFACE_FLINGER_SCHEDULING) != 0 - || (info.jankType & PREDICTION_ERROR) != 0) { + if ((info.jankType & JANK_COMPOSER) != 0) { Log.w(TAG, "Missed SF frame:" + info + ", CUJ=" + name); missedSfFramesCount++; missedFrame = true; @@ -634,7 +636,7 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai } // TODO (b/174755489): Early latch currently gets fired way too often, so we have // to ignore it for now. - if (!mSurfaceOnly && !info.hwuiCallbackFired) { + if (mObserver != null && !info.hwuiCallbackFired) { markEvent("FT#MissedHWUICallback", info.frameVsyncId); Log.w(TAG, "Missing HWUI jank callback for vsyncId: " + info.frameVsyncId + ", CUJ=" + name); @@ -760,7 +762,9 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai * @param observer observer */ public void addObserver(HardwareRendererObserver observer) { - mRenderer.addObserver(observer); + if (observer != null) { + mRenderer.addObserver(observer); + } } /** @@ -768,7 +772,9 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai * @param observer observer */ public void removeObserver(HardwareRendererObserver observer) { - mRenderer.removeObserver(observer); + if (observer != null) { + mRenderer.removeObserver(observer); + } } } diff --git a/core/java/com/android/internal/jank/flags.aconfig b/core/java/com/android/internal/jank/flags.aconfig index 82f50ae848b3b0cda0ee88f7b6a7efa8485fcbe2..287ad1856258f791de77c7aae051ab5cf345666f 100644 --- a/core/java/com/android/internal/jank/flags.aconfig +++ b/core/java/com/android/internal/jank/flags.aconfig @@ -8,3 +8,10 @@ flag { bug: "354763298" is_fixed_read_only: true } +flag { + name: "ignore_hwui_is_first_frame" + namespace: "window_surfaces" + description: "Whether to remove the usage of the HWUI 'is first frame' flag to ignore jank" + bug: "354763298" + is_fixed_read_only: true +} diff --git a/core/java/com/android/internal/os/ApplicationSharedMemory.java b/core/java/com/android/internal/os/ApplicationSharedMemory.java index 84f713edcc1ab675bc27a70306d48a8f91d09dca..e6ea29e483f1903d97f4c623ec338b8e65052e43 100644 --- a/core/java/com/android/internal/os/ApplicationSharedMemory.java +++ b/core/java/com/android/internal/os/ApplicationSharedMemory.java @@ -21,6 +21,7 @@ import android.util.Log; import com.android.internal.annotations.VisibleForTesting; import dalvik.annotation.optimization.CriticalNative; +import dalvik.annotation.optimization.FastNative; import libcore.io.IoUtils; @@ -293,4 +294,34 @@ public class ApplicationSharedMemory implements AutoCloseable { throw new IllegalStateException("Not mutable"); } } + + /** + * Return true if the memory has been mapped. This never throws. + */ + public boolean isMapped() { + return mPtr != 0; + } + + /** + * Return true if the memory is mapped and mutable. This never throws. Note that it returns + * false if the memory is not mapped. + */ + public boolean isMutable() { + return isMapped() && mMutable; + } + + /** + * Provide access to the nonce block needed by {@link PropertyInvalidatedCache}. This method + * returns 0 if the shared memory is not (yet) mapped. + */ + public long getSystemNonceBlock() { + return isMapped() ? nativeGetSystemNonceBlock(mPtr) : 0; + } + + /** + * Return a pointer to the system nonce cache in the shared memory region. The method is + * idempotent. + */ + @FastNative + private static native long nativeGetSystemNonceBlock(long ptr); } diff --git a/core/java/com/android/internal/os/BatteryStatsHistory.java b/core/java/com/android/internal/os/BatteryStatsHistory.java index 07aa7206c0e7a411a575e2798c44c578de2cc202..b56aadd366d58478934502f3be5a52cadbdab032 100644 --- a/core/java/com/android/internal/os/BatteryStatsHistory.java +++ b/core/java/com/android/internal/os/BatteryStatsHistory.java @@ -1770,6 +1770,10 @@ public class BatteryStatsHistory { @GuardedBy("this") private void writeHistoryItem(long elapsedRealtimeMs, long uptimeMs, HistoryItem cur) { + if (cur.eventCode != HistoryItem.EVENT_NONE && cur.eventTag.string == null) { + Slog.wtfStack(TAG, "Event " + Integer.toHexString(cur.eventCode) + " without a name"); + } + if (mTracer != null && mTracer.tracingEnabled()) { recordTraceEvents(cur.eventCode, cur.eventTag); recordTraceCounters(mTraceLastState, cur.states, STATE1_TRACE_MASK, @@ -2266,6 +2270,7 @@ public class BatteryStatsHistory { private int writeHistoryTag(HistoryTag tag) { if (tag.string == null) { Slog.wtfStack(TAG, "writeHistoryTag called with null name"); + tag.string = ""; } final int stringLength = tag.string.length(); diff --git a/core/java/com/android/internal/os/LongArrayMultiStateCounter.java b/core/java/com/android/internal/os/LongArrayMultiStateCounter.java index dfb2884044f55524813d343401c89d4b7103523c..489721fbc10e481b2144ef81a3cea7e577813e7e 100644 --- a/core/java/com/android/internal/os/LongArrayMultiStateCounter.java +++ b/core/java/com/android/internal/os/LongArrayMultiStateCounter.java @@ -105,7 +105,7 @@ public final class LongArrayMultiStateCounter implements Parcelable { public void setValues(long[] array) { if (array.length != mLength) { throw new IllegalArgumentException( - "Invalid array length: " + mLength + ", expected: " + mLength); + "Invalid array length: " + array.length + ", expected: " + mLength); } native_setValues(mNativeObject, array); } @@ -116,7 +116,7 @@ public final class LongArrayMultiStateCounter implements Parcelable { public void getValues(long[] array) { if (array.length != mLength) { throw new IllegalArgumentException( - "Invalid array length: " + mLength + ", expected: " + mLength); + "Invalid array length: " + array.length + ", expected: " + mLength); } native_getValues(mNativeObject, array); } @@ -347,6 +347,11 @@ public final class LongArrayMultiStateCounter implements Parcelable { throw new IllegalArgumentException( "State: " + state + ", outside the range: [0-" + mStateCount + "]"); } + if (longArrayContainer.mLength != mLength) { + throw new IllegalArgumentException( + "Invalid array length: " + longArrayContainer.mLength + + ", expected: " + mLength); + } native_getCounts(mNativeObject, longArrayContainer.mNativeObject, state); } diff --git a/services/core/java/com/android/server/stats/pull/ProcfsMemoryUtil.java b/core/java/com/android/internal/os/ProcfsMemoryUtil.java similarity index 60% rename from services/core/java/com/android/server/stats/pull/ProcfsMemoryUtil.java rename to core/java/com/android/internal/os/ProcfsMemoryUtil.java index 6cb6dc07f8b85abab725f7fa29838021e483f00c..382f6c4a8a16678a6dd5e605f1ca8973072ad17e 100644 --- a/services/core/java/com/android/server/stats/pull/ProcfsMemoryUtil.java +++ b/core/java/com/android/internal/os/ProcfsMemoryUtil.java @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.server.stats.pull; +package com.android.internal.os; -import static android.os.Process.PROC_OUT_STRING; +import static android.os.Process.*; import android.annotation.Nullable; import android.os.Process; @@ -23,6 +23,7 @@ import android.util.SparseArray; public final class ProcfsMemoryUtil { private static final int[] CMDLINE_OUT = new int[] { PROC_OUT_STRING }; + private static final int[] OOM_SCORE_ADJ_OUT = new int[] { PROC_NEWLINE_TERM | PROC_OUT_LONG }; private static final String[] STATUS_KEYS = new String[] { "Uid:", "VmHWM:", @@ -38,17 +39,34 @@ public final class ProcfsMemoryUtil { private ProcfsMemoryUtil() {} /** - * Reads memory stats of a process from procfs. Returns values of the VmHWM, VmRss, AnonRSS, - * VmSwap, RssShmem fields in /proc/pid/status in kilobytes or null if not available. + * Reads memory stats of a process from procfs. + * + * Returns values of the VmHWM, VmRss, AnonRSS, VmSwap, RssShmem fields in + * /proc/pid/status in kilobytes or null if not available. */ @Nullable public static MemorySnapshot readMemorySnapshotFromProcfs(int pid) { + return readMemorySnapshotFromProcfs("/proc/" + pid + "/status"); + } + + /** + * Reads memory stats of the current process from procfs. + * + * Returns values of the VmHWM, VmRss, AnonRSS, VmSwap, RssShmem fields in + * /proc/self/status in kilobytes or null if not available. + */ + @Nullable + public static MemorySnapshot readMemorySnapshotFromProcfs() { + return readMemorySnapshotFromProcfs("/proc/self/status"); + } + + private static MemorySnapshot readMemorySnapshotFromProcfs(String path) { long[] output = new long[STATUS_KEYS.length]; output[0] = -1; output[3] = -1; output[4] = -1; output[5] = -1; - Process.readProcLines("/proc/" + pid + "/status", STATUS_KEYS, output); + Process.readProcLines(path, STATUS_KEYS, output); if (output[0] == -1 || output[3] == -1 || output[4] == -1 || output[5] == -1) { // Could not open or parse file. return null; @@ -70,13 +88,53 @@ public final class ProcfsMemoryUtil { * if the file is not available. */ public static String readCmdlineFromProcfs(int pid) { + return readCmdlineFromProcfs("/proc/" + pid + "/cmdline"); + } + + /** + * Reads cmdline of the current process from procfs. + * + * Returns content of /proc/pid/cmdline (e.g. /system/bin/statsd) or an empty string + * if the file is not available. + */ + public static String readCmdlineFromProcfs() { + return readCmdlineFromProcfs("/proc/self/cmdline"); + } + + private static String readCmdlineFromProcfs(String path) { String[] cmdline = new String[1]; - if (!Process.readProcFile("/proc/" + pid + "/cmdline", CMDLINE_OUT, cmdline, null, null)) { + if (!Process.readProcFile(path, CMDLINE_OUT, cmdline, null, null)) { return ""; } return cmdline[0]; } + /** + * Reads oom_score_adj of a process from procfs + * + * Returns content of /proc/pid/oom_score_adj. Defaults to 0 if reading fails. + */ + public static int readOomScoreAdjFromProcfs(int pid) { + return readOomScoreAdjFromProcfs("/proc/" + pid + "/oom_score_adj"); + } + + /** + * Reads oom_score_adj of the current process from procfs + * + * Returns content of /proc/pid/oom_score_adj. Defaults to 0 if reading fails. + */ + public static int readOomScoreAdjFromProcfs() { + return readOomScoreAdjFromProcfs("/proc/self/oom_score_adj"); + } + + private static int readOomScoreAdjFromProcfs(String path) { + long[] oom_score_adj = new long[1]; + if (Process.readProcFile(path, OOM_SCORE_ADJ_OUT, null, oom_score_adj, null)) { + return (int)oom_score_adj[0]; + } + return 0; + } + /** * Scans all /proc/pid/cmdline entries and returns a mapping between pid and cmdline. */ @@ -109,7 +167,7 @@ public final class ProcfsMemoryUtil { /** Reads and parses selected entries of /proc/vmstat. */ @Nullable - static VmStat readVmStat() { + public static VmStat readVmStat() { long[] vmstat = new long[VMSTAT_KEYS.length]; vmstat[0] = -1; Process.readProcLines("/proc/vmstat", VMSTAT_KEYS, vmstat); @@ -121,7 +179,7 @@ public final class ProcfsMemoryUtil { return result; } - static final class VmStat { + public static final class VmStat { public int oomKillCount; } } diff --git a/core/java/com/android/internal/os/flags.aconfig b/core/java/com/android/internal/os/flags.aconfig index 07df24843d9d366ff1ab7d0c37a9fbdac6c8a016..25a9fbc8476c6c78fb194efef8004cb76d66d827 100644 --- a/core/java/com/android/internal/os/flags.aconfig +++ b/core/java/com/android/internal/os/flags.aconfig @@ -1,6 +1,48 @@ package: "com.android.internal.os" container: "system" +flag { + namespace: "ravenwood" + name: "ravenwood_flag_rw_1" + description: "Ravenwood test RW flag 1" + bug: "311370221" + metadata { + purpose: PURPOSE_BUGFIX + } +} + +flag { + namespace: "ravenwood" + name: "ravenwood_flag_rw_2" + description: "Ravenwood test RW flag 2" + bug: "311370221" + metadata { + purpose: PURPOSE_BUGFIX + } +} + +flag { + namespace: "ravenwood" + name: "ravenwood_flag_ro_1" + description: "Ravenwood test RO flag 1" + is_fixed_read_only: true + bug: "311370221" + metadata { + purpose: PURPOSE_BUGFIX + } +} + +flag { + namespace: "ravenwood" + name: "ravenwood_flag_ro_2" + description: "Ravenwood test RO flag 2" + is_fixed_read_only: true + bug: "311370221" + metadata { + purpose: PURPOSE_BUGFIX + } +} + flag { name: "enable_apache_http_legacy_preload" namespace: "system_performance" diff --git a/core/java/com/android/internal/os/logging/MetricsLoggerWrapper.java b/core/java/com/android/internal/os/logging/MetricsLoggerWrapper.java index b42ea7d0b76944173d3a6be7f005e9ff13e7455d..0e0098ebf0741d96d25e44a0d73715ad806a833f 100644 --- a/core/java/com/android/internal/os/logging/MetricsLoggerWrapper.java +++ b/core/java/com/android/internal/os/logging/MetricsLoggerWrapper.java @@ -16,9 +16,15 @@ package com.android.internal.os.logging; +import android.app.Application; +import android.os.Process; +import android.util.Log; import android.view.WindowManager.LayoutParams; +import com.android.internal.os.ProcfsMemoryUtil; import com.android.internal.util.FrameworkStatsLog; +import java.util.Collection; +import libcore.util.NativeAllocationRegistry; /** * Used to wrap different logging calls in one, so that client side code base is clean and more @@ -49,4 +55,46 @@ public class MetricsLoggerWrapper { } } } + + public static void logPostGcMemorySnapshot() { + if (!com.android.libcore.readonly.Flags.nativeMetrics()) { + return; + } + int pid = Process.myPid(); + String processName = Application.getProcessName(); + Collection metrics = + NativeAllocationRegistry.getMetrics(); + int nMetrics = metrics.size(); + + String[] classNames = new String[nMetrics]; + long[] mallocedCount = new long[nMetrics]; + long[] mallocedBytes = new long[nMetrics]; + long[] nonmallocedCount = new long[nMetrics]; + long[] nonmallocedBytes = new long[nMetrics]; + + int i = 0; + for (NativeAllocationRegistry.Metrics m : metrics) { + classNames[i] = m.getClassName(); + mallocedCount[i] = m.getMallocedCount(); + mallocedBytes[i] = m.getMallocedBytes(); + nonmallocedCount[i] = m.getNonmallocedCount(); + nonmallocedBytes[i] = m.getNonmallocedBytes(); + i++; + } + + ProcfsMemoryUtil.MemorySnapshot m = ProcfsMemoryUtil.readMemorySnapshotFromProcfs(); + int oom_score_adj = ProcfsMemoryUtil.readOomScoreAdjFromProcfs(); + FrameworkStatsLog.write(FrameworkStatsLog.POSTGC_MEMORY_SNAPSHOT, + m.uid, processName, pid, + oom_score_adj, + m.rssInKilobytes, + m.anonRssInKilobytes, + m.swapInKilobytes, + m.anonRssInKilobytes + m.swapInKilobytes, + classNames, + mallocedCount, + mallocedBytes, + nonmallocedCount, + nonmallocedBytes); + } } diff --git a/core/java/com/android/internal/protolog/AutoClosableProtoInputStream.java b/core/java/com/android/internal/protolog/AutoClosableProtoInputStream.java new file mode 100644 index 0000000000000000000000000000000000000000..1acb34f73002fb21510286a3b191fd7cbb21a1a6 --- /dev/null +++ b/core/java/com/android/internal/protolog/AutoClosableProtoInputStream.java @@ -0,0 +1,56 @@ +/* + * 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.protolog; + +import android.annotation.NonNull; +import android.annotation.Nullable; +import android.util.proto.ProtoInputStream; + +import java.io.FileInputStream; +import java.io.IOException; + +public final class AutoClosableProtoInputStream implements AutoCloseable { + @NonNull + private final ProtoInputStream mProtoInputStream; + @Nullable + private final FileInputStream mFileInputStream; + + public AutoClosableProtoInputStream(@NonNull FileInputStream fileInputStream) { + mProtoInputStream = new ProtoInputStream(fileInputStream); + mFileInputStream = fileInputStream; + } + + public AutoClosableProtoInputStream(@NonNull byte[] input) { + mProtoInputStream = new ProtoInputStream(input); + mFileInputStream = null; + } + + /** + * @return the ProtoInputStream this class is wrapping + */ + @NonNull + public ProtoInputStream get() { + return mProtoInputStream; + } + + @Override + public void close() throws IOException { + if (mFileInputStream != null) { + mFileInputStream.close(); + } + } +} diff --git a/core/java/com/android/internal/protolog/NoViewerConfigProtoLogImpl.java b/core/java/com/android/internal/protolog/NoViewerConfigProtoLogImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..1598766412dd5c0933711b7525be834f1de2f598 --- /dev/null +++ b/core/java/com/android/internal/protolog/NoViewerConfigProtoLogImpl.java @@ -0,0 +1,90 @@ +/* + * 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.protolog; + +import android.text.TextUtils; +import android.util.Log; + +import com.android.internal.protolog.common.ILogger; +import com.android.internal.protolog.common.IProtoLog; +import com.android.internal.protolog.common.IProtoLogGroup; +import com.android.internal.protolog.common.LogLevel; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * Class should only be used as a temporary solution to missing viewer config file on device. + * In particular this class should only be initialized in Robolectric tests, if it's being used + * otherwise please report it. + * + * @deprecated + */ +@Deprecated +public class NoViewerConfigProtoLogImpl implements IProtoLog { + private static final String LOG_TAG = "ProtoLog"; + + @Override + public void log(LogLevel logLevel, IProtoLogGroup group, long messageHash, int paramsMask, + Object[] args) { + Log.w(LOG_TAG, "ProtoLogging is not available due to missing viewer config file..."); + logMessage(logLevel, group.getTag(), "PROTOLOG#" + messageHash + "(" + + Arrays.stream(args).map(Object::toString).collect(Collectors.joining()) + ")"); + } + + @Override + public void log(LogLevel logLevel, IProtoLogGroup group, String messageString, Object... args) { + logMessage(logLevel, group.getTag(), TextUtils.formatSimple(messageString, args)); + } + + @Override + public boolean isProtoEnabled() { + return false; + } + + @Override + public int startLoggingToLogcat(String[] groups, ILogger logger) { + return 0; + } + + @Override + public int stopLoggingToLogcat(String[] groups, ILogger logger) { + return 0; + } + + @Override + public boolean isEnabled(IProtoLogGroup group, LogLevel level) { + return false; + } + + @Override + public List getRegisteredGroups() { + return List.of(); + } + + private void logMessage(LogLevel logLevel, String tag, String message) { + switch (logLevel) { + case VERBOSE -> Log.v(tag, message); + case INFO -> Log.i(tag, message); + case DEBUG -> Log.d(tag, message); + case WARN -> Log.w(tag, message); + case ERROR -> Log.e(tag, message); + case WTF -> Log.wtf(tag, message); + } + } +} diff --git a/core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java b/core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java index a037cb421b0c081d74c4d32d86c662b785a7b1dc..a1c987f79304ca77f19d86fcd4ff7ca141f41d32 100644 --- a/core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java +++ b/core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java @@ -60,18 +60,16 @@ import android.util.ArraySet; import android.util.Log; import android.util.LongArray; import android.util.Slog; -import android.util.proto.ProtoInputStream; import android.util.proto.ProtoOutputStream; import com.android.internal.annotations.VisibleForTesting; +import com.android.internal.protolog.ProtoLogConfigurationServiceImpl.RegisterClientArgs; import com.android.internal.protolog.common.ILogger; import com.android.internal.protolog.common.IProtoLog; import com.android.internal.protolog.common.IProtoLogGroup; import com.android.internal.protolog.common.LogDataType; import com.android.internal.protolog.common.LogLevel; -import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.PrintWriter; import java.io.StringWriter; import java.util.ArrayList; @@ -93,26 +91,18 @@ import java.util.stream.Stream; /** * A service for the ProtoLog logging system. */ -public class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProtoLog { +public abstract class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProtoLog { private static final String LOG_TAG = "ProtoLog"; public static final String NULL_STRING = "null"; private final AtomicInteger mTracingInstances = new AtomicInteger(); @NonNull - private final ProtoLogDataSource mDataSource; - @Nullable - private final ProtoLogViewerConfigReader mViewerConfigReader; - @Deprecated - @Nullable - private final ViewerConfigInputStreamProvider mViewerConfigInputStreamProvider; + protected final ProtoLogDataSource mDataSource; @NonNull - private final TreeMap mLogGroups = new TreeMap<>(); + protected final TreeMap mLogGroups = new TreeMap<>(); @NonNull private final Runnable mCacheUpdater; - @Nullable // null when the flag android.tracing.client_side_proto_logging is not flipped - private final IProtoLogConfigurationService mProtoLogConfigurationService; - @NonNull private final int[] mDefaultLogLevelCounts = new int[LogLevel.values().length]; @NonNull @@ -121,68 +111,15 @@ public class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProto private final Map mCollectStackTraceGroupCounts = new ArrayMap<>(); private final Lock mBackgroundServiceLock = new ReentrantLock(); - private ExecutorService mBackgroundLoggingService = Executors.newSingleThreadExecutor(); - - public PerfettoProtoLogImpl(@NonNull IProtoLogGroup[] groups) - throws ServiceManager.ServiceNotFoundException { - this(null, null, null, () -> {}, groups); - } - - public PerfettoProtoLogImpl(@NonNull Runnable cacheUpdater, @NonNull IProtoLogGroup[] groups) - throws ServiceManager.ServiceNotFoundException { - this(null, null, null, cacheUpdater, groups); - } - - public PerfettoProtoLogImpl( - @NonNull String viewerConfigFilePath, - @NonNull Runnable cacheUpdater, - @NonNull IProtoLogGroup[] groups) throws ServiceManager.ServiceNotFoundException { - this(viewerConfigFilePath, - null, - new ProtoLogViewerConfigReader(() -> { - try { - return new ProtoInputStream(new FileInputStream(viewerConfigFilePath)); - } catch (FileNotFoundException e) { - throw new RuntimeException( - "Failed to load viewer config file " + viewerConfigFilePath, e); - } - }), - cacheUpdater, groups); - } - - @Deprecated - @VisibleForTesting - public PerfettoProtoLogImpl( - @Nullable ViewerConfigInputStreamProvider viewerConfigInputStreamProvider, - @Nullable ProtoLogViewerConfigReader viewerConfigReader, - @NonNull Runnable cacheUpdater, - @NonNull IProtoLogGroup[] groups, - @NonNull ProtoLogDataSourceBuilder dataSourceBuilder, - @NonNull ProtoLogConfigurationService configurationService) { - this(null, viewerConfigInputStreamProvider, viewerConfigReader, cacheUpdater, - groups, dataSourceBuilder, configurationService); - } + protected ExecutorService mBackgroundLoggingService = Executors.newSingleThreadExecutor(); - @VisibleForTesting - public PerfettoProtoLogImpl( - @Nullable String viewerConfigFilePath, - @Nullable ProtoLogViewerConfigReader viewerConfigReader, - @NonNull Runnable cacheUpdater, - @NonNull IProtoLogGroup[] groups, - @NonNull ProtoLogDataSourceBuilder dataSourceBuilder, - @NonNull ProtoLogConfigurationService configurationService) { - this(viewerConfigFilePath, null, viewerConfigReader, cacheUpdater, - groups, dataSourceBuilder, configurationService); - } + // Set to true once this is ready to accept protolog to logcat requests. + private boolean mLogcatReady = false; - private PerfettoProtoLogImpl( - @Nullable String viewerConfigFilePath, - @Nullable ViewerConfigInputStreamProvider viewerConfigInputStreamProvider, - @Nullable ProtoLogViewerConfigReader viewerConfigReader, + protected PerfettoProtoLogImpl( @NonNull Runnable cacheUpdater, @NonNull IProtoLogGroup[] groups) throws ServiceManager.ServiceNotFoundException { - this(viewerConfigFilePath, viewerConfigInputStreamProvider, viewerConfigReader, - cacheUpdater, groups, + this(cacheUpdater, groups, ProtoLogDataSource::new, android.tracing.Flags.clientSideProtoLogging() ? IProtoLogConfigurationService.Stub.asInterface( @@ -191,19 +128,11 @@ public class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProto ); } - private PerfettoProtoLogImpl( - @Nullable String viewerConfigFilePath, - @Nullable ViewerConfigInputStreamProvider viewerConfigInputStreamProvider, - @Nullable ProtoLogViewerConfigReader viewerConfigReader, + protected PerfettoProtoLogImpl( @NonNull Runnable cacheUpdater, @NonNull IProtoLogGroup[] groups, @NonNull ProtoLogDataSourceBuilder dataSourceBuilder, @Nullable IProtoLogConfigurationService configurationService) { - if (viewerConfigFilePath != null && viewerConfigInputStreamProvider != null) { - throw new RuntimeException("Only one of viewerConfigFilePath and " - + "viewerConfigInputStreamProvider can be set"); - } - mDataSource = dataSourceBuilder.build( this::onTracingInstanceStart, this::onTracingFlush, @@ -219,55 +148,33 @@ public class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProto // for some messages logged right after the construction of this class. mDataSource.register(params); - if (viewerConfigInputStreamProvider == null && viewerConfigFilePath != null) { - viewerConfigInputStreamProvider = new ViewerConfigInputStreamProvider() { - @NonNull - @Override - public ProtoInputStream getInputStream() { - try { - return new ProtoInputStream(new FileInputStream(viewerConfigFilePath)); - } catch (FileNotFoundException e) { - throw new RuntimeException( - "Failed to load viewer config file " + viewerConfigFilePath, e); - } - } - }; - } - - this.mViewerConfigInputStreamProvider = viewerConfigInputStreamProvider; - this.mViewerConfigReader = viewerConfigReader; this.mCacheUpdater = cacheUpdater; registerGroupsLocally(groups); if (android.tracing.Flags.clientSideProtoLogging()) { - mProtoLogConfigurationService = configurationService; - Objects.requireNonNull(mProtoLogConfigurationService, + Objects.requireNonNull(configurationService, "A null ProtoLog Configuration Service was provided!"); try { - var args = new ProtoLogConfigurationServiceImpl.RegisterClientArgs(); - - if (viewerConfigFilePath != null) { - args.setViewerConfigFile(viewerConfigFilePath); - } + var args = createConfigurationServiceRegisterClientArgs(); final var groupArgs = Stream.of(groups) - .map(group -> new ProtoLogConfigurationServiceImpl.RegisterClientArgs + .map(group -> new RegisterClientArgs .GroupConfig(group.name(), group.isLogToLogcat())) - .toArray(ProtoLogConfigurationServiceImpl - .RegisterClientArgs.GroupConfig[]::new); + .toArray(RegisterClientArgs.GroupConfig[]::new); args.setGroups(groupArgs); - mProtoLogConfigurationService.registerClient(this, args); + configurationService.registerClient(this, args); } catch (RemoteException e) { throw new RuntimeException("Failed to register ProtoLog client"); } - } else { - mProtoLogConfigurationService = null; } } + @NonNull + protected abstract RegisterClientArgs createConfigurationServiceRegisterClientArgs(); + /** * Main log method, do not call directly. */ @@ -334,9 +241,6 @@ public class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProto * @return status code */ public int startLoggingToLogcat(String[] groups, @NonNull ILogger logger) { - if (mViewerConfigReader != null) { - mViewerConfigReader.loadViewerConfig(groups, logger); - } return setTextLogging(true, logger, groups); } @@ -347,9 +251,6 @@ public class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProto * @return status code */ public int stopLoggingToLogcat(String[] groups, @NonNull ILogger logger) { - if (mViewerConfigReader != null) { - mViewerConfigReader.unloadViewerConfig(groups, logger); - } return setTextLogging(false, logger, groups); } @@ -372,21 +273,8 @@ public class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProto // we might want to manually specify an id for the group with a collision verifyNoCollisionsOrDuplicates(protoLogGroups); - final var groupsLoggingToLogcat = new ArrayList(); for (IProtoLogGroup protoLogGroup : protoLogGroups) { mLogGroups.put(protoLogGroup.name(), protoLogGroup); - - if (protoLogGroup.isLogToLogcat()) { - groupsLoggingToLogcat.add(protoLogGroup.name()); - } - } - - if (mViewerConfigReader != null) { - // Load in background to avoid delay in boot process. - // The caveat is that any log message that is also logged to logcat will not be - // successfully decoded until this completes. - mBackgroundLoggingService.execute(() -> mViewerConfigReader - .loadViewerConfig(groupsLoggingToLogcat.toArray(new String[0]))); } } @@ -403,6 +291,10 @@ public class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProto } } + protected void readyToLogToLogcat() { + mLogcatReady = true; + } + /** * Responds to a shell command. */ @@ -499,57 +391,21 @@ public class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProto } @Deprecated - private void dumpViewerConfig() { - if (mViewerConfigInputStreamProvider == null) { - // No viewer config available - return; - } - - Log.d(LOG_TAG, "Dumping viewer config to trace"); + abstract void dumpViewerConfig(); - Utils.dumpViewerConfig(mDataSource, mViewerConfigInputStreamProvider); - - Log.d(LOG_TAG, "Dumped viewer config to trace"); - } + @NonNull + abstract String getLogcatMessageString(@NonNull Message message); - private void logToLogcat(String tag, LogLevel level, Message message, + private void logToLogcat(@NonNull String tag, @NonNull LogLevel level, @NonNull Message message, @Nullable Object[] args) { - String messageString; - if (mViewerConfigReader == null) { - messageString = message.getMessage(); - - if (messageString == null) { - Log.e(LOG_TAG, "Failed to decode message for logcat. " - + "Message not available without ViewerConfig to decode the hash."); - } - } else { - messageString = message.getMessage(mViewerConfigReader); - - if (messageString == null) { - Log.e(LOG_TAG, "Failed to decode message for logcat. " - + "Message hash either not available in viewerConfig file or " - + "not loaded into memory from file before decoding."); - } - } - - if (messageString == null) { - StringBuilder builder = new StringBuilder("UNKNOWN MESSAGE"); - if (args != null) { - builder.append(" args = ("); - builder.append(String.join(", ", Arrays.stream(args) - .map(it -> { - if (it == null) { - return "null"; - } else { - return it.toString(); - } - }).toList())); - builder.append(")"); - } - messageString = builder.toString(); - args = new Object[0]; + if (!mLogcatReady) { + Log.w(LOG_TAG, "Trying to log a protolog message with hash " + + message.getMessageHash() + " to logcat before the service is ready to accept " + + "such requests."); + return; } + String messageString = getLogcatMessageString(message); logToLogcat(tag, level, messageString, args); } diff --git a/core/java/com/android/internal/protolog/ProcessedPerfettoProtoLogImpl.java b/core/java/com/android/internal/protolog/ProcessedPerfettoProtoLogImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..febe1f3a72ac18b6a587ea40e29727b916606e2e --- /dev/null +++ b/core/java/com/android/internal/protolog/ProcessedPerfettoProtoLogImpl.java @@ -0,0 +1,172 @@ +/* + * 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.protolog; + +import android.annotation.NonNull; +import android.annotation.Nullable; +import android.os.ServiceManager; +import android.util.Log; + +import com.android.internal.annotations.VisibleForTesting; +import com.android.internal.protolog.ProtoLogConfigurationServiceImpl.RegisterClientArgs; +import com.android.internal.protolog.common.ILogger; +import com.android.internal.protolog.common.IProtoLogGroup; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.util.ArrayList; + +public class ProcessedPerfettoProtoLogImpl extends PerfettoProtoLogImpl { + private static final String LOG_TAG = "PerfettoProtoLogImpl"; + + @NonNull + private final ProtoLogViewerConfigReader mViewerConfigReader; + @Deprecated + @NonNull + private final ViewerConfigInputStreamProvider mViewerConfigInputStreamProvider; + @NonNull + private final String mViewerConfigFilePath; + + public ProcessedPerfettoProtoLogImpl( + @NonNull String viewerConfigFilePath, + @NonNull Runnable cacheUpdater, + @NonNull IProtoLogGroup[] groups) throws ServiceManager.ServiceNotFoundException { + this(viewerConfigFilePath, new ViewerConfigInputStreamProvider() { + @NonNull + @Override + public AutoClosableProtoInputStream getInputStream() { + try { + final var protoFileInputStream = + new FileInputStream(viewerConfigFilePath); + return new AutoClosableProtoInputStream(protoFileInputStream); + } catch (FileNotFoundException e) { + throw new RuntimeException( + "Failed to load viewer config file " + viewerConfigFilePath, e); + } + } + }, + cacheUpdater, groups); + } + + @VisibleForTesting + public ProcessedPerfettoProtoLogImpl( + @NonNull String viewerConfigFilePath, + @NonNull ViewerConfigInputStreamProvider viewerConfigInputStreamProvider, + @NonNull Runnable cacheUpdater, + @NonNull IProtoLogGroup[] groups) throws ServiceManager.ServiceNotFoundException { + super(cacheUpdater, groups); + + this.mViewerConfigFilePath = viewerConfigFilePath; + + this.mViewerConfigInputStreamProvider = viewerConfigInputStreamProvider; + this.mViewerConfigReader = new ProtoLogViewerConfigReader(viewerConfigInputStreamProvider); + + loadLogcatGroupsViewerConfig(groups); + } + + @VisibleForTesting + public ProcessedPerfettoProtoLogImpl( + @NonNull String viewerConfigFilePath, + @NonNull ViewerConfigInputStreamProvider viewerConfigInputStreamProvider, + @NonNull ProtoLogViewerConfigReader viewerConfigReader, + @NonNull Runnable cacheUpdater, + @NonNull IProtoLogGroup[] groups, + @NonNull ProtoLogDataSourceBuilder dataSourceBuilder, + @Nullable IProtoLogConfigurationService configurationService) + throws ServiceManager.ServiceNotFoundException { + super(cacheUpdater, groups, dataSourceBuilder, configurationService); + + this.mViewerConfigFilePath = viewerConfigFilePath; + + this.mViewerConfigInputStreamProvider = viewerConfigInputStreamProvider; + this.mViewerConfigReader = viewerConfigReader; + + loadLogcatGroupsViewerConfig(groups); + } + + @NonNull + @Override + protected RegisterClientArgs createConfigurationServiceRegisterClientArgs() { + return new RegisterClientArgs() + .setViewerConfigFile(mViewerConfigFilePath); + } + + /** + * Start text logging + * @param groups Groups to start text logging for + * @param logger A logger to write status updates to + * @return status code + */ + @Override + public int startLoggingToLogcat(String[] groups, @NonNull ILogger logger) { + mViewerConfigReader.loadViewerConfig(groups, logger); + return super.startLoggingToLogcat(groups, logger); + } + + /** + * Stop text logging + * @param groups Groups to start text logging for + * @param logger A logger to write status updates to + * @return status code + */ + @Override + public int stopLoggingToLogcat(String[] groups, @NonNull ILogger logger) { + mViewerConfigReader.unloadViewerConfig(groups, logger); + return super.stopLoggingToLogcat(groups, logger); + } + + @Deprecated + @Override + void dumpViewerConfig() { + Log.d(LOG_TAG, "Dumping viewer config to trace"); + Utils.dumpViewerConfig(mDataSource, mViewerConfigInputStreamProvider); + Log.d(LOG_TAG, "Dumped viewer config to trace"); + } + + @NonNull + @Override + String getLogcatMessageString(@NonNull Message message) { + String messageString; + messageString = message.getMessage(mViewerConfigReader); + + if (messageString == null) { + throw new RuntimeException("Failed to decode message for logcat. " + + "Message hash (" + message.getMessageHash() + ") either not available in " + + "viewerConfig file (" + mViewerConfigFilePath + ") or " + + "not loaded into memory from file before decoding."); + } + + return messageString; + } + + private void loadLogcatGroupsViewerConfig(@NonNull IProtoLogGroup[] protoLogGroups) { + final var groupsLoggingToLogcat = new ArrayList(); + for (IProtoLogGroup protoLogGroup : protoLogGroups) { + if (protoLogGroup.isLogToLogcat()) { + groupsLoggingToLogcat.add(protoLogGroup.name()); + } + } + + // Load in background to avoid delay in boot process. + // The caveat is that any log message that is also logged to logcat will not be + // successfully decoded until this completes. + mBackgroundLoggingService.execute(() -> { + mViewerConfigReader.loadViewerConfig(groupsLoggingToLogcat.toArray(new String[0])); + readyToLogToLogcat(); + }); + } +} diff --git a/core/java/com/android/internal/protolog/ProtoLog.java b/core/java/com/android/internal/protolog/ProtoLog.java index 60213b1830c627d993a25e345b1cb7986c589993..d117e93d7de7d1521246786c7525c6c1bbb0bebf 100644 --- a/core/java/com/android/internal/protolog/ProtoLog.java +++ b/core/java/com/android/internal/protolog/ProtoLog.java @@ -70,16 +70,16 @@ public class ProtoLog { // directly to the generated tracing implementations. if (android.tracing.Flags.perfettoProtologTracing()) { synchronized (sInitLock) { + final var allGroups = new HashSet<>(Arrays.stream(groups).toList()); if (sProtoLogInstance != null) { // The ProtoLog instance has already been initialized in this process final var alreadyRegisteredGroups = sProtoLogInstance.getRegisteredGroups(); - final var allGroups = new HashSet<>(alreadyRegisteredGroups); - allGroups.addAll(Arrays.stream(groups).toList()); - groups = allGroups.toArray(new IProtoLogGroup[0]); + allGroups.addAll(alreadyRegisteredGroups); } try { - sProtoLogInstance = new PerfettoProtoLogImpl(groups); + sProtoLogInstance = new UnprocessedPerfettoProtoLogImpl( + allGroups.toArray(new IProtoLogGroup[0])); } catch (ServiceManager.ServiceNotFoundException e) { throw new RuntimeException(e); } diff --git a/core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java b/core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java index 8d37899f8602d4b6c3b0088132afc392178c6dd8..e9a8770deb73abdae9be4df411d95f340af771e7 100644 --- a/core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java +++ b/core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java @@ -379,7 +379,7 @@ public class ProtoLogConfigurationServiceImpl extends IProtoLogConfigurationServ @NonNull String viewerConfigFilePath) { Utils.dumpViewerConfig(dataSource, () -> { try { - return new ProtoInputStream(new FileInputStream(viewerConfigFilePath)); + return new AutoClosableProtoInputStream(new FileInputStream(viewerConfigFilePath)); } catch (FileNotFoundException e) { throw new RuntimeException( "Failed to load viewer config file " + viewerConfigFilePath, e); diff --git a/core/java/com/android/internal/protolog/ProtoLogImpl.java b/core/java/com/android/internal/protolog/ProtoLogImpl.java index 5d67534b1b44716038958a64ce715c5297fbdc08..3378d08e7761109134f59ffd1246878a215f8971 100644 --- a/core/java/com/android/internal/protolog/ProtoLogImpl.java +++ b/core/java/com/android/internal/protolog/ProtoLogImpl.java @@ -105,31 +105,10 @@ public class ProtoLogImpl { + "viewerConfigPath = " + sViewerConfigPath); final var groups = sLogGroups.values().toArray(new IProtoLogGroup[0]); - if (android.tracing.Flags.perfettoProtologTracing()) { - try { - File f = new File(sViewerConfigPath); - if (!ProtoLog.REQUIRE_PROTOLOGTOOL && !f.exists()) { - // TODO(b/353530422): Remove - temporary fix to unblock b/352290057 - // In some tests the viewer config file might not exist in which we don't - // want to provide config path to the user - Log.w(LOG_TAG, "Failed to find viewerConfigFile when setting up " - + ProtoLogImpl.class.getSimpleName() + ". " - + "Setting up without a viewer config instead..."); - - sServiceInstance = new PerfettoProtoLogImpl(sCacheUpdater, groups); - } else { - sServiceInstance = - new PerfettoProtoLogImpl(sViewerConfigPath, sCacheUpdater, groups); - } - } catch (ServiceManager.ServiceNotFoundException e) { - throw new RuntimeException(e); - } + sServiceInstance = createProtoLogImpl(groups); } else { - var protologImpl = new LegacyProtoLogImpl( - sLegacyOutputFilePath, sLegacyViewerConfigPath, sCacheUpdater); - protologImpl.registerGroups(groups); - sServiceInstance = protologImpl; + sServiceInstance = createLegacyProtoLogImpl(groups); } sCacheUpdater.run(); @@ -137,6 +116,34 @@ public class ProtoLogImpl { return sServiceInstance; } + private static IProtoLog createProtoLogImpl(IProtoLogGroup[] groups) { + try { + File f = new File(sViewerConfigPath); + if (!f.exists()) { + // TODO(b/353530422): Remove - temporary fix to unblock b/352290057 + // In robolectric tests the viewer config file isn't current available, so we cannot + // use the ProcessedPerfettoProtoLogImpl. + Log.e(LOG_TAG, "Failed to find viewer config file " + sViewerConfigPath + + " when setting up " + ProtoLogImpl.class.getSimpleName() + ". " + + "ProtoLog will not work here!"); + + return new NoViewerConfigProtoLogImpl(); + } else { + return new ProcessedPerfettoProtoLogImpl(sViewerConfigPath, sCacheUpdater, groups); + } + } catch (ServiceManager.ServiceNotFoundException e) { + throw new RuntimeException(e); + } + } + + private static LegacyProtoLogImpl createLegacyProtoLogImpl(IProtoLogGroup[] groups) { + var protologImpl = new LegacyProtoLogImpl( + sLegacyOutputFilePath, sLegacyViewerConfigPath, sCacheUpdater); + protologImpl.registerGroups(groups); + + return protologImpl; + } + @VisibleForTesting public static synchronized void setSingleInstance(@Nullable IProtoLog instance) { sServiceInstance = instance; diff --git a/core/java/com/android/internal/protolog/ProtoLogViewerConfigReader.java b/core/java/com/android/internal/protolog/ProtoLogViewerConfigReader.java index 571fe0ba37b237cb377956035799a5862adfe614..524f64225084cf59787cc45a0e1f40825ae5be8e 100644 --- a/core/java/com/android/internal/protolog/ProtoLogViewerConfigReader.java +++ b/core/java/com/android/internal/protolog/ProtoLogViewerConfigReader.java @@ -106,46 +106,47 @@ public class ProtoLogViewerConfigReader { long targetGroupId = loadGroupId(group); final Map hashesForGroup = new TreeMap<>(); - final ProtoInputStream pis = mViewerConfigInputStreamProvider.getInputStream(); - - while (pis.nextField() != ProtoInputStream.NO_MORE_FIELDS) { - if (pis.getFieldNumber() == (int) MESSAGES) { - final long inMessageToken = pis.start(MESSAGES); - - long messageId = 0; - String message = null; - int groupId = 0; - while (pis.nextField() != ProtoInputStream.NO_MORE_FIELDS) { - switch (pis.getFieldNumber()) { - case (int) MESSAGE_ID: - messageId = pis.readLong(MESSAGE_ID); - break; - case (int) MESSAGE: - message = pis.readString(MESSAGE); - break; - case (int) GROUP_ID: - groupId = pis.readInt(GROUP_ID); - break; + try (var pisWrapper = mViewerConfigInputStreamProvider.getInputStream()) { + final var pis = pisWrapper.get(); + while (pis.nextField() != ProtoInputStream.NO_MORE_FIELDS) { + if (pis.getFieldNumber() == (int) MESSAGES) { + final long inMessageToken = pis.start(MESSAGES); + + long messageId = 0; + String message = null; + int groupId = 0; + while (pis.nextField() != ProtoInputStream.NO_MORE_FIELDS) { + switch (pis.getFieldNumber()) { + case (int) MESSAGE_ID: + messageId = pis.readLong(MESSAGE_ID); + break; + case (int) MESSAGE: + message = pis.readString(MESSAGE); + break; + case (int) GROUP_ID: + groupId = pis.readInt(GROUP_ID); + break; + } } - } - if (groupId == 0) { - throw new IOException("Failed to get group id"); - } + if (groupId == 0) { + throw new IOException("Failed to get group id"); + } - if (messageId == 0) { - throw new IOException("Failed to get message id"); - } + if (messageId == 0) { + throw new IOException("Failed to get message id"); + } - if (message == null) { - throw new IOException("Failed to get message string"); - } + if (message == null) { + throw new IOException("Failed to get message string"); + } - if (groupId == targetGroupId) { - hashesForGroup.put(messageId, message); - } + if (groupId == targetGroupId) { + hashesForGroup.put(messageId, message); + } - pis.end(inMessageToken); + pis.end(inMessageToken); + } } } @@ -153,30 +154,32 @@ public class ProtoLogViewerConfigReader { } private long loadGroupId(@NonNull String group) throws IOException { - final ProtoInputStream pis = mViewerConfigInputStreamProvider.getInputStream(); - - while (pis.nextField() != ProtoInputStream.NO_MORE_FIELDS) { - if (pis.getFieldNumber() == (int) GROUPS) { - final long inMessageToken = pis.start(GROUPS); - - long groupId = 0; - String groupName = null; - while (pis.nextField() != ProtoInputStream.NO_MORE_FIELDS) { - switch (pis.getFieldNumber()) { - case (int) ID: - groupId = pis.readInt(ID); - break; - case (int) NAME: - groupName = pis.readString(NAME); - break; + try (var pisWrapper = mViewerConfigInputStreamProvider.getInputStream()) { + final var pis = pisWrapper.get(); + + while (pis.nextField() != ProtoInputStream.NO_MORE_FIELDS) { + if (pis.getFieldNumber() == (int) GROUPS) { + final long inMessageToken = pis.start(GROUPS); + + long groupId = 0; + String groupName = null; + while (pis.nextField() != ProtoInputStream.NO_MORE_FIELDS) { + switch (pis.getFieldNumber()) { + case (int) ID: + groupId = pis.readInt(ID); + break; + case (int) NAME: + groupName = pis.readString(NAME); + break; + } } - } - if (Objects.equals(groupName, group)) { - return groupId; - } + if (Objects.equals(groupName, group)) { + return groupId; + } - pis.end(inMessageToken); + pis.end(inMessageToken); + } } } diff --git a/core/java/com/android/internal/protolog/UnprocessedPerfettoProtoLogImpl.java b/core/java/com/android/internal/protolog/UnprocessedPerfettoProtoLogImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..f3fe58070fa973425b776461e1f5adfed3fc110e --- /dev/null +++ b/core/java/com/android/internal/protolog/UnprocessedPerfettoProtoLogImpl.java @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.internal.protolog; + +import android.annotation.NonNull; +import android.os.ServiceManager; + +import com.android.internal.protolog.ProtoLogConfigurationServiceImpl.RegisterClientArgs; +import com.android.internal.protolog.common.IProtoLogGroup; + +public class UnprocessedPerfettoProtoLogImpl extends PerfettoProtoLogImpl { + public UnprocessedPerfettoProtoLogImpl(@NonNull IProtoLogGroup[] groups) + throws ServiceManager.ServiceNotFoundException { + this(() -> {}, groups); + } + + public UnprocessedPerfettoProtoLogImpl(@NonNull Runnable cacheUpdater, + @NonNull IProtoLogGroup[] groups) throws ServiceManager.ServiceNotFoundException { + super(cacheUpdater, groups); + readyToLogToLogcat(); + } + + @NonNull + @Override + protected RegisterClientArgs createConfigurationServiceRegisterClientArgs() { + return new RegisterClientArgs(); + } + + @Override + void dumpViewerConfig() { + // No-op + } + + @NonNull + @Override + String getLogcatMessageString(@NonNull Message message) { + String messageString; + messageString = message.getMessage(); + + if (messageString == null) { + throw new RuntimeException("Failed to decode message for logcat. " + + "Message not available without ViewerConfig to decode the hash."); + } + + return messageString; + } +} diff --git a/core/java/com/android/internal/protolog/Utils.java b/core/java/com/android/internal/protolog/Utils.java index 00ef80ab2bddcb78a81bb8a51b289296158e51e1..629682ca2e71a1cb7842258a62dd8fabbb9c3f01 100644 --- a/core/java/com/android/internal/protolog/Utils.java +++ b/core/java/com/android/internal/protolog/Utils.java @@ -48,8 +48,8 @@ public class Utils { public static void dumpViewerConfig(@NonNull ProtoLogDataSource dataSource, @NonNull ViewerConfigInputStreamProvider viewerConfigInputStreamProvider) { dataSource.trace(ctx -> { - try { - ProtoInputStream pis = viewerConfigInputStreamProvider.getInputStream(); + try (var pisWrapper = viewerConfigInputStreamProvider.getInputStream()) { + final var pis = pisWrapper.get(); final ProtoOutputStream os = ctx.newTracePacket(); diff --git a/core/java/com/android/internal/protolog/ViewerConfigInputStreamProvider.java b/core/java/com/android/internal/protolog/ViewerConfigInputStreamProvider.java index 14bc8e4782f2848f8750ece905da1ca43cc234e7..60c98923eb238c7895364ef0e960deb9554114b0 100644 --- a/core/java/com/android/internal/protolog/ViewerConfigInputStreamProvider.java +++ b/core/java/com/android/internal/protolog/ViewerConfigInputStreamProvider.java @@ -17,12 +17,12 @@ package com.android.internal.protolog; import android.annotation.NonNull; -import android.util.proto.ProtoInputStream; public interface ViewerConfigInputStreamProvider { /** * @return a ProtoInputStream. */ @NonNull - ProtoInputStream getInputStream(); + AutoClosableProtoInputStream getInputStream(); } + diff --git a/core/java/com/android/internal/telephony/IPhoneStateListener.aidl b/core/java/com/android/internal/telephony/IPhoneStateListener.aidl index 81b885aa626b008cd3aae265a023b3f0e49c26d2..b5c87868af1223112d160fa2fec2d1ec1897f2a8 100644 --- a/core/java/com/android/internal/telephony/IPhoneStateListener.aidl +++ b/core/java/com/android/internal/telephony/IPhoneStateListener.aidl @@ -84,4 +84,5 @@ oneway interface IPhoneStateListener { void onSimultaneousCallingStateChanged(in int[] subIds); void onCarrierRoamingNtnModeChanged(in boolean active); void onCarrierRoamingNtnEligibleStateChanged(in boolean eligible); + void onCarrierRoamingNtnAvailableServicesChanged(in int[] availableServices); } diff --git a/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl b/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl index f836cf2b9d8783b93f633c43daa09d5588dec8ff..ca75abdedfccdd07b827c8bec2206251511a70b9 100644 --- a/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl +++ b/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl @@ -123,4 +123,5 @@ interface ITelephonyRegistry { void notifyCallbackModeStopped(int phoneId, int subId, int type, int reason); void notifyCarrierRoamingNtnModeChanged(int subId, in boolean active); void notifyCarrierRoamingNtnEligibleStateChanged(int subId, in boolean eligible); + void notifyCarrierRoamingNtnAvailableServicesChanged(int subId, in int[] availableServices); } diff --git a/core/java/com/android/internal/widget/NotificationProgressBar.java b/core/java/com/android/internal/widget/NotificationProgressBar.java index d3b1f972a955058d027838db2a36374d29bef810..f2b36c3b99814a6950c62164925ba71778e834fc 100644 --- a/core/java/com/android/internal/widget/NotificationProgressBar.java +++ b/core/java/com/android/internal/widget/NotificationProgressBar.java @@ -21,6 +21,10 @@ import android.annotation.Nullable; import android.app.Notification.ProgressStyle; import android.content.Context; import android.content.res.ColorStateList; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Matrix; +import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.graphics.drawable.LayerDrawable; @@ -52,7 +56,7 @@ import java.util.TreeSet; * represent Notification ProgressStyle progress, such as for ridesharing and navigation. */ @RemoteViews.RemoteView -public class NotificationProgressBar extends ProgressBar { +public final class NotificationProgressBar extends ProgressBar { private static final String TAG = "NotificationProgressBar"; private NotificationProgressModel mProgressModel; @@ -61,7 +65,12 @@ public class NotificationProgressBar extends ProgressBar { private List mProgressDrawableParts = null; @Nullable - private Drawable mProgressTrackerDrawable = null; + private Drawable mTracker = null; + private final int mTrackerHeight; + private int mTrackerWidth; + private int mTrackerPos; + private final Matrix mMatrix = new Matrix(); + private Matrix mTrackerDrawMatrix = null; public NotificationProgressBar(Context context) { this(context, null); @@ -78,28 +87,49 @@ public class NotificationProgressBar extends ProgressBar { public NotificationProgressBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); + + final TypedArray a = context.obtainStyledAttributes( + attrs, R.styleable.NotificationProgressBar, defStyleAttr, defStyleRes); + saveAttributeDataForStyleable(context, R.styleable.NotificationProgressBar, attrs, a, + defStyleAttr, + defStyleRes); + + // Supports setting the tracker in xml, but ProgressStyle notifications set/override it + // via {@code setProgressTrackerIcon}. + final Drawable tracker = a.getDrawable(R.styleable.NotificationProgressBar_tracker); + setTracker(tracker); + + // If this is configured to be non-zero, will scale the tracker drawable and ensure its + // aspect ration is between 2:1 to 1:2. + mTrackerHeight = a.getDimensionPixelSize(R.styleable.NotificationProgressBar_trackerHeight, + 0); } /** * Setter for the notification progress model. * * @see NotificationProgressModel#fromBundle - * @see #setProgressModelAsync */ - @RemotableViewMethod(asyncImpl = "setProgressModelAsync") + @RemotableViewMethod public void setProgressModel(@Nullable Bundle bundle) { Preconditions.checkArgument(bundle != null, "Bundle shouldn't be null"); mProgressModel = NotificationProgressModel.fromBundle(bundle); + final boolean isIndeterminate = mProgressModel.isIndeterminate(); + setIndeterminate(isIndeterminate); - if (mProgressModel.isIndeterminate()) { + if (isIndeterminate) { final int indeterminateColor = mProgressModel.getIndeterminateColor(); setIndeterminateTintList(ColorStateList.valueOf(indeterminateColor)); } else { + final int progress = mProgressModel.getProgress(); + final int progressMax = mProgressModel.getProgressMax(); mProgressDrawableParts = processAndConvertToDrawableParts(mProgressModel.getSegments(), mProgressModel.getPoints(), - mProgressModel.getProgress(), mProgressModel.isStyledByProgress()); + progress, + progressMax, + mProgressModel.isStyledByProgress()); try { final NotificationProgressDrawable drawable = getNotificationProgressDrawable(); @@ -107,6 +137,9 @@ public class NotificationProgressBar extends ProgressBar { } catch (IllegalStateException ex) { Log.e(TAG, "Can't set parts because can't get NotificationProgressDrawable", ex); } + + setMax(progressMax); + setProgress(progress); } } @@ -137,6 +170,13 @@ public class NotificationProgressBar extends ProgressBar { */ @RemotableViewMethod(asyncImpl = "setProgressTrackerIconAsync") public void setProgressTrackerIcon(@Nullable Icon icon) { + final Drawable progressTrackerDrawable; + if (icon != null) { + progressTrackerDrawable = icon.loadDrawable(getContext()); + } else { + progressTrackerDrawable = null; + } + setTracker(progressTrackerDrawable); } /** @@ -150,12 +190,295 @@ public class NotificationProgressBar extends ProgressBar { progressTrackerDrawable = null; } return () -> { - setProgressTrackerDrawable(progressTrackerDrawable); + setTracker(progressTrackerDrawable); }; } - private void setProgressTrackerDrawable(@Nullable Drawable drawable) { - mProgressTrackerDrawable = drawable; + private void setTracker(@Nullable Drawable tracker) { + if (isIndeterminate() && tracker != null) { + return; + } + + final boolean needUpdate = mTracker != null && tracker != mTracker; + if (needUpdate) { + mTracker.setCallback(null); + } + + if (tracker != null) { + tracker.setCallback(this); + if (getMirrorForRtl()) { + tracker.setAutoMirrored(true); + } + + if (canResolveLayoutDirection()) { + tracker.setLayoutDirection(getLayoutDirection()); + } + + // If we're updating get the new states + if (needUpdate && (tracker.getIntrinsicWidth() != mTracker.getIntrinsicWidth() + || tracker.getIntrinsicHeight() != mTracker.getIntrinsicHeight())) { + requestLayout(); + } + } + + mTracker = tracker; + + configureTrackerBounds(); + + invalidate(); + + if (needUpdate) { + updateTrackerAndBarPos(getWidth(), getHeight()); + if (tracker != null && tracker.isStateful()) { + // Note that if the states are different this won't work. + // For now, let's consider that an app bug. + tracker.setState(getDrawableState()); + } + } + } + + private void configureTrackerBounds() { + // Reset the tracker draw matrix to null + mTrackerDrawMatrix = null; + + if (mTracker == null || mTrackerHeight <= 0) { + return; + } + + final int dWidth = mTracker.getIntrinsicWidth(); + final int dHeight = mTracker.getIntrinsicHeight(); + if (dWidth <= 0 || dHeight <= 0) { + return; + } + final int maxDWidth = dHeight * 2; + final int maxDHeight = dWidth * 2; + + mTrackerDrawMatrix = mMatrix; + float scale; + float dx = 0, dy = 0; + + if (dWidth > maxDWidth) { + scale = (float) mTrackerHeight / (float) dHeight; + dx = (maxDWidth * scale - dWidth * scale) * 0.5f; + mTrackerWidth = (int) (maxDWidth * scale); + } else if (dHeight > maxDHeight) { + scale = (float) mTrackerHeight * 0.5f / (float) dWidth; + dy = (maxDHeight * scale - dHeight * scale) * 0.5f; + mTrackerWidth = mTrackerHeight / 2; + } else { + scale = (float) mTrackerHeight / (float) dHeight; + mTrackerWidth = (int) (dWidth * scale); + } + + mTrackerDrawMatrix.setScale(scale, scale); + mTrackerDrawMatrix.postTranslate(Math.round(dx), Math.round(dy)); + } + + @Override + @RemotableViewMethod + public synchronized void setIndeterminate(boolean indeterminate) { + super.setIndeterminate(indeterminate); + + if (isIndeterminate()) { + setTracker(null); + } + } + + @Override + protected boolean verifyDrawable(@NonNull Drawable who) { + return who == mTracker || super.verifyDrawable(who); + } + + @Override + public void jumpDrawablesToCurrentState() { + super.jumpDrawablesToCurrentState(); + + if (mTracker != null) { + mTracker.jumpToCurrentState(); + } + } + + @Override + protected void drawableStateChanged() { + super.drawableStateChanged(); + + final Drawable tracker = mTracker; + if (tracker != null && tracker.isStateful() + && tracker.setState(getDrawableState())) { + invalidateDrawable(tracker); + } + } + + @Override + public void drawableHotspotChanged(float x, float y) { + super.drawableHotspotChanged(x, y); + + if (mTracker != null) { + mTracker.setHotspot(x, y); + } + } + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + + updateTrackerAndBarPos(w, h); + } + + private void updateTrackerAndBarPos(int w, int h) { + final int paddedHeight = h - mPaddingTop - mPaddingBottom; + final Drawable bar = getCurrentDrawable(); + final Drawable tracker = mTracker; + + // The max height does not incorporate padding, whereas the height + // parameter does. + final int barHeight = Math.min(getMaxHeight(), paddedHeight); + final int trackerHeight = tracker == null ? 0 + : ((mTrackerHeight == 0) ? tracker.getIntrinsicHeight() : mTrackerHeight); + + // Apply offset to whichever item is taller. + final int barOffsetY; + final int trackerOffsetY; + if (trackerHeight > barHeight) { + final int offsetHeight = (paddedHeight - trackerHeight) / 2; + barOffsetY = offsetHeight + (trackerHeight - barHeight) / 2; + trackerOffsetY = offsetHeight; + } else { + final int offsetHeight = (paddedHeight - barHeight) / 2; + barOffsetY = offsetHeight; + trackerOffsetY = offsetHeight + (barHeight - trackerHeight) / 2; + } + + if (bar != null) { + final int barWidth = w - mPaddingRight - mPaddingLeft; + bar.setBounds(0, barOffsetY, barWidth, barOffsetY + barHeight); + } + + if (tracker != null) { + setTrackerPos(w, tracker, getScale(), trackerOffsetY); + } + } + + private float getScale() { + int min = getMin(); + int max = getMax(); + int range = max - min; + return range > 0 ? (getProgress() - min) / (float) range : 0; + } + + /** + * Updates the tracker drawable bounds. + * + * @param w Width of the view, including padding + * @param tracker Drawable used for the tracker + * @param scale Current progress between 0 and 1 + * @param offsetY Vertical offset for centering. If set to + * {@link Integer#MIN_VALUE}, the current offset will be used. + */ + private void setTrackerPos(int w, Drawable tracker, float scale, int offsetY) { + int available = w - mPaddingLeft - mPaddingRight; + final int trackerWidth = tracker.getIntrinsicWidth(); + final int trackerHeight = tracker.getIntrinsicHeight(); + available -= ((mTrackerHeight == 0) ? trackerWidth : mTrackerWidth); + + final int trackerPos = (int) (scale * available + 0.5f); + + final int top, bottom; + if (offsetY == Integer.MIN_VALUE) { + final Rect oldBounds = tracker.getBounds(); + top = oldBounds.top; + bottom = oldBounds.bottom; + } else { + top = offsetY; + bottom = offsetY + trackerHeight; + } + + mTrackerPos = (isLayoutRtl() && getMirrorForRtl()) ? available - trackerPos : trackerPos; + final int left = 0; + final int right = left + trackerWidth; + + final Drawable background = getBackground(); + if (background != null) { + final int bkgOffsetX = mPaddingLeft; + final int bkgOffsetY = mPaddingTop; + background.setHotspotBounds(left + bkgOffsetX, top + bkgOffsetY, + right + bkgOffsetX, bottom + bkgOffsetY); + } + + // Canvas will be translated, so 0,0 is where we start drawing + tracker.setBounds(left, top, right, bottom); + } + + @Override + public void onResolveDrawables(int layoutDirection) { + super.onResolveDrawables(layoutDirection); + + if (mTracker != null) { + mTracker.setLayoutDirection(layoutDirection); + } + } + + @Override + protected synchronized void onDraw(Canvas canvas) { + super.onDraw(canvas); + drawTracker(canvas); + } + + /** + * Draw the tracker. + */ + private void drawTracker(Canvas canvas) { + if (mTracker != null) { + final int saveCount = canvas.save(); + // Translate the canvas origin to tracker position to make the draw matrix and the RtL + // transformations work. + canvas.translate(mPaddingLeft + mTrackerPos, mPaddingTop); + canvas.clipRect(0, 0, mTrackerWidth, mTrackerHeight); + if (mTrackerDrawMatrix != null) { + canvas.concat(mTrackerDrawMatrix); + } + mTracker.draw(canvas); + canvas.restoreToCount(saveCount); + } + } + + @Override + protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + Drawable d = getCurrentDrawable(); + + int trackerHeight = mTracker == null ? 0 : mTracker.getIntrinsicHeight(); + int dw = 0; + int dh = 0; + if (d != null) { + dw = Math.max(getMinWidth(), Math.min(getMaxWidth(), d.getIntrinsicWidth())); + dh = Math.max(getMinHeight(), Math.min(getMaxHeight(), d.getIntrinsicHeight())); + dh = Math.max(trackerHeight, dh); + } + dw += mPaddingLeft + mPaddingRight; + dh += mPaddingTop + mPaddingBottom; + + setMeasuredDimension(resolveSizeAndState(dw, widthMeasureSpec, 0), + resolveSizeAndState(dh, heightMeasureSpec, 0)); + } + + @Override + public CharSequence getAccessibilityClassName() { + return NotificationProgressBar.class.getName(); + } + + @Override + public void onRtlPropertiesChanged(int layoutDirection) { + super.onRtlPropertiesChanged(layoutDirection); + + final Drawable tracker = mTracker; + if (tracker != null) { + setTrackerPos(getWidth(), tracker, getScale(), Integer.MIN_VALUE); + + // Since we draw translated, the drawable's bounds that it signals + // for invalidation won't be the actual bounds we want invalidated, + // so just invalidate this whole view. + invalidate(); + } } /** @@ -167,12 +490,18 @@ public class NotificationProgressBar extends ProgressBar { List segments, List points, int progress, + int progressMax, boolean isStyledByProgress ) { if (segments.isEmpty()) { throw new IllegalArgumentException("List of segments shouldn't be empty"); } + final int totalLength = segments.stream().mapToInt(ProgressStyle.Segment::getLength).sum(); + if (progressMax != totalLength) { + throw new IllegalArgumentException("Invalid progressMax : " + progressMax); + } + for (ProgressStyle.Segment segment : segments) { final int length = segment.getLength(); if (length <= 0) { @@ -180,14 +509,12 @@ public class NotificationProgressBar extends ProgressBar { } } - final int progressMax = segments.stream().mapToInt(ProgressStyle.Segment::getLength).sum(); - if (progress < 0 || progress > progressMax) { throw new IllegalArgumentException("Invalid progress : " + progress); } for (ProgressStyle.Point point : points) { final int pos = point.getPosition(); - if (pos <= 0 || pos >= progressMax) { + if (pos < 0 || pos > progressMax) { throw new IllegalArgumentException("Invalid Point position : " + pos); } } @@ -208,7 +535,6 @@ public class NotificationProgressBar extends ProgressBar { isStyledByProgress); } - // Any segment with a point on it gets split by the point. // If isStyledByProgress is true, also split the segment with the progress value in its range. private static Map splitSegmentsByPointsAndProgress( diff --git a/core/java/com/android/internal/widget/NotificationProgressModel.java b/core/java/com/android/internal/widget/NotificationProgressModel.java index e51ea99ac4f5ab9557a68d8af1f7d8339ed8f257..e8cb37e8f19b908be818429bd7bd1bc38a487d78 100644 --- a/core/java/com/android/internal/widget/NotificationProgressModel.java +++ b/core/java/com/android/internal/widget/NotificationProgressModel.java @@ -96,6 +96,10 @@ public final class NotificationProgressModel { return mProgress; } + public int getProgressMax() { + return mSegments.stream().mapToInt(Notification.ProgressStyle.Segment::getLength).sum(); + } + public boolean isStyledByProgress() { return mIsStyledByProgress; } diff --git a/core/java/com/android/internal/widget/floatingtoolbar/OWNERS b/core/java/com/android/internal/widget/floatingtoolbar/OWNERS index ed9425cc26c9dd1cef2f049125f9ae344eb17453..999ea0e62a0ae2fb2e3cf4b70310dfc9a2a168b8 100644 --- a/core/java/com/android/internal/widget/floatingtoolbar/OWNERS +++ b/core/java/com/android/internal/widget/floatingtoolbar/OWNERS @@ -1 +1 @@ -include /core/java/android/view/selectiontoolbar/OWNERS +include /core/java/android/permission/OWNERS 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 deae9a571e12ada09c1765dae08b82548559761b..244bb3d6380b10649a0de22e9995b21742096ee7 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/CompanionOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/CompanionOperation.java @@ -17,15 +17,13 @@ package com.android.internal.widget.remotecompose.core; import java.util.List; -/** - * Interface for the companion operations - */ +/** Interface for the companion operations */ public interface CompanionOperation { /** * Read, create and add instance to operations + * * @param buffer data to read to create operation * @param operations command is to be added */ void read(WireBuffer buffer, List operations); } - 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 18be4809998c114d609ec753fa7d63b7a68e574b..212df02b1bd32ba0641261d5b4fe9acf05cc98b5 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java +++ b/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java @@ -16,6 +16,7 @@ package com.android.internal.widget.remotecompose.core; import com.android.internal.widget.remotecompose.core.operations.ComponentValue; +import com.android.internal.widget.remotecompose.core.operations.IntegerExpression; 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; @@ -25,6 +26,8 @@ import com.android.internal.widget.remotecompose.core.operations.layout.Componen 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.LoopEnd; +import com.android.internal.widget.remotecompose.core.operations.layout.LoopOperation; 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; @@ -33,11 +36,12 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.Strin import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; +import java.util.List; import java.util.Set; /** - * Represents a platform independent RemoteCompose document, - * containing RemoteCompose operations + state + * Represents a platform independent RemoteCompose document, containing RemoteCompose operations + + * state */ public class CoreDocument { @@ -66,6 +70,8 @@ public class CoreDocument { RemoteComposeBuffer mBuffer = new RemoteComposeBuffer(mRemoteComposeState); + private final HashMap mIntegerExpressions = new HashMap<>(); + private int mLastId = 1; // last component id when inflating the file public String getContentDescription() { @@ -133,21 +139,14 @@ public class CoreDocument { /** * 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) { this.mContentScroll = scroll; @@ -160,8 +159,8 @@ public class CoreDocument { * Given dimensions w x h of where to paint the content, returns the corresponding scale factor * according to the contentSizing information * - * @param w horizontal dimension of the rendering area - * @param h vertical dimension of the rendering area + * @param w horizontal dimension of the rendering area + * @param h vertical dimension of the rendering area * @param scaleOutput will contain the computed scale factor */ public void computeScale(float w, float h, float[] scaleOutput) { @@ -169,50 +168,47 @@ public class CoreDocument { float contentScaleY = 1f; if (mContentSizing == RootContentBehavior.SIZING_SCALE) { // we need to add canvas transforms ops here + float scaleX = 1f; + float scaleY = 1f; + float scale = 1f; switch (mContentMode) { - case RootContentBehavior.SCALE_INSIDE: { - float scaleX = w / mWidth; - float scaleY = h / mHeight; - float scale = Math.min(1f, Math.min(scaleX, scaleY)); + case RootContentBehavior.SCALE_INSIDE: + scaleX = w / mWidth; + scaleY = h / mHeight; + scale = Math.min(1f, Math.min(scaleX, scaleY)); contentScaleX = scale; contentScaleY = scale; - } - break; - case RootContentBehavior.SCALE_FIT: { - float scaleX = w / mWidth; - float scaleY = h / mHeight; - float scale = Math.min(scaleX, scaleY); + break; + case RootContentBehavior.SCALE_FIT: + scaleX = w / mWidth; + scaleY = h / mHeight; + scale = Math.min(scaleX, scaleY); contentScaleX = scale; contentScaleY = scale; - } - break; - case RootContentBehavior.SCALE_FILL_WIDTH: { - float scale = w / mWidth; + break; + case RootContentBehavior.SCALE_FILL_WIDTH: + scale = w / mWidth; contentScaleX = scale; contentScaleY = scale; - } - break; - case RootContentBehavior.SCALE_FILL_HEIGHT: { - float scale = h / mHeight; + break; + case RootContentBehavior.SCALE_FILL_HEIGHT: + scale = h / mHeight; contentScaleX = scale; contentScaleY = scale; - } - break; - case RootContentBehavior.SCALE_CROP: { - float scaleX = w / mWidth; - float scaleY = h / mHeight; - float scale = Math.max(scaleX, scaleY); + break; + case RootContentBehavior.SCALE_CROP: + scaleX = w / mWidth; + scaleY = h / mHeight; + scale = Math.max(scaleX, scaleY); contentScaleX = scale; contentScaleY = scale; - } - break; - case RootContentBehavior.SCALE_FILL_BOUNDS: { - float scaleX = w / mWidth; - float scaleY = h / mHeight; + break; + case RootContentBehavior.SCALE_FILL_BOUNDS: + scaleX = w / mWidth; + scaleY = h / mHeight; contentScaleX = scaleX; contentScaleY = scaleY; - } - break; + break; default: // nothing } @@ -225,14 +221,14 @@ public class CoreDocument { * Given dimensions w x h of where to paint the content, returns the corresponding translation * according to the contentAlignment information * - * @param w horizontal dimension of the rendering area - * @param h vertical dimension of the rendering area - * @param contentScaleX the horizontal scale we are going to use for the content - * @param contentScaleY the vertical scale we are going to use for the content + * @param w horizontal dimension of the rendering area + * @param h vertical dimension of the rendering area + * @param contentScaleX the horizontal scale we are going to use for the content + * @param contentScaleY the vertical scale we are going to use for the content * @param translateOutput will contain the computed translation */ - private void computeTranslate(float w, float h, float contentScaleX, float contentScaleY, - float[] translateOutput) { + private void computeTranslate( + float w, float h, float contentScaleX, float contentScaleY, float[] translateOutput) { int horizontalContentAlignment = mContentAlignment & 0xF0; int verticalContentAlignment = mContentAlignment & 0xF; float translateX = 0f; @@ -241,34 +237,28 @@ public class CoreDocument { float contentHeight = mHeight * contentScaleY; switch (horizontalContentAlignment) { - case RootContentBehavior.ALIGNMENT_START: { + case RootContentBehavior.ALIGNMENT_START: // nothing - } - break; - case RootContentBehavior.ALIGNMENT_HORIZONTAL_CENTER: { + break; + case RootContentBehavior.ALIGNMENT_HORIZONTAL_CENTER: translateX = (w - contentWidth) / 2f; - } - break; - case RootContentBehavior.ALIGNMENT_END: { + break; + case RootContentBehavior.ALIGNMENT_END: translateX = w - contentWidth; - } - break; + break; default: // nothing (same as alignment_start) } switch (verticalContentAlignment) { - case RootContentBehavior.ALIGNMENT_TOP: { + case RootContentBehavior.ALIGNMENT_TOP: // nothing - } - break; - case RootContentBehavior.ALIGNMENT_VERTICAL_CENTER: { + break; + case RootContentBehavior.ALIGNMENT_VERTICAL_CENTER: translateY = (h - contentHeight) / 2f; - } - break; - case RootContentBehavior.ALIGNMENT_BOTTOM: { + break; + case RootContentBehavior.ALIGNMENT_BOTTOM: translateY = h - contentHeight; - } - break; + break; default: // nothing (same as alignment_top) } @@ -279,6 +269,7 @@ public class CoreDocument { /** * Returns the list of click areas + * * @return list of click areas in document coordinates */ public Set getClickAreas() { @@ -287,15 +278,14 @@ public class CoreDocument { /** * Returns the root layout component + * * @return returns the root component if it exists, null otherwise */ public RootLayoutComponent getRootLayoutComponent() { return mRootLayoutComponent; } - /** - * Invalidate the document for layout measures. This will trigger a layout remeasure pass. - */ + /** Invalidate the document for layout measures. This will trigger a layout remeasure pass. */ public void invalidateMeasure() { if (mRootLayoutComponent != null) { mRootLayoutComponent.invalidateMeasure(); @@ -304,6 +294,7 @@ public class CoreDocument { /** * Returns the component with the given id + * * @param id component id * @return the component if it exists, null otherwise */ @@ -332,8 +323,21 @@ public class CoreDocument { } /** - * Callback interface for host actions + * Execute an integer expression with the given id and put its value on the targetId + * + * @param expressionId the id of the integer expression + * @param targetId the id of the value to update with the expression + * @param context the current context */ + public void evaluateIntExpression(long expressionId, int targetId, RemoteContext context) { + IntegerExpression expression = mIntegerExpressions.get(expressionId); + if (expression != null) { + int v = expression.evaluate(context); + context.overrideInteger(targetId, v); + } + } + + /** Callback interface for host actions */ public interface ActionCallback { // TODO: add payload support void onAction(String name); @@ -343,6 +347,7 @@ public class CoreDocument { /** * Warn action listeners for the given named action + * * @param name the action name */ public void runNamedAction(String name) { @@ -360,9 +365,7 @@ public class CoreDocument { mActionListeners.add(callback); } - /** - * Clear existing callbacks for named host actions - */ + /** Clear existing callbacks for named host actions */ public void clearActionCallbacks() { mActionListeners.clear(); } @@ -395,13 +398,14 @@ public class CoreDocument { float mBottom; String mMetadata; - public ClickAreaRepresentation(int id, - String contentDescription, - float left, - float top, - float right, - float bottom, - String metadata) { + public ClickAreaRepresentation( + int id, + String contentDescription, + float left, + float top, + float right, + float bottom, + String metadata) { this.mId = id; this.mContentDescription = contentDescription; this.mLeft = left; @@ -419,8 +423,7 @@ public class CoreDocument { * @return x, y coordinate is within bounds */ public boolean contains(float x, float y) { - return x >= mLeft && x < mRight - && y >= mTop && y < mBottom; + return x >= mLeft && x < mRight && y >= mTop && y < mBottom; } public float getLeft() { @@ -452,12 +455,16 @@ public class CoreDocument { } } - /** - * Load operations from the given buffer - */ + /** Load operations from the given buffer */ public void initFromBuffer(RemoteComposeBuffer buffer) { mOperations = new ArrayList(); buffer.inflateFromBuffer(mOperations); + for (Operation op : mOperations) { + if (op instanceof IntegerExpression) { + IntegerExpression expression = (IntegerExpression) op; + mIntegerExpressions.put((long) expression.mId, expression); + } + } mOperations = inflateComponents(mOperations); mBuffer = buffer; for (Operation op : mOperations) { @@ -473,6 +480,7 @@ public class CoreDocument { /** * Inflate a component tree + * * @param operations flat list of operations * @return nested list of operations / components */ @@ -482,6 +490,7 @@ public class CoreDocument { ArrayList finalOperationsList = new ArrayList<>(); ArrayList ops = finalOperationsList; ClickModifierOperation currentClickModifier = null; + LoopOperation currentLoop = null; mLastId = -1; for (Operation o : operations) { @@ -509,11 +518,22 @@ public class CoreDocument { } else if (o instanceof ClickModifierOperation) { // TODO: refactor to add container <- component... currentClickModifier = (ClickModifierOperation) o; - ops = ((ClickModifierOperation) o).getList(); + ops = currentClickModifier.getList(); } else if (o instanceof ClickModifierEnd) { ops = currentComponent.getList(); ops.add(currentClickModifier); currentClickModifier = null; + } else if (o instanceof LoopOperation) { + currentLoop = (LoopOperation) o; + ops = currentLoop.getList(); + } else if (o instanceof LoopEnd) { + if (currentComponent != null) { + ops = currentComponent.getList(); + ops.add(currentLoop); + } else { + ops = finalOperationsList; + } + currentLoop = null; } else { ops.add(o); } @@ -555,8 +575,8 @@ public class CoreDocument { } /** - * Called when an initialization is needed, allowing the document to eg load - * resources / cache them. + * Called when an initialization is needed, allowing the document to eg load resources / cache + * them. */ public void initializeContext(RemoteContext context) { mRemoteComposeState.reset(); @@ -593,7 +613,7 @@ public class CoreDocument { * * @param majorVersion major version number, increased upon changes breaking the compatibility * @param minorVersion minor version number, increased when adding new features - * @param patch patch level, increased upon bugfixes + * @param patch patch level, increased upon bugfixes */ void setVersion(int majorVersion, int minorVersion, int patch) { mVersion = new Version(majorVersion, minorVersion, patch); @@ -605,22 +625,29 @@ public class CoreDocument { /** * Add a click area to the document, in root coordinates. We are not doing any specific sorting - * through the declared areas on click detections, which means that the first one containing - * the click coordinates will be the one reported; the order of addition of those click areas - * is therefore meaningful. + * through the declared areas on click detections, which means that the first one containing the + * click coordinates will be the one reported; the order of addition of those click areas is + * therefore meaningful. * - * @param id the id of the area, which will be reported on click + * @param id the id of the area, which will be reported on click * @param contentDescription the content description (used for accessibility) - * @param left the left coordinate of the click area (in pixels) - * @param top the top coordinate of the click area (in pixels) - * @param right the right coordinate of the click area (in pixels) - * @param bottom the bottom coordinate of the click area (in pixels) - * @param metadata arbitrary metadata associated with the are, also reported on click + * @param left the left coordinate of the click area (in pixels) + * @param top the top coordinate of the click area (in pixels) + * @param right the right coordinate of the click area (in pixels) + * @param bottom the bottom coordinate of the click area (in pixels) + * @param metadata arbitrary metadata associated with the are, also reported on click */ - public void addClickArea(int id, String contentDescription, - float left, float top, float right, float bottom, String metadata) { - mClickAreas.add(new ClickAreaRepresentation(id, - contentDescription, left, top, right, bottom, metadata)); + public void addClickArea( + int id, + String contentDescription, + float left, + float top, + float right, + float bottom, + String metadata) { + mClickAreas.add( + new ClickAreaRepresentation( + id, contentDescription, left, top, right, bottom, metadata)); } /** @@ -672,9 +699,7 @@ public class CoreDocument { } } - /** - * Warn click listeners when a click area is activated - */ + /** Warn click listeners when a click area is activated */ private void warnClickListeners(ClickAreaRepresentation clickArea) { for (ClickCallbacks listener : mClickListeners) { listener.click(clickArea.mId, clickArea.mMetadata); @@ -743,10 +768,9 @@ public class CoreDocument { * Paint the document * * @param context the provided PaintContext - * @param theme the theme we want to use for this document. + * @param theme the theme we want to use for this document. */ public void paint(RemoteContext context, int theme) { - long time = System.nanoTime(); context.getPaintContext().clearNeedsRepaint(); context.mMode = RemoteContext.ContextMode.UNSET; @@ -760,8 +784,12 @@ public class CoreDocument { if (mContentSizing == RootContentBehavior.SIZING_SCALE) { // we need to add canvas transforms ops here computeScale(context.mWidth, context.mHeight, mScaleOutput); - computeTranslate(context.mWidth, context.mHeight, - mScaleOutput[0], mScaleOutput[1], mTranslateOutput); + computeTranslate( + context.mWidth, + context.mHeight, + mScaleOutput[0], + mScaleOutput[1], + mTranslateOutput); context.mPaintContext.translate(mTranslateOutput[0], mTranslateOutput[1]); context.mPaintContext.scale(mScaleOutput[0], mScaleOutput[1]); } @@ -795,9 +823,10 @@ public class CoreDocument { // or the theme is equal as the one passed in argument to paint. boolean apply = true; if (theme != Theme.UNSPECIFIED) { - apply = op instanceof Theme // always apply a theme setter - || context.getTheme() == theme - || context.getTheme() == Theme.UNSPECIFIED; + apply = + op instanceof Theme // always apply a theme setter + || context.getTheme() == theme + || context.getTheme() == Theme.UNSPECIFIED; } if (apply) { op.apply(context); @@ -808,7 +837,10 @@ public class CoreDocument { mRepaintNext = 1; } context.mMode = RemoteContext.ContextMode.UNSET; - // System.out.println(">> " + ( System.nanoTime() - time)*1E-6f+" ms"); + // System.out.println(">> " + ( System.nanoTime() - time)*1E-6f+" ms"); + if (DEBUG && mRootLayoutComponent != null) { + System.out.println(mRootLayoutComponent.displayHierarchy()); + } } public String[] getStats() { @@ -831,7 +863,6 @@ public class CoreDocument { if (mOperation instanceof Component) { Component com = (Component) mOperation; count += addChildren(com, map, buffer); - } } @@ -893,5 +924,8 @@ public class CoreDocument { } } } -} + public List getOperations() { + return mOperations; + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/DocumentedCompanion.java b/core/java/com/android/internal/widget/remotecompose/core/DocumentedCompanion.java index 661cf7cf4491c24c1e84f754e9d75350f5153d5c..8a792a43f047f97bdc80ca34c19e6ec78f1c95ac 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/DocumentedCompanion.java +++ b/core/java/com/android/internal/widget/remotecompose/core/DocumentedCompanion.java @@ -17,6 +17,4 @@ package com.android.internal.widget.remotecompose.core; import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation; -public interface DocumentedCompanion extends CompanionOperation , DocumentedCompanionOperation { - -} +public interface DocumentedCompanion extends CompanionOperation, DocumentedCompanionOperation {} diff --git a/core/java/com/android/internal/widget/remotecompose/core/Operation.java b/core/java/com/android/internal/widget/remotecompose/core/Operation.java index 4a8b3d7a76d4b4ae83f17b7ebf8317f2ede3aec7..9f565a2915fb201924d8dba9e4c10ee757042c71 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/Operation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/Operation.java @@ -15,14 +15,10 @@ */ package com.android.internal.widget.remotecompose.core; -/** - * Base interface for RemoteCompose operations - */ +/** Base interface for RemoteCompose operations */ public interface Operation { - /** - * add the operation to the buffer - */ + /** add the operation to the buffer */ void write(WireBuffer buffer); /** @@ -32,8 +28,6 @@ public interface Operation { */ void apply(RemoteContext context); - /** - * Debug utility to display an operation + indentation - */ + /** Debug utility to display an operation + indentation */ String deepToString(String indent); } 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 4a25b5eff3c9abd6428a9493b8bf2b2013234748..acebe0761b79aacef61e79c064a7058a01768414 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/Operations.java +++ b/core/java/com/android/internal/widget/remotecompose/core/Operations.java @@ -25,15 +25,18 @@ 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.DataMapLookup; 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; +import com.android.internal.widget.remotecompose.core.operations.DrawBitmapScaled; import com.android.internal.widget.remotecompose.core.operations.DrawCircle; import com.android.internal.widget.remotecompose.core.operations.DrawLine; import com.android.internal.widget.remotecompose.core.operations.DrawOval; import com.android.internal.widget.remotecompose.core.operations.DrawPath; import com.android.internal.widget.remotecompose.core.operations.DrawRect; import com.android.internal.widget.remotecompose.core.operations.DrawRoundRect; +import com.android.internal.widget.remotecompose.core.operations.DrawSector; import com.android.internal.widget.remotecompose.core.operations.DrawText; import com.android.internal.widget.remotecompose.core.operations.DrawTextAnchored; import com.android.internal.widget.remotecompose.core.operations.DrawTextOnPath; @@ -56,6 +59,10 @@ import com.android.internal.widget.remotecompose.core.operations.RootContentDesc import com.android.internal.widget.remotecompose.core.operations.ShaderData; 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.TextLength; +import com.android.internal.widget.remotecompose.core.operations.TextLookup; +import com.android.internal.widget.remotecompose.core.operations.TextLookupInt; +import com.android.internal.widget.remotecompose.core.operations.TextMeasure; 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; @@ -64,12 +71,15 @@ import com.android.internal.widget.remotecompose.core.operations.layout.ClickMod 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.LoopEnd; +import com.android.internal.widget.remotecompose.core.operations.layout.LoopOperation; 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.StateLayout; 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; @@ -81,6 +91,7 @@ import com.android.internal.widget.remotecompose.core.operations.layout.modifier 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.ValueIntegerExpressionChangeActionOperation; 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; @@ -88,9 +99,7 @@ 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 - */ +/** List of operations supported in a RemoteCompose document */ public class Operations { //////////////////////////////////////// @@ -112,7 +121,7 @@ public class Operations { public static final int DATA_SHADER = 45; public static final int DATA_TEXT = 102; - /////////////////////////////===================== + ///////////////////////////// ===================== public static final int CLIP_PATH = 38; public static final int CLIP_RECT = 39; public static final int PAINT_VALUES = 40; @@ -121,7 +130,7 @@ public class Operations { public static final int DRAW_CIRCLE = 46; public static final int DRAW_LINE = 47; public static final int DRAW_ROUND_RECT = 51; - public static final int DRAW_ARC = 52; + public static final int DRAW_SECTOR = 52; public static final int DRAW_TEXT_ON_PATH = 53; public static final int DRAW_OVAL = 56; public static final int DATA_PATH = 123; @@ -149,8 +158,15 @@ public class Operations { public static final int ID_LIST = 146; public static final int FLOAT_LIST = 147; public static final int DATA_LONG = 148; + public static final int DRAW_BITMAP_SCALED = 149; + public static final int TEXT_LOOKUP = 151; + public static final int DRAW_ARC = 152; + public static final int TEXT_LOOKUP_INT = 153; + public static final int DATA_MAP_LOOKUP = 154; + public static final int TEXT_MEASURE = 155; + public static final int TEXT_LENGTH = 156; - /////////////////////////////////////////====================== + ///////////////////////////////////////// ====================== //////////////////////////////////////// // Layout commands @@ -163,10 +179,12 @@ public class Operations { 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 LAYOUT_STATE = 217; + public static final int COMPONENT_START = 2; public static final int COMPONENT_END = 3; + public static final int MODIFIER_WIDTH = 16; public static final int MODIFIER_HEIGHT = 67; public static final int MODIFIER_BACKGROUND = 55; @@ -178,6 +196,8 @@ public class Operations { public static final int MODIFIER_CLICK = 59; public static final int MODIFIER_CLICK_END = 214; + public static final int LOOP_START = 215; + public static final int LOOP_END = 216; public static final int MODIFIER_VISIBILITY = 211; public static final int HOST_ACTION = 209; @@ -185,6 +205,7 @@ public class Operations { public static final int VALUE_INTEGER_CHANGE_ACTION = 212; public static final int VALUE_STRING_CHANGE_ACTION = 213; + public static final int VALUE_INTEGER_EXPRESSION_CHANGE_ACTION = 218; public static final int ANIMATION_SPEC = 14; @@ -194,7 +215,7 @@ public class Operations { static class UniqueIntMap extends IntMap { @Override - public T put(int key, T value) { + public T put(int key, T value) { assert null == get(key) : "Opcode " + key + " already used in Operations !"; return super.put(key, value); } @@ -210,7 +231,7 @@ public class Operations { map.put(ROOT_CONTENT_BEHAVIOR, RootContentBehavior::read); map.put(ROOT_CONTENT_DESCRIPTION, RootContentDescription::read); - map.put(DRAW_ARC, DrawArc::read); + map.put(DRAW_SECTOR, DrawSector::read); map.put(DRAW_BITMAP, DrawBitmap::read); map.put(DRAW_CIRCLE, DrawCircle::read); map.put(DRAW_LINE, DrawLine::read); @@ -247,6 +268,12 @@ public class Operations { map.put(ID_LIST, DataListIds::read); map.put(FLOAT_LIST, DataListFloat::read); map.put(DATA_LONG, LongConstant::read); + map.put(DRAW_BITMAP_SCALED, DrawBitmapScaled::read); + map.put(TEXT_LOOKUP, TextLookup::read); + map.put(TEXT_LOOKUP_INT, TextLookupInt::read); + + map.put(LOOP_START, LoopOperation::read); + map.put(LOOP_END, LoopEnd::read); // Layout @@ -267,6 +294,9 @@ public class Operations { map.put(HOST_ACTION, HostActionOperation::read); map.put(HOST_NAMED_ACTION, HostNamedActionOperation::read); map.put(VALUE_INTEGER_CHANGE_ACTION, ValueIntegerChangeActionOperation::read); + map.put( + VALUE_INTEGER_EXPRESSION_CHANGE_ACTION, + ValueIntegerExpressionChangeActionOperation::read); map.put(VALUE_STRING_CHANGE_ACTION, ValueStringChangeActionOperation::read); map.put(LAYOUT_ROOT, RootLayoutComponent::read); @@ -278,6 +308,12 @@ public class Operations { map.put(LAYOUT_CANVAS_CONTENT, CanvasContent::read); map.put(LAYOUT_TEXT, TextLayout::read); + map.put(LAYOUT_STATE, StateLayout::read); + map.put(COMPONENT_VALUE, ComponentValue::read); + map.put(DRAW_ARC, DrawArc::read); + map.put(DATA_MAP_LOOKUP, DataMapLookup::read); + map.put(TEXT_MEASURE, TextMeasure::read); + map.put(TEXT_LENGTH, TextLength::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 4770b122d172d815f210496cafb40e9124735bb4..13d6f783a58656a94619115320ecfb11776b6d7a 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/PaintContext.java +++ b/core/java/com/android/internal/widget/remotecompose/core/PaintContext.java @@ -17,15 +17,14 @@ package com.android.internal.widget.remotecompose.core; import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle; -/** - * Specify an abstract paint context used by RemoteCompose commands to draw - */ +/** Specify an abstract paint context used by RemoteCompose commands to draw */ public abstract class PaintContext { 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; } @@ -46,43 +45,43 @@ public abstract class PaintContext { this.mContext = context; } - /** - * convenience function to call matrixSave() - */ + /** convenience function to call matrixSave() */ public void save() { matrixSave(); } - /** - * convenience function to call matrixRestore() - */ + /** convenience function to call matrixRestore() */ public void restore() { matrixRestore(); } - /** - * convenience function to call matrixSave() - */ + /** convenience function to call matrixSave() */ public void saveLayer(float x, float y, float width, float height) { // TODO matrixSave(); } - public abstract void drawBitmap(int imageId, - int srcLeft, int srcTop, int srcRight, int srcBottom, - int dstLeft, int dstTop, int dstRight, int dstBottom, - int cdId); + public abstract void drawBitmap( + int imageId, + int srcLeft, + int srcTop, + int srcRight, + int srcBottom, + int dstLeft, + int dstTop, + int dstRight, + int dstBottom, + int cdId); public abstract void scale(float scaleX, float scaleY); public abstract void translate(float translateX, float translateY); - public abstract void drawArc(float left, - float top, - float right, - float bottom, - float startAngle, - float sweepAngle); + public abstract void drawArc( + float left, float top, float right, float bottom, float startAngle, float sweepAngle); + + public abstract void drawSector( + float left, float top, float right, float bottom, float startAngle, float sweepAngle); public abstract void drawBitmap(int id, float left, float top, float right, float bottom); @@ -96,43 +95,29 @@ public abstract class PaintContext { public abstract void drawRect(float left, float top, float right, float bottom); - /** - * this caches the paint to a paint stack - */ - public abstract void savePaint(); + /** this caches the paint to a paint stack */ + public abstract void savePaint(); - /** - * This restores the paint form the paint stack - */ - public abstract void restorePaint(); + /** This restores the paint form the paint stack */ + public abstract void restorePaint(); - public abstract void drawRoundRect(float left, - float top, - float right, - float bottom, - float radiusX, - float radiusY); + public abstract void drawRoundRect( + float left, float top, float right, float bottom, float radiusX, float radiusY); public abstract void drawTextOnPath(int textId, int pathId, float hOffset, float vOffset); /** - * Return the dimensions (left, top, right, bottom). - * Relative to a drawTextRun x=0, y=0; + * Return the dimensions (left, top, right, bottom). Relative to a drawTextRun x=0, y=0; * * @param textId * @param start - * @param end if end is -1 it means the whole string - * @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 end if end is -1 it means the whole string + * @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, - int flags, - float[]bounds); + public abstract void getTextBounds(int textId, int start, int end, int flags, float[] bounds); /** * Draw a text starting ast x,y @@ -146,38 +131,38 @@ public abstract class PaintContext { * @param y * @param rtl */ - public abstract void drawTextRun(int textId, - int start, - int end, - int contextStart, - int contextEnd, - float x, - float y, - boolean rtl); + public abstract void drawTextRun( + int textId, + int start, + int end, + int contextStart, + int contextEnd, + float x, + float y, + boolean rtl); /** * Draw an interpolation between two paths + * * @param path1Id * @param path2Id - * @param tween 0.0 = is path1 1.0 is path2 + * @param tween 0.0 = is path1 1.0 is path2 * @param start * @param stop */ - public abstract void drawTweenPath(int path1Id, - int path2Id, - float tween, - float start, - float stop); + public abstract void drawTweenPath( + int path1Id, int path2Id, float tween, float start, float stop); /** * This applies changes to the current paint + * * @param mPaintData the list of changes */ public abstract void applyPaint(PaintBundle mPaintData); /** - * Scale the rendering by scaleX and saleY (1.0 = no scale). - * Scaling is done about centerX,centerY. + * Scale the rendering by scaleX and saleY (1.0 = no scale). Scaling is done about + * centerX,centerY. * * @param scaleX * @param scaleY @@ -188,6 +173,7 @@ public abstract class PaintContext { /** * Translate the rendering + * * @param translateX * @param translateY */ @@ -195,33 +181,30 @@ public abstract class PaintContext { /** * Skew the rendering + * * @param skewX * @param skewY */ public abstract void matrixSkew(float skewX, float skewY); /** - * Rotate the rendering. - * Note rotates are cumulative. + * Rotate the rendering. Note rotates are cumulative. + * * @param rotate angle to rotate * @param pivotX x-coordinate about which to rotate * @param pivotY y-coordinate about which to rotate */ public abstract void matrixRotate(float rotate, float pivotX, float pivotY); - /** - * Save the current state of the transform - */ + /** Save the current state of the transform */ public abstract void matrixSave(); - /** - * Restore the previously saved state of the transform - */ + /** Restore the previously saved state of the transform */ public abstract void matrixRestore(); /** - * Set the clip to a rectangle. - * Drawing outside the current clip region will have no effect + * Set the clip to a rectangle. Drawing outside the current clip region will have no effect + * * @param left * @param top * @param right @@ -231,13 +214,15 @@ public abstract class PaintContext { /** * Clip based on a path. + * * @param pathId * @param regionOp */ public abstract void clipPath(int pathId, int regionOp); /** - * Clip based ona round rect + * Clip based ona round rect + * * @param width * @param height * @param topStart @@ -245,13 +230,15 @@ public abstract class PaintContext { * @param bottomStart * @param bottomEnd */ - public abstract void roundedClipRect(float width, float height, - float topStart, float topEnd, - float bottomStart, float bottomEnd); - - /** - * Reset the paint - */ + public abstract void roundedClipRect( + float width, + float height, + float topStart, + float topEnd, + float bottomStart, + float bottomEnd); + + /** Reset the paint */ public abstract void reset(); /** @@ -285,4 +272,3 @@ public abstract class PaintContext { mNeedsRepaint = true; } } - diff --git a/core/java/com/android/internal/widget/remotecompose/core/PaintOperation.java b/core/java/com/android/internal/widget/remotecompose/core/PaintOperation.java index 4a1ccc9d3156139ebf04935dfe91ddb5338fac57..9b7b50f775b0f73a3754b825ab53ef2b865779a7 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/PaintOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/PaintOperation.java @@ -16,8 +16,8 @@ package com.android.internal.widget.remotecompose.core; /** - * PaintOperation interface, used for operations aimed at painting - * (while any operation _can_ paint, this make it a little more explicit) + * PaintOperation interface, used for operations aimed at painting (while any operation _can_ paint, + * this make it a little more explicit) */ public abstract class PaintOperation implements Operation { @@ -37,4 +37,13 @@ public abstract class PaintOperation implements Operation { } public abstract void paint(PaintContext context); + + /** + * Will return true if the operation is similar enough to the current one, in the context of an + * animated transition. + */ + public boolean suitableForTransition(Operation op) { + // by default expects the op to not be suitable + return false; + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/Platform.java b/core/java/com/android/internal/widget/remotecompose/core/Platform.java index 903dab49cd061235f07ab22fa4d04e3b4b400550..6725e7e6ac2b409d11a086fef33732919ea49ac6 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/Platform.java +++ b/core/java/com/android/internal/widget/remotecompose/core/Platform.java @@ -15,13 +15,36 @@ */ package com.android.internal.widget.remotecompose.core; -/** - * Services that are needed to be provided by the platform during encoding. - */ +/** Services that are needed to be provided by the platform during encoding. */ public interface Platform { byte[] imageToByteArray(Object image); + int getImageWidth(Object image); + int getImageHeight(Object image); - float[] pathToFloatArray(Object image); -} + float[] pathToFloatArray(Object path); + + Platform None = + new Platform() { + @Override + public byte[] imageToByteArray(Object image) { + throw new UnsupportedOperationException(); + } + + @Override + public int getImageWidth(Object image) { + throw new UnsupportedOperationException(); + } + + @Override + public int getImageHeight(Object image) { + throw new UnsupportedOperationException(); + } + + @Override + public float[] pathToFloatArray(Object path) { + throw new UnsupportedOperationException(); + } + }; +} 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 6b1828f0448fff220709a8ec8686ad48b8be2ca8..5b5adc28a676f6d41edfef93f0ff47513bfbecbd 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java +++ b/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java @@ -25,15 +25,18 @@ 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.DataMapLookup; 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; +import com.android.internal.widget.remotecompose.core.operations.DrawBitmapScaled; import com.android.internal.widget.remotecompose.core.operations.DrawCircle; import com.android.internal.widget.remotecompose.core.operations.DrawLine; import com.android.internal.widget.remotecompose.core.operations.DrawOval; import com.android.internal.widget.remotecompose.core.operations.DrawPath; import com.android.internal.widget.remotecompose.core.operations.DrawRect; import com.android.internal.widget.remotecompose.core.operations.DrawRoundRect; +import com.android.internal.widget.remotecompose.core.operations.DrawSector; import com.android.internal.widget.remotecompose.core.operations.DrawText; import com.android.internal.widget.remotecompose.core.operations.DrawTextAnchored; import com.android.internal.widget.remotecompose.core.operations.DrawTextOnPath; @@ -55,6 +58,10 @@ import com.android.internal.widget.remotecompose.core.operations.RootContentBeha import com.android.internal.widget.remotecompose.core.operations.RootContentDescription; 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.TextLength; +import com.android.internal.widget.remotecompose.core.operations.TextLookup; +import com.android.internal.widget.remotecompose.core.operations.TextLookupInt; +import com.android.internal.widget.remotecompose.core.operations.TextMeasure; 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; @@ -62,11 +69,14 @@ import com.android.internal.widget.remotecompose.core.operations.layout.CanvasCo 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.LoopEnd; +import com.android.internal.widget.remotecompose.core.operations.layout.LoopOperation; 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.StateLayout; 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; @@ -76,7 +86,9 @@ import com.android.internal.widget.remotecompose.core.operations.layout.modifier 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.BooleanConstant; import com.android.internal.widget.remotecompose.core.types.IntegerConstant; +import com.android.internal.widget.remotecompose.core.types.LongConstant; import java.io.File; import java.io.FileInputStream; @@ -86,9 +98,7 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; -/** - * Provides an abstract buffer to encode/decode RemoteCompose operations - */ +/** Provides an abstract buffer to encode/decode RemoteCompose operations */ public class RemoteComposeBuffer { public static final int EASING_CUBIC_STANDARD = FloatAnimation.CUBIC_STANDARD; public static final int EASING_CUBIC_ACCELERATE = FloatAnimation.CUBIC_ACCELERATE; @@ -156,13 +166,13 @@ public class RemoteComposeBuffer { /** * Insert a header * - * @param width the width of the document in pixels - * @param height the height of the document in pixels + * @param width the width of the document in pixels + * @param height the height of the document in pixels * @param contentDescription content description of the document - * @param capabilities bitmask indicating needed capabilities (unused for now) + * @param capabilities bitmask indicating needed capabilities (unused for now) */ - public void header(int width, int height, String contentDescription, - float density, long capabilities) { + public void header( + int width, int height, String contentDescription, float density, long capabilities) { Header.apply(mBuffer, width, height, density, capabilities); int contentDescriptionId = 0; if (contentDescription != null) { @@ -174,8 +184,8 @@ public class RemoteComposeBuffer { /** * Insert a header * - * @param width the width of the document in pixels - * @param height the height of the document in pixels + * @param width the width of the document in pixels + * @param height the height of the document in pixels * @param contentDescription content description of the document */ public void header(int width, int height, String contentDescription) { @@ -185,23 +195,31 @@ public class RemoteComposeBuffer { /** * Insert a bitmap * - * @param image an opaque image that we'll add to the buffer - * @param imageWidth the width of the image + * @param image an opaque image that we'll add to the buffer + * @param imageWidth the width of the image * @param imageHeight the height of the image - * @param srcLeft left coordinate of the source area - * @param srcTop top coordinate of the source area - * @param srcRight right coordinate of the source area - * @param srcBottom bottom coordinate of the source area - * @param dstLeft left coordinate of the destination area - * @param dstTop top coordinate of the destination area - * @param dstRight right coordinate of the destination area - * @param dstBottom bottom coordinate of the destination area - */ - public void drawBitmap(Object image, - int imageWidth, int imageHeight, - int srcLeft, int srcTop, int srcRight, int srcBottom, - int dstLeft, int dstTop, int dstRight, int dstBottom, - String contentDescription) { + * @param srcLeft left coordinate of the source area + * @param srcTop top coordinate of the source area + * @param srcRight right coordinate of the source area + * @param srcBottom bottom coordinate of the source area + * @param dstLeft left coordinate of the destination area + * @param dstTop top coordinate of the destination area + * @param dstRight right coordinate of the destination area + * @param dstBottom bottom coordinate of the destination area + */ + public void drawBitmap( + Object image, + int imageWidth, + int imageHeight, + int srcLeft, + int srcTop, + int srcRight, + int srcBottom, + int dstLeft, + int dstTop, + int dstRight, + int dstBottom, + String contentDescription) { int imageId = mRemoteComposeState.dataGetId(image); if (imageId == -1) { imageId = mRemoteComposeState.cacheData(image); @@ -213,14 +231,39 @@ public class RemoteComposeBuffer { contentDescriptionId = addText(contentDescription); } DrawBitmapInt.apply( - mBuffer, imageId, srcLeft, srcTop, srcRight, srcBottom, - dstLeft, dstTop, dstRight, dstBottom, contentDescriptionId - ); + mBuffer, + imageId, + srcLeft, + srcTop, + srcRight, + srcBottom, + dstLeft, + dstTop, + dstRight, + dstBottom, + contentDescriptionId); } /** - * Adds a text string data to the stream and returns its id - * Will be used to insert string with bitmaps etc. + * look up map and return the id of the object looked up + * + * @param mapId the map to access + * @param strId the string to lookup + * @return id containing the result of the lookup + */ + public int mapLookup(int mapId, int strId) { + int hash = mapId + strId * 33; + int id = mRemoteComposeState.dataGetId(hash); + if (id == -1) { + id = mRemoteComposeState.cacheData(hash); + DataMapLookup.apply(mBuffer, id, mapId, strId); + } + return id; + } + + /** + * Adds a text string data to the stream and returns its id Will be used to insert string with + * bitmaps etc. * * @param text the string to inject in the buffer */ @@ -236,13 +279,13 @@ public class RemoteComposeBuffer { /** * Add a click area to the document * - * @param id the id of the click area, reported in the click listener callback + * @param id the id of the click area, reported in the click listener callback * @param contentDescription the content description of that click area (accessibility) - * @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 + * @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 */ public void addClickArea( int id, @@ -251,8 +294,7 @@ public class RemoteComposeBuffer { float top, float right, float bottom, - String metadata - ) { + String metadata) { int contentDescriptionId = 0; if (contentDescription != null) { contentDescriptionId = addText(contentDescription); @@ -261,77 +303,204 @@ public class RemoteComposeBuffer { if (metadata != null) { metadataId = addText(metadata); } - ClickArea.apply(mBuffer, id, contentDescriptionId, - left, top, right, bottom, metadataId); + ClickArea.apply(mBuffer, id, contentDescriptionId, left, top, right, bottom, metadataId); } /** * 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) { RootContentBehavior.apply(mBuffer, scroll, alignment, sizing, mode); } /** - * add Drawing the specified arc, which will be scaled to fit inside the specified oval. - *
    + * add Drawing the specified arc, which will be scaled to fit inside the specified oval.
    * If the start angle is negative or >= 360, the start angle is treated as start angle modulo - * 360. - *
    + * 360.
    * If the sweep angle is >= 360, then the oval is drawn completely. Note that this differs * slightly from SkPath::arcTo, which treats the sweep angle modulo 360. If the sweep angle is - * negative, the sweep angle is treated as sweep angle modulo 360 - *
    + * negative, the sweep angle is treated as sweep angle modulo 360
    * The arc is drawn clockwise. An angle of 0 degrees correspond to the geometric angle of 0 - * degrees (3 o'clock on a watch.) - *
    + * degrees (3 o'clock on a watch.)
    * - * @param left left coordinate of oval used to define the shape and size of the arc - * @param top top coordinate of oval used to define the shape and size of the arc - * @param right right coordinate of oval used to define the shape and size of the arc - * @param bottom bottom coordinate of oval used to define the shape and size of the arc + * @param left left coordinate of oval used to define the shape and size of the arc + * @param top top coordinate of oval used to define the shape and size of the arc + * @param right right coordinate of oval used to define the shape and size of the arc + * @param bottom bottom coordinate of oval used to define the shape and size of the arc * @param startAngle Starting angle (in degrees) where the arc begins * @param sweepAngle Sweep angle (in degrees) measured clockwise */ - public void addDrawArc(float left, - float top, - float right, - float bottom, - float startAngle, - float sweepAngle) { + public void addDrawArc( + float left, float top, float right, float bottom, float startAngle, float sweepAngle) { DrawArc.apply(mBuffer, left, top, right, bottom, startAngle, sweepAngle); } /** - * @param image The bitmap to be drawn - * @param left left coordinate of rectangle that the bitmap will be to fit into - * @param top top coordinate of rectangle that the bitmap will be to fit into - * @param right right coordinate of rectangle that the bitmap will be to fit into - * @param bottom bottom coordinate of rectangle that the bitmap will be to fit into + * add Drawing the specified sector, which will be scaled to fit inside the specified oval.
    + * If the start angle is negative or >= 360, the start angle is treated as start angle modulo + * 360.
    + * If the sweep angle is >= 360, then the oval is drawn completely. Note that this differs + * slightly from SkPath::arcTo, which treats the sweep angle modulo 360. If the sweep angle is + * negative, the sweep angle is treated as sweep angle modulo 360
    + * The arc is drawn clockwise. An angle of 0 degrees correspond to the geometric angle of 0 + * degrees (3 o'clock on a watch.)
    + * + * @param left left coordinate of oval used to define the shape and size of the arc + * @param top top coordinate of oval used to define the shape and size of the arc + * @param right right coordinate of oval used to define the shape and size of the arc + * @param bottom bottom coordinate of oval used to define the shape and size of the arc + * @param startAngle Starting angle (in degrees) where the arc begins + * @param sweepAngle Sweep angle (in degrees) measured clockwise + */ + public void addDrawSector( + float left, float top, float right, float bottom, float startAngle, float sweepAngle) { + DrawSector.apply(mBuffer, left, top, right, bottom, startAngle, sweepAngle); + } + + /** + * @param image The bitmap to be drawn + * @param left left coordinate of rectangle that the bitmap will be to fit into + * @param top top coordinate of rectangle that the bitmap will be to fit into + * @param right right coordinate of rectangle that the bitmap will be to fit into + * @param bottom bottom coordinate of rectangle that the bitmap will be to fit into + * @param contentDescription content description of the image + */ + public void addDrawBitmap( + Object image, + float left, + float top, + float right, + float bottom, + String contentDescription) { + int imageId = mRemoteComposeState.dataGetId(image); + if (imageId == -1) { + imageId = mRemoteComposeState.cacheData(image); + byte[] data = mPlatform.imageToByteArray(image); + int imageWidth = mPlatform.getImageWidth(image); + int imageHeight = mPlatform.getImageHeight(image); + + BitmapData.apply(mBuffer, imageId, imageWidth, imageHeight, data); + } + int contentDescriptionId = 0; + if (contentDescription != null) { + contentDescriptionId = addText(contentDescription); + } + DrawBitmap.apply(mBuffer, imageId, left, top, right, bottom, contentDescriptionId); + } + + /** + * @param imageId The Id bitmap to be drawn + * @param left left coordinate of rectangle that the bitmap will be to fit into + * @param top top coordinate of rectangle that the bitmap will be to fit into + * @param right right coordinate of rectangle that the bitmap will be to fit into + * @param bottom bottom coordinate of rectangle that the bitmap will be to fit into * @param contentDescription content description of the image */ - public void addDrawBitmap(Object image, - float left, - float top, - float right, - float bottom, - String contentDescription) { + public void addDrawBitmap( + int imageId, + float left, + float top, + float right, + float bottom, + String contentDescription) { + int contentDescriptionId = 0; + if (contentDescription != null) { + contentDescriptionId = addText(contentDescription); + } + DrawBitmap.apply(mBuffer, imageId, left, top, right, bottom, contentDescriptionId); + } + + /** + * @param image The bitmap to be drawn + * @param srcLeft left coordinate in the source bitmap will be to extracted + * @param srcTop top coordinate in the source bitmap will be to extracted + * @param srcRight right coordinate in the source bitmap will be to extracted + * @param srcBottom bottom coordinate in the source bitmap will be to extracted + * @param dstLeft left coordinate of rectangle that the bitmap will be to fit into + * @param dstTop top coordinate of rectangle that the bitmap will be to fit into + * @param dstRight right coordinate of rectangle that the bitmap will be to fit into + * @param dstBottom bottom coordinate of rectangle that the bitmap will be to fit into + * @param scaleType The type of scaling to allow the image to fit. + * @param scaleFactor the scale factor when scale type is FIXED_SCALE (type = 7) + * @param contentDescription associate a string with image for accessibility + */ + public void drawScaledBitmap( + Object image, + float srcLeft, + float srcTop, + float srcRight, + float srcBottom, + float dstLeft, + float dstTop, + float dstRight, + float dstBottom, + int scaleType, + float scaleFactor, + String contentDescription) { + int imageId = mRemoteComposeState.dataGetId(image); + if (imageId == -1) { + imageId = mRemoteComposeState.cacheData(image); + byte[] data = mPlatform.imageToByteArray(image); + int imageWidth = mPlatform.getImageWidth(image); + int imageHeight = mPlatform.getImageHeight(image); + + BitmapData.apply(mBuffer, imageId, imageWidth, imageHeight, data); + } + int contentDescriptionId = 0; + if (contentDescription != null) { + contentDescriptionId = addText(contentDescription); + } + DrawBitmapScaled.apply( + mBuffer, + imageId, + srcLeft, + srcTop, + srcRight, + srcBottom, + dstLeft, + dstTop, + dstRight, + dstBottom, + scaleType, + scaleFactor, + contentDescriptionId); + } + + /** + * Transmit bitmap so the you can use the id form. This is useful if + * + * @param image drawScaledBitmap + * @return id of the image useful with + */ + public int addBitmap(Object image) { + int imageId = mRemoteComposeState.dataGetId(image); + if (imageId == -1) { + imageId = mRemoteComposeState.cacheData(image); + byte[] data = mPlatform.imageToByteArray(image); + int imageWidth = mPlatform.getImageWidth(image); + int imageHeight = mPlatform.getImageHeight(image); + + BitmapData.apply(mBuffer, imageId, imageWidth, imageHeight, data); + } + return imageId; + } + + /** + * Transmit bitmap so the you can use the id form. This is useful if + * + * @param image drawScaledBitmap + * @return id of the image useful with + */ + public int addBitmap(Object image, String name) { int imageId = mRemoteComposeState.dataGetId(image); if (imageId == -1) { imageId = mRemoteComposeState.cacheData(image); @@ -340,14 +509,67 @@ public class RemoteComposeBuffer { int imageHeight = mPlatform.getImageHeight(image); BitmapData.apply(mBuffer, imageId, imageWidth, imageHeight, data); + setBitmapName(imageId, name); } + + return imageId; + } + + /** + * This defines the name of the color given the id. + * + * @param id of the Bitmap + * @param name Name of the color + */ + public void setBitmapName(int id, String name) { + NamedVariable.apply(mBuffer, id, NamedVariable.IMAGE_TYPE, name); + } + + /** + * @param imageId The id of the bitmap to be drawn + * @param srcLeft left coordinate in the source bitmap will be to extracted + * @param srcTop top coordinate in the source bitmap will be to extracted + * @param srcRight right coordinate in the source bitmap will be to extracted + * @param srcBottom bottom coordinate in the source bitmap will be to extracted + * @param dstLeft left coordinate of rectangle that the bitmap will be to fit into + * @param dstTop top coordinate of rectangle that the bitmap will be to fit into + * @param dstRight right coordinate of rectangle that the bitmap will be to fit into + * @param dstBottom bottom coordinate of rectangle that the bitmap will be to fit into + * @param scaleType The type of scaling to allow the image to fit. + * @param scaleFactor the scale factor when scale type is FIXED_SCALE (type = 7) + * @param contentDescription associate a string with image for accessibility + */ + public void drawScaledBitmap( + int imageId, + float srcLeft, + float srcTop, + float srcRight, + float srcBottom, + float dstLeft, + float dstTop, + float dstRight, + float dstBottom, + int scaleType, + float scaleFactor, + String contentDescription) { int contentDescriptionId = 0; if (contentDescription != null) { contentDescriptionId = addText(contentDescription); } - DrawBitmap.apply( - mBuffer, imageId, left, top, right, bottom, contentDescriptionId - ); + DrawBitmapScaled.apply( + mBuffer, + imageId, + srcLeft, + srcTop, + srcRight, + srcBottom, + dstLeft, + dstTop, + dstRight, + dstBottom, + scaleType, + scaleFactor, + contentDescriptionId); } /** @@ -356,7 +578,7 @@ public class RemoteComposeBuffer { * * @param centerX The x-coordinate of the center of the circle to be drawn * @param centerY The y-coordinate of the center of the circle to be drawn - * @param radius The radius of the circle to be drawn + * @param radius The radius of the circle to be drawn */ public void addDrawCircle(float centerX, float centerY, float radius) { DrawCircle.apply(mBuffer, centerX, centerY, radius); @@ -378,9 +600,9 @@ public class RemoteComposeBuffer { /** * Draw the specified oval using the specified paint. * - * @param left left coordinate of oval - * @param top top coordinate of oval - * @param right right coordinate of oval + * @param left left coordinate of oval + * @param top top coordinate of oval + * @param right right coordinate of oval * @param bottom bottom coordinate of oval */ public void addDrawOval(float left, float top, float right, float bottom) { @@ -389,9 +611,9 @@ public class RemoteComposeBuffer { /** * Draw the specified path - *

    - * Note: path objects are not immutable - * modifying them and calling this will not change the drawing + * + *

    Note: path objects are not immutable modifying them and calling this will not change the + * drawing * * @param path The path to be drawn */ @@ -415,9 +637,9 @@ public class RemoteComposeBuffer { /** * Draw the specified Rect * - * @param left left coordinate of rectangle to be drawn - * @param top top coordinate of rectangle to be drawn - * @param right right coordinate of rectangle to be drawn + * @param left left coordinate of rectangle to be drawn + * @param top top coordinate of rectangle to be drawn + * @param right right coordinate of rectangle to be drawn * @param bottom bottom coordinate of rectangle to be drawn */ public void addDrawRect(float left, float top, float right, float bottom) { @@ -427,23 +649,23 @@ public class RemoteComposeBuffer { /** * Draw the specified round-rect * - * @param left left coordinate of rectangle to be drawn - * @param top left coordinate of rectangle to be drawn - * @param right left coordinate of rectangle to be drawn - * @param bottom left coordinate of rectangle to be drawn + * @param left left coordinate of rectangle to be drawn + * @param top left coordinate of rectangle to be drawn + * @param right left coordinate of rectangle to be drawn + * @param bottom left coordinate of rectangle to be drawn * @param radiusX The x-radius of the oval used to round the corners * @param radiusY The y-radius of the oval used to round the corners */ - public void addDrawRoundRect(float left, float top, float right, float bottom, - float radiusX, float radiusY) { + public void addDrawRoundRect( + float left, float top, float right, float bottom, float radiusX, float radiusY) { DrawRoundRect.apply(mBuffer, left, top, right, bottom, radiusX, radiusY); } /** * Draw the text, with origin at (x,y) along the specified path. * - * @param text The text to be drawn - * @param path The path the text should follow for its baseline + * @param text The text to be drawn + * @param path The path the text should follow for its baseline * @param hOffset The distance along the path to add to the text's starting position * @param vOffset The distance above(-) or below(+) the path to position the text */ @@ -457,91 +679,79 @@ public class RemoteComposeBuffer { } /** - * Draw the text, with origin at (x,y). The origin is interpreted - * based on the Align setting in the paint. + * Draw the text, with origin at (x,y). The origin is interpreted based on the Align setting in + * the paint. * - * @param text The text to be drawn - * @param start The index of the first character in text to draw - * @param end (end - 1) is the index of the last character in text to draw + * @param text The text to be drawn + * @param start The index of the first character in text to draw + * @param end (end - 1) is the index of the last character in text to draw * @param contextStart * @param contextEnd - * @param x The x-coordinate of the origin of the text being drawn - * @param y The y-coordinate of the baseline of the text being drawn - * @param rtl Draw RTTL - */ - public void addDrawTextRun(String text, - int start, - int end, - int contextStart, - int contextEnd, - float x, - float y, - boolean rtl) { + * @param x The x-coordinate of the origin of the text being drawn + * @param y The y-coordinate of the baseline of the text being drawn + * @param rtl Draw RTTL + */ + public void addDrawTextRun( + String text, + int start, + int end, + int contextStart, + int contextEnd, + float x, + float y, + boolean rtl) { int textId = addText(text); - DrawText.apply( - mBuffer, textId, start, end, - contextStart, contextEnd, x, y, rtl); + DrawText.apply(mBuffer, textId, start, end, contextStart, contextEnd, x, y, rtl); } /** - * Draw the text, with origin at (x,y). The origin is interpreted - * based on the Align setting in the paint. + * Draw the text, with origin at (x,y). The origin is interpreted based on the Align setting in + * the paint. * - * @param textId The text to be drawn - * @param start The index of the first character in text to draw - * @param end (end - 1) is the index of the last character in text to draw + * @param textId The text to be drawn + * @param start The index of the first character in text to draw + * @param end (end - 1) is the index of the last character in text to draw * @param contextStart * @param contextEnd - * @param x The x-coordinate of the origin of the text being drawn - * @param y The y-coordinate of the baseline of the text being drawn - * @param rtl Draw RTTL - */ - public void addDrawTextRun(int textId, - int start, - int end, - int contextStart, - int contextEnd, - float x, - float y, - boolean rtl) { - DrawText.apply( - mBuffer, textId, start, end, - contextStart, contextEnd, x, y, rtl); - } - - /** - * Draw a text on canvas at relative to position (x, y), - * offset panX and panY. - *
    - * The panning factors (panX, panY) mapped to the - * resulting bounding box of the text, in such a way that a - * panning factor of (0.0, 0.0) would center the text at (x, y) + * @param x The x-coordinate of the origin of the text being drawn + * @param y The y-coordinate of the baseline of the text being drawn + * @param rtl Draw RTTL + */ + public void addDrawTextRun( + int textId, + int start, + int end, + int contextStart, + int contextEnd, + float x, + float y, + boolean rtl) { + DrawText.apply(mBuffer, textId, start, end, contextStart, contextEnd, x, y, rtl); + } + + /** + * Draw a text on canvas at relative to position (x, y), offset panX and panY.
    + * The panning factors (panX, panY) mapped to the resulting bounding box of the text, in such a + * way that a panning factor of (0.0, 0.0) would center the text at (x, y) + * *

      - *
    • Panning of -1.0, -1.0 - the text above & right of x,y.
    • - *
    • Panning of 1.0, 1.0 - the text is below and to the left
    • - *
    • Panning of 1.0, 0.0 - the test is centered & to the right of x,y
    • + *
    • Panning of -1.0, -1.0 - the text above & right of x,y. + *
    • Panning of 1.0, 1.0 - the text is below and to the left + *
    • Panning of 1.0, 0.0 - the test is centered & to the right of x,y *
    + * * Setting panY to NaN results in y being the baseline of the text. * - * @param text text to draw - * @param x Coordinate of the Anchor - * @param y Coordinate of the Anchor - * @param panX justifies text -1.0=right, 0.0=center, 1.0=left - * @param panY position text -1.0=above, 0.0=center, 1.0=below, Nan=baseline + * @param text text to draw + * @param x Coordinate of the Anchor + * @param y Coordinate of the Anchor + * @param panX justifies text -1.0=right, 0.0=center, 1.0=left + * @param panY position text -1.0=above, 0.0=center, 1.0=below, Nan=baseline * @param flags 1 = RTL */ - public void drawTextAnchored(String text, - float x, - float y, - float panX, - float panY, - int flags) { + public void drawTextAnchored(String text, float x, float y, float panX, float panY, int flags) { int textId = addText(text); - DrawTextAnchored.apply( - mBuffer, textId, - x, y, - panX, panY, - flags); + DrawTextAnchored.apply(mBuffer, textId, x, y, panX, panY, flags); } /** @@ -556,6 +766,7 @@ public class RemoteComposeBuffer { /** * Merge two text (from id's) output one id + * * @param id1 left id * @param id2 right id * @return new id that merges the two text @@ -576,77 +787,68 @@ public class RemoteComposeBuffer { /** * Create a TextFromFloat command which creates text from a Float. * - * @param value The value to convert + * @param value The value to convert * @param digitsBefore the digits before the decimal point - * @param digitsAfter the digits after the decimal point - * @param flags configure the behaviour using PAD_PRE_* and PAD_AFTER* flags + * @param digitsAfter the digits after the decimal point + * @param flags configure the behaviour using PAD_PRE_* and PAD_AFTER* flags * @return id of the string that can be passed to drawTextAnchored */ - public int createTextFromFloat(float value, short digitsBefore, - short digitsAfter, int flags) { - String placeHolder = Utils.floatToString(value) - + "(" + digitsBefore + "," + digitsAfter + "," + flags + ")"; + public int createTextFromFloat(float value, short digitsBefore, short digitsAfter, int flags) { + String placeHolder = + Utils.floatToString(value) + + "(" + + digitsBefore + + "," + + digitsAfter + + "," + + flags + + ")"; int id = mRemoteComposeState.dataGetId(placeHolder); if (id == -1) { id = mRemoteComposeState.cacheData(placeHolder); // TextData.apply(mBuffer, id, text); } - TextFromFloat.apply(mBuffer, id, value, digitsBefore, - digitsAfter, flags); + TextFromFloat.apply(mBuffer, id, value, digitsBefore, digitsAfter, flags); return id; } /** - * Draw a text on canvas at relative to position (x, y), - * offset panX and panY. - *
    - * The panning factors (panX, panY) mapped to the - * resulting bounding box of the text, in such a way that a - * panning factor of (0.0, 0.0) would center the text at (x, y) + * Draw a text on canvas at relative to position (x, y), offset panX and panY.
    + * The panning factors (panX, panY) mapped to the resulting bounding box of the text, in such a + * way that a panning factor of (0.0, 0.0) would center the text at (x, y) + * *
      - *
    • Panning of -1.0, -1.0 - the text above & right of x,y.
    • - *
    • Panning of 1.0, 1.0 - the text is below and to the left
    • - *
    • Panning of 1.0, 0.0 - the test is centered & to the right of x,y
    • + *
    • Panning of -1.0, -1.0 - the text above & right of x,y. + *
    • Panning of 1.0, 1.0 - the text is below and to the left + *
    • Panning of 1.0, 0.0 - the test is centered & to the right of x,y *
    + * * Setting panY to NaN results in y being the baseline of the text. * * @param textId text to draw - * @param x Coordinate of the Anchor - * @param y Coordinate of the Anchor - * @param panX justifies text -1.0=right, 0.0=center, 1.0=left - * @param panY position text -1.0=above, 0.0=center, 1.0=below, Nan=baseline - * @param flags 1 = RTL + * @param x Coordinate of the Anchor + * @param y Coordinate of the Anchor + * @param panX justifies text -1.0=right, 0.0=center, 1.0=left + * @param panY position text -1.0=above, 0.0=center, 1.0=below, Nan=baseline + * @param flags 1 = RTL */ - public void drawTextAnchored(int textId, - float x, - float y, - float panX, - float panY, - int flags) { + public void drawTextAnchored(int textId, float x, float y, float panX, float panY, int flags) { - DrawTextAnchored.apply( - mBuffer, textId, - x, y, - panX, panY, - flags); + DrawTextAnchored.apply(mBuffer, textId, x, y, panX, panY, flags); } /** * draw an interpolation between two paths that have the same pattern - *

    - * Warning paths objects are not immutable and this is not taken into consideration + * + *

    Warning paths objects are not immutable and this is not taken into consideration * * @param path1 The path1 to be drawn between * @param path2 The path2 to be drawn between * @param tween The ratio of path1 and path2 to 0 = all path 1, 1 = all path2 * @param start The start of the subrange of paths to draw 0 = start form start 0.5 is half way - * @param stop The end of the subrange of paths to draw 1 = end at the end 0.5 is end half way + * @param stop The end of the subrange of paths to draw 1 = end at the end 0.5 is end half way */ - public void addDrawTweenPath(Object path1, - Object path2, - float tween, - float start, - float stop) { + public void addDrawTweenPath(Object path1, Object path2, float tween, float start, float stop) { int path1Id = mRemoteComposeState.dataGetId(path1); if (path1Id == -1) { // never been seen before path1Id = addPathData(path1); @@ -663,18 +865,12 @@ public class RemoteComposeBuffer { * * @param path1Id The path1 to be drawn between * @param path2Id The path2 to be drawn between - * @param tween The ratio of path1 and path2 to 0 = all path 1, 1 = all path2 - * @param start The start of the subrange of paths to draw 0 = start form start .5 is 1/2 way - * @param stop The end of the subrange of paths to draw 1 = end at the end .5 is end 1/2 way + * @param tween The ratio of path1 and path2 to 0 = all path 1, 1 = all path2 + * @param start The start of the subrange of paths to draw 0 = start form start .5 is 1/2 way + * @param stop The end of the subrange of paths to draw 1 = end at the end .5 is end 1/2 way */ - public void addDrawTweenPath(int path1Id, - int path2Id, - float tween, - float start, - float stop) { - DrawTweenPath.apply( - mBuffer, path1Id, path2Id, - tween, start, stop); + public void addDrawTweenPath(int path1Id, int path2Id, float tween, float start, float stop) { + DrawTweenPath.apply(mBuffer, path1Id, path2Id, tween, start, stop); } /** @@ -692,11 +888,13 @@ public class RemoteComposeBuffer { /** * Adds a paint Bundle to the doc + * * @param paint */ public void addPaint(PaintBundle paint) { PaintData.apply(mBuffer, paint); } + /////////////////////////////////////////////////////////////////////////////////////////////// public void inflateFromBuffer(ArrayList operations) { @@ -741,30 +939,29 @@ public class RemoteComposeBuffer { return "v1.0"; } - public static RemoteComposeBuffer fromFile(String path, - RemoteComposeState remoteComposeState) + public static RemoteComposeBuffer fromFile(String path, RemoteComposeState remoteComposeState) throws IOException { RemoteComposeBuffer buffer = new RemoteComposeBuffer(remoteComposeState); read(new File(path), buffer); return buffer; } - public RemoteComposeBuffer fromFile(File file, - RemoteComposeState remoteComposeState) throws IOException { + public RemoteComposeBuffer fromFile(File file, RemoteComposeState remoteComposeState) + throws IOException { RemoteComposeBuffer buffer = new RemoteComposeBuffer(remoteComposeState); read(file, buffer); return buffer; } - public static RemoteComposeBuffer fromInputStream(InputStream inputStream, - RemoteComposeState remoteComposeState) { + public static RemoteComposeBuffer fromInputStream( + InputStream inputStream, RemoteComposeState remoteComposeState) { RemoteComposeBuffer buffer = new RemoteComposeBuffer(remoteComposeState); read(inputStream, buffer); return buffer; } - RemoteComposeBuffer copyFromOperations(ArrayList operations, - RemoteComposeBuffer buffer) { + RemoteComposeBuffer copyFromOperations( + ArrayList operations, RemoteComposeBuffer buffer) { for (Operation operation : operations) { operation.write(buffer.mBuffer); @@ -832,9 +1029,9 @@ public class RemoteComposeBuffer { } /** - * This call balances a previous call to save(), and is used to remove all - * modifications to the matrix/clip state since the last save call. - * Do not call restore() more times than save() was called. + * This call balances a previous call to save(), and is used to remove all modifications to the + * matrix/clip state since the last save call. Do not call restore() more times than save() was + * called. */ public void addMatrixRestore() { MatrixRestore.apply(mBuffer); @@ -842,11 +1039,10 @@ public class RemoteComposeBuffer { /** * Add a saves the current matrix and clip onto a private stack. - *

    - * Subsequent calls to translate,scale,rotate,skew,concat or clipRect, - * clipPath will all operate as usual, but when the balancing call to - * restore() is made, those calls will be forgotten, and the settings that - * existed before the save() will be reinstated. + * + *

    Subsequent calls to translate,scale,rotate,skew,concat or clipRect, clipPath will all + * operate as usual, but when the balancing call to restore() is made, those calls will be + * forgotten, and the settings that existed before the save() will be reinstated. */ public void addMatrixSave() { MatrixSave.apply(mBuffer); @@ -855,7 +1051,7 @@ public class RemoteComposeBuffer { /** * add a pre-concat the current matrix with the specified rotation. * - * @param angle The amount to rotate, in degrees + * @param angle The amount to rotate, in degrees * @param centerX The x-coord for the pivot point (unchanged by the rotation) * @param centerY The y-coord for the pivot point (unchanged by the rotation) */ @@ -886,8 +1082,8 @@ public class RemoteComposeBuffer { /** * Add a pre-concat of the current matrix with the specified scale. * - * @param scaleX The amount to scale in X - * @param scaleY The amount to scale in Y + * @param scaleX The amount to scale in X + * @param scaleY The amount to scale in Y * @param centerX The x-coord for the pivot point (unchanged by the scale) * @param centerY The y-coord for the pivot point (unchanged by the scale) */ @@ -897,6 +1093,7 @@ public class RemoteComposeBuffer { /** * sets the clip based on clip id + * * @param pathId 0 clears the clip */ public void addClipPath(int pathId) { @@ -905,10 +1102,11 @@ public class RemoteComposeBuffer { /** * 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 + * + * @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.apply(mBuffer, left, top, right, bottom); @@ -916,6 +1114,7 @@ public class RemoteComposeBuffer { /** * Add a float return a NaN number pointing to that float + * * @param value the value of the float * @return the nan id of float */ @@ -925,9 +1124,9 @@ public class RemoteComposeBuffer { return Utils.asNan(id); } - /** * Add a Integer return an id number pointing to that float. + * * @param value adds an integer and assigns it an id * @return the id of the integer to be used */ @@ -937,8 +1136,33 @@ public class RemoteComposeBuffer { return id; } + /** + * Add a long constant return a id. They can be used as parameters to Custom Attributes. + * + * @param value the value of the long + * @return the id of the command representing long + */ + public int addLong(long value) { + int id = mRemoteComposeState.cacheData(value); + LongConstant.apply(mBuffer, id, value); + return id; + } + + /** + * Add a boolean constant return a id. They can be used as parameters to Custom Attributes. + * + * @param value the value of the boolean + * @return the id + */ + public int addBoolean(boolean value) { + int id = mRemoteComposeState.cacheData(value); + BooleanConstant.apply(mBuffer, id, value); + return id; + } + /** * Add a IntegerId as float ID. + * * @param id id to be converted * @return the id wrapped in a NaN */ @@ -948,6 +1172,7 @@ public class RemoteComposeBuffer { /** * Add a float that is a computation based on variables + * * @param value A RPN style float operation i.e. "4, 3, ADD" outputs 7 * @return NaN id of the result of the calculation */ @@ -958,8 +1183,8 @@ public class RemoteComposeBuffer { } /** - * Add a float that is a computation based on variables. - * see packAnimation + * Add a float that is a computation based on variables. see packAnimation + * * @param value A RPN style float operation i.e. "4, 3, ADD" outputs 7 * @param animation Array of floats that represents animation * @return NaN id of the result of the calculation @@ -970,12 +1195,37 @@ public class RemoteComposeBuffer { return Utils.asNan(id); } + /** + * measure the text and return a measure as a float + * + * @param textId id of the text + * @param mode the mode 0 is the width + * @return + */ + public float textMeasure(int textId, int mode) { + int id = mRemoteComposeState.cacheData(textId + mode * 31); + TextMeasure.apply(mBuffer, id, textId, mode); + return Utils.asNan(id); + } + + /** + * measure the text and return the length of the text as float + * + * @param textId id of the text + * @return id of a float that is the length + */ + public float textLength(int textId) { + // The cache id is computed buy merging the two values together + // to create a relatively unique value + int id = mRemoteComposeState.cacheData(textId + (TextLength.id() << 16)); + TextLength.apply(mBuffer, id, textId); + 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) { @@ -986,23 +1236,23 @@ public class RemoteComposeBuffer { /** * This creates a list of individual floats - * @param values array of floats to be individually stored * + * @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]; + 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]); + FloatConstant.apply(mBuffer, listId[i], values[i]); } return addList(listId); } /** * This creates a list of individual floats - * @param listId array id to be stored * + * @param listId array id to be stored * @return id of the list */ public float addList(int[] listId) { @@ -1016,16 +1266,17 @@ public class RemoteComposeBuffer { * * @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]; + public float addFloatMap(String[] keys, float[] values) { + int[] listId = new int[values.length]; + byte[] type = new byte[values.length]; for (int i = 0; i < listId.length; i++) { listId[i] = mRemoteComposeState.cacheFloat(values[i]); - FloatConstant.apply(mBuffer, listId[i], values[i]); + FloatConstant.apply(mBuffer, listId[i], values[i]); + type[i] = DataMapIds.TYPE_FLOAT; } - return addMap(keys, listId); + return addMap(keys, type, listId); } /** @@ -1033,17 +1284,49 @@ public class RemoteComposeBuffer { * * @param keys * @param listId - * * @return the id of the map, encoded as a float NaN */ - public float addMap(String []keys, int[] listId) { + public int addMap(String[] keys, byte[] types, int[] listId) { int id = mRemoteComposeState.cacheData(listId, NanMap.TYPE_ARRAY); - DataMapIds.apply(mBuffer, id, keys, listId); - return Utils.asNan(id); + DataMapIds.apply(mBuffer, id, keys, types, listId); + return id; + } + + /** + * This provides access to text in RemoteList + * + * @param dataSet + * @param index index as a float variable + * @return + */ + public int textLookup(float dataSet, float index) { + long hash = + ((long) Float.floatToRawIntBits(dataSet)) + << (32 + Float.floatToRawIntBits(index)); // TODO: is this the correct ()s? + int id = mRemoteComposeState.cacheData(hash); + TextLookup.apply(mBuffer, id, Utils.idFromNan(dataSet), index); + return id; + } + + /** + * This provides access to text in RemoteList + * + * @param dataSet + * @param index index as an int variable + * @return + */ + public int textLookup(float dataSet, int index) { + long hash = + ((long) Float.floatToRawIntBits(dataSet)) + << (32 + Float.floatToRawIntBits(index)); // TODO: is this the correct ()s? + int id = mRemoteComposeState.cacheData(hash); + TextLookupInt.apply(mBuffer, id, Utils.idFromNan(dataSet), index); + return id; } /** * Add and integer expression + * * @param mask defines which elements are operators or variables * @param value array of values to calculate maximum 32 * @return the id as an integer @@ -1051,11 +1334,12 @@ public class RemoteComposeBuffer { public int addIntegerExpression(int mask, int[] value) { int id = mRemoteComposeState.cacheData(value); IntegerExpression.apply(mBuffer, id, mask, value); - return id; + return id; } /** * Add a simple color + * * @param color the RGB color value * @return id that represents that color */ @@ -1067,9 +1351,9 @@ public class RemoteComposeBuffer { return id; } - /** * Add a color that represents the tween between two colors + * * @param color1 the ARGB value of the first color * @param color2 the ARGB value of the second color * @param tween the interpolation bet @@ -1084,8 +1368,8 @@ public class RemoteComposeBuffer { } /** - * Add a color that represents the tween between two colors where color1 - * is the id of a color + * Add a color that represents the tween between two colors where color1 is the id of a color + * * @param color1 id of color * @param color2 rgb color value * @param tween the tween between color1 and color2 (1 = color2) @@ -1100,8 +1384,8 @@ public class RemoteComposeBuffer { } /** - * Add a color that represents the tween between two colors where color2 - * is the id of a color + * Add a color that represents the tween between two colors where color2 is the id of a color + * * @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) @@ -1116,8 +1400,9 @@ public class RemoteComposeBuffer { } /** - * Add a color that represents the tween between two colors where color1 & - * color2 are the ids of colors + * Add a color that represents the tween between two colors where color1 & color2 are the ids of + * colors + * * @param color1 id of the first color * @param color2 id of the second color * @param tween the tween between color1 and color2 (1 = color2) @@ -1132,8 +1417,9 @@ public class RemoteComposeBuffer { } /** - * Color calculated by Hue saturation and value. - * (as floats they can be variables used to create color transitions) + * 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 @@ -1148,8 +1434,9 @@ public class RemoteComposeBuffer { } /** - * Color calculated by Alpha, Hue saturation and value. - * (as floats they can be variables used to create color transitions) + * Color calculated by Alpha, Hue saturation and value. (as floats they can be variables used to + * create color transitions) + * * @param alpha the Alpha * @param hue the hue * @param sat the saturation @@ -1165,8 +1452,9 @@ public class RemoteComposeBuffer { } /** - * create and animation based on description and return as an array of - * floats. see addAnimatedFloat + * create and animation based on description and return as an array of floats. see + * addAnimatedFloat + * * @param duration the duration of the aimation * @param type the type of animation * @param spec the parameters of the animation if any @@ -1174,23 +1462,20 @@ public class RemoteComposeBuffer { * @param wrap the wraps value so (e.g 360 so angles 355 would animate to 5) * @return */ - public static float[] packAnimation(float duration, - int type, - float[] spec, - float initialValue, - float wrap) { + public static float[] packAnimation( + float duration, int type, float[] spec, float initialValue, float wrap) { return FloatAnimation.packToFloatArray(duration, type, spec, initialValue, wrap); } /** * This defines the name of the color given the id. + * * @param id of the color * @param name Name of the color */ public void setColorName(int id, String name) { - NamedVariable.apply(mBuffer, id, - NamedVariable.COLOR_TYPE, name); + NamedVariable.apply(mBuffer, id, NamedVariable.COLOR_TYPE, name); } /** @@ -1200,16 +1485,14 @@ public class RemoteComposeBuffer { * @param name name of the string */ public void setStringName(int id, String name) { - NamedVariable.apply(mBuffer, id, - NamedVariable.STRING_TYPE, 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. + * 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) { @@ -1225,63 +1508,64 @@ public class RemoteComposeBuffer { /** * Add a component start tag + * * @param type type of component * @param id component id */ public void addComponentStart(int type, int id) { mLastComponentId = getComponentId(id); - ComponentStart.apply(mBuffer, - type, mLastComponentId, 0f, 0f); + ComponentStart.apply(mBuffer, type, mLastComponentId, 0f, 0f); } /** * Add a component start tag + * * @param type type of component */ public void addComponentStart(int type) { addComponentStart(type, -1); } - /** - * Add a component end tag - */ + /** Add a component end tag */ public void addComponentEnd() { ComponentEnd.apply(mBuffer); } /** * Add a background modifier of provided color + * * @param color the color of the background * @param shape the background shape -- SHAPE_RECTANGLE, SHAPE_CIRCLE */ public void addModifierBackground(int color, int shape) { - float r = ((color >> 16) & 0xff) / 255.0f; - float g = ((color >> 8) & 0xff) / 255.0f; - float b = ((color) & 0xff) / 255.0f; - float a = ((color >> 24) & 0xff) / 255.0f; - BackgroundModifierOperation.apply(mBuffer, 0f, 0f, 0f, 0f, - r, g, b, a, shape); + float r = (color >> 16 & 0xff) / 255.0f; + float g = (color >> 8 & 0xff) / 255.0f; + float b = (color & 0xff) / 255.0f; + float a = (color >> 24 & 0xff) / 255.0f; + BackgroundModifierOperation.apply(mBuffer, 0f, 0f, 0f, 0f, r, g, b, a, shape); } /** * Add a border modifier + * * @param borderWidth the border width * @param borderRoundedCorner the rounded corner radius if the shape is ROUNDED_RECT * @param color the color of the border * @param shape the shape of the border */ - public void addModifierBorder(float borderWidth, float borderRoundedCorner, - int color, int shape) { - float r = ((color >> 16) & 0xff) / 255.0f; - float g = ((color >> 8) & 0xff) / 255.0f; - float b = ((color) & 0xff) / 255.0f; - float a = ((color >> 24) & 0xff) / 255.0f; - BorderModifierOperation.apply(mBuffer, 0f, 0f, 0f, 0f, - borderWidth, borderRoundedCorner, r, g, b, a, shape); + public void addModifierBorder( + float borderWidth, float borderRoundedCorner, int color, int shape) { + float r = (color >> 16 & 0xff) / 255.0f; + float g = (color >> 8 & 0xff) / 255.0f; + float b = (color & 0xff) / 255.0f; + float a = (color >> 24 & 0xff) / 255.0f; + BorderModifierOperation.apply( + mBuffer, 0f, 0f, 0f, 0f, borderWidth, borderRoundedCorner, r, g, b, a, shape); } /** * Add a padding modifier + * * @param left left padding * @param top top padding * @param right right padding @@ -1293,24 +1577,36 @@ public class RemoteComposeBuffer { /** * Sets the clip based on rounded clip rect + * * @param topStart * @param topEnd * @param bottomStart * @param bottomEnd */ - public void addRoundClipRectModifier(float topStart, float topEnd, - float bottomStart, float bottomEnd) { - RoundedClipRectModifierOperation.apply(mBuffer, - topStart, topEnd, bottomStart, bottomEnd); + public void addRoundClipRectModifier( + float topStart, float topEnd, float bottomStart, float bottomEnd) { + RoundedClipRectModifierOperation.apply(mBuffer, topStart, topEnd, bottomStart, bottomEnd); } - /** - * Add a clip rect modifier - */ + /** Add a clip rect modifier */ public void addClipRectModifier() { ClipRectModifierOperation.apply(mBuffer); } + public void addLoopStart(float count, float from, float step, int indexId) { + LoopOperation.apply(mBuffer, count, from, step, indexId); + } + + public void addLoopEnd() { + LoopEnd.apply(mBuffer); + } + + public void addStateLayout( + int componentId, int animationId, int horizontal, int vertical, int indexId) { + mLastComponentId = getComponentId(componentId); + StateLayout.apply(mBuffer, mLastComponentId, animationId, horizontal, vertical, indexId); + } + /** * Add a box start tag * @@ -1319,11 +1615,9 @@ public class RemoteComposeBuffer { * @param horizontal horizontal alignment * @param vertical vertical alignment */ - public void addBoxStart(int componentId, int animationId, - int horizontal, int vertical) { + public void addBoxStart(int componentId, int animationId, int horizontal, int vertical) { mLastComponentId = getComponentId(componentId); - BoxLayout.apply(mBuffer, mLastComponentId, animationId, - horizontal, vertical); + BoxLayout.apply(mBuffer, mLastComponentId, animationId, horizontal, vertical); } /** @@ -1335,11 +1629,10 @@ public class RemoteComposeBuffer { * @param vertical vertical alignment * @param spacedBy spacing between items */ - public void addRowStart(int componentId, int animationId, - int horizontal, int vertical, float spacedBy) { + public void addRowStart( + int componentId, int animationId, int horizontal, int vertical, float spacedBy) { mLastComponentId = getComponentId(componentId); - RowLayout.apply(mBuffer, mLastComponentId, animationId, - horizontal, vertical, spacedBy); + RowLayout.apply(mBuffer, mLastComponentId, animationId, horizontal, vertical, spacedBy); } /** @@ -1351,15 +1644,15 @@ public class RemoteComposeBuffer { * @param vertical vertical alignment * @param spacedBy spacing between items */ - public void addColumnStart(int componentId, int animationId, - int horizontal, int vertical, float spacedBy) { + public void addColumnStart( + int componentId, int animationId, int horizontal, int vertical, float spacedBy) { mLastComponentId = getComponentId(componentId); - ColumnLayout.apply(mBuffer, mLastComponentId, animationId, - horizontal, vertical, spacedBy); + ColumnLayout.apply(mBuffer, mLastComponentId, animationId, horizontal, vertical, spacedBy); } /** * Add a canvas start tag + * * @param componentId component id * @param animationId animation id */ @@ -1370,6 +1663,7 @@ public class RemoteComposeBuffer { /** * Add a canvas content start tag + * * @param componentId component id */ public void addCanvasContentStart(int componentId) { @@ -1377,17 +1671,13 @@ public class RemoteComposeBuffer { CanvasContent.apply(mBuffer, mLastComponentId); } - /** - * Add a root start tag - */ + /** Add a root start tag */ public void addRootStart() { mLastComponentId = getComponentId(-1); RootLayoutComponent.apply(mBuffer, mLastComponentId); } - /** - * Add a content start tag - */ + /** Add a content start tag */ public void addContentStart() { mLastComponentId = getComponentId(-1); LayoutComponentContent.apply(mBuffer, mLastComponentId); @@ -1395,6 +1685,7 @@ public class RemoteComposeBuffer { /** * Add a component width value + * * @param id id of the value */ public void addComponentWidthValue(int id) { @@ -1422,16 +1713,29 @@ public class RemoteComposeBuffer { * @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) { + 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); + TextLayout.apply( + mBuffer, + mLastComponentId, + animationId, + textId, + color, + fontSize, + fontStyle, + fontWeight, + fontFamilyId); } } - diff --git a/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeOperation.java b/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeOperation.java index c7ec33593286082b019e966e83a9b18523e2db7d..e60695fc4a06a6c05d637c32e88c00942a18a959 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeOperation.java @@ -15,6 +15,4 @@ */ package com.android.internal.widget.remotecompose.core; -public interface RemoteComposeOperation extends Operation { - -} +public interface RemoteComposeOperation extends Operation {} 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 839522e29fdb13b6f96575472ca4930c8616a97e..51445f2ff31d329508eaf854d93117ac5d7590ab 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeState.java +++ b/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeState.java @@ -15,30 +15,24 @@ */ package com.android.internal.widget.remotecompose.core; -import static com.android.internal.widget.remotecompose.core.RemoteContext.ID_CONTINUOUS_SEC; -import static com.android.internal.widget.remotecompose.core.RemoteContext.ID_TIME_IN_MIN; -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.DataMap; 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; +import com.android.internal.widget.remotecompose.core.operations.utilities.NanMap; import java.util.ArrayList; import java.util.HashMap; /** - * Represents runtime state for a RemoteCompose document - * State includes things like the value of variables + * Represents runtime state for a RemoteCompose document State includes things like the value of + * variables */ public class RemoteComposeState implements CollectionsAccess { public static final int START_ID = 42; - private static final int MAX_FLOATS = 500; + // private static final int MAX_FLOATS = 500; private static final int MAX_COLORS = 200; private static final int MAX_DATA = 1000; @@ -48,6 +42,8 @@ public class RemoteComposeState implements CollectionsAccess { 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 IntMap mDataMapMap = new IntMap<>(); + private final IntMap mObjectMap = new IntMap<>(); private final boolean[] mColorOverride = new boolean[MAX_COLORS]; private final IntMap mCollectionMap = new IntMap<>(); @@ -56,13 +52,12 @@ public class RemoteComposeState implements CollectionsAccess { 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 int[] mIdMaps = new int[] {START_ID, NanMap.START_VAR, NanMap.START_ARRAY}; private RemoteContext mRemoteContext = null; - /** - * Get Object based on id. The system will cache things like bitmaps - * Paths etc. They can be accessed with this command + * Get Object based on id. The system will cache things like bitmaps Paths etc. They can be + * accessed with this command * * @param id * @return @@ -81,9 +76,7 @@ public class RemoteComposeState implements CollectionsAccess { return mIntDataMap.get(id) != null; } - /** - * Return the id of an item from the cache. - */ + /** Return the id of an item from the cache. */ public int dataGetId(Object data) { Integer res = mDataIntMap.get(data); if (res == null) { @@ -93,8 +86,8 @@ public class RemoteComposeState implements CollectionsAccess { } /** - * Add an item to the cache. Generates an id for the item and adds it to the cache based on - * that id. + * Add an item to the cache. Generates an id for the item and adds it to the cache based on that + * id. */ public int cacheData(Object item) { int id = nextId(); @@ -104,8 +97,8 @@ public class RemoteComposeState implements CollectionsAccess { } /** - * Add an item to the cache. Generates an id for the item and adds it to the cache based on - * that id. + * Add an item to the cache. Generates an id for the item and adds it to the cache based on that + * id. */ public int cacheData(Object item, int type) { int id = nextId(type); @@ -114,23 +107,22 @@ public class RemoteComposeState implements CollectionsAccess { return id; } - /** - * Insert an item in the cache - */ + /** Insert an item in the cache */ public void cacheData(int id, Object item) { mDataIntMap.put(item, id); mIntDataMap.put(id, item); } - /** - * Insert an item in the cache - */ + /** Insert an item in the cache */ 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); + Object previous = mIntDataMap.get(id); + if (previous != item) { + mDataIntMap.remove(previous); + mDataIntMap.put(item, id); + mIntDataMap.put(id, item); + updateListeners(id); + } } } @@ -141,16 +133,17 @@ public class RemoteComposeState implements CollectionsAccess { * @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); + Object previous = mIntDataMap.get(id); + if (previous != item) { + mDataIntMap.remove(previous); + mDataIntMap.put(item, id); + mIntDataMap.put(id, item); + mDataOverride[id] = true; + updateListeners(id); + } } - /** - * Insert an item in the cache - */ + /** Insert an item in the cache */ public int cacheFloat(float item) { int id = nextId(); mFloatMap.put(id, item); @@ -158,25 +151,22 @@ public class RemoteComposeState implements CollectionsAccess { return id; } - /** - * Insert an item in the cache - */ + /** Insert an item in the cache */ public void cacheFloat(int id, float item) { mFloatMap.put(id, item); } - /** - * Insert an float item in the cache - */ - public void updateFloat(int id, float item) { - mFloatMap.put(id, item); - mIntegerMap.put(id, (int) item); - updateListeners(id); + /** Insert an float item in the cache */ + public void updateFloat(int id, float value) { + float previous = mFloatMap.get(id); + if (previous != value) { + mFloatMap.put(id, value); + mIntegerMap.put(id, (int) value); + updateListeners(id); + } } - /** - * Insert an item in the cache - */ + /** Insert an item in the cache */ public int cacheInteger(int item) { int id = nextId(); mIntegerMap.put(id, item); @@ -184,14 +174,15 @@ public class RemoteComposeState implements CollectionsAccess { return id; } - /** - * Insert an integer item in the cache - */ - public void updateInteger(int id, int item) { + /** Insert an integer item in the cache */ + public void updateInteger(int id, int value) { if (!mIntegerOverride[id]) { - mFloatMap.put(id, item); - mIntegerMap.put(id, item); - updateListeners(id); + int previous = mIntegerMap.get(id); + if (previous != value) { + mFloatMap.put(id, value); + mIntegerMap.put(id, value); + updateListeners(id); + } } } @@ -202,10 +193,13 @@ public class RemoteComposeState implements CollectionsAccess { * @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); + int previous = mIntegerMap.get(id); + if (previous != value) { + mIntegerMap.put(id, value); + mFloatMap.put(id, value); + mIntegerOverride[id] = true; + updateListeners(id); + } } /** @@ -262,8 +256,7 @@ public class RemoteComposeState implements CollectionsAccess { } /** - * Adds a colorOverride. - * This is a list of ids and their colors optimized for playback; + * Adds a colorOverride. This is a list of ids and their colors optimized for playback; * * @param id * @param color @@ -273,9 +266,7 @@ public class RemoteComposeState implements CollectionsAccess { mColorMap.put(id, color); } - /** - * Clear the color Overrides - */ + /** Clear the color Overrides */ public void clearColorOverride() { for (int i = 0; i < mColorOverride.length; i++) { mColorOverride[i] = false; @@ -310,16 +301,12 @@ public class RemoteComposeState implements CollectionsAccess { return !mIntWrittenMap.get(id); } - /** - * Method to mark that a value, represented by its id, has been written to the WireBuffer - */ + /** Method to mark that a value, represented by its id, has been written to the WireBuffer */ public void markWritten(int id) { mIntWrittenMap.put(id, true); } - /** - * Clear the record of the values that have been written to the WireBuffer. - */ + /** Clear the record of the values that have been written to the WireBuffer. */ public void reset() { mIntWrittenMap.clear(); mDataIntMap.clear(); @@ -388,13 +375,13 @@ public class RemoteComposeState implements CollectionsAccess { for (VariableSupport vs : mAllVarListeners) { vs.updateVariables(context); } - if (mVarListeners.get(ID_CONTINUOUS_SEC) != null) { + if (mVarListeners.get(RemoteContext.ID_CONTINUOUS_SEC) != null) { return 1; } - if (mVarListeners.get(ID_TIME_IN_SEC) != null) { + if (mVarListeners.get(RemoteContext.ID_TIME_IN_SEC) != null) { return 1000; } - if (mVarListeners.get(ID_TIME_IN_MIN) != null) { + if (mVarListeners.get(RemoteContext.ID_TIME_IN_MIN) != null) { return 1000 * 60; } return -1; @@ -406,7 +393,7 @@ public class RemoteComposeState implements CollectionsAccess { * @param width */ public void setWindowWidth(float width) { - updateFloat(ID_WINDOW_WIDTH, width); + updateFloat(RemoteContext.ID_WINDOW_WIDTH, width); } /** @@ -415,7 +402,7 @@ public class RemoteComposeState implements CollectionsAccess { * @param height */ public void setWindowHeight(float height) { - updateFloat(ID_WINDOW_HEIGHT, height); + updateFloat(RemoteContext.ID_WINDOW_HEIGHT, height); } public void addCollection(int id, ArrayAccess collection) { @@ -426,17 +413,39 @@ public class RemoteComposeState implements CollectionsAccess { 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 int getId(int id, int index) { + return mCollectionMap.get(id & 0xFFFFF).getId(index); + } + + public void putDataMap(int id, DataMap map) { + mDataMapMap.put(id, map); + } + + public DataMap getDataMap(int id) { + return mDataMapMap.get(id); + } + + @Override + public int getListLength(int id) { + return mCollectionMap.get(id & 0xFFFFF).getLength(); } public void setContext(RemoteContext context) { mRemoteContext = context; } + + public void updateObject(int id, Object value) { + mObjectMap.put(id, value); + } + + public Object getObject(int id) { + return mObjectMap.get(id); + } } 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 0df0aa04ec9c93ec3c8086b45ef02cdcf8731317..1066e7d9f6176b15b24d143b82d97019d35f511d 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java +++ b/core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java @@ -22,6 +22,7 @@ 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 com.android.internal.widget.remotecompose.core.operations.utilities.DataMap; import java.time.LocalDateTime; import java.time.OffsetDateTime; @@ -31,9 +32,9 @@ import java.time.ZoneOffset; /** * Specify an abstract context used to playback RemoteCompose documents * - * This allows us to intercept the different operations in a document and react to them. + *

    This allows us to intercept the different operations in a document and react to them. * - * We also contain a PaintContext, so that any operation can draw as needed. + *

    We also contain a PaintContext, so that any operation can draw as needed. */ public abstract class RemoteContext { protected CoreDocument mDocument; @@ -73,8 +74,7 @@ public abstract class RemoteContext { } /** - * Load a path under an id. - * Paths can be use in clip drawPath and drawTweenPath + * Load a path under an id. Paths can be use in clip drawPath and drawTweenPath * * @param instanceId * @param floatPath @@ -85,7 +85,7 @@ public abstract class RemoteContext { * Associate a name with a give id. * * @param varName the name - * @param varId the id (color,integer,float etc.) + * @param varId the id (color,integer,float etc.) * @param varType thetype */ public abstract void loadVariableName(String varName, int varId, int varType); @@ -93,7 +93,7 @@ public abstract class RemoteContext { /** * Save a color under a given id * - * @param id the id of the color + * @param id the id of the color * @param color the color to set */ public abstract void loadColor(int id, int color); @@ -118,35 +118,33 @@ public abstract class RemoteContext { } /** - * Set the value of a named Color. - * This overrides the color in the document + * Set the value of a named Color. This overrides the color in the document * * @param colorName the name of the color to override - * @param color Override the default color + * @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 + * 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. + *

    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 + * 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 */ @@ -155,34 +153,41 @@ public abstract class RemoteContext { /** * Allows to clear a named Integer. * - * If an override exists, we revert back to the default value in the document. + *

    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 id id of the collection * @param collection the collection under this id */ public abstract void addCollection(int id, ArrayAccess collection); + public abstract void putDataMap(int id, DataMap map); + + public abstract DataMap getDataMap(int id); + public abstract void runAction(int id, String metadata); public abstract void runNamedAction(int textId); + public abstract void putObject(int mId, Object command); + + public abstract Object getObject(int mId); /** * The context can be used in a few different mode, allowing operations to skip being executed: - * - UNSET : all operations will get executed - * - DATA : only operations dealing with DATA (eg loading a bitmap) should execute - * - PAINT : only operations painting should execute + * - UNSET : all operations will get executed - DATA : only operations dealing with DATA (eg + * loading a bitmap) should execute - PAINT : only operations painting should execute */ public enum ContextMode { - UNSET, DATA, PAINT + UNSET, + DATA, + PAINT } public int getTheme() { @@ -229,9 +234,13 @@ public abstract class RemoteContext { // Operations /////////////////////////////////////////////////////////////////////////////////////////////// - public void header(int majorVersion, int minorVersion, int patchVersion, - int width, int height, long capabilities - ) { + public void header( + int majorVersion, + int minorVersion, + int patchVersion, + int width, + int height, + long capabilities) { mRemoteComposeState.setWindowWidth(width); mRemoteComposeState.setWindowHeight(height); mDocument.setVersion(majorVersion, minorVersion, patchVersion); @@ -243,21 +252,14 @@ 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); @@ -281,16 +283,16 @@ public abstract class RemoteContext { * Save a bitmap under an imageId * * @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 + * @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 the id of the string + * @param id the id of the string * @param text the value to set */ public abstract void loadText(int id, String text); @@ -306,7 +308,7 @@ public abstract class RemoteContext { /** * Load a float * - * @param id id of the float + * @param id id of the float * @param value the value to set */ public abstract void loadFloat(int id, float value); @@ -314,21 +316,19 @@ public abstract class RemoteContext { /** * Load a integer * - * @param id id of the 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? + * Load an animated float associated with an id Todo: Remove? * - * @param id the id of the float + * @param id the id of the float * @param animatedFloat The animated float */ public abstract void loadAnimatedFloat(int id, FloatExpression animatedFloat); @@ -336,7 +336,7 @@ public abstract class RemoteContext { /** * Save a shader under and ID * - * @param id the id of the Shader + * @param id the id of the Shader * @param value the shader */ public abstract void loadShader(int id, ShaderData value); @@ -368,7 +368,7 @@ public abstract class RemoteContext { /** * called to notify system that a command is interested in a variable * - * @param id track when this id changes value + * @param id track when this id changes value * @param variableSupport call back when value changes */ public abstract void listensTo(int id, VariableSupport variableSupport); @@ -401,33 +401,25 @@ public abstract class RemoteContext { public static final int ID_WEEK_DAY = 11; public static final int ID_DAY_OF_MONTH = 12; - /** - * CONTINUOUS_SEC is seconds from midnight looping every hour 0-3600 - */ + /** CONTINUOUS_SEC is seconds from midnight looping every hour 0-3600 */ public static final float FLOAT_CONTINUOUS_SEC = Utils.asNan(ID_CONTINUOUS_SEC); - /** - * seconds run from Midnight=0 quantized to seconds hour 0..3599 - */ + + /** seconds run from Midnight=0 quantized to seconds hour 0..3599 */ public static final float FLOAT_TIME_IN_SEC = Utils.asNan(ID_TIME_IN_SEC); - /** - * minutes run from Midnight=0 quantized to minutes 0..1439 - */ + + /** minutes run from Midnight=0 quantized to minutes 0..1439 */ public static final float FLOAT_TIME_IN_MIN = Utils.asNan(ID_TIME_IN_MIN); - /** - * hours run from Midnight=0 quantized to Hours 0-23 - */ + + /** hours run from Midnight=0 quantized to Hours 0-23 */ public static final float FLOAT_TIME_IN_HR = Utils.asNan(ID_TIME_IN_HR); - /** - * Moth of Year quantized to MONTHS 1-12. 1 = January - */ + + /** Moth of Year quantized to MONTHS 1-12. 1 = January */ public static final float FLOAT_CALENDAR_MONTH = Utils.asNan(ID_CALENDAR_MONTH); - /** - * DAY OF THE WEEK 1-7. 1 = Monday - */ + + /** DAY OF THE WEEK 1-7. 1 = Monday */ public static final float FLOAT_WEEK_DAY = Utils.asNan(ID_WEEK_DAY); - /** - * DAY OF THE MONTH 1-31 - */ + + /** DAY OF THE MONTH 1-31 */ public static final float FLOAT_DAY_OF_MONTH = Utils.asNan(ID_DAY_OF_MONTH); public static final float FLOAT_WINDOW_WIDTH = Utils.asNan(ID_WINDOW_WIDTH); @@ -446,7 +438,8 @@ public abstract class RemoteContext { } public static float getTime(float fl) { - LocalDateTime dateTime = LocalDateTime.now(); + LocalDateTime dateTime = + LocalDateTime.now(ZoneId.systemDefault()); // TODO, pass in a timezone explicitly? // 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 @@ -464,7 +457,6 @@ public abstract class RemoteContext { 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(); @@ -488,8 +480,6 @@ public abstract class RemoteContext { return fl; } - - public abstract void addClickArea( int id, int contentDescription, @@ -497,7 +487,5 @@ public abstract class RemoteContext { float top, float right, float bottom, - int metadataId - ); + int metadataId); } - diff --git a/core/java/com/android/internal/widget/remotecompose/core/TimeVariables.java b/core/java/com/android/internal/widget/remotecompose/core/TimeVariables.java index 04e04bbb9063bbc722b11d11868926c238848051..fa0cf3f455c4864b334c84f59243a066548793a7 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/TimeVariables.java +++ b/core/java/com/android/internal/widget/remotecompose/core/TimeVariables.java @@ -20,9 +20,7 @@ import java.time.OffsetDateTime; import java.time.ZoneId; import java.time.ZoneOffset; -/** - * This generates the standard system variables for time. - */ +/** This generates the standard system variables for time. */ public class TimeVariables { /** * This class populates all time variables in the system @@ -30,7 +28,8 @@ public class TimeVariables { * @param context */ public void updateTime(RemoteContext context) { - LocalDateTime dateTime = LocalDateTime.now(); + LocalDateTime dateTime = + LocalDateTime.now(ZoneId.systemDefault()); // TODO, pass in a timezone explicitly? // 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 @@ -47,7 +46,6 @@ public class TimeVariables { 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(); @@ -60,6 +58,5 @@ public class TimeVariables { context.loadFloat(RemoteContext.ID_CALENDAR_MONTH, month); context.loadFloat(RemoteContext.ID_DAY_OF_MONTH, month); context.loadFloat(RemoteContext.ID_WEEK_DAY, day_week); - } } 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 ee6d5798bdb2a598da2a4cf3064a2ad4470347cf..51e58a1aeddd6ea9766757053aa12d4f143aee52 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/VariableSupport.java +++ b/core/java/com/android/internal/widget/remotecompose/core/VariableSupport.java @@ -16,20 +16,21 @@ package com.android.internal.widget.remotecompose.core; /** - * Interface for operators that interact with variables - * Through this they register to listen to particular variables - * and are notified when they change + * Interface for operators that interact with variables Through this they register to listen to + * particular variables and are notified when they change */ public interface VariableSupport { /** - * Call to allow an operator to register interest in variables. - * Typically they call context.listensTo(id, this) + * Call to allow an operator to register interest in variables. Typically they call + * context.listensTo(id, this) + * * @param context */ void registerListening(RemoteContext context); /** * Called to be notified that the variables you are interested have changed. + * * @param context */ void updateVariables(RemoteContext context); diff --git a/core/java/com/android/internal/widget/remotecompose/core/WireBuffer.java b/core/java/com/android/internal/widget/remotecompose/core/WireBuffer.java index fc3202e2160dcc3c59978dc8913d4dfc8c21217e..c71b4901ca78d28a17b6ba8f5e353f30e401e668 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/WireBuffer.java +++ b/core/java/com/android/internal/widget/remotecompose/core/WireBuffer.java @@ -17,9 +17,7 @@ package com.android.internal.widget.remotecompose.core; import java.util.Arrays; -/** - * The base communication buffer capable of encoding and decoding various types - */ +/** The base communication buffer capable of encoding and decoding various types */ public class WireBuffer { private static final int BUFFER_SIZE = 1024 * 1024 * 1; int mMaxSize; @@ -130,6 +128,7 @@ public class WireBuffer { int v2 = (mBuffer[mIndex++] & 0xFF) << 0; return v1 + v2; } + public int peekInt() { int tmp = mIndex; int v1 = (mBuffer[tmp++] & 0xFF) << 24; @@ -177,8 +176,8 @@ public class WireBuffer { public byte[] readBuffer(int maxSize) { int count = readInt(); if (count < 0 || count > maxSize) { - throw new RuntimeException("attempt read a buff of invalid size 0 <= " - + count + " > " + maxSize); + throw new RuntimeException( + "attempt read a buff of invalid size 0 <= " + count + " > " + maxSize); } byte[] b = Arrays.copyOfRange(mBuffer, mIndex, mIndex + count); mIndex += count; @@ -201,7 +200,7 @@ public class WireBuffer { public void writeBoolean(boolean value) { resize(1); - mBuffer[mIndex++] = (byte) ((value) ? 1 : 0); + mBuffer[mIndex++] = (byte) (value ? 1 : 0); mSize++; } @@ -256,7 +255,6 @@ public class WireBuffer { writeInt(b.length); for (int i = 0; i < b.length; i++) { mBuffer[mIndex++] = b[i]; - } mSize += b.length; } @@ -265,6 +263,4 @@ public class WireBuffer { byte[] buffer = content.getBytes(); writeBuffer(buffer); } - } - diff --git a/core/java/com/android/internal/widget/remotecompose/core/documentation/DocumentationBuilder.java b/core/java/com/android/internal/widget/remotecompose/core/documentation/DocumentationBuilder.java index ccbcdf6e615d8d3b7e0b8e4baa9f956c67ea2b4a..f6dfe2ebe1714bc0caf3e479021e547798d43fcb 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/documentation/DocumentationBuilder.java +++ b/core/java/com/android/internal/widget/remotecompose/core/documentation/DocumentationBuilder.java @@ -17,6 +17,8 @@ package com.android.internal.widget.remotecompose.core.documentation; public interface DocumentationBuilder { void add(String value); - Operation operation(String category, int id, String name); - Operation wipOperation(String category, int id, String name); + + DocumentedOperation operation(String category, int id, String name); + + DocumentedOperation wipOperation(String category, int id, String name); } diff --git a/core/java/com/android/internal/widget/remotecompose/core/documentation/DocumentedOperation.java b/core/java/com/android/internal/widget/remotecompose/core/documentation/DocumentedOperation.java new file mode 100644 index 0000000000000000000000000000000000000000..c33ae244b92305ef231d8fa0fdae115f5b641117 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/documentation/DocumentedOperation.java @@ -0,0 +1,181 @@ +/* + * 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.documentation; + +import java.util.ArrayList; + +public class DocumentedOperation { + public static final int LAYOUT = 0; + public static final int INT = 0; + public static final int FLOAT = 1; + public static final int BOOLEAN = 2; + public static final int BUFFER = 4; + public static final int UTF8 = 5; + 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; + String mName; + String mDescription; + + boolean mWIP; + String mTextExamples; + + ArrayList mExamples = new ArrayList<>(); + ArrayList mFields = new ArrayList<>(); + String mVarSize = ""; + int mExamplesWidth = 100; + int mExamplesHeight = 100; + + public static String getType(int type) { + switch (type) { + case INT: + return "INT"; + case FLOAT: + return "FLOAT"; + case BOOLEAN: + return "BOOLEAN"; + case BUFFER: + return "BUFFER"; + case UTF8: + return "UTF8"; + 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"; + } + + public DocumentedOperation(String category, int id, String name, boolean wip) { + mCategory = category; + mId = id; + mName = name; + mWIP = wip; + } + + public DocumentedOperation(String category, int id, String name) { + this(category, id, name, false); + } + + public ArrayList getFields() { + return mFields; + } + + public String getCategory() { + return mCategory; + } + + public int getId() { + return mId; + } + + public String getName() { + return mName; + } + + public boolean isWIP() { + return mWIP; + } + + public String getVarSize() { + return mVarSize; + } + + public int getSizeFields() { + int size = 0; + mVarSize = ""; + for (OperationField field : mFields) { + size += Math.max(0, field.getSize()); + if (field.getSize() < 0) { + mVarSize += " + " + field.getVarSize() + " x 4"; + } + } + return size; + } + + public String getDescription() { + return mDescription; + } + + public String getTextExamples() { + return mTextExamples; + } + + public ArrayList getExamples() { + return mExamples; + } + + public int getExamplesWidth() { + return mExamplesWidth; + } + + public int getExamplesHeight() { + return mExamplesHeight; + } + + public DocumentedOperation field(int type, String name, String description) { + mFields.add(new OperationField(type, name, description)); + return this; + } + + public DocumentedOperation field(int type, String name, String varSize, String description) { + mFields.add(new OperationField(type, name, varSize, description)); + return this; + } + + public DocumentedOperation possibleValues(String name, int value) { + if (!mFields.isEmpty()) { + mFields.get(mFields.size() - 1).possibleValue(name, "" + value); + } + return this; + } + + public DocumentedOperation description(String description) { + mDescription = description; + return this; + } + + public DocumentedOperation examples(String examples) { + mTextExamples = examples; + return this; + } + + public DocumentedOperation exampleImage(String name, String imagePath) { + mExamples.add(new StringPair(name, imagePath)); + return this; + } + + public DocumentedOperation examplesDimension(int width, int height) { + mExamplesWidth = width; + mExamplesHeight = height; + return this; + } +} 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 9ccb2be9969ad18cfe0d2928102aff6cbe607825..f02a3852c92a49acca0b6b8d3e576415cec5f310 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 @@ -46,20 +46,30 @@ public class Operation { int mExamplesWidth = 100; int mExamplesHeight = 100; - public static String getType(int type) { switch (type) { - case (INT): return "INT"; - case (FLOAT): return "FLOAT"; - case (BOOLEAN): return "BOOLEAN"; - case (BUFFER): return "BUFFER"; - case (UTF8): return "UTF8"; - 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[]"; + case INT: + return "INT"; + case FLOAT: + return "FLOAT"; + case BOOLEAN: + return "BOOLEAN"; + case BUFFER: + return "BUFFER"; + case UTF8: + return "UTF8"; + 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"; } 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 0dd3039f5f4d81cc940dceb2d3e870c1a5a2130b..c7704839140522943200128887dbc162e17d8b8e 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 @@ -41,20 +41,23 @@ public class OperationField { public int getType() { return mType; } + public String getName() { return mName; } + public String getDescription() { return mDescription; } + public ArrayList getPossibleValues() { return mPossibleValues; } - public void possibleValue(String name, String value) { mPossibleValues.add(new StringPair(name, value)); } + public boolean hasEnumeratedValues() { return !mPossibleValues.isEmpty(); } @@ -65,14 +68,22 @@ public class OperationField { 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; + case DocumentedOperation.BYTE: + return 1; + case DocumentedOperation.INT: + return 4; + case DocumentedOperation.FLOAT: + return 4; + case DocumentedOperation.LONG: + return 8; + case DocumentedOperation.SHORT: + return 2; + case DocumentedOperation.INT_ARRAY: + return -1; + case DocumentedOperation.FLOAT_ARRAY: + return -1; + default: + return 0; } } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/documentation/StringPair.java b/core/java/com/android/internal/widget/remotecompose/core/documentation/StringPair.java index 787bb54a5f0aa24ed6caa8c1089a77f93516f346..5b0cedbaf6af86447b8112655180d2f467c1997d 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/documentation/StringPair.java +++ b/core/java/com/android/internal/widget/remotecompose/core/documentation/StringPair.java @@ -14,6 +14,7 @@ * limitations under the License. */ package com.android.internal.widget.remotecompose.core.documentation; + public class StringPair { String mName; String mValue; @@ -26,6 +27,7 @@ public class StringPair { public String getName() { return mName; } + public String getValue() { return mValue; } 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 58be641f608ab82b8884b0f02b29aef56431ad3d..20ba8c313b47b4bb7c66a268d5d290e53b34e50d 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,8 +15,8 @@ */ 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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT_ARRAY; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -24,14 +24,14 @@ 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.DocumentedOperation; import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; import java.util.List; /** - * Operation to deal with bitmap data - * On getting an Image during a draw call the bitmap is compressed and saved - * in playback the image is decompressed + * Operation to deal with bitmap data 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, SerializableToString { private static final int OP_CODE = Operations.DATA_BITMAP; @@ -67,7 +67,6 @@ public class BitmapData implements Operation, SerializableToString { return "BITMAP DATA " + mImageId; } - public static String name() { return CLASS_NAME; } @@ -84,7 +83,6 @@ public class BitmapData implements Operation, SerializableToString { buffer.writeBuffer(bitmap); } - public static void read(WireBuffer buffer, List operations) { int imageId = buffer.readInt(); int width = buffer.readInt(); @@ -99,19 +97,13 @@ public class BitmapData implements Operation, SerializableToString { operations.add(new BitmapData(imageId, width, height, bitmap)); } - public static void documentation(DocumentationBuilder doc) { - doc.operation("Data Operations", - OP_CODE, - CLASS_NAME) + 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"); + .field(DocumentedOperation.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 @@ -124,9 +116,10 @@ public class BitmapData implements Operation, SerializableToString { return indent + toString(); } + @Override public void serializeToString(int indent, StringSerializer serializer) { - serializer.append(indent, CLASS_NAME - + " id " + mImageId + " (" + mImageWidth + "x" + mImageHeight + ")"); + 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 e72e24a0b85a1d6b4986755f8ee2f0421689c816..8b9e5a8d7625d142247b6055e64cc2765e3e8317 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,20 +15,17 @@ */ 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.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.DocumentedOperation; import java.util.List; -/** - * Add a click area to the document - */ +/** 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"; @@ -43,8 +40,8 @@ public class ClickArea implements RemoteComposeOperation { /** * 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 @@ -52,10 +49,14 @@ public class ClickArea implements RemoteComposeOperation { * @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, - float left, float top, - float right, float bottom, - int metadata) { + public ClickArea( + int id, + int contentDescription, + float left, + float top, + float right, + float bottom, + int metadata) { this.mId = id; this.mContentDescription = contentDescription; this.mLeft = left; @@ -72,10 +73,27 @@ public class ClickArea implements RemoteComposeOperation { @Override public String toString() { - return "CLICK_AREA <" + mId + " <" + mContentDescription + "> " - + "<" + mMetadata + ">+" + mLeft + " " - + mTop + " " + mRight + " " + mBottom + "+" - + " (" + (mRight - mLeft) + " x " + (mBottom - mTop) + " }"; + return "CLICK_AREA <" + + mId + + " <" + + mContentDescription + + "> " + + "<" + + mMetadata + + ">+" + + mLeft + + " " + + mTop + + " " + + mRight + + " " + + mBottom + + "+" + + " (" + + (mRight - mLeft) + + " x " + + (mBottom - mTop) + + " }"; } @Override @@ -95,14 +113,19 @@ public class ClickArea implements RemoteComposeOperation { return CLASS_NAME; } - public static int id() { return OP_CODE; } - public static void apply(WireBuffer buffer, int id, int contentDescription, - float left, float top, float right, float bottom, - int 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); @@ -113,7 +136,6 @@ public class ClickArea implements RemoteComposeOperation { buffer.writeInt(metadata); } - public static void read(WireBuffer buffer, List operations) { int id = buffer.readInt(); int contentDescription = buffer.readInt(); @@ -122,26 +144,21 @@ public class ClickArea implements RemoteComposeOperation { float right = buffer.readFloat(); float bottom = buffer.readFloat(); int metadata = buffer.readInt(); - ClickArea clickArea = new ClickArea(id, contentDescription, - left, top, right, bottom, metadata); + 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) + 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", + .field(DocumentedOperation.FLOAT, "left", "The left side of the region") + .field(DocumentedOperation.FLOAT, "top", "The top of the region") + .field(DocumentedOperation.FLOAT, "right", "The right side of the region") + .field(DocumentedOperation.FLOAT, "bottom", "The bottom of the region") + .field( + DocumentedOperation.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 d77d53cca963a9780083b3935df46a3026ecb7a3..96b600acc971f349da4e1c173ba6e28d8db2a1a9 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,21 +15,19 @@ */ 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.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 com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; import java.util.List; /** - * Defines a path that clips a the subsequent drawing commands - * Use MatrixSave and MatrixRestore commands to remove clip - * TODO allow id 0 to mean null? + * Defines a path that clips a the subsequent drawing commands Use MatrixSave and MatrixRestore + * commands to remove clip TODO allow id 0 to mean null? */ public class ClipPath extends PaintOperation { private static final int OP_CODE = Operations.CLIP_PATH; @@ -68,7 +66,6 @@ public class ClipPath extends PaintOperation { return "ClipPath " + mId + ";"; } - public static void read(WireBuffer buffer, List operations) { int pack = buffer.readInt(); int id = pack & 0xFFFFF; @@ -77,12 +74,10 @@ public class ClipPath extends PaintOperation { operations.add(op); } - public static String name() { return CLASS_NAME; } - public static int id() { return OP_CODE; } @@ -93,17 +88,13 @@ public class ClipPath extends PaintOperation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Canvas Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Canvas Operations", OP_CODE, CLASS_NAME) .description("Intersect the current clip with the path") - .field(INT, "id", - "id of the path"); + .field(DocumentedOperation.INT, "id", "id of the path"); } - @Override public void paint(PaintContext context) { context.clipPath(mId, mRegionOp); } -} \ No newline at end of file +} 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 ec9b6fe483c9f4a9d571b700fac77df74819a99a..b101bfb2d151d45f884556e2af4300437f4c6bc7 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,20 @@ */ 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 com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; import java.util.List; -/** - * Support clip with a rectangle - */ +/** Support clip with a rectangle */ public class ClipRect extends DrawBase4 { public static final int OP_CODE = Operations.CLIP_RECT; public static final String CLASS_NAME = "ClipRect"; - public static void read(WireBuffer buffer, List operations) { Maker m = ClipRect::new; read(m, buffer, operations); @@ -46,36 +42,33 @@ public class ClipRect extends DrawBase4 { return CLASS_NAME; } - - protected void write(WireBuffer buffer, - float v1, - float v2, - float v3, - float v4) { + @Override + 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) + doc.operation("Expressions Operations", OP_CODE, CLASS_NAME) .description("Intersect the current clip with rectangle") - .field(FLOAT, "left", + .field( + DocumentedOperation.FLOAT, + "left", "The left side of the rectangle to intersect with the current clip") - .field(FLOAT, "top", + .field( + DocumentedOperation.FLOAT, + "top", "The top of the rectangle to intersect with the current clip") - .field(FLOAT, "right", + .field( + DocumentedOperation.FLOAT, + "right", "The right side of the rectangle to intersect with the current clip") - .field(FLOAT, "bottom", + .field( + DocumentedOperation.FLOAT, + "bottom", "The bottom of the rectangle to intersect with the current clip"); } - - public ClipRect( - float left, - float top, - float right, - float bottom) { + public ClipRect(float left, float top, float right, float bottom) { super(left, top, right, bottom); mName = CLASS_NAME; } @@ -89,16 +82,12 @@ public class ClipRect extends DrawBase4 { * 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 + * @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) { + 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 2562e18b386ca694c0ffeb7182361b899a4ab990..19d80daf0c8f35478c0628737fab051208ab36d0 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,20 +15,18 @@ */ 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.DocumentedOperation.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.documentation.DocumentedOperation; import java.util.List; -/** - * Operation that defines a simple Color based on ID - * Mainly for colors in theming. - */ +/** Operation that defines a simple Color based on ID 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"; @@ -78,14 +76,10 @@ public class ColorConstant implements Operation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Expressions Operations", - OP_CODE, - CLASS_NAME) + 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"); + .field(DocumentedOperation.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 96d667465e8f63af0e098d1890167740bb06fe1e..b6041eaeacdc473ad7229c99517a0ec384ac064a 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,8 +15,8 @@ */ package com.android.internal.widget.remotecompose.core.operations; -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.documentation.DocumentedOperation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -24,17 +24,13 @@ 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.documentation.DocumentedOperation; import java.util.List; /** - * Operation to Colors - * Color modes - * mMode = 0 two colors and a tween - * mMode = 1 color1 is a colorID. - * mMode = 2 color2 is a colorID. - * mMode = 3 color1 & color2 are ids - * mMode = 4 H S V mode + * Operation to Colors Color modes mMode = 0 two colors and a tween mMode = 1 color1 is a colorID. + * mMode = 2 color2 is a colorID. mMode = 3 color1 & color2 are ids mMode = 4 H S V mode */ public class ColorExpression implements Operation, VariableSupport { private static final int OP_CODE = Operations.COLOR_EXPRESSIONS; @@ -45,7 +41,6 @@ public class ColorExpression implements Operation, VariableSupport { public int mColor2; public float mTween = 0.0f; - public float mHue = 0; // only in Mode 4 public float mSat = 0; public float mValue = 0; @@ -122,7 +117,6 @@ public class ColorExpression implements Operation, VariableSupport { } } - @Override public void registerListening(RemoteContext context) { if (mMode == 4) { @@ -151,8 +145,8 @@ public class ColorExpression implements Operation, VariableSupport { @Override public void apply(RemoteContext context) { if (mMode == 4) { - context.loadColor(mId, (mAlpha << 24) - | (0xFFFFFF & Utils.hsvToRgb(mOutHue, mOutSat, mOutValue))); + context.loadColor( + mId, (mAlpha << 24) | (0xFFFFFF & Utils.hsvToRgb(mOutHue, mOutSat, mOutValue))); return; } if (mOutTween == 0.0) { @@ -165,8 +159,7 @@ public class ColorExpression implements Operation, VariableSupport { mOutColor2 = context.getColor(mColor2); } - context.loadColor(mId, - Utils.interpolateColor(mOutColor1, mOutColor2, mOutTween)); + context.loadColor(mId, Utils.interpolateColor(mOutColor1, mOutColor2, mOutTween)); } } @@ -179,23 +172,34 @@ public class ColorExpression implements Operation, VariableSupport { @Override public String toString() { if (mMode == 4) { - return "ColorExpression[" + mId + "] = hsv (" + Utils.floatToString(mHue) - + ", " + Utils.floatToString(mSat) - + ", " + Utils.floatToString(mValue) + ")"; + return "ColorExpression[" + + mId + + "] = hsv (" + + Utils.floatToString(mHue) + + ", " + + Utils.floatToString(mSat) + + ", " + + Utils.floatToString(mValue) + + ")"; } String c1 = (mMode & 1) == 1 ? "[" + mColor1 + "]" : Utils.colorInt(mColor1); String c2 = (mMode & 2) == 2 ? "[" + mColor2 + "]" : Utils.colorInt(mColor2); - return "ColorExpression[" + mId + "] = tween(" + c1 - + ", " + c2 + ", " - + Utils.floatToString(mTween) + ")"; + return "ColorExpression[" + + mId + + "] = tween(" + + c1 + + ", " + + c2 + + ", " + + Utils.floatToString(mTween) + + ")"; } public static String name() { return CLASS_NAME; } - public static int id() { return OP_CODE; } @@ -204,22 +208,20 @@ public class ColorExpression implements Operation, VariableSupport { * 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 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) { + 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); - } public static void read(WireBuffer buffer, List operations) { @@ -233,29 +235,22 @@ public class ColorExpression implements Operation, VariableSupport { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Expressions Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Expressions Operations", OP_CODE, CLASS_NAME) .description("A Color defined by an expression") - .field(INT, "id", "Id of the color") + .field(DocumentedOperation.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"); - + .field(INT, "color1", "32 bit ARGB color") + .field(INT, "color2", "32 bit ARGB color") + .field(FLOAT, "tween", "32 bit ARGB color"); } @Override public String deepToString(String indent) { return indent + toString(); } - } 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 index 22fe673bc072d39d1eb58c29c62a0cd39ed09695..992972076839c90d30af50ad5773f705583b2232 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/ComponentValue.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ComponentValue.java @@ -15,7 +15,7 @@ */ 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.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -23,6 +23,7 @@ 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.DocumentedOperation; import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; import java.util.List; @@ -82,15 +83,16 @@ public class ComponentValue implements Operation, SerializableToString { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Expressions Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Expressions Operations", OP_CODE, CLASS_NAME) .description("Encode a component-related value (eg its width, height etc.)") - .field(INT, "TYPE", + .field( + DocumentedOperation.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", + .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"); } @@ -105,14 +107,11 @@ public class ComponentValue implements Operation, SerializableToString { * 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 + * @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) { + public static void apply(WireBuffer buffer, int type, int componentId, int valueId) { buffer.start(OP_CODE); buffer.writeInt(type); buffer.writeInt(componentId); @@ -124,13 +123,20 @@ public class ComponentValue implements Operation, SerializableToString { return null; } + @Override 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); + 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 index edcb5fef7766c37d2e257d9eb2d12b8fe34aa130..00758694c25454fd4b3000b375098c7fe85548bc 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DataListFloat.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DataListFloat.java @@ -15,8 +15,8 @@ */ 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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.FLOAT_ARRAY; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -24,6 +24,7 @@ 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.documentation.DocumentedOperation; import com.android.internal.widget.remotecompose.core.operations.utilities.ArrayAccess; import java.util.Arrays; @@ -63,7 +64,7 @@ public class DataListFloat implements VariableSupport, ArrayAccess, Operation { @Override public String toString() { - return "DataListFloat[A_" + (mId & 0xFFFF) + "] " + Arrays.toString(mValues); + return "DataListFloat[" + Utils.idString(mId) + "] " + Arrays.toString(mValues); } public static void apply(WireBuffer buffer, int id, float[] values) { @@ -90,14 +91,11 @@ public class DataListFloat implements VariableSupport, ArrayAccess, Operation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Data Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Data Operations", OP_CODE, CLASS_NAME) .description("a list of Floats") - .field(INT, "id", "id the array (2xxxxx)") + .field(DocumentedOperation.INT, "id", "id the array (2xxxxx)") .field(INT, "length", "number of floats") - .field(FLOAT_ARRAY, "values", "length", - "array of floats"); + .field(FLOAT_ARRAY, "values", "length", "array of floats"); } @Override @@ -121,7 +119,7 @@ public class DataListFloat implements VariableSupport, ArrayAccess, Operation { } @Override - public int getFloatsLength() { + public int getLength() { 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 index bde376e59d9c34a570a8416308ff6da44d071cf0..c43dab4bbee04645a8afc94edf6a17ce3362b22f 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DataListIds.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DataListIds.java @@ -15,8 +15,8 @@ */ 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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT_ARRAY; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -24,39 +24,29 @@ 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.documentation.DocumentedOperation; 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 { +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); - } - } + public void updateVariables(RemoteContext context) {} @Override - public void registerListening(RemoteContext context) { - for (int mId : mIds) { - context.listensTo(mId, this); - } - } + public void registerListening(RemoteContext context) {} @Override public void write(WireBuffer buffer) { @@ -65,7 +55,7 @@ public class DataListIds implements VariableSupport, ArrayAccess, Operation { @Override public String toString() { - return "map " + "\"" + Arrays.toString(mIds) + "\""; + return "map[" + Utils.idString(mId) + "] \"" + Arrays.toString(mIds) + "\""; } public static void apply(WireBuffer buffer, int id, int[] ids) { @@ -92,15 +82,11 @@ public class DataListIds implements VariableSupport, ArrayAccess, Operation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Data Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Data Operations", OP_CODE, CLASS_NAME) .description("a list of id's") - .field(INT, "id", "id the array") + .field(DocumentedOperation.INT, "id", "id the array") .field(INT, "length", "number of ids") - .field(INT_ARRAY, "ids[n]", "length", - "ids of other variables"); - + .field(INT_ARRAY, "ids[n]", "length", "ids of other variables"); } @Override @@ -115,16 +101,26 @@ public class DataListIds implements VariableSupport, ArrayAccess, Operation { @Override public float getFloatValue(int index) { - return mValues[index]; + return Float.NaN; + } + + @Override + public int getId(int index) { + return mIds[index]; } @Override public float[] getFloats() { - return mValues; + return null; + } + + @Override + public int getLength() { + return mIds.length; } @Override - public int getFloatsLength() { - return mValues.length; + public int getIntValue(int index) { + return 0; } } 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 index 53143dcf82113989621ae995b020f7e50692fd51..75db29d2781ec41469032fbbee7d35492c0b3db2 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DataMapIds.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DataMapIds.java @@ -15,78 +15,82 @@ */ 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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.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 com.android.internal.widget.remotecompose.core.operations.utilities.DataMap; import java.util.List; -public class DataMapIds implements VariableSupport, ArrayAccess, Operation { +/** This is a map of strings to type & Id */ +public class DataMapIds implements Operation { private static final int OP_CODE = Operations.ID_MAP; - private static final String CLASS_NAME = "IdMapData"; + private static final String CLASS_NAME = "DataMapIds"; 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]; + DataMap mDataMap; - } + private static final int MAX_MAP = 2000; - @Override - public void updateVariables(RemoteContext context) { - for (int i = 0; i < mIds.length; i++) { - int id = mIds[i]; - mValues[i] = context.getFloat(id); + public static final byte TYPE_STRING = 0; + public static final byte TYPE_INT = 1; + public static final byte TYPE_FLOAT = 2; + public static final byte TYPE_LONG = 3; + public static final byte TYPE_BOOLEAN = 4; + + private String typeString(byte type) { + switch (type) { + case TYPE_STRING: + return "String"; + case TYPE_INT: + return "Int"; + case TYPE_FLOAT: + return "Float"; + case TYPE_LONG: + return "Long"; + case TYPE_BOOLEAN: + return "Boolean"; } + return "?"; } - @Override - public void registerListening(RemoteContext context) { - for (int mId : mIds) { - context.listensTo(mId, this); - } + public DataMapIds(int id, String[] names, byte[] types, int[] ids) { + mId = id; + mDataMap = new DataMap(names, types, ids); } @Override public void write(WireBuffer buffer) { - apply(buffer, mId, mNames, mIds); + apply(buffer, mId, mDataMap.mNames, mDataMap.mTypes, mDataMap.mIds); } @Override public String toString() { - StringBuilder builder = new StringBuilder("DataMapIds "); - for (int i = 0; i < mNames.length; i++) { + StringBuilder builder = new StringBuilder("DataMapIds[" + Utils.idString(mId) + "] "); + for (int i = 0; i < mDataMap.mNames.length; i++) { if (i != 0) { builder.append(" "); } - builder.append(mNames[i]); + builder.append(typeString(mDataMap.mTypes[i])); builder.append("["); - builder.append(mIds[i]); - builder.append("]"); - + builder.append(mDataMap.mNames[i]); + builder.append("]="); + builder.append(mDataMap.mIds[i]); } return builder.toString(); } - public static void apply(WireBuffer buffer, int id, String[] names, int[] ids) { + public static void apply(WireBuffer buffer, int id, String[] names, byte[] type, 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.writeByte(type == null ? 2 : type[i]); buffer.writeInt(ids[i]); } } @@ -99,25 +103,23 @@ public class DataMapIds implements VariableSupport, ArrayAccess, Operation { } String[] names = new String[len]; int[] ids = new int[len]; + byte[] types = new byte[len]; for (int i = 0; i < names.length; i++) { names[i] = buffer.readUTF8(); + types[i] = (byte) buffer.readByte(); ids[i] = buffer.readInt(); } - DataMapIds data = new DataMapIds(id, names, ids); + DataMapIds data = new DataMapIds(id, names, types, ids); operations.add(data); } public static void documentation(DocumentationBuilder doc) { - doc.operation("Data Operations", - OP_CODE, - CLASS_NAME) + 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"); + .field(INT, "names[0]", "length", "path encoded as floats") + .field(UTF8, "id[0]", "length", "path encoded as floats"); } @Override @@ -127,21 +129,6 @@ public class DataMapIds implements VariableSupport, ArrayAccess, Operation { @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; + context.putDataMap(mId, mDataMap); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DataMapLookup.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DataMapLookup.java new file mode 100644 index 0000000000000000000000000000000000000000..fb5e5d1734e6329c1fe00f7229ea2b5da7646a12 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DataMapLookup.java @@ -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.internal.widget.remotecompose.core.operations; + +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.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.DataMap; +import com.android.internal.widget.remotecompose.core.types.BooleanConstant; +import com.android.internal.widget.remotecompose.core.types.LongConstant; + +import java.util.List; + +/** This can lookup in a map given a string writing the results to an id. */ +public class DataMapLookup implements Operation { + private static final int OP_CODE = Operations.DATA_MAP_LOOKUP; + private static final String CLASS_NAME = "DataMapLookup"; + public int mId; + public int mDataMapId; + public int mStringId; + + /** + * Create an access to a data map + * + * @param id of the output value + * @param dataMapId the id of the data map + * @param keyStringId the string to be looked up + */ + public DataMapLookup(int id, int dataMapId, int keyStringId) { + this.mId = id; + this.mDataMapId = dataMapId; + this.mStringId = keyStringId; + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mId, mDataMapId, mStringId); + } + + @Override + public String toString() { + return "DataMapLookup[" + mId + "] = " + Utils.idString(mDataMapId) + " " + mStringId; + } + + /** + * The class name + * + * @return the name of the class + */ + public static String name() { + return CLASS_NAME; + } + + /** + * The opcode + * + * @return the opcode + */ + public static int id() { + return OP_CODE; + } + + /** + * Writes out the operation to the buffer + * + * @param buffer write command to this buffer + * @param id the id + * @param dataMapId the map to extract from + * @param keyStringId the map to extract from + */ + public static void apply(WireBuffer buffer, int id, int dataMapId, int keyStringId) { + buffer.start(OP_CODE); + buffer.writeInt(id); + buffer.writeInt(dataMapId); + buffer.writeInt(keyStringId); + } + + /** + * The read the buffer and create the command + * + * @param buffer buffer + * @param operations the created command is added to the list + */ + public static void read(WireBuffer buffer, List operations) { + int id = buffer.readInt(); + int mapId = buffer.readInt(); + int stringId = buffer.readInt(); + operations.add(new DataMapLookup(id, mapId, stringId)); + } + + 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(INT, "dataMapId", "32-bit float value") + .field(INT, "value", "32-bit float value"); + } + + @Override + public void apply(RemoteContext context) { + String str = context.getText(mStringId); + DataMap data = context.getDataMap(mDataMapId); + int pos = data.getPos(str); + byte type = data.getType(pos); + int dataId = data.getId(pos); + switch (type) { + case DataMapIds.TYPE_STRING: + context.loadText(mId, context.getText(dataId)); + break; + case DataMapIds.TYPE_INT: + context.loadInteger(mId, context.getInteger(dataId)); + break; + case DataMapIds.TYPE_FLOAT: + context.loadFloat(mId, context.getFloat(dataId)); + break; + case DataMapIds.TYPE_LONG: + LongConstant lc = (LongConstant) context.getObject(dataId); + context.loadInteger(mId, (int) lc.getValue()); + break; + case DataMapIds.TYPE_BOOLEAN: + BooleanConstant bc = (BooleanConstant) context.getObject(dataId); + context.loadInteger(mId, bc.getValue() ? 1 : 0); + break; + } + } + + @Override + public String deepToString(String indent) { + return indent + toString(); + } +} 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 d37722917b273607ddfb48d2f3630d31374866d0..e078307f3bd9a003e385583f3fbefdf2c464c162 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,13 +15,12 @@ */ 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 com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; import java.util.List; @@ -40,6 +39,7 @@ public class DrawArc extends DrawBase6 { /** * 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 @@ -48,13 +48,8 @@ public class DrawArc extends DrawBase6 { * @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) { + 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); @@ -64,47 +59,37 @@ public class DrawArc extends DrawBase6 { buffer.writeFloat(v6); } - protected void write(WireBuffer buffer, - float v1, - float v2, - float v3, - float v4, - float v5, - float v6) { + @Override + 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", + doc.operation("Canvas Operations", OP_CODE, CLASS_NAME) + .description( + "Draw the specified arc" + + "which will be scaled to fit inside the specified oval") + .field(DocumentedOperation.FLOAT, "left", "The left side of the Oval") + .field(DocumentedOperation.FLOAT, "top", "The top of the Oval") + .field(DocumentedOperation.FLOAT, "right", "The right side of the Oval") + .field(DocumentedOperation.FLOAT, "bottom", "The bottom of the Oval") + .field( + DocumentedOperation.FLOAT, + "startAngle", "Starting angle (in degrees) where the arc begins") - .field(FLOAT, "sweepAngle", + .field( + DocumentedOperation.FLOAT, + "sweepAngle", "Sweep angle (in degrees) measured clockwise"); } - - public DrawArc(float v1, - float v2, - float v3, - float v4, - float v5, - float v6) { + public DrawArc(float v1, float v2, float v3, float v4, float v5, float v6) { super(v1, v2, v3, v4, v5, v6); 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 97eb76bfaaa9929b6b43fb9c0b15b12c228bff1f..c678cc4a36bea01296a446e9680e1166c94ad414 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 @@ -25,11 +25,8 @@ import com.android.internal.widget.remotecompose.core.WireBuffer; import java.util.List; -/** - * Base class for commands that take 3 float - */ -public abstract class DrawBase2 extends PaintOperation - implements VariableSupport { +/** Base class for commands that take 3 float */ +public abstract class DrawBase2 extends PaintOperation implements VariableSupport { protected String mName = "DrawRectBase"; float mV1; float mV2; @@ -45,10 +42,8 @@ public abstract class DrawBase2 extends PaintOperation @Override public void updateVariables(RemoteContext context) { - mV1 = (Float.isNaN(mValue1)) - ? context.getFloat(Utils.idFromNan(mValue1)) : mValue1; - mV2 = (Float.isNaN(mValue2)) - ? context.getFloat(Utils.idFromNan(mValue2)) : mValue2; + mV1 = Float.isNaN(mValue1) ? context.getFloat(Utils.idFromNan(mValue1)) : mValue1; + mV2 = Float.isNaN(mValue2) ? context.getFloat(Utils.idFromNan(mValue2)) : mValue2; } @Override @@ -61,7 +56,6 @@ public abstract class DrawBase2 extends PaintOperation } } - @Override public void write(WireBuffer buffer) { write(buffer, mV1, mV2); @@ -70,8 +64,7 @@ public abstract class DrawBase2 extends PaintOperation protected abstract void write(WireBuffer buffer, float v1, float v2); protected interface Maker { - DrawBase2 create(float v1, - float v2); + DrawBase2 create(float v1, float v2); } @Override @@ -79,7 +72,6 @@ public abstract class DrawBase2 extends PaintOperation return mName + " " + floatToString(mV1) + " " + floatToString(mV2); } - public static void read(Maker maker, WireBuffer buffer, List operations) { float v1 = buffer.readFloat(); float v2 = buffer.readFloat(); @@ -99,7 +91,6 @@ public abstract class DrawBase2 extends PaintOperation return null; } - /** * Writes out the operation to the buffer * @@ -108,13 +99,9 @@ public abstract class DrawBase2 extends PaintOperation * @param x1 * @param y1 */ - protected static void write(WireBuffer buffer, - int opCode, - float x1, - float y1) { + protected static void write(WireBuffer buffer, int opCode, float x1, float y1) { buffer.start(opCode); 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 2d1d3eb4b78cb3cd31560f7b8a59a02c6413bbf0..e1108e906d8d1ba3244928ec229101024c027d39 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 @@ -25,11 +25,8 @@ import com.android.internal.widget.remotecompose.core.WireBuffer; import java.util.List; -/** - * Base class for commands that take 3 float - */ -public abstract class DrawBase3 extends PaintOperation - implements VariableSupport { +/** Base class for commands that take 3 float */ +public abstract class DrawBase3 extends PaintOperation implements VariableSupport { protected String mName = "DrawRectBase"; float mV1; @@ -39,10 +36,7 @@ public abstract class DrawBase3 extends PaintOperation float mValue2; float mValue3; - public DrawBase3( - float v1, - float v2, - float v3) { + public DrawBase3(float v1, float v2, float v3) { mValue1 = v1; mValue2 = v2; mValue3 = v3; @@ -54,12 +48,9 @@ public abstract class DrawBase3 extends PaintOperation @Override public void updateVariables(RemoteContext context) { - mV1 = (Utils.isVariable(mValue1)) - ? context.getFloat(Utils.idFromNan(mValue1)) : mValue1; - mV2 = (Utils.isVariable(mValue2)) - ? context.getFloat(Utils.idFromNan(mValue2)) : mValue2; - mV3 = (Utils.isVariable(mValue3)) - ? context.getFloat(Utils.idFromNan(mValue3)) : mValue3; + mV1 = Utils.isVariable(mValue1) ? context.getFloat(Utils.idFromNan(mValue1)) : mValue1; + mV2 = Utils.isVariable(mValue2) ? context.getFloat(Utils.idFromNan(mValue2)) : mValue2; + mV3 = Utils.isVariable(mValue3) ? context.getFloat(Utils.idFromNan(mValue3)) : mValue3; } @Override @@ -80,21 +71,21 @@ public abstract class DrawBase3 extends PaintOperation write(buffer, mV1, mV2, mV3); } - protected abstract void write(WireBuffer buffer, - float v1, - float v2, - float v3); + protected abstract void write(WireBuffer buffer, float v1, float v2, float v3); interface Maker { - DrawBase3 create(float v1, - float v2, - float v3); + DrawBase3 create(float v1, float v2, float v3); } @Override public String toString() { - return mName + " " + floatToString(mV1) + " " + floatToString(mV2) - + " " + floatToString(mV3); + return mName + + " " + + floatToString(mV1) + + " " + + floatToString(mV2) + + " " + + floatToString(mV3); } public static void read(Maker maker, WireBuffer buffer, List operations) { @@ -106,17 +97,14 @@ public abstract class DrawBase3 extends PaintOperation } /** - * Construct and Operation from the 3 variables. - * This must be overridden by subclasses + * 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) { + 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 943c5a44b5acebcc74b7d154f97e3ba634f368ad..09f0df985b5ce63418972fae5181ca74442e1dc7 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 @@ -25,11 +25,8 @@ import com.android.internal.widget.remotecompose.core.WireBuffer; import java.util.List; -/** - * Base class for draw commands that take 4 floats - */ -public abstract class DrawBase4 extends PaintOperation - implements VariableSupport { +/** Base class for draw commands that take 4 floats */ +public abstract class DrawBase4 extends PaintOperation implements VariableSupport { protected String mName = "DrawRectBase"; protected float mX1; protected float mY1; @@ -40,11 +37,7 @@ public abstract class DrawBase4 extends PaintOperation float mX2Value; float mY2Value; - public DrawBase4( - float x1, - float y1, - float x2, - float y2) { + public DrawBase4(float x1, float y1, float x2, float y2) { mX1Value = x1; mY1Value = y1; mX2Value = x2; @@ -58,14 +51,10 @@ public abstract class DrawBase4 extends PaintOperation @Override public void updateVariables(RemoteContext context) { - mX1 = (Float.isNaN(mX1Value)) - ? context.getFloat(Utils.idFromNan(mX1Value)) : mX1Value; - mY1 = (Float.isNaN(mY1Value)) - ? context.getFloat(Utils.idFromNan(mY1Value)) : mY1Value; - mX2 = (Float.isNaN(mX2Value)) - ? context.getFloat(Utils.idFromNan(mX2Value)) : mX2Value; - mY2 = (Float.isNaN(mY2Value)) - ? context.getFloat(Utils.idFromNan(mY2Value)) : mY2Value; + mX1 = Float.isNaN(mX1Value) ? context.getFloat(Utils.idFromNan(mX1Value)) : mX1Value; + mY1 = Float.isNaN(mY1Value) ? context.getFloat(Utils.idFromNan(mY1Value)) : mY1Value; + mX2 = Float.isNaN(mX2Value) ? context.getFloat(Utils.idFromNan(mX2Value)) : mX2Value; + mY2 = Float.isNaN(mY2Value) ? context.getFloat(Utils.idFromNan(mY2Value)) : mY2Value; } @Override @@ -89,23 +78,23 @@ public abstract class DrawBase4 extends PaintOperation write(buffer, mX1, mY1, mX2, mY2); } - protected abstract void write(WireBuffer buffer, - float v1, - float v2, - float v3, - float v4); + 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); + DrawBase4 create(float v1, float v2, float v3, float v4); } @Override public String toString() { - return mName + " " + floatToString(mX1Value, mX1) + " " + floatToString(mY1Value, mY1) - + " " + floatToString(mX2Value, mX2) + " " + floatToString(mY2Value, mY2); + return mName + + " " + + floatToString(mX1Value, mX1) + + " " + + floatToString(mY1Value, mY1) + + " " + + floatToString(mX2Value, mX2) + + " " + + floatToString(mY2Value, mY2); } public static void read(Maker maker, WireBuffer buffer, List operations) { @@ -127,14 +116,10 @@ public abstract class DrawBase4 extends PaintOperation * @param y2 * @return */ - public Operation construct(float x1, - float y1, - float x2, - float y2) { + public Operation construct(float x1, float y1, float x2, float y2) { return null; } - /** * Writes out the operation to the buffer * @@ -145,12 +130,8 @@ public abstract class DrawBase4 extends PaintOperation * @param x2 * @param y2 */ - protected static void write(WireBuffer buffer, - int opCode, - float x1, - float y1, - float x2, - float 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); @@ -158,4 +139,3 @@ public abstract class DrawBase4 extends PaintOperation 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 767a36d03ace6c0d61774ccc536bfe7896375bec..e071d5f2096f589226e0b78dee53fc92bdca6e55 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 @@ -15,8 +15,6 @@ */ 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.Operation; import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; @@ -25,11 +23,8 @@ import com.android.internal.widget.remotecompose.core.WireBuffer; import java.util.List; -/** - * Base class for draw commands the take 6 floats - */ -public abstract class DrawBase6 extends PaintOperation - implements VariableSupport { +/** Base class for draw commands the take 6 floats */ +public abstract class DrawBase6 extends PaintOperation implements VariableSupport { protected String mName = "DrawRectBase"; float mV1; float mV2; @@ -44,13 +39,7 @@ public abstract class DrawBase6 extends PaintOperation float mValue5; float mValue6; - public DrawBase6( - float v1, - float v2, - float v3, - float v4, - float v5, - float v6) { + public DrawBase6(float v1, float v2, float v3, float v4, float v5, float v6) { mValue1 = v1; mValue2 = v2; mValue3 = v3; @@ -68,18 +57,12 @@ public abstract class DrawBase6 extends PaintOperation @Override public void updateVariables(RemoteContext context) { - mV1 = (Float.isNaN(mValue1)) - ? context.getFloat(Utils.idFromNan(mValue1)) : mValue1; - mV2 = (Float.isNaN(mValue2)) - ? context.getFloat(Utils.idFromNan(mValue2)) : mValue2; - mV3 = (Float.isNaN(mValue3)) - ? context.getFloat(Utils.idFromNan(mValue3)) : mValue3; - mV4 = (Float.isNaN(mValue4)) - ? context.getFloat(Utils.idFromNan(mValue4)) : mValue4; - mV5 = (Float.isNaN(mValue5)) - ? context.getFloat(Utils.idFromNan(mValue5)) : mValue5; - mV6 = (Float.isNaN(mValue6)) - ? context.getFloat(Utils.idFromNan(mValue6)) : mValue6; + mV1 = Float.isNaN(mValue1) ? context.getFloat(Utils.idFromNan(mValue1)) : mValue1; + mV2 = Float.isNaN(mValue2) ? context.getFloat(Utils.idFromNan(mValue2)) : mValue2; + mV3 = Float.isNaN(mValue3) ? context.getFloat(Utils.idFromNan(mValue3)) : mValue3; + mV4 = Float.isNaN(mValue4) ? context.getFloat(Utils.idFromNan(mValue4)) : mValue4; + mV5 = Float.isNaN(mValue5) ? context.getFloat(Utils.idFromNan(mValue5)) : mValue5; + mV6 = Float.isNaN(mValue6) ? context.getFloat(Utils.idFromNan(mValue6)) : mValue6; } @Override @@ -109,27 +92,24 @@ public abstract class DrawBase6 extends PaintOperation 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); + 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); + return mName + + " " + + Utils.floatToString(mV1) + + " " + + Utils.floatToString(mV2) + + " " + + Utils.floatToString(mV3) + + " " + + Utils.floatToString(mV4); } interface Maker { - DrawBase6 create(float v1, - float v2, - float v3, - float v4, - float v5, - float v6); + DrawBase6 create(float v1, float v2, float v3, float v4, float v5, float v6); } public static void read(Maker build, WireBuffer buffer, List operations) { @@ -155,18 +135,11 @@ public abstract class DrawBase6 extends PaintOperation * @param v6 * @return */ - public Operation construct(float v1, - float v2, - float v3, - float v4, - float v5, - float v6) { + public Operation construct(float v1, float v2, float v3, float v4, float v5, float v6) { return null; } - 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 2748f4c3c369d1e6691afaf4494ea6829cbee9b2..0b43fd24556a76bb99a004fd1d31571b0b5fb422 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,8 +15,8 @@ */ package com.android.internal.widget.remotecompose.core.operations; -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.documentation.DocumentedOperation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -44,12 +44,7 @@ public class DrawBitmap extends PaintOperation implements VariableSupport { int mDescriptionId = 0; public DrawBitmap( - int imageId, - float left, - float top, - float right, - float bottom, - int descriptionId) { + int imageId, float left, float top, float right, float bottom, int descriptionId) { mLeft = left; mTop = top; mRight = right; @@ -60,14 +55,10 @@ public class DrawBitmap extends PaintOperation implements VariableSupport { @Override public void updateVariables(RemoteContext context) { - mOutputLeft = (Float.isNaN(mLeft)) - ? context.getFloat(Utils.idFromNan(mLeft)) : mLeft; - mOutputTop = (Float.isNaN(mTop)) - ? context.getFloat(Utils.idFromNan(mTop)) : mTop; - mOutputRight = (Float.isNaN(mRight)) - ? context.getFloat(Utils.idFromNan(mRight)) : mRight; - mOutputBottom = (Float.isNaN(mBottom)) - ? context.getFloat(Utils.idFromNan(mBottom)) : mBottom; + mOutputLeft = Float.isNaN(mLeft) ? context.getFloat(Utils.idFromNan(mLeft)) : mLeft; + mOutputTop = Float.isNaN(mTop) ? context.getFloat(Utils.idFromNan(mTop)) : mTop; + mOutputRight = Float.isNaN(mRight) ? context.getFloat(Utils.idFromNan(mRight)) : mRight; + mOutputBottom = Float.isNaN(mBottom) ? context.getFloat(Utils.idFromNan(mBottom)) : mBottom; } @Override @@ -93,8 +84,17 @@ public class DrawBitmap extends PaintOperation implements VariableSupport { @Override public String toString() { - return "DrawBitmap (desc=" + mDescriptionId + ")" + mLeft + " " + mTop - + " " + mRight + " " + mBottom + ";"; + return "DrawBitmap (desc=" + + mDescriptionId + + ")" + + mLeft + + " " + + mTop + + " " + + mRight + + " " + + mBottom + + ";"; } public static void read(WireBuffer buffer, List operations) { @@ -117,13 +117,14 @@ public class DrawBitmap extends PaintOperation implements VariableSupport { return OP_CODE; } - public static void apply(WireBuffer buffer, - int id, - float left, - float top, - float right, - float bottom, - int 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); @@ -134,26 +135,18 @@ public class DrawBitmap extends PaintOperation implements VariableSupport { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Draw Operations", - OP_CODE, - CLASS_NAME) + 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(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, - mOutputRight, - mOutputBottom); + context.drawBitmap(mId, mOutputLeft, mOutputTop, mOutputRight, mOutputBottom); } } 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 561d52720a67c71bef49b32ab2c3b2bb7f33bdb1..fc7482759369512272133b4f4762dc88ae8e641d 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,20 +15,17 @@ */ 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.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 com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; import java.util.List; -/** - * Operation to draw a given cached bitmap - */ +/** 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"; @@ -43,16 +40,17 @@ public class DrawBitmapInt extends PaintOperation { int mDstBottom; int mContentDescId = 0; - public DrawBitmapInt(int imageId, - int srcLeft, - int srcTop, - int srcRight, - int srcBottom, - int dstLeft, - int dstTop, - int dstRight, - int dstBottom, - int cdId) { + public DrawBitmapInt( + int imageId, + int srcLeft, + int srcTop, + int srcRight, + int srcBottom, + int dstLeft, + int dstTop, + int dstRight, + int dstBottom, + int cdId) { this.mImageId = imageId; this.mSrcLeft = srcLeft; this.mSrcTop = srcTop; @@ -67,18 +65,44 @@ public class DrawBitmapInt extends PaintOperation { @Override public void write(WireBuffer buffer) { - apply(buffer, mImageId, mSrcLeft, mSrcTop, mSrcRight, mSrcBottom, - mDstLeft, mDstTop, mDstRight, mDstBottom, mContentDescId); + apply( + buffer, + mImageId, + mSrcLeft, + mSrcTop, + mSrcRight, + mSrcBottom, + mDstLeft, + mDstTop, + mDstRight, + mDstBottom, + mContentDescId); } @Override public String toString() { - return "DRAW_BITMAP_INT " + mImageId + " on " + mSrcLeft + " " + mSrcTop - + " " + mSrcRight + " " + mSrcBottom + " " - + "- " + mDstLeft + " " + mDstTop + " " + mDstRight + " " + mDstBottom + ";"; + return "DRAW_BITMAP_INT " + + mImageId + + " on " + + mSrcLeft + + " " + + mSrcTop + + " " + + mSrcRight + + " " + + mSrcBottom + + " " + + "- " + + mDstLeft + + " " + + mDstTop + + " " + + mDstRight + + " " + + mDstBottom + + ";"; } - public static String name() { return CLASS_NAME; } @@ -87,10 +111,18 @@ public class DrawBitmapInt extends PaintOperation { 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) { + 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); @@ -115,41 +147,41 @@ public class DrawBitmapInt extends PaintOperation { 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); + 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) + 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"); + .field(DocumentedOperation.INT, "id", "id of bitmap") + .field(DocumentedOperation.INT, "srcLeft", "The left side of the image") + .field(DocumentedOperation.INT, "srcTop", "The top of the image") + .field(DocumentedOperation.INT, "srcRight", "The right side of the image") + .field(DocumentedOperation.INT, "srcBottom", "The bottom of the image") + .field(DocumentedOperation.INT, "dstLeft", "The left side of the image") + .field(DocumentedOperation.INT, "dstTop", "The top of the image") + .field(DocumentedOperation.INT, "dstRight", "The right side of the image") + .field(DocumentedOperation.INT, "dstBottom", "The bottom of the image") + .field(DocumentedOperation.INT, "cdId", "id of string"); } @Override public void paint(PaintContext context) { - context.drawBitmap(mImageId, mSrcLeft, mSrcTop, mSrcRight, mSrcBottom, - mDstLeft, mDstTop, mDstRight, mDstBottom, mContentDescId); + context.drawBitmap( + mImageId, + mSrcLeft, + mSrcTop, + mSrcRight, + mSrcBottom, + mDstLeft, + mDstTop, + mDstRight, + mDstBottom, + mContentDescId); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmapScaled.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmapScaled.java new file mode 100644 index 0000000000000000000000000000000000000000..22742c63dd2d3014406721616c11765cbfba7e46 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmapScaled.java @@ -0,0 +1,319 @@ +/* + * 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.internal.widget.remotecompose.core.operations; + +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 com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; +import com.android.internal.widget.remotecompose.core.operations.utilities.ImageScaling; + +import java.util.List; + +/** Operation to draw a given cached bitmap */ +public class DrawBitmapScaled extends PaintOperation implements VariableSupport { + private static final int OP_CODE = Operations.DRAW_BITMAP_SCALED; + private static final String CLASS_NAME = "DrawBitmapScaled"; + int mImageId; + float mSrcLeft, mOutSrcLeft; + float mSrcTop, mOutSrcTop; + float mSrcRight, mOutSrcRight; + float mSrcBottom, mOutSrcBottom; + float mDstLeft, mOutDstLeft; + float mDstTop, mOutDstTop; + float mDstRight, mOutDstRight; + float mDstBottom, mOutDstBottom; + int mContentDescId; + float mScaleFactor, mOutScaleFactor; + int mScaleType; + + ImageScaling mScaling = new ImageScaling(); + public static final int SCALE_NONE = ImageScaling.SCALE_NONE; + public static final int SCALE_INSIDE = ImageScaling.SCALE_INSIDE; + public static final int SCALE_FILL_WIDTH = ImageScaling.SCALE_FILL_WIDTH; + public static final int SCALE_FILL_HEIGHT = ImageScaling.SCALE_FILL_HEIGHT; + public static final int SCALE_FIT = ImageScaling.SCALE_FIT; + public static final int SCALE_CROP = ImageScaling.SCALE_CROP; + public static final int SCALE_FILL_BOUNDS = ImageScaling.SCALE_FILL_BOUNDS; + public static final int SCALE_FIXED_SCALE = ImageScaling.SCALE_FIXED_SCALE; + + public DrawBitmapScaled( + int imageId, + float srcLeft, + float srcTop, + float srcRight, + float srcBottom, + float dstLeft, + float dstTop, + float dstRight, + float dstBottom, + int type, + float scale, + int cdId) { + this.mImageId = imageId; + mOutSrcLeft = mSrcLeft = srcLeft; + mOutSrcTop = mSrcTop = srcTop; + mOutSrcRight = mSrcRight = srcRight; + mOutSrcBottom = mSrcBottom = srcBottom; + mOutDstLeft = mDstLeft = dstLeft; + mOutDstTop = mDstTop = dstTop; + mOutDstRight = mDstRight = dstRight; + mOutDstBottom = mDstBottom = dstBottom; + mScaleType = type; + mOutScaleFactor = mScaleFactor = scale; + this.mContentDescId = cdId; + } + + @Override + public void updateVariables(RemoteContext context) { + mOutSrcLeft = + Float.isNaN(mSrcLeft) ? context.getFloat(Utils.idFromNan(mSrcLeft)) : mSrcLeft; + mOutSrcTop = Float.isNaN(mSrcTop) ? context.getFloat(Utils.idFromNan(mSrcTop)) : mSrcTop; + mOutSrcRight = + Float.isNaN(mSrcRight) ? context.getFloat(Utils.idFromNan(mSrcRight)) : mSrcRight; + mOutSrcBottom = + Float.isNaN(mSrcBottom) + ? context.getFloat(Utils.idFromNan(mSrcBottom)) + : mSrcBottom; + mOutDstLeft = + Float.isNaN(mDstLeft) ? context.getFloat(Utils.idFromNan(mDstLeft)) : mDstLeft; + mOutDstTop = Float.isNaN(mDstTop) ? context.getFloat(Utils.idFromNan(mDstTop)) : mDstTop; + mOutDstRight = + Float.isNaN(mDstRight) ? context.getFloat(Utils.idFromNan(mDstRight)) : mDstRight; + mOutDstBottom = + Float.isNaN(mDstBottom) + ? context.getFloat(Utils.idFromNan(mDstBottom)) + : mDstBottom; + mOutScaleFactor = + Float.isNaN(mScaleFactor) + ? context.getFloat(Utils.idFromNan(mScaleFactor)) + : mScaleFactor; + } + + @Override + public void registerListening(RemoteContext context) { + register(context, mSrcLeft); + register(context, mSrcTop); + register(context, mSrcRight); + register(context, mSrcBottom); + register(context, mDstLeft); + register(context, mDstTop); + register(context, mDstRight); + register(context, mDstBottom); + register(context, mScaleFactor); + } + + private void register(RemoteContext context, float value) { + if (Float.isNaN(value)) { + context.listensTo(Utils.idFromNan(value), this); + } + } + + static String str(float v) { + String s = " " + (int) v; + return s.substring(s.length() - 3); + } + + void print(String str, float left, float top, float right, float bottom) { + String s = str; + s += str(left) + ", " + str(top) + ", " + str(right) + ", " + str(bottom) + ", "; + s += " [" + str(right - left) + " x " + str(bottom - top) + "]"; + System.out.println(s); + } + + @Override + public void write(WireBuffer buffer) { + apply( + buffer, + mImageId, + mSrcLeft, + mSrcTop, + mSrcRight, + mSrcBottom, + mDstLeft, + mDstTop, + mDstRight, + mDstBottom, + mScaleType, + mScaleFactor, + mContentDescId); + } + + @Override + public String toString() { + return "DrawBitmapScaled " + + mImageId + + " [" + + Utils.floatToString(mSrcLeft, mOutSrcLeft) + + " " + + Utils.floatToString(mSrcTop, mOutSrcTop) + + " " + + Utils.floatToString(mSrcRight, mOutSrcRight) + + " " + + Utils.floatToString(mSrcBottom, mOutSrcBottom) + + "] " + + "- [" + + Utils.floatToString(mDstLeft, mOutDstLeft) + + " " + + Utils.floatToString(mDstTop, mOutDstTop) + + " " + + Utils.floatToString(mDstRight, mOutDstRight) + + " " + + Utils.floatToString(mDstBottom, mOutDstBottom) + + "] " + + " " + + mScaleType + + " " + + Utils.floatToString(mScaleFactor, mOutScaleFactor); + } + + public static String name() { + return CLASS_NAME; + } + + public static int id() { + return OP_CODE; + } + + public static void apply( + WireBuffer buffer, + int imageId, + float srcLeft, + float srcTop, + float srcRight, + float srcBottom, + float dstLeft, + float dstTop, + float dstRight, + float dstBottom, + int scaleType, + float scaleFactor, + int cdId) { + buffer.start(OP_CODE); + buffer.writeInt(imageId); + + buffer.writeFloat(srcLeft); + buffer.writeFloat(srcTop); + buffer.writeFloat(srcRight); + buffer.writeFloat(srcBottom); + + buffer.writeFloat(dstLeft); + buffer.writeFloat(dstTop); + buffer.writeFloat(dstRight); + buffer.writeFloat(dstBottom); + + buffer.writeInt(scaleType); + buffer.writeFloat(scaleFactor); + buffer.writeInt(cdId); + } + + public static void read(WireBuffer buffer, List operations) { + int imageId = buffer.readInt(); + + float sLeft = buffer.readFloat(); + float srcTop = buffer.readFloat(); + float srcRight = buffer.readFloat(); + float srcBottom = buffer.readFloat(); + + float dstLeft = buffer.readFloat(); + float dstTop = buffer.readFloat(); + float dstRight = buffer.readFloat(); + float dstBottom = buffer.readFloat(); + int scaleType = buffer.readInt(); + float scaleFactor = buffer.readFloat(); + int cdId = buffer.readInt(); + DrawBitmapScaled op = + new DrawBitmapScaled( + imageId, + sLeft, + srcTop, + srcRight, + srcBottom, + dstLeft, + dstTop, + dstRight, + dstBottom, + scaleType, + scaleFactor, + 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(DocumentedOperation.INT, "id", "id of bitmap") + .field(DocumentedOperation.FLOAT, "srcLeft", "The left side of the image") + .field(DocumentedOperation.FLOAT, "srcTop", "The top of the image") + .field(DocumentedOperation.FLOAT, "srcRight", "The right side of the image") + .field(DocumentedOperation.FLOAT, "srcBottom", "The bottom of the output") + .field(DocumentedOperation.FLOAT, "dstLeft", "The left side of the output") + .field(DocumentedOperation.FLOAT, "dstTop", "The top of the output") + .field(DocumentedOperation.FLOAT, "dstRight", "The right side of the output") + .field(DocumentedOperation.INT, "type", "type of auto scaling") + .field(DocumentedOperation.INT, "scaleFactor", "for allowed") + .field(DocumentedOperation.INT, "cdId", "id of string"); + } + + // private String typeToString(int type) { + // String[] typeString = { + // "none", + // "inside", + // "fill_width", + // "fill_height", + // "fit", + // "crop", + // "fill_bounds", + // "fixed_scale" + // }; + // return typeString[type]; + // } + + @Override + public void paint(PaintContext context) { + mScaling.setup( + mOutSrcLeft, + mOutSrcTop, + mOutSrcRight, + mOutSrcBottom, + mOutDstLeft, + mOutDstTop, + mOutDstRight, + mOutDstBottom, + mScaleType, + mOutScaleFactor); + context.save(); + context.clipRect(mOutDstLeft, mOutDstTop, mOutDstRight, mOutDstBottom); + context.drawBitmap( + mImageId, + (int) mOutSrcLeft, + (int) mOutSrcTop, + (int) mOutSrcRight, + (int) mOutSrcBottom, + (int) mScaling.mFinalDstLeft, + (int) mScaling.mFinalDstTop, + (int) mScaling.mFinalDstRight, + (int) mScaling.mFinalDstBottom, + mContentDescId); + context.restore(); + } +} 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 e39a19171cf0551b164c9b9154dd5063c21f5fd0..04f095af29dc75d3a1640539afdda8ea98c87a73 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,12 +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; -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 com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; import java.util.List; @@ -28,29 +42,25 @@ public class DrawCircle extends DrawBase3 { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Canvas Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Canvas Operations", OP_CODE, CLASS_NAME) .description("Draw a Circle") - .field(FLOAT, "centerX", + .field( + DocumentedOperation.FLOAT, + "centerX", "The x-coordinate of the center of the circle to be drawn") - .field(FLOAT, "centerY", + .field( + DocumentedOperation.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"); + .field(DocumentedOperation.FLOAT, "radius", "The radius of the circle to be drawn"); } - protected void write(WireBuffer buffer, - float v1, - float v2, - float v3) { + @Override + protected void write(WireBuffer buffer, float v1, float v2, float v3) { apply(buffer, v1, v2, v3); } - public DrawCircle( - float left, - float top, - float right) { + public DrawCircle(float left, float top, float right) { super(left, top, right); mName = CLASS_NAME; } @@ -68,10 +78,7 @@ public class DrawCircle extends DrawBase3 { * @param y1 * @param x2 */ - public static void apply(WireBuffer buffer, - float x1, - float y1, - float x2) { + public static void apply(WireBuffer buffer, float x1, float y1, float x2) { buffer.start(OP_CODE); buffer.writeFloat(x1); buffer.writeFloat(y1); 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 a7276b56049f61456cf4a8577556d7eaf266842c..dacbb0361761ffcf8015f51fba31dfcafcdc3b14 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,14 +15,13 @@ */ 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.documentation.DocumentedOperation; import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; import java.util.List; @@ -36,7 +35,6 @@ public class DrawLine extends DrawBase4 implements SerializableToString { read(m, buffer, operations); } - public static int id() { return OP_CODE; } @@ -46,33 +44,32 @@ public class DrawLine extends DrawBase4 implements SerializableToString { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Canvas Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Canvas Operations", OP_CODE, CLASS_NAME) .description("Draw a line segment") - .field(FLOAT, "startX", + .field( + DocumentedOperation.FLOAT, + "startX", "The x-coordinate of the start point of the line") - .field(FLOAT, "startY", + .field( + DocumentedOperation.FLOAT, + "startY", "The y-coordinate of the start point of the line") - .field(FLOAT, "endX", + .field( + DocumentedOperation.FLOAT, + "endX", "The x-coordinate of the end point of the line") - .field(FLOAT, "endY", + .field( + DocumentedOperation.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) { + @Override + protected void write(WireBuffer buffer, float v1, float v2, float v3, float v4) { apply(buffer, v1, v2, v3, v4); } - public DrawLine( - float left, - float top, - float right, - float bottom) { + public DrawLine(float left, float top, float right, float bottom) { super(left, top, right, bottom); mName = "DrawLine"; } @@ -91,14 +88,11 @@ public class DrawLine extends DrawBase4 implements SerializableToString { * @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) { + public static void apply(WireBuffer buffer, float x1, float y1, float x2, float y2) { write(buffer, OP_CODE, x1, y1, x2, y2); } + @Override public void serializeToString(int indent, StringSerializer serializer) { String x1 = "" + mX1; if (Float.isNaN(mX1Value)) { @@ -116,8 +110,6 @@ public class DrawLine extends DrawBase4 implements SerializableToString { if (Float.isNaN(mY2Value)) { y2 = "[" + Utils.idFromNan(mY2Value) + " = " + mY2 + "]"; } - serializer.append(indent, CLASS_NAME - + "(" + x1 + ", " + y1 + ", " + x2 + ", " + y2 + ")" - ); + 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 01761efbb9ed698067150df947363d9bb98870f9..5d498e81c9d2d29c0de35e55d25dfd793ae5af60 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,13 +15,12 @@ */ 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 com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; import java.util.List; @@ -43,25 +42,16 @@ public class DrawOval extends DrawBase4 { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Canvas Operations", - OP_CODE, - CLASS_NAME) + 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"); + .field(DocumentedOperation.FLOAT, "left", "The left side of the oval") + .field(DocumentedOperation.FLOAT, "top", "The top of the oval") + .field(DocumentedOperation.FLOAT, "right", "The right side of the oval") + .field(DocumentedOperation.FLOAT, "bottom", "The bottom of the oval"); } - protected void write(WireBuffer buffer, - float v1, - float v2, - float v3, - float v4) { + @Override + protected void write(WireBuffer buffer, float v1, float v2, float v3, float v4) { apply(buffer, v1, v2, v3, v4); } @@ -70,11 +60,7 @@ public class DrawOval extends DrawBase4 { apply(buffer, mX1, mY1, mX2, mY2); } - public DrawOval( - float left, - float top, - float right, - float bottom) { + public DrawOval(float left, float top, float right, float bottom) { super(left, top, right, bottom); mName = CLASS_NAME; } @@ -83,6 +69,7 @@ public class DrawOval extends DrawBase4 { public void paint(PaintContext context) { context.drawOval(mX1, mY1, mX2, mY2); } + /** * Writes out the DrawOval to the buffer * @@ -92,11 +79,7 @@ public class DrawOval extends DrawBase4 { * @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) { + 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 bc2c53a9a5bac6bc570b37adf53edaff3cc1c2d3..ccbf3d9e30914367fa433368272f872adac3c433 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,14 +15,13 @@ */ 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.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 com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; import java.util.List; @@ -54,12 +53,10 @@ public class DrawPath extends PaintOperation { operations.add(op); } - public static String name() { return CLASS_NAME; } - public static int id() { return Operations.DRAW_PATH; } @@ -70,14 +67,11 @@ public class DrawPath extends PaintOperation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Draw Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Draw Operations", OP_CODE, CLASS_NAME) .description("Draw a bitmap using integer coordinates") - .field(INT, "id", "id of path"); + .field(DocumentedOperation.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 ad17fe743b766b7cad989ad88835410fa0a42f46..644011b8a21449c6ac9f6052dde7d2804cee60b0 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,19 +15,16 @@ */ 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 com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; import java.util.List; -/** - * Draw a Rectangle - */ +/** Draw a Rectangle */ public class DrawRect extends DrawBase4 { private static final int OP_CODE = Operations.DRAW_RECT; private static final String CLASS_NAME = "DrawRect"; @@ -37,7 +34,6 @@ public class DrawRect extends DrawBase4 { read(m, buffer, operations); } - public static int id() { return OP_CODE; } @@ -47,34 +43,20 @@ public class DrawRect extends DrawBase4 { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Canvas Operations", - OP_CODE, - CLASS_NAME) + 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"); + .field(DocumentedOperation.FLOAT, "left", "The left side of the rectangle") + .field(DocumentedOperation.FLOAT, "top", "The top of the rectangle") + .field(DocumentedOperation.FLOAT, "right", "The right side of the rectangle") + .field(DocumentedOperation.FLOAT, "bottom", "The bottom of the rectangle"); } - - protected void write(WireBuffer buffer, - float v1, - float v2, - float v3, - float v4) { + @Override + protected void write(WireBuffer buffer, float v1, float v2, float v3, float v4) { apply(buffer, v1, v2, v3, v4); } - public DrawRect( - float left, - float top, - float right, - float bottom) { + public DrawRect(float left, float top, float right, float bottom) { super(left, top, right, bottom); mName = CLASS_NAME; } @@ -88,16 +70,12 @@ public class DrawRect extends DrawBase4 { * 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 + * @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) { + 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 908e03a5191cf5ad50124be14dd1ba16f6f90987..64a3b283505b8739a5275ca620f58fa70d66a38c 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,24 +15,20 @@ */ 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 com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; import java.util.List; -/** - * Draw a rounded rectangle - */ +/** Draw a rounded rectangle */ public class DrawRoundRect extends DrawBase6 { private static final int OP_CODE = Operations.DRAW_ROUND_RECT; private static final String CLASS_NAME = "DrawRoundRect"; - public static void read(WireBuffer buffer, List operations) { Maker m = DrawRoundRect::new; read(m, buffer, operations); @@ -53,13 +49,8 @@ public class DrawRoundRect extends DrawBase6 { * @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) { + 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); @@ -69,50 +60,36 @@ public class DrawRoundRect extends DrawBase6 { buffer.writeFloat(v6); } - protected void write(WireBuffer buffer, - float v1, - float v2, - float v3, - float v4, - float v5, - float v6) { + @Override + 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) + 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", + .field(DocumentedOperation.FLOAT, "left", "The left side of the rect") + .field(DocumentedOperation.FLOAT, "top", "The top of the rect") + .field(DocumentedOperation.FLOAT, "right", "The right side of the rect") + .field(DocumentedOperation.FLOAT, "bottom", "The bottom of the rect") + .field( + DocumentedOperation.FLOAT, + "rx", "The x-radius of the oval used to round the corners") - .field(FLOAT, "sweepAngle", + .field( + DocumentedOperation.FLOAT, + "sweepAngle", "The y-radius of the oval used to round the corners"); } - - public DrawRoundRect(float v1, - float v2, - float v3, - float v4, - float v5, - float v6) { + public DrawRoundRect(float v1, float v2, float v3, float v4, float v5, float v6) { super(v1, v2, v3, v4, v5, v6); mName = CLASS_NAME; } @Override public void paint(PaintContext context) { - context.drawRoundRect(mV1, mV2, mV3, mV4, mV5, mV6 - ); + context.drawRoundRect(mV1, mV2, mV3, mV4, mV5, mV6); } - } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawSector.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawSector.java new file mode 100644 index 0000000000000000000000000000000000000000..3cb191647c33f7b9b324c57df026326c8c85cb01 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawSector.java @@ -0,0 +1,96 @@ +/* + * 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 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.documentation.DocumentedOperation; + +import java.util.List; + +public class DrawSector extends DrawBase6 { + public static final int OP_CODE = Operations.DRAW_SECTOR; + private static final String CLASS_NAME = "DrawSector"; + + public static void read(WireBuffer buffer, List operations) { + Maker m = DrawSector::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); + } + + @Override + 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 sector (pie shape)" + + "which will be scaled to fit inside the specified oval") + .field(DocumentedOperation.FLOAT, "left", "The left side of the Oval") + .field(DocumentedOperation.FLOAT, "top", "The top of the Oval") + .field(DocumentedOperation.FLOAT, "right", "The right side of the Oval") + .field(DocumentedOperation.FLOAT, "bottom", "The bottom of the Oval") + .field( + DocumentedOperation.FLOAT, + "startAngle", + "Starting angle (in degrees) where the arc begins") + .field( + DocumentedOperation.FLOAT, + "sweepAngle", + "Sweep angle (in degrees) measured clockwise"); + } + + public DrawSector(float v1, float v2, float v3, float v4, float v5, float v6) { + super(v1, v2, v3, v4, v5, v6); + mName = "DrawSector"; + } + + @Override + public void paint(PaintContext context) { + context.drawSector(mV1, mV2, mV3, mV4, mV5, mV6); + } +} 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 60dddc2d610edf1978374fb9f864ca554ff419fd..bcb7852e661524789a5d3f19557336732053799a 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,9 +15,6 @@ */ package com.android.internal.widget.remotecompose.core.operations; -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; @@ -28,12 +25,11 @@ 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.documentation.DocumentedOperation; import java.util.List; -/** - * Draw Text - */ +/** Draw Text */ public class DrawText extends PaintOperation implements VariableSupport { private static final int OP_CODE = Operations.DRAW_TEXT_RUN; private static final String CLASS_NAME = "DrawText"; @@ -48,14 +44,15 @@ public class DrawText extends PaintOperation implements VariableSupport { float mOutY = 0f; boolean mRtl = false; - public DrawText(int textID, - int start, - int end, - int contextStart, - int contextEnd, - float x, - float y, - boolean rtl) { + public DrawText( + int textID, + int start, + int end, + int contextStart, + int contextEnd, + float x, + float y, + boolean rtl) { mTextID = textID; mStart = start; mEnd = end; @@ -68,10 +65,8 @@ public class DrawText extends PaintOperation implements VariableSupport { @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; + mOutX = Float.isNaN(mX) ? context.getFloat(Utils.idFromNan(mX)) : mX; + mOutY = Float.isNaN(mY) ? context.getFloat(Utils.idFromNan(mY)) : mY; } @Override @@ -87,13 +82,20 @@ public class DrawText extends PaintOperation implements VariableSupport { @Override public void write(WireBuffer buffer) { apply(buffer, mTextID, mStart, mEnd, mContextStart, mContextEnd, mX, mY, mRtl); - } @Override public String toString() { - return "DrawTextRun [" + mTextID + "] " + mStart + ", " + mEnd + ", " - + floatToString(mX, mOutX) + ", " + floatToString(mY, mOutY); + return "DrawTextRun [" + + mTextID + + "] " + + mStart + + ", " + + mEnd + + ", " + + floatToString(mX, mOutX) + + ", " + + floatToString(mY, mOutY); } public static void read(WireBuffer buffer, List operations) { @@ -114,7 +116,6 @@ public class DrawText extends PaintOperation implements VariableSupport { return CLASS_NAME; } - public static int id() { return OP_CODE; } @@ -122,25 +123,26 @@ public class DrawText extends PaintOperation implements VariableSupport { /** * 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 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 + * @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) { + 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); @@ -152,33 +154,30 @@ public class DrawText extends PaintOperation implements VariableSupport { buffer.writeBoolean(rtl); } - public static void documentation(DocumentationBuilder doc) { - doc.operation("Draw Operations", - id(), - CLASS_NAME) + 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", + .field(DocumentedOperation.INT, "textId", "id of bitmap") + .field( + DocumentedOperation.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", + .field(DocumentedOperation.INT, "end", "The end of the text to render") + .field( + DocumentedOperation.INT, + "contextStart", "the index of the start of the shaping context") - .field(INT, "contextEnd", + .field( + DocumentedOperation.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"); + .field(DocumentedOperation.FLOAT, "x", "The x position at which to draw the text") + .field(DocumentedOperation.FLOAT, "y", "The y position at which to draw the text") + .field(DocumentedOperation.BOOLEAN, "RTL", "Whether the run is in RTL direction"); } - @Override public void paint(PaintContext context) { - context.drawTextRun(mTextID, mStart, mEnd, mContextStart, - mContextEnd, mOutX, mOutY, 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 242bc2575cee79d8da9136f18454d305cd217260..95a87667dfabf57c31471831d2fe6ad08b0c90f4 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,9 +15,6 @@ */ package com.android.internal.widget.remotecompose.core.operations; -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; @@ -26,12 +23,11 @@ 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.documentation.DocumentedOperation; import java.util.List; -/** - * Draw Text in Anchored to a point - */ +/** Draw Text in Anchored to a point */ public class DrawTextAnchored extends PaintOperation implements VariableSupport { private static final int OP_CODE = Operations.DRAW_TEXT_ANCHOR; private static final String CLASS_NAME = "DrawTextAnchored"; @@ -49,12 +45,7 @@ public class DrawTextAnchored extends PaintOperation implements VariableSupport public static final int ANCHOR_TEXT_RTL = 1; public static final int ANCHOR_MONOSPACE_MEASURE = 2; - public DrawTextAnchored(int textID, - float x, - float y, - float panX, - float panY, - int flags) { + public DrawTextAnchored(int textID, float x, float y, float panX, float panY, int flags) { mTextID = textID; mX = x; mY = y; @@ -67,14 +58,10 @@ public class DrawTextAnchored extends PaintOperation implements VariableSupport @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; - mOutPanX = (Float.isNaN(mPanX)) - ? context.getFloat(Utils.idFromNan(mPanX)) : mPanX; - mOutPanY = (Float.isNaN(mPanY)) - ? context.getFloat(Utils.idFromNan(mPanY)) : mPanY; + mOutX = Float.isNaN(mX) ? context.getFloat(Utils.idFromNan(mX)) : mX; + mOutY = Float.isNaN(mY) ? context.getFloat(Utils.idFromNan(mY)) : mY; + mOutPanX = Float.isNaN(mPanX) ? context.getFloat(Utils.idFromNan(mPanX)) : mPanX; + mOutPanY = Float.isNaN(mPanY) ? context.getFloat(Utils.idFromNan(mPanY)) : mPanY; } @Override @@ -95,18 +82,22 @@ public class DrawTextAnchored extends PaintOperation implements VariableSupport @Override public void write(WireBuffer buffer) { - apply(buffer, mTextID, mX, - mY, - mPanX, - mPanY, - mFlags); + apply(buffer, mTextID, mX, mY, mPanX, mPanY, mFlags); } @Override public String toString() { - return "DrawTextAnchored [" + mTextID + "] " + floatToStr(mX) + ", " - + floatToStr(mY) + ", " - + floatToStr(mPanX) + ", " + floatToStr(mPanY) + ", " + return "DrawTextAnchored [" + + mTextID + + "] " + + floatToStr(mX) + + ", " + + floatToStr(mY) + + ", " + + floatToStr(mPanX) + + ", " + + floatToStr(mPanY) + + ", " + Integer.toBinaryString(mFlags); } @@ -125,10 +116,7 @@ public class DrawTextAnchored extends PaintOperation implements VariableSupport float panY = buffer.readFloat(); int flags = buffer.readInt(); - DrawTextAnchored op = new DrawTextAnchored(textID, - x, y, - panX, panY, - flags); + DrawTextAnchored op = new DrawTextAnchored(textID, x, y, panX, panY, flags); operations.add(op); } @@ -152,13 +140,8 @@ public class DrawTextAnchored extends PaintOperation implements VariableSupport * @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) { + 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); @@ -169,25 +152,22 @@ public class DrawTextAnchored extends PaintOperation implements VariableSupport } public static void documentation(DocumentationBuilder doc) { - doc.operation("Draw Operations", - OP_CODE, - CLASS_NAME) + 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", + .field(DocumentedOperation.INT, "textId", "id of bitmap") + .field(DocumentedOperation.FLOAT, "x", "The x-position of the anchor point") + .field(DocumentedOperation.FLOAT, "y", "The y-position of the anchor point") + .field( + DocumentedOperation.FLOAT, + "panX", "The pan from left(-1) to right(1) 0 being centered") - .field(FLOAT, "panY", + .field( + DocumentedOperation.FLOAT, + "panY", "The pan from top(-1) to bottom(1) 0 being centered") - .field(INT, "flags", - "Change the behaviour"); - + .field(DocumentedOperation.INT, "flags", "Change the behaviour"); } - float[] mBounds = new float[4]; private float getHorizontalOffset() { @@ -196,8 +176,7 @@ public class DrawTextAnchored extends PaintOperation implements VariableSupport float textWidth = scale * (mBounds[2] - mBounds[0]); float boxWidth = 0; - return (boxWidth - textWidth) * (1 + mOutPanX) / 2.f - - (scale * mBounds[0]); + return (boxWidth - textWidth) * (1 + mOutPanX) / 2.f - (scale * mBounds[0]); } private float getVerticalOffset() { @@ -205,18 +184,18 @@ public class DrawTextAnchored extends PaintOperation implements VariableSupport float scale = 1.0f; float boxHeight = 0; float textHeight = scale * (mBounds[3] - mBounds[1]); - return (boxHeight - textHeight) * (1 - mOutPanY) / 2 - - (scale * mBounds[1]); + return (boxHeight - textHeight) * (1 - mOutPanY) / 2 - (scale * mBounds[1]); } @Override public void paint(PaintContext context) { - int flags = ((mFlags & ANCHOR_MONOSPACE_MEASURE) != 0) - ? PaintContext.TEXT_MEASURE_MONOSPACE_WIDTH : 0; + 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, - (mFlags & ANCHOR_TEXT_RTL) == 1); + float y = Float.isNaN(mOutPanY) ? mOutY : mOutY + getVerticalOffset(); + context.drawTextRun(mTextID, 0, -1, 0, 1, x, y, (mFlags & ANCHOR_TEXT_RTL) == 1); } } 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 d69362bd7a7de67a6ddbee9e0b78788bc11a39a9..aefd6f397ebf920f508b84c9d39ce510941840b5 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,10 +15,6 @@ */ package com.android.internal.widget.remotecompose.core.operations; -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; @@ -27,13 +23,12 @@ 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.documentation.DocumentedOperation; import java.util.List; -/** - * Draw text along a path. - */ -public class DrawTextOnPath extends PaintOperation implements VariableSupport { +/** Draw text along a path. */ +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; @@ -46,18 +41,16 @@ public class DrawTextOnPath extends PaintOperation implements VariableSupport { public DrawTextOnPath(int textId, int pathId, float hOffset, float vOffset) { mPathId = pathId; mTextId = textId; - mOutHOffset = mHOffset = vOffset; - mOutVOffset = mVOffset = hOffset; + mOutHOffset = mHOffset = hOffset; + mOutVOffset = mVOffset = vOffset; } - @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; - + mOutHOffset = + Float.isNaN(mHOffset) ? context.getFloat(Utils.idFromNan(mHOffset)) : mHOffset; + mOutVOffset = + Float.isNaN(mVOffset) ? context.getFloat(Utils.idFromNan(mVOffset)) : mVOffset; } @Override @@ -77,16 +70,21 @@ public class DrawTextOnPath extends PaintOperation implements VariableSupport { @Override public String toString() { - return "DrawTextOnPath [" + mTextId + "] [" + mPathId + "] " - + floatToString(mHOffset, mOutHOffset) + ", " - + floatToString(mVOffset, mOutVOffset); + return "DrawTextOnPath [" + + mTextId + + "] [" + + mPathId + + "] " + + Utils.floatToString(mHOffset, mOutHOffset) + + ", " + + Utils.floatToString(mVOffset, mOutVOffset); } public static void read(WireBuffer buffer, List operations) { int textId = buffer.readInt(); int pathId = buffer.readInt(); - float hOffset = buffer.readFloat(); float vOffset = buffer.readFloat(); + float hOffset = buffer.readFloat(); DrawTextOnPath op = new DrawTextOnPath(textId, pathId, hOffset, vOffset); operations.add(op); } @@ -95,33 +93,26 @@ public class DrawTextOnPath extends PaintOperation implements VariableSupport { return "DrawTextOnPath"; } - public static int id() { return Operations.DRAW_TEXT_ON_PATH; } - public static void apply(WireBuffer buffer, int textId, int pathId, - float hOffset, float 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); + buffer.writeFloat(hOffset); } public static void documentation(DocumentationBuilder doc) { - doc.operation("Draw Operations", - OP_CODE, - CLASS_NAME) + 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"); + .field(DocumentedOperation.INT, "textId", "id of the text") + .field(DocumentedOperation.INT, "pathId", "id of the path") + .field(DocumentedOperation.FLOAT, "xOffset", "x Shift of the text") + .field(DocumentedOperation.FLOAT, "yOffset", "y Shift of the text"); } @Override 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 354726319c45ad524ca881a8068ff0101402d8f0..b6d45d95f2c036c2dfb76c0082965dc9d3a523eb 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,8 +15,6 @@ */ package com.android.internal.widget.remotecompose.core.operations; -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; @@ -27,6 +25,7 @@ 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.documentation.DocumentedOperation; import java.util.List; @@ -42,12 +41,7 @@ public class DrawTweenPath extends PaintOperation implements VariableSupport { int mPath1Id; int mPath2Id; - public DrawTweenPath( - int path1Id, - int path2Id, - float tween, - float start, - float stop) { + public DrawTweenPath(int path1Id, int path2Id, float tween, float start, float stop) { mOutTween = mTween = tween; mOutStart = mStart = start; mOutStop = mStop = stop; @@ -57,12 +51,9 @@ public class DrawTweenPath extends PaintOperation implements VariableSupport { @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; + 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 @@ -80,49 +71,44 @@ public class DrawTweenPath extends PaintOperation implements VariableSupport { @Override public void write(WireBuffer buffer) { - apply(buffer, mPath1Id, - mPath2Id, - mTween, - mStart, - mStop); + apply(buffer, mPath1Id, mPath2Id, mTween, mStart, mStop); } @Override public String toString() { - return "DrawTweenPath " + mPath1Id + " " + mPath2Id - + " " + floatToString(mTween, mOutTween) + " " - + floatToString(mStart, mOutStart) + " " - + "- " + floatToString(mStop, mOutStop); + return "DrawTweenPath " + + mPath1Id + + " " + + mPath2Id + + " " + + floatToString(mTween, mOutTween) + + " " + + floatToString(mStart, mOutStart) + + " " + + "- " + + floatToString(mStop, mOutStop); } - public static void read(WireBuffer buffer, List 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); + DrawTweenPath op = new DrawTweenPath(path1Id, path2Id, tween, start, stop); operations.add(op); } - 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) { + 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); @@ -131,33 +117,18 @@ public class DrawTweenPath extends PaintOperation implements VariableSupport { buffer.writeFloat(stop); } - public static void documentation(DocumentationBuilder doc) { - doc.operation("Draw Operations", - OP_CODE, - CLASS_NAME) + 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"); - + .field(DocumentedOperation.INT, "pathId1", "id of path 1") + .field(DocumentedOperation.INT, "pathId2", "id of path 2") + .field(DocumentedOperation.FLOAT, "tween", "interpolate between the two paths") + .field(DocumentedOperation.FLOAT, "start", "trim the start of the path") + .field(DocumentedOperation.FLOAT, "yOffset", "trim the end of the path"); } - @Override public void paint(PaintContext context) { - context.drawTweenPath(mPath1Id, - mPath2Id, - mOutTween, - mOutStart, - mOutStop); + context.drawTweenPath(mPath1Id, mPath2Id, 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 31b8ff6db58b62189c07cdc26ec27a1cd55568ac..765e150e81afcb567d9ee759d47985a564f1d51c 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,21 +15,19 @@ */ package com.android.internal.widget.remotecompose.core.operations; -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.documentation.DocumentedOperation.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.documentation.DocumentedOperation; import java.util.List; -/** - * Operation to deal with Text data - */ -public class FloatConstant implements Operation { +/** Operation to deal with Text data */ +public class FloatConstant implements com.android.internal.widget.remotecompose.core.Operation { private static final int OP_CODE = Operations.DATA_FLOAT; private static final String CLASS_NAME = "FloatConstant"; public int mTextId; @@ -54,7 +52,6 @@ public class FloatConstant implements Operation { return CLASS_NAME; } - public static int id() { return OP_CODE; } @@ -63,8 +60,8 @@ public class FloatConstant implements Operation { * 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 + * @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); @@ -80,14 +77,10 @@ public class FloatConstant implements Operation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Expressions Operations", - OP_CODE, - CLASS_NAME) + 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"); - + .field(DocumentedOperation.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 e3df1eb0da26b34561bafdc8b2d719b57799fa4e..d71793364a33532358e7bff3949c020d440ef208 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,10 +15,10 @@ */ package com.android.internal.widget.remotecompose.core.operations; -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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.FLOAT_ARRAY; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.SHORT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -26,19 +26,17 @@ 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.documentation.DocumentedOperation; 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; import java.util.List; /** - * Operation to deal with AnimatedFloats - * This is designed to be an optimized calculation for things like - * injecting the width of the component int draw rect - * As well as supporting generalized animation floats. - * The floats represent a RPN style calculator + * Operation to deal with AnimatedFloats This is designed to be an optimized calculation for things + * like injecting the width of the component int draw rect As well as supporting generalized + * animation floats. The floats represent a RPN style calculator */ public class FloatExpression implements Operation, VariableSupport { private static final int OP_CODE = Operations.ANIMATED_FLOAT; @@ -49,6 +47,7 @@ public class FloatExpression implements Operation, VariableSupport { public FloatAnimation mFloatAnimation; public float[] mPreCalcValue; private float mLastChange = Float.NaN; + private float mLastCalculatedValue = Float.NaN; AnimatedFloatExpression mExp = new AnimatedFloatExpression(); public static final int MAX_EXPRESSION_SIZE = 32; @@ -70,12 +69,12 @@ public class FloatExpression implements Operation, VariableSupport { 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) { - mLastChange = context.getAnimationTime(); value_changed = true; mPreCalcValue[i] = newValue; } @@ -86,8 +85,18 @@ public class FloatExpression implements Operation, VariableSupport { mPreCalcValue[i] = mSrcValue[i]; } } + float v = mLastCalculatedValue; + if (value_changed) { // inputs changed check if output changed + v = mExp.eval(mPreCalcValue, mPreCalcValue.length); + if (v != mLastCalculatedValue) { + mLastChange = context.getAnimationTime(); + mLastCalculatedValue = v; + } else { + value_changed = false; + } + } + if (value_changed && mFloatAnimation != null) { - float v = mExp.eval(Arrays.copyOf(mPreCalcValue, mPreCalcValue.length)); if (Float.isNaN(mFloatAnimation.getTargetValue())) { mFloatAnimation.setInitialValue(v); } else { @@ -100,7 +109,8 @@ public class FloatExpression implements Operation, VariableSupport { @Override public void registerListening(RemoteContext context) { for (float v : mSrcValue) { - if (Float.isNaN(v) && !AnimatedFloatExpression.isMathOperator(v) + if (Float.isNaN(v) + && !AnimatedFloatExpression.isMathOperator(v) && !NanMap.isDataVariable(v)) { context.listensTo(Utils.idFromNan(v), this); } @@ -118,8 +128,9 @@ public class FloatExpression implements Operation, VariableSupport { float f = mFloatAnimation.get(t - mLastChange); context.loadFloat(mId, f); } else { - context.loadFloat(mId, mExp.eval(context.getCollectionsAccess(), - Arrays.copyOf(mPreCalcValue, mPreCalcValue.length))); + context.loadFloat( + mId, + mExp.eval(context.getCollectionsAccess(), mPreCalcValue, mPreCalcValue.length)); } } @@ -137,11 +148,17 @@ public class FloatExpression implements Operation, VariableSupport { } } if (mPreCalcValue == null) { - return "FloatExpression[" + mId + "] = (" - + AnimatedFloatExpression.toString(mSrcValue, labels) + ")"; + return "FloatExpression[" + + mId + + "] = (" + + AnimatedFloatExpression.toString(mSrcValue, labels) + + ")"; } - return "FloatExpression[" + mId + "] = (" - + AnimatedFloatExpression.toString(mPreCalcValue, labels) + ")"; + return "FloatExpression[" + + mId + + "] = (" + + AnimatedFloatExpression.toString(mPreCalcValue, labels) + + ")"; } public static String name() { @@ -155,9 +172,9 @@ public class FloatExpression implements Operation, VariableSupport { /** * 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 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) { @@ -178,7 +195,6 @@ public class FloatExpression implements Operation, VariableSupport { buffer.writeFloat(v); } } - } public static void read(WireBuffer buffer, List operations) { @@ -207,16 +223,20 @@ public class FloatExpression implements Operation, VariableSupport { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Expressions Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Expressions Operations", OP_CODE, CLASS_NAME) .description("A Float expression") - .field(INT, "id", "The id of the Color") + .field(DocumentedOperation.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", + .field( + FLOAT_ARRAY, + "expression", + "expression_length", "Sequence of Floats representing and expression") - .field(FLOAT_ARRAY, "AnimationSpec", "animation_length", + .field( + FLOAT_ARRAY, + "AnimationSpec", + "animation_length", "Sequence of Floats representing animation curve") .field(FLOAT, "duration", "> time in sec") .field(INT, "bits", "> WRAP|INITALVALUE | TYPE ") @@ -229,5 +249,4 @@ public class FloatExpression implements Operation, VariableSupport { public String deepToString(String indent) { return indent + toString(); } - } 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 099bce886b22752dc9e9cce265e195430cde4603..4f8516f5235d88bf5421c26345033ee5c33cab71 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 @@ -15,8 +15,8 @@ */ 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.LONG; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.LONG; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -29,9 +29,9 @@ import java.util.List; /** * Describe some basic information for a RemoteCompose document - *

    - * It encodes the version of the document (following semantic versioning) as well - * as the dimensions of the document in pixels. + * + *

    It encodes the version of the document (following semantic versioning) as well as the + * dimensions of the document in pixels. */ public class Header implements RemoteComposeOperation { private static final int OP_CODE = Operations.HEADER; @@ -50,21 +50,26 @@ public class Header implements RemoteComposeOperation { float mDensity; long mCapabilities; - /** - * It encodes the version of the document (following semantic versioning) as well - * as the dimensions of the document in pixels. + * It encodes the version of the document (following semantic versioning) as well as the + * dimensions of the document in pixels. * * @param majorVersion the major version of the RemoteCompose document API * @param minorVersion the minor version of the RemoteCompose document API * @param patchVersion the patch version of the RemoteCompose document API - * @param width the width of the RemoteCompose document - * @param height the height of the RemoteCompose document - * @param density the density at which the document was originally created + * @param width the width of the RemoteCompose document + * @param height the height of the RemoteCompose document + * @param density the density at which the document was originally created * @param capabilities bitmask field storing needed capabilities (unused for now) */ - public Header(int majorVersion, int minorVersion, int patchVersion, - int width, int height, float density, long capabilities) { + public Header( + int majorVersion, + int minorVersion, + int patchVersion, + int width, + int height, + float density, + long capabilities) { this.mMajorVersion = majorVersion; this.mMinorVersion = minorVersion; this.mPatchVersion = patchVersion; @@ -81,9 +86,19 @@ public class Header implements RemoteComposeOperation { @Override public String toString() { - return "HEADER v" + mMajorVersion + "." - + mMinorVersion + "." + mPatchVersion + ", " - + mWidth + " x " + mHeight + " [" + mCapabilities + "]"; + return "HEADER v" + + mMajorVersion + + "." + + mMinorVersion + + "." + + mPatchVersion + + ", " + + mWidth + + " x " + + mHeight + + " [" + + mCapabilities + + "]"; } @Override @@ -104,8 +119,8 @@ public class Header implements RemoteComposeOperation { return OP_CODE; } - public static void apply(WireBuffer buffer, int width, int height, - float density, long capabilities) { + 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 @@ -125,15 +140,23 @@ public class Header implements RemoteComposeOperation { // float density = buffer.readFloat(); float density = 1f; long capabilities = buffer.readLong(); - Header header = new Header(majorVersion, minorVersion, patchVersion, - width, height, density, capabilities); + 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") + .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") @@ -142,5 +165,4 @@ public class Header implements RemoteComposeOperation { // .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 11730f358eaf1281364720bf4fde64e49385bfbb..c9a850875011c0f184d20b9e36e2bd55772ebfc1 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,8 +15,8 @@ */ 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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT_ARRAY; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -24,17 +24,16 @@ 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.documentation.DocumentedOperation; import com.android.internal.widget.remotecompose.core.operations.utilities.IntegerExpressionEvaluator; import java.util.Arrays; import java.util.List; /** - * Operation to deal with AnimatedFloats - * This is designed to be an optimized calculation for things like - * injecting the width of the component int draw rect - * As well as supporting generalized animation floats. - * The floats represent a RPN style calculator + * Operation to deal with AnimatedFloats This is designed to be an optimized calculation for things + * like injecting the width of the component int draw rect As well as supporting generalized + * animation floats. The floats represent a RPN style calculator */ public class IntegerExpression implements Operation, VariableSupport { private static final int OP_CODE = Operations.INTEGER_EXPRESSION; @@ -45,7 +44,7 @@ public class IntegerExpression implements Operation, VariableSupport { public int[] mSrcValue; public int[] mPreCalcValue; private float mLastChange = Float.NaN; - public static final int MAX_STRING_SIZE = 4000; + public static final int MAX_SIZE = 320; IntegerExpressionEvaluator mExp = new IntegerExpressionEvaluator(); public IntegerExpression(int id, int mask, int[] value) { @@ -70,7 +69,6 @@ public class IntegerExpression implements Operation, VariableSupport { } } - @Override public void registerListening(RemoteContext context) { for (int i = 0; i < mSrcValue.length; i++) { @@ -91,6 +89,21 @@ public class IntegerExpression implements Operation, VariableSupport { context.loadInteger(mId, v); } + /** + * Evaluate the expression + * + * @param context current context + * @return the resulting value + */ + public int evaluate(RemoteContext context) { + updateVariables(context); + float t = context.getAnimationTime(); + if (Float.isNaN(mLastChange)) { + mLastChange = t; + } + return mExp.eval(mPreMask, Arrays.copyOf(mPreCalcValue, mPreCalcValue.length)); + } + @Override public void write(WireBuffer buffer) { apply(buffer, mId, mMask, mSrcValue); @@ -99,6 +112,9 @@ public class IntegerExpression implements Operation, VariableSupport { @Override public String toString() { StringBuilder s = new StringBuilder(); + if (mPreCalcValue == null) { + return ""; + } for (int i = 0; i < mPreCalcValue.length; i++) { if (i != 0) { s.append(" "); @@ -128,9 +144,9 @@ public class IntegerExpression implements Operation, VariableSupport { * 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 + * @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); @@ -146,7 +162,9 @@ public class IntegerExpression implements Operation, VariableSupport { int id = buffer.readInt(); int mask = buffer.readInt(); int len = buffer.readInt(); - + if (len > MAX_SIZE) { + throw new RuntimeException("buffer corrupt integer expression " + len); + } int[] values = new int[len]; for (int i = 0; i < values.length; i++) { values[i] = buffer.readInt(); @@ -156,17 +174,12 @@ public class IntegerExpression implements Operation, VariableSupport { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Data Operations", - OP_CODE, - CLASS_NAME) + 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"); + .field(DocumentedOperation.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 @@ -177,8 +190,8 @@ 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 f3f9a5142a244b8a860bea3c43d7c54a1d9019fc..04f8a503adff236a773c94762bf5803f2dfdd290 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 @@ -27,15 +27,14 @@ import java.util.List; public class MatrixRestore extends PaintOperation { private static final int OP_CODE = Operations.MATRIX_RESTORE; private static final String CLASS_NAME = "MatrixRestore"; - public MatrixRestore() { - } + + public MatrixRestore() {} @Override public void write(WireBuffer buffer) { apply(buffer); } - public static void read(WireBuffer buffer, List operations) { MatrixRestore op = new MatrixRestore(); operations.add(op); @@ -46,12 +45,10 @@ public class MatrixRestore extends PaintOperation { return "MatrixRestore"; } - public static String name() { return CLASS_NAME; } - public static int id() { return OP_CODE; } @@ -61,13 +58,10 @@ public class MatrixRestore extends PaintOperation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Canvas Operations", - OP_CODE, - CLASS_NAME) + 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 9cc82fc05e69275a8fba07537db40fadc8da6cd9..df10f329630a7784152f8e456ee5ae50245dd3af 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,13 +15,12 @@ */ 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 com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; import java.util.List; @@ -30,12 +29,13 @@ public class MatrixRotate extends DrawBase3 { private static final String CLASS_NAME = "MatrixRotate"; public static void read(WireBuffer buffer, List operations) { - Maker m = new Maker() { - @Override - public DrawBase3 create(float v1, float v2, float v3) { - return new MatrixRotate(v1, v2, v3); - } - }; + Maker m = + new Maker() { + @Override + public DrawBase3 create(float v1, float v2, float v3) { + return new MatrixRotate(v1, v2, v3); + } + }; read(m, buffer, operations); } @@ -48,20 +48,15 @@ public class MatrixRotate extends DrawBase3 { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Canvas Operations", - OP_CODE, - CLASS_NAME) + 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"); + .field(DocumentedOperation.FLOAT, "rotate", "Angle to rotate") + .field(DocumentedOperation.FLOAT, "pivotX", "X Pivot point") + .field(DocumentedOperation.FLOAT, "pivotY", "Y Pivot point"); } - - protected void write(WireBuffer buffer, - float v1, - float v2, - float v3) { + @Override + protected void write(WireBuffer buffer, float v1, float v2, float v3) { apply(buffer, v1, v2, v3); } @@ -83,10 +78,7 @@ public class MatrixRotate extends DrawBase3 { * @param y1 X Pivot point * @param x2 Y Pivot point */ - public static void apply(WireBuffer buffer, - float x1, - float y1, - float x2) { + public static void apply(WireBuffer buffer, float x1, float y1, float x2) { buffer.start(OP_CODE); buffer.writeFloat(x1); buffer.writeFloat(y1); 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 a47ed6b9f99a840e52b324a5ae7dd88f83581ed2..67612c7fd2f4444930897fa8bd9de3de6fd6f95f 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 @@ -47,7 +47,6 @@ public class MatrixSave extends PaintOperation { return CLASS_NAME; } - public static int id() { return OP_CODE; } @@ -57,9 +56,7 @@ public class MatrixSave extends PaintOperation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Canvas Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Canvas Operations", OP_CODE, CLASS_NAME) .description("Save the matrix and clip to a stack"); } 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 769e798eb6b290bee7a885e35eae971da6c23ae8..26c898acb67b6c4658727eb0d7cd5c6c4488d4c8 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,13 +15,12 @@ */ 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 com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; import java.util.List; @@ -42,28 +41,18 @@ public class MatrixScale extends DrawBase4 { return CLASS_NAME; } - - protected void write(WireBuffer buffer, - float v1, - float v2, - float v3, - float v4) { + @Override + 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) + 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"); + .field(DocumentedOperation.FLOAT, "scaleX", "The amount to scale in X") + .field(DocumentedOperation.FLOAT, "scaleY", "The amount to scale in Y") + .field(DocumentedOperation.FLOAT, "pivotX", "The x-coordinate for the pivot point") + .field(DocumentedOperation.FLOAT, "pivotY", "The y-coordinate for the pivot point"); } public MatrixScale(float scaleX, float scaleY, float centerX, float centerY) { @@ -80,16 +69,12 @@ public class MatrixScale extends DrawBase4 { * 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 + * @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) { + 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 34f71b4d1a914897347ea04f0e9fcb3ab41f3833..d64117871eaad46092f0eaeb4e19ce47caf7a9de 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,7 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.FLOAT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -29,7 +29,6 @@ public class MatrixSkew extends DrawBase2 { public static final int OP_CODE = Operations.MATRIX_SKEW; public static final String CLASS_NAME = "MatrixSkew"; - public static void read(WireBuffer buffer, List operations) { Maker m = MatrixSkew::new; read(m, buffer, operations); @@ -43,25 +42,18 @@ public class MatrixSkew extends DrawBase2 { return CLASS_NAME; } - - protected void write(WireBuffer buffer, - float v1, - float v2) { + @Override + 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, - CLASS_NAME) + 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"); + .field(FLOAT, "skewX", "The amount to skew in X") + .field(FLOAT, "skewY", "The amount to skew in Y"); } - public MatrixSkew(float skewX, float skewY) { super(skewX, skewY); mName = CLASS_NAME; @@ -76,13 +68,10 @@ public class MatrixSkew extends DrawBase2 { * 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 x1 start x of DrawOval + * @param y1 start y of the DrawOval */ - public static void apply(WireBuffer buffer, - float x1, - float y1 - ) { + 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 8561343c0015edd1e255088c71b64dea0228e26a..e008292f110783b3ae66589c8f31d22f08900c95 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,13 +15,12 @@ */ 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 com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; import java.util.List; @@ -42,22 +41,16 @@ public class MatrixTranslate extends DrawBase2 { return CLASS_NAME; } - protected void write(WireBuffer buffer, - float v1, - float v2) { + @Override + 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") + 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"); - + .field(DocumentedOperation.FLOAT, "dx", "The distance to translate in X") + .field(DocumentedOperation.FLOAT, "dy", "The distance to translate in Y"); } public MatrixTranslate(float translateX, float translateY) { @@ -74,12 +67,10 @@ public class MatrixTranslate extends DrawBase2 { * 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 x1 start x of DrawOval + * @param y1 start y of the DrawOval */ - public static void apply(WireBuffer buffer, - float x1, - float y1) { + 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 2cf83cd6caecac81916260808af569c4a1cec038..fa6e2712a0bb3c522a3e6b194ddab7a5c49cb5d7 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,20 +15,19 @@ */ 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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.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 com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; import java.util.List; -/** - * Operation to deal with Text data - */ +/** 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"; @@ -39,6 +38,7 @@ public class NamedVariable implements Operation { public static final int COLOR_TYPE = 2; public static final int FLOAT_TYPE = 1; public static final int STRING_TYPE = 0; + public static final int IMAGE_TYPE = 3; public NamedVariable(int varId, int varType, String name) { this.mVarId = varId; @@ -53,8 +53,12 @@ public class NamedVariable implements Operation { @Override public String toString() { - return "VariableName[" + mVarId + "] = \"" - + Utils.trimString(mVarName, 10) + "\" type=" + mVarType; + return "VariableName[" + + mVarId + + "] = \"" + + Utils.trimString(mVarName, 10) + + "\" type=" + + mVarType; } public static String name() { @@ -80,7 +84,7 @@ public class NamedVariable implements Operation { buffer.writeUTF8(text); } - public static void read(WireBuffer buffer, List operations) { + public static void read(WireBuffer buffer, List operations) { int varId = buffer.readInt(); int varType = buffer.readInt(); String text = buffer.readUTF8(MAX_STRING_SIZE); @@ -88,11 +92,9 @@ public class NamedVariable implements Operation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Data Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Data Operations", OP_CODE, CLASS_NAME) .description("Add a string name for an ID") - .field(INT, "varId", "id to label") + .field(DocumentedOperation.INT, "varId", "id to label") .field(INT, "varType", "The type of variable") .field(UTF8, "name", "String"); } 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 ae7a8927932063ca93341479f28f9622e95ce98a..095a0106b3d7d1a17ed39f1e14235adbb9de7400 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,8 +15,8 @@ */ 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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT_ARRAY; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -36,8 +36,7 @@ public class PaintData extends PaintOperation implements VariableSupport { public PaintBundle mPaintData = new PaintBundle(); public static final int MAX_STRING_SIZE = 4000; - public PaintData() { - } + public PaintData() {} @Override public void updateVariables(RemoteContext context) { @@ -59,7 +58,6 @@ public class PaintData extends PaintOperation implements VariableSupport { return "PaintData " + "\"" + mPaintData + "\""; } - public static String name() { return CLASS_NAME; } @@ -80,13 +78,10 @@ public class PaintData extends PaintOperation implements VariableSupport { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Data Operations", - OP_CODE, - CLASS_NAME) + 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"); + .field(INT_ARRAY, "paint", "length", "path encoded as floats"); } @Override 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 91352d914a9979bfe5a9536bddfcf0953563b389..13d5a49a584b17e26a594012cd9c3d2bde250d4f 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,8 +15,8 @@ */ 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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.FLOAT_ARRAY; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -24,6 +24,7 @@ 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.documentation.DocumentedOperation; import java.util.Arrays; import java.util.List; @@ -46,8 +47,7 @@ public class PathData implements Operation, VariableSupport { for (int i = 0; i < mFloatPath.length; i++) { float v = mFloatPath[i]; if (Utils.isVariable(v)) { - mOutputPath[i] = (Float.isNaN(v)) - ? context.getFloat(Utils.idFromNan(v)) : v; + mOutputPath[i] = Float.isNaN(v) ? context.getFloat(Utils.idFromNan(v)) : v; } else { mOutputPath[i] = v; } @@ -79,30 +79,15 @@ public class PathData implements Operation, VariableSupport { } /** - * public float[] getFloatPath(PaintContext context) { - * float[] ret = mRetFloats; // Assume retFloats is declared elsewhere - * if (ret == null) { - * return mFloatPath; // Assume floatPath is declared elsewhere - * } - * float[] localRef = mRef; // Assume ref is of type Float[] - * if (localRef == null) { - * for (int i = 0; i < mFloatPath.length; i++) { - * ret[i] = mFloatPath[i]; - * } - * } else { - * for (int i = 0; i < mFloatPath.length; i++) { - * float lr = localRef[i]; - * if (Float.isNaN(lr)) { - * ret[i] = Utils.getActualValue(lr); - * } else { - * ret[i] = mFloatPath[i]; - * } - * } - * } - * return ret; - * } + * public float[] getFloatPath(PaintContext context) { float[] ret = mRetFloats; // Assume + * retFloats is declared elsewhere if (ret == null) { return mFloatPath; // Assume floatPath is + * declared elsewhere } float[] localRef = mRef; // Assume ref is of type Float[] if (localRef + * == null) { for (int i = 0; i < mFloatPath.length; i++) { ret[i] = mFloatPath[i]; } } else { + * for (int i = 0; i < mFloatPath.length; i++) { float lr = localRef[i]; if (Float.isNaN(lr)) { + * ret[i] = Utils.getActualValue(lr); } else { ret[i] = mFloatPath[i]; } } } return ret; } */ public static final int MOVE = 10; + public static final int LINE = 11; public static final int QUADRATIC = 12; public static final int CONIC = 13; @@ -145,17 +130,13 @@ public class PathData implements Operation, VariableSupport { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Data Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Data Operations", OP_CODE, CLASS_NAME) .description("Encode a Path ") - .field(INT, "id", "id string") + .field(DocumentedOperation.INT, "id", "id string") .field(INT, "length", "id string") - .field(FLOAT_ARRAY, "pathData", "length", - "path encoded as floats"); + .field(FLOAT_ARRAY, "pathData", "length", "path encoded as floats"); } - public static String pathString(float[] path) { if (path == null) { return "null"; @@ -208,5 +189,4 @@ public class PathData implements Operation, VariableSupport { public void apply(RemoteContext context) { context.loadPathData(mInstanceId, mOutputPath); } - } 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 33f997fc72662ecfcf07324a43496eef6f56967d..4a8f5324b74e3e1abcfca89846728178cbd8cea5 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,22 +15,21 @@ */ 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.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.DocumentedOperation; import java.util.List; /** * Describe some basic information for a RemoteCompose document - *

    - * It encodes the version of the document (following semantic versioning) as well - * as the dimensions of the document in pixels. + * + *

    It encodes the version of the document (following semantic versioning) as well as the + * dimensions of the document in pixels. */ public class RootContentBehavior implements RemoteComposeOperation { private static final int OP_CODE = Operations.ROOT_CONTENT_BEHAVIOR; @@ -67,8 +66,8 @@ public class RootContentBehavior implements RemoteComposeOperation { public static final int ALIGNMENT_START = 16; public static final int ALIGNMENT_HORIZONTAL_CENTER = 32; public static final int ALIGNMENT_END = 64; - public static final int ALIGNMENT_CENTER = ALIGNMENT_HORIZONTAL_CENTER - + ALIGNMENT_VERTICAL_CENTER; + public static final int ALIGNMENT_CENTER = + ALIGNMENT_HORIZONTAL_CENTER + ALIGNMENT_VERTICAL_CENTER; /////////////////////////////////////////////////////////////////////////////////////////////// // Layout mode @@ -98,21 +97,14 @@ public class RootContentBehavior implements RemoteComposeOperation { /** * 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 RootContentBehavior(int scroll, int alignment, int sizing, int mode) { switch (scroll) { @@ -121,41 +113,43 @@ public class RootContentBehavior implements RemoteComposeOperation { case SCROLL_VERTICAL: mScroll = scroll; break; - default: { + default: System.out.println(TAG + "incorrect scroll value " + scroll); - } } if (alignment == ALIGNMENT_CENTER) { mAlignment = alignment; } else { int horizontalContentAlignment = alignment & 0xF0; int verticalContentAlignment = alignment & 0xF; - boolean validHorizontalAlignment = horizontalContentAlignment == ALIGNMENT_START - || horizontalContentAlignment == ALIGNMENT_HORIZONTAL_CENTER - || horizontalContentAlignment == ALIGNMENT_END; - boolean validVerticalAlignment = verticalContentAlignment == ALIGNMENT_TOP - || verticalContentAlignment == ALIGNMENT_VERTICAL_CENTER - || verticalContentAlignment == ALIGNMENT_BOTTOM; + boolean validHorizontalAlignment = + horizontalContentAlignment == ALIGNMENT_START + || horizontalContentAlignment == ALIGNMENT_HORIZONTAL_CENTER + || horizontalContentAlignment == ALIGNMENT_END; + boolean validVerticalAlignment = + verticalContentAlignment == ALIGNMENT_TOP + || verticalContentAlignment == ALIGNMENT_VERTICAL_CENTER + || verticalContentAlignment == ALIGNMENT_BOTTOM; if (validHorizontalAlignment && validVerticalAlignment) { mAlignment = alignment; } else { - System.out.println(TAG + "incorrect alignment " - + " h: " + horizontalContentAlignment - + " v: " + verticalContentAlignment); + System.out.println( + TAG + + "incorrect alignment " + + " h: " + + horizontalContentAlignment + + " v: " + + verticalContentAlignment); } } switch (sizing) { - case SIZING_LAYOUT: { + case SIZING_LAYOUT: System.out.println(TAG + "sizing_layout is not yet supported"); - } - break; - case SIZING_SCALE: { + break; + case SIZING_SCALE: mSizing = sizing; - } - break; - default: { + break; + default: System.out.println(TAG + "incorrect sizing value " + sizing); - } } if (mSizing == SIZING_LAYOUT) { if (mode != NONE) { @@ -171,9 +165,8 @@ public class RootContentBehavior implements RemoteComposeOperation { case SCALE_FILL_BOUNDS: mMode = mode; break; - default: { + default: System.out.println(TAG + "incorrect mode for scale sizing, mode: " + mode); - } } } } @@ -185,8 +178,12 @@ public class RootContentBehavior implements RemoteComposeOperation { @Override public String toString() { - return "ROOT_CONTENT_BEHAVIOR scroll: " + mScroll - + " sizing: " + mSizing + " mode: " + mMode; + return "ROOT_CONTENT_BEHAVIOR scroll: " + + mScroll + + " sizing: " + + mSizing + + " mode: " + + mMode; } @Override @@ -199,12 +196,10 @@ public class RootContentBehavior implements RemoteComposeOperation { return toString(); } - public static String name() { return CLASS_NAME; } - public static int id() { return OP_CODE; } @@ -217,7 +212,6 @@ public class RootContentBehavior implements RemoteComposeOperation { buffer.writeInt(mode); } - public static void read(WireBuffer buffer, List operations) { int scroll = buffer.readInt(); int alignment = buffer.readInt(); @@ -228,30 +222,27 @@ public class RootContentBehavior implements RemoteComposeOperation { operations.add(rootContentBehavior); } - public static void documentation(DocumentationBuilder doc) { - doc.operation("Protocol Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Protocol Operations", OP_CODE, CLASS_NAME) .description("Describes the behaviour of the root") - .field(INT, "scroll", "scroll") + .field(DocumentedOperation.INT, "scroll", "scroll") .possibleValues("SCROLL_HORIZONTAL", SCROLL_HORIZONTAL) .possibleValues("SCROLL_VERTICAL", SCROLL_VERTICAL) - .field(INT, "alignment", "alignment") + .field(DocumentedOperation.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") + .field(DocumentedOperation.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") + .field(DocumentedOperation.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) @@ -260,6 +251,5 @@ public class RootContentBehavior implements RemoteComposeOperation { .possibleValues("LAYOUT_VERTICAL_FIXED", LAYOUT_VERTICAL_FIXED) .possibleValues("LAYOUT_MATCH_PARENT", LAYOUT_MATCH_PARENT) .possibleValues("LAYOUT_WRAP_CONTENT", LAYOUT_WRAP_CONTENT); - } } 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 e1533eefae539adaaf4c98de127ecbf79b2f8b5f..bff902926fd315b2f10558e10a5ce7916c65d8ac 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,20 +15,17 @@ */ 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.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.DocumentedOperation; import java.util.List; -/** - * Describe a content description for the document - */ +/** 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"; @@ -82,13 +79,9 @@ public class RootContentDescription implements RemoteComposeOperation { operations.add(header); } - public static void documentation(DocumentationBuilder doc) { - doc.operation("Protocol Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Protocol Operations", OP_CODE, CLASS_NAME) .description("Content description of root") - .field(INT, "id", "id of Int"); - + .field(DocumentedOperation.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 c4dde6e0d358b85714948b54dc43fe2f57efbc1a..7ec7879bf8b2ce6e1ef6540cd395c426ab79fa66 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,12 @@ */ package com.android.internal.widget.remotecompose.core.operations; -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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.BYTE; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.FLOAT_ARRAY; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT_ARRAY; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.SHORT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.UTF8; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -28,15 +28,15 @@ 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.documentation.DocumentedOperation; import java.util.Arrays; import java.util.HashMap; import java.util.List; /** - * Operation to deal with bitmap data - * On getting an Image during a draw call the bitmap is compressed and saved - * in playback the image is decompressed + * Operation to deal with bitmap data On getting an Image during a draw call the bitmap is + * compressed and saved in playback the image is decompressed */ public class ShaderData implements Operation, VariableSupport { private static final int OP_CODE = Operations.DATA_SHADER; @@ -48,11 +48,12 @@ public class ShaderData implements Operation, VariableSupport { HashMap mUniformIntMap = null; HashMap mUniformBitmapMap = null; - public ShaderData(int shaderID, - int shaderTextId, - HashMap floatMap, - HashMap intMap, - HashMap bitmapMap) { + public ShaderData( + int shaderID, + int shaderTextId, + HashMap floatMap, + HashMap intMap, + HashMap bitmapMap) { mShaderID = shaderID; mShaderTextId = shaderTextId; if (floatMap != null) { @@ -77,7 +78,6 @@ public class ShaderData implements Operation, VariableSupport { mUniformBitmapMap.put(name, bitmapMap.get(name)); } } - } public int getShaderTextId() { @@ -107,7 +107,7 @@ public class ShaderData implements Operation, VariableSupport { /** * get the name of all know uniform integers * - * @return Name of all integer uniforms + * @return Name of all integer uniforms */ public String[] getUniformIntegerNames() { if (mUniformIntMap == null) return new String[0]; @@ -146,8 +146,13 @@ public class ShaderData implements Operation, VariableSupport { @Override public void write(WireBuffer buffer) { - apply(buffer, mShaderID, mShaderTextId, - mUniformFloatMap, mUniformIntMap, mUniformBitmapMap); + apply( + buffer, + mShaderID, + mShaderTextId, + mUniformFloatMap, + mUniformIntMap, + mUniformBitmapMap); } @Override @@ -202,10 +207,13 @@ public class ShaderData implements Operation, VariableSupport { * @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 floatMap, - HashMap intMap, - HashMap bitmapMap) { + public static void apply( + WireBuffer buffer, + int shaderID, + int shaderTextId, + HashMap floatMap, + HashMap intMap, + HashMap bitmapMap) { buffer.start(OP_CODE); buffer.writeInt(shaderID); @@ -248,7 +256,6 @@ public class ShaderData implements Operation, VariableSupport { } } - public static void read(WireBuffer buffer, List operations) { int shaderID = buffer.readInt(); int shaderTextId = buffer.readInt(); @@ -298,16 +305,13 @@ public class ShaderData implements Operation, VariableSupport { 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) + doc.operation("Data Operations", OP_CODE, CLASS_NAME) .description("Shader") - .field(INT, "shaderID", "id of shader") + .field(DocumentedOperation.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") @@ -319,7 +323,6 @@ public class ShaderData implements Operation, VariableSupport { .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 b49cb76644950f5a622953cba0b8fe004fefac63..638324950f882975ce05c431f5351c73a40bdade 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,8 +15,7 @@ */ 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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.UTF8; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -24,13 +23,12 @@ 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.DocumentedOperation; import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; import java.util.List; -/** - * Operation to deal with Text data - */ +/** Operation to deal with Text data */ public class TextData implements Operation, SerializableToString { private static final int OP_CODE = Operations.DATA_TEXT; private static final String CLASS_NAME = "TextData"; @@ -50,15 +48,13 @@ public class TextData implements Operation, SerializableToString { @Override public String toString() { - return "TextData[" + mTextId + "] = \"" - + Utils.trimString(mText, 10) + "\""; + return "TextData[" + mTextId + "] = \"" + Utils.trimString(mText, 10) + "\""; } public static String name() { return CLASS_NAME; } - public static int id() { return OP_CODE; } @@ -69,7 +65,6 @@ public class TextData implements Operation, SerializableToString { buffer.writeUTF8(text); } - public static void read(WireBuffer buffer, List operations) { int textId = buffer.readInt(); @@ -77,18 +72,13 @@ public class TextData implements Operation, SerializableToString { operations.add(new TextData(textId, text)); } - public static void documentation(DocumentationBuilder doc) { - doc.operation("Data Operations", - OP_CODE, - CLASS_NAME) + 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"); + .field(DocumentedOperation.INT, "id", "id string") + .field(UTF8, "text", "encode text as a string"); } - @Override public void apply(RemoteContext context) { context.loadText(mTextId, mText); @@ -101,8 +91,7 @@ public class TextData implements Operation, SerializableToString { @Override public void serializeToString(int indent, StringSerializer serializer) { - serializer.append(indent, getSerializedName() + "<" + mTextId - + "> = \"" + mText + "\""); + serializer.append(indent, getSerializedName() + "<" + mTextId + "> = \"" + mText + "\""); } private String getSerializedName() { 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 8f235dcca28c1abebae9003222b7ef2283d3d1f1..0d966d10384a75b1889bb41abb005991472b54c3 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,8 +15,8 @@ */ 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.SHORT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.SHORT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -24,14 +24,15 @@ 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.documentation.DocumentedOperation; import com.android.internal.widget.remotecompose.core.operations.utilities.StringUtils; import java.util.List; /** - * Operation convert floats to text - * This command is structured [command][textID][before,after][flags] - * before and after define number of digits before and after the decimal point + * Operation convert floats to text This command is structured + * [command][textID][before,after][flags] 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; @@ -49,12 +50,12 @@ public class TextFromFloat implements Operation, VariableSupport { public static final int PAD_AFTER_SPACE = 0; // pad past point with space public static final int PAD_AFTER_NONE = 1; // do not pad past last digit public static final int PAD_AFTER_ZERO = 3; // pad with 0 past last digit - public static final int PAD_PRE_SPACE = 0; // pad before number with spaces - public static final int PAD_PRE_NONE = 4; // pad before number with 0s - public static final int PAD_PRE_ZERO = 12; // do not pad before number + public static final int PAD_PRE_SPACE = 0; // pad before number with spaces + public static final int PAD_PRE_NONE = 4; // pad before number with 0s + public static final int PAD_PRE_ZERO = 12; // do not pad before number - public TextFromFloat(int textId, float value, short digitsBefore, - short digitsAfter, int flags) { + public TextFromFloat( + int textId, float value, short digitsBefore, short digitsAfter, int flags) { this.mTextId = textId; this.mValue = value; this.mDigitsAfter = digitsAfter; @@ -87,17 +88,23 @@ public class TextFromFloat implements Operation, VariableSupport { @Override public void write(WireBuffer buffer) { - apply(buffer, mTextId, mValue, mDigitsAfter, mDigitsBefore, mFlags); + apply(buffer, mTextId, mValue, mDigitsBefore, mDigitsAfter, mFlags); } @Override public String toString() { - return "TextFromFloat[" + mTextId + "] = " - + Utils.floatToString(mValue) + " " + mDigitsBefore - + "." + mDigitsAfter + " " + mFlags; + return "TextFromFloat[" + + mTextId + + "] = " + + Utils.floatToString(mValue) + + " " + + mDigitsBefore + + "." + + mDigitsAfter + + " " + + mFlags; } - @Override public void updateVariables(RemoteContext context) { if (Float.isNaN(mValue)) { @@ -123,22 +130,25 @@ public class TextFromFloat implements Operation, VariableSupport { /** * 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 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 + * @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) { + 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); - } public static void read(WireBuffer buffer, List operations) { @@ -153,27 +163,19 @@ public class TextFromFloat implements Operation, VariableSupport { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Expressions Operations", - OP_CODE, - CLASS_NAME) + 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(DocumentedOperation.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; - String s = StringUtils.floatToString(v, mDigitsBefore, - mDigitsAfter, mPre, mAfter); + String s = StringUtils.floatToString(v, mDigitsBefore, mDigitsAfter, mPre, mAfter); context.loadText(mTextId, s); } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/TextLength.java b/core/java/com/android/internal/widget/remotecompose/core/operations/TextLength.java new file mode 100644 index 0000000000000000000000000000000000000000..e148fb9849fc9ac47f9b096ec9b72b75c715c0d2 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/TextLength.java @@ -0,0 +1,93 @@ +/* + * 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.internal.widget.remotecompose.core.operations; + +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.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; + +/** Operation to measure the length of the text */ +public class TextLength implements Operation { + private static final int OP_CODE = Operations.TEXT_LENGTH; + private static final String CLASS_NAME = "TextLength"; + public int mLengthId; + public int mTextId; + + public TextLength(int lengthId, int textId) { + this.mLengthId = lengthId; + this.mTextId = textId; + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mLengthId, mTextId); + } + + @Override + public String toString() { + return CLASS_NAME + "[" + mLengthId + "] = " + mTextId; + } + + public static String name() { + return CLASS_NAME; + } + + public static int id() { + return OP_CODE; + } + + /** + * Writes out the operation to the buffer + * + * @param buffer write command to this buffer + * @param lengthId the id to output + * @param textId the id of the text to measure + */ + public static void apply(WireBuffer buffer, int lengthId, int textId) { + buffer.start(OP_CODE); + buffer.writeInt(lengthId); + buffer.writeInt(textId); + } + + public static void read(WireBuffer buffer, List operations) { + int lengthId = buffer.readInt(); + int textId = buffer.readInt(); + operations.add(new TextLength(lengthId, textId)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Expressions Operations", OP_CODE, CLASS_NAME) + .description("get the length of the text and store in float table") + .field(INT, "id", "id of float length") + .field(INT, "value", "index of text"); + } + + @Override + public void apply(RemoteContext context) { + context.loadFloat(mLengthId, context.getText(mTextId).length()); + } + + @Override + public String deepToString(String indent) { + return indent + toString(); + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/TextLookup.java b/core/java/com/android/internal/widget/remotecompose/core/operations/TextLookup.java new file mode 100644 index 0000000000000000000000000000000000000000..b04d698fa36c7d518c217bdf9f48931aff098f28 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/TextLookup.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.DocumentedOperation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.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; + +/** + * Operation convert floats to text This command is structured + * [command][textID][before,after][flags] before and after define number of digits before and after + * the decimal point + */ +public class TextLookup implements Operation, VariableSupport { + private static final int OP_CODE = Operations.TEXT_LOOKUP; + private static final String CLASS_NAME = "TextFromFloat"; + public int mTextId; + public int mDataSetId; + public float mOutIndex, mIndex; + + public static final int MAX_STRING_SIZE = 4000; + + public TextLookup(int textId, int dataSetId, float index) { + this.mTextId = textId; + this.mDataSetId = dataSetId; + this.mOutIndex = this.mIndex = index; + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mTextId, mDataSetId, mIndex); + } + + @Override + public String toString() { + return "TextLookup[" + + Utils.idString(mTextId) + + "] = " + + Utils.idString(mDataSetId) + + " " + + Utils.floatToString(mIndex); + } + + @Override + public void updateVariables(RemoteContext context) { + if (Float.isNaN(mIndex)) { + mOutIndex = context.getFloat(Utils.idFromNan(mIndex)); + } + } + + @Override + public void registerListening(RemoteContext context) { + if (Float.isNaN(mIndex)) { + context.listensTo(Utils.idFromNan(mIndex), this); + } + } + + 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 the id of the output text + * @param dataSet float pointer to the array/list to turn int a string + * @param index index of element to return + */ + public static void apply(WireBuffer buffer, int textId, int dataSet, float index) { + buffer.start(OP_CODE); + buffer.writeInt(textId); + buffer.writeInt(dataSet); + buffer.writeFloat(index); + } + + public static void read(WireBuffer buffer, List operations) { + int textId = buffer.readInt(); + int dataSetId = buffer.readInt(); + float index = buffer.readFloat(); + operations.add(new TextLookup(textId, dataSetId, index)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Expressions Operations", OP_CODE, CLASS_NAME) + .description("Look an array and turn into a text object") + .field(INT, "textId", "id of the text generated") + .field(FLOAT, "dataSet", "float pointer to the array/list to turn int a string") + .field(FLOAT, "index", "index of element to return"); + } + + @Override + public void apply(RemoteContext context) { + int id = context.getCollectionsAccess().getId(mDataSetId, (int) mOutIndex); + context.loadText(mTextId, context.getText(id)); + } + + @Override + public String deepToString(String indent) { + return indent + toString(); + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/TextLookupInt.java b/core/java/com/android/internal/widget/remotecompose/core/operations/TextLookupInt.java new file mode 100644 index 0000000000000000000000000000000000000000..171bea2492731a707e34ec75e643eedac8dc8d2e --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/TextLookupInt.java @@ -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.internal.widget.remotecompose.core.operations; + +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.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.documentation.DocumentedOperation; + +import java.util.List; + +/** Operation convert int index of a list to text */ +public class TextLookupInt implements Operation, VariableSupport { + private static final int OP_CODE = Operations.TEXT_LOOKUP_INT; + private static final String CLASS_NAME = "TextFromINT"; + public int mTextId; + public int mDataSetId; + public int mOutIndex; + public int mIndex; + + public static final int MAX_STRING_SIZE = 4000; + + public TextLookupInt(int textId, int dataSetId, int indexId) { + this.mTextId = textId; + this.mDataSetId = dataSetId; + this.mOutIndex = this.mIndex = indexId; + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mTextId, mDataSetId, mIndex); + } + + @Override + public String toString() { + return "TextLookupInt[" + + Utils.idString(mTextId) + + "] = " + + Utils.idString(mDataSetId) + + " " + + mIndex; + } + + @Override + public void updateVariables(RemoteContext context) { + mOutIndex = context.getInteger(mIndex); + } + + @Override + public void registerListening(RemoteContext context) { + context.listensTo(mIndex, this); + } + + 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 the id of the output text + * @param dataSet float pointer to the array/list to turn int a string + * @param indexId index of element to return + */ + public static void apply(WireBuffer buffer, int textId, int dataSet, int indexId) { + buffer.start(OP_CODE); + buffer.writeInt(textId); + buffer.writeInt(dataSet); + buffer.writeInt(indexId); + } + + public static void read(WireBuffer buffer, List operations) { + int textId = buffer.readInt(); + int dataSetId = buffer.readInt(); + int indexId = buffer.readInt(); + operations.add(new TextLookupInt(textId, dataSetId, indexId)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Expressions Operations", OP_CODE, CLASS_NAME) + .description("Look up an array and turn into a text object") + .field(DocumentedOperation.INT, "textId", "id of the text generated") + .field(INT, "dataSetId", "id to the array/list to turn int a string") + .field(INT, "index", "index of the element to return"); + } + + @Override + public void apply(RemoteContext context) { + int id = context.getCollectionsAccess().getId(mDataSetId, (int) mOutIndex); + context.loadText(mTextId, context.getText(id)); + } + + @Override + public String deepToString(String indent) { + return indent + toString(); + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/TextMeasure.java b/core/java/com/android/internal/widget/remotecompose/core/operations/TextMeasure.java new file mode 100644 index 0000000000000000000000000000000000000000..0281d6980e0f9e4aaafbf7ce21994bdc1fcc22d8 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/TextMeasure.java @@ -0,0 +1,140 @@ +/* + * 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.PaintContext.TEXT_MEASURE_FONT_HEIGHT; +import static com.android.internal.widget.remotecompose.core.PaintContext.TEXT_MEASURE_MONOSPACE_WIDTH; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.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; + +/** Operation to Measure Text data */ +public class TextMeasure extends PaintOperation { + private static final int OP_CODE = Operations.TEXT_MEASURE; + private static final String CLASS_NAME = "TextMeasure"; + public int mId; + public int mTextId; + public int mType; + + public static final int MEASURE_WIDTH = 0; + public static final int MEASURE_HEIGHT = 1; + public static final int MEASURE_LEFT = 2; + public static final int MEASURE_RIGHT = 3; + public static final int MEASURE_TOP = 4; + public static final int MEASURE_BOTTOM = 5; + + /** a << 8 shifted {@link PaintContext#getTextBounds} */ + public static final int MEASURE_MONOSPACE_FLAG = TEXT_MEASURE_MONOSPACE_WIDTH << 8; + + public static final int MEASURE_MAX_HEIGHT_FLAG = TEXT_MEASURE_FONT_HEIGHT << 8; + + public TextMeasure(int id, int textId, int type) { + this.mId = id; + this.mTextId = textId; + this.mType = type; + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mId, mTextId, mType); + } + + @Override + public String toString() { + return "FloatConstant[" + mId + "] = " + mTextId + " " + mType; + } + + public static String name() { + return CLASS_NAME; + } + + public static int id() { + return OP_CODE; + } + + /** + * Writes out the operation to the buffer + * + * @param buffer write command to this buffer + * @param id the id + * @param textId the id + * @param type the value of the float + */ + public static void apply(WireBuffer buffer, int id, int textId, int type) { + buffer.start(OP_CODE); + buffer.writeInt(id); + buffer.writeInt(textId); + buffer.writeInt(type); + } + + public static void read(WireBuffer buffer, List operations) { + int id = buffer.readInt(); + int textId = buffer.readInt(); + int type = buffer.readInt(); + operations.add(new TextMeasure(id, textId, type)); + } + + 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 result of the measure") + .field(INT, "textId", "id of text") + .field(INT, "type", "type: measure 0=width,1=height"); + } + + @Override + public String deepToString(String indent) { + return indent + toString(); + } + + float[] mBounds = new float[4]; + + @Override + public void paint(PaintContext context) { + int val = mType & 255; + int flags = mType >> 8; + context.getTextBounds(mTextId, 0, -1, flags, mBounds); + switch (val) { + case MEASURE_WIDTH: + context.getContext().loadFloat(mId, mBounds[2] - mBounds[0]); + break; + case MEASURE_HEIGHT: + context.getContext().loadFloat(mId, mBounds[3] - mBounds[1]); + break; + case MEASURE_LEFT: + context.getContext().loadFloat(mId, mBounds[0]); + break; + case MEASURE_TOP: + context.getContext().loadFloat(mId, mBounds[1]); + break; + case MEASURE_RIGHT: + context.getContext().loadFloat(mId, mBounds[2]); + + break; + case MEASURE_BOTTOM: + context.getContext().loadFloat(mId, mBounds[3]); + + break; + } + } +} 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 dd7822308a943e9c428f97026395950d6999cbf1..78cc674a22e9b555ddb7f6400c5c922e5b2b41c4 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,19 +15,18 @@ */ 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.DocumentedOperation.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.documentation.DocumentedOperation; import java.util.List; -/** - * Operation to deal with Text data - */ +/** 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"; @@ -51,7 +50,6 @@ public class TextMerge implements Operation { return "TextMerge[" + mTextId + "] = [" + mSrcId1 + " ] + [ " + mSrcId2 + "]"; } - public static String name() { return CLASS_NAME; } @@ -84,16 +82,11 @@ public class TextMerge implements Operation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Data Operations", - OP_CODE, - CLASS_NAME) + 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"); + .field(DocumentedOperation.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 52ae7fe5ab4b7fc150131a46cfad753d31a6668c..845f25d0cd67271fdbd457593c7ff53dfe825ec6 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 @@ -15,7 +15,7 @@ */ 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.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -27,10 +27,9 @@ import com.android.internal.widget.remotecompose.core.documentation.Documentatio import java.util.List; /** - * Set a current theme, applied to the following operations in the document. - * This can be used to "tag" the subsequent operations to a given theme. On playback, - * we can then filter operations depending on the chosen theme. - * + * Set a current theme, applied to the following operations in the document. This can be used to + * "tag" the subsequent operations to a given theme. On playback, we can then filter operations + * depending on the chosen theme. */ public class Theme implements RemoteComposeOperation { private static final int OP_CODE = Operations.THEME; @@ -43,10 +42,7 @@ public class Theme implements RemoteComposeOperation { /** * we can then filter operations depending on the chosen theme. * - * @param theme the theme we are interested in: - * - Theme.UNSPECIFIED - * - Theme.DARK - * - Theme.LIGHT + * @param theme the theme we are interested in: - Theme.UNSPECIFIED - Theme.DARK - Theme.LIGHT */ public Theme(int theme) { this.mTheme = theme; @@ -76,7 +72,6 @@ public class Theme implements RemoteComposeOperation { return CLASS_NAME; } - public static int id() { return OP_CODE; } @@ -86,7 +81,6 @@ public class Theme implements RemoteComposeOperation { buffer.writeInt(theme); } - public static void read(WireBuffer buffer, List operations) { int theme = buffer.readInt(); operations.add(new Theme(theme)); 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 6e858c7e0215f6fc3d5a0b461d1828ea2fe8c5fc..8ebb40cab8064e0b3297b63f8924d4ea43a4204e 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 @@ -15,9 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations; -/** - * Utilities to be used across all core operations - */ +/** Utilities to be used across all core operations */ public class Utils { public static float asNan(int v) { return Float.intBitsToFloat(v | -0x800000); @@ -28,8 +26,16 @@ public class Utils { return b & 0x3FFFFF; } + public static long idFromLong(long v) { + return v - 0x100000000L; + } + public static String idStringFromNan(float value) { int b = Float.floatToRawIntBits(value) & 0x3FFFFF; + return idString(b); + } + + public static String idString(int b) { return (b > 0xFFFFF) ? "A_" + (b & 0xFFFFF) : "" + b; } @@ -38,8 +44,7 @@ public class Utils { } /** - * trim a string to n characters if needing to trim - * end in "..." + * trim a string to n characters if needing to trim end in "..." * * @param str * @param n @@ -54,6 +59,7 @@ public class Utils { /** * print the id and the value of a float + * * @param idvalue * @param value * @return @@ -70,6 +76,7 @@ public class Utils { /** * Convert float to string but render nan id in brackets [n] + * * @param value * @return */ @@ -85,17 +92,25 @@ public class Utils { /** * Debugging util to print a message and include the file/line it came from + * * @param str */ public static void log(String str) { StackTraceElement s = new Throwable().getStackTrace()[1]; - System.out.println("(" + s.getFileName() - + ":" + s.getLineNumber() + "). " - + s.getMethodName() + "() " + str); + System.out.println( + "(" + + s.getFileName() + + ":" + + s.getLineNumber() + + "). " + + s.getMethodName() + + "() " + + str); } /** * Debugging util to print the stack + * * @param str * @param n */ @@ -104,8 +119,8 @@ public class Utils { for (int i = 1; i < n + 1; i++) { StackTraceElement s = st[i]; String space = new String(new char[i]).replace('\0', ' '); - System.out.println(space + "(" + s.getFileName() - + ":" + s.getLineNumber() + ")." + str); + System.out.println( + space + "(" + s.getFileName() + ":" + s.getLineNumber() + ")." + str); } } @@ -136,8 +151,8 @@ public class Utils { } /** - * Interpolate two colors. - * gamma corrected colors are interpolated in the form c1 * (1-t) + c2 * t + * Interpolate two colors. gamma corrected colors are interpolated in the form c1 * (1-t) + c2 * + * t * * @param c1 * @param c2 @@ -183,7 +198,6 @@ public class Utils { int outb = clamp((int) ((float) Math.pow(f_b, 1.0 / 2.2) * 255.0f)); int outa = clamp((int) (f_a * 255.0f)); - return (outa << 24 | outr << 16 | outg << 8 | outb); } @@ -205,9 +219,9 @@ public class Utils { /** * convert hue saturation and value to RGB * - * @param hue 0..1 + * @param hue 0..1 * @param saturation 0..1 0=on the gray scale - * @param value 0..1 0=black + * @param value 0..1 0=black * @return */ public static int hsvToRgb(float hue, float saturation, float value) { @@ -230,7 +244,6 @@ public class Utils { return 0XFF000000 | (t << 16) + (p << 8) + v; case 5: return 0XFF000000 | (v << 16) + (p << 8) + q; - } return 0; } 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 index 7588c794190dd2657af8d330dbeb984449eee57d..bdc2a886ffd629689d6772ff0e6e707ed98172f0 100644 --- 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 @@ -20,11 +20,10 @@ 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 - */ +/** 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); + + 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 index fd3501732e5181867828d811fbf19feda1b8a3c7..9d80d3cc40b03b5b416912e5c697f32e775d2516 100644 --- 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 @@ -15,7 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout; -import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -24,13 +24,17 @@ import com.android.internal.widget.remotecompose.core.documentation.Documentatio import java.util.List; -/** - * Represents the content of a CanvasLayout (i.e. contains the canvas commands) - */ +/** 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) { + public CanvasContent( + int componentId, + float x, + float y, + float width, + float height, + Component parent, + int animationId) { super(parent, componentId, animationId, x, y, width, height); } @@ -42,7 +46,8 @@ public class CanvasContent extends Component implements ComponentStartOperation return Operations.LAYOUT_CANVAS_CONTENT; } - @Override protected String getSerializedName() { + @Override + protected String getSerializedName() { return "CANVAS_CONTENT"; } @@ -53,8 +58,7 @@ public class CanvasContent extends Component implements ComponentStartOperation public static void read(WireBuffer buffer, List operations) { int componentId = buffer.readInt(); - operations.add(new CanvasContent( - componentId, 0, 0, 0, 0, null, -1)); + operations.add(new CanvasContent(componentId, 0, 0, 0, 0, null, -1)); } public static void documentation(DocumentationBuilder doc) { 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 index f7c6ce24df14306c77069c8f7ed333942cb2c798..fe726ac78791d2763f7e833346b49a079f1ffcff 100644 --- 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 @@ -57,14 +57,14 @@ public class ClickModifierEnd implements Operation { buffer.start(id()); } - public static void read(WireBuffer buffer, List 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"); + .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 index d75f70b674c5382adb0f542951f1754a5f9fad46..d5ff07df54cd2fde5d1d2ef7121224ed0ce84dc3 100644 --- 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 @@ -35,14 +35,11 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.easin import java.util.ArrayList; import java.util.List; -/** - * Represents a click modifier + actions - */ +/** 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; @@ -60,6 +57,7 @@ public class ClickModifierOperation extends PaintOperation mAnimateRippleX = x; mAnimateRippleY = y; } + public ArrayList mList = new ArrayList<>(); public ArrayList getList() { @@ -107,14 +105,14 @@ public class ClickModifierOperation extends PaintOperation context.savePaint(); mPaint.reset(); - FloatAnimation anim1 = new FloatAnimation(Easing.CUBIC_STANDARD, 1f, - null, Float.NaN, Float.NaN); + 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); + 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); @@ -149,8 +147,11 @@ public class ClickModifierOperation extends PaintOperation } @Override - public void onClick(RemoteContext context, CoreDocument document, - Component component, float x, float y) { + public void onClick( + RemoteContext context, CoreDocument document, Component component, float x, float y) { + if (!component.isVisible()) { + return; + } locationInWindow[0] = 0f; locationInWindow[1] = 0f; component.getLocationInWindow(locationInWindow); @@ -176,7 +177,8 @@ public class ClickModifierOperation extends PaintOperation 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"); + .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 fca0b1344a10e6af01e88022d21f1d10bb1dd5de..96dffca2042fabb4e4b6ec09e7713dfdfe8c127c 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 @@ -38,9 +38,7 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.Strin import java.util.ArrayList; import java.util.HashSet; -/** - * Generic Component class - */ +/** Generic Component class */ public class Component extends PaintOperation implements Measurable, SerializableToString { private static final boolean DEBUG = false; @@ -64,7 +62,6 @@ public class Component extends PaintOperation implements Measurable, Serializabl PaintBundle mPaint = new PaintBundle(); protected HashSet mComponentValues = new HashSet<>(); - public ArrayList getList() { return mList; } @@ -120,27 +117,27 @@ public class Component extends PaintOperation implements Measurable, Serializabl */ private void updateComponentValues(RemoteContext context) { if (DEBUG) { - System.out.println("UPDATE COMPONENT VALUES (" - + mComponentValues.size() - + ") FOR " + mComponentId); + System.out.println( + "UPDATE COMPONENT VALUES (" + + mComponentValues.size() + + ") FOR " + + mComponentId); } for (ComponentValue v : mComponentValues) { switch (v.getType()) { - case ComponentValue.WIDTH: { + case ComponentValue.WIDTH: context.loadFloat(v.getValueId(), mWidth); if (DEBUG) { System.out.println("Updating WIDTH for " + mComponentId + " to " + mWidth); } - } - break; - case ComponentValue.HEIGHT: { + break; + case ComponentValue.HEIGHT: context.loadFloat(v.getValueId(), mHeight); if (DEBUG) { - System.out.println("Updating HEIGHT for " + mComponentId - + " to " + mHeight); + System.out.println( + "Updating HEIGHT for " + mComponentId + " to " + mHeight); } - } - break; + break; } } } @@ -153,8 +150,14 @@ public class Component extends PaintOperation implements Measurable, Serializabl mAnimationId = id; } - public Component(Component parent, int componentId, int animationId, - float x, float y, float width, float height) { + public Component( + Component parent, + int componentId, + int animationId, + float x, + float y, + float width, + float height) { this.mComponentId = componentId; this.mX = x; this.mY = y; @@ -164,15 +167,20 @@ public class Component extends PaintOperation implements Measurable, Serializabl this.mAnimationId = animationId; } - public Component(int componentId, float x, float y, float width, float height, - Component parent) { + public Component( + int componentId, float x, float y, float width, float height, Component parent) { this(parent, componentId, -1, x, y, width, height); } public Component(Component component) { - this(component.mParent, component.mComponentId, component.mAnimationId, - component.mX, component.mY, component.mWidth, component.mHeight - ); + this( + component.mParent, + component.mComponentId, + component.mAnimationId, + component.mX, + component.mY, + component.mWidth, + component.mHeight); mList.addAll(component.mList); finalizeCreation(); } @@ -199,8 +207,8 @@ public class Component extends PaintOperation implements Measurable, Serializabl } /** - * This traverses the component tree and make sure to - * update variables referencing the component dimensions as needed. + * This traverses the component tree and make sure to update variables referencing the component + * dimensions as needed. * * @param context the current context */ @@ -223,9 +231,9 @@ public class Component extends PaintOperation implements Measurable, Serializabl } public enum Visibility { + GONE, VISIBLE, - INVISIBLE, - GONE + INVISIBLE } public boolean isVisible() { @@ -239,15 +247,43 @@ public class Component extends PaintOperation implements Measurable, Serializabl } public void setVisibility(Visibility visibility) { - if (visibility != mVisibility) { + if (visibility != mVisibility || visibility != mScheduledVisibility) { mScheduledVisibility = visibility; invalidateMeasure(); } } @Override - public void measure(PaintContext context, float minWidth, float maxWidth, - float minHeight, float maxHeight, MeasurePass measure) { + public boolean suitableForTransition(Operation o) { + if (!(o instanceof Component)) { + return false; + } + if (mList.size() != ((Component) o).mList.size()) { + return false; + } + for (int i = 0; i < mList.size(); i++) { + Operation o1 = mList.get(i); + Operation o2 = ((Component) o).mList.get(i); + if (o1 instanceof Component && o2 instanceof Component) { + if (!((Component) o1).suitableForTransition(o2)) { + return false; + } + } + if (o1 instanceof PaintOperation && !((PaintOperation) o1).suitableForTransition(o2)) { + return false; + } + } + return true; + } + + @Override + public void measure( + PaintContext context, + float minWidth, + float maxWidth, + float minHeight, + float maxHeight, + MeasurePass measure) { ComponentMeasure m = measure.get(this); m.setW(mWidth); m.setH(mHeight); @@ -256,19 +292,34 @@ public class Component extends PaintOperation implements Measurable, Serializabl @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); - ComponentMeasure target = new ComponentMeasure(mComponentId, - m.getX(), m.getY(), m.getW(), m.getH(), m.getVisibility()); - mAnimateMeasure = new AnimateMeasure(context.currentTime, this, - origin, target, - mAnimationSpec.getMotionDuration(), mAnimationSpec.getVisibilityDuration(), - mAnimationSpec.getEnterAnimation(), mAnimationSpec.getExitAnimation(), - mAnimationSpec.getMotionEasingType(), - mAnimationSpec.getVisibilityEasingType()); + ComponentMeasure origin = + new ComponentMeasure(mComponentId, mX, mY, mWidth, mHeight, mVisibility); + ComponentMeasure target = + new ComponentMeasure( + mComponentId, + m.getX(), + m.getY(), + m.getW(), + m.getH(), + m.getVisibility()); + if (!target.same(origin)) { + mAnimateMeasure = + new AnimateMeasure( + context.currentTime, + this, + origin, + target, + mAnimationSpec.getMotionDuration(), + mAnimationSpec.getVisibilityDuration(), + mAnimationSpec.getEnterAnimation(), + mAnimationSpec.getExitAnimation(), + mAnimationSpec.getMotionEasingType(), + mAnimationSpec.getVisibilityEasingType()); + } } else { mAnimateMeasure.updateTarget(m, context.currentTime); } @@ -323,19 +374,48 @@ public class Component extends PaintOperation implements Measurable, Serializabl @Override public String toString() { - return "COMPONENT(<" + mComponentId + "> " + getClass().getSimpleName() - + ") [" + mX + "," + mY + " - " + mWidth + " x " + mHeight + "] " + textContent() - + " Visibility (" + mVisibility + ") "; + return "COMPONENT(<" + + mComponentId + + "> " + + getClass().getSimpleName() + + ") [" + + mX + + "," + + mY + + " - " + + mWidth + + " x " + + mHeight + + "] " + + textContent() + + " Visibility (" + + mVisibility + + ") "; } protected String getSerializedName() { return "COMPONENT"; } + @Override public void serializeToString(int indent, StringSerializer serializer) { - serializer.append(indent, getSerializedName() + " [" + mComponentId - + ":" + mAnimationId + "] = " - + "[" + mX + ", " + mY + ", " + mWidth + ", " + mHeight + "] " + serializer.append( + indent, + getSerializedName() + + " [" + + mComponentId + + ":" + + mAnimationId + + "] = " + + "[" + + mX + + ", " + + mY + + ", " + + mWidth + + ", " + + mHeight + + "] " + mVisibility // + " [" + mNeedsMeasure + ", " + mNeedsRepaint + "]" ); @@ -346,9 +426,7 @@ public class Component extends PaintOperation implements Measurable, Serializabl // nothing } - /** - * Returns the top-level RootLayoutComponent - */ + /** Returns the top-level RootLayoutComponent */ public RootLayoutComponent getRoot() throws Exception { if (this instanceof RootLayoutComponent) { return (RootLayoutComponent) this; @@ -378,8 +456,8 @@ public class Component extends PaintOperation implements Measurable, Serializabl } /** - * Mark itself as needing to be remeasured, and walk back up the tree - * to mark each parents as well. + * Mark itself as needing to be remeasured, and walk back up the tree to mark each parents as + * well. */ public void invalidateMeasure() { needsRepaint(); @@ -411,7 +489,7 @@ public class Component extends PaintOperation implements Measurable, Serializabl public String textContent() { StringBuilder builder = new StringBuilder(); - for (Operation op : mList) { + for (Operation ignored : mList) { String letter = ""; // if (op instanceof DrawTextRun) { // letter = "[" + ((DrawTextRun) op).text + "]"; 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 71decd74a40b882584c794382a227af304933c9b..c83ee487a8ea00a022d5736ddb79a1fcb8510741 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 @@ -61,14 +61,14 @@ public class ComponentEnd implements Operation { return 1 + 4 + 4 + 4; } - public static void read(WireBuffer buffer, List operations) { operations.add(new ComponentEnd()); } 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"); + .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 32ef5ce8b2782f312d1ed392346d259b5a67b942..72cc9b6d26134e29a155a86c5fb852c8da10a337 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 @@ -15,8 +15,8 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout; -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.documentation.DocumentedOperation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -75,8 +75,19 @@ public class ComponentStart implements ComponentStartOperation { @Override public String toString() { - return "COMPONENT_START (type " + mType + " " + typeDescription(mType) - + ") - (" + mX + ", " + mY + " - " + mWidth + " x " + mHeight + ")"; + return "COMPONENT_START (type " + + mType + + " " + + typeDescription(mType) + + ") - (" + + mX + + ", " + + mY + + " - " + + mWidth + + " x " + + mHeight + + ")"; } @Override @@ -149,8 +160,8 @@ public class ComponentStart implements ComponentStartOperation { return Operations.COMPONENT_START; } - public static void apply(WireBuffer buffer, int type, int componentId, - float width, float 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); @@ -172,8 +183,8 @@ public class ComponentStart implements ComponentStartOperation { public static void documentation(DocumentationBuilder doc) { doc.operation("Layout Operations", id(), name()) - .description("Basic component encapsulating draw commands." - + "This is not resizable.") + .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") diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentStartOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentStartOperation.java index 67964efe816fed2d321a3a7c027104daed8cc009..abf2356a3e49d3df83c383575437669a980308ad 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentStartOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentStartOperation.java @@ -17,5 +17,4 @@ package com.android.internal.widget.remotecompose.core.operations.layout; import com.android.internal.widget.remotecompose.core.Operation; -public interface ComponentStartOperation extends Operation { -} +public interface ComponentStartOperation extends Operation {} 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 71bf83913cfbb2e67805610dd5c21939b76a0a87..314650fcd59742f171c2e882643f612f1913b944 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 @@ -24,6 +24,7 @@ import com.android.internal.widget.remotecompose.core.RemoteContext; */ public interface DecoratorComponent { void layout(RemoteContext context, float width, float height); - void onClick(RemoteContext context, CoreDocument document, - Component component, 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 f4c213159882025ed39082cff11a166001ab4534..8172502d092f172fa80e9e53a20f7269418904fc 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 @@ -32,9 +32,7 @@ import com.android.internal.widget.remotecompose.core.operations.layout.modifier import java.util.ArrayList; -/** - * Component with modifiers and children - */ +/** Component with modifiers and children */ public class LayoutComponent extends Component { protected WidthModifierOperation mWidthModifier = null; @@ -54,8 +52,14 @@ public class LayoutComponent extends Component { protected ComponentModifiers mComponentModifiers = new ComponentModifiers(); protected ArrayList mChildrenComponents = new ArrayList<>(); - public LayoutComponent(Component parent, int componentId, int animationId, - float x, float y, float width, float height) { + public LayoutComponent( + Component parent, + int componentId, + int animationId, + float x, + float y, + float width, + float height) { super(parent, componentId, animationId, x, y, width, height); } @@ -91,7 +95,6 @@ public class LayoutComponent extends Component { return mPaddingBottom; } - public WidthModifierOperation getWidthModifier() { return mWidthModifier; } @@ -237,10 +240,7 @@ public class LayoutComponent extends Component { context.restore(); } - - /** - * Traverse the modifiers to compute indicated dimension - */ + /** Traverse the modifiers to compute indicated dimension */ public float computeModifierDefinedWidth() { float s = 0f; float e = 0f; @@ -283,9 +283,7 @@ public class LayoutComponent extends Component { return s + e; } - /** - * Traverse the modifiers to compute indicated dimension - */ + /** Traverse the modifiers to compute indicated dimension */ public float computeModifierDefinedHeight() { float t = 0f; float b = 0f; @@ -328,4 +326,7 @@ public class LayoutComponent extends Component { return t + b; } + public ArrayList getChildrenComponents() { + return mChildrenComponents; + } } 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 5b3b54d3c423509eb510ff6fa32760ff356d1143..66fd053c4b5e7b37dbbdd0f472dc4a31a53e8f0b 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,7 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout; -import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -24,13 +24,17 @@ import com.android.internal.widget.remotecompose.core.documentation.Documentatio import java.util.List; -/** - * Represents the content of a LayoutComponent (i.e. the children components) - */ +/** Represents the content of a LayoutComponent (i.e. the children components) */ public class LayoutComponentContent extends Component implements ComponentStartOperation { - public LayoutComponentContent(int componentId, float x, float y, - float width, float height, Component parent, int animationId) { + public LayoutComponentContent( + int componentId, + float x, + float y, + float width, + float height, + Component parent, + int animationId) { super(parent, componentId, animationId, x, y, width, height); } @@ -42,7 +46,8 @@ public class LayoutComponentContent extends Component implements ComponentStartO return Operations.LAYOUT_CONTENT; } - @Override protected String getSerializedName() { + @Override + protected String getSerializedName() { return "CONTENT"; } @@ -53,16 +58,16 @@ public class LayoutComponentContent extends Component implements ComponentStartO public static void read(WireBuffer buffer, List operations) { int componentId = buffer.readInt(); - operations.add(new LayoutComponentContent( - componentId, 0, 0, 0, 0, null, -1)); + operations.add(new LayoutComponentContent(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 components. BoxLayout, RowLayout and ColumnLayout " - + "expects a LayoutComponentContent as a child, encapsulating the " - + "components that needs to be laid out."); + .description( + "Container for components. BoxLayout, RowLayout and ColumnLayout " + + "expects a LayoutComponentContent as a child, encapsulating the " + + "components that needs to be laid out."); } @Override diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LoopEnd.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LoopEnd.java new file mode 100644 index 0000000000000000000000000000000000000000..3086d6aaa7771789e0175b9c3afce9dc6300a2ca --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LoopEnd.java @@ -0,0 +1,67 @@ +/* + * 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 LoopEnd implements Operation { + + @Override + public void write(WireBuffer buffer) { + apply(buffer); + } + + @Override + public String toString() { + return "LOOP_END"; + } + + @Override + public void apply(RemoteContext context) { + // nothing + } + + @Override + public String deepToString(String indent) { + return (indent != null ? indent : "") + toString(); + } + + public static String name() { + return "LoopEnd"; + } + + public static int id() { + return Operations.LOOP_END; + } + + public static void apply(WireBuffer buffer) { + buffer.start(id()); + } + + public static void read(WireBuffer buffer, List operations) { + operations.add(new LoopEnd()); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Operations", id(), name()).description("End tag for loops"); + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LoopOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LoopOperation.java new file mode 100644 index 0000000000000000000000000000000000000000..691000810c207e9bd7f496601f1eac10e13c9a00 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LoopOperation.java @@ -0,0 +1,116 @@ +/* + * 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.PaintContext; +import com.android.internal.widget.remotecompose.core.PaintOperation; +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.ArrayList; +import java.util.List; + +/** Represents a loop of operations */ +public class LoopOperation extends PaintOperation { + private static final int OP_CODE = Operations.LOOP_START; + + public ArrayList mList = new ArrayList<>(); + + int mIndexVariableId; + float mUntil = 12; + float mFrom = 0; + float mStep = 1; + + public LoopOperation(int count, int indexId) { + mUntil = count; + mIndexVariableId = indexId; + } + + public LoopOperation(float count, float from, float step, int indexId) { + mUntil = count; + mFrom = from; + mStep = step; + mIndexVariableId = indexId; + } + + public ArrayList getList() { + return mList; + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mUntil, mFrom, mStep, mIndexVariableId); + } + + @Override + public String toString() { + return "LoopOperation"; + } + + @Override + public String deepToString(String indent) { + return (indent != null ? indent : "") + toString(); + } + + @Override + public void paint(PaintContext context) { + if (mIndexVariableId == 0) { + for (float i = mFrom; i < mUntil; i += mStep) { + for (Operation op : mList) { + op.apply(context.getContext()); + } + } + } else { + for (float i = mFrom; i < mUntil; i += mStep) { + context.getContext().loadFloat(mIndexVariableId, i); + for (Operation op : mList) { + if (op instanceof VariableSupport) { + ((VariableSupport) op).updateVariables(context.getContext()); + } + op.apply(context.getContext()); + } + } + } + } + + public static String name() { + return "Loop"; + } + + public static void apply(WireBuffer buffer, float count, float from, float step, int indexId) { + buffer.start(OP_CODE); + buffer.writeFloat(count); + buffer.writeFloat(from); + buffer.writeFloat(step); + buffer.writeInt(indexId); + } + + public static void read(WireBuffer buffer, List operations) { + float count = buffer.readFloat(); + float from = buffer.readFloat(); + float step = buffer.readFloat(); + int indexId = buffer.readInt(); + operations.add(new LoopOperation(count, from, step, indexId)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Operations", OP_CODE, name()) + .description("Loop. This operation execute" + " a list of action in a loop"); + } +} 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 bf1a4963d4c47b74c51ef716bf6c1b476e52c99e..680bb0b064d12208b2367fb635416658e0cf2ca2 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,7 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout; -import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -32,38 +32,66 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.Strin import java.util.List; -/** - * Represents the root layout component. Entry point to the component tree layout/paint. - */ +/** Represents the root layout component. Entry point to the component tree layout/paint. */ public class RootLayoutComponent extends Component implements ComponentStartOperation { int mCurrentId = -1; - public RootLayoutComponent(int componentId, float x, float y, - float width, float height, Component parent, int animationId) { + public RootLayoutComponent( + int componentId, + float x, + float y, + float width, + float height, + Component parent, + int animationId) { super(parent, componentId, animationId, x, y, width, height); } - public RootLayoutComponent(int componentId, float x, float y, - float width, float height, Component parent) { + public RootLayoutComponent( + int componentId, float x, float y, float width, float height, Component parent) { super(parent, componentId, -1, x, y, width, height); } @Override public String toString() { - return "ROOT " + mComponentId + " (" + mX + ", " + mY + " - " - + mWidth + " x " + mHeight + ") " + mVisibility; + return "ROOT " + + mComponentId + + " (" + + mX + + ", " + + mY + + " - " + + mWidth + + " x " + + mHeight + + ") " + + mVisibility; } @Override public void serializeToString(int indent, StringSerializer serializer) { - serializer.append(indent, "ROOT [" + mComponentId + ":" + mAnimationId - + "] = [" + mX + ", " + mY + ", " + mWidth + ", " + mHeight + "] " + mVisibility); + serializer.append( + indent, + "ROOT [" + + mComponentId + + ":" + + mAnimationId + + "] = [" + + mX + + ", " + + mY + + ", " + + mWidth + + ", " + + mHeight + + "] " + + mVisibility); } /** - * 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. + * 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 */ @@ -84,9 +112,7 @@ public class RootLayoutComponent extends Component implements ComponentStartOper } } - /** - * This will measure then layout the tree of components - */ + /** This will measure then layout the tree of components */ public void layout(RemoteContext context) { if (!mNeedsMeasure) { return; @@ -100,8 +126,7 @@ public class RootLayoutComponent extends Component implements ComponentStartOper for (Operation op : mList) { if (op instanceof Measurable) { Measurable m = (Measurable) op; - m.measure(context.getPaintContext(), - 0f, mWidth, 0f, mHeight, measurePass); + m.measure(context.getPaintContext(), 0f, mWidth, 0f, mHeight, measurePass); m.layout(context, measurePass); } } @@ -161,15 +186,16 @@ public class RootLayoutComponent extends Component implements ComponentStartOper public static void read(WireBuffer buffer, List operations) { int componentId = buffer.readInt(); - operations.add(new RootLayoutComponent( - componentId, 0, 0, 0, 0, null, -1)); + operations.add(new RootLayoutComponent(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("Root element for a document. Other components / layout managers " - + "are children in the component tree starting from this Root component."); + .description( + "Root element for a document. Other components / layout managers are" + + " children in the component tree starting from" + + "this Root component."); } @Override 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 1ada733e2cb2866274483212e666fd673f38eee9..e4505852885929bfe4c69c8a584069cf110a213b 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 @@ -28,7 +28,7 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.easin /** * Basic interpolation manager between two ComponentMeasures * - * Handles position, size and visibility + *

    Handles position, size and visibility */ public class AnimateMeasure { long mStartTime = System.currentTimeMillis(); @@ -44,18 +44,24 @@ public class AnimateMeasure { float mP = 0f; float mVp = 0f; - FloatAnimation mMotionEasing = new FloatAnimation(mMotionEasingType, - mDuration / 1000f, null, 0f, Float.NaN); - FloatAnimation mVisibilityEasing = new FloatAnimation(mVisibilityEasingType, - mDurationVisibilityChange / 1000f, - null, 0f, Float.NaN); + FloatAnimation mMotionEasing = + new FloatAnimation(mMotionEasingType, mDuration / 1000f, null, 0f, Float.NaN); + FloatAnimation mVisibilityEasing = + new FloatAnimation( + mVisibilityEasingType, mDurationVisibilityChange / 1000f, null, 0f, Float.NaN); ParticleAnimation mParticleAnimation; - public AnimateMeasure(long startTime, Component component, ComponentMeasure original, - ComponentMeasure target, int duration, int durationVisibilityChange, - AnimationSpec.ANIMATION enterAnimation, - AnimationSpec.ANIMATION exitAnimation, - int motionEasingType, int visibilityEasingType) { + public AnimateMeasure( + long startTime, + Component component, + ComponentMeasure original, + ComponentMeasure target, + int duration, + int durationVisibilityChange, + AnimationSpec.ANIMATION enterAnimation, + AnimationSpec.ANIMATION exitAnimation, + int motionEasingType, + int visibilityEasingType) { this.mStartTime = startTime; this.mComponent = component; this.mOriginal = original; @@ -64,18 +70,28 @@ public class AnimateMeasure { this.mDurationVisibilityChange = durationVisibilityChange; this.mEnterAnimation = enterAnimation; this.mExitAnimation = exitAnimation; + this.mMotionEasingType = motionEasingType; + this.mVisibilityEasingType = visibilityEasingType; + + float motionDuration = mDuration / 1000f; + float visibilityDuration = mDurationVisibilityChange / 1000f; + + mMotionEasing = new FloatAnimation(mMotionEasingType, motionDuration, null, 0f, Float.NaN); + mVisibilityEasing = + new FloatAnimation(mVisibilityEasingType, visibilityDuration, null, 0f, Float.NaN); mMotionEasing.setTargetValue(1f); mVisibilityEasing.setTargetValue(1f); + component.mVisibility = target.getVisibility(); } public void update(long currentTime) { long elapsed = currentTime - mStartTime; - mP = Math.min(elapsed / (float) mDuration, 1f); - //mP = motionEasing.get(mP); - mVp = Math.min(elapsed / (float) mDurationVisibilityChange, 1f); - // mVp = mVisibilityEasing.get(mVp); + float motionProgress = elapsed / (float) mDuration; + float visibilityProgress = elapsed / (float) mDurationVisibilityChange; + mP = mMotionEasing.get(motionProgress); + mVp = mVisibilityEasing.get(visibilityProgress); } public PaintBundle paint = new PaintBundle(); @@ -117,8 +133,11 @@ public class AnimateMeasure { paint.reset(); paint.setColor(0f, 0f, 0f, 1f - mVp); context.applyPaint(paint); - context.saveLayer(mComponent.getX(), mComponent.getY(), - mComponent.getWidth(), mComponent.getHeight()); + context.saveLayer( + mComponent.getX(), + mComponent.getY(), + mComponent.getWidth(), + mComponent.getHeight()); mComponent.paintingComponent(context); context.restore(); context.restorePaint(); @@ -127,8 +146,11 @@ public class AnimateMeasure { case SLIDE_LEFT: context.save(); context.translate(-mVp * mComponent.getParent().getWidth(), 0f); - context.saveLayer(mComponent.getX(), mComponent.getY(), - mComponent.getWidth(), mComponent.getHeight()); + context.saveLayer( + mComponent.getX(), + mComponent.getY(), + mComponent.getWidth(), + mComponent.getHeight()); mComponent.paintingComponent(context); context.restore(); context.restore(); @@ -140,8 +162,11 @@ public class AnimateMeasure { paint.setColor(0f, 0f, 0f, 1f); context.applyPaint(paint); context.translate(mVp * mComponent.getParent().getWidth(), 0f); - context.saveLayer(mComponent.getX(), mComponent.getY(), - mComponent.getWidth(), mComponent.getHeight()); + context.saveLayer( + mComponent.getX(), + mComponent.getY(), + mComponent.getWidth(), + mComponent.getHeight()); mComponent.paintingComponent(context); context.restore(); context.restorePaint(); @@ -149,20 +174,24 @@ public class AnimateMeasure { break; case SLIDE_TOP: context.save(); - context.translate(0f, - -mVp * mComponent.getParent().getHeight()); - context.saveLayer(mComponent.getX(), mComponent.getY(), - mComponent.getWidth(), mComponent.getHeight()); + context.translate(0f, -mVp * mComponent.getParent().getHeight()); + context.saveLayer( + mComponent.getX(), + mComponent.getY(), + mComponent.getWidth(), + mComponent.getHeight()); mComponent.paintingComponent(context); context.restore(); context.restore(); break; case SLIDE_BOTTOM: context.save(); - context.translate(0f, - mVp * mComponent.getParent().getHeight()); - context.saveLayer(mComponent.getX(), mComponent.getY(), - mComponent.getWidth(), mComponent.getHeight()); + context.translate(0f, mVp * mComponent.getParent().getHeight()); + context.saveLayer( + mComponent.getX(), + mComponent.getY(), + mComponent.getWidth(), + mComponent.getHeight()); mComponent.paintingComponent(context); context.restore(); context.restore(); @@ -189,8 +218,11 @@ public class AnimateMeasure { paint.reset(); paint.setColor(0f, 0f, 0f, mVp); context.applyPaint(paint); - context.saveLayer(mComponent.getX(), mComponent.getY(), - mComponent.getWidth(), mComponent.getHeight()); + context.saveLayer( + mComponent.getX(), + mComponent.getY(), + mComponent.getWidth(), + mComponent.getHeight()); mComponent.paintingComponent(context); context.restore(); context.restorePaint(); @@ -202,8 +234,11 @@ public class AnimateMeasure { paint.reset(); paint.setColor(0f, 0f, 0f, mVp); context.applyPaint(paint); - context.saveLayer(mComponent.getX(), mComponent.getY(), - mComponent.getWidth(), mComponent.getHeight()); + context.saveLayer( + mComponent.getX(), + mComponent.getY(), + mComponent.getWidth(), + mComponent.getHeight()); mComponent.paintingComponent(context); context.restore(); context.restorePaint(); @@ -211,40 +246,48 @@ public class AnimateMeasure { break; case SLIDE_LEFT: context.save(); - context.translate( - (1f - mVp) * mComponent.getParent().getWidth(), 0f); - context.saveLayer(mComponent.getX(), mComponent.getY(), - mComponent.getWidth(), mComponent.getHeight()); + context.translate((1f - mVp) * mComponent.getParent().getWidth(), 0f); + context.saveLayer( + mComponent.getX(), + mComponent.getY(), + mComponent.getWidth(), + mComponent.getHeight()); mComponent.paintingComponent(context); context.restore(); context.restore(); break; case SLIDE_RIGHT: context.save(); - context.translate( - -(1f - mVp) * mComponent.getParent().getWidth(), 0f); - context.saveLayer(mComponent.getX(), mComponent.getY(), - mComponent.getWidth(), mComponent.getHeight()); + context.translate(-(1f - mVp) * mComponent.getParent().getWidth(), 0f); + context.saveLayer( + mComponent.getX(), + mComponent.getY(), + mComponent.getWidth(), + mComponent.getHeight()); mComponent.paintingComponent(context); context.restore(); context.restore(); break; case SLIDE_TOP: context.save(); - context.translate(0f, - (1f - mVp) * mComponent.getParent().getHeight()); - context.saveLayer(mComponent.getX(), mComponent.getY(), - mComponent.getWidth(), mComponent.getHeight()); + context.translate(0f, (1f - mVp) * mComponent.getParent().getHeight()); + context.saveLayer( + mComponent.getX(), + mComponent.getY(), + mComponent.getWidth(), + mComponent.getHeight()); mComponent.paintingComponent(context); context.restore(); context.restore(); break; case SLIDE_BOTTOM: context.save(); - context.translate(0f, - -(1f - mVp) * mComponent.getParent().getHeight()); - context.saveLayer(mComponent.getX(), mComponent.getY(), - mComponent.getWidth(), mComponent.getHeight()); + context.translate(0f, -(1f - mVp) * mComponent.getParent().getHeight()); + context.saveLayer( + mComponent.getX(), + mComponent.getY(), + mComponent.getWidth(), + mComponent.getHeight()); mComponent.paintingComponent(context); context.restore(); context.restore(); @@ -300,11 +343,22 @@ public class AnimateMeasure { mOriginal.setY(getY()); mOriginal.setW(getWidth()); mOriginal.setH(getHeight()); - mTarget.setX(measure.getX()); - mTarget.setY(measure.getY()); - mTarget.setW(measure.getW()); - mTarget.setH(measure.getH()); - mTarget.setVisibility(measure.getVisibility()); - mStartTime = currentTime; + float targetX = mTarget.getX(); + float targetY = mTarget.getY(); + float targetW = mTarget.getW(); + float targetH = mTarget.getH(); + Component.Visibility targetVisibility = mTarget.getVisibility(); + if (targetX != measure.getX() + || targetY != measure.getY() + || targetW != measure.getW() + || targetH != measure.getH() + || targetVisibility != measure.getVisibility()) { + mTarget.setX(measure.getX()); + mTarget.setY(measure.getY()); + mTarget.setW(measure.getW()); + mTarget.setH(measure.getH()); + mTarget.setVisibility(measure.getVisibility()); + mStartTime = currentTime; + } } } 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 0f7db36e8e01def0e89ea672ba64ab35fd08ed5f..35533cb95190d59e5dc93782aeb4726bdfcda8b7 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,7 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.animation; -import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -26,9 +26,7 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.easin import java.util.List; -/** - * Basic component animation spec - */ +/** Basic component animation spec */ public class AnimationSpec implements Operation { int mAnimationId = -1; int mMotionDuration = 300; @@ -38,9 +36,14 @@ public class AnimationSpec implements Operation { ANIMATION mEnterAnimation = ANIMATION.FADE_IN; ANIMATION mExitAnimation = ANIMATION.FADE_OUT; - public AnimationSpec(int animationId, int motionDuration, int motionEasingType, - int visibilityDuration, int visibilityEasingType, - ANIMATION enterAnimation, ANIMATION exitAnimation) { + public AnimationSpec( + int animationId, + int motionDuration, + int motionEasingType, + int visibilityDuration, + int visibilityEasingType, + ANIMATION enterAnimation, + ANIMATION exitAnimation) { this.mAnimationId = animationId; this.mMotionDuration = motionDuration; this.mMotionEasingType = motionEasingType; @@ -51,9 +54,14 @@ public class AnimationSpec implements Operation { } public AnimationSpec() { - this(-1, 300, GeneralEasing.CUBIC_STANDARD, - 300, GeneralEasing.CUBIC_STANDARD, - ANIMATION.FADE_IN, ANIMATION.FADE_OUT); + this( + -1, + 600, + GeneralEasing.CUBIC_STANDARD, + 500, + GeneralEasing.CUBIC_STANDARD, + ANIMATION.FADE_IN, + ANIMATION.FADE_OUT); } public int getAnimationId() { @@ -102,8 +110,15 @@ public class AnimationSpec implements Operation { @Override public void write(WireBuffer buffer) { - apply(buffer, mAnimationId, mMotionDuration, mMotionEasingType, - mVisibilityDuration, mVisibilityEasingType, mEnterAnimation, mExitAnimation); + apply( + buffer, + mAnimationId, + mMotionDuration, + mMotionEasingType, + mVisibilityDuration, + mVisibilityEasingType, + mEnterAnimation, + mExitAnimation); } @Override @@ -151,10 +166,15 @@ public class AnimationSpec implements Operation { } } - public static void apply(WireBuffer buffer, int animationId, int motionDuration, - int motionEasingType, int visibilityDuration, - int visibilityEasingType, ANIMATION enterAnimation, - ANIMATION 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); @@ -173,20 +193,25 @@ public class AnimationSpec implements Operation { 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); + 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()) + 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", ""); - } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/ParticleAnimation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/ParticleAnimation.java index 5c5d05658f6570dd4937a4d3ceccf76f18d5083a..686643fbe1bc7d41f68a1153c9975873e01d84b2 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/ParticleAnimation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/ParticleAnimation.java @@ -27,9 +27,13 @@ public class ParticleAnimation { HashMap> mAllParticles = new HashMap<>(); PaintBundle mPaint = new PaintBundle(); - public void animate(PaintContext context, Component component, - ComponentMeasure start, ComponentMeasure end, - float progress) { + + public void animate( + PaintContext context, + Component component, + ComponentMeasure start, + ComponentMeasure end, + float progress) { ArrayList particles = mAllParticles.get(component.getComponentId()); if (particles == null) { particles = new ArrayList(); @@ -37,9 +41,9 @@ public class ParticleAnimation { float x = (float) Math.random(); float y = (float) Math.random(); float radius = (float) Math.random(); - float r = 250f; - float g = 250f; - float b = 250f; + float r = 220f; + float g = 220f; + float b = 220f; particles.add(new Particle(x, y, radius, r, g, b)); } mAllParticles.put(component.getComponentId(), particles); @@ -49,12 +53,17 @@ public class ParticleAnimation { for (int i = 0; i < particles.size(); i++) { Particle particle = particles.get(i); mPaint.reset(); - mPaint.setColor(particle.r, particle.g, particle.b, - 200 * (1 - progress)); + mPaint.setColor( + particle.r / 255f, + particle.g / 255f, + particle.b / 255f, + (200 * (1 - progress)) / 255f); context.applyPaint(mPaint); float dx = start.getX() + component.getWidth() * particle.x; - float dy = start.getY() + component.getHeight() * particle.y - + progress * 0.01f * component.getHeight(); + float dy = + start.getY() + + component.getHeight() * particle.y + + progress * 0.01f * component.getHeight(); float dr = (component.getHeight() + 60) * 0.15f * particle.radius + (30 * progress); context.drawCircle(dx, dy, dr); } 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 88a49a666cd7e96d25187ca6330709314748502c..047a968785c4a04be82444f206c856b576a0c4c9 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 @@ -15,7 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.managers; -import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -30,9 +30,7 @@ import com.android.internal.widget.remotecompose.core.operations.layout.measure. import java.util.List; -/** - * Simple Box layout implementation - */ +/** Simple Box layout implementation */ public class BoxLayout extends LayoutManager implements ComponentStartOperation { public static final int START = 1; @@ -41,37 +39,68 @@ public class BoxLayout extends LayoutManager implements ComponentStartOperation public static final int TOP = 4; public static final int BOTTOM = 5; - int mHorizontalPositioning; int mVerticalPositioning; - public BoxLayout(Component parent, int componentId, int animationId, - float x, float y, float width, float height, - int horizontalPositioning, int verticalPositioning) { + public BoxLayout( + Component parent, + int componentId, + int animationId, + float x, + float y, + float width, + float height, + int horizontalPositioning, + int verticalPositioning) { super(parent, componentId, animationId, x, y, width, height); mHorizontalPositioning = horizontalPositioning; mVerticalPositioning = verticalPositioning; } - public BoxLayout(Component parent, int componentId, int animationId, - int horizontalPositioning, int verticalPositioning) { - this(parent, componentId, animationId, 0, 0, 0, 0, - horizontalPositioning, verticalPositioning); + public BoxLayout( + Component parent, + int componentId, + int animationId, + int horizontalPositioning, + int verticalPositioning) { + this( + parent, + componentId, + animationId, + 0, + 0, + 0, + 0, + horizontalPositioning, + verticalPositioning); } @Override public String toString() { - return "BOX [" + mComponentId + ":" + mAnimationId + "] (" + mX + ", " - + mY + " - " + mWidth + " x " + mHeight + ") " + mVisibility; + return "BOX [" + + mComponentId + + ":" + + mAnimationId + + "] (" + + mX + + ", " + + mY + + " - " + + mWidth + + " x " + + mHeight + + ") " + + mVisibility; } + @Override protected String getSerializedName() { return "BOX"; } @Override - public void computeWrapSize(PaintContext context, float maxWidth, float maxHeight, - MeasurePass measure, Size size) { + public void computeWrapSize( + PaintContext context, float maxWidth, float maxHeight, MeasurePass measure, Size size) { for (Component c : mChildrenComponents) { c.measure(context, 0f, maxWidth, 0f, maxHeight, measure); ComponentMeasure m = measure.get(c); @@ -84,16 +113,20 @@ public class BoxLayout extends LayoutManager implements ComponentStartOperation } @Override - public void computeSize(PaintContext context, float minWidth, float maxWidth, - float minHeight, float maxHeight, MeasurePass measure) { + public void computeSize( + PaintContext context, + float minWidth, + float maxWidth, + float minHeight, + float maxHeight, + MeasurePass measure) { for (Component child : mChildrenComponents) { child.measure(context, minWidth, maxWidth, minHeight, maxHeight, measure); } } @Override - public void internalLayoutMeasure(PaintContext context, - MeasurePass measure) { + public void internalLayoutMeasure(PaintContext context, MeasurePass measure) { ComponentMeasure selfMeasure = measure.get(this); float selfWidth = selfMeasure.getW() - mPaddingLeft - mPaddingRight; float selfHeight = selfMeasure.getH() - mPaddingTop - mPaddingBottom; @@ -136,8 +169,12 @@ public class BoxLayout extends LayoutManager implements ComponentStartOperation return Operations.LAYOUT_BOX; } - public static void apply(WireBuffer buffer, int componentId, int animationId, - int horizontalPositioning, int 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); @@ -150,24 +187,32 @@ public class BoxLayout extends LayoutManager implements ComponentStartOperation int animationId = buffer.readInt(); int horizontalPositioning = buffer.readInt(); int verticalPositioning = buffer.readInt(); - operations.add(new BoxLayout(null, componentId, animationId, - horizontalPositioning, verticalPositioning)); + operations.add( + new BoxLayout( + null, + componentId, + animationId, + horizontalPositioning, + verticalPositioning)); } 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.") + .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.") .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") + .field( + INT, + "ANIMATION_ID", + "id used to match components," + " for animation purposes") .field(INT, "HORIZONTAL_POSITIONING", "horizontal positioning value") .possibleValues("START", BoxLayout.START) .possibleValues("CENTER", BoxLayout.CENTER) @@ -178,10 +223,8 @@ public class BoxLayout extends LayoutManager implements ComponentStartOperation .possibleValues("BOTTOM", BoxLayout.BOTTOM); } - @Override public void write(WireBuffer buffer) { - apply(buffer, mComponentId, mAnimationId, - mHorizontalPositioning, mVerticalPositioning); + 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 index bce7a77abb360a5266babf1da4bda779b0ae01ee..f79976715ab3ed5d544cf32f8a9759a5379bcc8d 100644 --- 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 @@ -15,7 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.managers; -import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -29,8 +29,14 @@ import com.android.internal.widget.remotecompose.core.operations.layout.measure. 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) { + 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); } @@ -40,10 +46,23 @@ public class CanvasLayout extends BoxLayout { @Override public String toString() { - return "CANVAS [" + mComponentId + ":" + mAnimationId + "] (" + mX + ", " - + mY + " - " + mWidth + " x " + mHeight + ") " + mVisibility; + return "CANVAS [" + + mComponentId + + ":" + + mAnimationId + + "] (" + + mX + + ", " + + mY + + " - " + + mWidth + + " x " + + mHeight + + ") " + + mVisibility; } + @Override protected String getSerializedName() { return "CANVAS"; } @@ -72,13 +91,14 @@ public class CanvasLayout extends BoxLayout { 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"); + .field( + INT, + "ANIMATION_ID", + "id used to match components," + " for animation purposes"); } @Override - public void internalLayoutMeasure(PaintContext context, - MeasurePass measure) { + public void internalLayoutMeasure(PaintContext context, MeasurePass measure) { ComponentMeasure selfMeasure = measure.get(this); float selfWidth = selfMeasure.getW() - mPaddingLeft - mPaddingRight; float selfHeight = selfMeasure.getH() - mPaddingTop - mPaddingBottom; 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 48d966ebe9a79f09e23505e34fa54c223fc37252..402b784343ad76efc71bd0a66bdd7b8d845c73b0 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 @@ -15,8 +15,8 @@ */ 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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -34,8 +34,7 @@ import com.android.internal.widget.remotecompose.core.operations.layout.utils.De import java.util.List; /** - * Simple Column layout implementation - * - also supports weight and horizontal/vertical positioning + * Simple Column layout implementation - also supports weight and horizontal/vertical positioning */ public class ColumnLayout extends LayoutManager implements ComponentStartOperation { public static final int START = 1; @@ -51,69 +50,122 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati int mVerticalPositioning; float mSpacedBy = 0f; - public ColumnLayout(Component parent, int componentId, int animationId, - float x, float y, float width, float height, - int horizontalPositioning, int verticalPositioning, float spacedBy) { + public ColumnLayout( + Component parent, + int componentId, + int animationId, + float x, + float y, + float width, + float height, + int horizontalPositioning, + int verticalPositioning, + float spacedBy) { super(parent, componentId, animationId, x, y, width, height); mHorizontalPositioning = horizontalPositioning; mVerticalPositioning = verticalPositioning; mSpacedBy = spacedBy; } - public ColumnLayout(Component parent, int componentId, int animationId, - int horizontalPositioning, int verticalPositioning, float spacedBy) { - this(parent, componentId, animationId, 0, 0, 0, 0, - horizontalPositioning, verticalPositioning, spacedBy); + public ColumnLayout( + Component parent, + int componentId, + int animationId, + int horizontalPositioning, + int verticalPositioning, + float spacedBy) { + this( + parent, + componentId, + animationId, + 0, + 0, + 0, + 0, + horizontalPositioning, + verticalPositioning, + spacedBy); } @Override public String toString() { - return "COLUMN [" + mComponentId + ":" + mAnimationId + "] (" + mX + ", " - + mY + " - " + mWidth + " x " + mHeight + ") " + mVisibility; + return "COLUMN [" + + mComponentId + + ":" + + mAnimationId + + "] (" + + mX + + ", " + + mY + + " - " + + mWidth + + " x " + + mHeight + + ") " + + mVisibility; } + @Override protected String getSerializedName() { return "COLUMN"; } @Override - public void computeWrapSize(PaintContext context, float maxWidth, float maxHeight, - MeasurePass measure, Size size) { + public void computeWrapSize( + PaintContext context, float maxWidth, float maxHeight, MeasurePass measure, Size size) { DebugLog.s(() -> "COMPUTE WRAP SIZE in " + this + " (" + mComponentId + ")"); + int visibleChildrens = 0; for (Component c : mChildrenComponents) { - c.measure(context, 0f, maxWidth, - 0f, maxHeight, measure); + c.measure(context, 0f, maxWidth, 0f, maxHeight, measure); ComponentMeasure m = measure.get(c); - size.setWidth(Math.max(size.getWidth(), m.getW())); - size.setHeight(size.getHeight() + m.getH()); + if (m.getVisibility() != Visibility.GONE) { + size.setWidth(Math.max(size.getWidth(), m.getW())); + size.setHeight(size.getHeight() + m.getH()); + visibleChildrens++; + } } if (!mChildrenComponents.isEmpty()) { - size.setHeight(size.getHeight() - + (mSpacedBy * (mChildrenComponents.size() - 1))); + size.setHeight(size.getHeight() + (mSpacedBy * (visibleChildrens - 1))); } DebugLog.e(); } @Override - public void computeSize(PaintContext context, float minWidth, float maxWidth, - float minHeight, float maxHeight, MeasurePass measure) { + public void computeSize( + PaintContext context, + float minWidth, + float maxWidth, + float minHeight, + float maxHeight, + MeasurePass measure) { DebugLog.s(() -> "COMPUTE SIZE in " + this + " (" + mComponentId + ")"); float mh = maxHeight; for (Component child : mChildrenComponents) { child.measure(context, minWidth, maxWidth, minHeight, mh, measure); ComponentMeasure m = measure.get(child); - mh -= m.getH(); + if (m.getVisibility() != Visibility.GONE) { + mh -= m.getH(); + } } DebugLog.e(); } @Override - public void internalLayoutMeasure(PaintContext context, - MeasurePass measure) { + public void internalLayoutMeasure(PaintContext context, MeasurePass measure) { ComponentMeasure selfMeasure = measure.get(this); - DebugLog.s(() -> "INTERNAL LAYOUT " + this + " (" + mComponentId + ") children: " - + mChildrenComponents.size() + " size (" + selfMeasure.getW() - + " x " + selfMeasure.getH() + ")"); + DebugLog.s( + () -> + "INTERNAL LAYOUT " + + this + + " (" + + mComponentId + + ") children: " + + mChildrenComponents.size() + + " size (" + + selfMeasure.getW() + + " x " + + selfMeasure.getH() + + ")"); if (mChildrenComponents.isEmpty()) { DebugLog.e(); return; @@ -127,6 +179,9 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati float totalWeights = 0f; for (Component child : mChildrenComponents) { ComponentMeasure childMeasure = measure.get(child); + if (childMeasure.getVisibility() == Visibility.GONE) { + continue; + } if (child instanceof LayoutComponent && ((LayoutComponent) child).getHeightModifier().hasWeight()) { hasWeights = true; @@ -141,21 +196,34 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati if (child instanceof LayoutComponent && ((LayoutComponent) child).getHeightModifier().hasWeight()) { ComponentMeasure childMeasure = measure.get(child); + if (childMeasure.getVisibility() == Visibility.GONE) { + continue; + } float weight = ((LayoutComponent) child).getHeightModifier().getValue(); childMeasure.setH((weight * availableSpace) / totalWeights); - child.measure(context, childMeasure.getW(), - childMeasure.getW(), childMeasure.getH(), childMeasure.getH(), measure); + child.measure( + context, + childMeasure.getW(), + childMeasure.getW(), + childMeasure.getH(), + childMeasure.getH(), + measure); } } } childrenHeight = 0f; + int visibleChildrens = 0; for (Component child : mChildrenComponents) { ComponentMeasure childMeasure = measure.get(child); + if (childMeasure.getVisibility() == Visibility.GONE) { + continue; + } childrenWidth = Math.max(childrenWidth, childMeasure.getW()); childrenHeight += childMeasure.getH(); + visibleChildrens++; } - childrenHeight += mSpacedBy * (mChildrenComponents.size() - 1); + childrenHeight += mSpacedBy * (visibleChildrens - 1); float tx = 0f; float ty = 0f; @@ -175,24 +243,33 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati case SPACE_BETWEEN: for (Component child : mChildrenComponents) { ComponentMeasure childMeasure = measure.get(child); + if (childMeasure.getVisibility() == Visibility.GONE) { + continue; + } total += childMeasure.getH(); } - verticalGap = (selfHeight - total) / (mChildrenComponents.size() - 1); + verticalGap = (selfHeight - total) / (visibleChildrens - 1); break; case SPACE_EVENLY: for (Component child : mChildrenComponents) { ComponentMeasure childMeasure = measure.get(child); + if (childMeasure.getVisibility() == Visibility.GONE) { + continue; + } total += childMeasure.getH(); } - verticalGap = (selfHeight - total) / (mChildrenComponents.size() + 1); + verticalGap = (selfHeight - total) / (visibleChildrens + 1); ty = verticalGap; break; case SPACE_AROUND: for (Component child : mChildrenComponents) { ComponentMeasure childMeasure = measure.get(child); + if (childMeasure.getVisibility() == Visibility.GONE) { + continue; + } total += childMeasure.getH(); } - verticalGap = (selfHeight - total) / (mChildrenComponents.size()); + verticalGap = (selfHeight - total) / visibleChildrens; ty = verticalGap / 2f; break; } @@ -211,6 +288,9 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati } childMeasure.setX(tx); childMeasure.setY(ty); + if (childMeasure.getVisibility() == Visibility.GONE) { + continue; + } ty += childMeasure.getH(); if (mVerticalPositioning == SPACE_BETWEEN || mVerticalPositioning == SPACE_AROUND @@ -230,8 +310,13 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati return Operations.LAYOUT_COLUMN; } - public static void apply(WireBuffer buffer, int componentId, int animationId, - int horizontalPositioning, int verticalPositioning, float 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); @@ -246,15 +331,22 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati int horizontalPositioning = buffer.readInt(); int verticalPositioning = buffer.readInt(); float spacedBy = buffer.readFloat(); - operations.add(new ColumnLayout(null, componentId, animationId, - horizontalPositioning, verticalPositioning, spacedBy)); + operations.add( + new ColumnLayout( + null, + componentId, + animationId, + horizontalPositioning, + verticalPositioning, + spacedBy)); } 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.") + .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") @@ -263,8 +355,10 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati .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, + "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) @@ -281,7 +375,12 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati @Override public void write(WireBuffer buffer) { - apply(buffer, mComponentId, mAnimationId, - mHorizontalPositioning, mVerticalPositioning, mSpacedBy); + 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 3a366172a51fd1de693195ce121022bf3fd8b8cb..308ed64ee8eafbb101f124b2496672e88c9d982e 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 @@ -24,53 +24,58 @@ import com.android.internal.widget.remotecompose.core.operations.layout.measure. import com.android.internal.widget.remotecompose.core.operations.layout.measure.MeasurePass; import com.android.internal.widget.remotecompose.core.operations.layout.measure.Size; -/** - * Base class for layout managers -- resizable components. - */ +/** Base class for layout managers -- resizable components. */ public abstract class LayoutManager extends LayoutComponent implements Measurable { Size mCachedWrapSize = new Size(0f, 0f); - public LayoutManager(Component parent, int componentId, int animationId, - float x, float y, float width, float height) { + public LayoutManager( + Component parent, + int componentId, + int animationId, + float x, + float y, + float width, + float height) { super(parent, componentId, animationId, x, y, width, height); } - /** - * Implemented by subclasses to provide a layout/measure pass - */ - public void internalLayoutMeasure(PaintContext context, - MeasurePass measure) { + /** Implemented by subclasses to provide a layout/measure pass */ + public void internalLayoutMeasure(PaintContext context, MeasurePass measure) { // nothing here } - /** - * Subclasses can implement this to provide wrap sizing - */ - public void computeWrapSize(PaintContext context, float maxWidth, float maxHeight, - MeasurePass measure, Size size) { + /** Subclasses can implement this to provide wrap sizing */ + public void computeWrapSize( + PaintContext context, float maxWidth, float maxHeight, MeasurePass measure, Size size) { // nothing here } - /** - * Subclasses can implement this when not in wrap sizing - */ - public void computeSize(PaintContext context, float minWidth, float maxWidth, - float minHeight, float maxHeight, MeasurePass measure) { + /** Subclasses can implement this when not in wrap sizing */ + public void computeSize( + PaintContext context, + float minWidth, + float maxWidth, + float minHeight, + float maxHeight, + MeasurePass measure) { // nothing here } - /** - * Base implementation of the measure resolution - */ + /** Base implementation of the measure resolution */ @Override - public void measure(PaintContext context, float minWidth, float maxWidth, - float minHeight, float maxHeight, MeasurePass measure) { + public void measure( + PaintContext context, + float minWidth, + float maxWidth, + float minHeight, + float maxHeight, + MeasurePass measure) { boolean hasWrap = true; - float measuredWidth = Math.min(maxWidth, - computeModifierDefinedWidth() - mMarginLeft - mMarginRight); - float measuredHeight = Math.min(maxHeight, - computeModifierDefinedHeight() - mMarginTop - mMarginBottom); + float measuredWidth = + Math.min(maxWidth, computeModifierDefinedWidth() - mMarginLeft - mMarginRight); + float measuredHeight = + Math.min(maxHeight, computeModifierDefinedHeight() - mMarginTop - mMarginBottom); float insetMaxWidth = maxWidth - mMarginLeft - mMarginRight; float insetMaxHeight = maxHeight - mMarginTop - mMarginBottom; if (mWidthModifier.isWrap() || mHeightModifier.isWrap()) { @@ -129,9 +134,7 @@ public abstract class LayoutManager extends LayoutComponent implements Measurabl internalLayoutMeasure(context, measure); } - /** - * basic layout of internal components - */ + /** basic layout of internal components */ @Override public void layout(RemoteContext context, MeasurePass measure) { super.layout(context, measure); @@ -143,4 +146,18 @@ public abstract class LayoutManager extends LayoutComponent implements Measurabl } this.mNeedsMeasure = false; } + + /** + * Only layout self, not children + * + * @param context + * @param measure + */ + public void selfLayout(RemoteContext context, MeasurePass measure) { + super.layout(context, measure); + ComponentMeasure self = measure.get(this); + + mComponentModifiers.layout(context, self.getW(), self.getH()); + this.mNeedsMeasure = false; + } } 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 5e452f363c06a17a584b8b9bbfc5d961fd2cc6ca..b29a05c27e5f87a984cf4bf23abe9018485de7b3 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 @@ -15,8 +15,8 @@ */ 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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -33,10 +33,7 @@ import com.android.internal.widget.remotecompose.core.operations.layout.utils.De import java.util.List; -/** - * Simple Row layout implementation - * - also supports weight and horizontal/vertical positioning - */ +/** Simple Row layout implementation - also supports weight and horizontal/vertical positioning */ public class RowLayout extends LayoutManager implements ComponentStartOperation { public static final int START = 1; public static final int CENTER = 2; @@ -51,68 +48,122 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation int mVerticalPositioning; float mSpacedBy = 0f; - public RowLayout(Component parent, int componentId, int animationId, - float x, float y, float width, float height, - int horizontalPositioning, int verticalPositioning, float spacedBy) { + public RowLayout( + Component parent, + int componentId, + int animationId, + float x, + float y, + float width, + float height, + int horizontalPositioning, + int verticalPositioning, + float spacedBy) { super(parent, componentId, animationId, x, y, width, height); mHorizontalPositioning = horizontalPositioning; mVerticalPositioning = verticalPositioning; mSpacedBy = spacedBy; } - public RowLayout(Component parent, int componentId, int animationId, - int horizontalPositioning, int verticalPositioning, float spacedBy) { - this(parent, componentId, animationId, 0, 0, 0, 0, - horizontalPositioning, verticalPositioning, spacedBy); + public RowLayout( + Component parent, + int componentId, + int animationId, + int horizontalPositioning, + int verticalPositioning, + float spacedBy) { + this( + parent, + componentId, + animationId, + 0, + 0, + 0, + 0, + horizontalPositioning, + verticalPositioning, + spacedBy); } @Override public String toString() { - return "ROW [" + mComponentId + ":" + mAnimationId + "] (" + mX + ", " - + mY + " - " + mWidth + " x " + mHeight + ") " + mVisibility; + return "ROW [" + + mComponentId + + ":" + + mAnimationId + + "] (" + + mX + + ", " + + mY + + " - " + + mWidth + + " x " + + mHeight + + ") " + + mVisibility; } + @Override protected String getSerializedName() { return "ROW"; } @Override - public void computeWrapSize(PaintContext context, float maxWidth, float maxHeight, - MeasurePass measure, Size size) { + public void computeWrapSize( + PaintContext context, float maxWidth, float maxHeight, MeasurePass measure, Size size) { DebugLog.s(() -> "COMPUTE WRAP SIZE in " + this + " (" + mComponentId + ")"); + // int visibleChildrens = 0; for (Component c : mChildrenComponents) { c.measure(context, 0f, maxWidth, 0f, maxHeight, measure); ComponentMeasure m = measure.get(c); - size.setWidth(size.getWidth() + m.getW()); - size.setHeight(Math.max(size.getHeight(), m.getH())); + if (m.getVisibility() != Visibility.GONE) { + size.setWidth(size.getWidth() + m.getW()); + size.setHeight(Math.max(size.getHeight(), m.getH())); + // visibleChildrens++; + } } if (!mChildrenComponents.isEmpty()) { - size.setWidth(size.getWidth() - + (mSpacedBy * (mChildrenComponents.size() - 1))); + size.setWidth(size.getWidth() + (mSpacedBy * (mChildrenComponents.size() - 1))); } DebugLog.e(); } @Override - public void computeSize(PaintContext context, float minWidth, float maxWidth, - float minHeight, float maxHeight, MeasurePass measure) { + public void computeSize( + PaintContext context, + float minWidth, + float maxWidth, + float minHeight, + float maxHeight, + MeasurePass measure) { DebugLog.s(() -> "COMPUTE SIZE in " + this + " (" + mComponentId + ")"); float mw = maxWidth; for (Component child : mChildrenComponents) { child.measure(context, minWidth, mw, minHeight, maxHeight, measure); ComponentMeasure m = measure.get(child); - mw -= m.getW(); + if (m.getVisibility() != Visibility.GONE) { + mw -= m.getW(); + } } DebugLog.e(); } @Override - public void internalLayoutMeasure(PaintContext context, - MeasurePass measure) { + public void internalLayoutMeasure(PaintContext context, MeasurePass measure) { ComponentMeasure selfMeasure = measure.get(this); - DebugLog.s(() -> "INTERNAL LAYOUT " + this + " (" + mComponentId + ") children: " - + mChildrenComponents.size() + " size (" + selfMeasure.getW() - + " x " + selfMeasure.getH() + ")"); + DebugLog.s( + () -> + "INTERNAL LAYOUT " + + this + + " (" + + mComponentId + + ") children: " + + mChildrenComponents.size() + + " size (" + + selfMeasure.getW() + + " x " + + selfMeasure.getH() + + ")"); if (mChildrenComponents.isEmpty()) { DebugLog.e(); return; @@ -126,6 +177,9 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation float totalWeights = 0f; for (Component child : mChildrenComponents) { ComponentMeasure childMeasure = measure.get(child); + if (childMeasure.getVisibility() == Visibility.GONE) { + continue; + } if (child instanceof LayoutComponent && ((LayoutComponent) child).getWidthModifier().hasWeight()) { hasWeights = true; @@ -143,21 +197,34 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation if (child instanceof LayoutComponent && ((LayoutComponent) child).getWidthModifier().hasWeight()) { ComponentMeasure childMeasure = measure.get(child); + if (childMeasure.getVisibility() == Visibility.GONE) { + continue; + } float weight = ((LayoutComponent) child).getWidthModifier().getValue(); childMeasure.setW((weight * availableSpace) / totalWeights); - child.measure(context, childMeasure.getW(), - childMeasure.getW(), childMeasure.getH(), childMeasure.getH(), measure); + child.measure( + context, + childMeasure.getW(), + childMeasure.getW(), + childMeasure.getH(), + childMeasure.getH(), + measure); } } } childrenWidth = 0f; + int visibleChildrens = 0; for (Component child : mChildrenComponents) { ComponentMeasure childMeasure = measure.get(child); + if (childMeasure.getVisibility() == Visibility.GONE) { + continue; + } childrenWidth += childMeasure.getW(); childrenHeight = Math.max(childrenHeight, childMeasure.getH()); + visibleChildrens++; } - childrenWidth += mSpacedBy * (mChildrenComponents.size() - 1); + childrenWidth += mSpacedBy * (visibleChildrens - 1); float tx = 0f; float ty = 0f; @@ -178,24 +245,33 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation case SPACE_BETWEEN: for (Component child : mChildrenComponents) { ComponentMeasure childMeasure = measure.get(child); + if (childMeasure.getVisibility() == Visibility.GONE) { + continue; + } total += childMeasure.getW(); } - horizontalGap = (selfWidth - total) / (mChildrenComponents.size() - 1); + horizontalGap = (selfWidth - total) / (visibleChildrens - 1); break; case SPACE_EVENLY: for (Component child : mChildrenComponents) { ComponentMeasure childMeasure = measure.get(child); + if (childMeasure.getVisibility() == Visibility.GONE) { + continue; + } total += childMeasure.getW(); } - horizontalGap = (selfWidth - total) / (mChildrenComponents.size() + 1); + horizontalGap = (selfWidth - total) / (visibleChildrens + 1); tx = horizontalGap; break; case SPACE_AROUND: for (Component child : mChildrenComponents) { ComponentMeasure childMeasure = measure.get(child); + if (childMeasure.getVisibility() == Visibility.GONE) { + continue; + } total += childMeasure.getW(); } - horizontalGap = (selfWidth - total) / (mChildrenComponents.size()); + horizontalGap = (selfWidth - total) / visibleChildrens; tx = horizontalGap / 2f; break; } @@ -215,6 +291,9 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation } childMeasure.setX(tx); childMeasure.setY(ty); + if (childMeasure.getVisibility() == Visibility.GONE) { + continue; + } tx += childMeasure.getW(); if (mHorizontalPositioning == SPACE_BETWEEN || mHorizontalPositioning == SPACE_AROUND @@ -234,8 +313,13 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation return Operations.LAYOUT_ROW; } - public static void apply(WireBuffer buffer, int componentId, int animationId, - int horizontalPositioning, int verticalPositioning, float 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); @@ -250,15 +334,22 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation int horizontalPositioning = buffer.readInt(); int verticalPositioning = buffer.readInt(); float spacedBy = buffer.readFloat(); - operations.add(new RowLayout(null, componentId, animationId, - horizontalPositioning, verticalPositioning, spacedBy)); + operations.add( + new RowLayout( + null, + componentId, + animationId, + horizontalPositioning, + verticalPositioning, + spacedBy)); } 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.") + .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") @@ -267,8 +358,10 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation .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, + "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) @@ -285,7 +378,12 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation @Override public void write(WireBuffer buffer) { - apply(buffer, mComponentId, mAnimationId, - mHorizontalPositioning, mVerticalPositioning, mSpacedBy); + apply( + buffer, + mComponentId, + mAnimationId, + mHorizontalPositioning, + mVerticalPositioning, + mSpacedBy); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/StateLayout.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/StateLayout.java new file mode 100644 index 0000000000000000000000000000000000000000..b5c728135f76b9834e6431a0c5f9b2a32f1b3339 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/StateLayout.java @@ -0,0 +1,565 @@ +/* + * 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 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.operations.layout.Component; +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.measure.ComponentMeasure; +import com.android.internal.widget.remotecompose.core.operations.layout.measure.MeasurePass; +import com.android.internal.widget.remotecompose.core.operations.layout.measure.Size; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * State-based animated layout + * + *

    States are defined as child layouts. This layout handles interpolating between the different + * state in order to provide an automatic transition. + */ +public class StateLayout extends LayoutManager implements ComponentStartOperation { + + public int measuredLayoutIndex = 0; + public int currentLayoutIndex = 0; + public int previousLayoutIndex = 0; + private int mIndexId = 0; + + // This keep track of all the components associated with a given Id, + // (the key being the id), and the set of components corresponds to the set of states + // TODO: we should be able to optimize this + public Map statePaintedComponents = new HashMap<>(); + + public int MAX_CACHE_ELEMENTS = 16; + public int[] cacheListElementsId = new int[MAX_CACHE_ELEMENTS]; + + public boolean inTransition = false; + + public StateLayout( + Component parent, + int componentId, + int animationId, + float x, + float y, + float width, + float height, + int indexId) { + super(parent, componentId, animationId, x, y, width, height); + // if (layoutInfo.visibleLayoutIndex != null) { + // layoutInfo.visibleLayoutIndex!!.addChangeListener(this) + // } + mIndexId = indexId; + } + + @Override + public void inflate() { + super.inflate(); + hideLayoutsOtherThan(currentLayoutIndex); + } + + public void findAnimatedComponents() { + for (int i = 0; i < mChildrenComponents.size(); i++) { + Component cs = mChildrenComponents.get(i); + if (cs instanceof LayoutComponent) { + LayoutComponent state = (LayoutComponent) cs; + state.setX(0f); + state.setY(0f); + ArrayList childrenComponents = state.getChildrenComponents(); + for (int j = 0; j < childrenComponents.size(); j++) { + Component child = childrenComponents.get(j); + if (child.getAnimationId() != -1) { + if (!statePaintedComponents.containsKey(child.getAnimationId())) { + statePaintedComponents.put( + child.getAnimationId(), + new Component[mChildrenComponents.size()]); + } + statePaintedComponents.get(child.getAnimationId())[i] = child; + } + } + } + } + collapsePaintedComponents(); + } + + public void collapsePaintedComponents() { + int numStates = mChildrenComponents.size(); + for (Integer id : statePaintedComponents.keySet()) { + Component[] list = statePaintedComponents.get(id); + int numComponents = list.length; + if (numComponents > 1 && list[0] != null) { + Component c1 = list[0]; + boolean same = true; + for (int i = 1; i < list.length; i++) { + Component c2 = list[i]; + if (c2 == null || !c1.suitableForTransition(c2)) { + same = false; + break; + } + } + if (same) { + // TODO: Fix, shouldn't want to recopy all components + for (int i = 0; i < numStates; i++) { + list[i] = c1; + } + } + } + } + } + + @Override + public void computeSize( + PaintContext context, + float minWidth, + float maxWidth, + float minHeight, + float maxHeight, + MeasurePass measure) { + LayoutManager layout = getLayout(currentLayoutIndex); + layout.computeSize(context, minWidth, maxWidth, minHeight, maxHeight, measure); + } + + @Override + public void internalLayoutMeasure( + PaintContext context, + // layoutInfo: LayoutInfo, + MeasurePass measure) { + LayoutManager layout = getLayout(currentLayoutIndex); + // layout.internalLayoutMeasure(context, layoutInfo, measure) + layout.internalLayoutMeasure(context, measure); + } + + /** Subclasses can implement this to provide wrap sizing */ + @Override + public void computeWrapSize( + PaintContext context, float maxWidth, float maxHeight, MeasurePass measure, Size size) { + LayoutManager layout = getLayout(currentLayoutIndex); + layout.computeWrapSize(context, maxWidth, maxHeight, measure, size); + } + + @Override + public void onClick(RemoteContext context, CoreDocument document, float x, float y) { + if (!contains(x, y)) { + return; + } + LayoutManager layout = getLayout(currentLayoutIndex); + layout.onClick(context, document, x, y); + } + + @Override + public void layout(RemoteContext context, MeasurePass measure) { + ComponentMeasure self = measure.get(this); + super.selfLayout(context, measure); + + // We can simply layout the current layout... + LayoutManager layout = getLayout(currentLayoutIndex); + + // Pass through the measure information from the state layout to the currently + // selected component that this being laid out. + ComponentMeasure layoutMeasure = measure.get(layout.getComponentId()); + layoutMeasure.copyFrom(self); + + layout.layout(context, measure); + + // but if we are in a transition, we might have to layout previous widgets + if (inTransition && previousLayoutIndex != currentLayoutIndex) { + LayoutManager previous = getLayout(previousLayoutIndex); + for (Component c : previous.getChildrenComponents()) { + int id = c.getComponentId(); + if (c.getAnimationId() != -1) { + id = c.getAnimationId(); + Component[] rc = statePaintedComponents.get(id); + for (Component ac : rc) { + if (ac != null) { + ac.layout(context, measure); + } + } + } + if (measure.contains(id)) { + c.layout(context, measure); + } + } + } + + mFirstLayout = false; + } + + @Override + public void measure( + PaintContext context, + float minWidth, + float maxWidth, + float minHeight, + float maxHeight, + MeasurePass measure) { + // The general approach for this widget is to do most of the work/setup in measure. + // layout and paint then simply use what's been setup in the measure phase. + + // First, let's initialize the statePaintedComponents array; + // it contains for each animation id a set of components associated, one for each state. + // For now to keep things simple, all components sets have the same size (== number of + // states) + if (statePaintedComponents.isEmpty()) { + findAnimatedComponents(); + } + + // TODO : FIRST LAYOUT ANIMATE THE GONE ELEMENT, RESIZING IT. We should be able to fix it + // if we resize things before animting. + + LayoutManager layout = getLayout(currentLayoutIndex); + + // ok so *before* we do the layout, we should make sure to set the *new* widgets (that + // share the same id) to be at the same bounds / position as the current displayed ones + if (inTransition && currentLayoutIndex != previousLayoutIndex) { + LayoutManager previousLayout = getLayout(previousLayoutIndex); + for (Component c : layout.getChildrenComponents()) { + int id = c.getAnimationId(); + if (id == -1) { + continue; + } + for (Component pc : previousLayout.getChildrenComponents()) { + if (pc.getAnimationId() == id) { + Component prev = + statePaintedComponents.get(c.getAnimationId())[previousLayoutIndex]; + if (c != prev) { + c.measure( + context, + prev.getWidth(), + prev.getWidth(), + prev.getHeight(), + prev.getHeight(), + measure); + c.layout(context.getContext(), measure); + c.setX(prev.getX()); + c.setY(prev.getY()); + c.mVisibility = Visibility.GONE; + } + break; + } + } + } + } + + // Alright, now that things are set in place, let's go ahead and measure the new world... + layout.measure(context, minWidth, maxWidth, minHeight, maxHeight, measure); + + // recopy to animationIds the values + for (Component c : layout.getChildrenComponents()) { + ComponentMeasure cm = measure.get(c); + if (c.getAnimationId() != -1) { + // First, we grab the current component for an animation id, and get its measure, + // then set this measure to the measure for the animation id + ComponentMeasure m = measure.get(c.getAnimationId()); + m.copyFrom(cm); + + m.setVisibility(Visibility.VISIBLE); + + // Then for each components sharing the id in all the states... + Component[] components = statePaintedComponents.get(c.getAnimationId()); + for (int idx = 0; idx < components.length; idx++) { + Component ac = components[idx]; + if (ac != null) { + ComponentMeasure m2 = measure.get(ac.getComponentId()); + + // ... we set their measures to be the measure of the current component + if (c != ac) { + m2.copyFrom(cm); + } + + // Finally let's make sure that for all components we set their visibility + if (idx == currentLayoutIndex) { + m2.setVisibility(Visibility.VISIBLE); + } else { + if (c != ac) { + m2.setVisibility(Visibility.GONE); + } + } + + // if the component isn't the current one, we should measure it + if (c != ac) { + ac.measure(context, m.getW(), m.getW(), m.getH(), m.getH(), measure); + } + } + } + } else { + // TODO: Ideally unify the visibility handing so that we also work in terms of + // component and not panel visibility. Ideally do not change the .visibility + // attribute at all and actually use the "current index" to decide whether to + // draw or not. + cm.setVisibility(Visibility.VISIBLE); + } + } + + // Make sure to mark the components that are not in the new layout as being GONE + if (previousLayoutIndex != currentLayoutIndex) { + LayoutManager previousLayout = getLayout(previousLayoutIndex); + for (Component c : previousLayout.getChildrenComponents()) { + int id = c.getComponentId(); + if (c.getAnimationId() != -1) { + id = c.getAnimationId(); + } + if (!measure.contains(id)) { + ComponentMeasure m = measure.get(c.getComponentId()); + m.setX(c.getX()); + m.setY(c.getY()); + m.setW(c.getWidth()); + m.setH(c.getHeight()); + m.setVisibility(Visibility.GONE); + } + } + } + + ComponentMeasure m = measure.get(layout); + ComponentMeasure own = measure.get(this); + own.copyFrom(m); + measuredLayoutIndex = currentLayoutIndex; + } + + public void hideLayoutsOtherThan(int idx) { + int index = 0; + for (Component pane : mChildrenComponents) { + if (pane instanceof LayoutComponent) { + if (index != idx) { + pane.mVisibility = Visibility.GONE; + } else { + pane.mVisibility = Visibility.VISIBLE; + } + index++; + } + } + } + + public LayoutManager getLayout(int idx) { + int index = 0; + for (Component pane : mChildrenComponents) { + if (pane instanceof LayoutComponent) { + if (index == idx) { + return (LayoutManager) pane; + } + index++; + } + } + return (LayoutManager) mChildrenComponents.get(0); + } + + @Override + public void paint(PaintContext context) { + if (mIndexId != 0) { + int newValue = context.getContext().mRemoteComposeState.getInteger(mIndexId); + if (newValue != currentLayoutIndex) { + previousLayoutIndex = currentLayoutIndex; + currentLayoutIndex = newValue; + inTransition = true; + System.out.println("currentLayout index is $currentLayoutIndex"); + // executeValueSetActions(getLayout(currentLayoutIndex)); + invalidateMeasure(); + } + } + System.out.println("PAINTING LAYOUT STATELAYOUT, CURRENT INDEX " + currentLayoutIndex); + // Make sure to mark any components that are not in either the current or previous layout + // as being GONE. + int index = 0; + for (Component pane : mChildrenComponents) { + if (pane instanceof LayoutComponent) { + if (index != currentLayoutIndex && index != previousLayoutIndex) { + pane.mVisibility = Visibility.GONE; + } + if (index == currentLayoutIndex && pane.mVisibility != Visibility.VISIBLE) { + pane.mVisibility = Visibility.VISIBLE; + } + index++; + } + } + + LayoutManager currentLayout = getLayout(measuredLayoutIndex); + boolean needsToPaintTransition = inTransition && previousLayoutIndex != measuredLayoutIndex; + if (needsToPaintTransition) { + // in case we have switched to a new state, during the transition + // we might still need to display the previous components that are not part of + // the new state (to enable them to run their exit animation) + + LayoutManager previousLayout = getLayout(previousLayoutIndex); + int numPreviousComponents = previousLayout.getChildrenComponents().size(); + if (numPreviousComponents > MAX_CACHE_ELEMENTS) { + MAX_CACHE_ELEMENTS *= 2; + cacheListElementsId = new int[MAX_CACHE_ELEMENTS]; + } + // Make sure to apply the animation if there... + previousLayout.applyAnimationAsNeeded(context); + + // Let's grab all the ids for the components of the previous layout... + int idIndex = 0; + for (Component c : previousLayout.getChildrenComponents()) { + cacheListElementsId[idIndex] = c.getPaintId(); + idIndex++; + } + // ...then remove them if they are in the new layout + int count = idIndex; + for (Component c : currentLayout.getChildrenComponents()) { + int id = c.getPaintId(); + for (int i = 0; i < idIndex; i++) { + if (cacheListElementsId[i] == id) { + cacheListElementsId[i] = -1; + count--; + } + } + } + // If we have components not present in the new state, paint them + if (count > 0) { + context.save(); + context.translate(previousLayout.getX(), previousLayout.getY()); + for (Component c : previousLayout.getChildrenComponents()) { + int id = c.getPaintId(); + for (int i = 0; i < idIndex; i++) { + if (cacheListElementsId[i] == id) { + context.translate( + previousLayout.getMarginLeft(), previousLayout.getMarginTop()); + c.paint(context); + context.translate( + -currentLayout.getMarginLeft(), -currentLayout.getMarginTop()); + break; + } + } + } + context.restore(); + } + + // Make sure to apply the animation if there... + currentLayout.applyAnimationAsNeeded(context); + } + + // We paint all the components and operations of the current layout + context.save(); + context.translate(currentLayout.getX(), currentLayout.getY()); + for (Operation op : currentLayout.getList()) { + if (op instanceof Component && ((Component) op).getAnimationId() != -1) { + Component[] stateComponents = + statePaintedComponents.get(((Component) op).getAnimationId()); + Component component = stateComponents[measuredLayoutIndex]; + if (needsToPaintTransition) { + // We might have two components to paint, as in case two different + // components share the same id, we'll fade the previous components out + // and fade in the new one + Component previousComponent = stateComponents[previousLayoutIndex]; + if (previousComponent != null && component != previousComponent) { + context.translate( + currentLayout.getMarginLeft(), currentLayout.getMarginTop()); + previousComponent.paint(context); + context.translate( + -currentLayout.getMarginLeft(), -currentLayout.getMarginTop()); + } + } + context.translate(currentLayout.getMarginLeft(), currentLayout.getMarginTop()); + component.paint(context); + context.translate(-currentLayout.getMarginLeft(), -currentLayout.getMarginTop()); + } else if (op instanceof PaintOperation) { + ((PaintOperation) op).paint(context); + } + } + context.restore(); + + if (needsToPaintTransition) { + checkEndOfTransition(); + } + } + + public void checkEndOfTransition() { + LayoutManager currentLayout = getLayout(measuredLayoutIndex); + LayoutManager previousLayout = getLayout(previousLayoutIndex); + if (inTransition + && currentLayout.mAnimateMeasure == null + && previousLayout.mAnimateMeasure == null) { + inTransition = false; + LayoutManager previous = getLayout(previousLayoutIndex); + if (previous != currentLayout && previous.mVisibility != Visibility.GONE) { + previous.mVisibility = Visibility.GONE; + previous.needsRepaint(); + } + } + } + + // override fun onValueChanged(origamiValue: OrigamiValue, oldValue: Int?, newValue: + // Int) { + // if (newValue != currentLayoutIndex) { + // previousLayoutIndex = currentLayoutIndex + // currentLayoutIndex = newValue + // inTransition = true + // println("currentLayout index is $currentLayoutIndex") + // executeValueSetActions(getLayout(currentLayoutIndex)) + // invalidateMeasure() + // } + // } + + // fun executeValueSetActions(layout: LayoutManager) { + // // FIXME : quick hack to support ValueSetClickActions, need to make that a little more + // // robust! + // for (op in layout.list) { + // if (op is LayoutComponent) { + // for (op2 in op.list) { + // if (op2 is OperationsList) { + // for (op3 in op2.list) { + // if (op3 is ValueSetClickAction<*, *>) { + // op3.onClick() + // } + // } + // } + // } + // } + // } + // } + + @Override + public String toString() { + return "STATE_LAYOUT"; + } + + // companion object { + // fun documentation(doc: OrigamiDocumentation) {} + // } + + public static void apply( + WireBuffer buffer, + int componentId, + int animationId, + int horizontalPositioning, + int verticalPositioning, + int indexId) { + buffer.start(Operations.LAYOUT_STATE); + buffer.writeInt(componentId); + buffer.writeInt(animationId); + buffer.writeInt(horizontalPositioning); + buffer.writeInt(verticalPositioning); + buffer.writeInt(indexId); + } + + public static void read(WireBuffer buffer, List operations) { + int componentId = buffer.readInt(); + int animationId = buffer.readInt(); + buffer.readInt(); // horizontalPositioning + buffer.readInt(); // verticalPositioning + int indexId = buffer.readInt(); + operations.add( + new StateLayout(null, componentId, animationId, 0f, 0f, 100f, 100f, indexId)); + } +} 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 index 23705003179c2e6bf29e3bd2e3a9fa7e3a682798..c1cabcd09c395dfea3d5634a72ac141a1fd95ee7 100644 --- 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 @@ -15,8 +15,8 @@ */ 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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -34,9 +34,7 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.Strin import java.util.List; -/** - * Text component, referencing a text id - */ +/** Text component, referencing a text id */ public class TextLayout extends LayoutManager implements ComponentStartOperation, VariableSupport { private static final boolean DEBUG = false; @@ -86,10 +84,20 @@ public class TextLayout extends LayoutManager implements ComponentStartOperation 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) { + 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; @@ -99,11 +107,30 @@ public class TextLayout extends LayoutManager implements ComponentStartOperation 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 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(); @@ -151,26 +178,57 @@ public class TextLayout extends LayoutManager implements ComponentStartOperation @Override public String toString() { - return "TEXT_LAYOUT [" + mComponentId + ":" + mAnimationId + "] (" + mX + ", " - + mY + " - " + mWidth + " x " + mHeight + ") " + mVisibility; + return "TEXT_LAYOUT [" + + mComponentId + + ":" + + mAnimationId + + "] (" + + mX + + ", " + + mY + + " - " + + mWidth + + " x " + + mHeight + + ") " + + mVisibility; } + @Override 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 + "\")" - ); + 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) { + public void computeWrapSize( + PaintContext context, float maxWidth, float maxHeight, MeasurePass measure, Size size) { context.savePaint(); mPaint.reset(); mPaint.setTextSize(mFontSize); @@ -196,9 +254,16 @@ public class TextLayout extends LayoutManager implements ComponentStartOperation 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) { + 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); @@ -219,16 +284,27 @@ public class TextLayout extends LayoutManager implements ComponentStartOperation 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)); + 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, + "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)") @@ -238,8 +314,15 @@ public class TextLayout extends LayoutManager implements ComponentStartOperation @Override public void write(WireBuffer buffer) { - apply(buffer, mComponentId, mAnimationId, - mTextId, mColor, mFontSize, mFontStyle, - mFontWeight, mFontFamilyId); + apply( + buffer, + mComponentId, + mAnimationId, + mTextId, + mColor, + mFontSize, + mFontStyle, + mFontWeight, + mFontFamilyId); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/measure/ComponentMeasure.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/measure/ComponentMeasure.java index 8dc10d5b01598a9ecbf8fcf7755d7d3f286e3528..285425f99765bddc0dd96d16b37ab887fb768aef 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/measure/ComponentMeasure.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/measure/ComponentMeasure.java @@ -13,13 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.android.internal.widget.remotecompose.core.operations.layout.measure; + import com.android.internal.widget.remotecompose.core.operations.layout.Component; -/** - * Encapsulate the result of a measure pass for a component - */ +/** Encapsulate the result of a measure pass for a component */ public class ComponentMeasure { int mId = -1; float mX; @@ -31,24 +29,31 @@ public class ComponentMeasure { public void setX(float value) { mX = value; } + public void setY(float value) { mY = value; } + public void setW(float value) { mW = value; } + public void setH(float value) { mH = value; } + public float getX() { return mX; } + public float getY() { return mY; } + public float getW() { return mW; } + public float getH() { return mH; } @@ -61,8 +66,8 @@ public class ComponentMeasure { mVisibility = visibility; } - public ComponentMeasure(int id, float x, float y, float w, float h, - Component.Visibility visibility) { + public ComponentMeasure( + int id, float x, float y, float w, float h, Component.Visibility visibility) { this.mId = id; this.mX = x; this.mY = y; @@ -76,8 +81,12 @@ public class ComponentMeasure { } public ComponentMeasure(Component component) { - this(component.getComponentId(), component.getX(), component.getY(), - component.getWidth(), component.getHeight(), + this( + component.getComponentId(), + component.getX(), + component.getY(), + component.getWidth(), + component.getHeight(), component.mVisibility); } @@ -88,4 +97,8 @@ public class ComponentMeasure { mH = m.mH; mVisibility = m.mVisibility; } + + public boolean same(ComponentMeasure m) { + return mX == m.mX && mY == m.mY && mW == m.mW && mH == m.mH && mVisibility == m.mVisibility; + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/measure/Measurable.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/measure/Measurable.java index d167d9bf45cb28825046306aba0da94aa466f149..b48c2d5ae88b868d0cab41936252816a9d6a6bdc 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/measure/Measurable.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/measure/Measurable.java @@ -13,33 +13,33 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.android.internal.widget.remotecompose.core.operations.layout.measure; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.RemoteContext; -/** - * Interface describing the measure/layout contract for components - */ +/** Interface describing the measure/layout contract for components */ public interface Measurable { /** - * Measure a component and store the result of the measure in the provided MeasurePass. - * This does not apply the measure to the component. + * Measure a component and store the result of the measure in the provided MeasurePass. This + * does not apply the measure to the component. */ - void measure(PaintContext context, float minWidth, float maxWidth, - float minHeight, float maxHeight, MeasurePass measure); + void measure( + PaintContext context, + float minWidth, + float maxWidth, + float minHeight, + float maxHeight, + MeasurePass measure); - /** - * Apply a given measure to the component - */ + /** Apply a given measure to the component */ void layout(RemoteContext context, MeasurePass measure); /** * Return true if the component needs to be remeasured + * * @return true if need to remeasured, false otherwise */ boolean needsMeasure(); - } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/measure/MeasurePass.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/measure/MeasurePass.java index 6801debb9c2859779873d61e05432d06eabe8b65..8d01fea03690fd537c83ece0a1752aca94082198 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/measure/MeasurePass.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/measure/MeasurePass.java @@ -20,8 +20,8 @@ import com.android.internal.widget.remotecompose.core.operations.layout.Componen import java.util.HashMap; /** - * Represents the result of a measure pass on the entire hierarchy - * TODO: optimize to use a flat array vs the current hashmap + * Represents the result of a measure pass on the entire hierarchy TODO: optimize to use a flat + * array vs the current hashmap */ public class MeasurePass { HashMap mList = new HashMap<>(); @@ -43,8 +43,9 @@ public class MeasurePass { public ComponentMeasure get(Component c) { if (!mList.containsKey(c.getComponentId())) { - ComponentMeasure measure = new ComponentMeasure(c.getComponentId(), - c.getX(), c.getY(), c.getWidth(), c.getHeight()); + ComponentMeasure measure = + new ComponentMeasure( + c.getComponentId(), c.getX(), c.getY(), c.getWidth(), c.getHeight()); mList.put(c.getComponentId(), measure); return measure; } @@ -53,8 +54,8 @@ public class MeasurePass { public ComponentMeasure get(int id) { if (!mList.containsKey(id)) { - ComponentMeasure measure = new ComponentMeasure(id, - 0f, 0f, 0f, 0f, Component.Visibility.GONE); + ComponentMeasure measure = + new ComponentMeasure(id, 0f, 0f, 0f, 0f, Component.Visibility.GONE); mList.put(id, measure); return measure; } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/measure/Size.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/measure/Size.java index b11d8e82e7d1953d846cb60de0ab63670ae7b40e..53f4a71ccd6edbaed738892f72efb3f6b67eff07 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/measure/Size.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/measure/Size.java @@ -15,12 +15,11 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.measure; -/** - * Basic data class representing a component size, used during layout computations. - */ +/** Basic data class representing a component size, used during layout computations. */ public class Size { float mWidth; float mHeight; + public Size(float width, float height) { this.mWidth = width; this.mHeight = height; 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 f3e6a8e0aa2202a64b74dbb9f3bb30d030d58fab..64e40f7c591c79e831778b64ba519397d3810b88 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,7 +15,7 @@ */ 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.DocumentedOperation.FLOAT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -28,9 +28,7 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.Strin import java.util.List; -/** - * Component size-aware background draw - */ +/** Component size-aware background draw */ public class BackgroundModifierOperation extends DecoratorModifierOperation { private static final int OP_CODE = Operations.MODIFIER_BACKGROUND; private static final String CLASS_NAME = "BackgroundModifierOperation"; @@ -46,9 +44,16 @@ public class BackgroundModifierOperation extends DecoratorModifierOperation { public PaintBundle mPaint = new PaintBundle(); - public BackgroundModifierOperation(float x, float y, float width, float height, - float r, float g, float b, float a, - int shapeType) { + public BackgroundModifierOperation( + float x, + float y, + float width, + float height, + float r, + float g, + float b, + float a, + int shapeType) { this.mX = x; this.mY = y; this.mWidth = width; @@ -67,10 +72,27 @@ public class BackgroundModifierOperation extends DecoratorModifierOperation { @Override public void serializeToString(int indent, StringSerializer serializer) { - serializer.append(indent, "BACKGROUND = [" + mX + ", " - + mY + ", " + mWidth + ", " + mHeight - + "] color [" + mR + ", " + mG + ", " + mB + ", " + mA - + "] shape [" + mShapeType + "]"); + serializer.append( + indent, + "BACKGROUND = [" + + mX + + ", " + + mY + + ", " + + mWidth + + ", " + + mHeight + + "] color [" + + mR + + ", " + + mG + + ", " + + mB + + ", " + + mA + + "] shape [" + + mShapeType + + "]"); } @Override @@ -92,8 +114,17 @@ public class BackgroundModifierOperation extends DecoratorModifierOperation { return OP_CODE; } - public static void apply(WireBuffer buffer, float x, float y, float width, float height, - float r, float g, float b, float a, int 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); @@ -118,11 +149,9 @@ public class BackgroundModifierOperation extends DecoratorModifierOperation { float a = buffer.readFloat(); // shape type int shapeType = buffer.readInt(); - operations.add(new BackgroundModifierOperation(x, y, width, height, - r, g, b, a, shapeType)); + operations.add(new BackgroundModifierOperation(x, y, width, height, r, g, b, a, shapeType)); } - @Override public void paint(PaintContext context) { context.savePaint(); @@ -133,16 +162,13 @@ public class BackgroundModifierOperation extends DecoratorModifierOperation { if (mShapeType == ShapeType.RECTANGLE) { context.drawRect(0f, 0f, mWidth, mHeight); } else if (mShapeType == ShapeType.CIRCLE) { - context.drawCircle(mWidth / 2f, mHeight / 2f, - Math.min(mWidth, mHeight) / 2f); + context.drawCircle(mWidth / 2f, mHeight / 2f, Math.min(mWidth, mHeight) / 2f); } context.restorePaint(); } public static void documentation(DocumentationBuilder doc) { - doc.operation("Modifier Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Modifier Operations", OP_CODE, CLASS_NAME) .description("define the Background Modifier") .field(FLOAT, "x", "") .field(FLOAT, "y", "") 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 4c83ec4e627e2c70b48fd3a98f0d44c87a821522..92c0a733d8a1d04ce41ddd216eb291d047fbd5aa 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,7 +15,7 @@ */ 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.DocumentedOperation.FLOAT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -28,9 +28,7 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.Strin import java.util.List; -/** - * Component size-aware border draw - */ +/** Component size-aware border draw */ public class BorderModifierOperation extends DecoratorModifierOperation { private static final int OP_CODE = Operations.MODIFIER_BORDER; public static final String CLASS_NAME = "BorderModifierOperation"; @@ -49,9 +47,18 @@ public class BorderModifierOperation extends DecoratorModifierOperation { public PaintBundle paint = new PaintBundle(); - public BorderModifierOperation(float x, float y, float width, float height, - float borderWidth, float roundedCorner, - float r, float g, float b, float a, int shapeType) { + public BorderModifierOperation( + float x, + float y, + float width, + float height, + float borderWidth, + float roundedCorner, + float r, + float g, + float b, + float a, + int shapeType) { this.mX = x; this.mY = y; this.mWidth = width; @@ -67,17 +74,51 @@ public class BorderModifierOperation extends DecoratorModifierOperation { @Override public void serializeToString(int indent, StringSerializer serializer) { - serializer.append(indent, "BORDER = [" + mX + ", " + mY + ", " - + mWidth + ", " + mHeight + "] " - + "color [" + mR + ", " + mG + ", " + mB + ", " + mA + "] " - + "border [" + mBorderWidth + ", " + mRoundedCorner + "] " - + "shape [" + mShapeType + "]"); + serializer.append( + indent, + "BORDER = [" + + mX + + ", " + + mY + + ", " + + mWidth + + ", " + + mHeight + + "] " + + "color [" + + mR + + ", " + + mG + + ", " + + mB + + ", " + + mA + + "] " + + "border [" + + mBorderWidth + + ", " + + mRoundedCorner + + "] " + + "shape [" + + mShapeType + + "]"); } @Override public void write(WireBuffer buffer) { - apply(buffer, mX, mY, mWidth, mHeight, mBorderWidth, mRoundedCorner, - mR, mG, mB, mA, mShapeType); + apply( + buffer, + mX, + mY, + mWidth, + mHeight, + mBorderWidth, + mRoundedCorner, + mR, + mG, + mB, + mA, + mShapeType); } @Override @@ -88,12 +129,29 @@ public class BorderModifierOperation extends DecoratorModifierOperation { @Override public String toString() { - return "BorderModifierOperation(" + mX + "," + mY + " - " + mWidth + " x " + mHeight + ") " - + "borderWidth(" + mBorderWidth + ") " - + "color(" + mR + "," + mG + "," + mB + "," + mA + ")"; + return "BorderModifierOperation(" + + mX + + "," + + mY + + " - " + + mWidth + + " x " + + mHeight + + ") " + + "borderWidth(" + + mBorderWidth + + ") " + + "color(" + + mR + + "," + + mG + + "," + + mB + + "," + + mA + + ")"; } - public static String name() { return CLASS_NAME; } @@ -102,10 +160,19 @@ public class BorderModifierOperation extends DecoratorModifierOperation { return OP_CODE; } - 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) { + 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); @@ -134,11 +201,10 @@ public class BorderModifierOperation extends DecoratorModifierOperation { 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)); + operations.add( + new BorderModifierOperation(x, y, width, height, bw, rc, r, g, b, a, shapeType)); } - @Override public void paint(PaintContext context) { context.savePaint(); @@ -160,9 +226,7 @@ public class BorderModifierOperation extends DecoratorModifierOperation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Modifier Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Modifier Operations", OP_CODE, CLASS_NAME) .description("define the Border Modifier") .field(FLOAT, "x", "") .field(FLOAT, "y", "") 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 7cb7925692ab37f491572c04c7e9101065ec02d7..0d8aeaa2f06a76060e785d0b9abb3fc2f9854940 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 @@ -27,9 +27,7 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.Strin import java.util.List; -/** - * Support modifier clip with a rectangle - */ +/** Support modifier clip with a rectangle */ public class ClipRectModifierOperation extends DecoratorModifierOperation { public static final String CLASS_NAME = "ClipRectModifierOperation"; private static final int OP_CODE = Operations.MODIFIER_CLIP_RECT; @@ -48,15 +46,14 @@ public class ClipRectModifierOperation extends DecoratorModifierOperation { } @Override - public void onClick(RemoteContext context, CoreDocument document, - Component component, 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, "CLIP_RECT = [" + mWidth + ", " + mHeight + "]"); + serializer.append(indent, "CLIP_RECT = [" + mWidth + ", " + mHeight + "]"); } @Override @@ -68,7 +65,6 @@ public class ClipRectModifierOperation extends DecoratorModifierOperation { return CLASS_NAME; } - public static int id() { return OP_CODE; } @@ -77,16 +73,12 @@ public class ClipRectModifierOperation extends DecoratorModifierOperation { buffer.start(OP_CODE); } - public static void read(WireBuffer buffer, List operations) { operations.add(new ClipRectModifierOperation()); } - public static void documentation(DocumentationBuilder doc) { - doc.operation("Canvas Operations", - OP_CODE, - CLASS_NAME) + 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 f55c9412600126767039a9432129280f9a3b65ce..95786a8b62b0dabe9d432f04dedb0ee7de0c6323 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 @@ -29,9 +29,7 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.Strin import java.util.ArrayList; -/** - * Maintain a list of modifiers - */ +/** Maintain a list of modifiers */ public class ComponentModifiers extends PaintOperation implements DecoratorComponent { ArrayList mList = new ArrayList<>(); @@ -49,7 +47,7 @@ public class ComponentModifiers extends PaintOperation implements DecoratorCompo @Override public String toString() { - String str = "ComponentModifiers \n"; + String str = "ComponentModifiers \n"; for (ModifierOperation modifierOperation : mList) { str += " " + modifierOperation.toString() + "\n"; } @@ -125,8 +123,9 @@ public class ComponentModifiers extends PaintOperation implements DecoratorCompo mList.addAll(operations); } - public void onClick(RemoteContext context, CoreDocument document, - Component component, float x, float y) { + @Override + public void onClick( + RemoteContext context, CoreDocument document, Component component, float x, float y) { for (ModifierOperation op : mList) { if (op instanceof DecoratorComponent) { ((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 index 9c190730706a1513e1bc877a3daf527781673f6b..312d016029fb7b1279d0d525e157a7a9f5fe2f09 100644 --- 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 @@ -15,7 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; -import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.CoreDocument; import com.android.internal.widget.remotecompose.core.Operation; @@ -31,11 +31,9 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.Strin import java.util.List; -/** - * Allows setting visibility on a component - */ -public class ComponentVisibilityOperation implements ModifierOperation, - VariableSupport, DecoratorComponent { +/** Allows setting visibility on a component */ +public class ComponentVisibilityOperation + implements ModifierOperation, VariableSupport, DecoratorComponent { private static final int OP_CODE = Operations.MODIFIER_VISIBILITY; int mVisibilityId; @@ -61,19 +59,15 @@ public class ComponentVisibilityOperation implements ModifierOperation, } @Override - public void apply(RemoteContext context) { - } + public void apply(RemoteContext context) {} @Override public String deepToString(String indent) { return (indent != null ? indent : "") + toString(); } - @Override - public void write(WireBuffer buffer) { - - } + public void write(WireBuffer buffer) {} public static void apply(WireBuffer buffer, int valueId) { buffer.start(OP_CODE); @@ -87,8 +81,9 @@ public class ComponentVisibilityOperation implements ModifierOperation, 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") + .description( + "This operation allows setting a component" + + "visibility from a provided value") .field(INT, "VALUE_ID", "Value ID representing the visibility"); } @@ -119,13 +114,9 @@ public class ComponentVisibilityOperation implements ModifierOperation, } @Override - public void layout(RemoteContext context, float width, float height) { - - } + public void layout(RemoteContext context, float width, float height) {} @Override - public void onClick(RemoteContext context, CoreDocument document, - Component component, float x, float y) { - - } + 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 70a572845c23746e2d43d850cc2d3e02470a53b4..41e18cbafbe6094162d88b06e09b27f79bb1e180 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 @@ -22,15 +22,15 @@ import com.android.internal.widget.remotecompose.core.operations.layout.Componen import com.android.internal.widget.remotecompose.core.operations.layout.DecoratorComponent; /** - * Represents a decorator modifier (lightweight component), ie a modifier - * that impacts the visual output (background, border...) + * Represents a decorator modifier (lightweight component), ie a modifier that impacts the visual + * output (background, border...) */ public abstract class DecoratorModifierOperation extends PaintOperation implements ModifierOperation, DecoratorComponent { @Override - public void onClick(RemoteContext context, CoreDocument document, - Component component, 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 f085ffb6c73b63724e6748ef76f49d25d1511898..408bebcfb7d9394bdf832dcba68616c055f301af 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 @@ -20,13 +20,16 @@ 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; -/** - * Base class for dimension modifiers - */ +/** Base class for dimension modifiers */ public abstract class DimensionModifierOperation implements ModifierOperation, VariableSupport { public enum Type { - EXACT, FILL, WRAP, WEIGHT, INTRINSIC_MIN, INTRINSIC_MAX; + EXACT, + FILL, + WRAP, + WEIGHT, + INTRINSIC_MIN, + INTRINSIC_MAX; static Type fromInt(int value) { switch (value) { @@ -67,10 +70,8 @@ public abstract class DimensionModifierOperation implements ModifierOperation, V @Override public void updateVariables(RemoteContext context) { if (mType == Type.EXACT) { - mOutValue = (Float.isNaN(mValue)) - ? context.getFloat(Utils.idFromNan(mValue)) : mValue; + mOutValue = Float.isNaN(mValue) ? context.getFloat(Utils.idFromNan(mValue)) : mValue; } - } @Override @@ -80,10 +81,8 @@ public abstract class DimensionModifierOperation implements ModifierOperation, V context.listensTo(Utils.idFromNan(mValue), this); } } - } - public boolean hasWeight() { return mType == Type.WEIGHT; } @@ -108,7 +107,6 @@ public abstract class DimensionModifierOperation implements ModifierOperation, V mOutValue = mValue = value; } - public String serializedName() { return "DIMENSION"; } @@ -121,8 +119,7 @@ public abstract class DimensionModifierOperation implements ModifierOperation, V } @Override - public void apply(RemoteContext context) { - } + public void apply(RemoteContext context) {} @Override public String deepToString(String indent) { 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 a0f576a412f8894ea244ee939ad7db199be39697..d3613f84498133eccdbbbfbc064fb154ce0f3089 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,8 +15,8 @@ */ 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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -25,9 +25,7 @@ import com.android.internal.widget.remotecompose.core.documentation.Documentatio import java.util.List; -/** - * Set the height dimension on a component - */ +/** 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"; @@ -81,9 +79,7 @@ public class HeightModifierOperation extends DimensionModifierOperation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Modifier Operations", - OP_CODE, - CLASS_NAME) + 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 index d405b2b2a6a7bea4b82f9b64f37fa37d4a886df3..ac42470a6f8f8870acc2d94e4af89dd37afd13c2 100644 --- 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 @@ -15,7 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; -import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.CoreDocument; import com.android.internal.widget.remotecompose.core.Operation; @@ -29,9 +29,7 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.Strin import java.util.List; -/** - * Capture a host action information. This can be triggered on eg. a click. - */ +/** 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; @@ -60,23 +58,19 @@ public class HostActionOperation implements ActionOperation { } @Override - public void apply(RemoteContext context) { - } + public void apply(RemoteContext context) {} @Override public String deepToString(String indent) { return (indent != null ? indent : "") + toString(); } - @Override - public void write(WireBuffer buffer) { - - } + public void write(WireBuffer buffer) {} @Override - public void runAction(RemoteContext context, CoreDocument document, - Component component, float x, float y) { + public void runAction( + RemoteContext context, CoreDocument document, Component component, float x, float y) { context.runAction(mActionId, ""); } @@ -95,5 +89,4 @@ public class HostActionOperation implements ActionOperation { .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 index 35f202bd6ed3eb6b888577e2b1589e57becd3543..b674a582fc14dd66ce30c6f013d13fcec792c7a5 100644 --- 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 @@ -15,7 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; -import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.CoreDocument; import com.android.internal.widget.remotecompose.core.Operation; @@ -29,9 +29,7 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.Strin import java.util.List; -/** - * Capture a host action information. This can be triggered on eg. a click. - */ +/** 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; @@ -56,23 +54,19 @@ public class HostNamedActionOperation implements ActionOperation { } @Override - public void apply(RemoteContext context) { - } + public void apply(RemoteContext context) {} @Override public String deepToString(String indent) { return (indent != null ? indent : "") + toString(); } - @Override - public void write(WireBuffer buffer) { - - } + public void write(WireBuffer buffer) {} @Override - public void runAction(RemoteContext context, CoreDocument document, - Component component, float x, float y) { + public void runAction( + RemoteContext context, CoreDocument document, Component component, float x, float y) { context.runNamedAction(mTextId); } @@ -91,5 +85,4 @@ public class HostNamedActionOperation implements ActionOperation { .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/ModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ModifierOperation.java index 5299719f674fd67064cbb8ff57833f3437a4efa0..50f098e25f6af068cf2a249ea0f5af2983b47dbb 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ModifierOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ModifierOperation.java @@ -18,9 +18,7 @@ package com.android.internal.widget.remotecompose.core.operations.layout.modifie import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; -/** - * Represents a modifier - */ +/** Represents a modifier */ public interface ModifierOperation extends Operation { void serializeToString(int indent, StringSerializer serializer); } 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 668db3b71027216e7e7cdba1c457df0f2f55e7b9..e0ec1a60ef7edd0f7bbd58c2d0f0c06d701704df 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,7 +15,7 @@ */ 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.DocumentedOperation.FLOAT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -27,8 +27,8 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.Strin import java.util.List; /** - * Represents a padding modifier. - * Padding modifiers can be chained and will impact following modifiers. + * Represents a padding modifier. Padding modifiers can be chained and will impact following + * modifiers. */ public class PaddingModifierOperation implements ModifierOperation { private static final int OP_CODE = Operations.MODIFIER_PADDING; @@ -84,13 +84,12 @@ public class PaddingModifierOperation implements ModifierOperation { @Override public void serializeToString(int indent, StringSerializer serializer) { - serializer.append(indent, "PADDING = [" + mLeft + ", " + mTop + ", " - + mRight + ", " + mBottom + "]"); + serializer.append( + indent, "PADDING = [" + mLeft + ", " + mTop + ", " + mRight + ", " + mBottom + "]"); } @Override - public void apply(RemoteContext context) { - } + public void apply(RemoteContext context) {} @Override public String deepToString(String indent) { @@ -99,8 +98,15 @@ public class PaddingModifierOperation implements ModifierOperation { @Override public String toString() { - return "PaddingModifierOperation(" + mLeft + ", " + mTop - + ", " + mRight + ", " + mBottom + ")"; + return "PaddingModifierOperation(" + + mLeft + + ", " + + mTop + + ", " + + mRight + + ", " + + mBottom + + ")"; } public static String name() { @@ -111,8 +117,7 @@ public class PaddingModifierOperation implements ModifierOperation { return Operations.MODIFIER_PADDING; } - public static void apply(WireBuffer buffer, - float left, float top, float right, float bottom) { + 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); @@ -129,9 +134,7 @@ public class PaddingModifierOperation implements ModifierOperation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Modifier Operations", - OP_CODE, - CLASS_NAME) + doc.operation("Modifier Operations", OP_CODE, CLASS_NAME) .description("define the Padding Modifier") .field(FLOAT, "left", "") .field(FLOAT, "top", "") 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 9b662bf5eca79cb476e434c055dd9ac7f0945758..dc95fe7774aa168251dfacdb29ec38479aaea702 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,7 +15,7 @@ */ 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.DocumentedOperation.FLOAT; import com.android.internal.widget.remotecompose.core.CoreDocument; import com.android.internal.widget.remotecompose.core.Operation; @@ -31,9 +31,7 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.Strin import java.util.List; -/** - * Support clip with a rounded 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; @@ -52,44 +50,41 @@ public class RoundedClipRectModifierOperation extends DrawBase4 return CLASS_NAME; } - - protected void write(WireBuffer buffer, - float v1, - float v2, - float v3, - float v4) { + @Override + 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") + doc.operation("Modifier Operations", id(), "RoundedClipRectModifierOperation") .description("clip with rectangle") - .field(FLOAT, "topStart", + .field( + FLOAT, + "topStart", "The topStart radius of the rectangle to " + "intersect with the current clip") - .field(FLOAT, "topEnd", + .field( + FLOAT, + "topEnd", "The topEnd radius of the rectangle to " + "intersect with the current clip") - .field(FLOAT, "bottomStart", + .field( + FLOAT, + "bottomStart", "The bottomStart radius of the rectangle to " + "intersect with the current clip") - .field(FLOAT, "bottomEnd", + .field( + FLOAT, + "bottomEnd", "The bottomEnd radius of the rectangle to " + "intersect with the current clip"); } - float mWidth; float mHeight; - public RoundedClipRectModifierOperation( - float topStart, - float topEnd, - float bottomStart, - float bottomEnd) { + float topStart, float topEnd, float bottomStart, float bottomEnd) { super(topStart, topEnd, bottomStart, bottomEnd); mName = CLASS_NAME; } @@ -106,33 +101,41 @@ public class RoundedClipRectModifierOperation extends DrawBase4 } @Override - public void onClick(RemoteContext context, CoreDocument document, - Component component, 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, "ROUNDED_CLIP_RECT = [" + mWidth + ", " + mHeight - + ", " + mX1 + ", " + mY1 - + ", " + mX2 + ", " + mY2 + "]"); + 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 + * @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) { + 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/ShapeType.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ShapeType.java index e425b4e0cc0aecd5e671ba9617c5248dad788178..0cd062eb25c38a87f5e93a3eebc4ea3ea2247392 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ShapeType.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ShapeType.java @@ -15,9 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; -/** - * Known shapes, used for modifiers (clip/background/border) - */ +/** Known shapes, used for modifiers (clip/background/border) */ public class ShapeType { public static int RECTANGLE = 0; public static int CIRCLE = 1; 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 index 3f19c9b1bc4b4d599284f3017289960e7ac13633..8876720c999034b3c49285a71f86f60ff60d51f0 100644 --- 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 @@ -15,7 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; -import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.CoreDocument; import com.android.internal.widget.remotecompose.core.Operation; @@ -29,9 +29,7 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.Strin import java.util.List; -/** - * Apply a value change on an integer variable. - */ +/** Apply a value change on an integer variable. */ public class ValueIntegerChangeActionOperation implements ActionOperation { private static final int OP_CODE = Operations.VALUE_INTEGER_CHANGE_ACTION; @@ -54,28 +52,23 @@ public class ValueIntegerChangeActionOperation implements ActionOperation { @Override public void serializeToString(int indent, StringSerializer serializer) { - serializer.append(indent, serializedName() - + " = " + mTargetValueId + " -> " + mValue); + serializer.append(indent, serializedName() + " = " + mTargetValueId + " -> " + mValue); } @Override - public void apply(RemoteContext context) { - } + public void apply(RemoteContext context) {} @Override public String deepToString(String indent) { return (indent != null ? indent : "") + toString(); } - @Override - public void write(WireBuffer buffer) { - - } + public void write(WireBuffer buffer) {} @Override - public void runAction(RemoteContext context, CoreDocument document, - Component component, float x, float y) { + public void runAction( + RemoteContext context, CoreDocument document, Component component, float x, float y) { context.overrideInteger(mTargetValueId, mValue); } @@ -93,11 +86,10 @@ public class ValueIntegerChangeActionOperation implements ActionOperation { 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") + .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") - ; + .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/ValueIntegerExpressionChangeActionOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ValueIntegerExpressionChangeActionOperation.java new file mode 100644 index 0000000000000000000000000000000000000000..fb5e911e8bc6b6923714fd7c2c692403852da5d1 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ValueIntegerExpressionChangeActionOperation.java @@ -0,0 +1,96 @@ +/* + * 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.DocumentedOperation.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 ValueIntegerExpressionChangeActionOperation implements ActionOperation { + private static final int OP_CODE = Operations.VALUE_INTEGER_EXPRESSION_CHANGE_ACTION; + + long mTargetValueId = -1; + long mValueExpressionId = -1; + + public ValueIntegerExpressionChangeActionOperation(long id, long value) { + mTargetValueId = id; + mValueExpressionId = value; + } + + @Override + public String toString() { + return "ValueIntegerExpressionChangeActionOperation(" + mTargetValueId + ")"; + } + + public String serializedName() { + return "VALUE_INTEGER_EXPRESSION_CHANGE"; + } + + @Override + public void serializeToString(int indent, StringSerializer serializer) { + serializer.append( + indent, serializedName() + " = " + mTargetValueId + " -> " + mValueExpressionId); + } + + @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) { + document.evaluateIntExpression(mValueExpressionId, (int) mTargetValueId, context); + } + + public static void apply(WireBuffer buffer, long valueId, long value) { + buffer.start(OP_CODE); + buffer.writeLong(valueId); + buffer.writeLong(value); + } + + public static void read(WireBuffer buffer, List operations) { + long valueId = buffer.readLong(); + long value = buffer.readLong(); + operations.add(new ValueIntegerExpressionChangeActionOperation(valueId, value)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", OP_CODE, "ValueIntegerExpressionChangeActionOperation") + .description( + "ValueIntegerExpressionChange action. " + + " This operation represents a value change for the given id") + .field(INT, "TARGET_VALUE_ID", "Value ID") + .field(INT, "VALUE_ID", "id of the 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 index e2542e529383d6cdb0deb8eca65dc82087d99989..a64a492a8cc1f559d1ddd6c34bba56a1a982ddd2 100644 --- 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 @@ -15,7 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; -import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.CoreDocument; import com.android.internal.widget.remotecompose.core.Operation; @@ -29,9 +29,7 @@ import com.android.internal.widget.remotecompose.core.operations.utilities.Strin import java.util.List; -/** - * Apply a value change on a string variable. - */ +/** Apply a value change on a string variable. */ public class ValueStringChangeActionOperation implements ActionOperation { private static final int OP_CODE = Operations.VALUE_STRING_CHANGE_ACTION; @@ -62,8 +60,7 @@ public class ValueStringChangeActionOperation implements ActionOperation { } @Override - public void apply(RemoteContext context) { - } + public void apply(RemoteContext context) {} @Override public String deepToString(String indent) { @@ -71,13 +68,11 @@ public class ValueStringChangeActionOperation implements ActionOperation { } @Override - public void write(WireBuffer buffer) { - - } + public void write(WireBuffer buffer) {} @Override - public void runAction(RemoteContext context, CoreDocument document, - Component component, float x, float y) { + public void runAction( + RemoteContext context, CoreDocument document, Component component, float x, float y) { context.overrideText(mTargetValueId, mValueId); } @@ -95,13 +90,14 @@ public class ValueStringChangeActionOperation implements ActionOperation { 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") + .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") - ; + .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 7fd5e51add18f1ab43ad44dfa139cd5ef8ca8981..62403b3e5e7e7511e013161b34f510eeaef4ab5f 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,8 +15,8 @@ */ 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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.INT; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; @@ -25,14 +25,11 @@ import com.android.internal.widget.remotecompose.core.documentation.Documentatio import java.util.List; -/** - * Set the width dimension on a component - */ +/** 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; } @@ -82,9 +79,7 @@ public class WidthModifierOperation extends DimensionModifierOperation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Modifier Operations", - OP_CODE, - CLASS_NAME) + 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/utils/DebugLog.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/utils/DebugLog.java index 7ccf7f48af245339637bcfc9f181db3649f6f2a4..4849b12c65b101de930da96c3cf4fb6505a2c8c0 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/utils/DebugLog.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/utils/DebugLog.java @@ -17,9 +17,7 @@ package com.android.internal.widget.remotecompose.core.operations.layout.utils; import java.util.ArrayList; -/** - * Internal utility debug class - */ +/** Internal utility debug class */ public class DebugLog { public static final boolean DEBUG_LAYOUT_ON = false; @@ -109,8 +107,12 @@ public class DebugLog { if (node instanceof LogNode) { builder.append(indentation).append(" ").append(node.name).append("\n"); } else { - builder.append(indentation).append("-- ").append(node.name) - .append(" : ").append(node.endString).append("\n"); + builder.append(indentation) + .append("-- ") + .append(node.name) + .append(" : ") + .append(node.endString) + .append("\n"); } } } @@ -124,4 +126,3 @@ public class DebugLog { } } } - diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/utils/StringValueSupplier.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/utils/StringValueSupplier.java index 79ef16bf25dadce943a618004f6b54a422d2e027..701167abb8f00529b22a7a87939578a5c88e63bd 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/utils/StringValueSupplier.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/utils/StringValueSupplier.java @@ -15,12 +15,11 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.utils; -/** - * Basic interface for a lambda (used for logging) - */ +/** Basic interface for a lambda (used for logging) */ public interface StringValueSupplier { /** * returns a string value + * * @return a string */ String getString(); 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 6c8049a97f1e2a897ea5281cf607e268cb3063fa..e714947c6a5c229cf6eb4c6a867ada38df964082 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 @@ -23,9 +23,7 @@ import com.android.internal.widget.remotecompose.core.operations.Utils; import java.util.Arrays; -/** - * Paint Bundle represents a delta of changes to a paint object - */ +/** Paint Bundle represents a delta of changes to a paint object */ public class PaintBundle { int[] mArray = new int[200]; int[] mOutArray = null; @@ -33,6 +31,7 @@ public class PaintBundle { /** * Apply changes to a PaintChanges interface + * * @param paintContext * @param p */ @@ -46,10 +45,9 @@ public class PaintBundle { int cmd = mOutArray[i++]; mask = mask | (1 << (cmd - 1)); switch (cmd & 0xFFFF) { - case TEXT_SIZE: { + case TEXT_SIZE: p.setTextSize(Float.intBitsToFloat(mOutArray[i++])); break; - } case TYPEFACE: int style = (cmd >> 16); int weight = style & 0x3ff; @@ -59,99 +57,86 @@ public class PaintBundle { p.setTypeFace(font_type, weight, italic); break; case COLOR_ID: // mOutArray should have already decoded it - case COLOR: { + case COLOR: p.setColor(mOutArray[i++]); break; - } - case STROKE_WIDTH: { + case STROKE_WIDTH: p.setStrokeWidth(Float.intBitsToFloat(mOutArray[i++])); break; - } - case STROKE_MITER: { + case STROKE_MITER: p.setStrokeMiter(Float.intBitsToFloat(mOutArray[i++])); break; - } - case STROKE_CAP: { + case STROKE_CAP: p.setStrokeCap(cmd >> 16); break; - } - case STYLE: { + case STYLE: p.setStyle(cmd >> 16); break; - } - case SHADER: { + case SHADER: p.setShader(mOutArray[i++]); break; - } - case STROKE_JOIN: { + case STROKE_JOIN: p.setStrokeJoin(cmd >> 16); break; - } - case IMAGE_FILTER_QUALITY: { + case IMAGE_FILTER_QUALITY: p.setImageFilterQuality(cmd >> 16); break; - } - case BLEND_MODE: { + case BLEND_MODE: p.setBlendMode(cmd >> 16); break; - } - case FILTER_BITMAP: { + case FILTER_BITMAP: p.setFilterBitmap(!((cmd >> 16) == 0)); break; - } - case GRADIENT: { + case GRADIENT: i = callSetGradient(cmd, mOutArray, i, p); break; - } - case COLOR_FILTER: { + case COLOR_FILTER_ID: + case COLOR_FILTER: p.setColorFilter(mOutArray[i++], cmd >> 16); break; - } - case ALPHA: { + case ALPHA: p.setAlpha(Float.intBitsToFloat(mOutArray[i++])); break; - } + case CLEAR_COLOR_FILTER: + p.clear(0x1L << PaintBundle.COLOR_FILTER); + break; } } - - mask = (~mask) & PaintChanges.VALID_BITS; - - p.clear(mask); } - private String toName(int id) { - switch (id) { - case TEXT_SIZE: - return "TEXT_SIZE"; - case COLOR: - return "COLOR"; - case STROKE_WIDTH: - return "STROKE_WIDTH"; - case STROKE_MITER: - return "STROKE_MITER"; - case TYPEFACE: - return "TYPEFACE"; - case STROKE_CAP: - return "CAP"; - case STYLE: - return "STYLE"; - case SHADER: - return "SHADER"; - case IMAGE_FILTER_QUALITY: - return "IMAGE_FILTER_QUALITY"; - case BLEND_MODE: - return "BLEND_MODE"; - case FILTER_BITMAP: - return "FILTER_BITMAP"; - case GRADIENT: - return "GRADIENT_LINEAR"; - case ALPHA: - return "ALPHA"; - case COLOR_FILTER: - return "COLOR_FILTER"; - } - return "????" + id + "????"; - } + // private String toName(int id) { + // switch (id) { + // case TEXT_SIZE: + // return "TEXT_SIZE"; + // case COLOR: + // return "COLOR"; + // case STROKE_WIDTH: + // return "STROKE_WIDTH"; + // case STROKE_MITER: + // return "STROKE_MITER"; + // case TYPEFACE: + // return "TYPEFACE"; + // case STROKE_CAP: + // return "CAP"; + // case STYLE: + // return "STYLE"; + // case SHADER: + // return "SHADER"; + // case IMAGE_FILTER_QUALITY: + // return "IMAGE_FILTER_QUALITY"; + // case BLEND_MODE: + // return "BLEND_MODE"; + // case FILTER_BITMAP: + // return "FILTER_BITMAP"; + // case GRADIENT: + // return "GRADIENT_LINEAR"; + // case ALPHA: + // return "ALPHA"; + // case COLOR_FILTER: + // return "COLOR_FILTER"; + // } + // return "????" + id + "????"; + // } private static String colorInt(int color) { String str = "000000000000" + Integer.toHexString(color); @@ -185,103 +170,189 @@ public class PaintBundle { int cmd = mArray[i++]; int type = cmd & 0xFFFF; switch (type) { - - case TEXT_SIZE: { - ret.append(" TextSize(" - + asFloatStr(mArray[i++])); - } - - break; - case TYPEFACE: { + case TEXT_SIZE: + ret.append(" TextSize(" + asFloatStr(mArray[i++])); + break; + case TYPEFACE: int style = (cmd >> 16); int weight = style & 0x3ff; boolean italic = (style >> 10) > 0; int font_type = mArray[i++]; - ret.append(" TypeFace(" + (font_type + ", " - + weight + ", " + italic)); - } - break; - case COLOR: { + ret.append(" TypeFace(" + (font_type + ", " + weight + ", " + italic)); + break; + case COLOR: ret.append(" Color(" + colorInt(mArray[i++])); - } - break; - case COLOR_ID: { + break; + case COLOR_ID: ret.append(" ColorId([" + mArray[i++] + "]"); - } - break; - case STROKE_WIDTH: { - ret.append(" StrokeWidth(" - + (asFloatStr(mArray[i++]))); - } - break; - case STROKE_MITER: { - ret.append(" StrokeMiter(" - + (asFloatStr(mArray[i++]))); - } - break; - case STROKE_CAP: { - ret.append(" StrokeCap(" - + (cmd >> 16)); - } - break; - case STYLE: { + break; + case STROKE_WIDTH: + ret.append(" StrokeWidth(" + asFloatStr(mArray[i++])); + break; + case STROKE_MITER: + ret.append(" StrokeMiter(" + asFloatStr(mArray[i++])); + break; + case STROKE_CAP: + ret.append(" StrokeCap(" + (cmd >> 16)); + break; + case STYLE: ret.append(" Style(" + (cmd >> 16)); - } - break; - case COLOR_FILTER: { - ret.append(" ColorFilter(color=" - + colorInt(mArray[i++]) - + ", mode=" + blendModeString(cmd >> 16)); - } - break; - case SHADER: { + break; + case COLOR_FILTER: + ret.append( + " ColorFilter(color=" + + colorInt(mArray[i++]) + + ", mode=" + + blendModeString(cmd >> 16)); + break; + case COLOR_FILTER_ID: + ret.append( + " ColorFilterID(color=[" + + mArray[i++] + + "], mode=" + + blendModeString(cmd >> 16)); + break; + case CLEAR_COLOR_FILTER: + ret.append(" clearColorFilter"); + break; + case SHADER: ret.append(" Shader(" + mArray[i++]); - } - break; - case ALPHA: { - ret.append(" Alpha(" - + (asFloatStr(mArray[i++]))); - } - break; - case IMAGE_FILTER_QUALITY: { + break; + case ALPHA: + ret.append(" Alpha(" + asFloatStr(mArray[i++])); + break; + case IMAGE_FILTER_QUALITY: ret.append(" ImageFilterQuality(" + (cmd >> 16)); - } - break; - case BLEND_MODE: { + break; + case BLEND_MODE: ret.append(" BlendMode(" + blendModeString(cmd >> 16)); + break; + case FILTER_BITMAP: + ret.append(" FilterBitmap(" + !(cmd >> 16 == 0)); + break; + case STROKE_JOIN: + ret.append(" StrokeJoin(" + (cmd >> 16)); + break; + case ANTI_ALIAS: + ret.append(" AntiAlias(" + (cmd >> 16)); + break; + case GRADIENT: + i = callPrintGradient(cmd, mArray, i, ret); + } + ret.append("),\n"); + } + return ret.toString(); + } + + private void registerFloat(int iv, RemoteContext context, VariableSupport support) { + float v = Float.intBitsToFloat(iv); + if (Float.isNaN(v)) { + context.listensTo(Utils.idFromNan(v), support); + } + } + + int callRegisterGradient( + int cmd, int[] array, int i, RemoteContext context, VariableSupport support) { + int ret = i; + int type = (cmd >> 16); + int control = array[ret++]; + int len = 0xFF & control; // maximum 256 colors + int register = 0xFFFF & (control >> 16); + int tileMode = 0; + switch (type) { + /* see {@link #setLinearGradient} */ + case LINEAR_GRADIENT: + if (len > 0) { + + for (int j = 0; j < len; j++) { + int color = array[ret++]; + if ((register & (1 << j)) != 0) { + context.listensTo(color, support); + } + } } - break; - case FILTER_BITMAP: { - ret.append(" FilterBitmap(" - + (!((cmd >> 16) == 0))); + len = array[ret++]; + + if (len > 0) { + + for (int j = 0; j < len; j++) { + registerFloat(array[ret++], context, support); + } } + + // start x + registerFloat(array[ret++], context, support); + // start y + registerFloat(array[ret++], context, support); + // end x + registerFloat(array[ret++], context, support); + // end y + registerFloat(array[ret++], context, support); + tileMode = array[ret++]; break; - case STROKE_JOIN: { - ret.append(" StrokeJoin(" + (cmd >> 16)); + /* see {@link #setRadialGradient} */ + case RADIAL_GRADIENT: + if (len > 0) { + + for (int j = 0; j < len; j++) { + int color = array[ret++]; + if ((register & (1 << j)) != 0) { + context.listensTo(color, support); + } + } } - break; - case ANTI_ALIAS: { - ret.append(" AntiAlias(" + (cmd >> 16)); + len = array[ret++]; // stops + for (int j = 0; j < len; j++) { + registerFloat(array[ret++], context, support); } + + // center x + registerFloat(array[ret++], context, support); + // center y + registerFloat(array[ret++], context, support); + // radius + registerFloat(array[ret++], context, support); + + tileMode = array[ret++]; // tile Mode break; - case GRADIENT: { - i = callPrintGradient(cmd, mArray, i, ret); + /* see {@link #setSweepGradient} */ + case SWEEP_GRADIENT: + if (len > 0) { + + for (int j = 0; j < len; j++) { + int color = array[ret++]; + if ((register & (1 << j)) != 0) { + context.listensTo(color, support); + } + } } - } - ret.append("),\n"); + + len = array[ret++]; // stops + for (int j = 0; j < len; j++) { + registerFloat(array[ret++], context, support); + } + // center x + registerFloat(array[ret++], context, support); + // center y + registerFloat(array[ret++], context, support); + break; + default: + System.out.println("error "); } - return ret.toString(); + + return ret; } int callPrintGradient(int cmd, int[] array, int i, StringBuilder p) { int ret = i; int type = (cmd >> 16); + int tileMode = 0; + int len = array[ret++]; + int[] colors = null; + String[] stops = null; switch (type) { - - case 0: { + case 0: p.append(" LinearGradient(\n"); - int len = array[ret++]; - int[] colors = null; if (len > 0) { colors = new int[len]; for (int j = 0; j < colors.length; j++) { @@ -289,7 +360,6 @@ public class PaintBundle { } } len = array[ret++]; - String[] stops = null; if (len > 0) { stops = new String[len]; for (int j = 0; j < stops.length; j++) { @@ -305,24 +375,18 @@ public class PaintBundle { p.append(" end = "); p.append("[" + asFloatStr(array[ret++])); p.append(", " + asFloatStr(array[ret++]) + "],\n"); - int tileMode = array[ret++]; + tileMode = array[ret++]; p.append(" tileMode = " + tileMode + "\n "); - } - - break; - case 1: { + break; + case 1: p.append(" RadialGradient(\n"); - int len = array[ret++]; - int[] colors = null; if (len > 0) { colors = new int[len]; for (int j = 0; j < colors.length; j++) { colors[j] = array[ret++]; - } } len = array[ret++]; - String[] stops = null; if (len > 0) { stops = new String[len]; for (int j = 0; j < stops.length; j++) { @@ -337,24 +401,18 @@ public class PaintBundle { p.append(", " + asFloatStr(array[ret++]) + "],\n"); p.append(" radius ="); p.append(" " + asFloatStr(array[ret++]) + ",\n"); - int tileMode = array[ret++]; + tileMode = array[ret++]; p.append(" tileMode = " + tileMode + "\n "); - } - - break; - case 2: { + break; + case 2: p.append(" SweepGradient(\n"); - int len = array[ret++]; - int[] colors = null; if (len > 0) { colors = new int[len]; for (int j = 0; j < colors.length; j++) { colors[j] = array[ret++]; - } } len = array[ret++]; - String[] stops = null; if (len > 0) { stops = new String[len]; for (int j = 0; j < stops.length; j++) { @@ -365,13 +423,10 @@ public class PaintBundle { p.append(" stops = " + Arrays.toString(stops) + ",\n"); p.append(" center = "); p.append("[" + asFloatStr(array[ret++])); - p.append(", " - + asFloatStr(array[ret++]) + "],\n "); - } - break; - default: { + p.append(", " + asFloatStr(array[ret++]) + "],\n "); + break; + default: p.append("GRADIENT_??????!!!!"); - } } return ret; @@ -381,7 +436,8 @@ public class PaintBundle { int ret = i; int gradientType = (cmd >> 16); - int len = array[ret++]; + int len = 0xFF & array[ret++]; // maximum 256 colors + int[] colors = null; if (len > 0) { colors = new int[len]; @@ -402,33 +458,30 @@ public class PaintBundle { return ret; } - switch (gradientType) { + int tileMode = 0; + float centerX = 0f; + float centerY = 0f; - case LINEAR_GRADIENT: { + switch (gradientType) { + case LINEAR_GRADIENT: float startX = Float.intBitsToFloat(array[ret++]); float startY = Float.intBitsToFloat(array[ret++]); float endX = Float.intBitsToFloat(array[ret++]); float endY = Float.intBitsToFloat(array[ret++]); - int tileMode = array[ret++]; - p.setLinearGradient(colors, stops, startX, - startY, endX, endY, tileMode); - } - - break; - case RADIAL_GRADIENT: { - float centerX = Float.intBitsToFloat(array[ret++]); - float centerY = Float.intBitsToFloat(array[ret++]); + tileMode = array[ret++]; + p.setLinearGradient(colors, stops, startX, startY, endX, endY, tileMode); + break; + case RADIAL_GRADIENT: + centerX = Float.intBitsToFloat(array[ret++]); + centerY = Float.intBitsToFloat(array[ret++]); float radius = Float.intBitsToFloat(array[ret++]); - int tileMode = array[ret++]; - p.setRadialGradient(colors, stops, centerX, centerY, - radius, tileMode); - } - break; - case SWEEP_GRADIENT: { - float centerX = Float.intBitsToFloat(array[ret++]); - float centerY = Float.intBitsToFloat(array[ret++]); + tileMode = array[ret++]; + p.setRadialGradient(colors, stops, centerX, centerY, radius, tileMode); + break; + case SWEEP_GRADIENT: + centerX = Float.intBitsToFloat(array[ret++]); + centerY = Float.intBitsToFloat(array[ret++]); p.setSweepGradient(colors, stops, centerX, centerY); - } } return ret; @@ -453,9 +506,9 @@ public class PaintBundle { mPos = len; } - public static final int TEXT_SIZE = 1; // float + public static final int TEXT_SIZE = 1; // float - public static final int COLOR = 4; // int + public static final int COLOR = 4; // int public static final int STROKE_WIDTH = 5; // float public static final int STROKE_MITER = 6; public static final int STROKE_CAP = 7; // int @@ -470,7 +523,9 @@ public class PaintBundle { public static final int TYPEFACE = 16; public static final int FILTER_BITMAP = 17; public static final int BLEND_MODE = 18; - public static final int COLOR_ID = 19; // int + public static final int COLOR_ID = 19; + public static final int COLOR_FILTER_ID = 20; + public static final int CLEAR_COLOR_FILTER = 21; public static final int BLEND_MODE_CLEAR = 0; public static final int BLEND_MODE_SRC = 1; @@ -524,27 +579,28 @@ public class PaintBundle { /** * sets a shader that draws a linear gradient along a line. * - * @param startX The x-coordinate for the start of the gradient line - * @param startY The y-coordinate for the start of the gradient line - * @param endX The x-coordinate for the end of the gradient line - * @param endY The y-coordinate for the end of the gradient line - * @param colors The sRGB colors to be distributed along the gradient line - * @param stops May be null. The relative positions [0..1] of - * each corresponding color in the colors array. If this is null, - * the colors are distributed evenly along the gradient line. + * @param startX The x-coordinate for the start of the gradient line + * @param startY The y-coordinate for the start of the gradient line + * @param endX The x-coordinate for the end of the gradient line + * @param endY The y-coordinate for the end of the gradient line + * @param colors The sRGB colors to be distributed along the gradient line + * @param stops May be null. The relative positions [0..1] of each corresponding color in the + * colors array. If this is null, the colors are distributed evenly along the gradient line. * @param tileMode The Shader tiling mode */ - public void setLinearGradient(int[] colors, - float[] stops, - float startX, - float startY, - float endX, - float endY, - int tileMode) { - int startPos = mPos; + public void setLinearGradient( + int[] colors, + int idMask, + float[] stops, + float startX, + float startY, + float endX, + float endY, + int tileMode) { + // int startPos = mPos; int len; mArray[mPos++] = GRADIENT | (LINEAR_GRADIENT << 16); - mArray[mPos++] = len = (colors == null) ? 0 : colors.length; + mArray[mPos++] = (idMask << 16) | (len = (colors == null) ? 0 : colors.length); for (int i = 0; i < len; i++) { mArray[mPos++] = colors[i]; } @@ -565,20 +621,18 @@ public class PaintBundle { * * @param centerX The x-coordinate of the center * @param centerY The y-coordinate of the center - * @param colors The sRGB colors to be distributed around the center. - * There must be at least 2 colors in the array. - * @param stops May be NULL. The relative position of - * each corresponding color in the colors array, beginning - * with 0 and ending with 1.0. If the values are not - * monotonic, the drawing may produce unexpected results. - * If positions is NULL, then the colors are automatically - * spaced evenly. + * @param colors The sRGB colors to be distributed around the center. There must be at least 2 + * colors in the array. + * @param stops May be NULL. The relative position of each corresponding color in the colors + * array, beginning with 0 and ending with 1.0. If the values are not monotonic, the drawing + * may produce unexpected results. If positions is NULL, then the colors are automatically + * spaced evenly. */ - public void setSweepGradient(int[] colors, float[] stops, float centerX, float centerY) { - int startPos = mPos; + public void setSweepGradient( + int[] colors, int idMask, float[] stops, float centerX, float centerY) { int len; mArray[mPos++] = GRADIENT | (SWEEP_GRADIENT << 16); - mArray[mPos++] = len = (colors == null) ? 0 : colors.length; + mArray[mPos++] = (idMask << 16) | (len = (colors == null) ? 0 : colors.length); for (int i = 0; i < len; i++) { mArray[mPos++] = colors[i]; } @@ -594,29 +648,28 @@ public class PaintBundle { /** * Sets a shader that draws a radial gradient given the center and radius. * - * @param centerX The x-coordinate of the center of the radius - * @param centerY The y-coordinate of the center of the radius - * @param radius Must be positive. The radius of the gradient. - * @param colors The sRGB colors distributed between the center and edge - * @param stops May be null. - * Valid values are between 0.0f and - * 1.0f. The relative position of each - * corresponding color in - * the colors array. If null, colors are - * distributed evenly - * between the center and edge of the circle. + * @param centerX The x-coordinate of the center of the radius + * @param centerY The y-coordinate of the center of the radius + * @param radius Must be positive. The radius of the gradient. + * @param colors The sRGB colors distributed between the center and edge + * @param stops May be null. Valid values are between 0.0f and + * 1.0f. The relative position of each corresponding color in the colors array. If + * null, colors are distributed evenly between the center and edge of the + * circle. * @param tileMode The Shader tiling mode */ - public void setRadialGradient(int[] colors, - float[] stops, - float centerX, - float centerY, - float radius, - int tileMode) { - int startPos = mPos; + public void setRadialGradient( + int[] colors, + int idMask, + float[] stops, + float centerX, + float centerY, + float radius, + int tileMode) { + // int startPos = mPos; int len; mArray[mPos++] = GRADIENT | (RADIAL_GRADIENT << 16); - mArray[mPos++] = len = (colors == null) ? 0 : colors.length; + mArray[mPos++] = (idMask << 16) | (len = (colors == null) ? 0 : colors.length); for (int i = 0; i < len; i++) { mArray[mPos++] = colors[i]; } @@ -629,14 +682,13 @@ public class PaintBundle { mArray[mPos++] = Float.floatToRawIntBits(centerY); mArray[mPos++] = Float.floatToRawIntBits(radius); mArray[mPos++] = tileMode; - } /** * Create a color filter that uses the specified color and Porter-Duff mode. * * @param color The ARGB source color used with the Porter-Duff mode - * @param mode The porter-duff mode that is applied + * @param mode The porter-duff mode that is applied */ public void setColorFilter(int color, int mode) { mArray[mPos] = COLOR_FILTER | (mode << 16); @@ -644,13 +696,30 @@ public class PaintBundle { mArray[mPos++] = color; } + /** + * Create a color filter that uses the specified color and Porter-Duff mode. + * + * @param color The id source color used with the Porter-Duff mode + * @param mode The porter-duff mode that is applied + */ + public void setColorFilterId(int color, int mode) { + mArray[mPos] = COLOR_FILTER_ID | (mode << 16); + mPos++; + mArray[mPos++] = color; + } + + /** This sets the color filter to null */ + public void clearColorFilter() { + mArray[mPos] = CLEAR_COLOR_FILTER; + mPos++; + } + /** * Set the paint's text size. This value must be > 0 * * @param size set the paint's text size in pixel units. */ public void setTextSize(float size) { - int p = mPos; mArray[mPos] = TEXT_SIZE; mPos++; mArray[mPos] = Float.floatToRawIntBits(size); @@ -659,22 +728,21 @@ public class PaintBundle { /** * @param fontType 0 = default 1 = sans serif 2 = serif 3 = monospace - * @param weight 100-1000 - * @param italic tur + * @param weight 100-1000 + * @param italic tur */ public void setTextStyle(int fontType, int weight, boolean italic) { - int style = (weight & 0x3FF) | (italic ? 2048 : 0); // pack the weight and italic + int style = (weight & 0x3FF) | (italic ? 2048 : 0); // pack the weight and italic mArray[mPos++] = TYPEFACE | (style << 16); mArray[mPos++] = fontType; } /** - * Set the width for stroking. - * Pass 0 to stroke in hairline mode. - * Hairlines always draws a single pixel independent of the canvas's matrix. + * Set the width for stroking. Pass 0 to stroke in hairline mode. Hairlines always draws a + * single pixel independent of the canvas's matrix. * - * @param width set the paint's stroke width, used whenever the paint's - * style is Stroke or StrokeAndFill. + * @param width set the paint's stroke width, used whenever the paint's style is Stroke or + * StrokeAndFill. */ public void setStrokeWidth(float width) { mArray[mPos] = STROKE_WIDTH; @@ -685,6 +753,7 @@ public class PaintBundle { /** * Set the Color based on Color + * * @param color */ public void setColor(int color) { @@ -696,6 +765,7 @@ public class PaintBundle { /** * Set the color based the R,G,B,A values + * * @param r red (0 to 255) * @param g green (0 to 255) * @param b blue (0 to 255) @@ -708,6 +778,7 @@ public class PaintBundle { /** * Set the color based the R,G,B,A values + * * @param r red (0.0 to 1.0) * @param g green (0.0 to 1.0) * @param b blue (0.0 to 1.0) @@ -719,6 +790,7 @@ public class PaintBundle { /** * Set the Color based on ID + * * @param color */ public void setColorId(int color) { @@ -728,12 +800,11 @@ public class PaintBundle { mPos++; } - /** * Set the paint's Cap. * - * @param cap set the paint's line cap style, used whenever the paint's - * style is Stroke or StrokeAndFill. + * @param cap set the paint's line cap style, used whenever the paint's style is Stroke or + * StrokeAndFill. */ public void setStrokeCap(int cap) { mArray[mPos] = STROKE_CAP | (cap << 16); @@ -742,6 +813,7 @@ public class PaintBundle { /** * Set the style STROKE and/or FILL + * * @param style */ public void setStyle(int style) { @@ -751,6 +823,7 @@ public class PaintBundle { /** * Set the shader id to use + * * @param shaderId */ public void setShader(int shaderId) { @@ -760,9 +833,7 @@ public class PaintBundle { mPos++; } - /** - * Set the Alpha value - */ + /** Set the Alpha value */ public void setAlpha(float alpha) { mArray[mPos] = ALPHA; mPos++; @@ -771,11 +842,11 @@ public class PaintBundle { } /** - * Set the paint's stroke miter value. This is used to control the behavior - * of miter joins when the joins angle is sharp. This value must be >= 0. + * Set the paint's stroke miter value. This is used to control the behavior of miter joins when + * the joins angle is sharp. This value must be >= 0. * - * @param miter set the miter limit on the paint, used whenever the paint's - * style is Stroke or StrokeAndFill. + * @param miter set the miter limit on the paint, used whenever the paint's style is Stroke or + * StrokeAndFill. */ public void setStrokeMiter(float miter) { mArray[mPos] = STROKE_MITER; @@ -787,8 +858,7 @@ public class PaintBundle { /** * Set the paint's Join. * - * @param join set the paint's Join, used whenever the paint's style is - * Stroke or StrokeAndFill. + * @param join set the paint's Join, used whenever the paint's style is Stroke or StrokeAndFill. */ public void setStrokeJoin(int join) { mArray[mPos] = STROKE_JOIN | (join << 16); @@ -801,10 +871,8 @@ public class PaintBundle { } /** - * Set or clear the blend mode. A blend mode defines how source pixels - * (generated by a drawing command) are composited with the - * destination pixels - * (content of the render target). + * Set or clear the blend mode. A blend mode defines how source pixels (generated by a drawing + * command) are composited with the destination pixels (content of the render target). * * @param blendmode The blend mode to be installed in the paint */ @@ -814,15 +882,14 @@ public class PaintBundle { } /** - * Helper for setFlags(), setting or clearing the ANTI_ALIAS_FLAG bit - * AntiAliasing smooths out the edges of what is being drawn, but is has - * no impact on the interior of the shape. See setDither() and - * setFilterBitmap() to affect how colors are treated. + * Helper for setFlags(), setting or clearing the ANTI_ALIAS_FLAG bit AntiAliasing smooths out + * the edges of what is being drawn, but is has no impact on the interior of the shape. See + * setDither() and setFilterBitmap() to affect how colors are treated. * * @param aa true to set the antialias bit in the flags, false to clear it */ public void setAntiAlias(boolean aa) { - mArray[mPos] = ANTI_ALIAS | (((aa) ? 1 : 0) << 16); + mArray[mPos] = ANTI_ALIAS | (aa ? 1 : 0) << 16; mPos++; } @@ -903,6 +970,7 @@ public class PaintBundle { /** * Check all the floats for Nan(id) floats and call listenTo + * * @param context * @param support */ @@ -921,6 +989,7 @@ public class PaintBundle { context.listensTo(Utils.idFromNan(v), support); } break; + case COLOR_FILTER_ID: case COLOR_ID: context.listensTo(mArray[i++], support); break; @@ -940,16 +1009,15 @@ public class PaintBundle { case ANTI_ALIAS: break; - case GRADIENT: { - // TODO gradients should be handled correctly - i = callPrintGradient(cmd, mArray, i, new StringBuilder()); - } + case GRADIENT: + i = callRegisterGradient(cmd, mArray, i, context, support); } } } /** * Update variables if any are float ids + * * @param context */ public void updateVariables(RemoteContext context) { @@ -970,6 +1038,7 @@ public class PaintBundle { mOutArray[i] = fixFloatVar(mArray[i], context); i++; break; + case COLOR_FILTER_ID: case COLOR_ID: mOutArray[i] = fixColor(mArray[i], context); i++; @@ -987,12 +1056,12 @@ public class PaintBundle { case IMAGE_FILTER_QUALITY: case BLEND_MODE: case ANTI_ALIAS: + case CLEAR_COLOR_FILTER: break; - case GRADIENT: { + case GRADIENT: // TODO gradients should be handled correctly i = updateFloatsInGradient(cmd, mOutArray, mArray, i, context); - } } } } @@ -1011,21 +1080,25 @@ public class PaintBundle { return n; } - int updateFloatsInGradient(int cmd, int[] out, int[] array, - int i, - RemoteContext context) { + int updateFloatsInGradient(int cmd, int[] out, int[] array, int i, RemoteContext context) { int ret = i; int type = (cmd >> 16); + int control = array[ret++]; + int len = 0xFF & control; // maximum 256 colors + int register = 0xFFFF & (control >> 16); switch (type) { - case 0: { - int len = array[ret++]; + case LINEAR_GRADIENT: if (len > 0) { + for (int j = 0; j < len; j++) { + int color = array[ret]; + if ((register & (1 << j)) != 0) { + out[ret] = fixColor(color, context); + } ret++; } } len = array[ret++]; - if (len > 0) { for (int j = 0; j < len; j++) { out[ret] = fixFloatVar(array[ret], context); @@ -1044,14 +1117,16 @@ public class PaintBundle { out[ret] = fixFloatVar(array[ret], context); ret++; ret++; // tileMode - } - - break; - case 1: { + break; + case RADIAL_GRADIENT: // RadialGradient - int len = array[ret++]; if (len > 0) { + for (int j = 0; j < len; j++) { + int color = array[ret]; + if ((register & (1 << j)) != 0) { + out[ret] = fixColor(color, context); + } ret++; } } @@ -1063,7 +1138,6 @@ public class PaintBundle { } } - // center out[ret] = fixFloatVar(array[ret], context); ret++; @@ -1073,19 +1147,17 @@ public class PaintBundle { out[ret] = fixFloatVar(array[ret], context); ret++; ret++; // tileMode - - } - - break; - case 2: { + break; + case SWEEP_GRADIENT: // SweepGradient - int len = array[ret++]; - int[] colors = null; if (len > 0) { - colors = new int[len]; - for (int j = 0; j < colors.length; j++) { - colors[j] = array[ret++]; + for (int j = 0; j < len; j++) { + int color = array[ret]; + if ((register & (1 << j)) != 0) { + out[ret] = fixColor(color, context); + } + ret++; } } len = array[ret++]; @@ -1103,14 +1175,12 @@ public class PaintBundle { ret++; out[ret] = fixFloatVar(array[ret], context); ret++; - } - break; - default: { + + break; + default: System.err.println("gradient type unknown"); - } } return ret; } - -} \ No newline at end of file +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintChangeAdapter.java b/core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintChangeAdapter.java index 28fe63a03c672ee765ecdaddb36464512c468fd3..e2402be4e4d4df62b44d18085e05ab092f287c2e 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintChangeAdapter.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintChangeAdapter.java @@ -18,112 +18,73 @@ package com.android.internal.widget.remotecompose.core.operations.paint; public class PaintChangeAdapter implements PaintChanges { @Override - public void setTextSize(float size) { - - } + public void setTextSize(float size) {} @Override - public void setTypeFace(int fontType, int weight, boolean italic) { - - } + public void setTypeFace(int fontType, int weight, boolean italic) {} @Override - public void setStrokeWidth(float width) { - - } + public void setStrokeWidth(float width) {} @Override - public void setColor(int color) { - - } + public void setColor(int color) {} @Override - public void setStrokeCap(int cap) { - - } + public void setStrokeCap(int cap) {} @Override - public void setStyle(int style) { - - } + public void setStyle(int style) {} @Override - public void setShader(int shader) { - - } + public void setShader(int shader) {} @Override - public void setImageFilterQuality(int quality) { - - } + public void setImageFilterQuality(int quality) {} @Override - public void setAlpha(float a) { - - } + public void setAlpha(float a) {} @Override - public void setStrokeMiter(float miter) { - - } + public void setStrokeMiter(float miter) {} @Override - public void setStrokeJoin(int join) { - - } + public void setStrokeJoin(int join) {} @Override - public void setFilterBitmap(boolean filter) { - - } + public void setFilterBitmap(boolean filter) {} @Override - public void setBlendMode(int blendmode) { - - } + public void setBlendMode(int blendmode) {} @Override - public void setAntiAlias(boolean aa) { - - } + public void setAntiAlias(boolean aa) {} @Override - public void clear(long mask) { - - } + public void clear(long mask) {} @Override - public void setLinearGradient(int[] colorsArray, - float[] stopsArray, - float startX, - float startY, - float endX, - float endY, - int tileMode) { - - } + public void setLinearGradient( + int[] colorsArray, + float[] stopsArray, + float startX, + float startY, + float endX, + float endY, + int tileMode) {} @Override - public void setRadialGradient(int[] colorsArray, - float[] stopsArray, - float centerX, - float centerY, - float radius, - int tileMode) { - - } + public void setRadialGradient( + int[] colorsArray, + float[] stopsArray, + float centerX, + float centerY, + float radius, + int tileMode) {} @Override - public void setSweepGradient(int[] colorsArray, - float[] stopsArray, - float centerX, - float centerY) { - - } + public void setSweepGradient( + int[] colorsArray, float[] stopsArray, float centerX, float centerY) {} @Override - public void setColorFilter(int color, int mode) { - - } - + public void setColorFilter(int color, int mode) {} } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintChanges.java b/core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintChanges.java index d5dc3889add3765d17c31a7366e76ee235a9c2cb..486d763cb6d5b8b0a69528eac2b8ce33fdec8ab6 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintChanges.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintChanges.java @@ -15,10 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.paint; -/** - * Interface to a paint object - * For more details see Android Paint - */ +/** Interface to a paint object For more details see Android Paint */ public interface PaintChanges { // MASK to be set/cleared @@ -30,8 +27,7 @@ public interface PaintChanges { int CLEAR_CAP = 1 << (PaintBundle.STROKE_CAP - 1); int CLEAR_STYLE = 1 << (PaintBundle.STYLE - 1); int CLEAR_SHADER = 1 << (PaintBundle.SHADER - 1); - int CLEAR_IMAGE_FILTER_QUALITY = - 1 << (PaintBundle.IMAGE_FILTER_QUALITY - 1); + int CLEAR_IMAGE_FILTER_QUALITY = 1 << (PaintBundle.IMAGE_FILTER_QUALITY - 1); int CLEAR_RADIENT = 1 << (PaintBundle.GRADIENT - 1); int CLEAR_ALPHA = 1 << (PaintBundle.ALPHA - 1); int CLEAR_COLOR_FILTER = 1 << (PaintBundle.COLOR_FILTER - 1); @@ -39,91 +35,105 @@ public interface PaintChanges { /** * Set the size of text + * * @param size */ void setTextSize(float size); /** * Set the width of lines + * * @param width */ void setStrokeWidth(float width); /** * Set the color to use + * * @param color */ void setColor(int color); /** * Set the Stroke Cap + * * @param cap */ void setStrokeCap(int cap); /** * Set the Stroke style FILL and/or STROKE + * * @param style */ void setStyle(int style); /** * Set the id of the shader to use + * * @param shader */ void setShader(int shader); /** * Set the way image is interpolated + * * @param quality */ void setImageFilterQuality(int quality); /** * Set the alpha to draw under + * * @param a */ void setAlpha(float a); /** * Set the Stroke Miter + * * @param miter */ void setStrokeMiter(float miter); /** * Set the Stroke Join + * * @param join */ void setStrokeJoin(int join); /** * Should bitmaps be interpolated + * * @param filter */ void setFilterBitmap(boolean filter); /** * Set the blend mode can be porterduff + others + * * @param mode */ void setBlendMode(int mode); /** - * Set the AntiAlias. Typically true - * Set to off when you need pixilated look (e.g. QR codes) + * Set the AntiAlias. Typically true Set to off when you need pixilated look (e.g. QR codes) + * * @param aa */ void setAntiAlias(boolean aa); /** * Clear some sub set of the settings + * * @param mask */ void clear(long mask); /** * Set a linear gradient fill + * * @param colorsArray * @param stopsArray * @param startX @@ -139,11 +149,11 @@ public interface PaintChanges { float startY, float endX, float endY, - int tileMode - ); + int tileMode); /** * Set a radial gradient fill + * * @param colorsArray * @param stopsArray * @param centerX @@ -157,36 +167,32 @@ public interface PaintChanges { float centerX, float centerY, float radius, - int tileMode - ); + int tileMode); /** * Set a sweep gradient fill + * * @param colorsArray * @param stopsArray * @param centerX * @param centerY */ - void setSweepGradient( - int[] colorsArray, - float[] stopsArray, - float centerX, - float centerY - ); + void setSweepGradient(int[] colorsArray, float[] stopsArray, float centerX, float centerY); /** * Set Color filter mod + * * @param color * @param mode */ void setColorFilter(int color, int mode); /** - * Set TypeFace 0,1,2 - * TODO above should point to a string to be decoded + * Set TypeFace 0,1,2 TODO above should point to a string to be decoded + * * @param fontType * @param weight * @param italic */ void setTypeFace(int fontType, int weight, boolean italic); -} \ No newline at end of file +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/paint/Painter.java b/core/java/com/android/internal/widget/remotecompose/core/operations/paint/Painter.java index ada3757bd4ca91124fdb3ffd5b2892a69cc4f34b..9a3cd54c3f851418535c2e1bdb5e57f6d553d608 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/paint/Painter.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/paint/Painter.java @@ -15,16 +15,11 @@ */ package com.android.internal.widget.remotecompose.core.operations.paint; - -/** - * Provides a Builder pattern for a PaintBundle - */ +/** Provides a Builder pattern for a PaintBundle */ class Painter { PaintBundle mPaint; - /** - * Write the paint to the buffer - */ + /** Write the paint to the buffer */ public PaintBundle commit() { return mPaint; } @@ -47,8 +42,7 @@ class Painter { /** * Set the paint's Join. * - * @param join set the paint's Join, used whenever the paint's style is - * Stroke or StrokeAndFill. + * @param join set the paint's Join, used whenever the paint's style is Stroke or StrokeAndFill. */ public Painter setStrokeJoin(int join) { mPaint.setStrokeJoin(join); @@ -56,12 +50,11 @@ class Painter { } /** - * Set the width for stroking. Pass 0 to stroke in hairline mode. - * Hairlines always draws a single - * pixel independent of the canvas's matrix. + * Set the width for stroking. Pass 0 to stroke in hairline mode. Hairlines always draws a + * single pixel independent of the canvas's matrix. * - * @param width set the paint's stroke width, used whenever the paint's - * style is Stroke or StrokeAndFill. + * @param width set the paint's stroke width, used whenever the paint's style is Stroke or + * StrokeAndFill. */ public Painter setStrokeWidth(float width) { mPaint.setStrokeWidth(width); @@ -69,8 +62,8 @@ class Painter { } /** - * Set the paint's style, used for controlling how primitives' geometries - * are interpreted (except for drawBitmap, which always assumes Fill). + * Set the paint's style, used for controlling how primitives' geometries are interpreted + * (except for drawBitmap, which always assumes Fill). * * @param style The new style to set in the paint */ @@ -82,8 +75,8 @@ class Painter { /** * Set the paint's Cap. * - * @param cap set the paint's line cap style, used whenever the paint's - * style is Stroke or StrokeAndFill. + * @param cap set the paint's line cap style, used whenever the paint's style is Stroke or + * StrokeAndFill. */ public Painter setStrokeCap(int cap) { mPaint.setStrokeCap(cap); @@ -91,11 +84,11 @@ class Painter { } /** - * Set the paint's stroke miter value. This is used to control the behavior - * of miter joins when the joins angle is sharp. This value must be >= 0. + * Set the paint's stroke miter value. This is used to control the behavior of miter joins when + * the joins angle is sharp. This value must be >= 0. * - * @param miter set the miter limit on the paint, used whenever the paint's - * style is Stroke or StrokeAndFill. + * @param miter set the miter limit on the paint, used whenever the paint's style is Stroke or + * StrokeAndFill. */ public Painter setStrokeMiter(float miter) { mPaint.setStrokeMiter(miter); @@ -103,9 +96,8 @@ class Painter { } /** - * Helper to setColor(), that only assigns the color's alpha value, - * leaving its r,g,b values unchanged. Results are undefined if the alpha - * value is outside of the range [0..1.0] + * Helper to setColor(), that only assigns the color's alpha value, leaving its r,g,b values + * unchanged. Results are undefined if the alpha value is outside of the range [0..1.0] * * @param alpha set the alpha component [0..1.0] of the paint's color. */ @@ -117,9 +109,8 @@ class Painter { /** * Create a color filter that uses the specified color and Porter-Duff mode. * - * @param color The ARGB source color used with the specified Porter-Duff - * mode - * @param mode The porter-duff mode that is applied + * @param color The ARGB source color used with the specified Porter-Duff mode + * @param mode The porter-duff mode that is applied */ public Painter setPorterDuffColorFilter(int color, int mode) { mPaint.setColorFilter(color, mode); @@ -129,17 +120,15 @@ class Painter { /** * sets a shader that draws a linear gradient along a line. * - * @param startX The x-coordinate for the start of the gradient line - * @param startY The y-coordinate for the start of the gradient line - * @param endX The x-coordinate for the end of the gradient line - * @param endY The y-coordinate for the end of the gradient line - * @param colors The sRGB colors to be distributed along the gradient - * line - * @param positions May be null. The relative positions [0..1] of each - * corresponding color in the colors array. If this is null, - * the colors are distributed evenly along the gradient - * line. - * @param tileMode The Shader tiling mode + * @param startX The x-coordinate for the start of the gradient line + * @param startY The y-coordinate for the start of the gradient line + * @param endX The x-coordinate for the end of the gradient line + * @param endY The y-coordinate for the end of the gradient line + * @param colors The sRGB colors to be distributed along the gradient line + * @param positions May be null. The relative positions [0..1] of each corresponding color in + * the colors array. If this is null, the colors are distributed evenly along the gradient + * line. + * @param tileMode The Shader tiling mode */ public Painter setLinearGradient( float startX, @@ -148,29 +137,23 @@ class Painter { float endY, int[] colors, float[] positions, - int tileMode - ) { - mPaint.setLinearGradient(colors, positions, startX, - startY, endX, endY, tileMode); + int tileMode) { + mPaint.setLinearGradient(colors, 0, positions, startX, startY, endX, endY, tileMode); return this; } /** * Sets a shader that draws a radial gradient given the center and radius. * - * @param centerX The x-coordinate of the center of the radius - * @param centerY The y-coordinate of the center of the radius - * @param radius Must be positive. The radius of the circle for this - * gradient. - * @param colors The sRGB colors to be distributed between the center - * and edge of the circle - * @param positions May be null. Valid values are between - * 0.0f and - * 1.0f. The relative position of each - * corresponding color in the colors array. If - * null, colors are distributed evenly - * between the center and edge of the circle. - * @param tileMode The Shader tiling mode + * @param centerX The x-coordinate of the center of the radius + * @param centerY The y-coordinate of the center of the radius + * @param radius Must be positive. The radius of the circle for this gradient. + * @param colors The sRGB colors to be distributed between the center and edge of the circle + * @param positions May be null. Valid values are between 0.0f and + * 1.0f. The relative position of each corresponding color in the colors array. + * If null, colors are distributed evenly between the center and edge of the + * circle. + * @param tileMode The Shader tiling mode */ public Painter setRadialGradient( float centerX, @@ -178,33 +161,25 @@ class Painter { float radius, int[] colors, float[] positions, - int tileMode - ) { - mPaint.setRadialGradient(colors, positions, centerX, - centerY, radius, tileMode); + int tileMode) { + mPaint.setRadialGradient(colors, 0, positions, centerX, centerY, radius, tileMode); return this; } /** * Set a shader that draws a sweep gradient around a center point. * - * @param centerX The x-coordinate of the center - * @param centerY The y-coordinate of the center - * @param colors The sRGB colors to be distributed between around the - * center. There must be at least 2 colors in the array. - * @param positions May be NULL. The relative position of each corresponding - * color in the colors array, beginning with 0 and ending - * with 1.0. If the values are not monotonic, the drawing - * may produce unexpected results. If positions is NULL, - * then the colors are automatically spaced evenly. + * @param centerX The x-coordinate of the center + * @param centerY The y-coordinate of the center + * @param colors The sRGB colors to be distributed between around the center. There must be at + * least 2 colors in the array. + * @param positions May be NULL. The relative position of each corresponding color in the colors + * array, beginning with 0 and ending with 1.0. If the values are not monotonic, the drawing + * may produce unexpected results. If positions is NULL, then the colors are automatically + * spaced evenly. */ - public Painter setSweepGradient( - float centerX, - float centerY, - int[] colors, - float[] positions - ) { - mPaint.setSweepGradient(colors, positions, centerX, centerY); + public Painter setSweepGradient(float centerX, float centerY, int[] colors, float[] positions) { + mPaint.setSweepGradient(colors, 0, positions, centerX, centerY); return this; } @@ -219,10 +194,11 @@ class Painter { } /** - * sets a typeface object that best matches the specified existing - * typeface and the specified weight and italic style + * sets a typeface object that best matches the specified existing typeface and the specified + * weight and italic style + * + *

    Below are numerical values and corresponding common weight names. * - *

    Below are numerical values and corresponding common weight names.

    * * * @@ -236,25 +212,21 @@ class Painter { *
    ValueCommon weight name
    100Thin
    900Black
    * * @param fontType 0 = default 1 = sans serif 2 = serif 3 = monospace - * @param weight The desired weight to be drawn. - * @param italic {@code true} if italic style is desired to be drawn. - * Otherwise, {@code false} + * @param weight The desired weight to be drawn. + * @param italic {@code true} if italic style is desired to be drawn. Otherwise, {@code false} */ public Painter setTypeface(int fontType, int weight, boolean italic) { mPaint.setTextStyle(fontType, weight, italic); return this; } - public Painter setFilterBitmap(boolean filter) { mPaint.setFilterBitmap(filter); return this; } - public Painter setShader(int id) { mPaint.setShader(id); return this; } - } 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 5b295eb700ecf91bc6cb3744a00a24b0e5842467..1d673c4c5ab6b01435aa67a8201d555171a08206 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,9 +15,6 @@ */ 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 */ @@ -59,7 +56,6 @@ public class AnimatedFloatExpression { public static final float RAD = asNan(OFFSET + 30); public static final float CEIL = asNan(OFFSET + 31); - // Array ops public static final float A_DEREF = asNan(OFFSET + 32); public static final float A_MAX = asNan(OFFSET + 33); @@ -69,14 +65,13 @@ public class AnimatedFloatExpression { public static final float A_LEN = asNan(OFFSET + 37); public static final int LAST_OP = OFFSET + 37; - 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; - private static final float FP_TO_RAD = 57.29577951f; // 180/PI - private static final float FP_TO_DEG = 0.01745329252f; // 180/PI + // private static final float FP_PI = (float) Math.PI; + private static final float FP_TO_RAD = 57.29578f; // 180/PI + private static final float FP_TO_DEG = 0.017453292f; // 180/PI float[] mStack; float[] mLocalStack = new float[128]; @@ -106,20 +101,13 @@ 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 * } + * 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 @@ -140,7 +128,6 @@ public class AnimatedFloatExpression { return mStack[sp]; } - /** * Evaluate a float expression * @@ -149,8 +136,9 @@ public class AnimatedFloatExpression { * @param var * @return */ - public float eval(CollectionsAccess ca, float[] exp, float... var) { - mStack = exp; + public float eval(CollectionsAccess ca, float[] exp, int len, float... var) { + System.arraycopy(exp, 0, mLocalStack, 0, len); + mStack = mLocalStack; mVar = var; mCollectionsAccess = ca; int sp = -1; @@ -159,7 +147,7 @@ public class AnimatedFloatExpression { float v = mStack[i]; if (Float.isNaN(v)) { int id = fromNaN(v); - if ((id & ID_REGION_MASK) != ID_REGION_ARRAY) { + if ((id & NanMap.ID_REGION_MASK) != NanMap.ID_REGION_ARRAY) { sp = mOps[id - OFFSET].eval(sp); } else { mStack[++sp] = v; @@ -171,6 +159,34 @@ public class AnimatedFloatExpression { return mStack[sp]; } + /** + * Evaluate a float expression + * + * @param ca + * @param exp + * @return + */ + public float eval(CollectionsAccess ca, float[] exp, int len) { + System.arraycopy(exp, 0, mLocalStack, 0, len); + mStack = mLocalStack; + mCollectionsAccess = ca; + int sp = -1; + + for (int i = 0; i < len; i++) { + float v = mStack[i]; + if (Float.isNaN(v)) { + int id = fromNaN(v); + if ((id & NanMap.ID_REGION_MASK) != NanMap.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])); @@ -238,11 +254,11 @@ public class AnimatedFloatExpression { mStack[sp - 1] = mStack[sp - 1] * mStack[sp]; return sp - 1; }, - (sp) -> { // DIV + (sp) -> { // DIV mStack[sp - 1] = mStack[sp - 1] / mStack[sp]; return sp - 1; }, - (sp) -> { // MOD + (sp) -> { // MOD mStack[sp - 1] = mStack[sp - 1] % mStack[sp]; return sp - 1; }, @@ -327,13 +343,11 @@ public class AnimatedFloatExpression { return sp - 2; }, (sp) -> { // Ternary conditional - mStack[sp - 2] = (mStack[sp] > 0) - ? mStack[sp - 1] : mStack[sp - 2]; + mStack[sp - 2] = (mStack[sp] > 0) ? mStack[sp - 1] : mStack[sp - 2]; return sp - 2; }, (sp) -> { // CLAMP(min,max, val) - mStack[sp - 2] = Math.min(Math.max(mStack[sp - 2], mStack[sp]), - mStack[sp - 1]); + mStack[sp - 2] = Math.min(Math.max(mStack[sp - 2], mStack[sp]), mStack[sp - 1]); return sp - 2; }, (sp) -> { // CBRT cuberoot @@ -354,7 +368,7 @@ public class AnimatedFloatExpression { }, (sp) -> { // A_DEREF int id = fromNaN(mStack[sp]); - mStack[sp] = mCollectionsAccess.getFloatValue(id, (int) (mStack[sp - 1])); + mStack[sp] = mCollectionsAccess.getFloatValue(id, (int) mStack[sp - 1]); return sp - 1; }, (sp) -> { // A_MAX @@ -399,11 +413,9 @@ public class AnimatedFloatExpression { }, (sp) -> { // A_LEN int id = fromNaN(mStack[sp]); - mStack[sp] = mCollectionsAccess.getFloatsLength(id); + mStack[sp] = mCollectionsAccess.getListLength(id); return sp; }, - - (sp) -> { // first var = mStack[sp] = mVar[0]; return sp; @@ -492,7 +504,8 @@ public class AnimatedFloatExpression { s.append(toMathName(v)); } else { int id = fromNaN(v); - String idString = (id > ID_REGION_ARRAY) ? ("A_" + (id & 0xFFFFF)) : "" + id; + String idString = + (id > NanMap.ID_REGION_ARRAY) ? ("A_" + (id & 0xFFFFF)) : "" + id; s.append("["); s.append(idString); s.append("]"); @@ -513,7 +526,7 @@ public class AnimatedFloatExpression { } static String toString(float[] exp, int sp) { - String[] str = new String[exp.length]; + // String[] str = new String[exp.length]; if (Float.isNaN(exp[sp])) { int id = fromNaN(exp[sp]) - OFFSET; switch (NO_OF_OPS[id]) { @@ -523,24 +536,38 @@ public class AnimatedFloatExpression { return sNames.get(id) + "(" + toString(exp, sp + 1) + ") "; case 2: if (infix(id)) { - return "(" + toString(exp, sp + 1) - + sNames.get(id) + " " - + toString(exp, sp + 2) + ") "; + return "(" + + toString(exp, sp + 1) + + sNames.get(id) + + " " + + toString(exp, sp + 2) + + ") "; } else { - return sNames.get(id) + "(" - + toString(exp, sp + 1) + ", " - + toString(exp, sp + 2) + ")"; + return sNames.get(id) + + "(" + + toString(exp, sp + 1) + + ", " + + toString(exp, sp + 2) + + ")"; } case 3: if (infix(id)) { - return "((" + toString(exp, sp + 1) + ") ? " - + toString(exp, sp + 2) + ":" - + toString(exp, sp + 3) + ")"; + return "((" + + toString(exp, sp + 1) + + ") ? " + + toString(exp, sp + 2) + + ":" + + toString(exp, sp + 3) + + ")"; } else { return sNames.get(id) - + "(" + toString(exp, sp + 1) - + ", " + toString(exp, sp + 2) - + ", " + toString(exp, sp + 3) + ")"; + + "(" + + toString(exp, sp + 1) + + ", " + + toString(exp, sp + 2) + + ", " + + toString(exp, sp + 3) + + ")"; } } } @@ -549,12 +576,40 @@ public class AnimatedFloatExpression { static final int[] NO_OF_OPS = { -1, // no op - 2, 2, 2, 2, 2, // + - * / % - 2, 2, 2, // min max, power - 1, 1, 1, 1, 1, 1, 1, 1, //sqrt,abs,CopySign,exp,floor,log,ln - 1, 1, 1, 1, 1, 1, 1, 2, // round,sin,cos,tan,asin,acos,atan,atan2 - 3, 3, 3, 1, 1, 1, 1, - 0, 0, 0 // mad, ?:, + 2, + 2, + 2, + 2, + 2, // + - * / % + 2, + 2, + 2, // min max, power + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, // sqrt,abs,CopySign,exp,floor,log,ln + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, // round,sin,cos,tan,asin,acos,atan,atan2 + 3, + 3, + 3, + 1, + 1, + 1, + 1, + 0, + 0, + 0 // mad, ?:, // a[0],a[1],a[2] }; diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ArrayAccess.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ArrayAccess.java index 4c7cc3889bcb8de2beec11041ff2a48b64a9301c..eb5e4828f2a0779ee5f242be82e302cab23513ca 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ArrayAccess.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ArrayAccess.java @@ -15,10 +15,21 @@ */ package com.android.internal.widget.remotecompose.core.operations.utilities; +/** + * Support a standardized interface to commands that contain arrays All commands that implement + * array access will be collected in a map in the state TODO refactor to DataAccess, + * FloatArrayAccess, ListAccess, MapAccess + */ public interface ArrayAccess { float getFloatValue(int index); + + default int getId(int index) { + return 0; + } + float[] getFloats(); - int getFloatsLength(); + + int getLength(); 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 index 9e5312676aa4b00dd7c09ee41f7049f60846ca18..0128253e1f90fcebf9a1d016bd559fd67211aa21 100644 --- 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 @@ -15,12 +15,20 @@ */ package com.android.internal.widget.remotecompose.core.operations.utilities; +/** + * interface to allow expressions to access collections Todo define a convention for when access is + * unavailable + */ 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); + int getListLength(int id); + + int getId(int listId, int index); + + default int getIntValue(int listId, int index) { + return (int) getFloatValue(listId, 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 fb96ceffa58ac7978534403d5ba451bfdc881baa..937a25d2cda616636d9aa847b852400cbea133a5 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 @@ -16,21 +16,14 @@ package com.android.internal.widget.remotecompose.core.operations.utilities; /** - * These are tools to use long Color as variables - * long colors are stored a 0xXXXXXXXX XXXXXX?? - * in SRGB the colors are stored 0xAARRGGBB,00000000 - * SRGB color sapce is color space 0 - * Our Color will use color float with a - * Current android supports - * SRGB, LINEAR_SRGB, EXTENDED_SRGB, LINEAR_EXTENDED_SRGB, BT709, BT2020, - * DCI_P3, DISPLAY_P3, NTSC_1953, SMPTE_C, ADOBE_RGB, PRO_PHOTO_RGB, ACES, - * ACESCG, CIE_XYZ, CIE_LAB, BT2020_HLG, BT2020_PQ 0..17 respectively - * - * Our color space will be 62 (MAX_ID-1). (0x3E) - * Storing the default value in SRGB format and having the - * id of the color between the ARGB values and the 62 i.e. - * 0xAARRGGBB 00 00 00 3E + * These are tools to use long Color as variables long colors are stored a 0xXXXXXXXX XXXXXX?? in + * SRGB the colors are stored 0xAARRGGBB,00000000 SRGB color sapce is color space 0 Our Color will + * use color float with a Current android supports SRGB, LINEAR_SRGB, EXTENDED_SRGB, + * LINEAR_EXTENDED_SRGB, BT709, BT2020, DCI_P3, DISPLAY_P3, NTSC_1953, SMPTE_C, ADOBE_RGB, + * PRO_PHOTO_RGB, ACES, ACESCG, CIE_XYZ, CIE_LAB, BT2020_HLG, BT2020_PQ 0..17 respectively * + *

    Our color space will be 62 (MAX_ID-1). (0x3E) Storing the default value in SRGB format and + * having the id of the color between the ARGB values and the 62 i.e. 0xAARRGGBB 00 00 00 3E */ public class ColorUtils { public static int RC_COLOR = 62; @@ -53,6 +46,7 @@ public class ColorUtils { /** * get default color from long color + * * @param color * @return */ diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/DataMap.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/DataMap.java new file mode 100644 index 0000000000000000000000000000000000000000..24f17d7b00c798513ceb82632182170a6431d940 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/DataMap.java @@ -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.internal.widget.remotecompose.core.operations.utilities; + +public class DataMap { + public String[] mNames; + public int[] mIds; + public byte[] mTypes; + + public DataMap(String[] names, byte[] types, int[] ids) { + mNames = names; + mTypes = types; + mIds = ids; + } + + public int getPos(String str) { + for (int i = 0; i < mNames.length; i++) { + String name = mNames[i]; + if (str.equals(name)) { + return i; + } + } + return -1; + } + + public byte getType(int pos) { + return mTypes[pos]; + } + + public int getId(int pos) { + return mIds[pos]; + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ImageScaling.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ImageScaling.java new file mode 100644 index 0000000000000000000000000000000000000000..00c87c1f9c80034c1dbfb29a44e73711d6266b37 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ImageScaling.java @@ -0,0 +1,226 @@ +/* + * 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; + +/** Implement the scaling logic for Compose Image or ImageView */ +public class ImageScaling { + + private static final boolean DEBUG = false; + + public static final int SCALE_NONE = 0; + public static final int SCALE_INSIDE = 1; + public static final int SCALE_FILL_WIDTH = 2; + public static final int SCALE_FILL_HEIGHT = 3; + public static final int SCALE_FIT = 4; + public static final int SCALE_CROP = 5; + public static final int SCALE_FILL_BOUNDS = 6; + public static final int SCALE_FIXED_SCALE = 7; + + private float mSrcLeft; + private float mSrcTop; + private float mSrcRight; + private float mSrcBottom; + private float mDstLeft; + private float mDstTop; + private float mDstRight; + private float mDstBottom; + private float mScaleFactor; + private int mScaleType; + + public float mFinalDstLeft; + public float mFinalDstTop; + public float mFinalDstRight; + public float mFinalDstBottom; + + public ImageScaling() {} + + public ImageScaling( + float srcLeft, + float srcTop, + float srcRight, + float srcBottom, + float dstLeft, + float dstTop, + float dstRight, + float dstBottom, + int type, + float scale) { + + mSrcLeft = srcLeft; + mSrcTop = srcTop; + mSrcRight = srcRight; + mSrcBottom = srcBottom; + mDstLeft = dstLeft; + mDstTop = dstTop; + mDstRight = dstRight; + mDstBottom = dstBottom; + mScaleType = type; + mScaleFactor = scale; + adjustDrawToType(); + } + + public void setup( + float srcLeft, + float srcTop, + float srcRight, + float srcBottom, + float dstLeft, + float dstTop, + float dstRight, + float dstBottom, + int type, + float scale) { + + mSrcLeft = srcLeft; + mSrcTop = srcTop; + mSrcRight = srcRight; + mSrcBottom = srcBottom; + mDstLeft = dstLeft; + mDstTop = dstTop; + mDstRight = dstRight; + mDstBottom = dstBottom; + mScaleType = type; + mScaleFactor = scale; + adjustDrawToType(); + } + + static String str(float v) { + String s = " " + (int) v; + return s.substring(s.length() - 3); + } + + void print(String str, float left, float top, float right, float bottom) { + String s = str; + s += str(left) + ", " + str(top) + ", " + str(right) + ", " + str(bottom) + ", "; + s += " [" + str(right - left) + " x " + str(bottom - top) + "]"; + System.out.println(s); + } + + /** This adjust destnation on the DrawBitMapInt to support all contentScale types */ + private void adjustDrawToType() { + int sw = (int) (mSrcRight - mSrcLeft); + int sh = (int) (mSrcBottom - mSrcTop); + float width = mDstRight - mDstLeft; + float height = mDstBottom - mDstTop; + int dw = (int) width; + int dh = (int) height; + int dLeft = 0; + int dRight = dw; + int dTop = 0; + int dBottom = dh; + if (DEBUG) { + print("test rc ", mSrcLeft, mSrcTop, mSrcRight, mSrcBottom); + print("test dst ", mDstLeft, mDstTop, mDstRight, mDstBottom); + } + + switch (mScaleType) { + case SCALE_NONE: + dh = sh; + dw = sw; + dTop = ((int) height - dh) / 2; + dBottom = dh + dTop; + dLeft = ((int) width - dw) / 2; + dRight = dw + dLeft; + break; + case SCALE_INSIDE: + if (dh > sh && dw > sw) { + dh = sh; + dw = sw; + } else if (sw * height > width * sh) { // width dominated + dh = (dw * sh) / sw; + } else { + dw = (dh * sw) / sh; + } + dTop = ((int) height - dh) / 2; + dBottom = dh + dTop; + dLeft = ((int) width - dw) / 2; + dRight = dw + dLeft; + break; + case SCALE_FILL_WIDTH: + dh = (dw * sh) / sw; + + dTop = ((int) height - dh) / 2; + dBottom = dh + dTop; + dLeft = ((int) width - dw) / 2; + dRight = dw + dLeft; + break; + case SCALE_FILL_HEIGHT: + dw = (dh * sw) / sh; + + dTop = ((int) height - dh) / 2; + dBottom = dh + dTop; + dLeft = ((int) width - dw) / 2; + dRight = dw + dLeft; + break; + case SCALE_FIT: + if (sw * height > width * sh) { // width dominated + dh = (dw * sh) / sw; + dTop = ((int) height - dh) / 2; + dBottom = dh + dTop; + } else { + dw = (dh * sw) / sh; + dLeft = ((int) width - dw) / 2; + dRight = dw + dLeft; + } + break; + case SCALE_CROP: + if (sw * height < width * sh) { // width dominated + dh = (dw * sh) / sw; + dTop = ((int) height - dh) / 2; + dBottom = dh + dTop; + } else { + dw = (dh * sw) / sh; + dLeft = ((int) width - dw) / 2; + dRight = dw + dLeft; + } + break; + case SCALE_FILL_BOUNDS: + // do nothing + break; + case SCALE_FIXED_SCALE: + dh = (int) (sh * mScaleFactor); + dw = (int) (sw * mScaleFactor); + dTop = ((int) height - dh) / 2; + dBottom = dh + dTop; + dLeft = ((int) width - dw) / 2; + dRight = dw + dLeft; + break; + } + + mFinalDstRight = dRight + mDstLeft; + mFinalDstLeft = dLeft + mDstLeft; + mFinalDstBottom = dBottom + mDstTop; + mFinalDstTop = dTop + mDstTop; + + if (DEBUG) { + print("test out ", mFinalDstLeft, mFinalDstTop, mFinalDstRight, mFinalDstBottom); + } + } + + public static String typeToString(int type) { + String[] typeString = { + "none", + "inside", + "fill_width", + "fill_height", + "fit", + "crop", + "fill_bounds", + "fixed_scale" + }; + return typeString[type]; + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntFloatMap.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntFloatMap.java index b2d714e08a0ef129dbb5225e1f5ff6e0ccb1957b..3b4ece937e58ed10d82c42a57004e5a1d7f32797 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntFloatMap.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntFloatMap.java @@ -32,9 +32,7 @@ public class IntFloatMap { mValues = new float[DEFAULT_CAPACITY]; } - /** - * clear the map - */ + /** clear the map */ public void clear() { Arrays.fill(mKeys, NOT_PRESENT); Arrays.fill(mValues, Float.NaN); // not strictly necessary but defensive @@ -78,8 +76,7 @@ public class IntFloatMap { int index = findKey(key); if (index == -1) { return 0; - } else - return mValues[index]; + } else return mValues[index]; } /** diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntIntMap.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntIntMap.java index 606dc785eb201fd72877fcf3aeb125be3b9fbb10..68cd0e6550280246f1168d2f7944fb8e92b8a090 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntIntMap.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntIntMap.java @@ -31,9 +31,7 @@ public class IntIntMap { mValues = new int[DEFAULT_CAPACITY]; } - /** - * clear the map - */ + /** clear the map */ public void clear() { Arrays.fill(mKeys, NOT_PRESENT); Arrays.fill(mValues, 0); @@ -77,8 +75,7 @@ public class IntIntMap { int index = findKey(key); if (index == -1) { return 0; - } else - return mValues[index]; + } else return mValues[index]; } /** diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntMap.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntMap.java index 0512fa6be71023a224a055f71a81f439ac0cd3a8..84e78431790a3d573b9e1dd4fd75718ebafbff53 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntMap.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntMap.java @@ -42,7 +42,7 @@ public class IntMap { mSize = 0; } - public T put(int key, T value) { + public T put(int key, T value) { if (key == NOT_PRESENT) throw new IllegalArgumentException("Key cannot be NOT_PRESENT"); if (mSize > mKeys.length * LOAD_FACTOR) { resize(); @@ -50,24 +50,23 @@ public class IntMap { return insert(key, value); } - public T get(int key) { + public T get(int key) { int index = findKey(key); if (index == -1) { - return null; - } else - return mValues.get(index); + return null; + } else return mValues.get(index); } public int size() { return mSize; } - private T insert(int key, T value) { + private T insert(int key, T value) { int index = hash(key) % mKeys.length; while (mKeys[index] != NOT_PRESENT && mKeys[index] != key) { index = (index + 1) % mKeys.length; } - T oldValue = null; + T oldValue = null; if (mKeys[index] == NOT_PRESENT) { mSize++; } else { @@ -78,7 +77,7 @@ public class IntMap { return oldValue; } - private int findKey(int key) { + private int findKey(int key) { int index = hash(key) % mKeys.length; while (mKeys[index] != NOT_PRESENT) { if (mKeys[index] == key) { @@ -89,11 +88,11 @@ public class IntMap { return -1; } - private int hash(int key) { + private int hash(int key) { return key; } - private void resize() { + private void resize() { int[] oldKeys = mKeys; ArrayList oldValues = mValues; mKeys = new int[(oldKeys.length * 2)]; @@ -111,4 +110,46 @@ public class IntMap { } } } + + public T remove(int key) { + int index = hash(key) % mKeys.length; + int initialIndex = index; + + while (mKeys[index] != NOT_PRESENT) { + if (mKeys[index] == key) { + T oldValue = mValues.get(index); + mKeys[index] = NOT_PRESENT; + mValues.set(index, null); + mSize--; + + // Rehash the cluster of keys following the removed key + rehashFrom((index + 1) % mKeys.length); + return oldValue; + } + index = (index + 1) % mKeys.length; + if (index == initialIndex) { + break; // Avoid infinite loop + } + } + return null; // Key not found + } + + private void rehashFrom(int startIndex) { + int index = startIndex; + + while (mKeys[index] != NOT_PRESENT) { + int keyToRehash = mKeys[index]; + T valueToRehash = mValues.get(index); + + // Remove the key-value pair from the current position + mKeys[index] = NOT_PRESENT; + mValues.set(index, null); + mSize--; + + // Re-insert the key-value pair + insert(keyToRehash, valueToRehash); + + index = (index + 1) % mKeys.length; + } + } } 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 ae61ec1e5eec82c3c10335c3f52417e5913a8f81..baa144d6b28da5c861abeea20fe6fe48af457a2b 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 @@ -18,8 +18,8 @@ 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) + *

    The evaluation is based on int opMask, int[]exp exp[i] is an operator if (opMask*(1 << i) != + * 0) */ public class IntegerExpressionEvaluator { static IntMap sNames = new IntMap<>(); @@ -51,26 +51,25 @@ public class IntegerExpressionEvaluator { public static final int I_IFELSE = OFFSET + 22; public static final int I_MAD = OFFSET + 23; - public static final float LAST_OP = 24; + public static final float LAST_OP = 25; public static final int I_VAR1 = OFFSET + 24; - public static final int I_VAR2 = OFFSET + 24; - + public static final int I_VAR2 = OFFSET + 25; int[] mStack; int[] mLocalStack = new int[128]; int[] mVar; - interface Op { int eval(int sp); } /** * 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 + * @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) { @@ -90,10 +89,11 @@ public class IntegerExpressionEvaluator { /** * 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 + * @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) { @@ -114,9 +114,10 @@ public class IntegerExpressionEvaluator { /** * Evaluate a int expression + * * @param opMask bits that are operators - * @param exp rpn sequence of values and operators - * @param var variables if the expression is a function + * @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 opMask, int[] exp, int... var) { @@ -150,11 +151,11 @@ public class IntegerExpressionEvaluator { mStack[sp - 1] = mStack[sp - 1] * mStack[sp]; return sp - 1; }, - (sp) -> { // DIV + (sp) -> { // DIV mStack[sp - 1] = mStack[sp - 1] / mStack[sp]; return sp - 1; }, - (sp) -> { // MOD + (sp) -> { // MOD mStack[sp - 1] = mStack[sp - 1] % mStack[sp]; return sp - 1; }, @@ -183,8 +184,7 @@ public class IntegerExpressionEvaluator { return sp - 1; }, (sp) -> { // COPY_SIGN copy the sing of (using bit magic) - mStack[sp - 1] = (mStack[sp - 1] ^ (mStack[sp] >> 31)) - - (mStack[sp] >> 31); + mStack[sp - 1] = (mStack[sp - 1] ^ (mStack[sp] >> 31)) - (mStack[sp] >> 31); return sp - 1; }, (sp) -> { // MIN @@ -219,22 +219,18 @@ public class IntegerExpressionEvaluator { mStack[sp] = (mStack[sp] >> 31) | (-mStack[sp] >>> 31); return sp; }, - (sp) -> { // CLAMP(min,max, val) - mStack[sp - 2] = Math.min(Math.max(mStack[sp - 2], mStack[sp]), - mStack[sp - 1]); + mStack[sp - 2] = Math.min(Math.max(mStack[sp - 2], mStack[sp]), mStack[sp - 1]); return sp - 2; }, (sp) -> { // Ternary conditional - mStack[sp - 2] = (mStack[sp] > 0) - ? mStack[sp - 1] : mStack[sp - 2]; + mStack[sp - 2] = (mStack[sp] > 0) ? mStack[sp - 1] : mStack[sp - 2]; return sp - 2; }, (sp) -> { // MAD mStack[sp - 2] = mStack[sp] + mStack[sp - 1] * mStack[sp - 2]; return sp - 2; }, - (sp) -> { // first var = mStack[sp] = mVar[0]; return sp; @@ -296,7 +292,7 @@ public class IntegerExpressionEvaluator { * Convert an expression encoded as an array of ints int to a string * * @param opMask bits that are operators - * @param exp rpn sequence of values and operators + * @param exp rpn sequence of values and operators * @param labels String that represent the variable names * @return */ @@ -328,7 +324,7 @@ public class IntegerExpressionEvaluator { * Convert an expression encoded as an array of ints int ot a string * * @param opMask bit mask of operators vs commands - * @param exp rpn sequence of values and operators + * @param exp rpn sequence of values and operators * @return string representation of the expression */ public static String toString(int opMask, int[] exp) { @@ -357,8 +353,9 @@ public class IntegerExpressionEvaluator { /** * This creates an infix string expression + * * @param opMask The bits that are operators - * @param exp the array of expressions + * @param exp the array of expressions * @return infix string */ public static String toStringInfix(int opMask, int[] exp) { @@ -375,24 +372,39 @@ public class IntegerExpressionEvaluator { return sNames.get(id) + "(" + toString(mask, exp, sp - 1) + ") "; case 2: if (infix(id)) { - return "(" + toString(mask, exp, sp - 2) - + " " + sNames.get(id) + " " - + toString(mask, exp, sp - 1) + ") "; + return "(" + + toString(mask, exp, sp - 2) + + " " + + sNames.get(id) + + " " + + toString(mask, exp, sp - 1) + + ") "; } else { - return sNames.get(id) + "(" - + toString(mask, exp, sp - 2) + ", " - + toString(mask, exp, sp - 1) + ")"; + return sNames.get(id) + + "(" + + toString(mask, exp, sp - 2) + + ", " + + toString(mask, exp, sp - 1) + + ")"; } case 3: if (infix(id)) { - return "((" + toString(mask, exp, sp + 3) + ") ? " - + toString(mask, exp, sp - 2) + ":" - + toString(mask, exp, sp - 1) + ")"; + return "((" + + toString(mask, exp, sp + 3) + + ") ? " + + toString(mask, exp, sp - 2) + + ":" + + toString(mask, exp, sp - 1) + + ")"; } else { return sNames.get(id) - + "(" + toString(mask, exp, sp - 3) - + ", " + toString(mask, exp, sp - 2) - + ", " + toString(mask, exp, sp - 1) + ")"; + + "(" + + toString(mask, exp, sp - 3) + + ", " + + toString(mask, exp, sp - 2) + + ", " + + toString(mask, exp, sp - 1) + + ")"; } } } @@ -401,11 +413,32 @@ public class IntegerExpressionEvaluator { static final int[] NO_OF_OPS = { -1, // no op - 2, 2, 2, 2, 2, // + - * / % - 2, 2, 2, 2, 2, 2, 2, 2, 2, //<<, >> , >>> , | , &, ^, min max - 1, 1, 1, 1, 1, 1, // neg, abs, ++, -- , not , sign - 3, 3, 3, // clamp, ifElse, mad, - 0, 0, 0 // mad, ?:, + 2, + 2, + 2, + 2, + 2, // + - * / % + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, // <<, >> , >>> , | , &, ^, min max + 1, + 1, + 1, + 1, + 1, + 1, // neg, abs, ++, -- , not , sign + 3, + 3, + 3, // clamp, ifElse, mad, + 0, + 0, + 0 // mad, ?:, // a[0],a[1],a[2] }; @@ -416,13 +449,14 @@ public class IntegerExpressionEvaluator { * @return true if the operator is infix */ static boolean infix(int n) { - return ((n < 12)); + return n < 12; } /** * is it an id or operation + * * @param opMask the bits that mark elements as an operation - * @param i the bit to check + * @param i the bit to check * @return true if the bit is 1 */ public static boolean isOperation(int opMask, int i) { 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 1e669c6b2e35d8291c9c5c3b660866b5df1730f6..0616cc7306f54d9e29b8a62d6be9a1af26ae8d38 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 @@ -18,17 +18,12 @@ package com.android.internal.widget.remotecompose.core.operations.utilities; 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 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 + * This defines the major id maps and ranges used by remote compose 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 = 0x300_000; @@ -71,7 +66,6 @@ public class NanMap { public static final int ID_REGION_MASK = 0x700000; public static final int ID_REGION_ARRAY = 0x200000; - /** * Get ID from Nan float * diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/StringSerializer.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/StringSerializer.java index fb90781040893a9736ad85b90a1de707aaa8e349..ab7576e12aa66f1b91e110d508bdafbca53ed395 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/StringSerializer.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/StringSerializer.java @@ -15,15 +15,14 @@ */ package com.android.internal.widget.remotecompose.core.operations.utilities; -/** - * Utility serializer maintaining an indent buffer - */ +/** Utility serializer maintaining an indent buffer */ public class StringSerializer { StringBuffer mBuffer = new StringBuffer(); String mIndentBuffer = " "; /** * Append some content to the current buffer + * * @param indent the indentation level to use * @param content content to append */ @@ -35,17 +34,17 @@ public class StringSerializer { mBuffer.append("\n"); } - /** - * Reset the buffer - */ + /** Reset the buffer */ public void reset() { mBuffer = new StringBuffer(); } /** * Return a string representation of the buffer + * * @return string representation */ + @Override public String toString() { return mBuffer.toString(); } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/StringUtils.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/StringUtils.java index 8dd5405ddf129412484c33f0a7669972d99be780..f2ccb401ea8f0c2e81dd35a94c07cad6c0f38d79 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/StringUtils.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/StringUtils.java @@ -17,26 +17,21 @@ package com.android.internal.widget.remotecompose.core.operations.utilities; import java.util.Arrays; -/** - * Utilities for string manipulation - */ +/** Utilities for string manipulation */ public class StringUtils { /** - * Converts a float into a string. - * Providing a defined number of characters before and after the + * Converts a float into a string. Providing a defined number of characters before and after the * decimal point. * - * @param value The value to convert to string + * @param value The value to convert to string * @param beforeDecimalPoint digits before the decimal point - * @param afterDecimalPoint digits after the decimal point - * @param pre character to pad width 0 = no pad typically ' ' or '0' - * @param post character to pad width 0 = no pad typically ' ' or '0' + * @param afterDecimalPoint digits after the decimal point + * @param pre character to pad width 0 = no pad typically ' ' or '0' + * @param post character to pad width 0 = no pad typically ' ' or '0' * @return */ - public static String floatToString(float value, - int beforeDecimalPoint, - int afterDecimalPoint, - char pre, char post) { + public static String floatToString( + float value, int beforeDecimalPoint, int afterDecimalPoint, char pre, char post) { int integerPart = (int) value; float fractionalPart = value % 1; @@ -52,7 +47,6 @@ public class StringUtils { integerPartString = new String(pad) + integerPartString; } - } else if (iLen > beforeDecimalPoint) { integerPartString = integerPartString.substring(iLen - beforeDecimalPoint); } @@ -68,7 +62,7 @@ public class StringUtils { fractionalPart = Math.round(fractionalPart); for (int i = 0; i < afterDecimalPoint; i++) { - fractionalPart *= .1; + fractionalPart *= .1F; } String fact = Float.toString(fractionalPart); @@ -92,5 +86,4 @@ public class StringUtils { return integerPartString + "." + fact; } - } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/BounceCurve.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/BounceCurve.java index c3cd5ae9c79de5eb82078ab52afd5436acae8fb0..3161aa19089566899483aac61583086fa810dbe6 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/BounceCurve.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/BounceCurve.java @@ -15,9 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.utilities.easing; -/** - * Provide a specific bouncing easing function - */ +/** Provide a specific bouncing easing function */ public class BounceCurve extends Easing { private static final float N1 = 7.5625f; private static final float D1 = 2.75f; @@ -63,5 +61,4 @@ public class BounceCurve extends Easing { } return 0f; } - } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/CubicEasing.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/CubicEasing.java index fd1ee036e4754dfb532647d669b2ad2fc04d4ffa..60a59cf464cd02ee8214a5c43a509068c04b734e 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/CubicEasing.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/CubicEasing.java @@ -16,7 +16,6 @@ package com.android.internal.widget.remotecompose.core.operations.utilities.easing; class CubicEasing extends Easing { - float mType = 0; float mX1 = 0f; float mY1 = 0f; float mX2 = 0f; @@ -92,25 +91,24 @@ class CubicEasing extends Easing { return mY1 * f1 + mY2 * f2 + f3; } - private float getDiffX(float t) { - float t1 = 1 - t; - return 3 * t1 * t1 * mX1 + 6 * t1 * t * (mX2 - mX1) + 3 * t * t * (1 - mX2); - } + // private float getDiffX(float t) { + // float t1 = 1 - t; + // return 3 * t1 * t1 * mX1 + 6 * t1 * t * (mX2 - mX1) + 3 * t * t * (1 - mX2); + // } - private float getDiffY(float t) { - float t1 = 1 - t; - return 3 * t1 * t1 * mY1 + 6 * t1 * t * (mY2 - mY1) + 3 * t * t * (1 - mY2); - } + // private float getDiffY(float t) { + // float t1 = 1 - t; + // return 3 * t1 * t1 * mY1 + 6 * t1 * t * (mY2 - mY1) + 3 * t * t * (1 - mY2); + // } - /** - * binary search for the region and linear interpolate the answer - */ + /** binary search for the region and linear interpolate the answer */ + @Override public float getDiff(float x) { float t = 0.5f; float range = 0.5f; while (range > D_ERROR) { float tx = getX(t); - range *= 0.5; + range *= 0.5f; if (tx < x) { t += range; } else { @@ -124,9 +122,8 @@ class CubicEasing extends Easing { return (y2 - y1) / (x2 - x1); } - /** - * binary search for the region and linear interpolate the answer - */ + /** binary search for the region and linear interpolate the answer */ + @Override public float get(float x) { if (x <= 0.0f) { return 0f; diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/Easing.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/Easing.java index 4ed955069d78690fc3a2210ad1a7949712440198..d8bc83eb8a2e5ddcb23be76bc7c26a0de7f55045 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/Easing.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/Easing.java @@ -15,19 +15,14 @@ */ package com.android.internal.widget.remotecompose.core.operations.utilities.easing; -/** - * The standard interface to Easing functions - */ +/** The standard interface to Easing functions */ public abstract class Easing { int mType; - /** - * get the value at point x - */ + + /** get the value at point x */ public abstract float get(float x); - /** - * get the slope of the easing function at at x - */ + /** get the slope of the easing function at at x */ public abstract float getDiff(float x); public int getType() { @@ -44,5 +39,4 @@ public abstract class Easing { public static final int SPLINE_CUSTOM = 12; public static final int EASE_OUT_BOUNCE = 13; public static final int EASE_OUT_ELASTIC = 14; - } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/ElasticOutCurve.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/ElasticOutCurve.java index e26958302e3cdafc4203795355abd87bf4d824bd..d53cff597f3a94321f70821f99a82eb1e6bd89b1 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/ElasticOutCurve.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/ElasticOutCurve.java @@ -15,9 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.utilities.easing; -/** - * Provide a bouncing Easing function - */ +/** Provide a bouncing Easing function */ public class ElasticOutCurve extends Easing { private static final float F_PI = (float) Math.PI; private static final float C4 = 2 * F_PI / 3; @@ -31,9 +29,7 @@ public class ElasticOutCurve extends Easing { } if (x >= 1) { return 1.0f; - } else - return (float) (Math.pow(2.0f, -10 * x) - * Math.sin((x * 10 - 0.75f) * C4) + 1); + } else return (float) (Math.pow(2.0f, -10 * x) * Math.sin((x * 10 - 0.75f) * C4) + 1); } @Override @@ -41,9 +37,11 @@ public class ElasticOutCurve extends Easing { if (x < 0 || x > 1) { return 0.0f; } else - return (float) ((5 * Math.pow(2.0f, (1 - 10 * x)) - * (LOG_8 * Math.cos(TWENTY_PI * x / 3) + 2 - * F_PI * Math.sin(TWENTY_PI * x / 3)) - / 3)); + return (float) + (5 + * Math.pow(2.0f, 1 - 10 * x) + * (LOG_8 * Math.cos(TWENTY_PI * x / 3) + + 2 * F_PI * Math.sin(TWENTY_PI * x / 3)) + / 3); } } 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 98dbf0048abdd3ca4bec0cc47a65625862df3727..a29b8af5fbd1a8c221a836e1c2a02bea10e135dd 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 @@ -15,9 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.utilities.easing; -/** - * Support Animation of the FloatExpression - */ +/** Support Animation of the FloatExpression */ public class FloatAnimation extends Easing { float[] mSpec; // mSpec[0] = duration @@ -25,12 +23,12 @@ public class FloatAnimation extends Easing { // mSpec[2..1+num_of_param] params // mSpec[2+num_of_param] starting Value Easing mEasingCurve; - private int mType = CUBIC_STANDARD; + private float mDuration = 1; private float mWrap = Float.NaN; private float mInitialValue = Float.NaN; private float mTargetValue = Float.NaN; - private float mScale = 1; + // private float mScale = 1; float mOffset = 0; @Override @@ -51,20 +49,19 @@ public class FloatAnimation extends Easing { } public FloatAnimation() { + mType = CUBIC_STANDARD; mEasingCurve = new CubicEasing(mType); } public FloatAnimation(float... description) { + mType = CUBIC_STANDARD; setAnimationDescription(description); } - public FloatAnimation(int type, - float duration, - float[] description, - float initialValue, - float wrap) { - setAnimationDescription(packToFloatArray(duration, - type, description, initialValue, wrap)); + public FloatAnimation( + int type, float duration, float[] description, float initialValue, float wrap) { + mType = CUBIC_STANDARD; + setAnimationDescription(packToFloatArray(duration, type, description, initialValue, wrap)); } /** @@ -76,11 +73,8 @@ public class FloatAnimation extends Easing { * @param initialValue * @return */ - public static float[] packToFloatArray(float duration, - int type, - float[] spec, - float initialValue, - float wrap) { + public static float[] packToFloatArray( + float duration, int type, float[] spec, float initialValue, float wrap) { int count = 0; if (!Float.isNaN(initialValue)) { @@ -104,7 +98,7 @@ public class FloatAnimation extends Easing { if (duration != 1 || count > 0) { count++; } - if (!Float.isNaN(wrap) || !Float.isNaN(initialValue)) { + if (!Float.isNaN(wrap) || !Float.isNaN(initialValue)) { count++; } float[] ret = new float[count]; @@ -113,11 +107,10 @@ public class FloatAnimation extends Easing { if (ret.length > 0) { ret[pos++] = duration; - } if (ret.length > 1) { - int wrapBit = (Float.isNaN(wrap)) ? 0 : 1; - int initBit = (Float.isNaN(initialValue)) ? 0 : 2; + int wrapBit = Float.isNaN(wrap) ? 0 : 1; + int initBit = Float.isNaN(initialValue) ? 0 : 2; int bits = type | ((wrapBit | initBit) << 8); ret[pos++] = Float.intBitsToFloat(specLen << 16 | bits); } @@ -137,6 +130,7 @@ public class FloatAnimation extends Easing { /** * Create an animation based on a float encoding of the animation + * * @param description */ public void setAnimationDescription(float[] description) { @@ -171,11 +165,12 @@ public class FloatAnimation extends Easing { mEasingCurve = new CubicEasing(type); break; case CUBIC_CUSTOM: - mEasingCurve = new CubicEasing(params[offset + 0], - params[offset + 1], - params[offset + 2], - params[offset + 3] - ); + mEasingCurve = + new CubicEasing( + params[offset + 0], + params[offset + 1], + params[offset + 2], + params[offset + 3]); break; case EASE_OUT_BOUNCE: mEasingCurve = new BounceCurve(type); @@ -191,6 +186,7 @@ public class FloatAnimation extends Easing { /** * Get the duration the interpolate is to take + * * @return duration in seconds */ public float getDuration() { @@ -199,6 +195,7 @@ public class FloatAnimation extends Easing { /** * Set the initial Value + * * @param value */ public void setInitialValue(float value) { @@ -213,6 +210,7 @@ public class FloatAnimation extends Easing { /** * Set the target value to interpolate to + * * @param value */ public void setTargetValue(float value) { @@ -236,25 +234,23 @@ public class FloatAnimation extends Easing { private void setScaleOffset() { if (!Float.isNaN(mInitialValue) && !Float.isNaN(mTargetValue)) { - mScale = (mTargetValue - mInitialValue); + // mScale = (mTargetValue - mInitialValue); // TODO: commented out because + // unused. mOffset = mInitialValue; } else { - mScale = 1; + // mScale = 1; // TODO: commented out because its unused mOffset = 0; } } - /** - * get the value at time t in seconds since start - */ + /** get the value at time t in seconds since start */ + @Override public float get(float t) { - return mEasingCurve.get(t / mDuration) - * (mTargetValue - mInitialValue) + mInitialValue; + return mEasingCurve.get(t / mDuration) * (mTargetValue - mInitialValue) + mInitialValue; } - /** - * get the slope of the easing function at at x - */ + /** get the slope of the easing function at at x */ + @Override public float getDiff(float t) { return mEasingCurve.getDiff(t / mDuration) * (mTargetValue - mInitialValue); } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/GeneralEasing.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/GeneralEasing.java index 50a7d59ed8e0740c1e059e313e257e5d7e4ecd5d..75a60324aa3c7ef20614efdc5c5562cdb0e7e19d 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/GeneralEasing.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/GeneralEasing.java @@ -15,15 +15,14 @@ */ package com.android.internal.widget.remotecompose.core.operations.utilities.easing; -/** - * Provides and interface to create easing functions - */ -public class GeneralEasing extends Easing{ +/** Provides and interface to create easing functions */ +public class GeneralEasing extends Easing { float[] mEasingData = new float[0]; Easing mEasingCurve = new CubicEasing(CUBIC_STANDARD); /** * Set the curve based on the float encoding of it + * * @param data */ public void setCurveSpecification(float[] data) { @@ -47,11 +46,9 @@ public class GeneralEasing extends Easing{ mEasingCurve = new CubicEasing(type); break; case CUBIC_CUSTOM: - mEasingCurve = new CubicEasing(mEasingData[1], - mEasingData[2], - mEasingData[3], - mEasingData[5] - ); + mEasingCurve = + new CubicEasing( + mEasingData[1], mEasingData[2], mEasingData[3], mEasingData[5]); break; case EASE_OUT_BOUNCE: mEasingCurve = new BounceCurve(type); @@ -59,23 +56,20 @@ public class GeneralEasing extends Easing{ } } - /** - * get the value at point x - */ + /** get the value at point x */ + @Override public float get(float x) { return mEasingCurve.get(x); } - /** - * get the slope of the easing function at at x - */ + /** get the slope of the easing function at at x */ + @Override public float getDiff(float x) { return mEasingCurve.getDiff(x); } + @Override public int getType() { return mEasingCurve.getType(); } - - } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/MonotonicCurveFit.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/MonotonicCurveFit.java index 23930b92a282c24654566e4e6f9319d23b5a23be..9355cacde4addfecff9d660895acb4db07f9aaf5 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/MonotonicCurveFit.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/MonotonicCurveFit.java @@ -17,12 +17,8 @@ package com.android.internal.widget.remotecompose.core.operations.utilities.easi import java.util.Arrays; -/** - * This performs a spline interpolation in multiple dimensions - * - * - */ -public class MonotonicCurveFit { +/** This performs a spline interpolation in multiple dimensions */ +public class MonotonicCurveFit { private static final String TAG = "MonotonicCurveFit"; private double[] mT; private double[][] mY; @@ -32,6 +28,7 @@ public class MonotonicCurveFit { /** * create a collection of curves + * * @param time the point along the curve * @param y the parameter at those points */ @@ -78,6 +75,7 @@ public class MonotonicCurveFit { /** * Get the position of all curves at time t + * * @param t * @param v */ @@ -137,6 +135,7 @@ public class MonotonicCurveFit { /** * Get the position of all curves at time t + * * @param t * @param v */ @@ -196,6 +195,7 @@ public class MonotonicCurveFit { /** * Get the position of the jth curve at time t + * * @param t * @param j * @return @@ -230,7 +230,6 @@ public class MonotonicCurveFit { double t1 = mTangent[i][j]; double t2 = mTangent[i + 1][j]; return interpolate(h, x, y1, y2, t1, t2); - } } return 0; // should never reach here @@ -238,6 +237,7 @@ public class MonotonicCurveFit { /** * Get the slope of all the curves at position t + * * @param t * @param v */ @@ -264,11 +264,11 @@ public class MonotonicCurveFit { break; } } - return; } /** * Get the slope of the j curve at position t + * * @param t * @param j * @return @@ -299,34 +299,38 @@ public class MonotonicCurveFit { return mT; } - /** - * Cubic Hermite spline - */ - private static double interpolate(double h, - double x, - double y1, - double y2, - double t1, - double t2) { + /** Cubic Hermite spline */ + private static double interpolate( + double h, double x, double y1, double y2, double t1, double t2) { double x2 = x * x; double x3 = x2 * x; - return -2 * x3 * y2 + 3 * x2 * y2 + 2 * x3 * y1 - 3 * x2 * y1 + y1 - + h * t2 * x3 + h * t1 * x3 - h * t2 * x2 - 2 * h * t1 * x2 + return -2 * x3 * y2 + + 3 * x2 * y2 + + 2 * x3 * y1 + - 3 * x2 * y1 + + y1 + + h * t2 * x3 + + h * t1 * x3 + - h * t2 * x2 + - 2 * h * t1 * x2 + h * t1 * x; } - /** - * Cubic Hermite spline slope differentiated - */ + /** Cubic Hermite spline slope differentiated */ private static double diff(double h, double x, double y1, double y2, double t1, double t2) { double x2 = x * x; - return -6 * x2 * y2 + 6 * x * y2 + 6 * x2 * y1 - 6 * x * y1 + 3 * h * t2 * x2 - + 3 * h * t1 * x2 - 2 * h * t2 * x - 4 * h * t1 * x + h * t1; + return -6 * x2 * y2 + + 6 * x * y2 + + 6 * x2 * y1 + - 6 * x * y1 + + 3 * h * t2 * x2 + + 3 * h * t1 * x2 + - 2 * h * t2 * x + - 4 * h * t1 * x + + h * t1; } - /** - * This builds a monotonic spline to be used as a wave function - */ + /** This builds a monotonic spline to be used as a wave function */ public static MonotonicCurveFit buildWave(String configString) { // done this way for efficiency String str = configString; diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/StepCurve.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/StepCurve.java index 6ed6548405d2cef47d11d589980886bdbf984ac5..b4596897a44fc3cbf15fc1eb19c6b615fc7c40be 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/StepCurve.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/StepCurve.java @@ -15,14 +15,13 @@ */ package com.android.internal.widget.remotecompose.core.operations.utilities.easing; - /** - * This class translates a series of floating point values into a continuous - * curve for use in an easing function including quantize functions - * it is used with the "spline(0,0.3,0.3,0.5,...0.9,1)" it should start at 0 and end at one 1 + * This class translates a series of floating point values into a continuous curve for use in an + * easing function including quantize functions it is used with the "spline(0,0.3,0.3,0.5,...0.9,1)" + * it should start at 0 and end at one 1 */ public class StepCurve extends Easing { - private static final boolean DEBUG = false; + // private static final boolean DEBUG = false; MonotonicCurveFit mCurveFit; public StepCurve(float[] params, int offset, int len) { @@ -55,12 +54,16 @@ public class StepCurve extends Easing { @Override public float getDiff(float x) { + if (x < 0f) return 0; + if (x > 1f) return 0; return (float) mCurveFit.getSlope(x, 0); } - @Override public float get(float x) { + if (x < 0f) return 0; + if (x > 1f) return 1; + return (float) mCurveFit.getPos(x, 0); } } 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 9045bcbd2e062cc844afdc428f530693b2a2ecab..57a804284f0d59f82ff88493c8a572e7214c5f35 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,23 +15,21 @@ */ package com.android.internal.widget.remotecompose.core.types; -import static com.android.internal.widget.remotecompose.core.documentation.Operation.BYTE; -import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.BYTE; 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.documentation.DocumentedOperation; import java.util.List; -/** - * Used to represent a boolean - */ +/** Used to represent a boolean */ public class BooleanConstant implements Operation { private static final int OP_CODE = Operations.DATA_BOOLEAN; - boolean mValue = false; + private boolean mValue = false; private int mId; public BooleanConstant(int id, boolean value) { @@ -39,15 +37,22 @@ public class BooleanConstant implements Operation { mValue = value; } + /** + * Get the value of the boolean constant + * + * @return the value of the boolean + */ + public boolean getValue() { + return mValue; + } + @Override public void write(WireBuffer buffer) { apply(buffer, mId, mValue); } @Override - public void apply(RemoteContext context) { - - } + public void apply(RemoteContext context) {} @Override public String deepToString(String indent) { @@ -88,14 +93,9 @@ public class BooleanConstant implements Operation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Expressions Operations", - OP_CODE, - "BooleanConstant") + 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"); - + .field(DocumentedOperation.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 90faf52f23626c903b3d863d9c416665842250af..3ef9db9de9155c3401a8d29a8f3cb6b22b7614b4 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,20 +15,18 @@ */ 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.DocumentedOperation.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.documentation.DocumentedOperation; import java.util.List; -/** - * Represents a single integer typically used for states - * or named for input into the system - */ +/** Represents a single integer typically used for states or named for input into the system */ public class IntegerConstant implements Operation { private int mValue = 0; private int mId; @@ -87,13 +85,9 @@ public class IntegerConstant implements Operation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Expressions Operations", - id(), - "IntegerConstant") + 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"); - + .field(DocumentedOperation.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 index 70402cf45eaeb15519fbba999d5a7905db5e1660..6d51d194708fe52c1305057b274a1c3f5e60a9da 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/types/LongConstant.java +++ b/core/java/com/android/internal/widget/remotecompose/core/types/LongConstant.java @@ -15,23 +15,21 @@ */ 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 static com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation.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 com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; import java.util.List; -/** - * Used to represent a long - */ +/** Used to represent a long */ public class LongConstant implements Operation { private static final int OP_CODE = Operations.DATA_LONG; - long mValue; + private long mValue; private int mId; public LongConstant(int id, long value) { @@ -39,6 +37,15 @@ public class LongConstant implements Operation { mValue = value; } + /** + * Get the value of the long constant + * + * @return the value of the long + */ + public long getValue() { + return mValue; + } + @Override public void write(WireBuffer buffer) { apply(buffer, mId, mValue); @@ -46,6 +53,7 @@ public class LongConstant implements Operation { @Override public void apply(RemoteContext context) { + context.putObject(mId, this); } @Override @@ -79,14 +87,9 @@ public class LongConstant implements Operation { } public static void documentation(DocumentationBuilder doc) { - doc.operation("Expressions Operations", - OP_CODE, - "LongConstant") + 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"); - + .field(DocumentedOperation.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 e32f8239d7ef6bcc48aed267b8821860326775cc..906282c1dde3646ea1fa3a3b4e0777ccdaf0a7b4 100644 --- a/core/java/com/android/internal/widget/remotecompose/player/RemoteComposeDocument.java +++ b/core/java/com/android/internal/widget/remotecompose/player/RemoteComposeDocument.java @@ -22,9 +22,7 @@ import com.android.internal.widget.remotecompose.core.operations.layout.Componen import java.io.InputStream; -/** - * Public API to create a new RemoteComposeDocument coming from an input stream - */ +/** Public API to create a new RemoteComposeDocument coming from an input stream */ public class RemoteComposeDocument { CoreDocument mDocument = new CoreDocument(); @@ -48,23 +46,19 @@ public class RemoteComposeDocument { } /** - * Called when an initialization is needed, allowing the document to eg load - * resources / cache them. + * Called when an initialization is needed, allowing the document to eg load resources / cache + * them. */ public void initializeContext(RemoteContext context) { mDocument.initializeContext(context); } - /** - * Returns the width of the document in pixels - */ + /** Returns the width of the document in pixels */ public int getWidth() { return mDocument.getWidth(); } - /** - * Returns the height of the document in pixels - */ + /** Returns the height of the document in pixels */ public int getHeight() { return mDocument.getHeight(); } @@ -77,7 +71,7 @@ public class RemoteComposeDocument { * Paint the document * * @param context the provided PaintContext - * @param theme the theme we want to use for this document. + * @param theme the theme we want to use for this document. */ public void paint(RemoteContext context, int theme) { mDocument.paint(context, theme); @@ -105,8 +99,7 @@ public class RemoteComposeDocument { @Override public String toString() { - return "Document{\n" - + mDocument + '}'; + return "Document{\n" + mDocument + '}'; } /** @@ -120,6 +113,7 @@ public class RemoteComposeDocument { /** * Return a component associated with id + * * @param id the component id * @return the corresponding component or null if not found */ @@ -138,4 +132,3 @@ public class RemoteComposeDocument { 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 3d78680bff0a91d99c060581c8f1ee8489b20e1e..06bf4cdb0a0dbda6305bd28ea558eed4ce90a74a 100644 --- a/core/java/com/android/internal/widget/remotecompose/player/RemoteComposePlayer.java +++ b/core/java/com/android/internal/widget/remotecompose/player/RemoteComposePlayer.java @@ -29,9 +29,7 @@ import android.widget.ScrollView; import com.android.internal.widget.remotecompose.core.operations.RootContentBehavior; import com.android.internal.widget.remotecompose.player.platform.RemoteComposeCanvas; -/** - * A view to to display and play RemoteCompose documents - */ +/** A view to to display and play RemoteCompose documents */ public class RemoteComposePlayer extends FrameLayout { private RemoteComposeCanvas mInner; @@ -73,10 +71,7 @@ public class RemoteComposePlayer extends FrameLayout { public void setDocument(RemoteComposeDocument value) { if (value != null) { if (value.canBeDisplayed( - MAX_SUPPORTED_MAJOR_VERSION, - MAX_SUPPORTED_MINOR_VERSION, 0L - ) - ) { + MAX_SUPPORTED_MAJOR_VERSION, MAX_SUPPORTED_MINOR_VERSION, 0L)) { mInner.setDocument(value); int contentBehavior = value.getDocument().getContentScroll(); applyContentBehavior(contentBehavior); @@ -90,65 +85,58 @@ public class RemoteComposePlayer extends FrameLayout { } /** - * Apply the content behavior (NONE|SCROLL_HORIZONTAL|SCROLL_VERTICAL) to the player, - * adding or removing scrollviews as needed. + * Apply the content behavior (NONE|SCROLL_HORIZONTAL|SCROLL_VERTICAL) to the player, adding or + * removing scrollviews as needed. * * @param contentBehavior document content behavior (NONE|SCROLL_HORIZONTAL|SCROLL_VERTICAL) */ private void applyContentBehavior(int contentBehavior) { switch (contentBehavior) { - case RootContentBehavior.SCROLL_HORIZONTAL: { + case RootContentBehavior.SCROLL_HORIZONTAL: if (!(mInner.getParent() instanceof HorizontalScrollView)) { ((ViewGroup) mInner.getParent()).removeView(mInner); removeAllViews(); - LayoutParams layoutParamsInner = new LayoutParams( - LayoutParams.WRAP_CONTENT, - LayoutParams.MATCH_PARENT); + LayoutParams layoutParamsInner = + new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT); HorizontalScrollView horizontalScrollView = new HorizontalScrollView(getContext()); horizontalScrollView.setBackgroundColor(Color.TRANSPARENT); horizontalScrollView.setFillViewport(true); horizontalScrollView.addView(mInner, layoutParamsInner); - LayoutParams layoutParams = new LayoutParams( - LayoutParams.MATCH_PARENT, - LayoutParams.MATCH_PARENT); + LayoutParams layoutParams = + new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); addView(horizontalScrollView, layoutParams); } - } - break; - case RootContentBehavior.SCROLL_VERTICAL: { + break; + case RootContentBehavior.SCROLL_VERTICAL: if (!(mInner.getParent() instanceof ScrollView)) { ((ViewGroup) mInner.getParent()).removeView(mInner); removeAllViews(); - LayoutParams layoutParamsInner = new LayoutParams( - LayoutParams.MATCH_PARENT, - LayoutParams.WRAP_CONTENT); + LayoutParams layoutParamsInner = + new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); ScrollView scrollView = new ScrollView(getContext()); scrollView.setBackgroundColor(Color.TRANSPARENT); scrollView.setFillViewport(true); scrollView.addView(mInner, layoutParamsInner); - LayoutParams layoutParams = new LayoutParams( - LayoutParams.MATCH_PARENT, - LayoutParams.MATCH_PARENT); + LayoutParams layoutParams = + new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); addView(scrollView, layoutParams); } - } - break; + break; default: if (mInner.getParent() != this) { ((ViewGroup) mInner.getParent()).removeView(mInner); removeAllViews(); - LayoutParams layoutParams = new LayoutParams( - LayoutParams.MATCH_PARENT, - LayoutParams.MATCH_PARENT); + LayoutParams layoutParams = + new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); addView(mInner, layoutParams); } } } private void init(Context context, AttributeSet attrs, int defStyleAttr) { - LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, - LayoutParams.MATCH_PARENT); + LayoutParams layoutParams = + new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); setBackgroundColor(Color.TRANSPARENT); mInner = new RemoteComposeCanvas(context, attrs, defStyleAttr); mInner.setBackgroundColor(Color.TRANSPARENT); @@ -241,24 +229,25 @@ public class RemoteComposePlayer extends FrameLayout { * Add a callback for handling click events on the document * * @param callback the callback lambda that will be used when a click is detected - *

    - * The parameter of the callback are: - * id : the id of the clicked area - * metadata: a client provided unstructured string associated with that area + *

    The parameter of the callback are: + *

      + *
    • id : the id of the clicked area + *
    • metadata: a client provided unstructured string associated with that area + *
    */ public void addClickListener(ClickCallbacks callback) { mInner.addClickListener((id, metadata) -> callback.click(id, metadata)); } /** - * Set the playback theme for the document. This allows to filter operations in order - * to have the document adapt to the given theme. This method is intended to be used - * to support night/light themes (system or app level), not custom themes. + * Set the playback theme for the document. This allows to filter operations in order to have + * the document adapt to the given theme. This method is intended to be used to support + * night/light themes (system or app level), not custom themes. * - * @param theme the theme used for playing the document. Possible values for theme are: - * - Theme.UNSPECIFIED -- all instructions in the document will be executed - * - Theme.DARK -- only executed NON Light theme instructions - * - Theme.LIGHT -- only executed NON Dark theme instructions + * @param theme the theme used for playing the document. Possible values for theme are: - + * Theme.UNSPECIFIED -- all instructions in the document will be executed - Theme.DARK -- + * only executed NON Light theme instructions - Theme.LIGHT -- only executed NON Dark theme + * instructions */ public void setTheme(int theme) { if (mInner.getTheme() != theme) { @@ -277,8 +266,7 @@ public class RemoteComposePlayer extends FrameLayout { } /** - * This sets a color based on its name. Overriding the color set in - * the document. + * This sets a color based on its name. Overriding the color set in the document. * * @param colorName Name of the color * @param colorValue The new color value @@ -364,7 +352,7 @@ public class RemoteComposePlayer extends FrameLayout { case "colorFocusedHighlight": setRColor(s, android.R.attr.colorFocusedHighlight); break; - case "colorForeground": // General foreground color for views. + case "colorForeground": // General foreground color for views. setRColor(s, android.R.attr.colorForeground); break; // Foreground color for inverse backgrounds. @@ -483,15 +471,14 @@ public class RemoteComposePlayer extends FrameLayout { } private int getColorFromResource(int id) { + TypedValue typedValue = new TypedValue(); - try (TypedArray arr = getContext() - .getApplicationContext() - .obtainStyledAttributes(typedValue.data, new int[]{id})) { + try (TypedArray arr = + getContext() + .getApplicationContext() + .obtainStyledAttributes(typedValue.data, new int[] {id})) { int color = arr.getColor(0, -1); 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 4416cf76295c0431141f83893a17bcb0e293a366..f59a0d3fa015a2b33d47e6e812a20897661a162e 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 @@ -43,8 +43,8 @@ import java.util.ArrayList; import java.util.List; /** - * An implementation of PaintContext for the Android Canvas. - * This is used to play the RemoteCompose operations on Android. + * An implementation of PaintContext for the Android Canvas. This is used to play the RemoteCompose + * operations on Android. */ public class AndroidPaintContext extends PaintContext { Paint mPaint = new Paint(); @@ -83,37 +83,36 @@ public class AndroidPaintContext extends PaintContext { /** * Draw an image onto the canvas * - * @param imageId the id of the image - * @param srcLeft left coordinate of the source area - * @param srcTop top coordinate of the source area - * @param srcRight right coordinate of the source area + * @param imageId the id of the image + * @param srcLeft left coordinate of the source area + * @param srcTop top coordinate of the source area + * @param srcRight right coordinate of the source area * @param srcBottom bottom coordinate of the source area - * @param dstLeft left coordinate of the destination area - * @param dstTop top coordinate of the destination area - * @param dstRight right coordinate of the destination area + * @param dstLeft left coordinate of the destination area + * @param dstTop top coordinate of the destination area + * @param dstRight right coordinate of the destination area * @param dstBottom bottom coordinate of the destination area */ - @Override - public void drawBitmap(int imageId, - int srcLeft, - int srcTop, - int srcRight, - int srcBottom, - int dstLeft, - int dstTop, - int dstRight, - int dstBottom, - int cdId) { + public void drawBitmap( + int imageId, + int srcLeft, + int srcTop, + int srcRight, + int srcBottom, + int dstLeft, + int dstTop, + int dstRight, + int dstBottom, + int cdId) { AndroidRemoteContext androidContext = (AndroidRemoteContext) mContext; if (androidContext.mRemoteComposeState.containsId(imageId)) { - Bitmap bitmap = (Bitmap) androidContext.mRemoteComposeState - .getFromId(imageId); + Bitmap bitmap = (Bitmap) androidContext.mRemoteComposeState.getFromId(imageId); mCanvas.drawBitmap( bitmap, new Rect(srcLeft, srcTop, srcRight, srcBottom), - new Rect(dstLeft, dstTop, dstRight, dstBottom), mPaint - ); + new Rect(dstLeft, dstTop, dstRight, dstBottom), + mPaint); } } @@ -128,28 +127,23 @@ public class AndroidPaintContext extends PaintContext { } @Override - public void drawArc(float left, - float top, - float right, - float bottom, - float startAngle, - float sweepAngle) { - mCanvas.drawArc(left, top, right, bottom, startAngle, - sweepAngle, true, mPaint); + public void drawArc( + float left, float top, float right, float bottom, float startAngle, float sweepAngle) { + mCanvas.drawArc(left, top, right, bottom, startAngle, sweepAngle, false, mPaint); + } + + @Override + public void drawSector( + float left, float top, float right, float bottom, float startAngle, float sweepAngle) { + mCanvas.drawArc(left, top, right, bottom, startAngle, sweepAngle, true, mPaint); } @Override - public void drawBitmap(int id, - float left, - float top, - float right, - float bottom) { + public void drawBitmap(int id, float left, float top, float right, float bottom) { AndroidRemoteContext androidContext = (AndroidRemoteContext) mContext; if (androidContext.mRemoteComposeState.containsId(id)) { - Bitmap bitmap = - (Bitmap) androidContext.mRemoteComposeState.getFromId(id); - Rect src = new Rect(0, 0, - bitmap.getWidth(), bitmap.getHeight()); + Bitmap bitmap = (Bitmap) androidContext.mRemoteComposeState.getFromId(id); + Rect src = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); RectF dst = new RectF(left, top, right, bottom); mCanvas.drawBitmap(bitmap, src, dst, mPaint); } @@ -191,21 +185,13 @@ public class AndroidPaintContext extends PaintContext { } @Override - public void drawRoundRect(float left, - float top, - float right, - float bottom, - float radiusX, - float radiusY) { - mCanvas.drawRoundRect(left, top, right, bottom, - radiusX, radiusY, mPaint); + public void drawRoundRect( + float left, float top, float right, float bottom, float radiusX, float radiusY) { + mCanvas.drawRoundRect(left, top, right, bottom, radiusX, radiusY, mPaint); } @Override - public void drawTextOnPath(int textId, - int pathId, - float hOffset, - float vOffset) { + public void drawTextOnPath(int textId, int pathId, float hOffset, float vOffset) { mCanvas.drawTextOnPath(getText(textId), getPath(pathId, 0, 1), hOffset, vOffset, mPaint); } @@ -237,14 +223,15 @@ public class AndroidPaintContext extends PaintContext { } @Override - public void drawTextRun(int textID, - int start, - int end, - int contextStart, - int contextEnd, - float x, - float y, - boolean rtl) { + public void drawTextRun( + int textID, + int start, + int end, + int contextStart, + int contextEnd, + float x, + float y, + boolean rtl) { String textToPaint = getText(textID); if (textToPaint == null) { @@ -262,11 +249,7 @@ public class AndroidPaintContext extends PaintContext { } @Override - public void drawTweenPath(int path1Id, - int path2Id, - float tween, - float start, - float end) { + public void drawTweenPath(int path1Id, int path2Id, float tween, float start, float end) { mCanvas.drawPath(getPath(path1Id, path2Id, tween, start, end), mPaint); } @@ -381,224 +364,219 @@ public class AndroidPaintContext extends PaintContext { /** * This applies paint changes to the current paint * - * @param mPaintData the list change to the paint + * @param paintData the list change to the paint */ @Override - public void applyPaint(PaintBundle mPaintData) { - mPaintData.applyPaintChange((PaintContext) this, new PaintChanges() { - @Override - public void setTextSize(float size) { - mPaint.setTextSize(size); - } - - @Override - public void setTypeFace(int fontType, int weight, boolean italic) { - int[] type = new int[]{Typeface.NORMAL, Typeface.BOLD, - Typeface.ITALIC, Typeface.BOLD_ITALIC}; - - switch (fontType) { - case PaintBundle.FONT_TYPE_DEFAULT: { - if (weight == 400 && !italic) { // for normal case - mPaint.setTypeface(Typeface.DEFAULT); - } else { - mPaint.setTypeface(Typeface.create(Typeface.DEFAULT, - weight, italic)); - } - break; - } - case PaintBundle.FONT_TYPE_SERIF: { - if (weight == 400 && !italic) { // for normal case - mPaint.setTypeface(Typeface.SERIF); - } else { - mPaint.setTypeface(Typeface.create(Typeface.SERIF, - weight, italic)); - } - break; + public void applyPaint(PaintBundle paintData) { + paintData.applyPaintChange( + (PaintContext) this, + new PaintChanges() { + @Override + public void setTextSize(float size) { + mPaint.setTextSize(size); } - case PaintBundle.FONT_TYPE_SANS_SERIF: { - if (weight == 400 && !italic) { // for normal case - mPaint.setTypeface(Typeface.SANS_SERIF); - } else { - mPaint.setTypeface( - Typeface.create(Typeface.SANS_SERIF, - weight, italic)); + + @Override + public void setTypeFace(int fontType, int weight, boolean italic) { + int[] type = + new int[] { + Typeface.NORMAL, + Typeface.BOLD, + Typeface.ITALIC, + Typeface.BOLD_ITALIC + }; + + switch (fontType) { + case PaintBundle.FONT_TYPE_DEFAULT: + if (weight == 400 && !italic) { // for normal case + mPaint.setTypeface(Typeface.DEFAULT); + } else { + mPaint.setTypeface( + Typeface.create(Typeface.DEFAULT, weight, italic)); + } + break; + case PaintBundle.FONT_TYPE_SERIF: + if (weight == 400 && !italic) { // for normal case + mPaint.setTypeface(Typeface.SERIF); + } else { + mPaint.setTypeface( + Typeface.create(Typeface.SERIF, weight, italic)); + } + break; + case PaintBundle.FONT_TYPE_SANS_SERIF: + if (weight == 400 && !italic) { // for normal case + mPaint.setTypeface(Typeface.SANS_SERIF); + } else { + mPaint.setTypeface( + Typeface.create(Typeface.SANS_SERIF, weight, italic)); + } + break; + case PaintBundle.FONT_TYPE_MONOSPACE: + if (weight == 400 && !italic) { // for normal case + mPaint.setTypeface(Typeface.MONOSPACE); + } else { + mPaint.setTypeface( + Typeface.create(Typeface.MONOSPACE, weight, italic)); + } + + break; } - break; } - case PaintBundle.FONT_TYPE_MONOSPACE: { - if (weight == 400 && !italic) { // for normal case - mPaint.setTypeface(Typeface.MONOSPACE); - } else { - mPaint.setTypeface( - Typeface.create(Typeface.MONOSPACE, - weight, italic)); - } - break; + @Override + public void setStrokeWidth(float width) { + mPaint.setStrokeWidth(width); } - } - } - - @Override - public void setStrokeWidth(float width) { - mPaint.setStrokeWidth(width); - } - - @Override - public void setColor(int color) { - mPaint.setColor(color); - } + @Override + public void setColor(int color) { + mPaint.setColor(color); + } - @Override - public void setStrokeCap(int cap) { - mPaint.setStrokeCap(Paint.Cap.values()[cap]); - } + @Override + public void setStrokeCap(int cap) { + mPaint.setStrokeCap(Paint.Cap.values()[cap]); + } - @Override - public void setStyle(int style) { - mPaint.setStyle(Paint.Style.values()[style]); - } + @Override + public void setStyle(int style) { + mPaint.setStyle(Paint.Style.values()[style]); + } - @Override - public void setShader(int shaderId) { - // TODO this stuff should check the shader creation - if (shaderId == 0) { - mPaint.setShader(null); - return; - } - ShaderData data = getShaderData(shaderId); - RuntimeShader shader = new RuntimeShader(getText(data.getShaderTextId())); - String[] names = data.getUniformFloatNames(); - for (int i = 0; i < names.length; i++) { - String name = names[i]; - float[] val = data.getUniformFloats(name); - shader.setFloatUniform(name, val); - } - names = data.getUniformIntegerNames(); - for (int i = 0; i < names.length; i++) { - String name = names[i]; - int[] val = data.getUniformInts(name); - shader.setIntUniform(name, val); - } - names = data.getUniformBitmapNames(); - for (int i = 0; i < names.length; i++) { - String name = names[i]; - int val = data.getUniformBitmapId(name); - } - mPaint.setShader(shader); - } + @Override + public void setShader(int shaderId) { + // TODO this stuff should check the shader creation + if (shaderId == 0) { + mPaint.setShader(null); + return; + } + ShaderData data = getShaderData(shaderId); + RuntimeShader shader = new RuntimeShader(getText(data.getShaderTextId())); + String[] names = data.getUniformFloatNames(); + for (int i = 0; i < names.length; i++) { + String name = names[i]; + float[] val = data.getUniformFloats(name); + shader.setFloatUniform(name, val); + } + names = data.getUniformIntegerNames(); + for (int i = 0; i < names.length; i++) { + String name = names[i]; + int[] val = data.getUniformInts(name); + shader.setIntUniform(name, val); + } + names = data.getUniformBitmapNames(); + for (int i = 0; i < names.length; i++) { + String name = names[i]; + int val = data.getUniformBitmapId(name); + } + mPaint.setShader(shader); + } - @Override - public void setImageFilterQuality(int quality) { - Utils.log(" quality =" + quality); - } + @Override + public void setImageFilterQuality(int quality) { + Utils.log(" quality =" + quality); + } - @Override - public void setBlendMode(int mode) { - mPaint.setBlendMode(origamiToBlendMode(mode)); - } + @Override + public void setBlendMode(int mode) { + mPaint.setBlendMode(origamiToBlendMode(mode)); + } - @Override - public void setAlpha(float a) { - mPaint.setAlpha((int) (255 * a)); - } + @Override + public void setAlpha(float a) { + mPaint.setAlpha((int) (255 * a)); + } - @Override - public void setStrokeMiter(float miter) { - mPaint.setStrokeMiter(miter); - } + @Override + public void setStrokeMiter(float miter) { + mPaint.setStrokeMiter(miter); + } - @Override - public void setStrokeJoin(int join) { - mPaint.setStrokeJoin(Paint.Join.values()[join]); - } + @Override + public void setStrokeJoin(int join) { + mPaint.setStrokeJoin(Paint.Join.values()[join]); + } - @Override - public void setFilterBitmap(boolean filter) { - mPaint.setFilterBitmap(filter); - } + @Override + public void setFilterBitmap(boolean filter) { + mPaint.setFilterBitmap(filter); + } - @Override - public void setAntiAlias(boolean aa) { - mPaint.setAntiAlias(aa); - } + @Override + public void setAntiAlias(boolean aa) { + mPaint.setAntiAlias(aa); + } - @Override - public void clear(long mask) { - if (true) return; - long m = mask; - int k = 1; - while (m > 0) { - if ((m & 1) == 1L) { - switch (k) { - - case PaintBundle.COLOR_FILTER: - mPaint.setColorFilter(null); - break; + @Override + public void clear(long mask) { + if ((mask & (1L << PaintBundle.COLOR_FILTER)) != 0) { + mPaint.setColorFilter(null); } } - k++; - m = m >> 1; - } - } - Shader.TileMode[] mTileModes = new Shader.TileMode[]{ - Shader.TileMode.CLAMP, - Shader.TileMode.REPEAT, - Shader.TileMode.MIRROR}; - - @Override - public void setLinearGradient(int[] colors, - float[] stops, - float startX, - float startY, - float endX, - float endY, - int tileMode) { - mPaint.setShader(new LinearGradient(startX, - startY, - endX, - endY, colors, stops, mTileModes[tileMode])); - - } - - @Override - public void setRadialGradient(int[] colors, - float[] stops, - float centerX, - float centerY, - float radius, - int tileMode) { - mPaint.setShader(new RadialGradient(centerX, centerY, radius, - colors, stops, mTileModes[tileMode])); - } + Shader.TileMode[] mTileModes = + new Shader.TileMode[] { + Shader.TileMode.CLAMP, + Shader.TileMode.REPEAT, + Shader.TileMode.MIRROR + }; + + @Override + public void setLinearGradient( + int[] colors, + float[] stops, + float startX, + float startY, + float endX, + float endY, + int tileMode) { + mPaint.setShader( + new LinearGradient( + startX, + startY, + endX, + endY, + colors, + stops, + mTileModes[tileMode])); + } - @Override - public void setSweepGradient(int[] colors, - float[] stops, - float centerX, - float centerY) { - mPaint.setShader(new SweepGradient(centerX, centerY, colors, stops)); + @Override + public void setRadialGradient( + int[] colors, + float[] stops, + float centerX, + float centerY, + float radius, + int tileMode) { + mPaint.setShader( + new RadialGradient( + centerX, + centerY, + radius, + colors, + stops, + mTileModes[tileMode])); + } - } + @Override + public void setSweepGradient( + int[] colors, float[] stops, float centerX, float centerY) { + mPaint.setShader(new SweepGradient(centerX, centerY, colors, stops)); + } - @Override - public void setColorFilter(int color, int mode) { - PorterDuff.Mode pmode = origamiToPorterDuffMode(mode); - if (pmode != null) { - mPaint.setColorFilter( - new PorterDuffColorFilter(color, pmode)); - } - } - }); + @Override + public void setColorFilter(int color, int mode) { + PorterDuff.Mode pmode = origamiToPorterDuffMode(mode); + if (pmode != null) { + mPaint.setColorFilter(new PorterDuffColorFilter(color, pmode)); + } + } + }); } @Override - public void matrixScale(float scaleX, - float scaleY, - float centerX, - float centerY) { + public void matrixScale(float scaleX, float scaleY, float centerX, float centerY) { if (Float.isNaN(centerX)) { mCanvas.scale(scaleX, scaleY); } else { @@ -622,7 +600,6 @@ public class AndroidPaintContext extends PaintContext { mCanvas.rotate(rotate); } else { mCanvas.rotate(rotate, pivotX, pivotY); - } } @@ -642,15 +619,27 @@ public class AndroidPaintContext extends PaintContext { } @Override - public void roundedClipRect(float width, float height, - float topStart, float topEnd, - float bottomStart, float bottomEnd) { + public void roundedClipRect( + float width, + float height, + float topStart, + float topEnd, + float bottomStart, + float bottomEnd) { Path roundedPath = new Path(); - float[] radii = new float[] { topStart, topStart, - topEnd, topEnd, bottomEnd, bottomEnd, bottomStart, bottomStart}; - - roundedPath.addRoundRect(0f, 0f, width, height, - radii, android.graphics.Path.Direction.CW); + float[] radii = + new float[] { + topStart, + topStart, + topEnd, + topEnd, + bottomEnd, + bottomEnd, + bottomStart, + bottomStart + }; + + roundedPath.addRoundRect(0f, 0f, width, height, radii, android.graphics.Path.Direction.CW); mCanvas.clipPath(roundedPath); } @@ -660,7 +649,7 @@ public class AndroidPaintContext extends PaintContext { if (regionOp == ClipPath.DIFFERENCE) { mCanvas.clipOutPath(path); // DIFFERENCE } else { - mCanvas.clipPath(path); // INTERSECT + mCanvas.clipPath(path); // INTERSECT } } @@ -669,11 +658,7 @@ public class AndroidPaintContext extends PaintContext { mPaint.reset(); } - private Path getPath(int path1Id, - int path2Id, - float tween, - float start, - float end) { + private Path getPath(int path1Id, int path2Id, float tween, float start, float end) { if (tween == 0.0f) { return getPath(path1Id, start, end); } @@ -681,10 +666,8 @@ public class AndroidPaintContext extends PaintContext { return getPath(path2Id, start, end); } AndroidRemoteContext androidContext = (AndroidRemoteContext) mContext; - float[] data1 = - (float[]) androidContext.mRemoteComposeState.getFromId(path1Id); - float[] data2 = - (float[]) androidContext.mRemoteComposeState.getFromId(path2Id); + float[] data1 = (float[]) androidContext.mRemoteComposeState.getFromId(path1Id); + float[] data2 = (float[]) androidContext.mRemoteComposeState.getFromId(path2Id); float[] tmp = new float[data2.length]; for (int i = 0; i < tmp.length; i++) { if (Float.isNaN(data1[i]) || Float.isNaN(data2[i])) { @@ -702,8 +685,7 @@ public class AndroidPaintContext extends PaintContext { AndroidRemoteContext androidContext = (AndroidRemoteContext) mContext; Path path = new Path(); if (androidContext.mRemoteComposeState.containsId(id)) { - float[] data = - (float[]) androidContext.mRemoteComposeState.getFromId(id); + float[] data = (float[]) androidContext.mRemoteComposeState.getFromId(id); FloatsToPath.genPath(path, data, start, end); } return path; @@ -717,4 +699,3 @@ public class AndroidPaintContext extends PaintContext { return (ShaderData) mContext.mRemoteComposeState.getFromId(id); } } - diff --git a/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidPlatformServices.java b/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidPlatformServices.java new file mode 100644 index 0000000000000000000000000000000000000000..f9b22a25ceabf53a2e8d702faf8ac0e0dbeaf4b8 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidPlatformServices.java @@ -0,0 +1,119 @@ +/* + * 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.internal.widget.remotecompose.player.platform; + +import android.graphics.Bitmap; +import android.graphics.Path; +import android.graphics.PathIterator; + +import com.android.internal.widget.remotecompose.core.Platform; +import com.android.internal.widget.remotecompose.core.operations.PathData; + +import java.io.ByteArrayOutputStream; +import java.util.Arrays; + +/** Services that are needed to be provided by the platform during encoding. */ +public class AndroidPlatformServices implements Platform { + @Override + public byte[] imageToByteArray(Object image) { + if (image instanceof Bitmap) { + // let's create a bitmap + ByteArrayOutputStream byteArrayBitmapStream = new ByteArrayOutputStream(); + ((Bitmap) image).compress(Bitmap.CompressFormat.PNG, 90, byteArrayBitmapStream); + return byteArrayBitmapStream.toByteArray(); + } + return null; + } + + @Override + public int getImageWidth(Object image) { + if (image instanceof Bitmap) { + return ((Bitmap) image).getWidth(); + } + return 0; + } + + @Override + public int getImageHeight(Object image) { + if (image instanceof Bitmap) { + return ((Bitmap) image).getHeight(); + } + return 0; + } + + @Override + public float[] pathToFloatArray(Object path) { + // if (path is RemotePath) { + // return path.createFloatArray() + // } + + if (path instanceof Path) { + return androidPathToFloatArray((Path) path); + } + + return null; + } + + private float[] androidPathToFloatArray(Path path) { + PathIterator i = path.getPathIterator(); + int estimatedSize = 0; + + while (i.hasNext()) { + i.next(); + estimatedSize++; + } + + PathIterator iter = path.getPathIterator(); + float[] pathFloat = new float[estimatedSize * 10]; + + int count = 0; + while (i.hasNext()) { + PathIterator.Segment seg = i.next(); + + switch (seg.getVerb()) { + case PathIterator.VERB_MOVE: + pathFloat[count++] = PathData.MOVE_NAN; + break; + case PathIterator.VERB_LINE: + pathFloat[count++] = PathData.LINE_NAN; + break; + case PathIterator.VERB_QUAD: + pathFloat[count++] = PathData.QUADRATIC_NAN; + break; + case PathIterator.VERB_CONIC: + pathFloat[count++] = PathData.CONIC_NAN; + break; + case PathIterator.VERB_CUBIC: + pathFloat[count++] = PathData.CUBIC_NAN; + break; + case PathIterator.VERB_CLOSE: + pathFloat[count++] = PathData.CLOSE_NAN; + break; + case PathIterator.VERB_DONE: + pathFloat[count++] = PathData.DONE_NAN; + break; + } + for (float p : seg.getPoints()) { + pathFloat[count++] = p; + } + if (seg.getVerb() == PathIterator.VERB_CONIC) { + pathFloat[count++] = seg.getConicWeight(); + } + } + + return Arrays.copyOf(pathFloat, count); + } +} 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 c989375308976138af9c5b2b589112d11736cdfa..e7c0cc8a915d8fbfd8a4a68d3cd523e954c93d72 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 @@ -24,13 +24,14 @@ 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 com.android.internal.widget.remotecompose.core.operations.utilities.DataMap; import java.util.HashMap; /** * An implementation of Context for Android. - *

    - * This is used to play the RemoteCompose operations on Android. + * + *

    This is used to play the RemoteCompose operations on Android. */ class AndroidRemoteContext extends RemoteContext { @@ -126,6 +127,16 @@ class AndroidRemoteContext extends RemoteContext { mRemoteComposeState.addCollection(id, collection); } + @Override + public void putDataMap(int id, DataMap map) { + mRemoteComposeState.putDataMap(id, map); + } + + @Override + public DataMap getDataMap(int id) { + return mRemoteComposeState.getDataMap(id); + } + @Override public void runAction(int id, String metadata) { mDocument.performClick(id); @@ -140,7 +151,7 @@ class AndroidRemoteContext extends RemoteContext { /** * Decode a byte array into an image and cache it using the given imageId * - * @param width with of image to be loaded + * @param width with of image to be loaded * @param height height of image to be loaded * @param bitmap a byte array containing the image information * @oaram imageId the id of the image @@ -222,9 +233,19 @@ class AndroidRemoteContext extends RemoteContext { return (float) mRemoteComposeState.getFloat(id); } + @Override + public void putObject(int id, Object value) { + mRemoteComposeState.updateObject(id, value); + } + + @Override + public Object getObject(int id) { + return mRemoteComposeState.getObject(id); + } + @Override public int getInteger(int id) { - return mRemoteComposeState.getInteger(id); + return mRemoteComposeState.getInteger(id); } @Override @@ -252,17 +273,16 @@ class AndroidRemoteContext extends RemoteContext { /////////////////////////////////////////////////////////////////////////////////////////////// @Override - public void addClickArea(int id, - int contentDescriptionId, - float left, - float top, - float right, - float bottom, - int metadataId) { + public void addClickArea( + int id, + int contentDescriptionId, + float left, + float top, + float right, + float bottom, + int metadataId) { String contentDescription = (String) mRemoteComposeState.getFromId(contentDescriptionId); 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/ClickAreaView.java b/core/java/com/android/internal/widget/remotecompose/player/platform/ClickAreaView.java index 329178abe8b503b819619b49e80441de129e50dc..fdd9aad68d47455ba469719a065e28adde565bea 100644 --- a/core/java/com/android/internal/widget/remotecompose/player/platform/ClickAreaView.java +++ b/core/java/com/android/internal/widget/remotecompose/player/platform/ClickAreaView.java @@ -20,9 +20,7 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.view.View; -/** - * Implementation for the click handling - */ +/** Implementation for the click handling */ class ClickAreaView extends View { private int mId; private String mMetadata; @@ -30,8 +28,8 @@ class ClickAreaView extends View { private boolean mDebug; - ClickAreaView(Context context, boolean debug, int id, - String contentDescription, String metadata) { + ClickAreaView( + Context context, boolean debug, int id, String contentDescription, String metadata) { super(context); this.mId = id; this.mMetadata = 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 d75232a6557e3c158a384ccdddb4ca5019432d17..8d3440c33efb94e2bf744c490eeff47ff275f765 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 @@ -23,72 +23,56 @@ import android.graphics.PathMeasure; import com.android.internal.widget.remotecompose.core.operations.PathData; public class FloatsToPath { - public static void genPath(Path retPath, - float[] floatPath, - float start, - float stop) { + public static void genPath(Path retPath, float[] floatPath, float start, float stop) { int i = 0; Path path = new Path(); // todo this should be cached for performance while (i < floatPath.length) { switch (idFromNan(floatPath[i])) { - case PathData.MOVE: { + case PathData.MOVE: i++; path.moveTo(floatPath[i + 0], floatPath[i + 1]); i += 2; - } - break; - case PathData.LINE: { + break; + case PathData.LINE: i += 3; path.lineTo(floatPath[i + 0], floatPath[i + 1]); i += 2; - } - break; - case PathData.QUADRATIC: { + break; + case PathData.QUADRATIC: i += 3; path.quadTo( + floatPath[i + 0], floatPath[i + 1], floatPath[i + 2], floatPath[i + 3]); + i += 4; + break; + case PathData.CONIC: + i += 3; + + path.conicTo( floatPath[i + 0], floatPath[i + 1], floatPath[i + 2], - floatPath[i + 3] - ); - i += 4; + floatPath[i + 3], + floatPath[i + 4]); - } - break; - case PathData.CONIC: { - i += 3; - path.conicTo( - floatPath[i + 0], floatPath[i + 1], - floatPath[i + 2], floatPath[i + 3], - floatPath[i + 4] - ); i += 5; - } - break; - case PathData.CUBIC: { + break; + case PathData.CUBIC: i += 3; path.cubicTo( floatPath[i + 0], floatPath[i + 1], floatPath[i + 2], floatPath[i + 3], - floatPath[i + 4], floatPath[i + 5] - ); + floatPath[i + 4], floatPath[i + 5]); i += 6; - } - break; - case PathData.CLOSE: { - + break; + case PathData.CLOSE: path.close(); i++; - } - break; - case PathData.DONE: { + break; + case PathData.DONE: i++; - } - break; - default: { - System.err.println(" Odd command " - + idFromNan(floatPath[i])); - } + break; + default: + System.err.println(" Odd command " + idFromNan(floatPath[i])); } } @@ -101,8 +85,7 @@ public class FloatsToPath { float len = measure.getLength(); float scaleStart = Math.max(start, 0f) * len; float scaleStop = Math.min(stop, 1f) * len; - measure.getSegment(scaleStart, scaleStop, retPath, - true); + measure.getSegment(scaleStart, scaleStop, retPath, true); } } else { 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 f91e1581847188436857ca55955dfacbd3a1a4e7..7de6988157b7bb5669cbcd9f6006eba4827342ca 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 @@ -31,9 +31,7 @@ import com.android.internal.widget.remotecompose.player.RemoteComposeDocument; import java.util.Set; -/** - * Internal view handling the actual painting / interactions - */ +/** Internal view handling the actual painting / interactions */ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachStateChangeListener { static final boolean USE_VIEW_AREA_CLICK = true; // Use views to represent click areas @@ -102,13 +100,17 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta private void updateClickAreas() { if (USE_VIEW_AREA_CLICK && mDocument != null) { mHasClickAreas = false; - Set clickAreas = mDocument - .getDocument().getClickAreas(); + Set clickAreas = + mDocument.getDocument().getClickAreas(); removeAllViews(); for (CoreDocument.ClickAreaRepresentation area : clickAreas) { - ClickAreaView viewArea = new ClickAreaView(getContext(), mDebug, - area.getId(), area.getContentDescription(), - area.getMetadata()); + 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); @@ -116,8 +118,8 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta param.height = h; param.leftMargin = (int) area.getLeft(); param.topMargin = (int) area.getTop(); - viewArea.setOnClickListener(view1 - -> mDocument.getDocument().performClick(area.getId())); + viewArea.setOnClickListener( + view1 -> mDocument.getDocument().performClick(area.getId())); addView(viewArea, param); } if (!clickAreas.isEmpty()) { @@ -201,23 +203,19 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta return super.onTouchEvent(event); } switch (event.getActionMasked()) { - case MotionEvent.ACTION_DOWN: { + case MotionEvent.ACTION_DOWN: mActionDownPoint.x = (int) event.getX(); mActionDownPoint.y = (int) event.getY(); mInActionDown = true; return true; - } - case MotionEvent.ACTION_CANCEL: { + case MotionEvent.ACTION_CANCEL: mInActionDown = false; return true; - } - case MotionEvent.ACTION_UP: { + case MotionEvent.ACTION_UP: mInActionDown = false; performClick(); return true; - } - case MotionEvent.ACTION_MOVE: { - } + case MotionEvent.ACTION_MOVE: } return false; } @@ -227,8 +225,9 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta if (USE_VIEW_AREA_CLICK && mHasClickAreas) { return super.performClick(); } - mDocument.getDocument().onClick(mARContext, - (float) mActionDownPoint.x, (float) mActionDownPoint.y); + mDocument + .getDocument() + .onClick(mARContext, (float) mActionDownPoint.x, (float) mActionDownPoint.y); super.performClick(); invalidate(); return true; @@ -305,6 +304,4 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta invalidate(); } } - } - diff --git a/core/jni/Android.bp b/core/jni/Android.bp index 816ace2310a57aecf5aa1a1cd85db2dd9bf8ded1..eb07f7c125d0721f402533bb2115c09e4d668152 100644 --- a/core/jni/Android.bp +++ b/core/jni/Android.bp @@ -249,6 +249,7 @@ cc_library_shared_for_libandroid_runtime { "android_backup_BackupDataOutput.cpp", "android_backup_FileBackupHelperBase.cpp", "android_backup_BackupHelperDispatcher.cpp", + "android_app_PropertyInvalidatedCache.cpp", "android_app_backup_FullBackup.cpp", "android_content_res_ApkAssets.cpp", "android_content_res_ObbScanner.cpp", diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp index 70a80b2bd4f1f9eed0607711198e71e356f587db..821861efd59b8011f48ca19730fdfd5ef3a70b8c 100644 --- a/core/jni/AndroidRuntime.cpp +++ b/core/jni/AndroidRuntime.cpp @@ -177,6 +177,7 @@ extern int register_android_app_backup_FullBackup(JNIEnv *env); extern int register_android_app_Activity(JNIEnv *env); extern int register_android_app_ActivityThread(JNIEnv *env); extern int register_android_app_NativeActivity(JNIEnv *env); +extern int register_android_app_PropertyInvalidatedCache(JNIEnv* env); extern int register_android_media_RemoteDisplay(JNIEnv *env); extern int register_android_util_jar_StrictJarFile(JNIEnv* env); extern int register_android_view_InputChannel(JNIEnv* env); @@ -1024,10 +1025,18 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote, bool p parseCompilerOption("dalvik.vm.image-dex2oat-filter", dex2oatImageCompilerFilterBuf, "--compiler-filter=", "-Ximage-compiler-option"); - // If there is a dirty-image-objects file, push it. - if (hasFile("/system/etc/dirty-image-objects")) { - addOption("-Ximage-compiler-option"); - addOption("--dirty-image-objects=/system/etc/dirty-image-objects"); + // If there are dirty-image-objects files, push them. + const char* dirty_image_objects_options[] = { + "--dirty-image-objects=/apex/com.android.art/etc/dirty-image-objects", + "--dirty-image-objects=/system/etc/dirty-image-objects", + }; + for (const char* option : dirty_image_objects_options) { + // Get the file path by finding the first '/' and check if + // this file exists. + if (hasFile(strchr(option, '/'))) { + addOption("-Ximage-compiler-option"); + addOption(option); + } } parseCompilerOption("dalvik.vm.image-dex2oat-threads", dex2oatThreadsImageBuf, "-j", @@ -1651,6 +1660,7 @@ static const RegJNIRec gRegJNI[] = { REG_JNI(register_android_app_Activity), REG_JNI(register_android_app_ActivityThread), REG_JNI(register_android_app_NativeActivity), + REG_JNI(register_android_app_PropertyInvalidatedCache), REG_JNI(register_android_util_jar_StrictJarFile), REG_JNI(register_android_view_InputChannel), REG_JNI(register_android_view_InputEventReceiver), diff --git a/core/jni/android_app_PropertyInvalidatedCache.cpp b/core/jni/android_app_PropertyInvalidatedCache.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ead66660a0a4626d62380272dd840c7a4e20716a --- /dev/null +++ b/core/jni/android_app_PropertyInvalidatedCache.cpp @@ -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. + */ + +#define LOG_TAG "CacheNonce" + +#include +#include + +#include + +#include +#include +#include + +#include "core_jni_helpers.h" +#include "android_app_PropertyInvalidatedCache.h" + +namespace { + +using namespace android::app::PropertyInvalidatedCache; + +// Convert a jlong to a nonce block. This is a convenience function that should be inlined by +// the compiler. +inline SystemCacheNonce* sysCache(jlong ptr) { + return reinterpret_cast(ptr); +} + +// Return the number of nonces in the nonce block. +jint getMaxNonce(JNIEnv*, jclass, jlong ptr) { + return sysCache(ptr)->getMaxNonce(); +} + +// Return the number of string bytes in the nonce block. +jint getMaxByte(JNIEnv*, jclass, jlong ptr) { + return sysCache(ptr)->getMaxByte(); +} + +// Set the byte block. The first int is the hash to set and the second is the array to copy. +// This should be synchronized in the Java layer. +void setByteBlock(JNIEnv* env, jclass, jlong ptr, jint hash, jbyteArray val) { + ScopedByteArrayRO value(env, val); + if (value.get() == nullptr) { + jniThrowExceptionFmt(env, "java/lang/IllegalArgumentException", "null byte block"); + return; + } + sysCache(ptr)->setByteBlock(hash, value.get(), value.size()); +} + +// Fetch the byte block. If the incoming hash is the same as the local hash, the Java layer is +// presumed to have an up-to-date copy of the byte block; do not copy byte array. The local +// hash is returned. +jint getByteBlock(JNIEnv* env, jclass, jlong ptr, jint hash, jbyteArray val) { + if (sysCache(ptr)->getHash() == hash) { + return hash; + } + ScopedByteArrayRW value(env, val); + return sysCache(ptr)->getByteBlock(value.get(), value.size()); +} + +// Fetch the byte block hash. +// +// This is a CriticalNative method and therefore does not get the JNIEnv or jclass parameters. +jint getByteBlockHash(jlong ptr) { + return sysCache(ptr)->getHash(); +} + +// Get a nonce value. So that this method can be CriticalNative, it returns 0 if the value is +// out of range, rather than throwing an exception. This is a CriticalNative method and +// therefore does not get the JNIEnv or jclass parameters. +// +// This method is @CriticalNative and does not take a JNIEnv* or jclass argument. +jlong getNonce(jlong ptr, jint index) { + return sysCache(ptr)->getNonce(index); +} + +// Set a nonce value. So that this method can be CriticalNative, it returns a boolean: false if +// the index is out of range and true otherwise. Callers may test the returned boolean and +// generate an exception. +// +// This method is @CriticalNative and does not take a JNIEnv* or jclass argument. +jboolean setNonce(jlong ptr, jint index, jlong value) { + return sysCache(ptr)->setNonce(index, value); +} + +static const JNINativeMethod gMethods[] = { + {"nativeGetMaxNonce", "(J)I", (void*) getMaxNonce }, + {"nativeGetMaxByte", "(J)I", (void*) getMaxByte }, + {"nativeSetByteBlock", "(JI[B)V", (void*) setByteBlock }, + {"nativeGetByteBlock", "(JI[B)I", (void*) getByteBlock }, + {"nativeGetByteBlockHash", "(J)I", (void*) getByteBlockHash }, + {"nativeGetNonce", "(JI)J", (void*) getNonce }, + {"nativeSetNonce", "(JIJ)Z", (void*) setNonce }, +}; + +static const char* kClassName = "android/app/PropertyInvalidatedCache"; + +} // anonymous namespace + +namespace android { + +int register_android_app_PropertyInvalidatedCache(JNIEnv* env) { + RegisterMethodsOrDie(env, kClassName, gMethods, NELEM(gMethods)); + return JNI_OK; +} + +} // namespace android diff --git a/core/jni/android_app_PropertyInvalidatedCache.h b/core/jni/android_app_PropertyInvalidatedCache.h new file mode 100644 index 0000000000000000000000000000000000000000..eefa8fa886248ff6de0e7f51e56fd561b8876f4b --- /dev/null +++ b/core/jni/android_app_PropertyInvalidatedCache.h @@ -0,0 +1,146 @@ +/* + * 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. + */ + +#include +#include + +#include + +namespace android { +namespace app { +namespace PropertyInvalidatedCache { + +/** + * A cache nonce block contains an array of std::atomic and an array of bytes. The + * byte array has an associated hash. This class provides methods to read and write the fields + * of the block but it does not interpret the fields. + * + * On initialization, all fields are set to zero. + * + * In general, methods do not report errors. This allows the methods to be used in + * CriticalNative JNI APIs. + * + * The template is parameterized by the number of nonces it supports and the number of bytes in + * the string block. + */ +template class CacheNonce { + + // The value of an unset field. + static const int UNSET = 0; + + // A convenient typedef. The jbyteArray element type is jbyte, which the compiler treats as + // signed char. + typedef signed char block_t; + + // The array of nonces + volatile std::atomic mNonce[maxNonce]; + + // The byte array. This is not atomic but it is guarded by the mByteHash. + volatile block_t mByteBlock[maxByte]; + + // The hash that validates the byte block + volatile std::atomic mByteHash; + + // Pad the class to a multiple of 8 bytes. + int32_t _pad; + + public: + + // The expected size of this instance. This is a compile-time constant and can be used in a + // static assertion. + static const int expectedSize = + maxNonce * sizeof(std::atomic) + + sizeof(std::atomic) + + maxByte * sizeof(block_t) + + sizeof(int32_t); + + // These provide run-time access to the sizing parameters. + int getMaxNonce() const { + return maxNonce; + } + + size_t getMaxByte() const { + return maxByte; + } + + // Construct and initialize the memory. + CacheNonce() { + for (int i = 0; i < maxNonce; i++) { + mNonce[i] = UNSET; + } + mByteHash = UNSET; + memset((void*) mByteBlock, UNSET, sizeof(mByteBlock)); + } + + // Fetch a nonce, returning UNSET if the index is out of range. This method specifically + // does not throw or generate an error if the index is out of range; this allows the method + // to be called in a CriticalNative JNI API. + int64_t getNonce(int index) const { + if (index < 0 || index >= maxNonce) { + return UNSET; + } else { + return mNonce[index]; + } + } + + // Set a nonce and return true. Return false if the index is out of range. This method + // specifically does not throw or generate an error if the index is out of range; this + // allows the method to be called in a CriticalNative JNI API. + bool setNonce(int index, int64_t value) { + if (index < 0 || index >= maxNonce) { + return false; + } else { + mNonce[index] = value; + return true; + } + } + + // Fetch just the byte-block hash + int32_t getHash() const { + return mByteHash; + } + + // Copy the byte block to the target and return the current hash. + int32_t getByteBlock(block_t* block, size_t len) const { + memcpy(block, (void*) mByteBlock, std::min(maxByte, len)); + return mByteHash; + } + + // Set the byte block and the hash. + void setByteBlock(int hash, const block_t* block, size_t len) { + memcpy((void*) mByteBlock, block, len = std::min(maxByte, len)); + mByteHash = hash; + } +}; + +/** + * Sizing parameters for the system_server PropertyInvalidatedCache support. A client can + * retrieve the values through the accessors in CacheNonce instances. + */ +static const int MAX_NONCE = 64; +static const int BYTE_BLOCK_SIZE = 8192; + +// The CacheNonce for system server holds 64 nonces with a string block of 8192 bytes. +typedef CacheNonce SystemCacheNonce; + +// The goal of this assertion is to ensure that the data structure is the same size across 32-bit +// and 64-bit systems. +static_assert(sizeof(SystemCacheNonce) == SystemCacheNonce::expectedSize, + "Unexpected SystemCacheNonce size"); + +} // namespace PropertyInvalidatedCache +} // namespace app +} // namespace android diff --git a/core/jni/android_hardware_Camera.cpp b/core/jni/android_hardware_Camera.cpp index 10e49efee92e46ef11d68e24e78d116c1a6aeec9..50252c11ffb1512ac44553ab3486bcf91c707a3e 100644 --- a/core/jni/android_hardware_Camera.cpp +++ b/core/jni/android_hardware_Camera.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -715,16 +716,20 @@ static void android_hardware_Camera_setPreviewSurface(JNIEnv *env, jobject thiz, sp camera = get_native_camera(env, thiz, NULL); if (camera == 0) return; - sp gbp; sp surface; if (jSurface) { surface = android_view_Surface_getSurface(env, jSurface); - if (surface != NULL) { - gbp = surface->getIGraphicBufferProducer(); - } } +#if WB_LIBCAMERASERVICE_WITH_DEPENDENCIES + if (camera->setPreviewTarget(surface) != NO_ERROR) { +#else + sp gbp; + if (surface != NULL) { + gbp = surface->getIGraphicBufferProducer(); + } if (camera->setPreviewTarget(gbp) != NO_ERROR) { +#endif jniThrowException(env, "java/io/IOException", "setPreviewTexture failed"); } } @@ -736,6 +741,9 @@ static void android_hardware_Camera_setPreviewTexture(JNIEnv *env, sp camera = get_native_camera(env, thiz, NULL); if (camera == 0) return; +#if WB_LIBCAMERASERVICE_WITH_DEPENDENCIES + sp surface; +#endif sp producer = NULL; if (jSurfaceTexture != NULL) { producer = SurfaceTexture_getProducer(env, jSurfaceTexture); @@ -744,10 +752,16 @@ static void android_hardware_Camera_setPreviewTexture(JNIEnv *env, "SurfaceTexture already released in setPreviewTexture"); return; } - +#if WB_LIBCAMERASERVICE_WITH_DEPENDENCIES + surface = new Surface(producer); +#endif } +#if WB_LIBCAMERASERVICE_WITH_DEPENDENCIES + if (camera->setPreviewTarget(surface) != NO_ERROR) { +#else if (camera->setPreviewTarget(producer) != NO_ERROR) { +#endif jniThrowException(env, "java/io/IOException", "setPreviewTexture failed"); } @@ -761,18 +775,32 @@ static void android_hardware_Camera_setPreviewCallbackSurface(JNIEnv *env, sp camera = get_native_camera(env, thiz, &context); if (camera == 0) return; +#if !WB_LIBCAMERASERVICE_WITH_DEPENDENCIES sp gbp; +#endif sp surface; if (jSurface) { surface = android_view_Surface_getSurface(env, jSurface); + if (surface == NULL) { + jniThrowException(env, "java/lang/IllegalArgumentException", + "android_view_Surface_getSurface failed"); + return; + } + +#if !WB_LIBCAMERASERVICE_WITH_DEPENDENCIES if (surface != NULL) { gbp = surface->getIGraphicBufferProducer(); } +#endif } // Clear out normal preview callbacks context->setCallbackMode(env, false, false); // Then set up callback surface +#if WB_LIBCAMERASERVICE_WITH_DEPENDENCIES + if (camera->setPreviewCallbackTarget(surface) != NO_ERROR) { +#else if (camera->setPreviewCallbackTarget(gbp) != NO_ERROR) { +#endif jniThrowException(env, "java/io/IOException", "setPreviewCallbackTarget failed"); } } diff --git a/core/jni/android_hardware_OverlayProperties.cpp b/core/jni/android_hardware_OverlayProperties.cpp index 63de1950f2a524f97e2ba676bfde349acb5c2fbc..bb4084e8f39e6bbff1e7d0ee6b5fe5e80b9a3521 100644 --- a/core/jni/android_hardware_OverlayProperties.cpp +++ b/core/jni/android_hardware_OverlayProperties.cpp @@ -213,6 +213,6 @@ int register_android_hardware_OverlayProperties(JNIEnv* env) { clazz = FindClassOrDie(env, "android/hardware/LutProperties"); gLutPropertiesClassInfo.clazz = MakeGlobalRefOrDie(env, clazz); gLutPropertiesClassInfo.ctor = - GetMethodIDOrDie(env, gLutPropertiesClassInfo.clazz, "", "(IJ[I)V"); + GetMethodIDOrDie(env, gLutPropertiesClassInfo.clazz, "", "(II[I)V"); return err; } diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp index 755704a5ad9126f22f1d3e1702fc92f0539ad4e2..f162b7410b1012c9e3a7dfcfdc81d6bb9db74d20 100644 --- a/core/jni/android_view_SurfaceControl.cpp +++ b/core/jni/android_view_SurfaceControl.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -2161,9 +2162,30 @@ public: jobjectArray jJankDataArray = env->NewObjectArray(jankData.size(), gJankDataClassInfo.clazz, nullptr); for (size_t i = 0; i < jankData.size(); i++) { + // The exposed constants in SurfaceControl are simplified, so we need to translate the + // jank type we get from SF to what is exposed in Java. + int sfJankType = jankData[i].jankType; + int javaJankType = 0x0; // SurfaceControl.JankData.JANK_NONE + if (sfJankType & + (JankType::DisplayHAL | JankType::SurfaceFlingerCpuDeadlineMissed | + JankType::SurfaceFlingerGpuDeadlineMissed | JankType::PredictionError | + JankType::SurfaceFlingerScheduling)) { + javaJankType |= 0x1; // SurfaceControl.JankData.JANK_COMPOSER + } + if (sfJankType & JankType::AppDeadlineMissed) { + javaJankType |= 0x2; // SurfaceControl.JankData.JANK_APPLICATION + } + if (sfJankType & + ~(JankType::DisplayHAL | JankType::SurfaceFlingerCpuDeadlineMissed | + JankType::SurfaceFlingerGpuDeadlineMissed | JankType::AppDeadlineMissed | + JankType::PredictionError | JankType::SurfaceFlingerScheduling | + JankType::BufferStuffing | JankType::SurfaceFlingerStuffing)) { + javaJankType |= 0x4; // SurfaceControl.JankData.JANK_OTHER + } + jobject jJankData = env->NewObject(gJankDataClassInfo.clazz, gJankDataClassInfo.ctor, - jankData[i].frameVsyncId, jankData[i].jankType, + jankData[i].frameVsyncId, javaJankType, jankData[i].frameIntervalNs, jankData[i].scheduledAppFrameTimeNs, jankData[i].actualAppFrameTimeNs); env->SetObjectArrayElement(jJankDataArray, i, jJankData); diff --git a/core/jni/com_android_internal_os_ApplicationSharedMemory.cpp b/core/jni/com_android_internal_os_ApplicationSharedMemory.cpp index 453e53974e0d707bd7fb4c0f2517815bf88c441a..cc1687cd9ffbffc4ff052e947a14e69e3a97a015 100644 --- a/core/jni/com_android_internal_os_ApplicationSharedMemory.cpp +++ b/core/jni/com_android_internal_os_ApplicationSharedMemory.cpp @@ -29,8 +29,12 @@ #include "core_jni_helpers.h" +#include "android_app_PropertyInvalidatedCache.h" + namespace { +using namespace android::app::PropertyInvalidatedCache; + // Atomics should be safe to use across processes if they are lock free. static_assert(std::atomic::is_always_lock_free == true, "atomic is not always lock free"); @@ -64,12 +68,15 @@ public: void setLatestNetworkTimeUnixEpochMillisAtZeroElapsedRealtimeMillis(int64_t offset) { latestNetworkTimeUnixEpochMillisAtZeroElapsedRealtimeMillis = offset; } + + // The nonce storage for pic. The sizing is suitable for the system server module. + SystemCacheNonce systemPic; }; // Update the expected value when modifying the members of SharedMemory. // The goal of this assertion is to ensure that the data structure is the same size across 32-bit // and 64-bit systems. -static_assert(sizeof(SharedMemory) == 8, "Unexpected SharedMemory size"); +static_assert(sizeof(SharedMemory) == 8 + sizeof(SystemCacheNonce), "Unexpected SharedMemory size"); static jint nativeCreate(JNIEnv* env, jclass) { // Create anonymous shared memory region @@ -133,6 +140,12 @@ static jlong nativeGetLatestNetworkTimeUnixEpochMillisAtZeroElapsedRealtimeMilli return sharedMemory->getLatestNetworkTimeUnixEpochMillisAtZeroElapsedRealtimeMillis(); } +// This is a FastNative method. It takes the usual JNIEnv* and jclass* arguments. +static jlong nativeGetSystemNonceBlock(JNIEnv*, jclass*, jlong ptr) { + SharedMemory* sharedMemory = reinterpret_cast(ptr); + return reinterpret_cast(&sharedMemory->systemPic); +} + static const JNINativeMethod gMethods[] = { {"nativeCreate", "()I", (void*)nativeCreate}, {"nativeMap", "(IZ)J", (void*)nativeMap}, @@ -143,16 +156,17 @@ static const JNINativeMethod gMethods[] = { (void*)nativeSetLatestNetworkTimeUnixEpochMillisAtZeroElapsedRealtimeMillis}, {"nativeGetLatestNetworkTimeUnixEpochMillisAtZeroElapsedRealtimeMillis", "(J)J", (void*)nativeGetLatestNetworkTimeUnixEpochMillisAtZeroElapsedRealtimeMillis}, + {"nativeGetSystemNonceBlock", "(J)J", (void*) nativeGetSystemNonceBlock}, }; -} // anonymous namespace - -namespace android { - static const char kApplicationSharedMemoryClassName[] = "com/android/internal/os/ApplicationSharedMemory"; static jclass gApplicationSharedMemoryClass; +} // anonymous namespace + +namespace android { + int register_com_android_internal_os_ApplicationSharedMemory(JNIEnv* env) { gApplicationSharedMemoryClass = MakeGlobalRefOrDie(env, FindClassOrDie(env, kApplicationSharedMemoryClassName)); diff --git a/core/proto/android/server/vibrator/vibratormanagerservice.proto b/core/proto/android/server/vibrator/vibratormanagerservice.proto index 258832e3e7ff6e59181aaad613d4b02414f231d8..8a9f5f35759ce49e74677adb882542f60fbb7a82 100644 --- a/core/proto/android/server/vibrator/vibratormanagerservice.proto +++ b/core/proto/android/server/vibrator/vibratormanagerservice.proto @@ -158,7 +158,6 @@ message VibratorManagerServiceDumpProto { repeated int32 vibrator_ids = 1; optional VibrationProto current_vibration = 2; optional int32 is_vibrator_controller_registered = 27; - optional VibrationProto current_external_vibration = 4; optional bool low_power_mode = 6; optional bool vibrate_on = 24; reserved 25; // prev keyboard_vibration_on @@ -183,4 +182,5 @@ message VibratorManagerServiceDumpProto { reserved 17; // prev previous_external_vibrations reserved 3; // prev is_vibrating, check current_vibration instead reserved 5; // prev vibrator_under_external_control, check current_external_vibration instead + reserved 4; // prev current_external_vibration, check current_vibration instead } \ No newline at end of file diff --git a/core/res/Android.bp b/core/res/Android.bp index aa324fcaca58de861851d5c71c0ba0d75ff9cc79..f6ca8218926c19d4ad4e8b004b885bee962ca9db 100644 --- a/core/res/Android.bp +++ b/core/res/Android.bp @@ -158,6 +158,7 @@ android_app { flags_packages: [ "android.app.appfunctions.flags-aconfig", "android.app.contextualsearch.flags-aconfig", + "android.appwidget.flags-aconfig", "android.content.pm.flags-aconfig", "android.provider.flags-aconfig", "camera_platform_flags", @@ -169,6 +170,7 @@ android_app { "android.media.tv.flags-aconfig", "android.security.flags-aconfig", "com.android.hardware.input.input-aconfig", + "aconfig_trade_in_mode_flags", ], } diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 6ab64768d9f0dac16940d5ecdab47879e9f2549d..4c38246b35b096c741145b8f16f9fc4741b3b6a0 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -1494,8 +1494,8 @@ android:description="@string/permdesc_readBasicPhoneState" android:protectionLevel="normal" /> - + + + + + + + - - - - - + + + + + diff --git a/core/res/res/drawable-watch-v36/dialog_alert_button_background_positive.xml b/core/res/res/drawable-watch-v36/dialog_alert_button_background_positive.xml new file mode 100644 index 0000000000000000000000000000000000000000..92262fb6d89de526ef7915325c59b1bef45952bb --- /dev/null +++ b/core/res/res/drawable-watch-v36/dialog_alert_button_background_positive.xml @@ -0,0 +1,30 @@ + + + + + + + + + + \ No newline at end of file diff --git a/packages/SystemUI/res/anim/shortcut_helper_close_anim.xml b/core/res/res/drawable-watch-v36/dialog_alert_button_negative.xml similarity index 64% rename from packages/SystemUI/res/anim/shortcut_helper_close_anim.xml rename to core/res/res/drawable-watch-v36/dialog_alert_button_negative.xml index 47fd78a4d368291b0314fae6404ac77a9947b57e..c155ba1ba0773afeef54e18d84f85519fcc5e308 100644 --- a/packages/SystemUI/res/anim/shortcut_helper_close_anim.xml +++ b/core/res/res/drawable-watch-v36/dialog_alert_button_negative.xml @@ -1,4 +1,3 @@ - - - - - + + + + \ No newline at end of file diff --git a/packages/SettingsLib/res/drawable/audio_sharing_rounded_bg.xml b/core/res/res/drawable-watch-v36/dialog_alert_button_positive.xml similarity index 60% rename from packages/SettingsLib/res/drawable/audio_sharing_rounded_bg.xml rename to core/res/res/drawable-watch-v36/dialog_alert_button_positive.xml index 35517ea0ec11f9d88bf336f1fa5c86fc103a12f1..01ab0734d8e86548b1fb80d16fa52e91135e5c06 100644 --- a/packages/SettingsLib/res/drawable/audio_sharing_rounded_bg.xml +++ b/core/res/res/drawable-watch-v36/dialog_alert_button_positive.xml @@ -1,6 +1,5 @@ - - - - - \ No newline at end of file + + + + \ No newline at end of file diff --git a/core/res/res/drawable-watch-v36/ic_check.xml b/core/res/res/drawable-watch-v36/ic_check.xml new file mode 100644 index 0000000000000000000000000000000000000000..7b01e64ffdd367e2a93f502d12faaa5345cc8f56 --- /dev/null +++ b/core/res/res/drawable-watch-v36/ic_check.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/core/res/res/drawable-watch-v36/ic_close.xml b/core/res/res/drawable-watch-v36/ic_close.xml new file mode 100644 index 0000000000000000000000000000000000000000..1f3da367ac3fd75b665cde5dc73deb7c6180cb87 --- /dev/null +++ b/core/res/res/drawable-watch-v36/ic_close.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/core/res/res/layout-watch-v36/alert_dialog_material.xml b/core/res/res/layout-watch-v36/alert_dialog_material.xml new file mode 100644 index 0000000000000000000000000000000000000000..900102f379d996589fa51b1979ba3fb4fcc7faf2 --- /dev/null +++ b/core/res/res/layout-watch-v36/alert_dialog_material.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + +